diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 35b2a69a3..000000000 --- a/.dockerignore +++ /dev/null @@ -1,8 +0,0 @@ -# Ignore everything -* - -!etc/** -!operator/** -!docker/** -!install.sh -!update.sh \ No newline at end of file diff --git a/.env.example b/.env.example index c17bfcf95..623b1901a 100644 --- a/.env.example +++ b/.env.example @@ -1,55 +1,129 @@ -# Copy this file into a .env at the root of the projec, before starting -# the API services in "development mode." Use the following prefixes to -# reference the related services: +# General Notes +# ------------- +# Please ensure you change the default secrets for all services in production environments. +# +# Secrets (create strong passwords): +# +# - APISERVER_ASTERISK_ARI_SECRET +# - APISERVER_OWNER_PASSWORD +# - APISERVER_INFLUXDB_INIT_PASSWORD +# - ASTERISK_SIPPROXY_SECRET +# - ASTERISK_ARI_SECRET +# - POSTGRES_PASSWORD +# - APISERVER_DATABASE_URL (which includes the database password) +# - APISERVER_IDENTITY_DATABASE_URL (which includes the database password) + + +# API Server Settings +# ------------------ +# The owner email and password are used to create the initial administrator user. +# The server will create a new owner if the email does not exist. +# The password will be updated if the email already exists. +APISERVER_APP_URL=http://localhost:8080 +APISERVER_ASTERISK_ARI_PROXY_URL=http://asterisk:8088 +APISERVER_ASTERISK_ARI_SECRET=changeme +APISERVER_ASTERISK_ARI_USERNAME=ari +APISERVER_CLOAK_ENCRYPTION_KEY=k1.aesgcm256.MmPSvzCG9fk654bAbl30tsqq4h9d3N4F11hlue8bGAY= +APISERVER_DATABASE_URL=postgresql://postgres:postgres@postgres:5432/fonoster +APISERVER_IDENTITY_DATABASE_URL=postgresql://postgres:postgres@postgres:5432/fnidentity +APISERVER_IDENTITY_ISSUER=http://fonoster.local +APISERVER_IDENTITY_OAUTH2_GITHUB_CLIENT_ID= +APISERVER_IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET= +APISERVER_IDENTITY_OAUTH2_GITHUB_ENABLED=false +APISERVER_IDENTITY_WORKSPACE_INVITATION_FAIL_URL=http://localhost:8080/invite-fail +APISERVER_IDENTITY_WORKSPACE_INVITATION_URL=http://localhost:8449/api/identity/accept-invite +APISERVER_IDENTITY_WORKSPACE_INVITE_EXPIRATION=1d +APISERVER_INFLUXDB_INIT_ORG=fonoster +APISERVER_INFLUXDB_INIT_PASSWORD=changeme +APISERVER_INFLUXDB_INIT_TOKEN=ghjNQ59FW4oi3bAiMTtfMyVnqtbwq0Iib58D63Lgk3pcrEFFPT0d9tnRKzHk98HNqZJUPc_mpXVkk07_JhBhJg== +APISERVER_INFLUXDB_INIT_USERNAME=influxdb +APISERVER_INFLUXDB_URL=http://influxdb:8086 +APISERVER_LOGS_FORMAT=json +APISERVER_LOGS_LEVEL=verbose +APISERVER_LOGS_TRANSPORT=none +APISERVER_NATS_URL=nats://nats:4222 +APISERVER_OWNER_EMAIL=admin@fonoster.local +APISERVER_OWNER_NAME=Admin User +APISERVER_OWNER_PASSWORD=changeme +APISERVER_ROOT_DOMAIN=fonoster.local +APISERVER_SMTP_AUTH_PASS=secret +APISERVER_SMTP_AUTH_USER=postmaster@fonoster.local +APISERVER_SMTP_HOST=your-smtp-server +APISERVER_SMTP_PORT=587 +APISERVER_SMTP_SECURE=true +APISERVER_SMTP_SENDER="Fonoster Info " +APISERVER_TWILIO_ACCOUNT_SID=your-twilio-account-sid +APISERVER_TWILIO_AUTH_TOKEN=your-twilio-auth-token +APISERVER_TWILIO_PHONE_NUMBER=your-twilio-phone-number +IDENTITY_USER_VERIFICATION_REQUIRED=false + +# Autopilot Settings +# ----------------- +# The Knowledge Base feature requires an S3-compatible storage service. +# OpenAI API and Unstructured API keys are also required to enable this feature. # -# MS => Media Server (Asterisk) -# MC => Media Controller -# DS => Data Source (Redis) -# DS_AUTH => Data Source for Authentication -# FS => Files Server (Minio) - -GLOBAL_SIP_DOMAIN=fonoster.com -SERVICES_ENVS=/path/to/service_envs.json -VAULT_ADDR=http://localhost:8200 -VAULT_TOKEN=changeit -SECRETS_POLICY=fonoster-policy -AUTH_RBAC=/path/to/rbac.json -FUNCS_URL=http://faasd.fonoster.net:8080 -FUNCS_USERNAME=admin -FUNCS_WORKDIR=/tmp -FUNCS_SECRET=changeit -DOCKER_REGISTRY_ORG=yourorg -DOCKER_REGISTRY_USERNAME=yourorg -DOCKER_REGISTRY_SECRET=changeit -DOCKER_REGISTRY=docker.io -DOCKER_REGISTRY_SERVICE=registry.docker.io -DOCKER_REGISTRY_AUTH_ENDPOINT=https://auth.docker.io/token -MS_ARI_EXTERNAL_URL=http://localhost -MS_ARI_INTERNAL_URL=http://localhost:8088 -MS_ARI_USERNAME=ari -MS_ARI_SECRET=changeit -MS_TRUNK=routr -VOICE_URL=http://voice.fonoster:3000 -MS_ENDPOINT=sip:voice@default -MS_CONTEXT=local-ctx -MS_EXTENSION=s -DS_HOST=yourapihost -DS_PORT=6379 -DS_SECRET=changeit -FS_HOST=yourapihost -FS_PORT=9000 -FS_USERNAME=minio -FS_SECRET=minio123 -SIPPROXY_API_PORT=4567 -SIPPROXY_HOST=sip.fonoster.net -SIPPROXY_API_USERNAME=admin -SIPPROXY_API_SECRET=changeit -LOGS_DRIVER_HOST=yourapihost -LOGS_DRIVER_PORT=24224 -LOGS_AGGREGRATOR_HOST=yourapihost -LOGS_AGGREGRATOR_PORT=24224 -LOG_OPT_TAG_PREFIX=alpha -APISERVER_ENDPOINT=localhost:50052 -PUBLIC_URL=http://localhost:50052 -IGNORE_E164_VALIDATION=true -ALLOW_INSECURE=true +# The Knowledge Base feature is disabled by default due to its multiple integrations. +# Please consult the documentation for details on how to enable it. +AUTOPILOT_AWS_S3_ACCESS_KEY_ID= +AUTOPILOT_AWS_S3_ENDPOINT= +AUTOPILOT_AWS_S3_REGION= +AUTOPILOT_AWS_S3_SECRET_ACCESS_KEY= +AUTOPILOT_CONVERSATION_PROVIDER=api +AUTOPILOT_INTEGRATIONS_FILE=/opt/fonoster/integrations.json +AUTOPILOT_KNOWLEDGE_BASE_ENABLED=false +AUTOPILOT_LOGS_FORMAT=none +AUTOPILOT_LOGS_LEVEL=verbose +AUTOPILOT_LOGS_TRANSPORT=none +AUTOPILOT_OPENAI_API_KEY= +AUTOPILOT_UNSTRUCTURED_API_KEY= +AUTOPILOT_UNSTRUCTURED_API_URL= + +# Routr Settings +# ------------- +# The external address must be configured to an address accessible by all endpoints. +# For local network deployments, this is typically your router's public IP address. +# For cloud deployments, this is typically the public IP address of your cloud instance. +ROUTR_DATABASE_URL=postgresql://postgres:postgres@postgres:5432/routr +ROUTR_EXTERNAL_ADDRS=/* Set to the IP address of the host */ +ROUTR_LOGS_FORMAT=none +ROUTR_LOGS_LEVEL=verbose +ROUTR_LOGS_TRANSPORT=none +ROUTR_NATS_PUBLISHER_ENABLED=true +ROUTR_NATS_PUBLISHER_URL=nats://nats:4222 +ROUTR_RTPENGINE_HOST=rtpengine + +# Asterisk Settings +# ---------------- +# Note: Set ASTERISK_SIPPROXY_HOST to the same value as ROUTR_EXTERNAL_ADDRS +ASTERISK_ARI_PROXY_URL=http://asterisk:8088 +ASTERISK_ARI_SECRET=changeme +ASTERISK_ARI_USERNAME=ari +ASTERISK_CODECS=g722,ulaw,alaw +ASTERISK_DTMF_MODE=auto_info +ASTERISK_RTP_PORT_END=20000 +ASTERISK_RTP_PORT_START=10000 +ASTERISK_SIPPROXY_HOST=/* Set to the IP address of the host */ +ASTERISK_SIPPROXY_PORT=5060 +ASTERISK_SIPPROXY_SECRET=changeme +ASTERISK_SIPPROXY_USERNAME=voice + +# RTP Engine Settings +# ------------------ +# Set RTPENGINE_PUBLIC_IP to the same value as ROUTR_EXTERNAL_ADDRS +# Adjust RTPENGINE_PORT_MIN and RTPENGINE_PORT_MAX to define the range for media traffic. +RTPENGINE_PORT_MAX=20000 +RTPENGINE_PORT_MIN=10000 +RTPENGINE_PUBLIC_IP=/* Set to the IP address of the host */ + +# InfluxDB Settings +# ---------------- +INFLUXDB_INIT_ORG=fonoster +INFLUXDB_INIT_PASSWORD=changeme +INFLUXDB_INIT_TOKEN=ghjNQ59FW4oi3bAiMTtfMyVnqtbwq0Iib58D63Lgk3pcrEFFPT0d9tnRKzHk98HNqZJUPc_mpXVkk07_JhBhJg== +INFLUXDB_INIT_USERNAME=influxdb + +# Database Security Configuration +# ----------------------------- +# For production environments, we recommend using a managed database service +POSTGRES_PASSWORD=postgres +POSTGRES_USER=postgres diff --git a/.env.example.dev b/.env.example.dev new file mode 100644 index 000000000..8c4a0db21 --- /dev/null +++ b/.env.example.dev @@ -0,0 +1,144 @@ +# General Notes +# ------------- +# Please ensure you change the default secrets for all services in production environments. +# +# Secrets (create strong passwords): +# +# - APISERVER_ASTERISK_ARI_SECRET +# - APISERVER_OWNER_PASSWORD +# - APISERVER_INFLUXDB_INIT_PASSWORD +# - ASTERISK_SIPPROXY_SECRET +# - ASTERISK_ARI_SECRET +# - POSTGRES_PASSWORD +# - APISERVER_DATABASE_URL (which includes the password) +# - APISERVER_IDENTITY_DATABASE_URL (which includes the password) +# +# For development environments, you must set the following environment variables: +# +# - APISERVER_IDENTITY_PRIVATE_KEY_PATH +# - APISERVER_IDENTITY_PUBLIC_KEY_PATH +# - APISERVER_INTEGRATIONS_FILE +# - ROUTR_EXTERNAL_ADDRS (Your external address) +# - ROUTR_RTPENGINE_HOST (Your external address) +# - ASTERISK_SIPPROXY_HOST (Your external address) +# - APISERVER_ROUTR_API_ENDPOINT (Set to localhost:51907) + +DOCKER_HOST_ADDRESS=/* Your external address */ + +# API Server Settings +# ------------------ +# The owner email and password are used to create the initial administrator user. +# The server will create a new owner if the email does not exist. +# The password will be updated if the email already exists. +APISERVER_APP_URL=http://localhost:8080 +APISERVER_ASTERISK_ARI_PROXY_URL=http://localhost:8088 +APISERVER_ASTERISK_ARI_SECRET=changeme +APISERVER_ASTERISK_ARI_USERNAME=ari +APISERVER_CLOAK_ENCRYPTION_KEY=k1.aesgcm256.MmPSvzCG9fk654bAbl30tsqq4h9d3N4F11hlue8bGAY= +APISERVER_DATABASE_URL=postgresql://postgres:postgres@localhost:5432/fonoster +APISERVER_IDENTITY_DATABASE_URL=postgresql://postgres:postgres@localhost:5432/fnidentity +APISERVER_IDENTITY_ISSUER=http://fonoster.local +APISERVER_IDENTITY_OAUTH2_GITHUB_CLIENT_ID= +APISERVER_IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET= +APISERVER_IDENTITY_OAUTH2_GITHUB_ENABLED=false +APISERVER_IDENTITY_WORKSPACE_INVITATION_FAIL_URL=http://localhost:8080/invite-fail +APISERVER_IDENTITY_WORKSPACE_INVITATION_URL=http://localhost:8449/api/identity/accept-invite +APISERVER_IDENTITY_WORKSPACE_INVITE_EXPIRATION=1d +APISERVER_INFLUXDB_INIT_ORG=fonoster +APISERVER_INFLUXDB_INIT_PASSWORD=changeme +APISERVER_INFLUXDB_INIT_TOKEN=ghjNQ59FW4oi3bAiMTtfMyVnqtbwq0Iib58D63Lgk3pcrEFFPT0d9tnRKzHk98HNqZJUPc_mpXVkk07_JhBhJg== +APISERVER_INFLUXDB_INIT_USERNAME=influxdb +APISERVER_INFLUXDB_URL=http://influxdb:8086 +APISERVER_LOGS_FORMAT=json +APISERVER_LOGS_LEVEL=verbose +APISERVER_LOGS_TRANSPORT=none +APISERVER_NATS_URL=nats://localhost:4222 +APISERVER_OWNER_EMAIL=admin@fonoster.local +APISERVER_OWNER_NAME=Admin User +APISERVER_OWNER_PASSWORD=changeme +APISERVER_ROOT_DOMAIN=fonoster.local +APISERVER_ROUTR_API_ENDPOINT=localhost:51907 +APISERVER_SMTP_AUTH_PASS=secret +APISERVER_SMTP_AUTH_USER=postmaster@fonoster.local +APISERVER_SMTP_HOST=localhost +APISERVER_SMTP_PORT=1025 +APISERVER_SMTP_SECURE=false +APISERVER_SMTP_SENDER="Fonoster Info " +APISERVER_TWILIO_ACCOUNT_SID= +APISERVER_TWILIO_AUTH_TOKEN= +APISERVER_TWILIO_PHONE_NUMBER= +APISERVER_IDENTITY_USER_VERIFICATION_REQUIRED=false +APISERVER_IDENTITY_PRIVATE_KEY_PATH=/path/to/private.pem +APISERVER_IDENTITY_PUBLIC_KEY_PATH=/path/to/public.pem +APISERVER_INTEGRATIONS_FILE=/path/to/integrations.json + +# Autopilot Settings +# ----------------- +# The Knowledge Base feature requires an S3-compatible storage service. +# OpenAI API and Unstructured API keys are also required to enable this feature. +# +# The Knowledge Base feature is disabled by default due to its multiple integrations. +# Please consult the documentation for details on how to enable it. +AUTOPILOT_AWS_S3_ACCESS_KEY_ID= +AUTOPILOT_AWS_S3_ENDPOINT= +AUTOPILOT_AWS_S3_REGION= +AUTOPILOT_AWS_S3_SECRET_ACCESS_KEY= +AUTOPILOT_CONVERSATION_PROVIDER=api +AUTOPILOT_INTEGRATIONS_FILE=/path/to/integrations.json +AUTOPILOT_KNOWLEDGE_BASE_ENABLED=false +AUTOPILOT_LOGS_FORMAT=none +AUTOPILOT_LOGS_LEVEL=verbose +AUTOPILOT_LOGS_TRANSPORT=none +AUTOPILOT_OPENAI_API_KEY= +AUTOPILOT_UNSTRUCTURED_API_KEY= +AUTOPILOT_UNSTRUCTURED_API_URL= + +# Routr Settings +# ------------- +# The external address must be configured to an address accessible by all endpoints. +# For local network deployments, this is typically your router's public IP address. +# For cloud deployments, this is typically the public IP address of your cloud instance. +ROUTR_DATABASE_URL=postgresql://postgres:postgres@postgres:5432/routr +ROUTR_EXTERNAL_ADDRS=/* Your external address */ +ROUTR_LOGS_FORMAT=none +ROUTR_LOGS_LEVEL=verbose +ROUTR_LOGS_TRANSPORT=none +ROUTR_NATS_PUBLISHER_ENABLED=true +ROUTR_NATS_PUBLISHER_URL=nats://nats:4222 +ROUTR_RTPENGINE_HOST=rtpengine + +# Asterisk Settings +# ---------------- +# Note: Set ASTERISK_SIPPROXY_HOST to the same value as ROUTR_EXTERNAL_ADDRS +ASTERISK_ARI_PROXY_URL=http://localhost:8088 +ASTERISK_ARI_SECRET=changeme +ASTERISK_ARI_USERNAME=ari +ASTERISK_CODECS=g722,ulaw,alaw +ASTERISK_DTMF_MODE=auto_info +ASTERISK_RTP_PORT_END=20000 +ASTERISK_RTP_PORT_START=10000 +ASTERISK_SIPPROXY_HOST=/* Your external address */ +ASTERISK_SIPPROXY_PORT=5060 +ASTERISK_SIPPROXY_SECRET=changeme +ASTERISK_SIPPROXY_USERNAME=voice + +# RTP Engine Settings +# ------------------ +# Set RTPENGINE_PUBLIC_IP to the same value as ROUTR_EXTERNAL_ADDRS +# Adjust RTPENGINE_PORT_MIN and RTPENGINE_PORT_MAX to define the range for media traffic. +RTPENGINE_PORT_MAX=20000 +RTPENGINE_PORT_MIN=10000 +RTPENGINE_PUBLIC_IP=/* Your external address */ + +# InfluxDB Settings +# ---------------- +INFLUXDB_INIT_ORG=fonoster +INFLUXDB_INIT_PASSWORD=changeme +INFLUXDB_INIT_TOKEN=ghjNQ59FW4oi3bAiMTtfMyVnqtbwq0Iib58D63Lgk3pcrEFFPT0d9tnRKzHk98HNqZJUPc_mpXVkk07_JhBhJg== +INFLUXDB_INIT_USERNAME=influxdb + +# Database Security Configuration +# ----------------------------- +# For production environments, we recommend using a managed database service. +POSTGRES_PASSWORD=postgres +POSTGRES_USER=postgres diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index b3130a8dd..000000000 --- a/.eslintignore +++ /dev/null @@ -1,28 +0,0 @@ -mods/common -mods/secrets -mods/auth -mods/funcs -mods/appmanager -mods/agents -mods/auth -mods/callmanager -mods/certs -mods/core -mods/ctl -mods/domains -mods/dispatcher -mods/errors -mods/events -mods/googleasr -mods/googletts -mods/logger -mods/sdk -mods/tts -mods/types -mods/usermanager -mods/numbers -mods/providers -mods/storage -mods/voice -node_modules/* -dist diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index f209763cf..000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": 2020, // Allows for the parsing of modern ECMAScript features - "sourceType": "module" // Allows for the use of imports - }, - "plugins": [ - "@typescript-eslint", - "no-loops", - "prettier", - "notice" - ], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "google", - "plugin:@typescript-eslint/recommended", - "prettier" - ], - "rules": { - "quotes": [ - "error", - "double" - ], - "notice/notice": [ - "error", - { - "mustMatch": "Licensed under the MIT License", - "templateFile": "etc/copyright.js" - } - ], - "no-loops/no-loops": 2, - "no-console": 1, // Means warning - "prettier/prettier": 2 // Means error - } -} \ No newline at end of file diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..d7e974f13 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,3 @@ +# Learn how to add code owners here: +# https://help.github.com/en/articles/about-code-owners +* @psanders \ No newline at end of file diff --git a/.github/FUNDING.yaml b/.github/FUNDING.yaml new file mode 100644 index 000000000..afe36fde3 --- /dev/null +++ b/.github/FUNDING.yaml @@ -0,0 +1 @@ +github: [fonoster] \ No newline at end of file diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 4881ac758..000000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: [fonoster] diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 6ffe75251..000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Type '....' -3. Then, '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**System information (please complete the following):** - - OS: [e.g. Linux] - - NodeJS, NPM versions [e.g. v14.16.0, 7.10.0] - - CTL version [e.g. 0.1 ] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml new file mode 100644 index 000000000..ce6d41593 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -0,0 +1,48 @@ +name: 🐞 Bug Report +description: File a bug report +title: "[BUG]: " +labels: [bug] +body: + - type: markdown + attributes: + value: "Thanks for taking the time to fill out our bug report form." + + - type: textarea + id: what-happened + attributes: + label: What happened? + description: A clear and concise description of what the bug is. + placeholder: Tell us what you see! + validations: + required: true + + - type: textarea + id: reproduce + attributes: + label: Steps to reproduce + description: Steps to reproduce the behavior + placeholder: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: Expected behavior + description: What you expected to happen instead of the bug. + placeholder: Explain what you expected to happen after following the steps above. + validations: + required: true + + - type: textarea + id: additional-context + attributes: + label: Additional context + description: Add any other context about the problem here, like links to related issues, screenshots, etc. + placeholder: Provide more context here. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..b372dcc8d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: 🤝 GitHub Community Support + url: https://github.com/fonoster/fonoster/discussions + about: Please ask and answer questions here. + - name: 💬 Discord Community + url: https://discord.gg/4QWgSz4hTC + about: Join our Discord community here. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index bbcbbe7d6..000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml new file mode 100644 index 000000000..ee2d78d3e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -0,0 +1,44 @@ +name: 💡 Feature Request +description: Suggest an idea for this project +title: "[FEATURE]: " +labels: [enhancement] +body: + - type: markdown + attributes: + value: "Thanks for taking the time to suggest a feature for our project!" + + - type: textarea + id: problem-related + attributes: + label: Is your feature request related to a problem? + description: "Please describe the problem. For example: I'm always frustrated when..." + placeholder: Describe the problem here. + validations: + required: true + + - type: textarea + id: solution-description + attributes: + label: Describe the solution you'd like + description: A clear and concise description of what you want to happen. + placeholder: Explain the solution you'd like. + validations: + required: true + + - type: textarea + id: alternatives-considered + attributes: + label: Describe alternatives you've considered + description: A clear and concise description of any alternative solutions or features you've considered. + placeholder: Describe any alternative solutions or features you've considered. + validations: + required: false + + - type: textarea + id: additional-context + attributes: + label: Additional context + description: Add any other context or screenshots about the feature request here. + placeholder: Provide more context here. You can drag and drop images to this area to upload them. + validations: + required: false \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 7c198894c..acc5dbdf3 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -35,4 +35,4 @@ - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes -- [ ] Any dependent changes have been merged and published in downstream modules +- [ ] Any dependent changes have been merged and published in downstream modules \ No newline at end of file diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 514b3223c..000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,10 +0,0 @@ -daysUntilStale: 365 -daysUntilClose: 7 -exemptLabels: - - pinned - - security -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -closeComment: false diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml deleted file mode 100644 index d21576523..000000000 --- a/.github/workflows/cla.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: "CLA Assistant" -on: - issue_comment: - types: [created] - pull_request_target: - types: [opened,closed,synchronize] - -jobs: - CLAssistant: - runs-on: ubuntu-latest - steps: - - name: "CLA Assistant" - if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' - # Beta Release - uses: cla-assistant/github-action@v2.1.2-beta - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # the below token should have repo scope and must be manually added by you in the repository's secret - PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} - with: - path-to-signatures: 'signatures/version1/cla.json' - path-to-document: 'https://github.com/fonoster/fonoster/blob/main/cla.md' # e.g. a CLA or a DCO document - # branch should not be protected - branch: 'main' - allowlist: bot* diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 0dcbbafc7..000000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: "CodeQL" - -on: - push: - branches: [ main, 0.2 ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ main ] - schedule: - - cron: '45 20 * * 2' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'javascript', 'typescript' ] - - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - - - name: Autobuild - uses: github/codeql-action/autobuild@v1 - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/contributors.yaml b/.github/workflows/contributors.yaml new file mode 100644 index 000000000..c57d40c9b --- /dev/null +++ b/.github/workflows/contributors.yaml @@ -0,0 +1,24 @@ +name: add contributors + +on: + workflow_dispatch: + push: + branches: + - main + +jobs: + add-contributors: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: BobAnkh/add-contributors@master + with: + CONTRIBUTOR: "" + COLUMN_PER_ROW: "6" + ACCESS_TOKEN: ${{ secrets.GH_PAT }} + IMG_WIDTH: "100" + FONT_SIZE: "14" + PATH: "/README.md" + COMMIT_MESSAGE: "docs(README): update contributors" + AVATAR_SHAPE: "round" \ No newline at end of file diff --git a/.github/workflows/dco-check.yaml b/.github/workflows/dco-check.yaml new file mode 100644 index 000000000..e5067fe8a --- /dev/null +++ b/.github/workflows/dco-check.yaml @@ -0,0 +1,13 @@ +name: dco check + +on: + pull_request: + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: KineticCafe/actions-dco@v1 + with: + exempt-authors: | + @fonoster.com \ No newline at end of file diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 0685f7263..000000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: deploy - -on: - - workflow_dispatch: - inputs: - choice: - type: choice - description: Select environment - options: - - 167.99.233.37 - - api.fonoster.net - -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - name: Deploy to Digital Ocean droplet via SSH action - uses: appleboy/ssh-action@v0.1.3 - with: - host: ${{ github.event.inputs.choice }} - username: ${{ secrets.DIGITALOCEAN_USERNAME }} - key: ${{ secrets.DIGITALOCEAN_SSHKEY }} - passphrase: ${{ secrets.DIGITALOCEAN_PASSPHRASE }} - script: | - set -e - cd /opt - docker run --rm \ - -e CONFIG_PATH=$(pwd)/fonoster/config \ - --volume /var/run/docker.sock:/var/run/docker.sock \ - --volume $(pwd)/fonoster:/out:rw \ - --entrypoint="/update.sh" \ - fonoster/fonoster diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml new file mode 100644 index 000000000..f1a43008f --- /dev/null +++ b/.github/workflows/gh-pages.yml @@ -0,0 +1,44 @@ +name: deploy to github pages + +on: + workflow_dispatch: + push: + branches: + - main + paths: + - "site/**" + - "docs/**" + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Installing Node + uses: actions/setup-node@v4 + with: + node-version: "20.x" + - name: Populate out directory + run: | + # Create out directory + mkdir -p out/site-assets + + # # Build and copy docs + # cd docs + # npm install + # npm run build + # cp -a build/* ../out/ + # cd .. + + # Copy site assets + cp -a site/site-assets/* out/site-assets + cp site/index.html out/index.html + echo > out/.nojekyll + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./out + publish_branch: gh-pages + cname: fonoster.com diff --git a/.github/workflows/int_tests.yml b/.github/workflows/int_tests.yml deleted file mode 100644 index 06d956508..000000000 --- a/.github/workflows/int_tests.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: int tests -on: - workflow_dispatch: - push: - paths: - - 'mods/**' - branches: - - main -jobs: - build: - timeout-minutes: 5 - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v1 - - name: Prepare environment - run: | - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter - chmod +x ./cc-test-reporter - ./cc-test-reporter before-build - - name: Integration tests - run: | - docker-compose up --abort-on-container-exit --exit-code-from integrationtests fs tts datasource sipproxy apiserver integrationtests diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 000000000..a53e098a9 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,144 @@ +name: release + +on: + # push: + # paths: + # - mods/** + # - asterisk/** + # branches: + # - main + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GH_PAT }} + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20.x" + + - name: Install dependencies and build + run: | + npm install + npm run build + + - name: Run unit tests + run: | + cp .env.example.dev .env + npm run test + + # We will do this manually for now + # - name: Check for next release + # run: | + # release=$(.scripts/next-release.sh) + # echo "Next release: $release" + # echo "RELEASE=$release" >> $GITHUB_ENV + + # - name: Publish packages to NPM + # if: env.RELEASE != 'none' + # run: | + # echo "NPM_TOKEN=${{ secrets.NPM_TOKEN }}" >> $GITHUB_ENV + # echo "GITHUB_TOKEN=${{ secrets.GH_PAT }}" >> $GITHUB_ENV + # echo "@routr:registry=https://registry.npmjs.org/" > .npmrc + # echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc + + # git config --global user.name "GitHub Actions Bot" + # git config --global user.email "github-actions[bot]@users.noreply.github.com" + # git checkout package-lock.json + + # npm run release + + - name: Get version from Lerna + run: | + lerna_version=$(node -p "require('./lerna.json').version") + echo "LERNA_VERSION=$lerna_version" >> $GITHUB_ENV + + - name: Create release note + if: env.RELEASE != 'none' + id: changelog + uses: loopwerk/tag-changelog@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + exclude_types: other,doc,chore + config_file: ./.scripts/tag-changelog-config.js + + - name: Create draft release + if: env.RELEASE != 'none' + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: v${{ env.LERNA_VERSION }} + release_name: Release v${{ env.LERNA_VERSION }} + body: ${{ steps.changelog.outputs.changelog }} + draft: true + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Publish the APIServer to Docker Hub + uses: elgohr/Publish-Docker-Github-Action@v5 + with: + name: fonoster/apiserver + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_PASSWORD }} + context: . + dockerfile: mods/apiserver/Dockerfile + tags: "latest,${{ env.LERNA_VERSION }}" + platforms: linux/amd64,linux/arm64 + + - name: Publish Autopilot to Docker Hub + uses: elgohr/Publish-Docker-Github-Action@v5 + with: + name: fonoster/autopilot + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_PASSWORD }} + context: . + dockerfile: mods/autopilot/Dockerfile + tags: "latest,${{ env.LERNA_VERSION }}" + platforms: linux/amd64,linux/arm64 + + - name: Publish Asterisk to Docker Hub + uses: elgohr/Publish-Docker-Github-Action@v5 + with: + name: fonoster/asterisk + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_PASSWORD }} + context: . + dockerfile: asterisk/Dockerfile + tags: "latest, 20" + platforms: linux/amd64,linux/arm64 + + - name: Starting services for integration tests + run: | + npm run generate:keypair + cp .env.example .env + cp config/integrations.example.json config/integrations.json + sed -i "s|DOCKER_HOST_ADDRESS=.*|DOCKER_HOST_ADDRESS=127.0.0.1|g" .env + sed -i "s|ASTERISK_SIPPROXY_HOST=.*|ASTERISK_SIPPROXY_HOST=127.0.0.1|g" .env + sed -i "s|SMTP_HOST=.*|SMTP_HOST=mailhog|g" .env + sed -i "s|SMTP_PORT=.*|SMTP_PORT=1025|g" .env + sed -i "s|SMTP_SECURE=.*|SMTP_SECURE=false|g" .env + docker compose -f compose.yaml -f compose.dev.yaml up -d envoy routr nats postgres apiserver asterisk mailhog + + - name: Waiting for services to be ready + run: | + sleep 30 + docker ps -a + + - name: Run integration tests for the SDK + uses: nick-fields/retry@v2 + with: + timeout_minutes: 1 + # This makes sure Routr is ready before running the tests + # We could improve this by checking the status of the services + retry_wait_seconds: 30 + max_attempts: 2 + command: npm run integration diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 100142dc6..000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,258 +0,0 @@ -name: release -on: - push: - paths: - - 'mods/**' - branches: - - main - workflow_dispatch: -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: '14.x' - - name: Get the version - id: get_version - run: echo ::set-output name=VERSION::$(node -e "console.log(require('./lerna.json').version)") - - run: | - npm config set unsafe-perm true - npm install lerna -g - npm install - npm run bootstrap - npm run build - - name: Login Dockerhub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - - name: Publishing MediaServer Service - uses: benc-uk/workflow-dispatch@v1 - with: - workflow: publish to docker hub - repo: fonoster/mediaserver - token: ${{ secrets.GH_PAT }} - ref: main - inputs: '{"version": "${{ steps.get_version.outputs.VERSION }}" }' - #- name: Publishing RTPEngine Service - # uses: benc-uk/workflow-dispatch@v1 - # with: - # workflow: publish to docker hub - # repo: fonoster/rtpengine - # token: ${{ secrets.GH_PAT }} - # ref: main - # inputs: '{"version": "${{ steps.get_version.outputs.VERSION }}" }' - - name: Publishing JWTHelper Service - uses: benc-uk/workflow-dispatch@v1 - with: - workflow: publish to docker hub - repo: fonoster/jwt-helper - token: ${{ secrets.GH_PAT }} - ref: main - inputs: '{"version": "${{ steps.get_version.outputs.VERSION }}" }' - - name: Publishing GRPC Gateway - uses: benc-uk/workflow-dispatch@v1 - with: - workflow: publish to docker hub - repo: fonoster/grpc-gateway - token: ${{ secrets.GH_PAT }} - ref: main - inputs: '{"version": "${{ steps.get_version.outputs.VERSION }}" }' - - name: Copy and Push Traefik image - uses: akhilerm/tag-push-action@v2.0.0 - with: - src: docker.io/traefik:v2.4 - dst: | - docker.io/fonoster/traefik:${{ steps.get_version.outputs.VERSION }} - - name: Copy and Push Fluentd with Elasticsearch Plugin - uses: akhilerm/tag-push-action@v2.0.0 - with: - src: fonoster/fluent:latest - dst: | - docker.io/fonoster/fluent:${{ steps.get_version.outputs.VERSION }} - - name: Copy and Push Vault - uses: akhilerm/tag-push-action@v2.0.0 - with: - src: docker.io/library/vault:latest - dst: | - docker.io/fonoster/vault:${{ steps.get_version.outputs.VERSION }} - - name: Copy and Push Elasticsearch - uses: akhilerm/tag-push-action@v2.0.0 - with: - src: elasticsearch:7.16.3 - dst: | - docker.io/fonoster/elasticsearch:${{ steps.get_version.outputs.VERSION }} - - name: Copy and Push Whoami image - uses: akhilerm/tag-push-action@v2.0.0 - with: - src: docker.io/containous/whoami:latest - dst: | - docker.io/fonoster/whoami:${{ steps.get_version.outputs.VERSION }} - - name: Copy and Push Minio image - uses: akhilerm/tag-push-action@v2.0.0 - with: - src: docker.io/minio/minio:RELEASE.2020-02-27T00-23-05Z - dst: | - docker.io/fonoster/minio:${{ steps.get_version.outputs.VERSION }} - - name: Copy and Push Redis image - uses: akhilerm/tag-push-action@v2.0.0 - with: - src: docker.io/redis:6.0.3-alpine - dst: | - docker.io/fonoster/redis:${{ steps.get_version.outputs.VERSION }} - - name: Copy and Push RTPEngine image - uses: akhilerm/tag-push-action@v2.0.0 - with: - src: docker.io/fonoster/rtpengine:20211114 - dst: | - docker.io/fonoster/rtpengine:${{ steps.get_version.outputs.VERSION }} - - name: Copy and Push Routr image - uses: akhilerm/tag-push-action@v2.0.0 - with: - src: docker.io/fonoster/routr:1.2.4 - dst: | - docker.io/fonoster/routr:${{ steps.get_version.outputs.VERSION }} - - name: Copy and Push Rox as Voice image - uses: akhilerm/tag-push-action@v2.0.0 - with: - src: docker.io/fonoster/rox:0.3.5 - dst: | - docker.io/fonoster/voice:${{ steps.get_version.outputs.VERSION }} - - name: Copy and Push Autoheal - uses: akhilerm/tag-push-action@v2.0.0 - with: - src: docker.io/willfarrell/autoheal:latest - dst: | - docker.io/fonoster/autoheal:${{ steps.get_version.outputs.VERSION }} - - name: Copy and Push Healthcheck - uses: akhilerm/tag-push-action@v2.0.0 - with: - src: docker.io/fonoster/healthcheck:latest - dst: | - docker.io/fonoster/healthcheck:${{ steps.get_version.outputs.VERSION }} - - name: Publish to Docker Hub the Fonoster installer - uses: elgohr/Publish-Docker-Github-Action@master - env: - FONOSTER_VERSION: ${{ steps.get_version.outputs.VERSION }} - BRANCH: main - with: - name: fonoster/fonoster - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - buildargs: FONOSTER_VERSION,BRANCH - - name: Publish to Docker Hub the Apps API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/apps - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/apps - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - - name: Publish to Docker Hub the Projects API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/projects - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/projects - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - - name: Publish to Docker Hub the Monitor API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/monitor - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/monitor - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - - name: Publish to Docker Hub the Users API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/users - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/users - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - - name: Publish to Docker Hub the Secrets API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/secrets - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/secrets - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - - name: Publish to Docker Hub the Funcs API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/funcs - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/funcs - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - - name: Publish to Docker Hub the Agents API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/agents - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/agents - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - - name: Publish to Docker Hub the Domains API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/domains - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/domains - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - - name: Publish to Docker Hub the Numbers API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/numbers - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/numbers - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - - name: Publish to Docker Hub the Providers API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/providers - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/providers - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - - name: Publish to Docker Hub the Storage API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/storage - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/storage - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - - name: Publish to Docker Hub the CallManager API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/callmanager - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/callmanager - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - - name: Publish to Docker Hub the Limiter API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/limiter - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/limiter - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" - - name: Publish to Docker Hub the Auth API - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: fonoster/auth - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - workdir: mods/auth - tags: "latest, ${{ steps.get_version.outputs.VERSION }}" diff --git a/.github/workflows/tag-npm-packages.yaml b/.github/workflows/tag-npm-packages.yaml new file mode 100644 index 000000000..bc14129c6 --- /dev/null +++ b/.github/workflows/tag-npm-packages.yaml @@ -0,0 +1,43 @@ +name: tag latest npm packages + +on: + workflow_dispatch: + inputs: + tag: + description: 'Tag to run the workflow on' + required: true + default: 'main' + release: + types: + - released + +jobs: + tag-latest: + runs-on: ubuntu-latest + steps: + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "20.x" + + - name: Checkout repository + uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.branch }} + + - name: Get list of packages + run: | + npx lerna list --json > pckg-list.json + + - name: Tag latest npm packages + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc + PACKAGE_DATA=$(cat pckg-list.json) + PACKAGE_COUNT=$(echo "$PACKAGE_DATA" | jq length) + for i in $(seq 0 $(($PACKAGE_COUNT-1))); do + PACKAGE=$(echo "$PACKAGE_DATA" | jq -r ".[$i].name") + VERSION=$(echo "$PACKAGE_DATA" | jq -r ".[$i].version") + npm dist-tag add "$PACKAGE@$VERSION" latest + done \ No newline at end of file diff --git a/.github/workflows/test-sdk-install.yaml b/.github/workflows/test-sdk-install.yaml new file mode 100644 index 000000000..0383c44a0 --- /dev/null +++ b/.github/workflows/test-sdk-install.yaml @@ -0,0 +1,100 @@ +name: test sdk install + +on: + # avoid this for now + # push: + # branches: + # - main + # pull_request: + # branches: + # - main + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Node.js 20 + uses: actions/setup-node@v3 + with: + node-version: "20" + + - name: Install and build the SDK with npm + run: | + npm install + npm run build + + - name: Pack the SDK + run: | + npm pack + working-directory: mods/sdk + + - name: Upload SDK tarball + uses: actions/upload-artifact@v4 + with: + name: sdk-tarball + path: mods/sdk/fonoster-sdk-*.tgz + + install-with-yarn: + runs-on: ubuntu-latest + needs: build + + strategy: + matrix: + node-version: [18, 20, 21, 22] + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Install Yarn + run: npm install -g yarn + + - name: Download SDK tarball + uses: actions/download-artifact@v4 + with: + name: sdk-tarball + + - name: Install the SDK with yarn + run: | + mkdir new_project + cd new_project + yarn init -y + yarn add ../fonoster-sdk-*.tgz + + install-with-npm: + runs-on: ubuntu-latest + needs: build + + strategy: + matrix: + node-version: [18, 20, 21, 22] + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Download SDK tarball + uses: actions/download-artifact@v4 + with: + name: sdk-tarball + + - name: Install the SDK with npm + run: | + mkdir new_project + cd new_project + npm init -y + npm install ../fonoster-sdk-*.tgz diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml deleted file mode 100644 index 0d7888f39..000000000 --- a/.github/workflows/unit_tests.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: unit tests -on: - workflow_dispatch: - push: - paths: - - 'mods/**' - branches: - - main -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v1 - - name: Prepare environment - run: | - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter - chmod +x ./cc-test-reporter - ./cc-test-reporter before-build - - name: Installing dependency - uses: actions/setup-node@v1 - with: - node-version: '16.x' - - name: Running tests - run: | - npm run make - chmod +x node_modules/.bin/cross-env - npm test - - name: Running SonarCloud scan - uses: sonarsource/sonarcloud-github-action@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/.gitignore b/.gitignore index 4fa63c973..bf22a3338 100644 --- a/.gitignore +++ b/.gitignore @@ -1,119 +1,16 @@ -# Created by .ignore support plugin (hsz.mobi) -### JetBrains template -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# Other -node_modules +node_modules/ +.env* +!.env.example +!.env.example.dev +*.log +reporting/* +out/* +dist coverage .nyc_output -*.DS_Store -*.tar.gz -*.zip -build -dist +.keys +*.tsbuildinfo tsconfig.tsbuildinfo -libs/app.* -config/*.yml -.gradle -.idea -*.iml -*.ipr -mod/vendor -jre -site -.env* -lerna-debug.log -mods/**/src/protos/common.proto -!mods/core/src/protos/common.proto -swagger.json - -# User-specific stuff: -.idea/workspace.xml -.idea/tasks.xml -.idea/dictionaries -.idea/vcs.xml -.idea/jsLibraryMappings.xml - -# Sensitive or high-churn files: -.idea/dataSources.ids -.idea/dataSources.xml -.idea/dataSources.local.xml -.idea/sqlDataSources.xml -.idea/dynamic.xml -.idea/uiDesigner.xml - -# Gradle: -.idea/gradle.xml -.idea/libraries -tmp - -# Mongo Explorer plugin: -.idea/mongoSettings.xml - -## File-based project format: -*.iws - -## Plugin-specific files: - -# IntelliJ -/out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties -### JetBrains template -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff: -.idea/workspace.xml -.idea/tasks.xml -.idea/dictionaries -.idea/vcs.xml -.idea/jsLibraryMappings.xml - -# Sensitive or high-churn files: -.idea/dataSources.ids -.idea/dataSources.xml -.idea/dataSources.local.xml -.idea/sqlDataSources.xml -.idea/dynamic.xml -.idea/uiDesigner.xml - -# Gradle: -.idea/gradle.xml -.idea/libraries - -# Mongo Explorer plugin: -.idea/mongoSettings.xml - -## File-based project format: -*.iws - -## Plugin-specific files: - -# IntelliJ -/out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties -.history/ - +integrations.json +config/assistant* +!assistant.example.json \ No newline at end of file diff --git a/.husky/.gitignore b/.husky/.gitignore deleted file mode 100644 index 31354ec13..000000000 --- a/.husky/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_ diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100644 index 000000000..f7b7d3da1 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,2 @@ +npx --no-install commitlint --edit "" +npx commitlint --edit diff --git a/.husky/pre-commit b/.husky/pre-commit old mode 100755 new mode 100644 index 3dee86848..b4bfb9307 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,7 +1,2 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - npm test -npm run lint -npm run check-types npm run format diff --git a/.mocharc.json b/.mocharc.json new file mode 100644 index 000000000..16170eaf0 --- /dev/null +++ b/.mocharc.json @@ -0,0 +1,5 @@ +{ + "node-option": [ + "import=tsx" + ] +} \ No newline at end of file diff --git a/.nycrc b/.nycrc deleted file mode 100644 index 90493146d..000000000 --- a/.nycrc +++ /dev/null @@ -1,28 +0,0 @@ -{ - "cache": false, - "check-coverage": false, - "extension": [ - ".ts" - ], - "include": [ - "**/*.ts" - ], - "exclude": [ - "coverage/**", - "node_modules/**", - "**/*.d.ts", - "**/*.test.ts" - ], - "sourceMap": true, - "reporter": [ - "html", - "text", - "text-summary" - ], - "all": true, - "instrument": true, - "branches": 80, - "lines": 80, - "functions": 80, - "statements": 80 -} diff --git a/.prettierignore b/.prettierignore index bdeda2e41..fd29b6df6 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,7 +1,7 @@ -**/*_grpc_pb.d.ts -**/*_pb.js -**/*.d.ts **/dist **/package-lock.json **/*.md -**/generated/* \ No newline at end of file +**/generated/* +.husky +public +*.hbs \ No newline at end of file diff --git a/.prettierrc b/.prettierrc index 9b77a13f9..bddfe1f35 100644 --- a/.prettierrc +++ b/.prettierrc @@ -4,5 +4,6 @@ "singleQuote": false, "printWidth": 80, "bracketSpacing": true, - "useTabs": false + "useTabs": false, + "tabWidth": 2 } \ No newline at end of file diff --git a/.scripts/check-preconditions.sh b/.scripts/check-preconditions.sh new file mode 100755 index 000000000..c0b48947d --- /dev/null +++ b/.scripts/check-preconditions.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# pretest script: Need .env file +if [ ! -f .env ]; then + echo "Error: .env file is missing. Run 'cp .env.example.dev .env' at the root of the project and try again." + exit 1 +fi diff --git a/.scripts/copy-hbs.js b/.scripts/copy-hbs.js new file mode 100644 index 000000000..93a149176 --- /dev/null +++ b/.scripts/copy-hbs.js @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const fs = require('fs-extra'); +const path = require('path'); + +const sourceDir = path.resolve(__dirname, '../mods/identity/src/templates'); +const destDir = path.resolve(__dirname, '../mods/identity/dist/templates'); + +function copyHbsFiles(source, destination) { + fs.readdir(source, { withFileTypes: true }, (err, files) => { + if (err) { + console.error('error reading source directory:', err); + return; + } + + files.forEach(file => { + const sourcePath = path.join(source, file.name); + const destPath = path.join(destination, file.name); + + if (file.isDirectory()) { + copyHbsFiles(sourcePath, destPath); + } else if (file.isFile() && sourcePath.endsWith('.hbs')) { + fs.copy(sourcePath, destPath, err => { + if (err) { + console.error('error copying file:', sourcePath, err); + } + }); + } + }); + }); +} + +copyHbsFiles(sourceDir, destDir); \ No newline at end of file diff --git a/.scripts/copy-prisma-clients.sh b/.scripts/copy-prisma-clients.sh new file mode 100755 index 000000000..c0a139c43 --- /dev/null +++ b/.scripts/copy-prisma-clients.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +echo "Copying Prisma clients to dist folders" + +mkdir -p mods/identity/dist/generated/@prisma +cp -r mods/identity/src/generated/@prisma/client mods/identity/dist/generated/@prisma \ No newline at end of file diff --git a/etc/copyright.js b/.scripts/copyright.js similarity index 100% rename from etc/copyright.js rename to .scripts/copyright.js diff --git a/.scripts/dispatcher.ts b/.scripts/dispatcher.ts deleted file mode 100644 index 69dbe6af0..000000000 --- a/.scripts/dispatcher.ts +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import dotenv from "dotenv"; -import {join} from "path"; - -if (process.env.NODE_ENV === "dev") { - dotenv.config({path: join(__dirname, "..", ".env")}); -} - -import "../mods/dispatcher/src/dispatcher"; diff --git a/.scripts/gen-code-proto.sh b/.scripts/gen-code-proto.sh new file mode 100755 index 000000000..3abd065f7 --- /dev/null +++ b/.scripts/gen-code-proto.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +set -e + +DIRNAME="$(cd "$(dirname "$0")"; pwd)" +OUT_DIR_NODE=$DIRNAME/../mods/sdk/src/generated/node +OUT_DIR_WEB=$DIRNAME/../mods/sdk/src/generated/web + +echo "Generating code for protos" + +mkdir -p $OUT_DIR_NODE +mkdir -p $OUT_DIR_WEB + +# Node.js +protoc -I=. $DIRNAME/../mods/common/src/protos/acls.proto \ + -I=. $DIRNAME/../mods/common/src/protos/agents.proto \ + -I=. $DIRNAME/../mods/common/src/protos/applications.proto \ + -I=. $DIRNAME/../mods/common/src/protos/calls.proto \ + -I=. $DIRNAME/../mods/common/src/protos/credentials.proto \ + -I=. $DIRNAME/../mods/common/src/protos/domains.proto \ + -I=. $DIRNAME/../mods/common/src/protos/identity.proto \ + -I=. $DIRNAME/../mods/common/src/protos/numbers.proto \ + -I=. $DIRNAME/../mods/common/src/protos/secrets.proto \ + -I=. $DIRNAME/../mods/common/src/protos/trunks.proto \ + -I=$DIRNAME/../mods/common/src/protos/ \ + --js_out=import_style=commonjs,binary:$OUT_DIR_NODE \ + --grpc_out=grpc_js:$OUT_DIR_NODE \ + --plugin=protoc-gen-grpc=$(which grpc_tools_node_protoc_plugin) \ + --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts + +# Browser +protoc -I=. $DIRNAME/../mods/common/src/protos/acls.proto \ + -I=. $DIRNAME/../mods/common/src/protos/agents.proto \ + -I=. $DIRNAME/../mods/common/src/protos/applications.proto \ + -I=. $DIRNAME/../mods/common/src/protos/calls.proto \ + -I=. $DIRNAME/../mods/common/src/protos/credentials.proto \ + -I=. $DIRNAME/../mods/common/src/protos/domains.proto \ + -I=. $DIRNAME/../mods/common/src/protos/identity.proto \ + -I=. $DIRNAME/../mods/common/src/protos/numbers.proto \ + -I=. $DIRNAME/../mods/common/src/protos/secrets.proto \ + -I=. $DIRNAME/../mods/common/src/protos/trunks.proto \ + -I=$DIRNAME/../mods/common/src/protos/ \ + --js_out=import_style=commonjs:$OUT_DIR_WEB \ + --grpc-web_out=import_style=typescript,mode=grpcwebtext:$OUT_DIR_WEB \ + --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts \ No newline at end of file diff --git a/.scripts/gen-docs.js b/.scripts/gen-docs.js new file mode 100644 index 000000000..efd5de0e9 --- /dev/null +++ b/.scripts/gen-docs.js @@ -0,0 +1,33 @@ +#!/usr/bin/node + +"use strict"; + +const fs = require("fs"); +const jsdoc2md = require("jsdoc-to-markdown"); +const path = require("path"); + +const outputDir = path.join(__dirname, "../docs/reference"); + +function generate(inputFile) { + const templateData = jsdoc2md.getTemplateDataSync({ files: inputFile }); + + const classNames = templateData.reduce((names, identifier) => { + if (identifier.kind === "class" && !names.includes(identifier.name)) names.push(identifier.name); + return names; + }, []); + + console.log(classNames) + + for (const className of classNames) { + if (["Scanner", "Walker", "Parser", "Filter"].includes(className)) continue; + const template = `{{#class name="${className}"}}{{>docs}}{{/class}}`; + console.log(`rendering ${className}, template: ${template}`); + const output = jsdoc2md.renderSync({ + data: templateData, + template: template + }); + fs.writeFileSync(path.resolve(outputDir, `${className}.md`), output); + } +} + +generate(path.join(__dirname, "../mods/voice/dist/*.js")) diff --git a/.scripts/gen-keypair.sh b/.scripts/gen-keypair.sh new file mode 100755 index 000000000..244ebb628 --- /dev/null +++ b/.scripts/gen-keypair.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +set -e + +KEY_SIZE=2048 +KEY_ALGORITHM="rsa" +KEY_OUT_DIR=".keys" + +mkdir -p $KEY_OUT_DIR + +echo "generating keys in the '$KEY_OUT_DIR' directory..." + +if [ -f $KEY_OUT_DIR/private.pem ] && [ -f $KEY_OUT_DIR/public.pem ]; then + echo "keys already exist in the '$KEY_OUT_DIR' directory." + exit 0 +fi + +openssl genpkey -algorithm $KEY_ALGORITHM -out $KEY_OUT_DIR/private.pem -pkeyopt rsa_keygen_bits:$KEY_SIZE + +openssl rsa -in $KEY_OUT_DIR/private.pem -pubout -out $KEY_OUT_DIR/public.pem + +echo "keys generated in the '$KEY_OUT_DIR' directory." diff --git a/.scripts/gen-readme.js b/.scripts/gen-readme.js new file mode 100644 index 000000000..beda7f69f --- /dev/null +++ b/.scripts/gen-readme.js @@ -0,0 +1,62 @@ +#!/usr/bin/node + +"use strict"; + +const jsdoc2md = require("jsdoc-to-markdown"); +const fs = require("fs"); +const path = require("path"); + +// Function to recursively get all .js files from a directory and its subdirectories +function getJSFiles(dir) { + const files = fs.readdirSync(dir); + let jsFiles = []; + for (const file of files) { + const fullPath = path.join(dir, file); + if (fs.statSync(fullPath).isDirectory()) { + jsFiles = jsFiles.concat(getJSFiles(fullPath)); + } else if (path.extname(fullPath) === '.js') { + jsFiles.push(fullPath); + } + } + return jsFiles; +} + +const outputFile = path.join(process.cwd(), 'README.md'); +const allJSFiles = getJSFiles(path.join(process.cwd(), "dist")); + +let fullDocumentation = ''; // Store the entire documentation here + +for (const file of allJSFiles) { + if (file.includes("/generated/")) continue; // Skip generated files + + const templateData = jsdoc2md.getTemplateDataSync({ files: file }); + + /* reduce templateData to an array of class names */ + const classNames = templateData.reduce((names, identifier) => { + if (identifier.kind === "class") names.push(identifier.name); + return names; + }, []); + + /* create a documentation section for each class */ + for (const className of classNames) { + if (["Scanner", "Walker", "Parser", "Filter"].includes(className)) continue; + const template = `{{#class name="${className}"}}{{>docs}}{{/class}}\n`; + fullDocumentation += jsdoc2md.renderSync({ + data: templateData, + template: template + }); + } +} + +const introFilePath = path.join(process.cwd(), ".intro.md"); + +if (fs.existsSync(introFilePath)) { + // If intro.md exists, prepend its content to the fullDocumentation + const introContent = fs.readFileSync(introFilePath, 'utf-8'); + fullDocumentation = introContent + "\n\n" + fullDocumentation; +} + +// Save the entire documentation to a single markdown file +fs.writeFileSync(outputFile, fullDocumentation); + +console.log(`Documentation generated at ${outputFile}`); \ No newline at end of file diff --git a/.scripts/gen_code_proto.sh b/.scripts/gen_code_proto.sh deleted file mode 100755 index 63cc4030b..000000000 --- a/.scripts/gen_code_proto.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env sh -DIRNAME="$(cd "$(dirname "$0")"; pwd)" - -PROTOS=( - monitor \ - agents \ - callmanager \ - domains \ - storage \ - numbers \ - providers \ - funcs \ - auth \ - secrets \ - users \ - projects \ - apps) - -for proto in "${PROTOS[@]}" -do - grpc_tools_node_protoc \ - -I=. $DIRNAME/../etc/vendor_protos/protoc-gen-openapiv2/options/annotations.proto \ - -I=. $DIRNAME/../etc/vendor_protos/protoc-gen-openapiv2/options/openapiv2.proto \ - -I=. $DIRNAME/../etc/vendor_protos/google/api/annotations.proto \ - -I=. $DIRNAME/../etc/vendor_protos/google/api/field_behavior.proto \ - -I=. $DIRNAME/../etc/vendor_protos/google/api/http.proto \ - -I=. $DIRNAME/../etc/vendor_protos/google/api/httpbody.proto \ - -I=. $DIRNAME/../mods/core/src/protos/common.proto \ - -I=. /$DIRNAME/../mods/${proto}/src/protos/${proto}.proto \ - -I=$DIRNAME/../etc/vendor_protos \ - -I=$DIRNAME/../mods/core/src/protos \ - -I=$DIRNAME/../mods/${proto}/src/protos \ - --js_out=import_style=commonjs,binary:$DIRNAME/../mods/${proto}/src/service/protos \ - --grpc_out=grpc_js:$DIRNAME/../mods/${proto}/src/service/protos \ - --plugin=protoc-gen-grpc=`which grpc_tools_node_protoc_plugin` - - # generate d.ts codes - grpc_tools_node_protoc \ - -I=. $DIRNAME/../etc/vendor_protos/protoc-gen-openapiv2/options/annotations.proto \ - -I=. $DIRNAME/../etc/vendor_protos/protoc-gen-openapiv2/options/openapiv2.proto \ - -I=. $DIRNAME/../etc/vendor_protos/google/api/annotations.proto \ - -I=. $DIRNAME/../etc/vendor_protos/google/api/field_behavior.proto \ - -I=. $DIRNAME/../etc/vendor_protos/google/api/http.proto \ - -I=. $DIRNAME/../etc/vendor_protos/google/api/httpbody.proto \ - -I=. $DIRNAME/../mods/core/src/protos/common.proto \ - -I=. /$DIRNAME/../mods/${proto}/src/protos/${proto}.proto \ - -I=$DIRNAME/../etc/vendor_protos \ - -I=$DIRNAME/../mods/core/src/protos \ - -I=$DIRNAME/../mods/${proto}/src/protos \ - --proto_path=$DIRNAME/../mods/core/src/protos \ - --proto_path=$DIRNAME/../mods/${proto}/src/protos \ - --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts \ - --ts_out=grpc_js:$DIRNAME/../mods/${proto}/src/service/protos -done diff --git a/.scripts/gen_docs.js b/.scripts/gen_docs.js deleted file mode 100644 index ab8fc833e..000000000 --- a/.scripts/gen_docs.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -const jsdoc2md = require("jsdoc-to-markdown"); -const fs = require("fs"); -const path = require("path"); - -/* input and output paths */ -const outputDir = path.join(__dirname, "../docs/reference"); - -function generate(inputFile) { - /* get template data */ - const templateData = jsdoc2md.getTemplateDataSync({ files: inputFile }); - - /* reduce templateData to an array of class names */ - const classNames = templateData.reduce((names, identifier) => { - if (identifier.kind === "class" && !names.includes(identifier.name)) names.push(identifier.name); - return names; - }, []); - - console.log(classNames) - - /* create a documentation file for each class */ - for (const className of classNames) { - // Workaround an issue with the inputFile picking up wrong classes - if (["Scanner", "Walker", "Parser", "Filter"].includes(className)) continue; - const template = `{{#class name="${className}"}}{{>docs}}{{/class}}`; - console.log(`rendering ${className}, template: ${template}`); - const output = jsdoc2md.renderSync({ - data: templateData, - template: template - }); - fs.writeFileSync(path.resolve(outputDir, `${className}.md`), output); - } -} - -generate(path.join(__dirname, "../mods/agents/dist/client/*.js")) -generate(path.join(__dirname, "../mods/domains/dist/client/*.js")) -generate(path.join(__dirname, "../mods/auth/dist/client/*.js")) -generate(path.join(__dirname, "../mods/callmanager/dist/client/*.js")) -generate(path.join(__dirname, "../mods/funcs/dist/client/*.js")) -generate(path.join(__dirname, "../mods/numbers/dist/client/*.js")) -generate(path.join(__dirname, "../mods/projects/dist/client/*.js")) -generate(path.join(__dirname, "../mods/providers/dist/client/*.js")) -generate(path.join(__dirname, "../mods/storage/dist/client/*.js")) -generate(path.join(__dirname, "../mods/users/dist/client/*.js")) -generate(path.join(__dirname, "../mods/secrets/dist/client/*.js")) -generate(path.join(__dirname, "../mods/voice/dist/*.js")) \ No newline at end of file diff --git a/.scripts/next-release.sh b/.scripts/next-release.sh new file mode 100755 index 000000000..9bdcb62e3 --- /dev/null +++ b/.scripts/next-release.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -e + +git fetch --tags + +latest_tag=$(git describe --tags --abbrev=0) +latest_tag_timestamp=$(git rev-list -n 1 $latest_tag | xargs git show -s --format="%ct") +commit_messages=$(git log --pretty=format:"%s" $latest_tag..HEAD) +release_type="none" + +while IFS= read -r line; do + if echo "$line" | grep -q "^BREAKING CHANGE:" || echo "$line" | grep -q "!"; then + release_type="major" + break + elif echo "$line" | grep -Eq "^feat\(?"; then + release_type="minor" + elif echo "$line" | grep -Eq "^(fix|refactor|perf|style|test|revert)\(?"; then + if [ "$release_type" != "minor" ]; then + release_type="patch" + fi + fi +done <<< "$commit_messages" + +echo $release_type \ No newline at end of file diff --git a/.scripts/services.ts b/.scripts/services.ts deleted file mode 100644 index e324f4a36..000000000 --- a/.scripts/services.ts +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import dotenv from "dotenv"; -import {join} from "path"; - -if (process.env.NODE_ENV === "dev") { - dotenv.config({path: join(__dirname, "..", ".env")}); -} - -import AppsServer from "../mods/apps/src/service/apps"; -import MonitorServer from "../mods/monitor/src/service/monitor"; -import UsersServer from "../mods/users/src/service/users"; -import ProjectsServer from "../mods/projects/src/service/projects"; -import AuthServer from "../mods/auth/src/service/auth"; -import FuncsServer from "../mods/funcs/src/service/funcs"; -import AgentsServer from "../mods/agents/src/service/agents"; -import SecretServer from "../mods/secrets/src/service/secrets"; -import DomainsServer from "../mods/domains/src/service/domains"; -import NumbersServer from "../mods/numbers/src/service/numbers"; -import ProvidersServer from "../mods/providers/src/service/providers"; -import CallManagerServer from "../mods/callmanager/src/service/callmanager"; -import StorageServer from "../mods/storage/src/service/storage"; -import LimiterServer from "../mods/limiter/src/service/limiter"; -import {AppsService} from "../mods/apps/src/service/protos/apps_grpc_pb"; -import {MonitorService} from "../mods/monitor/src/service/protos/monitor_grpc_pb"; -import {ProjectsService} from "../mods/projects/src/service/protos/projects_grpc_pb"; -import {UsersService} from "../mods/users/src/service/protos/users_grpc_pb"; -import {AuthService} from "../mods/auth/src/service/protos/auth_grpc_pb"; -import {FuncsService} from "../mods/funcs/src/service/protos/funcs_grpc_pb"; -import {AgentsService} from "../mods/agents/src/service/protos/agents_grpc_pb"; -import {SecretsService} from "../mods/secrets/src/service/protos/secrets_grpc_pb"; -import {DomainsService} from "../mods/domains/src/service/protos/domains_grpc_pb"; -import {NumbersService} from "../mods/numbers/src/service/protos/numbers_grpc_pb"; -import {ProvidersService} from "../mods/providers/src/service/protos/providers_grpc_pb"; -import {CallManagerService} from "../mods/callmanager/src/service/protos/callmanager_grpc_pb"; -import {StorageService} from "../mods/storage/src/service/protos/storage_grpc_pb"; -import {LimiterService} from "../mods/auth/src/service/protos/auth_grpc_pb"; -import runServices from "../mods/common/src/service_runner"; - -const services = [ - { - name: "apps", - version: "v1beta1", - service: AppsService, - server: new AppsServer() - }, - { - name: "monitor", - version: "v1beta1", - service: MonitorService, - server: new MonitorServer() - }, - { - name: "users", - version: "v1beta1", - service: UsersService, - server: new UsersServer() - }, - { - name: "projects", - version: "v1beta1", - service: ProjectsService, - server: new ProjectsServer() - }, - { - name: "auth", - version: "v1beta1", - service: AuthService, - server: new AuthServer() - }, - { - name: "funcs", - version: "v1beta1", - service: FuncsService, - server: new FuncsServer() - }, - { - name: "agents", - version: "v1beta1", - service: AgentsService, - server: new AgentsServer() - }, - { - name: "domains", - version: "v1beta1", - service: DomainsService, - server: new DomainsServer() - }, - { - name: "numbers", - version: "v1beta1", - service: NumbersService, - server: new NumbersServer() - }, - { - name: "providers", - version: "v1beta1", - service: ProvidersService, - server: new ProvidersServer() - }, - { - name: "callmanager", - version: "v1beta1", - service: CallManagerService, - server: new CallManagerServer() - }, - { - name: "storage", - version: "v1beta1", - service: StorageService, - server: new StorageServer() - }, - { - name: "secrets", - version: "v1beta1", - service: SecretsService, - server: new SecretServer() - }, - { - name: "limiter", - version: "v1beta1", - service: LimiterService, - server: new LimiterServer() - } -]; - -runServices(services); diff --git a/.scripts/tag-changelog-config.js b/.scripts/tag-changelog-config.js new file mode 100644 index 000000000..4eea4664a --- /dev/null +++ b/.scripts/tag-changelog-config.js @@ -0,0 +1,39 @@ +module.exports = { + types: [ + { types: ["feat", "feature"], label: "🎉 New Features" }, + { types: ["fix", "bugfix"], label: "🐛 Bugfixes" }, + { types: ["improvements", "enhancement"], label: "🔨 Improvements" }, + { types: ["perf"], label: "🏎️ Performance Improvements" }, + { types: ["build", "ci"], label: "🏗️ Build System" }, + { types: ["refactor"], label: "🪚 Refactors" }, + { types: ["doc", "docs"], label: "📚 Documentation Changes" }, + { types: ["test", "tests"], label: "🔍 Tests" }, + { types: ["style"], label: "💅 Code Style Changes" }, + { types: ["chore"], label: "🧹 Chores" }, + { types: ["other"], label: "Other Changes" } + ], + + excludeTypes: ["other"], + + capitalizeFirstLetter: function (string) { + return string.charAt(0).toUpperCase() + string.slice(1) + }, + + renderTypeSection: function (label, commits) { + let text = `\n## ${label}\n` + + commits.forEach((commit) => { + const capitalizedSubject = this.capitalizeFirstLetter(commit.subject) + text += `- ${capitalizedSubject} ${commit.sha.slice(0, 7)}\n` + }) + + return text + }, + + renderChangelog: function (release, changes) { + const now = new Date() + return ( + `# ${release} - ${now.toISOString().substr(0, 10)}\n` + changes + "\n\n" + ) + } +} \ No newline at end of file diff --git a/.shellcheckrc b/.shellcheckrc deleted file mode 100644 index b9f20ab7b..000000000 --- a/.shellcheckrc +++ /dev/null @@ -1,4 +0,0 @@ -disable=SC2154 -disable=SC2034 -disable=SC1091 -disable=SC2002 \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index b43b6e138..000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,46 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at psanders@fonoster.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 871bdb7ff..f82cacb6e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,20 +1,120 @@ -# How to contribute +# Contributing Guide -There are a few guidelines that we need contributors to follow so that we can have a chance of keeping on -top of things. +* [New Contributor Guide](#contributing-guide) + * [Ways to Contribute](#ways-to-contribute) + * [Find an Issue](#find-an-issue) + * [Ask for Help](#ask-for-help) + * [Pull Request Lifecycle](#pull-request-lifecycle) + * [Development Environment Setup](#development-environment-setup) + * [Sign your Commits](#sign-your-commits) + * [Pull Request Checklist](#pull-request-checklist) -## Getting Started +Welcome! We are glad that you want to contribute to Fonoster! 💖 -* Fork the repository -* Add a test for your change. Only refactoring and documentation changes require no new tests. If you are adding functionality or fixing a bug, we need a test! -* Run the tests. We only take pull requests with passing tests +As you get started, you are in the best position to give us feedback on areas of our project that we need help with, including: -## Submitting Changes +* Problems found during setting up a new developer environment +* Gaps in our Quickstart Guide or documentation +* Bugs in our automation scripts -* Push your changes to your fork -* Submit a pull request +If anything doesn't make sense or work when you run it, please open a bug report and let us know! -# Additional Resources +## Ways to Contribute -* [General GitHub documentation](http://help.github.com/) -* [GitHub pull request documentation](http://help.github.com/send-pull-requests/) +We welcome many different types of contributions, including: + +* New features +* Builds, CI/CD +* Bug fixes +* Documentation +* Issue Triage +* Answering questions on Discord/GitHub Discussions +* Web development +* UI/UX +* Communications / Social Media / Blog Posts +* Release management + +Not everything happens through a GitHub pull request. Please come to our [meetings](https://discord.gg/4QWgSz4hTC) or [contact us](https://discord.gg/4QWgSz4hTC) and let's discuss how we can work +together. + +### Come to Meetings + +Everyone is welcome to come to any of our meetings. You don't need an invite to join us. We want you to join us, even if you don't have anything you wish to contribute. Just being there is enough! + +You can learn more about our meetings [here](https://discord.gg/4QWgSz4hTC). You don't have to turn on your video. The first time you come, introducing yourself is more than enough. + +Over time, we hope you feel comfortable voicing your opinions, giving feedback on others' ideas, and even sharing your ideas and experiences. + +## Find an Issue + +We have good first issues for new contributors, and help wanted issues suitable for any contributor. [good first issue](https://github.com/fonoster/fonoster/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) has extra information to help you make your first contribution. [help wanted](https://github.com/fonoster/fonoster/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) are issues suitable for someone who isn't a core maintainer and is good to move onto after your first pull request. + +Sometimes, these labels will be fine. That's ok! There is likely still something for you to work on. If you want to contribute but you don't know where to start or can't find a suitable issue, you can reach out to us via [Discord](https://discord.gg/4QWgSz4hTC) or [GitHub Discussions](https://github.com/fonoster/fonoster/discussions), and we will help you find something. + +Once you see an issue you'd like to work on, please post a comment saying you want to work on it. Something like "I want to work on this" is fine. + +## Ask for Help + +The best way to reach us with a question when contributing is to ask on: + +* The original GitHub issue +* The [Discord](https://discord.gg/4QWgSz4hTC) community +* Our [GitHub Discussions](https://github.com/fonoster/fonoster/discussions) + +## Pull Request Lifecycle + +Before you start, please ensure no one else is working on the same issue. If a related pull request exists, we would appreciate your help. If you don't get a response within a reasonable timeframe, you can proceed with your pull request. + +After you've submitted your pull request, it enters the review stage. During this time, the project maintainers or contributors will examine your changes. They might request modifications, such as: + +- Enhancements in your code +- Additional tests or updates to the documentation +- Changes in your implementation approach +- Dividing your pull request into smaller, more manageable parts + +Depending on the project's roadmap and priorities, you might also be asked to: + +- Delay the integration of your pull request to align with future releases +- Close your current pull request and, if needed, open a new one with revised changes + +## Development Environment Setup + +See our [Development environment setup](https://github.com/fonoster/fonoster/tree/main/docs/self-hosting) guide to get started locally. + +## Sign your Commits + +### DCO + +Licensing is important to open-source projects. It assures that the software will continue to be available based on the terms that the author(s) desired. We require that contributors sign off on commits submitted to our project's repositories. The [Developer Certificate of Origin (DCO)](https://probot.github.io/apps/dco/) is a way to certify that you wrote and have the right to contribute the code you are submitting to the project. + +You sign off by adding the following to your commit messages. Your sign-off must match the git user and email associated with the commit. + +```text +This is my commit message + +Signed-off-by: Your Name +``` + +Git has a `-s` command line option to do this automatically: + +```text +git commit -s -m 'chore: this is my commit message' +``` + +You can amend your commit with the sign-off by running if you forgot to do this and have yet to push your changes to the remote repository. + +```text +git commit --amend -s +``` + +Please note that our commit messages use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). + +## Pull Request Checklist + +When you submit your pull request or push new commits, our automated systems will run some checks on your new code. We require that your pull request passes these checks, but we also have more criteria than just that before we can accept and merge it. We recommend that you check the following things locally before you submit your code: + +- [ ] Your code builds and passes tests locally +- [ ] Your code passes our automated checks +- [ ] You have signed your commits +- [ ] You have added tests for your code (if applicable) +- [ ] You have updated the documentation (if applicable) diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 4d2a8fc59..000000000 --- a/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -## -## Dependencies -## -FROM fonoster/base AS deps -WORKDIR /work - -LABEL maintainer="Pedro Sanders " - -# Install dependencies and set permissions -RUN apk add --no-cache --update git curl docker docker-compose openssl bash \ - && curl -qL -o /usr/bin/netdiscover https://github.com/CyCoreSystems/netdiscover/releases/download/v1.2.5/netdiscover.linux.amd64 \ - && chmod +x /usr/bin/netdiscover \ - && curl -qL -o /usr/bin/semver https://raw.githubusercontent.com/fsaintjacques/semver-tool/master/src/semver \ - && chmod +x /usr/bin/semver - -## -## Stage -## -FROM deps AS stage -WORKDIR /work - -# Copy relevant files -COPY . /work/fonoster - -# Copy configuration files -RUN mkdir -p docker operator config \ - && touch config/config config/user_credentials \ - && cp -r fonoster/docker . \ - && cp -a fonoster/operator/compose/* operator \ - && mv operator/env_example operator/.env \ - && cp fonoster/etc/rbac.json config \ - && cp fonoster/etc/limiters.json config \ - && cp fonoster/etc/log4j2.yml config \ - && cp fonoster/etc/bootstrap.yml config \ - && cp fonoster/etc/redis.conf config \ - && cp fonoster/etc/fluent.conf config \ - && cp fonoster/etc/service_envs.json config \ - && cp fonoster/etc/install.sh . \ - && cp fonoster/etc/update.sh . \ - && cp fonoster/etc/stop.sh . \ - && rm -rf fonoster - -## -## Serve -## -FROM stage AS serve -WORKDIR /work - -COPY --from=stage /work/install.sh /work/update.sh /work/stop.sh ./ -COPY --from=stage /work/docker /work/docker - -RUN find . -type f -iname "*.sh" -exec chmod +x {} + \ - && mv /work/install.sh /install.sh \ - && mv /work/update.sh /update.sh \ - && mv /work/stop.sh /stop.sh \ - && mv /work/docker /docker \ - && chown -R fonoster:fonoster /work - -ENTRYPOINT [ "/install.sh" ] diff --git a/LICENSE b/LICENSE index 192c1ed32..fafb0d573 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021 Fonoster Inc +Copyright (c) 2024 Fonoster Inc Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index cb5f5c52f..e5566e29b 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,40 @@ # Fonoster: The open-source alternative to Twilio -[Fonoster Inc](https://fonoster.com) researches an innovative Programmable Telecommunications Stack that will allow for an entirely cloud-based utility for businesses to connect telephony services with the Internet. +[Fonoster](https://fonoster.com) is researching an innovative Programmable Telecommunications Stack that will allow businesses to connect telephony services with the Internet entirely through a cloud-based utility. -https://user-images.githubusercontent.com/539774/170885814-02c53689-af12-4e05-8351-e78d72f958d9.mov +Fonoster community banner -![build](https://github.com/fonoster/fonoster/workflows/unit%20tests/badge.svg) [![release](https://github.com/fonoster/fonoster/actions/workflows/release.yml/badge.svg)](https://github.com/fonoster/fonoster/actions/workflows/release.yml) [![Discord](https://img.shields.io/discord/1016419835455996076?color=5865F2&label=Discord&logo=discord&logoColor=white)](https://discord.gg/mpWSRUhG7e) Code Of Conduct ![GitHub](https://img.shields.io/github/license/fonoster/fonoster?color=%2347b96d) ![Twitter Follow](https://img.shields.io/twitter/follow/fonoster?style=social) +![build](https://github.com/fonoster/fonoster/workflows/unit%20tests/badge.svg) [![release](https://github.com/fonoster/fonoster/actions/workflows/release.yaml/badge.svg)](https://github.com/fonoster/fonoster/actions/workflows/release.yaml) [![Discord](https://img.shields.io/discord/1016419835455996076?color=5865F2&label=Discord&logo=discord&logoColor=white)](https://discord.gg/4QWgSz4hTC) Code Of Conduct ![GitHub](https://img.shields.io/github/license/fonoster/fonoster?color=%2347b96d) ![Twitter Follow](https://img.shields.io/twitter/follow/fonoster?style=social) +## Features +The most notable features of Fonoster are: -## Features - -The most notable features on FN 0.3 are: - -- [x] Cloud initialization with Cloud-Init - [x] Multitenancy -- [x] Easy deployment of PBXs functionalities +- [x] Easy deployment of PBX functionalities - [x] Programmable Voice Applications - [x] NodeJS SDK -- [x] Web SDK - [x] Support for Amazon Simple Storage Service (S3) - [x] Secure API endpoints with Let's Encrypt - [x] Authentication with OAuth2 - [X] Authentication with JWT - [x] Role-Based Access Control (RBAC) - [x] Plugins-based Command-line Tool -- [x] Support for Google Speech API -- [x] Experimental support for Cloud Functions -- [x] Experimental support for Secret management +- [x] Support for Google Speech APIs ## Code Examples -A Voice Application is a server that takes control of the flow in a call. A Voice Application can use any combination of the following verbs: +A Voice Application is a server that controls a call's flow. A Voice Application can use any combination of the following verbs: - `Answer` - Accepts an incoming call - `Hangup` - Closes the call -- `Play` - Takes an URL or file and streams the sound back to the calling party +- `Play`: Takes a URL with a media file and streams the sound back to the calling party +- `PlayDtmf` - Takes a DTMF sequence and plays it back to the calling party - `Say` - Takes a text, synthesizes the text into audio, and streams back the result - `Gather` - Waits for DTMF or speech events and returns back the result - `SGather` - Returns a stream for future DTMF and speech results +- `Stream` - Creates a bidirectional stream to send and receive audio from a caller - `Dial` - Passes the call to an Agent or a Number at the PSTN - `Record` - It records the voice of the calling party and saves the audio on the Storage sub-system - `Mute` - It tells the channel to stop sending media, effectively muting the channel @@ -47,56 +43,85 @@ A Voice Application is a server that takes control of the flow in a call. A Voic Voice Application Example: ```typescript -const { VoiceServer } = require("@fonoster/voice"); +const VoiceServer = require("@fonoster/voice").default; +const { + GatherSource, + VoiceRequest, + VoiceResponse +} = require("@fonoster/voice"); -const serverConfig = { - pathToFiles: `${process.cwd()}/sounds`, -}; +new VoiceServer().listen(async (req: VoiceRequest, voice: VoiceResponse) => { + const { ingressNumber, sessionRef, appRef } = req; + + await voice.answer(); + + await voice.say("Hi there! What's your name?"); + + const { speech: name } = await res.gather({ + source: GatherSource.SPEECH + }); + + await voice.say("Nice to meet you " + name + "!"); + + await voice.say("Please enter your 4 digit pin."); + + const { digits } = await voice.gather({ + maxDigits: 4, + finishOnKey: "#" + }); + + await voice.say("Your pin is " + digits); -new VoiceServer(serverConfig).listen( - async (req, res) => { - console.log(req); - await res.answer(); - await res.play(`sound:${req.selfEndpoint}/sounds/hello-world.sln16`); - await res.hangup(); - } -); + await voice.hangup(); +}); -// your app will live at http://127.0.0.1:3000 +// Your app will live at tcp://127.0.0.1:50061 // and you can easily publish it to the Internet with: -// ngrok http 3000 +// ngrok tcp 50061 ``` -Everything in FN is an API first, and initiating a call is no exception. You can use the SDK to start a call with a few lines of code. +Everything in Fonoster is an API first, and initiating a call is no exception. You can use the SDK to start a call with a few lines of code. Example of originating a call with the SDK: ```typescript -const Fonoster = require("@fonoster/sdk"); -const callManager = new Fonoster.CallManager(); - -callManager.call({ - from: "9842753574", - to: "17853178070", - webhook: "https://5a2d2ea5d84d.ngrok.io/voiceapp" -}) - .then(console.log) - .catch(console.error); +const SDK = require("@fonoster/sdk"); + +async function main(request) { + const apiKey = "your-api-key"; + const apiSecret = "your-api-secret" + const accessKeyId = "WO00000000000000000000000000000000"; + + const client = SDK.Client({ accessKeyId }); + await client.loginWithApiKey(apiKey, apiSecret); + + const calls = new SDK.Calls(client); + const response = await calls.createCall(request); + + console.log(response); // successful response +} + +const request = { + from: "+18287854037", + to: "+17853178070", + appRef: "3e61ecb7-a1b6-4a93-84c3-4f1979165bca" +}; + +main(request).catch(console.error); ``` ## Getting Started -To get started with FN use the following resources: +To get started with Fonoster, use the following resources: -- [Deploying Fonoster to the Cloud](./docs/operator/deploy-your-server.md) -- [Getting started with Fonoster](https://learn.fonoster.com/) -- [Connecting Fonoster with Dialogflow](https://learn.fonoster.com/docs/tutorials/connecting_with_dialogflow) -- [Using Google Speech APIs](https://learn.fonoster.com/docs/tutorials/using_google_speech) -- [How we created an open-source alternative to Twilio and why it matters](https://github.com/fonoster/blog/blob/main/2021/001/post.md) +- [Deploying Fonoster with Docker](https://docs.fonoster.com/self-hosting) +- [Guide for Early Access User](https://docs.fonoster.com/quickstart) +- [Getting started with Fonoster](https://docs.fonoster.com/quickstart) +- [How we created an open-source alternative to Twilio and why it matters](https://dev.to/fonoster/how-we-created-an-open-source-alternative-to-twilio-and-why-it-matters-434g) ## Give a Star! ⭐ -If you like this project or plan to use it in the future, please give it a star. Thanks 🙏 +Please give it a star if you like this project or plan to use it. Thanks 🙏 ## Bugs and Feedback @@ -109,19 +134,368 @@ For contributing, please see the following links: - [Contribution Documents](https://github.com/fonoster/fonoster/blob/main/CONTRIBUTING.md) - [Contributors](https://github.com/fonoster/fonoster/contributors) -**Sponsors** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Pedro +
+ Pedro Sanders +
+
+ + Efrain +
+ Efrain Peralta +
+
+ + Obruche +
+ Obruche Wilfred Oghenechohwo +
+
+ + Wardner +
+ Wardner Lara +
+
+ + Richard +
+ Richard HC +
+
+ + Hoan +
+ Hoan Luu Huu +
+
+ + Nageswari/ +
+ Nageswari +
+
+ + Speedy +
+ Speedy Monster +
+
+ + harry_dev/ +
+ harry_dev +
+
+ + Kanishka +
+ Kanishka Chowdhury +
+
+ + Brayan +
+ Brayan Munoz V. +
+
+ + Dede +
+ Dede kurniawan +
+
+ + gabriel +
+ gabriel duncan +
+
+ + Prasurjya +
+ Prasurjya Pran Borah +
+
+ + Jordan/ +
+ Jordan +
+
+ + Hector +
+ Hector Ventura +
+
+ + 0xflotus/ +
+ 0xflotus +
+
+ + Manish/ +
+ Manish +
+
+ + Osama +
+ Osama Sehgol +
+
+ + Paul +
+ Paul Sütterlin +
+
+ + Riad +
+ Riad Vargas +
+
+ + Shailendra +
+ Shailendra Paliwal +
+
+ + The +
+ The Gitter Badger +
+
+ + Yuri/ +
+ Yuri +
+
+ + cdrsociate/ +
+ cdrsociate +
+
+ + pavan/ +
+ pavan +
+
+ + nrjchnd/ +
+ nrjchnd +
+
+ + Salami +
+ Salami Bashir +
+
+ + Shivam +
+ Shivam Deepak Chaudhary +
+
+ + Yossef +
+ Yossef Haim +
+
+ + telenautical/ +
+ telenautical +
+
+ + Wisdom +
+ Wisdom Elendu +
+
+ + Judge +
+ Judge Godwins +
+
+ + Jon +
+ Jon Chin +
+
+ + Harish +
+ Harish Chander +
+
+ + Gary +
+ Gary Barnes +
+
+ + Fidal +
+ Fidal Mathew +
+
+ + Enmanuel +
+ Enmanuel Toribio +
+
+ + Dung +
+ Dung Duc Huynh (Kaka) +
+
+ + Ciprian/ +
+ Ciprian +
+
+ + Christopher +
+ Christopher Adigun +
+
+ + Bruno +
+ Bruno Gomes +
+
+ + Bruno +
+ Bruno Arueira +
+
+ + Antonius +
+ Antonius Ostermann +
+
+ + Ali +
+ Ali Firat ARI +
+
+ + Alex/ +
+ Alex +
+
+ + Albert +
+ Albert E. Hidalgo Taveras +
+
+ +## Sponsors We're glad to be supported by respected companies and individuals from several industries. - - Find all our supporters [here](https://github.com/sponsors/fonoster) > [Become a Github Sponsor](https://github.com/sponsors/fonoster) ## Authors + - [Pedro Sanders](https://github.com/psanders) ## License -Copyright (C) 2022 by [Fonoster Inc](https://fonoster.com). MIT License (see [LICENSE](https://github.com/fonoster/fonoster/blob/main/LICENSE) for details). +Copyright (C) 2025 by [Fonoster Inc](https://fonoster.com). MIT License (see [LICENSE](https://github.com/fonoster/fonoster/blob/main/LICENSE) for details). diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 1c2730d54..000000000 --- a/SECURITY.md +++ /dev/null @@ -1,13 +0,0 @@ -# Security Policy - -## Supported Versions - -| Version | Supported | -| ------- | ------------------ | -| 0.3.x | :white_check_mark: -| 0.2.x | :white_check_mark: | -| 0.1.x | :x: | - -## Reporting a Vulnerability - -For security issues, kindly email us at fonosterteam@fonoster.com instead of posting a public issue in GitHub. diff --git a/assets/architecture.png b/assets/architecture.png new file mode 100644 index 000000000..8c09289f8 Binary files /dev/null and b/assets/architecture.png differ diff --git a/assets/identity.png b/assets/identity.png new file mode 100644 index 000000000..a30c04337 Binary files /dev/null and b/assets/identity.png differ diff --git a/asterisk/Dockerfile b/asterisk/Dockerfile new file mode 100644 index 000000000..f49bb34c2 --- /dev/null +++ b/asterisk/Dockerfile @@ -0,0 +1,20 @@ +FROM alpine:3.19 +LABEL maintainer="Pedro Sanders " + +COPY asterisk/config /etc/asterisk/ +COPY asterisk/run.sh / +COPY asterisk/sounds/ /var/lib/asterisk/sounds/en + +RUN apk add --no-cache --update asterisk asterisk-curl tini \ + && chmod +x /run.sh \ + && chown -R asterisk:asterisk /etc/asterisk \ + && chown asterisk:asterisk /run.sh + +USER asterisk:asterisk + +# Re-mapping the signal from 143 to 0 +ENTRYPOINT ["tini", "-v", "-e", "143", "--"] +CMD ["/run.sh"] + +HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ + CMD ["sh", "-c", "asterisk -rx 'core show uptime' | grep uptime"] \ No newline at end of file diff --git a/asterisk/README.md b/asterisk/README.md new file mode 100644 index 000000000..614d09319 --- /dev/null +++ b/asterisk/README.md @@ -0,0 +1,85 @@ +# Asterisk PBX + +> Docker image with a minimal Asterisk PBX + +[![publish to docker hub](https://github.com/fonoster/fonoster/actions/workflows/release.yaml/badge.svg)](https://github.com/fonoster/fonoster/actions/workflows/release.yaml) + +This repository contains a dockerized distribution of Asterisk PBX 16 for use in [Fonoster](https://github.com/fonoster/fonoster). For more documentation on how Fonoster images are constructed and how to work with them, please see the [documentation](https://github.com/fonoster/fonoster). + +## Available Versions + +You can see all images available to pull from Docker Hub via the [Tags](https://hub.docker.com/repository/docker/fonoster/asterisk/tags?page=1) page. Docker tag names that begin with a "change type" word such as task, bug, or feature are available for testing and may be removed at any time. + +> The image tag is the same of the Asterisk this is image is based on + +## Installation + +You can clone this repository and manually build it. + +``` +cd fonoster/asterisk\:%%VERSION%% +docker build -t fonoster/asterisk:%%VERSION%% . +``` + +Otherwise you can pull this image from docker index. + +``` +docker pull fonoster/asterisk:%%VERSION%% +``` + +## Usage Example + +The following is a basic example of using this image. + +``` +docker run -it \ + -p 6060:6060 \ + -p 10000-10010:10000-10010 \ + -e EXTERN_ADDR=${you host address} \ + -e SIPPROXY_HOST=${sip proxy address} \ + -e SIPPROXY_USERNAME=${username at sip proxy} \ + -e SIPPROXY_SECRET=${secret at sip proxy} \ + -e RTP_PORT_START=10000 \ + -e RTP_PORT_END=10010 \ + fonoster/asterisk +``` + +## Environment Variables + +Environment variables are used in the entry point script to render configuration templates. You can specify the values of these variables during `docker run`, `docker-compose up`, or in Kubernetes manifests in the `env` array. + +- `ARI_PROXY_URL` - URL for ARI API. Defaults to `http://localhost:8088` +- `ARI_USERNAME` - Username for ARI API. **Required** +- `ARI_SECRET` - Password for ARI API. **Required** +- `SIPPROXY_HOST` - The SIP Proxy's IP address. **Required** +- `SIPPROXY_PORT` - The SIP Proxy's port. Defaults `5060` +- `SIPPROXY_USERNAME` - Username at SIP Proxy. **Required** +- `SIPPROXY_SECRET` - Secret at SIP Proxy. **Required** +- `SIP_BINDADDR` - Where to listen for SIP traffic. Defaults to `0.0.0.0:6060` +- `RTP_PORT_START` - Lower limit of the RTP port range. **Required** +- `RTP_PORT_END` - Upper limit of the RTP port range. **Required** +- `DTMF_MODE` - DTMF mode. Defaults to `auto_info` +- `CODECS` - Comma separated list of codecs. Defaults to `ulaw,alaw,gsm,g722` +- `HTTP_BINDADDR` - Where to listen for HTTP traffic. Defaults to `0.0.0.0` + +## Exposed ports + +- `6060` - Default SIP port + +## Volumes + +No volumes are exposed. + +## Contributing + +Please read [CONTRIBUTING.md](https://github.com/fonoster/fonoster/blob/main/CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us. + +## Authors + +- [Pedro Sanders](https://github.com/psanders) + +See also the list of contributors who [participated](https://github.com/fonoster/fonoster/contributors) in this project. + +## License + +This project is licensed under the Internal License - see the [LICENSE](LICENSE) file for details. diff --git a/asterisk/config/acl.conf b/asterisk/config/acl.conf new file mode 100644 index 000000000..08368f210 --- /dev/null +++ b/asterisk/config/acl.conf @@ -0,0 +1 @@ +; Placeholder \ No newline at end of file diff --git a/asterisk/config/ari.conf b/asterisk/config/ari.conf new file mode 100644 index 000000000..6edd451c1 --- /dev/null +++ b/asterisk/config/ari.conf @@ -0,0 +1,9 @@ +[general] +enabled = yes +pretty = yes + +[ARI_USERNAME_PLACEHOLDER] +type = user +read_only = no +password = ARI_SECRET_PLACEHOLDER +password_format = plain diff --git a/asterisk/config/asterisk.conf b/asterisk/config/asterisk.conf new file mode 100644 index 000000000..08368f210 --- /dev/null +++ b/asterisk/config/asterisk.conf @@ -0,0 +1 @@ +; Placeholder \ No newline at end of file diff --git a/asterisk/config/cdr.conf b/asterisk/config/cdr.conf new file mode 100644 index 000000000..b7c9e6994 --- /dev/null +++ b/asterisk/config/cdr.conf @@ -0,0 +1,2 @@ +[general] +enable = no \ No newline at end of file diff --git a/asterisk/config/extensions.conf b/asterisk/config/extensions.conf new file mode 100644 index 000000000..8ff753fb6 --- /dev/null +++ b/asterisk/config/extensions.conf @@ -0,0 +1,10 @@ +[local-ctx] +exten => _.,1,NoOp() + same => n,GotoIf($["${APP_REF}" != ""]?4) + same => n,Set(APP_REF=${PJSIP_HEADER(read,X-App-Ref)}) + same => n,GotoIf($["${INGRESS_NUMBER}" != ""]?6) + same => n,Set(INGRESS_NUMBER=${CUT(CUT(PJSIP_HEADER(read,To),@,1),:,2)}) + same => n,GotoIf($["${CALL_DIRECTION}" != ""]?8) + same => n,Set(CALL_DIRECTION=${PJSIP_HEADER(read,X-Call-Direction)}) + same => n,Stasis(mediacontroller) + same => n,Hangup() diff --git a/asterisk/config/features.conf b/asterisk/config/features.conf new file mode 100644 index 000000000..08368f210 --- /dev/null +++ b/asterisk/config/features.conf @@ -0,0 +1 @@ +; Placeholder \ No newline at end of file diff --git a/asterisk/config/http.conf b/asterisk/config/http.conf new file mode 100644 index 000000000..04274ae2e --- /dev/null +++ b/asterisk/config/http.conf @@ -0,0 +1,3 @@ +[general] +enabled = yes +bindaddr = HTTP_BINDADDR_PLACEHOLDER diff --git a/asterisk/config/indications.conf b/asterisk/config/indications.conf new file mode 100644 index 000000000..8ba14322e --- /dev/null +++ b/asterisk/config/indications.conf @@ -0,0 +1,15 @@ +[general] +country = us + +[us] +description = United States / North America +ringcadence = 2000,4000 +dial = 350+440 +busy = 480+620/500,0/500 +ring = 440+480/2000,0/4000 +congestion = 480+620/250,0/250 +callwaiting = 440/300,0/10000 +dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 +record = 1400/500,0/15000 +info = !950/330,!1400/330,!1800/330,0 +stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 diff --git a/asterisk/config/manager.conf b/asterisk/config/manager.conf new file mode 100644 index 000000000..08368f210 --- /dev/null +++ b/asterisk/config/manager.conf @@ -0,0 +1 @@ +; Placeholder \ No newline at end of file diff --git a/asterisk/config/modules.conf b/asterisk/config/modules.conf new file mode 100644 index 000000000..1ff611cb7 --- /dev/null +++ b/asterisk/config/modules.conf @@ -0,0 +1,25 @@ +[modules] +autoload = yes + +; Bare minimum modules for our use case +load => app_playback.so +load => bridge_native_rtp.so +load => chan_pjsip.so +load => format_pcm.so +load => pbx_config.so +load => res_pjproject.so +load => res_pjsip.so +load => res_pjsip_authenticator_digest.so +load => res_pjsip_config_wizard.so +load => res_pjsip_endpoint_identifier_ip.so +load => res_pjsip_endpoint_identifier_user.so +load => res_pjsip_outbound_authenticator_digest.so +load => res_pjsip_outbound_registration.so +load => res_pjsip_rfc3326.so +load => res_pjsip_pubsub.so +load => res_pjsip_sdp_rtp.so +load => res_pjsip_session.so +load => res_rtp_asterisk.so +load => res_sorcery_astdb.so +load => res_sorcery_config.so +load => res_sorcery_memory.so \ No newline at end of file diff --git a/asterisk/config/pjproject.conf b/asterisk/config/pjproject.conf new file mode 100644 index 000000000..08368f210 --- /dev/null +++ b/asterisk/config/pjproject.conf @@ -0,0 +1 @@ +; Placeholder \ No newline at end of file diff --git a/asterisk/config/pjsip.conf b/asterisk/config/pjsip.conf new file mode 100644 index 000000000..9ef843563 --- /dev/null +++ b/asterisk/config/pjsip.conf @@ -0,0 +1,10 @@ +[system] +accept_multiple_sdp_answers = yes + +[global] +endpoint_identifier_order = ip, username + +[transport-tcp] +type = transport +protocol = tcp +bind = SIP_BINDADDR_PLACEHOLDER diff --git a/asterisk/config/pjsip_wizard.conf b/asterisk/config/pjsip_wizard.conf new file mode 100644 index 000000000..8d2f4e04a --- /dev/null +++ b/asterisk/config/pjsip_wizard.conf @@ -0,0 +1,22 @@ +[routr] +type = wizard +transport = transport-tcp +accepts_registrations = no +sends_auth = yes +sends_registrations = yes +force_rport = yes +outbound_proxy = sip:SIPPROXY_HOST_PLACEHOLDER:SIPPROXY_PORT_PLACEHOLDER\;lr ; Must be an IPv4 address +remote_hosts = SIPPROXY_HOST_PLACEHOLDER ; Needed for registrations +endpoint/context = local-ctx +endpoint/rtcp_mux = yes +endpoint/from_user = SIPPROXY_USERNAME_PLACEHOLDER +endpoint/accept_multiple_sdp_answers = yes +endpoint/direct_media = no +endpoint/disallow = all +endpoint/allow = CODECS_PLACEHOLDER +endpoint/dtmf_mode = DTMF_MODE_PLACEHOLDER +outbound_auth/username = SIPPROXY_USERNAME_PLACEHOLDER +outbound_auth/password = SIPPROXY_SECRET_PLACEHOLDER +registration/expiration = 600 +registration/max_retries = 1000000 +registration/retry_interval = 10 \ No newline at end of file diff --git a/asterisk/config/rtp.conf b/asterisk/config/rtp.conf new file mode 100644 index 000000000..396d2f62c --- /dev/null +++ b/asterisk/config/rtp.conf @@ -0,0 +1,3 @@ +[general] +rtpstart = RTP_PORT_START_PLACEHOLDER +rtpend = RTP_PORT_END_PLACEHOLDER diff --git a/asterisk/config/udptl.conf b/asterisk/config/udptl.conf new file mode 100644 index 000000000..08368f210 --- /dev/null +++ b/asterisk/config/udptl.conf @@ -0,0 +1 @@ +; Placeholder \ No newline at end of file diff --git a/asterisk/run.sh b/asterisk/run.sh new file mode 100644 index 000000000..0d20a699f --- /dev/null +++ b/asterisk/run.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env sh + +set -e + +USAGE=$(cat <<-END +To run this image you must provide the following environment variables: + ARI_USERNAME + ARI_SECRET + SIPPROXY_HOST + SIPPROXY_USERNAME + SIPPROXY_SECRET + RTP_PORT_START + RTP_PORT_END +END +) + +# Default environment variables +[ -z "$HTTP_BINDADDR" ] && { export HTTP_BINDADDR='0.0.0.0'; } +[ -z "$SIP_BINDADDR" ] && { export SIP_BINDADDR='0.0.0.0:6060'; } +[ -z "$SIPPROXY_PORT" ] && { export SIPPROXY_PORT='5060'; } +[ -z "$CODECS" ] && { export CODECS='g722,ulaw,alaw,gsm'; } +[ -z "$DTMF_MODE" ] && { export DTMF_MODE='rfc2833'; } + +# Required environment variables +[ -z "$ARI_USERNAME" ] || +[ -z "$ARI_SECRET" ] || +[ -z "$RTP_PORT_START" ] || +[ -z "$RTP_PORT_END" ] || +[ -z "$SIPPROXY_HOST" ] || +[ -z "$SIPPROXY_USERNAME" ] || +[ -z "$SIPPROXY_SECRET" ] && { + echo "$USAGE" + exit 1 +} + +sed -i.bak "s|ARI_USERNAME_PLACEHOLDER|${ARI_USERNAME}|g" /etc/asterisk/ari.conf +sed -i.bak "s|ARI_SECRET_PLACEHOLDER|${ARI_SECRET}|g" /etc/asterisk/ari.conf +sed -i.bak "s|SIP_BINDADDR_PLACEHOLDER|${SIP_BINDADDR}|g" /etc/asterisk/pjsip.conf +sed -i.bak "s|HTTP_BINDADDR_PLACEHOLDER|${HTTP_BINDADDR}|g" /etc/asterisk/http.conf +sed -i.bak "s|SIPPROXY_HOST_PLACEHOLDER|${SIPPROXY_HOST}|g" /etc/asterisk/pjsip_wizard.conf +sed -i.bak "s|SIPPROXY_PORT_PLACEHOLDER|${SIPPROXY_PORT}|g" /etc/asterisk/pjsip_wizard.conf +sed -i.bak "s|SIPPROXY_USERNAME_PLACEHOLDER|${SIPPROXY_USERNAME}|g" /etc/asterisk/pjsip_wizard.conf +sed -i.bak "s|SIPPROXY_SECRET_PLACEHOLDER|${SIPPROXY_SECRET}|g" /etc/asterisk/pjsip_wizard.conf +sed -i.bak "s|DTMF_MODE_PLACEHOLDER|${DTMF_MODE}|g" /etc/asterisk/pjsip_wizard.conf +sed -i.bak "s|CODECS_PLACEHOLDER|${CODECS}|g" /etc/asterisk/pjsip_wizard.conf +sed -i.bak "s|RTP_PORT_START_PLACEHOLDER|${RTP_PORT_START}|g" /etc/asterisk/rtp.conf +sed -i.bak "s|RTP_PORT_END_PLACEHOLDER|${RTP_PORT_END}|g" /etc/asterisk/rtp.conf + +rm /etc/asterisk/*.bak + +asterisk -v + +while sleep 3600; do :; done \ No newline at end of file diff --git a/asterisk/sounds/unavailable.g722 b/asterisk/sounds/unavailable.g722 new file mode 100644 index 000000000..a43834f20 --- /dev/null +++ b/asterisk/sounds/unavailable.g722 @@ -0,0 +1 @@ +.# `ݔnӒSՙrؔSٞnӖٝsٔ߼\ԒԖ޸q՗tYؐSX}՗֜޶xԔҚܛovV֘noט۱r[՝w{_ܔۻtޯY׼qYһz֚ٝ|՘ӿ~zϞӹW|۽ړܼXڒXԓڴo[UҜZzx֙ژT|ژRٚ]wԘpZ}כ^YܼnyQZ޶ZZӟؘ||ݔіU޿s\Ԕ[]Z;־_]՗XИww]|S׵tܑU۳~޾Stw[PݸmyV[֖wyՕWZݼ{o_ۿWx[Ҟ߫ݰrԜ]ݷVWڔ]}UМ]5, r\SV߶YVڞU՞Zԑ~БuVxڒִxؓ\ұ{V[ֹSݒ]s~ؾV[Ժ[Pxݐ}ޟoYVۗYmۜݔS׫]ԸOWn^׳pTYZU׸VW۳~Ѽ^U{yܕ\|l{lSWռnߴSwZҰ\՜vݓ߮oߺTӺ֚j߷u^|T׽rݚ[۝|ԕoݼԛty~\tٞsrmpY]owys׵pVr|XһsؔUܼX_U}Uq[]yW|ܛ_}V|YSݭ \ No newline at end of file diff --git a/cla.md b/cla.md deleted file mode 100644 index 2b0d49ca5..000000000 --- a/cla.md +++ /dev/null @@ -1,33 +0,0 @@ -## Fonoster Open Source Projects CLA - -Thank you for your interest in Fonoster Open Source Projects (FOSP). In order to clarify the intellectual property license granted with Contributions from any person or entity, FOSP must have a Contributor License Agreement ("CLA") on file that has been signed by each Contributor, indicating agreement to the license -terms below. This license is for your protection as a Contributor as well as the protection of FOSP and its users; it does not change your rights to use your own Contributions for any other purpose. - -You accept and agree to the following terms and conditions for Your present and future Contributions submitted to FOSP. In return, FOSP shall not use Your Contributions in a way that is contrary to the public benefit or inconsistent with the individual project license in which you made a Contribution. Except -for the license granted herein to FOSP and recipients of software distributed by FOSP, You reserve all right, title, and interest in and to Your Contributions. - -### 1. Definitions. - -"You" (or "Your") shall mean the copyright owner or legal entity authorized by the copyright owner that is making this Agreement with FOSP. For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "Contribution" shall mean any original work of authorship, including any modifications or additions to an existing work, that is intentionally submitted by You to FOSP for inclusion in, or documentation of, any of the products owned or managed by FOSP (the "Work"). For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to FOSP or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, FOSP for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by You as "Not a Contribution." - -### 2. Grant of Copyright License. - -Subject to the terms and conditions of this Agreement, You hereby grant to FOSP and to recipients of software distributed by FOSP a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works. - -### 3. Grant of Patent License. - -Subject to the terms and conditions of this Agreement, You hereby grant to FOSP and to recipients of software distributed by FOSP a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution(s) alone or by combination of Your Contribution(s) with the Work to which such Contribution(s) was submitted. If any entity institutes patent litigation against You or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the Work to which you have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Agreement for that Contribution or Work shall terminate as of the date such litigation is filed. - -### 4. You represent that you are legally entitled to grant the above license. - -If your employer(s) has rights to intellectual property that you create that includes your Contributions, you represent that you have received permission to make Contributions on behalf of that employer, that your employer has waived such rights for your Contributions to FOSP, or that your employer has executed a separate Corporate CLA with FOSP. - -### 5. You represent that each of Your Contributions is Your original creation. - -You represent that Your Contribution submissions include complete details of any third-party license or other restriction (including, but not limited to, related patents and trademarks) of which you are personally aware and which are associated with any part of Your Contributions. - -### 6. You are not expected to provide support for Your Contributions, except to the extent You desire to provide support. - -You may provide support for free, for a fee, or not at all. Unless required by applicable law or agreed to in writing, You provide Your Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. - -You agree to notify FOSP of any facts or circumstances of which you become aware that would make these representations inaccurate in any respect. diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 000000000..070390e2f --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +module.exports = { extends: ["@commitlint/config-conventional"] }; diff --git a/compose.dev.yaml b/compose.dev.yaml new file mode 100644 index 000000000..de6f91e1f --- /dev/null +++ b/compose.dev.yaml @@ -0,0 +1,80 @@ +services: + apiserver: + build: + context: . + dockerfile: ./mods/apiserver/Dockerfile + volumes: + - ./.keys:/opt/fonoster/keys + ports: + - 50051:50051 + environment: + - APISERVER_ROUTR_API_ENDPOINT + - APISERVER_SMTP_PORT + - APISERVER_SMTP_SECURE + + autopilot: + build: + context: . + dockerfile: ./mods/autopilot/Dockerfile + + routr: + ports: + - 51907:51907 + - 51908:51908 + - 5060:5060/udp + - 5060-5063:5060-5063 + environment: + # In development this environment variable points to an + # address not accessible from the container. Therefore, we + # need to manually point to the NAT's container address here. + NATS_PUBLISHER_URL: nats://nats:4222 + CONSOLE_PUBLISHER_ENABLED: "true" + volumes: + - ./etc/log4j2.yaml:/etc/routr/log4j2.yaml + + asterisk: + build: + context: . + dockerfile: ./asterisk/Dockerfile + ports: + - 6060:6060 + - 8088:8088 + extra_hosts: + apiserver: ${DOCKER_HOST_ADDRESS} + + postgres: + ports: + - 5432:5432 + + influxdb: + ports: + - 8086:8086 + + envoy: + extra_hosts: + apiserver: ${DOCKER_HOST_ADDRESS} + environment: + - loglevel=debug + + nats: + ports: + - 4222:4222 + + adminer: + image: adminer + restart: always + environment: + ADMINER_DEFAULT_SERVER: postgres + ports: + - 8282:8080 + + mailhog: + image: mailhog/mailhog + ports: + - 8025:8025 + - 1025:1025 + + simplephone: + image: psanders/simplephone:latest + ports: + - 8181:8080 \ No newline at end of file diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 000000000..df1439429 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,180 @@ +services: + apiserver: + image: fonoster/apiserver:latest + restart: unless-stopped + environment: + - APISERVER_APP_URL + - APISERVER_ASTERISK_ARI_PROXY_URL + - APISERVER_ASTERISK_ARI_SECRET + - APISERVER_ASTERISK_ARI_USERNAME + - APISERVER_CLOAK_ENCRYPTION_KEY + - APISERVER_DATABASE_URL + - APISERVER_IDENTITY_DATABASE_URL + - APISERVER_IDENTITY_ISSUER + - APISERVER_IDENTITY_WORKSPACE_INVITATION_FAIL_URL + - APISERVER_IDENTITY_WORKSPACE_INVITATION_URL + - APISERVER_INFLUXDB_INIT_ORG + - APISERVER_INFLUXDB_INIT_PASSWORD + - APISERVER_INFLUXDB_INIT_TOKEN + - APISERVER_INFLUXDB_INIT_USERNAME + - APISERVER_INFLUXDB_URL + - APISERVER_LOGS_FORMAT + - APISERVER_LOGS_LEVEL + - APISERVER_LOGS_TRANSPORT + - APISERVER_NATS_URL + - APISERVER_OWNER_EMAIL + - APISERVER_OWNER_NAME + - APISERVER_OWNER_PASSWORD + - APISERVER_SMTP_AUTH_PASS + - APISERVER_SMTP_AUTH_USER + - APISERVER_SMTP_HOST + - APISERVER_SMTP_PORT + - APISERVER_SMTP_SECURE + - APISERVER_SMTP_SENDER + - APISERVER_TWILIO_ACCOUNT_SID + - APISERVER_TWILIO_AUTH_TOKEN + - APISERVER_TWILIO_PHONE_NUMBER + expose: + - 50051:50051 + volumes: + - ./config/keys:/opt/fonoster/keys:ro + - ./config/integrations.json:/opt/fonoster/integrations.json:ro + + autopilot: + image: fonoster/autopilot:latest + restart: unless-stopped + expose: + - 50061 + environment: + - AUTOPILOT_AWS_S3_ACCESS_KEY_ID + - AUTOPILOT_AWS_S3_ENDPOINT + - AUTOPILOT_AWS_S3_REGION + - AUTOPILOT_AWS_S3_SECRET_ACCESS_KEY + - AUTOPILOT_CONVERSATION_PROVIDER + - AUTOPILOT_INTEGRATIONS_FILE + - AUTOPILOT_KNOWLEDGE_BASE_ENABLED + - AUTOPILOT_LOGS_FORMAT + - AUTOPILOT_LOGS_LEVEL + - AUTOPILOT_LOGS_TRANSPORT + - AUTOPILOT_OPENAI_API_KEY + - AUTOPILOT_UNSTRUCTURED_API_KEY + - AUTOPILOT_UNSTRUCTURED_API_URL + volumes: + - ./config/integrations.json:/opt/fonoster/integrations.json:ro + + routr: + image: fonoster/routr-one:latest + restart: unless-stopped + environment: + DATABASE_URL: ${ROUTR_DATABASE_URL} + EXTERNAL_ADDRS: ${ROUTR_EXTERNAL_ADDRS} + LOGS_FORMAT: ${ROUTR_LOGS_FORMAT} + LOGS_LEVEL: ${ROUTR_LOGS_LEVEL} + LOGS_TRANSPORT: ${ROUTR_LOGS_TRANSPORT} + NATS_PUBLISHER_ENABLED: true + NATS_PUBLISHER_URL: ${ROUTR_NATS_PUBLISHER_URL} + RTPENGINE_HOST: ${ROUTR_RTPENGINE_HOST} + START_INTERNAL_DB: "false" + expose: + - 51907 + - 51908 + ports: + - 5060:5060/udp + - 5060-5063:5060-5063 + volumes: + - routrdb:/var/lib/postgresql/data + + # RTPEngine uses a range of ports to handle RTP traffic. Because exposing a large range of ports + # is not possible in Docker, we need to use network_mode: host. + # + # Unfortunately, network_mode: host is not supported for Windows or Mac. + # In those cases, we need to use a different approach. + # + # By default we are opening a small range of ports (10000-10100) to handle RTP traffic. + # However, this is not enough for production environments. + # + # We recommend that when using Linux you use network_mode: host and remove the ports section. + rtpengine: + image: fonoster/rtpengine:latest + restart: unless-stopped + platform: linux/x86_64 + ports: + - 10000-10100:10000-10100/udp + - 8080:8080 + environment: + PORT_MAX: ${RTPENGINE_PORT_MAX} + PORT_MIN: ${RTPENGINE_PORT_MIN} + PUBLIC_IP: ${RTPENGINE_PUBLIC_IP} + + asterisk: + image: fonoster/asterisk:latest + restart: unless-stopped + environment: + ARI_PROXY_URL: ${ASTERISK_ARI_PROXY_URL} + ARI_SECRET: ${ASTERISK_ARI_SECRET} + ARI_USERNAME: ${ASTERISK_ARI_USERNAME} + CODECS: ${ASTERISK_CODECS} + DTMF_MODE: ${ASTERISK_DTMF_MODE} + RTP_PORT_END: ${ASTERISK_RTP_PORT_END} + RTP_PORT_START: ${ASTERISK_RTP_PORT_START} + SIPPROXY_HOST: ${ASTERISK_SIPPROXY_HOST} + SIPPROXY_PORT: ${ASTERISK_SIPPROXY_PORT} + SIPPROXY_SECRET: ${ASTERISK_SIPPROXY_SECRET} + SIPPROXY_USERNAME: ${ASTERISK_SIPPROXY_USERNAME} + expose: + - 6060 + + postgres: + image: postgres:16.2-alpine + restart: unless-stopped + environment: + PGTZ: UTC + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_USER: ${POSTGRES_USER} + TZ: UTC + expose: + - 5432 + volumes: + - db:/var/lib/postgresql/data + + influxdb: + image: influxdb:2 + restart: unless-stopped + expose: + - 8086 + environment: + DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: ${INFLUXDB_INIT_TOKEN} + DOCKER_INFLUXDB_INIT_BUCKET: calls + DOCKER_INFLUXDB_INIT_MODE: setup + DOCKER_INFLUXDB_INIT_ORG: ${INFLUXDB_INIT_ORG} + DOCKER_INFLUXDB_INIT_PASSWORD: ${INFLUXDB_INIT_PASSWORD} + DOCKER_INFLUXDB_INIT_USERNAME: ${INFLUXDB_INIT_USERNAME} + volumes: + - influxdb:/var/lib/influxdb2 + + nats: + image: nats:latest + restart: unless-stopped + expose: + - 4222 + + envoy: + image: envoyproxy/envoy:v1.31.0 + restart: unless-stopped + volumes: + - ./config/envoy.yaml:/etc/envoy/envoy.yaml:ro + # If using letsencrypt, you need to mount the letsencrypt directory + # by uncommenting the following line and changing the domain name to match your domain. + # + # Symbolic links will not work here!!! + # + # - ./path/to/letsencrypt:/etc/letsencrypt:ro + ports: + - 8449:8449 + # If using letsencrypt, you need to expose port 443 and remove the default HTTP port (8449) + # - 443:443 + +volumes: + db: + routrdb: + influxdb: diff --git a/config/assistant.example.json b/config/assistant.example.json new file mode 100644 index 000000000..5e47243dc --- /dev/null +++ b/config/assistant.example.json @@ -0,0 +1,106 @@ +{ + "conversationSettings": { + "firstMessage": "Hello, this is Enma from La Bella Ristorante. How are you today?", + "systemPrompt": "[Role]\n\nYou are a voice agent designed to facilitate fluid and engaging conversations with users. Your primary role is to provide relevant and actionable information related about \"La Bella Ristorante\", assist with problem-solving, and maintain a coherent conversational flow. Always strive to be concise but informative, ensuring user satisfaction with each interaction.\n\n[Tone and Voice]\n\n- Maintain a friendly professional tone in all conversations\n- Adapt your responses based on the user's emotional state. If they seem confused, frustrated empathy, encouragement\n- Use human-like speech patterns to ensure the conversation feels smooth and engaging (e.g., avoid overly formal or robotic language)\n\n[Conversation Constraints]\n\nUse the following guidelines to ensure effective and engaging conversations:\n\n- Keep responses concise and conversational - aim for short sentence\n- When discussing sensitive or personal information, maintain a neutral, professional tone to ensure user comfort\n- Ensure that conversations remain focused on the topic at hand, but be flexible enough to handle related follow-up questions\n- When asked a question you don't know the answer to, tell you don't and offer to transfer the user to a human agent if necessary\n- Avoid using emojis, line-breaks, or other non-verbal communication in your responses\n\n[Contextual Understanding]\n\n- Leverage previous user inputs to contextualize your responses. For example, if the user mentioned a recent issue refer to it in your responses.\n- Ensure your suggestions are situationally appropriate to the context of the conversation.\n\n[Safety and Privacy]\n\n- You should refer the user to 911 or emergency services if they are in immediate danger or require urgent assistance.\n\n[Available Tools]\n\nYou have access to the following tools and capabilities:\n\n- Knowledge Base: User the knowledge base to provide information about the menu\n- Use the `getAvailableTimes` tool to check the availability of the user\n- User the `bookReservation` tool to help users book appointments or reservations\n- When the user says goodbye or similar closing phrases, you can use the `hangup` tool to end the conversation\n- When the user wants to speak to a human agent, you can use the `transfer` tool to transfer the conversation to a human agent", + "goodbyeMessage": "Goodbye! Have a great day!", + "systemErrorMessage": "I'm sorry, but I seem to be having trouble. Please try again later.", + "maxSpeechWaitTimeout": 10000, + "transferOptions": { + "phoneNumber": "+17853178070", + "message": "Please hold while I transfer you to a live agent.", + "timeout": 30000 + }, + "idleOptions": { + "message": "Are you still there?", + "timeout": 30000, + "maxTimeoutCount": 2 + }, + "vad": { + "activationThreshold": 0.30, + "deactivationThreshold": 0.15, + "debounceFrames": 1 + } + }, + "languageModel": { + "provider": "openai", + "apiKey": "your-api-key", + "model": "gpt-4o", + "temperature": 1, + "maxTokens": 240, + "knowledgeBase": [], + "tools": [ + { + "name": "getAvailableTimes", + "description": "Get available appointment times for a specific date.", + "parameters": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date" + } + }, + "required": [ + "date" + ] + }, + "requestStartMessage": "Please wait a moment.", + "operation": { + "method": "get", + "url": "https://api.example.com/getAvailableTimes", + "waitForResponse": true + } + }, + { + "name": "bookReservation", + "description": "Book a table reservation for a specific date and time.", + "parameters": { + "type": "object", + "properties": { + "callerNumber": { + "type": "string" + }, + "callDirection": { + "type": "string" + }, + "requestor": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date" + }, + "time": { + "type": "string", + "format": "time" + } + }, + "required": [ + "callerNumber", + "callDirection", + "requestor", + "date", + "time" + ] + }, + "requestStartMessage": "Please wait a moment.", + "operation": { + "type": "post", + "url": "https://api.example.com/bookReservation", + "waitForResponse": false, + "headers": { + "x-api-key": "your-api-key" + } + } + } + ] + }, + "eventsHook": { + "url": "https://api.example.com/events", + "headers": { + "Content-Type": "application/json", + "Authorization": "Basic NDcxM..." + }, + "events": ["all"] + } +} diff --git a/config/envoy-tls.yaml b/config/envoy-tls.yaml new file mode 100644 index 000000000..1f5070d0b --- /dev/null +++ b/config/envoy-tls.yaml @@ -0,0 +1,76 @@ +# Envoy Configuration File for TLS Termination with Let's Encrypt Certificate +# +# For creating a self-signed certificate, see: +# https://itnext.io/how-to-setup-and-test-tls-in-grpc-grpc-web-1b67cc4413e6 +# +# When using self-signed certificates, additional steps are required to ensure compatibility with the browser. +# For instance, to connect to the API using the WebSDK, you must trust the certificate in your browser. +# +# Conversely, if you are using the NodeSDK, you will need to add the CA directly to the client. +static_resources: + listeners: + - name: listener_https + address: + socket_address: { address: 0.0.0.0, port_value: 443 } + filter_chains: + - filters: + - name: envoy.filters.network.http_connection_manager + typed_config: + "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager + codec_type: auto + stat_prefix: ingress_http + route_config: + name: local_route + virtual_hosts: + - name: local_service + domains: ["*"] + routes: + - match: { prefix: "/" } + route: + cluster: api-gateway-proxy + timeout: 0s + max_stream_duration: + grpc_timeout_header_max: 0s + cors: + allow_origin_string_match: + - prefix: "*" + allow_methods: GET, PUT, DELETE, POST, OPTIONS + allow_headers: token,accesskeyid,keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout + max_age: "1728000" + expose_headers: grpc-status,grpc-message + http_filters: + - name: envoy.filters.http.grpc_web + typed_config: + "@type": type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb + - name: envoy.filters.http.cors + typed_config: + "@type": type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors + - name: envoy.filters.http.router + typed_config: + "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router + transport_socket: + name: envoy.transport_sockets.tls + typed_config: + "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext + common_tls_context: + tls_certificates: + - certificate_chain: + filename: "/etc/letsencrypt/fullchain.pem" + private_key: + filename: "/etc/letsencrypt/privkey.pem" + + clusters: + - name: api-gateway-proxy + type: logical_dns + connect_timeout: 20s + http2_protocol_options: {} + lb_policy: round_robin + load_assignment: + cluster_name: api-gateway-proxy + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: apiserver + port_value: 50051 diff --git a/config/envoy.yaml b/config/envoy.yaml new file mode 100644 index 000000000..29a617b19 --- /dev/null +++ b/config/envoy.yaml @@ -0,0 +1,76 @@ +# Envoy configuration without tls for development and testing. +# Do not use this configuration in production. Please check the docs for examples using tls. +static_resources: + listeners: + - name: listener_http + address: + socket_address: { address: 0.0.0.0, port_value: 8449 } + filter_chains: + - filters: + - name: envoy.filters.network.http_connection_manager + typed_config: + "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager + codec_type: auto + stat_prefix: ingress_http + route_config: + name: local_route + virtual_hosts: + - name: local_service + domains: ["*"] + routes: + - match: { prefix: "/api" } + route: + cluster: apiserver-cluster-http + timeout: 0s + - match: { prefix: "/" } + route: + cluster: apiserver-cluster + timeout: 0s + max_stream_duration: + grpc_timeout_header_max: 0s + cors: + allow_origin_string_match: + - prefix: "*" + allow_methods: GET, PUT, DELETE, POST, OPTIONS + allow_headers: token,accesskeyid,keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout + max_age: "1728000" + expose_headers: grpc-status,grpc-message + http_filters: + - name: envoy.filters.http.grpc_web + typed_config: + "@type": type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb + - name: envoy.filters.http.cors + typed_config: + "@type": type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors + - name: envoy.filters.http.router + typed_config: + "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router + + clusters: + - name: apiserver-cluster + type: logical_dns + connect_timeout: 20s + http2_protocol_options: {} + lb_policy: round_robin + load_assignment: + cluster_name: apiserver-cluster + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: apiserver + port_value: 50051 + - name: apiserver-cluster-http + type: logical_dns + connect_timeout: 20s + lb_policy: round_robin + load_assignment: + cluster_name: apiserver-cluster-http + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: apiserver + port_value: 9876 diff --git a/config/integrations.example.json b/config/integrations.example.json new file mode 100644 index 000000000..a07898c11 --- /dev/null +++ b/config/integrations.example.json @@ -0,0 +1,53 @@ +[ + { + "name": "Google TTS", + "productRef": "tts.google", + "type": "tts", + "credentials": { + "client_email": "projectacct@REDACTED-g2.iam.gserviceaccount.com", + "private_key": "REDACTED" + } + }, + { + "name": "Google STT", + "productRef": "stt.google", + "type": "stt", + "credentials": { + "client_email": "projectacct@REDACTED-g2.iam.gserviceaccount.com", + "private_key": "REDACTED" + } + }, + { + "name": "Deepgram STT", + "productRef": "stt.deepgram", + "type": "stt", + "credentials": { + "apiKey": "REDACTED" + } + }, + { + "name": "Deepgram TTS", + "productRef": "tts.deepgram", + "type": "tts", + "credentials": { + "apiKey": "REDACTED" + } + }, + { + "name": "Azure TTS", + "productRef": "tts.azure", + "type": "tts", + "credentials": { + "subscriptionKey": "REDACTED", + "serviceRegion": "eastus" + } + }, + { + "name": "Eleven Labs TTS", + "productRef": "tts.elevenlabs", + "type": "tts", + "credentials": { + "apiKey": "REDACTED" + } + } +] diff --git a/config/nginx.conf b/config/nginx.conf new file mode 100644 index 000000000..eabca4ad8 --- /dev/null +++ b/config/nginx.conf @@ -0,0 +1,20 @@ +events { + worker_connections 1024; +} + +http { + server { + listen 80; + listen [::]:80; + # Replace example.com with your domain + server_name example.com; + + location /.well-known/acme-challenge/ { + root /var/www/html; + } + + location / { + return 404; + } + } +} diff --git a/config/sample.pdf b/config/sample.pdf new file mode 100644 index 000000000..d648be853 Binary files /dev/null and b/config/sample.pdf differ diff --git a/docker/README.md b/docker/README.md deleted file mode 100644 index 274695bbd..000000000 --- a/docker/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# Deploy with Docker - -The easiest way to start a Fonoster instance is with our docker-in-docker (dind) installer. Before running the operator, make sure you have [Docker Engine](https://docs.docker.com/engine/install/) installed on your machine: - -**TL;DR** - -## Unix - -```bash -docker run -it --rm \ - -e CONFIG_PATH=$(pwd)/fonoster/config \ - --volume /var/run/docker.sock:/var/run/docker.sock \ - --volume $(pwd)/fonoster:/out:rw \ - fonoster/fonoster -``` - -## Windows - -**CMD** - -```cmd -docker run -it --rm ^ - -e CONFIG_PATH="%cd%"/fonoster/config ^ - --volume //var/run/docker.sock:/var/run/docker.sock ^ - --volume "%cd%"/fonoster:/out:rw ^ - fonoster/fonoster -``` - -**PowerShell** - -```powershell -docker run -it --rm ` - -e CONFIG_PATH=${pwd}/fonoster/config ` - --volume /var/run/docker.sock:/var/run/docker.sock ` - --volume ${pwd}/fonoster:/out:rw ` - fonoster/fonoster -``` - -## Additional Entrypoints - -The dind operator provides additional endpoints. Use `--entrypoint="/update.sh"` to update your instance, or use `--entrypoint="/stop.sh"` to stop all your services. - -## Troubleshooting - -A known issue with the operator causes Minio to fail if there was a previous installation in the host. You will see an error on Minio's service indicating that there is a bad authentication. To fix the issue, you must manually update the password on Minio to match the one on your `.env` or start a fresh installation. - -## Environment Variables - -- `DOCKER_HOST_IP` - If you run on a cloud provider, like Digital Ocean, the installer will use your public IP. For a local environment, you must set the value of your host's IP (it won't be automatic.) -- `DOMAIN` - The Domain for your API endpoint. This is required for TLS support. The DNS entry must point to the public IP of your Docker Host -- `ENABLE_TLS` - Set to `true` if you want to generate and use a set of Let's Encrypt certificates. Your `DOMAIN` must be publicly accessible. Defaults to `false`. -- `HTTP_PORT` - Unsecure port for HTTP connections. Defaults to `51051`. -- `HTTPS_PORT` - Secure port for HTTP connections. Defaults to `51051`. -- `LETSENCRYPT_EMAIL` - We recommend setting this value to get important communication from Let's Encrypt. Defaults to `admin@$DOMAIN`. -- `GLOBAL_SIP_DOMAIN` - The main SIP Domain. New Domains will be under this one -- `EXTRA_SERVICES` - A comma-separated list of additional services to add. -- `FONOSTER_VERSION` - Use to indicate the version of Fonoster you wish to install. It must be a patch version. -- `CONFIG_PATH` - Use this environment variable to set the location of your configuration. **Required** -- `VERBOSE` - Controls the verbosity of the operator. Defaults to `false`. diff --git a/docker/bin/dir.sh b/docker/bin/dir.sh deleted file mode 100755 index 136bd24d3..000000000 --- a/docker/bin/dir.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -function dir() { - [[ -z "$*" ]] && error "No directories provided" - - for directory in "$@"; do - if [ ! -d "$directory" ]; then - mkdir -p "$directory" - else - warning "The directory '$directory' already exists" - fi - done -} diff --git a/docker/bin/execute.sh b/docker/bin/execute.sh deleted file mode 100755 index db7a97015..000000000 --- a/docker/bin/execute.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash - -COMMAND_LOGS="/var/log/fonoster.log" - -function exec_command() { - local COMMAND="$1" - - if [ -n "$VERBOSE" ]; then - eval "$COMMAND" - else - eval "$COMMAND" >>$COMMAND_LOGS 2>&1 - fi -} - -function execute() { - [[ -z "$*" ]] && error "No commands provided" - - for command in "$@"; do - info "Executing command: $command... 🏁 " - - if ! exec_command "$command"; then - warning "Failed to execute command: '$command'" - - if [ -f $COMMAND_LOGS ]; then - line - - if [ -z "$VERBOSE" ]; then - warning "Last 10 lines of execution logs: 👀 " - - line - - echo " -------------------------------------------------- " - echo -e "\n $(tail -10 $COMMAND_LOGS) \n" - echo " -------------------------------------------------- " - - line - - info "To see the full logs, open the file: $COMMAND_LOGS" - fi - - line - fi - - error "Unable to continue. Exiting... ⭕ " - else - info "Successfully executed command: '$command' ✅ " - fi - done -} diff --git a/docker/bin/os.sh b/docker/bin/os.sh deleted file mode 100755 index a7dd28845..000000000 --- a/docker/bin/os.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -# Operating System -function get_os() { - OS="unknow" - - case "$OSTYPE" in - linux-gnu*) - OS="linux" - ;; - cygwin* | msys* | win32*) - OS="windows" - ;; - darwin*) - OS="macos" - ;; - *) - case "$(uname -s)" in - CYGWIN* | MINGW32* | MINGW64* | MSYS*) - OS="windows" - ;; - esac - ;; - esac - - OS=$(echo "$OS" | awk '{print toupper($0)}') - - export OS -} - -get_os diff --git a/docker/bin/package.sh b/docker/bin/package.sh deleted file mode 100755 index 2fddcbfe6..000000000 --- a/docker/bin/package.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -# Check if the command is installed on the system -function command_is_installed() { - [[ -z "$*" ]] && error "No command provided" - - for command in "$@"; do - info "Checking if command '$command' is installed..." - - if ! type "$command" >/dev/null 2>&1; then - error "The command '$command' not installed. Please, install it first." - fi - done -} - -# Install Package Globally -function package_install_global() { - [[ -z "$*" ]] && error "No packages provided" - - command_is_installed "npm" - - for package in "$@"; do - if npm ls -g "$package" --depth=0 | grep "$package" >/dev/null 2>&1; then - info "The package $package is already installed globally" - else - info "Installing $package global package..." - execute "npm install -g $package" - fi - done -} - -# Install Package Locally -function package_install() { - [[ -z "$*" ]] && error "No packages provided" - - command_is_installed "npm" - - for package in "$@"; do - if npm ls "$package" --depth=0 | grep "$package" >/dev/null 2>&1; then - info "The package $package is already installed locally" - else - info "Installing $package local package..." - execute "npm install $package" - fi - done -} diff --git a/docker/bin/print.sh b/docker/bin/print.sh deleted file mode 100755 index e5ebb479c..000000000 --- a/docker/bin/print.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -function line() { - echo " " -} - -function prefix() { - local message - - message=$(echo "$1" | awk '{print toupper($0)}') - - echo -e "[$message]:" -} - -function error() { - for err in "$@"; do - echo -e "🔥 $(prefix "error") $err" - done - - exit 1 -} - -function info() { - echo -e "🔔 $(prefix "info") $1" -} - -function input() { - echo -n "📥 $(prefix "input") $1" -} - -function warning() { - echo -e "⚠️ $(prefix "warning") $1" -} diff --git a/docker/commands/install.sh b/docker/commands/install.sh deleted file mode 100755 index ed3337e21..000000000 --- a/docker/commands/install.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/bin/bash - -function install() { - info "Checking if the application is already installed..." - check_if_installed - - [ -z "$HTTP_PORT" ] && HTTP_PORT=51051 - [ -z "$HTTPS_PORT" ] && HTTPS_PORT=443 - - info "Checking if the required ports are available..." - check_ports "$HTTP_PORT" "$HTTPS_PORT" - - # Get the latest version of the application from the GitHub repository - get_latest_version - - [ -z "$FONOSTER_VERSION" ] && FONOSTER_VERSION=$FONOSTER_LATEST_VERSION - check_version "$FONOSTER_VERSION" - - info "Installing Fonoster... 📦 " - execute "cd /work" - - info "Generating private key... 🔑 " - { - openssl rand -hex 16 - } >config/private_key - - info "Configuring docker host and sets environment variables... 💻 " - [ -z "$DOCKER_HOST_IP" ] && DOCKER_HOST_IP=$(netdiscover -field publicv4) - - { - echo "" - echo "DOCKER_HOST_ADDRESS=$DOCKER_HOST_IP" - echo "RTPE_HOST=$DOCKER_HOST_IP" - } >>operator/.env - - info "Configuring domain... 🌐 " - [ -z "$DOMAIN" ] && DOMAIN=$DOCKER_HOST_IP - - if [ "$ENABLE_TLS" = "true" ]; then - [ -z "$LETSENCRYPT_EMAIL" ] && LETSENCRYPT_EMAIL="admin@$DOMAIN" - - { - echo "LETSENCRYPT_DOMAIN=$DOMAIN" - echo "LETSENCRYPT_EMAIL=$LETSENCRYPT_EMAIL" - echo "PUBLIC_URL=https://$DOMAIN" - } >>operator/.env - - else - echo "PUBLIC_URL=http://$DOMAIN:$HTTP_PORT" >>operator/.env - fi - - [ "$GLOBAL_SIP_DOMAIN" ] && { - echo "GLOBAL_SIP_DOMAIN=$GLOBAL_SIP_DOMAIN" >>operator/.env - } - - info "Generating service secrets... 🔑 " - execute "cd operator" "./gen-secrets.sh" - - set_env - - info "Copying the application to the output directory... 📁 " - execute "cp -a /work/* /out" - - info "Creating volumes for minio(s3 buckets) and redis... 💾 " - execute "docker volume create --name=datasource" "docker volume create --name=data1-1" "docker volume create --name=esdata1" - - info "Creating service and user credentials... 🔑 " - execute "docker-compose -f init.yml up service_creds user_creds" - - info "Removing initiaization resources... 📦 " - execute "docker ps --filter status=exited -q | xargs docker rm >/dev/null" - - info "Please wait, the next command will take a few minutes... 🕐 " - if [ "$ENABLE_TLS" = "true" ]; then - execute "bash ./basic-network.sh start" - else - execute "bash ./basic-network.sh start-unsecure" - fi - - while [ "$(docker ps -f health=healthy | grep fonoster/routr)" == "" ]; do - info "Waiting for SIP Proxy to be ready... 🕐 " - sleep 15 - done - - info "Bootstrapping sip-proxy and creating initial buckets... 💾 " - info "Please wait, the next command will take a few minutes... 🕐 " - execute "docker-compose -f init.yml up create_buckets bootstrap_sipnet" -} diff --git a/docker/commands/stop.sh b/docker/commands/stop.sh deleted file mode 100644 index 9f73384db..000000000 --- a/docker/commands/stop.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -function stop() { - local VERSION COMPOSE_PROJECT_VERSION - - info "Stopping Fonoster application... 🚀 " - - execute "cd /out/operator" - - [ -f .env ] || error "You don't have a Fonoster application installed in this directory. Please, install it first." - - VERSION=$FONOSTER_VERSION - COMPOSE_PROJECT_VERSION=$(grep COMPOSE_PROJECT_VERSION .env | cut -d '=' -f2) - - EXTRA_SERVICES=$(grep EXTRA_SERVICES .env | cut -d '=' -f2) - - [ -z "$VERSION" ] && VERSION=$FONOSTER_LATEST_VERSION - [ -z "$COMPOSE_PROJECT_VERSION" ] && error "Could not get the current version of Fonoster application." - - info "Stop Fonoster application... 🚨 " - execute "bash ./basic-network.sh down" - -} diff --git a/docker/commands/update.sh b/docker/commands/update.sh deleted file mode 100755 index f8e3af3fd..000000000 --- a/docker/commands/update.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -function update() { - local VERSION COMPOSE_PROJECT_VERSION - - info "Updating Fonoster application... 🚀 " - - execute "cd /out/operator" - - [ -f .env ] || error "You don't have a Fonoster application installed in this directory. Please, install it first." - - # Get the latest version of the application from the GitHub repository - get_latest_version - - VERSION=$FONOSTER_VERSION - COMPOSE_PROJECT_VERSION=$(grep COMPOSE_PROJECT_VERSION .env | cut -d '=' -f2) - - EXTRA_SERVICES=$(grep EXTRA_SERVICES .env | cut -d '=' -f2) - - [ -z "$VERSION" ] && VERSION=$FONOSTER_LATEST_VERSION - [ -z "$COMPOSE_PROJECT_VERSION" ] && error "Could not get the current version of Fonoster application." - - check_version "$VERSION" - - info "CURRENT VERSION: $COMPOSE_PROJECT_VERSION | NEW VERSION: $VERSION" - - if [[ "$(is_patch_of "$VERSION" "$COMPOSE_PROJECT_VERSION")" == "true" ]]; then - info "Stop Fonoster application... 🚨 " - execute "bash ./basic-network.sh down" - - info "Updating Compose version... 🔍 " - FONOSTER_VERSION=$VERSION - set_env - - info "Starting Fonoster application... 🚀 " - if [ "$ENABLE_TLS" = "true" ]; then - execute "bash ./basic-network.sh start" - else - execute "bash ./basic-network.sh start-unsecure" - fi - else - info "The application is already up to date. The upgrading only works with a new patch version of your current version." - info "If it is not the case, please, update your application manually." - fi -} diff --git a/docker/helpers/check-if-installed.sh b/docker/helpers/check-if-installed.sh deleted file mode 100755 index 75bf8069f..000000000 --- a/docker/helpers/check-if-installed.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -# Validate that there is no project installation in the current directory -function check_if_installed() { - PROJECT_ENV="/out/operator/.env" - - if [[ -f $PROJECT_ENV ]]; then - error "You already have a project installed in this directory. Please, remove the current installation first as this may cause issues." - fi -} diff --git a/docker/helpers/check-ports.sh b/docker/helpers/check-ports.sh deleted file mode 100755 index 7b561acfa..000000000 --- a/docker/helpers/check-ports.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -# Validate the required ports are available for the application -function check_ports() { - for port in "$@"; do - [ -z "$port" ] && error "Port '$port' is not a valid port" - - CONTAINER_USING_PORT="$(docker ps --format "table {{.ID}}\t{{.Ports}}" | grep -E ":$port" | awk '{print $1}')" - - if [ -n "$CONTAINER_USING_PORT" ]; then - warning "Port '$port' is already in use by the container '$CONTAINER_USING_PORT', please stop the process and try again." - warning "Another option is run the container with the (e.g. '-e HTTPS_PORT') option to specify a different port." - - error "Unable to continue. Exiting..." - fi - done -} diff --git a/docker/helpers/check-version.sh b/docker/helpers/check-version.sh deleted file mode 100644 index cfa0096cf..000000000 --- a/docker/helpers/check-version.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -function check_version() { - local CURRENT="$1" - local LATEST=$FONOSTER_LATEST_VERSION - - [[ $CURRENT != "$LATEST" ]] && info "Comparing version $CURRENT with the latest version $LATEST ... 🔍 " - - if [[ "$(semver validate "$CURRENT")" == "invalid" ]]; then - error "Invalid version: $CURRENT" - fi - - COMPARE_VERSION=$(semver compare "$CURRENT" "$LATEST") - - if [[ $COMPARE_VERSION == "1" ]]; then - error "The version is greater than the latest version: $CURRENT > $LATEST" - elif [[ $COMPARE_VERSION == "-1" ]]; then - info "The version $CURRENT is less than the latest version. You can update your application to the latest version: $LATEST" - fi -} - -function is_patch_of() { - local PATCH_VERSION="$1" - local VERSION="$2" - - [ -z "$PATCH_VERSION" ] && error "The patch version is empty." - [ -z "$VERSION" ] && error "The version is empty." - - COMPARE_VERSION=$(semver compare "$PATCH_VERSION" "$VERSION") - - if [[ "$(semver get major "$VERSION")" == "$(semver get major "$COMPOSE_PROJECT_VERSION")" && - "$(semver get minor "$VERSION")" == "$(semver get minor "$COMPOSE_PROJECT_VERSION")" && - "$(semver get patch "$PATCH_VERSION")" != "$(semver get patch "$VERSION")" ]]; then - echo "true" - return - else - echo "false" - return - fi -} diff --git a/docker/helpers/latest-version.sh b/docker/helpers/latest-version.sh deleted file mode 100644 index 89c129e63..000000000 --- a/docker/helpers/latest-version.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -function get_latest_version() { - local PROJECT_TMP="fonoster-tmp" - - if [ -z "$FONOSTER_LATEST_VERSION" ]; then - info "Getting latest version of Fonoster... 🔍 " - execute "git clone https://github.com/fonoster/fonoster --quiet --depth=1 -b 0.3 --single-branch $PROJECT_TMP" - - FONOSTER_LATEST_VERSION=$(cat $PROJECT_TMP/lerna.json | grep version | cut -d ':' -f2 | cut -d '"' -f2) - execute "rm -rf $PROJECT_TMP" - fi - - [ -z "$FONOSTER_LATEST_VERSION" ] && error "Could not get the latest version of Fonoster application." - - export FONOSTER_LATEST_VERSION -} diff --git a/docker/helpers/set-env.sh b/docker/helpers/set-env.sh deleted file mode 100644 index 0185468c3..000000000 --- a/docker/helpers/set-env.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -function set_env() { - DS_SECRET=$(grep DS_SECRET .env | cut -d '=' -f2) - SIPPROXY_SECRET=$(grep SIPPROXY_SECRET .env | cut -d '=' -f2) - - sed -i.bak -e "s#requirepass .*#requirepass ${DS_SECRET}#g" "./../config/redis.conf" - sed -i.bak -e "s#changeit#${SIPPROXY_SECRET}#g" "./../config/bootstrap.yml" - - [ -n "$CONFIG_PATH" ] && sed -i.bak -e "s#CONFIG=/opt/fonoster/config#CONFIG=$CONFIG_PATH#g" ".env" - [ -n "$HTTP_PORT" ] && sed -i.bak -e "s#HTTP_PORT=51051#HTTP_PORT=$HTTP_PORT#g" ".env" - [ -n "$HTTPS_PORT" ] && sed -i.bak -e "s#HTTPS_PORT=51051#HTTPS_PORT=$HTTPS_PORT#g" ".env" - - [ -n "$FONOSTER_VERSION" ] && sed -i.bak -e "s#COMPOSE_PROJECT_VERSION=.*#COMPOSE_PROJECT_VERSION=$FONOSTER_VERSION#g" ".env" - [ -n "$EXTRA_SERVICES" ] && sed -i.bak -e "s#EXTRA_SERVICES=.*#EXTRA_SERVICES=$EXTRA_SERVICES#g" ".env" - [ -n "$SECRETS_TOKEN" ] && sed -i.bak -e "s#SECRETS_TOKEN=.*#SECRETS_TOKEN=$SECRETS_TOKEN#g" ".env" - [ -n "$SECRETS_URL" ] && sed -i.bak -e "s#SECRETS_URL=.*#SECRETS_URL=$SECRETS_URL#g" ".env" - [ -n "$DS_HOST" ] && sed -i.bak -e "s#DS_HOST=.*#DS_HOST=$DS_HOST#g" ".env" - [ -n "$DS_SECRET" ] && sed -i.bak -e "s#DS_SECRET=.*#DS_SECRET=$DS_SECRET#g" ".env" -} diff --git a/docker/run.sh b/docker/run.sh deleted file mode 100755 index 29d15eccd..000000000 --- a/docker/run.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash - -set -e - -BASE_DIR=$(dirname "$0") - -BIN="$BASE_DIR/bin" -COMMANDS="$BASE_DIR/commands" -HELPERS="$BASE_DIR/helpers" - -# Bin sources -source "$BIN/os.sh" -source "$BIN/print.sh" -source "$BIN/dir.sh" -source "$BIN/package.sh" -source "$BIN/execute.sh" - -# Helpers sources -source "$HELPERS/check-ports.sh" -source "$HELPERS/check-if-installed.sh" -source "$HELPERS/latest-version.sh" -source "$HELPERS/check-version.sh" -source "$HELPERS/set-env.sh" - -# Commands sources -source "$COMMANDS/install.sh" -source "$COMMANDS/update.sh" -source "$COMMANDS/stop.sh" - -INPUT=$1 -shift - -COMMAND=$(echo "$INPUT" | awk '{print tolower($0)}') - -info "Fonoster Docker-backed Infrastructure Management 📦 • Current OS: $OS" - -case $COMMAND in -install | setup | init | start) - install "$@" - ;; -upgrade | update) - update "$@" - ;; -stop) - stop "$@" - ;; -*) - error "Unknown command: $COMMAND" - ;; -esac diff --git a/docs/operator/adding_support_for_secrets.md b/docs/operator/adding_support_for_secrets.md deleted file mode 100644 index 45c1a800b..000000000 --- a/docs/operator/adding_support_for_secrets.md +++ /dev/null @@ -1,138 +0,0 @@ -# Adding Support for Secrets (Experimental) - -Project Fonos offers experimental support for Secret management based on [Hashicorp Vault](https://www.vaultproject.io/). - -As with anything related to managing data, we recommend using a [managed service](https://www.hashicorp.com/blog/vault-on-the-hashicorp-cloud-platform) to back your secrets. However, to help you get started, we include a basic Vault deployment as part of the operator's scripts. - -To run Vault, first, you need to go to the configuration folder. If you used Cloud-Init, you will find it at: `/opt/fonos/config` - -Download Vault's configuration files with: - -```bash -cd /opt/fonos/config -curl https://raw.githubusercontent.com/fonoster/fonos/main/etc/vault.json -o /opt/fonos/config/vault.json -curl https://raw.githubusercontent.com/fonoster/fonos/main/etc/vault_policy.hcl -o /opt/fonos/config/vault_policy.hcl -``` - -Then, run your Vault' service with: - -```bash -cd /opt/fonos/operator -docker-compose -f extras/secrets.yml up -d -``` - -Next, find Vault's container ID id with: - -```bash -docker ps -q --filter="ancestor=vault"` -``` - -Your out will look like this: - -``` -21af58423205 -``` - -Access the container with: - -```bash -# Remember to use the ID in your output -docker exec -it 21af58423205 sh -``` - -Now you can initialize Vault. First, you need to tell Vault's client where the server is with: - -``` -export VAULT_ADDR=http://localhost:8200 -``` - -Next, initialize the server with: - -```bash -vault operator init -``` - -This will produce an output like the one bellow: - -```bash -Unseal Key 1: WdFJ8RvhDggh2l+1roo2QfuxMtpYRL4sog3wpeQrKIR9 -Unseal Key 2: y74ZIMaKxjDren41ZMToVCRElwKTaTCw4V4MQG/OTvrx -Unseal Key 3: lQKMVh6IaSwhKp1zlyGz02kxS//DEOlgIZYZauHdPeXg -Unseal Key 4: 2yQQcqEQj3alqUr4FhEbpZsRulkBWN7hvzR3C8W5TvV3 -Unseal Key 5: alfffxchI8tYiJwEBkWS4CMIPd0OGMPL2C2h+iulR5uR - -Initial Root Token: s.23OL31TAw1MarBDp34O6B2p6 - -Vault initialized with 5 key shares and a key threshold of 3. Please securely -distribute the key shares printed above. When the Vault is re-sealed, -restarted, or stopped, you must supply at least 3 of these keys to unseal it -before it can start servicing requests. - -Vault does not store the generated master key. Without at least 3 key to -reconstruct the master key, Vault will remain permanently sealed! - -It is possible to generate new unseal keys, provided you have a quorum of -existing unseal keys shares. See "vault operator rekey" for more information. -``` - -> For simplicity, we will use the Root Token to continue the guide, but you should not do that for anything other than a test. - -Now that we have the unseal keys, we need to unseal Vault. By default, Vault uses a key threshold of 3. Therefore, you will need to run the following command three times with a different unseal key. - -```bash -vault operator unseal -``` - -The last time you run the command, you will get an output like the one below, showing that Vault is unsealed. - -```bash -Unseal Key (will be hidden): -Key Value ---- ----- -Seal Type shamir -Initialized true -Sealed false -Total Shares 5 -Threshold 3 -Version 1.7.3 -Storage Type file -Cluster Name vault-cluster-9eee5261 -Cluster ID 1d6859a5-cc74-5c68-61f7-7cbc5a6953ef -HA Enabled false -``` - -Then export the token as follows: - -``` -# Remember to replace this with your token -export VAULT_TOKEN=s.23OL31TAw1MarBDp34O6B2p6 -``` - -Next, copy Vault's policy file somewhere in the container and run the following lines - -```bash -vault policy write fonos-policy vault_policy.hcl -vault secrets enable -path=secret kv -vault auth enable approle -``` - -Output: - -```bash -Success! Uploaded policy: fonos-policy -Success! Enabled the kv secrets engine at: secret/ -Success! Enabled approle auth method at: approle/ -``` - -Once Vault has been unsealed and configured, we need to turn our attention back to our Fonos deployment. Open your `.env` file at `/opt/fonos/operator` and scan for the word "SECRETS." - -Once you find the variables, uncomment the variables and replace the token with your own. In the end it should look like this: - -```bash -SECRETS_IMAGE=vault -SECRETS_URL=http://secrets:8200 -SECRETS_POLICY=fonos-policy -SECRETS_TOKEN=s.yDSlcyHGNvm9YOpJSVHbPYXI -``` - -Finally, restart the deployment to apply the last changes. \ No newline at end of file diff --git a/docs/operator/deploy-to-digitalocean.md b/docs/operator/deploy-to-digitalocean.md deleted file mode 100644 index d25929240..000000000 --- a/docs/operator/deploy-to-digitalocean.md +++ /dev/null @@ -1,52 +0,0 @@ -# Deploy to Digital Ocean - -This quick guide will assist you in rapidly deploying PF to a Digital Ocean droplet. - -To deploy to Digital Ocean, you first need to [signup for an account](https://www.digitalocean.com/?refcode=2962aa9e56a1&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=CopyPaste). You will also need to download and setup the `doctl`, using the guide from the [doctl's repo.](https://github.com/digitalocean/doctl/blob/main/README.md#authenticating-with-digitalocean) - -Then, download the [cloud-config.txt](https://raw.githubusercontent.com/fonoster/fonos/main/operator/cloud-config.txt) with: - -```bash -curl https://raw.githubusercontent.com/fonoster/fonos/main/operator/cloud-config.txt -o cloud-config.txt -``` - -> You must replace the public key with your own public keys from `~/.ssh/id_rsa.pub`, in the cloud-config.txt - -Next, export your DO token and deploy your droplet with the following command: - -```bash -DOTOKEN=e8cfa2f5ac6186a86532... -doctl compute droplet create myserver \ - --region nyc3 \ - --access-token $DOTOKEN \ - --size s-2vcpu-4gb \ - --user-data-file cloud-config.txt \ - --image debian-10-x64 -``` - -> 💡 TIP: You could also add the `--ssh-keys` to ease future access your droplet - -You can access your VM and follow the installation process. From within the VM, run the next command: - -```bash -tail -f /var/log/cloud-init-output.log -``` - -Once you see "Cloud init is done!" the process is complete. If everything went well, you will be able to log in to your PF deployment. - -To log in for the first time to your deployment, first, get your user credentials with: - -```bash -cat /opt/fonos/config/user_credentials -``` - -Your output will look like the one bellow. - -```bash -{ - "accessKeyId":"fonos", - "accessKeySecret":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." -} -``` - -Finally, obtain your VM's IP from the DO's dashboard. With the `accessKeyId`, `accessKeySecret`, and your VM's IP address, you can now login with the command-line tool or access the deployment with the SDK. diff --git a/docs/operator/deploy-to-multipass.md b/docs/operator/deploy-to-multipass.md deleted file mode 100644 index a75e19fd7..000000000 --- a/docs/operator/deploy-to-multipass.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deploy to Multipass - -Have you heard about Multipass? Multipass is a Canonical project that offers a lightweight VM manager for Linux, Windows, and macOS. With Multipass, you can deploy Project Fonos in a local environment in a single command. This deployment method is by far the fasted way to get started with PF. - -> This method will not automatically enable TLS for you. You will also need to deactivate TLS on the client-side by setting the environment variable `ALLOW_INSECURE` to true. - -Deploy PF to Multipass with the following steps. First, download the [cloud-config.txt](https://raw.githubusercontent.com/fonoster/fonos/main/operator/cloud-config.txt) file into a local directory with: - -```bash -curl https://raw.githubusercontent.com/fonoster/fonos/main/operator/cloud-config.txt -o cloud-config.txt -``` - -Be sure to update the environment variables to meet your requirements. Then, from the same directory, fire up Multipass: - -```bash -multipass launch --name fonos --disk 10G --cpus 2 --mem 4G --cloud-init cloud-config.txt -``` - -You might see a "timed out waiting for initialization to complete", especially in a slow Internet connection. Don't worry. The process will continue in the background. You can access your VM and continue to follow the installation process with: - -```bash -multipass shell fonos -tail -f /var/log/cloud-init-output.log -``` - -Once you see "Cloud init is done!" the process is complete. If everything went well, you will be able to log in to your PF deployment. To log in for the first time to your deployment, first, get your user credentials with: - -```bash -cat /opt/fonos/config/user_credentials -``` - -Your output will look like the one bellow. - -```bash -{ - "accessKeyId":"fonos", - "accessKeySecret":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." -} -``` - -Next, obtain your VM's IP with: - -```bash -multipass info fonos -``` - -Look for the entry starting with IPv4. - -```bash -Name: fonos -State: Running -IPv4: 192.168.64.39 - 172.17.0.1 - 172.24.0.1 -... -``` - -With the `accessKeyId`, `accessKeySecret`, and your VM's IP address, you can now login using the command-line tool or access your server with the SDK. diff --git a/docs/operator/deploy-with-docker.md b/docs/operator/deploy-with-docker.md deleted file mode 100644 index 920ee79cf..000000000 --- a/docs/operator/deploy-with-docker.md +++ /dev/null @@ -1,3 +0,0 @@ -# Deploy with Docker - -This guide was move. Please refer to the docker operator [README](https://github.com/fonoster/fonoster/blob/main/docker/README.md) for info about deploying Fonoster using docker. diff --git a/docs/operator/deploy-your-server.md b/docs/operator/deploy-your-server.md deleted file mode 100644 index 973b7a81b..000000000 --- a/docs/operator/deploy-your-server.md +++ /dev/null @@ -1,14 +0,0 @@ -This document will guide through the installation process of Fonoster in a self-hosted environment or the cloud. You will learn about the available installation options and which one is the best for your current journey with Fonoster. - -## Self-hosted or Cloud - -There are several considerations to decide which deployment method to use. The main factors you should consider are costs and availability. Running the server in a cloud environment will likely be more stable than a home Internet connection. The cloud also gives you the advantage of not worrying about physical servers, electricity, etc. - -However, running a local server might be a good option, especially while exploring Fonoster if you have stable Internet with good bandwidth. - -To get started check the following guides: - -- [Deploy with Docker](./deploy-with-docker.md) -- [Deploy to Multipass](./deploy-to-multipass.md) -- [Deploy to Digital Ocean](./deploy-to-digitalocean.md) -- [Adding support for Secrets (Experimental)](./adding_support_for_secrets.md) diff --git a/docs/reference/Agents.md b/docs/reference/Agents.md deleted file mode 100644 index ac8d3e40b..000000000 --- a/docs/reference/Agents.md +++ /dev/null @@ -1,174 +0,0 @@ - - -## Agents ⇐ APIClient -Use Fonoster Agents, a capability of Fonoster SIP Proxy subsystem, -to create, update, get and delete Agents. Agents requires of a -running Fonoster deployment. - -**Kind**: global class -**Extends**: APIClient -**See**: module:core:APIClient - -* [Agents](#Agents) ⇐ APIClient - * [new Agents(options)](#new_Agents_new) - * [.createAgent(request)](#Agents+createAgent) ⇒ Promise.<CreateAgentResponse> - * [.getAgent(ref)](#Agents+getAgent) ⇒ Promise.<GetAgentResponse> - * [.updateAgent(request)](#Agents+updateAgent) ⇒ Promise.<UpdateAgentResponse> - * [.listAgents(request)](#Agents+listAgents) ⇒ Promise.<ListAgentsResponse> - * [.deleteAgent(ref)](#Agents+deleteAgent) - - - -### new Agents(options) -Constructs a new Agents object. - - -| Param | Type | Description | -| --- | --- | --- | -| options | ClientOptions | Options to indicate the objects endpoint | - -**Example** -```js -const Fonoster = require("@fonoster/sdk") -const agents = new Fonoster.Agents() - -const request = { - name: "John Doe", - username: "john", - secret: "1234", - domains: ["sip.local"] -} - -agents.createAgent(request) -.then(result => { - console.log(result) // successful response -}).catch(e => console.error(e)) // an error occurred -``` - - -### agents.createAgent(request) ⇒ Promise.<CreateAgentResponse> -Creates a new Agent on the SIP Proxy subsystem. - -**Kind**: instance method of [Agents](#Agents) - -| Param | Type | Description | -| --- | --- | --- | -| request | CreateAgentRequest | Request for the provision of a new Agent | -| request.name | string | Friendly name for the SIP device | -| request.username | string | Agent's credential username | -| request.secret | string | Agent's credential secret | -| request.privacy | Privacy | If set to Privacy.PRIVATE Fonoster removes identifiable information from the requests. Defaults to Privacy.NONE | -| request.domains | Array.<string> | List of domains this Agent has access to | - -**Example** -```js -const request = { - name: "John Doe", - username: "john", - secret: "1234", - domains: ["sip.local"] - privacy: Privacy.PRIVATE -} - -agents.createAgent(request) -.then(result => { - console.log(result) // returns the CreateAgentResponse interface -}).catch(e => console.error(e)) // an error occurred -``` - - -### agents.getAgent(ref) ⇒ Promise.<GetAgentResponse> -Retrives an Agent by reference. - -**Kind**: instance method of [Agents](#Agents) -**Returns**: Promise.<GetAgentResponse> - The agent -**Throws**: - -- if ref is null or Agent does not exist - - -| Param | Type | Description | -| --- | --- | --- | -| ref | string | Reference to Agent | - -**Example** -```js -const ref = "aynB1z0tzd"; - -agents.getAgent(ref) -.then(result => { - console.log(result) // returns the GetAgentResponse interface -}).catch(e => console.error(e)) // an error occurred -``` - - -### agents.updateAgent(request) ⇒ Promise.<UpdateAgentResponse> -Update an Agent at the SIP Proxy subsystem. - -**Kind**: instance method of [Agents](#Agents) - -| Param | Type | Description | -| --- | --- | --- | -| request | UpdateAgentRequest | Request update of an Agent | -| request.ref | string | Reference to the Agent | -| request.name | string | Friendly name for the SIP device | -| request.secret | string | Agent's credential secret | - -**Example** -```js -const request = { - name: "John Dee", - secret: "12345" -} - -agents.updateAgent(request) -.then(result => { - console.log(result) // returns the UpdateAgentResponse interface -}).catch(e => console.error(e)) // an error occurred -``` - - -### agents.listAgents(request) ⇒ Promise.<ListAgentsResponse> -List registered Agents in Fonoster SIP Proxy subsystem. - -**Kind**: instance method of [Agents](#Agents) -**Returns**: Promise.<ListAgentsResponse> - Paginated List of Agents - -| Param | Type | Description | -| --- | --- | --- | -| request | ListAgentsRequest | Optional parameter with size and token for the request | -| request.pageSize | number | Elements per page (defaults to 20) | -| request.pageToken | string | The next_page_token value returned from a previous List request, if any | - -**Example** -```js -const request = { - pageSize: 20, - pageToken: 2 -} - -agents.listAgents(request) -.then(() => { - console.log(result) // returns a ListAgentsResponse interface -}).catch(e => console.error(e)) // an error occurred -``` - - -### agents.deleteAgent(ref) -Deletes an Agent from the SIP Proxy subsystem. - -**Kind**: instance method of [Agents](#Agents) - -| Param | Type | Description | -| --- | --- | --- | -| ref | string | Agent's reference | - -**Example** -```js -const ref = "aynB1z0tzd" - -agents.deleteAgent(ref) -.then(() => { - console.log("done") // returns a reference of the Agent -}).catch(e => console.error(e)) // an error occurred -``` diff --git a/docs/reference/Auths.md b/docs/reference/Auths.md deleted file mode 100644 index e9678bd3a..000000000 --- a/docs/reference/Auths.md +++ /dev/null @@ -1,118 +0,0 @@ - - -## Auths ⇐ APIClient -Use Fonoster Auth, a capability of Fonoster, -to validate and create short life tokens. - -**Kind**: global class -**Extends**: APIClient -**See**: module:core:APIClient - -* [Auths](#Auths) ⇐ APIClient - * [new Auths(options)](#new_Auths_new) - * [.createToken(request)](#Auths+createToken) ⇒ Promise.<CreateTokenResponse> - * [.createNoAccessToken(request)](#Auths+createNoAccessToken) ⇒ Promise.<CreateTokenResponse> - * [.validateToken(request)](#Auths+validateToken) ⇒ Promise.<boolean> - - - -### new Auths(options) -Constructs a new Auth object. - - -| Param | Type | Description | -| --- | --- | --- | -| options | ClientOptions | Options to indicate the objects endpoint | - -**Example** -```js -const request = { - accessKeyId: "US618572e3ec11d10600000001", - roleName: "USER" -}; - -auth.createToken(request) -.then(console.log) // returns an object with the token -.catch(console.error); // an error occurred -``` - - -### auths.createToken(request) ⇒ Promise.<CreateTokenResponse> -Creates a short-life token. The client must have role allowed to create -tokens. - -**Kind**: instance method of [Auths](#Auths) - -| Param | Type | Description | -| --- | --- | --- | -| request | CreateTokenRequest | Request to create a new token | -| request.accessKeyId | string | Path to the function | -| request.expiration | string | Longevity of the token | -| request.roleName | string | Role assigned to the token | - -**Example** -```js -const Fonoster = require("@fonoster/sdk"); -const auth = new Fonoster.Auth(); - -const request = { - accessKeyId: "PJ618572e3ec11d10600000001", - roleName: "SERVICE", - expiration: "10m" -}; - -auth.createToken(request) - .then(console.log) // returns an object with the token - .catch(console.error); // an error occurred -``` - - -### auths.createNoAccessToken(request) ⇒ Promise.<CreateTokenResponse> -Creates a short-life token meant only to serve as a signature. This token will -only be useful to sign a request. - -**Kind**: instance method of [Auths](#Auths) - -| Param | Type | Description | -| --- | --- | --- | -| request | CreateTokenRequest | Request to create a new signature token | -| request.accessKeyId | string | Path to the function | - -**Example** -```js -const Fonoster = require("@fonoster/sdk"); -const auth = new Fonoster.Auth(); - -const request = { - accessKeyId: "PJ619154d081467a0700000001", -}; - -auth.createNoAccessToken(request) - .then(console.log) // returns an object with the token - .catch(console.error); // an error occurred -``` - - -### auths.validateToken(request) ⇒ Promise.<boolean> -Checks if a give token was issue by the system. - -**Kind**: instance method of [Auths](#Auths) - -| Param | Type | Description | -| --- | --- | --- | -| request | CreateTokValidateTokenRequestenRequest | Request to verify the validity of a token | -| request.token | string | Path to the function. | - -**Example** -```js -const Fonoster = require("@fonoster/sdk"); -const auth = new Fonoster.Auth(); - -const request = { - token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", -}; - -auth.validateToken(request) - .then(console.log) // returns `true` or `false` - .catch(console.error); // an error occurred -``` diff --git a/docs/reference/CallManager.md b/docs/reference/CallManager.md deleted file mode 100644 index b0a9ef13d..000000000 --- a/docs/reference/CallManager.md +++ /dev/null @@ -1,66 +0,0 @@ - - -## CallManager ⇐ APIClient -Use Fonoster CallManager, a capability of Fonoster CallManager, -to initiate and monitor automated calls. Fonoster CallManager requires of a -running Fonoster deployment. - -**Kind**: global class -**Extends**: APIClient -**See**: module:core:APIClient - -* [CallManager](#CallManager) ⇐ APIClient - * [new CallManager()](#new_CallManager_new) - * [.call(request)](#CallManager+call) ⇒ Promise.<CallResponse> - - - -### new CallManager() -Constructs a new CallManager Object. - -**Example** -```js -const Fonoster = require("@fonoster/sdk") -const callManager = new Fonoster.CallManager() - -callManager.call({ - from: "9102104343", - to: "17853178070", - webhook: "https://https://071e-47-132-137-75.ngrok.io/voiceapp", -}) -.then(console.log) // successful response -.catch(console.error) // an error occurred -``` - - -### callManager.call(request) ⇒ Promise.<CallResponse> -Call method. - -**Kind**: instance method of [CallManager](#CallManager) -**Returns**: Promise.<CallResponse> - - call results -**Throws**: - -- if the from number doesn't exist -- if could not connect to the underline services - - -| Param | Type | Description | -| --- | --- | --- | -| request | CallRequest | Call request options | -| request.from | string | Number you are calling from. You must have this Number configured in your account | -| request.to | string | The callee | -| request.webhook | string | Url of the application that will handle the call If none is provided it will use the webook setup in the Number | -| request.metadata | object | Arbitrary payload to send to the Voice Application | -| request.ignoreE164Validation | boolean | If enabled it will accept any input in the from and to | - -**Example** -```js -callManager.call({ - from: "+19102104343", - to: "+17853178070", - webhook: "https://voiceapps.acme.com/myvoiceapp", - metadata?: {} -}) -.then(console.log) // successful response -.catch(console.error); // an error occurred -``` diff --git a/docs/reference/Domains.md b/docs/reference/Domains.md deleted file mode 100644 index c2b8796a7..000000000 --- a/docs/reference/Domains.md +++ /dev/null @@ -1,174 +0,0 @@ - - -## Domains ⇐ APIClient -Use Fonoster Domains, a capability of Fonoster SIP Proxy Subsystem, -to create, update, get and delete Domains. The API requires of a running -Fonoster deployment. - -**Kind**: global class -**Extends**: APIClient -**See**: module:core:APIClient - -* [Domains](#Domains) ⇐ APIClient - * [new Domains(options)](#new_Domains_new) - * [.createDomain(request)](#Domains+createDomain) ⇒ Promise.<CreateDomainResponse> - * [.getDomain(ref)](#Domains+getDomain) ⇒ Promise.<GetDomainResponse> - * [.updateDomain(request)](#Domains+updateDomain) ⇒ Promise.<UpdateDomainResponse> - * [.listDomains(request)](#Domains+listDomains) ⇒ Promise.<ListDomainsResponse> - * [.deleteDomain(ref)](#Domains+deleteDomain) - - - -### new Domains(options) -Constructs a new Domains object. - - -| Param | Type | Description | -| --- | --- | --- | -| options | ClientOptions | Options to indicate the objects endpoint | - -**Example** -```js -const Fonoster = require("@fonoster/sdk"); -const domains = new Fonoster.Domains(); - -domains.createDomain({name: "Local Domain", domainUri: "sip.local"...}) -.then(result => { - console.log(result) // successful response -}).catch(e => console.error(e)); // an error occurred -``` - - -### domains.createDomain(request) ⇒ Promise.<CreateDomainResponse> -Creates a new Domain on the SIP Proxy subsystem. - -**Kind**: instance method of [Domains](#Domains) - -| Param | Type | Description | -| --- | --- | --- | -| request | CreateDomainRequest | Request for the provision of a new Domain | -| request.name | string | Friendly name for the SIP domain | -| request.domainUri | string | Domain URI. FQDN is recommended | -| request.egressNumberRef | string | A valid reference to a Number in Fonos | -| request.egressRule | string | Regular expression indicating when a call will be routed via request.egressNumberRef | -| request.accessDeny | string | Optional list of IPs or networks that cannot communicate with this Domain | -| request.accessAllow | string | Optional list of IPs or networks allow if request.accessDeny is defined | - -**Example** -```js -const request = { - name: "Local Domain", - domainUri: "sip.local", - egressRule: ".*", - egressNumberRef: "cb8V0CNTfH", - accessDeny: ["0.0.0.0/1"] // Deny all - accessAllow: ["192.168.1.0/255.255.255.0", "192.168.0.1/31"] -}; - -domains.createDomain(request) -.then(result => { - console.log(result) // returns the CreateDomainResponse interface -}).catch(e => console.error(e)); // an error occurred -``` - - -### domains.getDomain(ref) ⇒ Promise.<GetDomainResponse> -Retrives a Domain by its reference. - -**Kind**: instance method of [Domains](#Domains) -**Returns**: Promise.<GetDomainResponse> - The domain -**Throws**: - -- if ref is null or Domain does not exist - - -| Param | Type | Description | -| --- | --- | --- | -| ref | string | Reference to Domain | - -**Example** -```js -const ref = "Nx05y-ldZa"; - -domains.getDomain(ref) -.then(result => { - console.log(result) // returns the CreateGetResponse interface -}).catch(e => console.error(e)); // an error occurred -``` - - -### domains.updateDomain(request) ⇒ Promise.<UpdateDomainResponse> -Update a Domain at the SIP Proxy subsystem. - -**Kind**: instance method of [Domains](#Domains) - -| Param | Type | Description | -| --- | --- | --- | -| request | UpdateDomainRequest | Request for the update of an existing Domain | -| request.ref | string | To update a Domain you must provide its reference | -| request.name | string | Friendly name for the SIP domain | -| request.egressNumberRef | string | A valid reference to a Number in Fonos | -| request.egressRule | string | Regular expression indicating when a call will be routed via request.egressNumberRef | -| request.accessDeny | string | Optional list of IPs or networks that cannot communicate with this Domain | -| request.accessAllow | string | Optiona list of IPs or networks allow if request.accessDeny is defined | - -**Example** -```js -const request = { - ref: "Nx05y-ldZa", - name: "Office Domain", - accessAllow: ["192.168.1.0/255.255.255.0", "192.168.0.1/31"] -}; - -domains.updateDomain(request) -.then(result => { - console.log(result) // returns the UpdateDomainResponse interface -}).catch(e => console.error(e)); // an error occurred -``` - - -### domains.listDomains(request) ⇒ Promise.<ListDomainsResponse> -List the Domains registered in Fonoster SIP Proxy subsystem. - -**Kind**: instance method of [Domains](#Domains) -**Returns**: Promise.<ListDomainsResponse> - Paginated list of Domains - -| Param | Type | Description | -| --- | --- | --- | -| request | ListDomainsRequest | Optional parameter with size and token for the request | -| request.pageSize | number | Number of element per page (defaults to 20) | -| request.pageToken | string | The next_page_token value returned from a previous List request if any | - -**Example** -```js -const request = { - pageSize: 20, - pageToken: 2 -}; - -domains.listDomains(request) -.then(() => { - console.log(result) // returns a ListDomainsResponse interface -}).catch(e => console.error(e)); // an error occurred -``` - - -### domains.deleteDomain(ref) -Deletes a Domain from SIP Proxy subsystem. Notice, that in order to delete -a Domain, you must first delete all it's Agents. - -**Kind**: instance method of [Domains](#Domains) - -| Param | Type | Description | -| --- | --- | --- | -| ref | string | Reference to the Domain you wish to delete | - -**Example** -```js -const ref = "Nx05y-ldZa"; - -domains.deleteDomain(ref) -.then(() => { - console.log("done") // returns a reference of the domain -}).catch(e => console.error(e)); // an error occurred -``` diff --git a/docs/reference/Funcs.md b/docs/reference/Funcs.md deleted file mode 100644 index 26b722982..000000000 --- a/docs/reference/Funcs.md +++ /dev/null @@ -1,194 +0,0 @@ - - -## Funcs ⇐ APIClient -Use Fonoster Funcs, a capability of FaaS subsystem, -to deploy, update, get and delete functions. Fonoster Funcs requires of a -running Fonoster deployment and FaaS. - -**Kind**: global class -**Extends**: APIClient -**See**: module:core:APIClient - -* [Funcs](#Funcs) ⇐ APIClient - * [new Funcs(options)](#new_Funcs_new) - * [.deployFunc(request)](#Funcs+deployFunc) ⇒ Promise.<DeployStream> - * [.getFunc(request)](#Funcs+getFunc) ⇒ Promise.<GetFuncResponse> - * [.deleteFunc(request)](#Funcs+deleteFunc) ⇒ Promise.<GetFuncResponse> - * [.listFuncs(request)](#Funcs+listFuncs) ⇒ Promise.<ListFuncsResponse> - * [.getFuncLogs(request)](#Funcs+getFuncLogs) ⇒ Promise.<LogsStream> - - - -### new Funcs(options) -Constructs a new Funcs object. - - -| Param | Type | Description | -| --- | --- | --- | -| options | ClientOptions | Options to indicate the objects endpoint | - -**Example** -```js -const request = { - name: "function1", - path: "/path/to/function", -}; - -funcs.deployFunc(request) -.then(stream => { - stream.onMessage(msg => console.log(msg)) - stream.onFinish(() => console.log("end")) - stream.onError(e => console.error(e)) -}).catch(e => console.error(e)); // an error occurred -``` - - -### funcs.deployFunc(request) ⇒ Promise.<DeployStream> -Creates or updates a function in the FaaS subsystem. - -**Kind**: instance method of [Funcs](#Funcs) - -| Param | Type | Description | -| --- | --- | --- | -| request | DeployFuncRequest | Request to create or update a function | -| request.path | string | Path to the function. | -| request.name | string | Unique function name | -| request.schedule | string | Unique function name | -| request.limit.memory | string | Optional limit for function's memory utilization | -| request.limit.cpu | string | Optional limit for function's cpu utilization | -| request.requests.memory | string | Optional requested memory allocation for the function | -| request.requests.cpu | string | Optional requested cpu allocation for the function | - -**Example** -```js -const Fonoster = require("@fonoster/sdk"); -const funcs = new Fonoster.Funcs(); - -const request = { - name: "function1", - schedule: "* * * * *", // Intervals using standard cron syntax - path: "/path/to/function", - limits: { - cpu: 100m, - memory: 40Mi - }, - requests: { - cpu: 100m, - memory: 40Mi - } -}; - -funcs.deployFunc(request) -.then(stream => { - stream.onMessage(msg => console.log(msg)) - stream.onFinish(() => console.log("end")) - stream.onError(e => console.error(e)) -}).catch(e => console.error(e)); // an error occurred -``` - - -### funcs.getFunc(request) ⇒ Promise.<GetFuncResponse> -Gets a system function by name. - -**Kind**: instance method of [Funcs](#Funcs) - -| Param | Type | Description | -| --- | --- | --- | -| request | GetFuncRequest | Request to get a function | -| request.name | string | Unique function name | - -**Example** -```js -const request = { - name: "function1" -}; - -funcs.getFunc(request) -.then(result => { - console.log(result) // successful response with the function as the body65 -}).catch(e => console.error(e)); // an error occurred -``` - - -### funcs.deleteFunc(request) ⇒ Promise.<GetFuncResponse> -Removes a function by its name. - -**Kind**: instance method of [Funcs](#Funcs) -**Note**: This action will remove all function statistics. - -| Param | Type | Description | -| --- | --- | --- | -| request | DeleteFuncRequest | Request to delete a function | -| request.name | string | Unique function name | - -**Example** -```js -const request = { - name: "function1" -}; - -funcs.deleteFunc(request) -.then(result => { - console.log(result) // returns the name of the function -}).catch(e => console.error(e)); // an error occurred -``` - - -### funcs.listFuncs(request) ⇒ Promise.<ListFuncsResponse> -Returns a list of functions owned by the User. - -**Kind**: instance method of [Funcs](#Funcs) -**Returns**: Promise.<ListFuncsResponse> - List of Functions - -| Param | Type | Description | -| --- | --- | --- | -| request | ListFuncsRequest | | -| request.pageSize | number | Number of element per page (defaults to 20) | -| request.pageToken | string | The next_page_token value returned from a previous List request, if any | - -**Example** -```js -const request = { - pageSize: 20, - pageToken: 2 -}; - -funcs.listFuncs(request) -.then(() => { - console.log(result) // returns a ListFuncsResponse object -}).catch(e => console.error(e)); // an error occurred -``` - - -### funcs.getFuncLogs(request) ⇒ Promise.<LogsStream> -Creates or updates a function in the FaaS subsystem. - -**Kind**: instance method of [Funcs](#Funcs) - -| Param | Type | Description | -| --- | --- | --- | -| request | GetFuncLogsRequest | Request to obtain the logs for a function | -| request.name | string | Function name | -| request.since | string | Only return logs after a specific date (RFC3339) | -| request.tail | string | Sets the maximum number of log messages to return, <=0 means unlimited | -| request.follow | string | When true, the request will stream logs until the request timeout | - -**Example** -```js -const Fonoster = require("@fonoster/sdk"); -const funcs = new Fonoster.Funcs(); - -const request = { - name: "function1", - tail: 10, - follow: true, - since: "2021-05-12T07:20:50.52Z" -}; - -funcs.getFuncLogs(request) -.then(stream => { - stream.onMessage(log => console.log(log)) - stream.onFinish(() => console.log("end")) - stream.onError(e => console.error(e)) -}).catch(e => console.error(e)); // an error occurred -``` diff --git a/docs/reference/Numbers.md b/docs/reference/Numbers.md deleted file mode 100644 index 2c86c888d..000000000 --- a/docs/reference/Numbers.md +++ /dev/null @@ -1,199 +0,0 @@ - - -## Numbers ⇐ APIClient -Use Fonoster Numbers, a capability of Fonoster SIP Proxy subsystem, -to create, update, get and delete numbers. Fonoster Numbers requires of a -running Fonoster deployment. - -**Kind**: global class -**Extends**: APIClient -**See**: module:core:APIClient - -* [Numbers](#Numbers) ⇐ APIClient - * [new Numbers(options)](#new_Numbers_new) - * [.createNumber(request)](#Numbers+createNumber) ⇒ Promise.<CreateNumberResponse> - * [.getNumber(ref)](#Numbers+getNumber) ⇒ Promise.<GetNumberResponse> - * [.updateNumber(request)](#Numbers+updateNumber) ⇒ Promise.<UpdateNumberResponse> - * [.listNumbers(request)](#Numbers+listNumbers) ⇒ Promise.<ListNumbersResponse> - * [.deleteNumber(ref)](#Numbers+deleteNumber) - * [.getIngressInfo(request)](#Numbers+getIngressInfo) ⇒ Promise.<GetIngressAppResponse> - - - -### new Numbers(options) -Constructs a new Numbers object. - - -| Param | Type | Description | -| --- | --- | --- | -| options | ClientOptions | Options to indicate the objects endpoint | - -**Example** -```js -const Fonoster = require("@fonoster/sdk"); -const numbers = new Fonoster.Numbers(); - -const request = { - providerRef: "516f1577bcf86cd797439012", - e164Number: "+17853177343", - ingressInfo: { - webhook: "https://webhooks.acme.com/hooks" - } -}; - -numbers.createNumber(request) -.then(result => { - console.log(result) // successful response -}).catch(e => console.error(e)); // an error occurred -``` - - -### numbers.createNumber(request) ⇒ Promise.<CreateNumberResponse> -Creates a new Number on the SIP Proxy subsystem. - -**Kind**: instance method of [Numbers](#Numbers) -**Note**: You can only provider an aorLink or an ingressInfo but no both - -| Param | Type | Description | -| --- | --- | --- | -| request | CreateNumberRequest | Request for the provision of a new Number | -| request.providerRef | string | Idenfier to the Provider this Number belongs with | -| request.e164Number | string | A valid number @ Provider | -| request.aorLink | string | An AOR where ingress calls will be directed to | -| request.ingressInfo | string | Webhook to connect call to | - -**Example** -```js -const request = { - providerRef: "516f1577bcf86cd797439012", - e164Number: "+17853177343", - aorLink: "sip:1001@sip.local" -}; - -numbers.createNumber(request) -.then(result => { - console.log(result) // returns the CreateNumberResponse interface -}).catch(e => console.error(e)); // an error occurred -``` - - -### numbers.getNumber(ref) ⇒ Promise.<GetNumberResponse> -Retrives a Number by its reference. - -**Kind**: instance method of [Numbers](#Numbers) -**Returns**: Promise.<GetNumberResponse> - The GetNumberResponse -**Throws**: - -- if ref is null or Number does not exist - - -| Param | Type | Description | -| --- | --- | --- | -| ref | string | Reference to Number | - -**Example** -```js -numbers.getNumber(ref) -.then(result => { - console.log(result) // returns the GetNumberResponse object -}).catch(e => console.error(e)); // an error occurred -``` - - -### numbers.updateNumber(request) ⇒ Promise.<UpdateNumberResponse> -Update a Number at the SIP Proxy subsystem. - -**Kind**: instance method of [Numbers](#Numbers) -**Note**: You can only provider an aorLink or an ingressApp but no both - -| Param | Type | Description | -| --- | --- | --- | -| request | UpdateNumberRequest | Request for the update of an existing Number | -| request.aorLink | string | An AOR where ingress calls will be directed to | -| request.ingressInfo | string | A webhook to direct the call for flow control | - -**Example** -```js -const request = { - ref: "516f1577bcf86cd797439012", - aorLink: "sip:1001@sip.local" -}; - -numbers.updateNumber(request) -.then(result => { - console.log(result) // returns the Number from the DB -}).catch(e => console.error(e)); // an error occurred -``` - - -### numbers.listNumbers(request) ⇒ Promise.<ListNumbersResponse> -List the Numbers registered in Fonoster SIP Proxy subsystem. - -**Kind**: instance method of [Numbers](#Numbers) -**Returns**: Promise.<ListNumbersResponse> - List of Numbers - -| Param | Type | Description | -| --- | --- | --- | -| request | ListNumbersRequest | | -| request.pageSize | number | Number of element per page (defaults to 20) | -| request.pageToken | string | The next_page_token value returned from a previous List request, if any | - -**Example** -```js -const request = { - pageSize: 20, - pageToken: 2 -}; - -numbers.listNumbers(request) -.then(() => { - console.log(result) // returns a ListNumbersResponse object -}).catch(e => console.error(e)); // an error occurred -``` - - -### numbers.deleteNumber(ref) -Deletes a Number from SIP Proxy subsystem. - -**Kind**: instance method of [Numbers](#Numbers) - -| Param | Type | Description | -| --- | --- | --- | -| ref | string | Reference to the Number | - -**Example** -```js -const ref = "cb8V0CNTfH"; - -numbers.deleteNumber(ref) -.then(() => { - console.log("done") // returns an empty object -}).catch(e => console.error(e)) // an error occurred -``` - - -### numbers.getIngressInfo(request) ⇒ Promise.<GetIngressAppResponse> -Get the Ingress App for a given e164 number. - -**Kind**: instance method of [Numbers](#Numbers) -**Throws**: - -- if the Number is not register in Fonoster - - -| Param | Type | Description | -| --- | --- | --- | -| request | GetIngressAppRequest | | -| request.e164Number | string | A number in E164 format for incomming calls | - -**Example** -```js -const request = { - e164Number: "+17853178071" -}; - -numbers.getIngressApp(request) -.then(result => { - console.log(result) // returns the Application -}).catch(e => console.error(e)); // an error occurred -``` diff --git a/docs/reference/Projects.md b/docs/reference/Projects.md deleted file mode 100644 index c30f99a24..000000000 --- a/docs/reference/Projects.md +++ /dev/null @@ -1,182 +0,0 @@ - - -## Projects ⇐ APIClient -Use Fonoster Projects, a capability of Fonoster, -to create, update, get and delete Projects. Projects requires of a -running Fonoster deployment. - -**Kind**: global class -**Extends**: APIClient -**See**: module:core:APIClient - -* [Projects](#Projects) ⇐ APIClient - * [new Projects(options)](#new_Projects_new) - * [.listProjects(request)](#Projects+listProjects) ⇒ Promise.<ListProjectsResponse> - * [.createProject(request)](#Projects+createProject) ⇒ Promise.<CreateProjectResponse> - * [.getProject(ref)](#Projects+getProject) ⇒ Promise.<GetProjectResponse> - * [.updateProject(request)](#Projects+updateProject) ⇒ Promise.<UpdateProjectResponse> - * [.deleteProject(ref)](#Projects+deleteProject) - * [.renewAccessKeySecret(request)](#Projects+renewAccessKeySecret) - - - -### new Projects(options) -Constructs a new Projects object. - - -| Param | Type | Description | -| --- | --- | --- | -| options | ClientOptions | Options to indicate the objects endpoint | - -**Example** -```js -const Fonoster = require("@fonoster/sdk") -const Projects = new Fonoster.Projects() - -const request = { - name: "project002", - allowExperiments: false -} - -projects.createProject(request) -.then(result => { - console.log(result) // successful response -}).catch(e => console.error(e)) // an error occurred -``` - - -### projects.listProjects(request) ⇒ Promise.<ListProjectsResponse> -Returns a list of Projects - -**Kind**: instance method of [Projects](#Projects) - -| Param | Type | Description | -| --- | --- | --- | -| request | ListProjectsRequest | Reserved for future filters | - -**Example** -```js -projects.listProjects({}) -.then(result => { - console.log(result) // successful response -}).catch(e => console.error(e)) // an error occurred -``` - - -### projects.createProject(request) ⇒ Promise.<CreateProjectResponse> -Creates a new Project. - -**Kind**: instance method of [Projects](#Projects) - -| Param | Type | Description | -| --- | --- | --- | -| request | CreateProjectRequest | Request to create a new Project | -| request.name | string | Project's name | -| request.allowExperiments | string | Enables experimental APIs | - -**Example** -```js -const request = { - name: "project001", - allowExperiments: true -} - -projects.createProject(request) -.then(result => { - console.log(result) // successful response -}).catch(e => console.error(e)) // an error occurred -``` - - -### projects.getProject(ref) ⇒ Promise.<GetProjectResponse> -Get a Project by reference. - -**Kind**: instance method of [Projects](#Projects) -**Returns**: Promise.<GetProjectResponse> - The Project -**Throws**: - -- if ref is null or Project does not exist - - -| Param | Type | Description | -| --- | --- | --- | -| ref | string | Reference to Project | - -**Example** -```js -const ref = "507f1f77bcf86cd799439011"; - -projects.getProject(ref) -.then(result => { - console.log(result) // returns the Project payload -}).catch(e => console.error(e)) // an error occurred -``` - - -### projects.updateProject(request) ⇒ Promise.<UpdateProjectResponse> -Update a Project. - -**Kind**: instance method of [Projects](#Projects) - -| Param | Type | Description | -| --- | --- | --- | -| request | UpdateProjectRequest | Request update of an Project | -| request.ref | string | Required reference to the Project | -| request.name | string | Value to rename the application to | -| request.allowExperiments | string | Enables experimental APIs | - -**Example** -```js -const request = { - name: "project001", - ref: "507f1f77bcf86cd799439011" -} - -projects.updateProject(request) -.then(result => { - console.log(result) // returns the UpdateProjectResponse payload -}).catch(e => console.error(e)) // an error occurred -``` - - -### projects.deleteProject(ref) -Delete a Project. - -**Kind**: instance method of [Projects](#Projects) - -| Param | Type | Description | -| --- | --- | --- | -| ref | string | Project's reference | - -**Example** -```js -const ref = "507f1f77bcf86cd799439011" - -projects.deleteProject(ref) -.then(() => { - console.log("done") // returns a reference of the Project -}).catch(e => console.error(e)) // an error occurred -``` - - -### projects.renewAccessKeySecret(request) -Generate a new accessKeySecret. Be sure to update your applications with the new value. - -**Kind**: instance method of [Projects](#Projects) - -| Param | Type | Description | -| --- | --- | --- | -| request | LoginRequest | Request update of an Project | -| request.ref | string | Project's reference | - -**Example** -```js -const request = { - ref: "507f1f77bcf86cd799439011" -} - -projects.renewAccessKeySecret(request) -.then(result => { - console.log(result) // returns the new accessKeySecret -}).catch(e => console.error(e)) // an error occurred -``` diff --git a/docs/reference/Providers.md b/docs/reference/Providers.md deleted file mode 100644 index e7715012d..000000000 --- a/docs/reference/Providers.md +++ /dev/null @@ -1,177 +0,0 @@ - - -## Providers ⇐ APIClient -Use Fonoster Providers, a capability of Fonoster SIP Proxy subsystem, -to create, update, get and delete providers. Fonoster Providers requires of a -running Fonosterdeployment. - -**Kind**: global class -**Extends**: APIClient -**See**: module:core:APIClient - -* [Providers](#Providers) ⇐ APIClient - * [new Providers(options)](#new_Providers_new) - * [.createProvider(request)](#Providers+createProvider) ⇒ Promise.<Object> - * [.getProvider(ref)](#Providers+getProvider) ⇒ Promise.<Object> - * [.updateProvider(request)](#Providers+updateProvider) ⇒ Promise.<Object> - * [.listProviders(request)](#Providers+listProviders) ⇒ Promise.<ListProvidersResponse> - * [.deleteProvider(ref)](#Providers+deleteProvider) - - - -### new Providers(options) -Constructs a new Providers object. - - -| Param | Type | Description | -| --- | --- | --- | -| options | ClientOptions | Options to indicate the objects endpoint | - -**Example** -```js -const Fonoster = require("@fonoster/sdk"); -const providers = new Fonoster.Providers(); - -const request = { - name: "SIP Provider", - username: "trunk001", - secret: "secretkey", - host: "sip.provider.net" -}; - -providers.createProvider(request) -.then(result => { - console.log(result) // successful response -}).catch(e => console.error(e)); // an error occurred -``` - - -### providers.createProvider(request) ⇒ Promise.<Object> -Creates a new Provider on the SIP Proxy subsystem. - -**Kind**: instance method of [Providers](#Providers) - -| Param | Type | Description | -| --- | --- | --- | -| request | Object | Request for the provision of a new Provider | -| request.name | string | Friendly name to the Provider | -| request.username | string | Username for the trunk. No required for static IP authentication | -| request.secret | string | Password for the trunk. No required for static IP authentication | -| request.host | string | Hostname or IP of the Provider | -| request.transport | string | The transport for the Provider. Fonoster will use TCP if none is provided | -| request.expires | string | Expiration time for the registration. Fonoster will use 600 if non is provided | - -**Example** -```js -const request = { - name: "Provider Name", - username: "trunk001", - secret: "secretkey", - host: "sip.provider.net" -}; - -providers.createProvider(request) -.then(result => { - console.log(result) // returns the Provider object -}).catch(e => console.error(e)); // an error occurred -``` - - -### providers.getProvider(ref) ⇒ Promise.<Object> -Retrives a Provider by its reference. - -**Kind**: instance method of [Providers](#Providers) -**Returns**: Promise.<Object> - The provider -**Throws**: - -- if ref is null or Provider does not exist - - -| Param | Type | Description | -| --- | --- | --- | -| ref | string | Reference to Provider | - -**Example** -```js -providers.getProvider(ref) -.then(result => { - console.log(result) // returns the Provider object -}).catch(e => console.error(e)); // an error occurred -``` - - -### providers.updateProvider(request) ⇒ Promise.<Object> -Update a Provider at the SIP Proxy subsystem. - -**Kind**: instance method of [Providers](#Providers) - -| Param | Type | Description | -| --- | --- | --- | -| request | Object | Request to update a Provider | -| request.ref | string | Providers reference | -| request.name | string | Friendly name to the Provider | -| request.username | string | Username for the trunk. No required for static IP authentication | -| request.secret | string | Password for the trunk. No required for static IP authentication | -| request.host | string | Hostname or IP of the Provider | -| request.transport | string | The transport for the Provider. Fonoster will use TCP if none is provided | -| request.expires | string | Expiration time for the registration. Fonoster will use 600 if non is provided | - -**Example** -```js -const request = { - ref: "hYTHYCYv_U", - host: "sip.provider.net" -}; - -providers.updateProvider(request) -.then(result => { - console.log(result) // returns the Provider from the DB -}).catch(e => console.error(e)); // an error occurred -``` - - -### providers.listProviders(request) ⇒ Promise.<ListProvidersResponse> -List the Providers registered in Fonoster SIP Proxy subsystem. - -**Kind**: instance method of [Providers](#Providers) -**Returns**: Promise.<ListProvidersResponse> - List of Providers - -| Param | Type | Description | -| --- | --- | --- | -| request | Object | | -| request.pageSize | provider | Provider of element per page (defaults to 20) | -| request.pageToken | string | The next_page_token value returned from a previous List request, if any | - -**Example** -```js -const request = { - pageSize: 20, - pageToken: 2 -}; - -providers.listProviders(request) -.then(() => { - console.log(result) // returns a ListProvidersResponse object -}).catch(e => console.error(e)); // an error occurred -``` - - -### providers.deleteProvider(ref) -Deletes a Provider from SIP Proxy subsystem. Notice, that in order to delete -a Provider, you must first delete all it"s Agents. - -**Kind**: instance method of [Providers](#Providers) - -| Param | Type | Description | -| --- | --- | --- | -| ref | string | Reference to the Provider | - -**Example** -```js -const ref = "hYTHYCYv_U"; - -providers.deleteProvider(ref) -.then(() => { - console.log("done") // returns an empty object -}).catch(e => console.error(e)); // an error occurred -``` diff --git a/docs/reference/Secrets.md b/docs/reference/Secrets.md deleted file mode 100644 index 7ea171a90..000000000 --- a/docs/reference/Secrets.md +++ /dev/null @@ -1,136 +0,0 @@ - - -## Secrets ⇐ APIClient -Use Fonoster Secrets, a capability of Fonoster Secrets Service, -to create and manage your secrets. Fonoster Secrets requires of a -running Fonoster deployment. - -**Kind**: global class -**Extends**: APIClient -**See**: module:core:APIClient - -* [Secrets](#Secrets) ⇐ APIClient - * [new Secrets(options)](#new_Secrets_new) - * [.createSecret(request)](#Secrets+createSecret) ⇒ Promise.<CreateSecretResponse> - * [.getSecret(request)](#Secrets+getSecret) ⇒ Promise.<CreateSecretResponse> - * [.listSecrets(request)](#Secrets+listSecrets) ⇒ Promise.<ListSecretResponse> - * [.deleteSecret(name)](#Secrets+deleteSecret) - - - -### new Secrets(options) -Constructs a Secrets Object. - - -| Param | Type | Description | -| --- | --- | --- | -| options | ClientOptions | Options to indicate the objects endpoint | - -**Example** -```js -const Fonoster = require("@fonoster/sdk") -const secrets = new Fonoster.Secrets() - -const request = { - secretName: "my-secret", - secret: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" -}; - -secrets.createSecret(request) -.then(result => { - console.log(result) // message with the CreateSecretResponse interface -}).catch(e => console.error(e)); // an error occurred -``` - - -### secrets.createSecret(request) ⇒ Promise.<CreateSecretResponse> -Creates and stores a new secret. - -**Kind**: instance method of [Secrets](#Secrets) - -| Param | Type | Description | -| --- | --- | --- | -| request | CreateSecretRequest | Request to create a new secret | -| request.name | string | Friendly name for the secret | -| request.secret | string | Actual secret | - -**Example** -```js -const request = { - name: "my-secret", - secret: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" -}; - -secrets.createSecret(request) -.then(result => { - console.log(result) // returns the CreateDomainResponse interface -}).catch(e => console.error(e)); // an error occurred -``` - - -### secrets.getSecret(request) ⇒ Promise.<CreateSecretResponse> -Gets a secret by name. - -**Kind**: instance method of [Secrets](#Secrets) - -| Param | Type | Description | -| --- | --- | --- | -| request | CreateSecretRequest | Request to create a new Secret | -| request.name | string | Friendly name for the Secret | -| request.secret | string | Secret to save | - -**Example** -```js -const request = { - name: "my-secret", - secret: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" -}; - -secrets.createSecret(request) -.then(result => { - console.log(result) // returns the GetSecretResponse interface -}).catch(e => console.error(e)); // an error occurred -``` - - -### secrets.listSecrets(request) ⇒ Promise.<ListSecretResponse> -List all the secrets for current Project. - -**Kind**: instance method of [Secrets](#Secrets) - -| Param | Type | Description | -| --- | --- | --- | -| request | ListSecretRequest | Request for the provision of a new Secret | -| request.name | string | Friendly name for the Secret | -| request.secret | string | secret to be save | - -**Example** -```js -const request = { - pageSize: 1, - pageToken: 1 -}; - -secrets.listSecrets(request) -.then(result => { - console.log(result) -}).catch(e => console.error(e)); // an error occurred -``` - - -### secrets.deleteSecret(name) -Removes a secret by name. - -**Kind**: instance method of [Secrets](#Secrets) - -| Param | Type | Description | -| --- | --- | --- | -| name | string | Secret name | - -**Example** -```js -secrets.deleteSecret("my-secret") -.then(() => { - console.log("successful") -}).catch(e => console.error(e)); // an error occurred -``` diff --git a/docs/reference/Storage.md b/docs/reference/Storage.md deleted file mode 100644 index d0277ab8c..000000000 --- a/docs/reference/Storage.md +++ /dev/null @@ -1,98 +0,0 @@ - - -## Storage ⇐ APIClient -Use Fonoster Storage, a capability of Fonoster Object Storage subsystem, -to upload, download, and delete objects. - -**Kind**: global class -**Extends**: APIClient -**See**: module:core:APIClient - -* [Storage](#Storage) ⇐ APIClient - * [new Storage(options)](#new_Storage_new) - * [.uploadObject(request)](#Storage+uploadObject) ⇒ Promise.<UploadObjectResponse> - * [.getObjectURL(request)](#Storage+getObjectURL) ⇒ Promise.<getObjectURLResponse> - - - -### new Storage(options) -Constructs a new Storage object. - - -| Param | Type | Description | -| --- | --- | --- | -| options | ClientOptions | Options to indicate the objects endpoint | - -**Example** -```js -const Fonoster = require("@fonoster/sdk") -const storage = new Fonoster.Storage() - -storage.uploadObject() -.then(result => { - console.log(result) // successful response -}).catch(e => console.error(e)) // an error occurred -``` - - -### storage.uploadObject(request) ⇒ Promise.<UploadObjectResponse> -Upload an object toFonosterObject Storage subsystem. - -**Kind**: instance method of [Storage](#Storage) -**Returns**: Promise.<UploadObjectResponse> - localy accessible URL to the object -**Throws**: - -- if the path does not exist or if is a directory -- if the directory does not exist - - -| Param | Type | Description | -| --- | --- | --- | -| request | UploadObjectRequest | Object with information about the origin and destination of an object | -| request.bucket | string | Bucket at the Storage system | -| request.dir | string | Directory on the Storage system where your objec will be uploaded | -| request.filename | string | Path to the object to be uploaded | - -**Example** -```js -const request = { - filename: "/path/to/file", - bucket: "apps", - directory: "/" -} - -storage.uploadObject(request) -.then(() => { - console.log(result) // returns and empty Object -}).catch(e => console.error(e)) // an error occurred -``` - - -### storage.getObjectURL(request) ⇒ Promise.<getObjectURLResponse> -Get Object URL. - -**Kind**: instance method of [Storage](#Storage) -**Returns**: Promise.<getObjectURLResponse> - localy accessible URL to the object -**Throws**: - -- if directory or object doesn't exist - - -| Param | Type | Description | -| --- | --- | --- | -| request | GetObjectURLRequest | Object with information about the location and and name of the requested object | -| request.filename | string | The name of the object save your file. | -| request.accessKeyId | string | Optional access key id | - -**Example** -```js -const request = { - filename: "object-name", - bucket: "bucket-name" -} - -storage.getObjectURL(request) -.then(result => { - console.log(result) -}).catch(e => console.error(e)) // an error occurred -``` diff --git a/docs/reference/Users.md b/docs/reference/Users.md deleted file mode 100644 index 163d5c15d..000000000 --- a/docs/reference/Users.md +++ /dev/null @@ -1,193 +0,0 @@ - - -## Users ⇐ APIClient -Use Fonoster Users, a capability of Fonoster, -to create, update, get and delete Users. Users requires of a -running Fonoster deployment. - -**Kind**: global class -**Extends**: APIClient -**See**: module:core:APIClient - -* [Users](#Users) ⇐ APIClient - * [new Users(options)](#new_Users_new) - * [.listUsers(request)](#Users+listUsers) ⇒ Promise.<ListUsersResponse> - * [.createUser(request)](#Users+createUser) ⇒ Promise.<CreateUserResponse> - * [.getUser(ref)](#Users+getUser) ⇒ Promise.<GetUserResponse> - * [.updateUser(request)](#Users+updateUser) ⇒ Promise.<UpdateUserResponse> - * [.deleteUser(ref)](#Users+deleteUser) - * [.createUserCredentials(request)](#Users+createUserCredentials) - - - -### new Users(options) -Constructs a new Users object. - - -| Param | Type | Description | -| --- | --- | --- | -| options | ClientOptions | Options to indicate the objects endpoint | - -**Example** -```js -const Fonoster = require("@fonoster/sdk") -const users = new Fonoster.Users() - -const request = { - email: "john.doe@email.com", - name: "John Doe", - secret: "s3cur3pass", - avatar: "https://avatar.com/avt?userId=2124252" -} - -users.createUser(request) -.then(result => { - console.log(result) // successful response -}).catch(e => console.error(e)) // an error occurred -``` - - -### users.listUsers(request) ⇒ Promise.<ListUsersResponse> -Return a list of Users. - -**Kind**: instance method of [Users](#Users) - -| Param | Type | Description | -| --- | --- | --- | -| request | ListUsersRequest | Request filters | -| request.email | string | Optional email filter | - -**Example** -```js -projects.listUsers({ email: "john.doe@email.com" }) -.then(result => { - console.log(result) // successful response -}).catch(e => console.error(e)) // an error occurred -``` - - -### users.createUser(request) ⇒ Promise.<CreateUserResponse> -Create a new Fonoster User. - -**Kind**: instance method of [Users](#Users) - -| Param | Type | Description | -| --- | --- | --- | -| request | CreateUserRequest | Request for the provision of a new User | -| request.email | string | User's email | -| request.name | string | User's full name | -| request.secret | string | Login password | -| request.avatar | string | Optional URL to User's avatar | - -**Example** -```js -const request = { - email: "john.doe@email.com", - name: "John Doe", - secret: "s3cur3pass", - avatar: "https://avatar.com/avt?userId=2124252" -} - -users.createUser(request) -.then(result => { - console.log(result) // successful response -}).catch(e => console.error(e)) // an error occurred -``` - - -### users.getUser(ref) ⇒ Promise.<GetUserResponse> -Retrives an User by reference. - -**Kind**: instance method of [Users](#Users) -**Returns**: Promise.<GetUserResponse> - The User -**Throws**: - -- if ref is null or User does not exist - - -| Param | Type | Description | -| --- | --- | --- | -| ref | string | Reference to User | - -**Example** -```js -const ref = "507f1f77bcf86cd799439011"; - -users.getUser(ref) -.then(result => { - console.log(result) // returns the User payload -}).catch(e => console.error(e)) // an error occurred -``` - - -### users.updateUser(request) ⇒ Promise.<UpdateUserResponse> -Update a Fonoster User. - -**Kind**: instance method of [Users](#Users) - -| Param | Type | Description | -| --- | --- | --- | -| request | UpdateUserRequest | Request update of an User | -| request.ref | string | Required reference to the User | -| request.name | string | Optionally update the name | -| request.avatar | string | Optionally update the avatar | -| request.secret | string | Optionally update User's password | - -**Example** -```js -const request = { - name: "John Dee", - secret: "s3cur3pass" -} - -users.updateUser(request) -.then(result => { - console.log(result) // returns the UpdateUserResponse payload -}).catch(e => console.error(e)) // an error occurred -``` - - -### users.deleteUser(ref) -Delete an Fonoster User. - -**Kind**: instance method of [Users](#Users) - -| Param | Type | Description | -| --- | --- | --- | -| ref | string | User's reference | - -**Example** -```js -const ref = "507f1f77bcf86cd799439011" - -users.deleteUser(ref) -.then(() => { - console.log("done") // returns a reference of the User -}).catch(e => console.error(e)) // an error occurred -``` - - -### users.createUserCredentials(request) -Login using email and a password. - -**Kind**: instance method of [Users](#Users) - -| Param | Type | Description | -| --- | --- | --- | -| request | createUserCredentials | Request update of an User | -| request.email | string | Login username | -| request.secret | string | Login password | - -**Example** -```js -const request = { - email: "john.doe@email.com", - secret: "s3cur3pass", - expiration: "30d" -} - -users.createUserCredentials(request) -.then(result => { - console.log(result) // returns an accessKeyId and accessKeySecret -}).catch(e => console.error(e)) // an error occurred -``` diff --git a/docs/reference/VoiceResponse.md b/docs/reference/VoiceResponse.md deleted file mode 100644 index 8f706249c..000000000 --- a/docs/reference/VoiceResponse.md +++ /dev/null @@ -1,366 +0,0 @@ - - -## VoiceResponse ⇐ Verb -Use the VoiceResponse object, to construct advance Interactive -Voice Response (IVR) applications. - -**Kind**: global class -**Extends**: Verb -**See**: module:core:APIClient - -* [VoiceResponse](#VoiceResponse) ⇐ Verb - * [new VoiceResponse(request)](#new_VoiceResponse_new) - * [.use(plugin)](#VoiceResponse+use) - * [.play(media, options)](#VoiceResponse+play) - * [.say(text, options)](#VoiceResponse+say) - * [.gather(options)](#VoiceResponse+gather) - * [.sgather(options)](#VoiceResponse+sgather) ⇒ SGatherStream - * [.dtmf(options)](#VoiceResponse+dtmf) - * [.dial(destination, options)](#VoiceResponse+dial) ⇒ StatusStream - * [.playback(playbackId)](#VoiceResponse+playback) - * [.on(handler)](#VoiceResponse+on) - * [.mute(options)](#VoiceResponse+mute) - * [.unmute(options)](#VoiceResponse+unmute) - * [.answer()](#VoiceResponse+answer) - * [.hangup()](#VoiceResponse+hangup) - * [.record(options)](#VoiceResponse+record) ⇒ Promise.<RecordResult> - - - -### new VoiceResponse(request) -Constructs a new VoiceResponse object. - - -| Param | Type | Description | -| --- | --- | --- | -| request | VoiceRequest | Options to indicate the objects endpoint | - -**Example** -```js -import { VoiceServer } from "@fonoster/voice"; - -async function handler (request, response) { - await response.answer(); - await response.play("sound:hello-world"); -} - -const voiceServer = new VoiceServer({base: '/voiceapp'}) -voiceServer.listen(handler, { port: 3000 }) -``` - - -### voiceResponse.use(plugin) -Adds a tts or asr plugin. Only one type of plugin can be attached. - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) -**See** - -- GoogleTTS -- GoogleASR - - -| Param | -| --- | -| plugin | - - - -### voiceResponse.play(media, options) -Play an audio in the channel. - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) -**See**: Playback - -| Param | Type | Description | -| --- | --- | --- | -| media | string | Sound name or uri with audio file | -| options | PlayOptions | Optional parameters to alter the command's normal behavior | -| options.offset | string | Milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified | -| options.skip | string | Milliseconds to skip for forward/reverse operations | -| options.playbackId | string | Playback identifier to use in Playback operations | - -**Example** -```js -async function handler (request, response) { - await response.answer(); - await response.play("https://soundsserver:9000/sounds/hello-world.wav"); -} -``` - - -### voiceResponse.say(text, options) -Converts a text into a sound and sends sound to media server. To use this verb, you must -first setup a TTS plugin such as MaryTTS, GoogleTTS, or AWS PollyTTS - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) -**See** - -- Play -- Voice.use - - -| Param | Type | Description | -| --- | --- | --- | -| text | string | Converts a text into a sound and sends sound to media server | -| options | SayOptions | Optional parameters to alter the command's normal behavior | -| options.offset | string | Milliseconds to skip before playing | -| options.skip | string | Milliseconds to skip for forward/reverse operations | -| options.playbackId | string | Playback identifier to use in Playback operations | - -**Example** -```js -async function handler (request, response) { - await response.answer(); - response.use(new GoogleTTS()) - await response.say("Hello world"); // Plays the sound using GoogleTTS's default values -} -``` - - -### voiceResponse.gather(options) -Waits for data entry from the user's keypad or from a speech provider. - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) -**Note**: When including `speech` the default timeout is 10000 (10s). -**See**: SpeechProvider - -| Param | Type | Description | -| --- | --- | --- | -| options | GatherOptions | Options to select the maximum number of digits, final character, and timeout | -| options.numDigits | number | Milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified | -| options.timeout | number | Milliseconds to wait before timeout. Defaults to 4000. Use zero for no timeout. | -| options.finishOnKey | string | Optional last character to wait for. Defaults to '#'. It will not be included in the returned digits | -| options.source | string | Where to listen as input source. This option accepts `dtmf` and `speech`. A speech provider must be configure when including the `speech` source. You might include both with `dtmf,speech`. Defaults to `dtmf` | - -**Example** -```js -async function handler (request, response) { - await response.answer(); - const digits = await response.gather({source: "dtmf,speech", numDigits: 3}); - console.log("digits: " + digits); -} -``` - - -### voiceResponse.sgather(options) ⇒ SGatherStream -Waits for data entry from the user's keypad or from a stream speech provider. This command is different from `gather` -in that it returns a stream of results instead of a single result. You can think of it as active listening. - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) -**Returns**: SGatherStream - The SGatherStream fires events via the `on` method for `transcription`, `dtmf`, and `error`. And the stream can be close -with the `close` function. -**See**: StreamSpeechProvider - -| Param | Type | Description | -| --- | --- | --- | -| options | SGatherOptions | Options object for the SGather verb | -| options.source | string | Where to listen as input source. This option accepts `dtmf` and `speech`. A speech provider must be configure when including the `speech` source. You might inclue both with `dtmf,speech`. Defaults to `speech,dtmf` | - -**Example** -```js -async function handler (request, response) { - await response.answer(); - const stream = await response.sgather({source: "dtmf,speech"}); - - stream.on("transcript", (text, isFinal) => { - console.log("transcript: %s", text); - }) - - stream.on("dtmf", digit => { - console.log("digit: " + digit); - if (digit === "#") stream.close(); - }) -} -``` - - -### voiceResponse.dtmf(options) -Sends dtmf tones to the current session. - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) - -| Param | Type | Description | -| --- | --- | --- | -| options | DtmfOptions | Options object for the Dtmf verb | -| options.dtmf | string | A string of the dtmf tones | - -**Example** -```js -async function handler (request, response) { - await response.answer(); - await response.play("sound:hello-world"); - await response.dtmf({dtmf: "1234"}); -} -``` - - -### voiceResponse.dial(destination, options) ⇒ StatusStream -Forwards the call to an Agent or the PSTN. - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) -**Returns**: StatusStream - The StatusStream fires events via the `on` method for `progress`, `answer`, `noanswer`, and `busy`. And the stream can be close -with the `close` function. - -| Param | Type | Description | -| --- | --- | --- | -| destination | string | Number or Agent to forward the call to | -| options | DialOptions | Options object for the Dial verb | -| options.timeout | timeout | Dial timeout | - -**Example** -```js -async function handler (request, response) { - await response.answer(); - await response.say("dialing number"); - const stream = await response.dial("17853178070"); - stream.on("progress", console.log) - stream.on("answer", console.log) - stream.on("busy", console.log) -} -``` - - -### voiceResponse.playback(playbackId) -Returns a PlaybackControl control object. - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) -**See**: Play - -| Param | Type | Description | -| --- | --- | --- | -| playbackId | string | Playback identifier to use in Playback operations | - -**Example** -```js -async function handler (request, response) { - await response.answer(); - response.onDtmfReceived(async(digit) => { - const control = response.playback("1234") - digit === "3" - ? await control.restart() - : await control.forward() - }) - - await response.play("https://soundsserver:9000/sounds/hello-world.wav", { - playbackId: "1234" - }); -} -``` - - -### voiceResponse.on(handler) -Listens event publication. - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) - -| Param | Type | Description | -| --- | --- | --- | -| handler | function | Event handler | - -**Example** -```js -async function handler (request, response) { - await response.answer(); - response.on("DtmfReceived", async(digit) => { - const control = response.playback("1234") - digit === "3" - ? await control.restart() - : await control.forward() - }) - - await response.play("https://soundsserver:9000/sounds/hello-world.wav", { - playbackId: "1234" - }); -} -``` - - -### voiceResponse.mute(options) -Mutes a channel. - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) -**See**: unmute - -| Param | Type | Description | -| --- | --- | --- | -| options | MuteOptions | Indicate which direction of he communication to mute | -| options.direction | string | Possible values are 'in', 'out', and 'both' | - -**Example** -```js -async function handler (request, response) { - await response.answer(); - await response.mute(); // Will mute both directions -} -``` - - -### voiceResponse.unmute(options) -Unmutes a channel. - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) -**See**: mute - -| Param | Type | Description | -| --- | --- | --- | -| options | MuteOptions | Indicate which direction of he communication to unmute | -| options.direction | string | Possible values are 'in', 'out', and 'both' | - -**Example** -```js -async function handler (request, response) { - ... - await response.unmute({direction: "out"}); // Will unmute only the "out" direction -} -``` - - -### voiceResponse.answer() -Answer the communication channel. Before running any other verb you -must run the answer command. - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) -**Example** -```js -async function handler (request, response) { - await response.answer(); - ... -} -``` - - -### voiceResponse.hangup() -Terminates the communication channel. - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) -**Example** -```js -async function handler (request, response) { - ... - await response.hangup(); -} -``` - - -### voiceResponse.record(options) ⇒ Promise.<RecordResult> -Records the current channel and uploads the file to the storage subsystem. - -**Kind**: instance method of [VoiceResponse](#VoiceResponse) -**Returns**: Promise.<RecordResult> - Returns useful information such as the duration of the recording, etc. - -| Param | Type | Description | -| --- | --- | --- | -| options | RecordOptions | optional parameters to alter the command's normal behavior | -| options.maxDuration | number | Maximum duration of the recording, in seconds. Use `0` for no limit | -| options.maxSilence | number | Maximum duration of silence, in seconds. Use `0` for no limit | -| options.beep | boolean | Play beep when recording begins | -| options.finishOnKey | string | DTMF input to terminate recording | - -**Example** -```js -async function handler (request, response) { - await response.answer();; - const result = await response.record({finishOnKey: "#"}); - console.log("recording result: " + JSON.stringify(result)) // recording result: { duration: 30 ...} -} -``` diff --git a/etc/bootstrap.yml b/etc/bootstrap.yml deleted file mode 100644 index f7096a63d..000000000 --- a/etc/bootstrap.yml +++ /dev/null @@ -1,11 +0,0 @@ -# Voice Media Server - -- apiVersion: v1beta1 - kind: Peer - metadata: - name: Voice Media Server @ Default Region - spec: - device: default - credentials: - username: voice - secret: '6d1dea885027e3489322711f9708a7b7' diff --git a/etc/certs/ca-key.pem b/etc/certs/ca-key.pem deleted file mode 100644 index 671519b01..000000000 --- a/etc/certs/ca-key.pem +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIJKQIBAAKCAgEAqv8BurUqnstRiiYvvuTMPe57It0wBAs9QaNRfRFRIU43M6pR -FSSUAMyD4eZn44FqiCyPVoIPH83pxiLaGWEz0pUpimTVJePHIZ/h2vbkZJFVZduP -N6K0uxWYnk31Tx5ohtgnhL3m4TSdatgHydhc+IizNYB0canj7OqyfLN8K8dm1FLd -xaCSerC5DEBCAl5hkuxhLaDZ68y3eBB/hbY8Z+41IeJGJSZpUksRJKHxiNV6gUZm -Ry4HNmLucWj0fMckUUaUlByJf7XfnQFEeBiZyAd8ogQOjW+zE0Xi174sv659fZr8 -f1ea4ncTfu3S7bR0bujCJwd8virHo6VRx0HYNfiwoRNydNkmQFgDFlXun0TnJIvh -o2PHxLCb4svy1QysQ+uyFjjoI2M64sgk1dVW3thj2HBExZupHaMlzf5G4CdUR29J -/Rpcwr6ZY31f7KHzEJ06j7xL8PRzB6ayz4Z4o+z0tN/PfBEk7l8ygTh6xCu+ykfy -Hkr6HhCG05Usem4erIihKuQca/Ug44vI0vcPwFoKYzW5a2BHRYD7PhL9dTK2BZYi -7SM+o6lEoiiREh6AeMATqhDJ1ig/3afFIMlFpkcxFz2hqLk9wHLhMSJwLN6CPHSL -9YPXcKicnFcGEUnl8j2rJx7DEd5+lH7wrU2Yu4BFB4RiD6v/ZzbCaeT/S3UCAwEA -AQKCAgEAmpelhpkXiSyj8VQIwnqztCIRLTnvmRhYLylqGLo5MPU3rvwCBi1lqTs8 -2FSoA+US3T378OfwqH5PJZSIvX1FjtLQFZCHq5O8ikezt3SSk+FY5ZeUaWYuIx2p -NyWf7AG/2nk9cSMGwwAAeYIJuJBlrURZULtriv9fUuf0qgzS6/mAm+C3I17CTy3K -fqrxgpa1fFE8ojXUDvyrul6gC9Dv175iRtn9NMT/XykCvK20YlMuSAXPnfadCqxy -ihGrR8v6p4g595W9MbrKCXYF4tXK4i7ynL8yMOiVa405QndqmXk1dwNR2AbpvmiN -NanpkoIc6dCBBywbuQmQKADkaFK9FsOhysOKBbWqGvUGvbP0qKqZ1w6IntF8zRZ7 -VFHSv4o9K+tKXpv+/uUzL9rynKRnz6vYmzWPjPbu4EKjRY2IEA7WSjQF0dF0SL63 -1daVA2+6eEulDwhFUkhabeW745SBcFnaOtgSixfwratkHEUZk6QJ847TAqOXHPhW -w84fTkAyH3u+IUyr9kpF6JCIOV7hv4A8zsf2Rjpnz+RXl7ADb7UXF/oHTHq9mTEp -z14lzcITPDxkJWnBrLfsy+pXsQ4S7cLbQP6073A1qdzmKgHEQmAw7VLt1dJ0H0Vw -A3ota4FTMQb6/z52etRMkauWKCUKfPGPNk2I6MY9p51qDkbamUECggEBANseMxd/ -ZciMmL+hqyqiw+nUoJWbTRTupJeSyT3H+QPR1rv57TetDCveoRTkN6bXOSL2dDth -uR1Jnpn/4nEbBhp9XyVSOStG44aREizqOmYQUC5HKKaKAuGvCm6dTz1zPEnmXwuF -8Hm4Y5eH4J7el2aQdL+1yiA8Q6pip6uNqsCScZOC/FwrL/+SIYu0NzacdPJsHVxa -AL1G3PPDssR57yplzRj+BRqu5AgZmLLLwXJjVIfIhVrK7Z/CeDoPydjKJZXJKNW2 -GORQeO/8i6WWFVgGtreB3dbTpTbtTDY8t2qBMSM+WU0emA8Yfw/IybWKLgYNorSw -FojeGHz2o1nEQ70CggEBAMfHPDZ/9ZU2D3fQBla+U32yLuUbFNLJMmc86yV0n/Sl -jKXGuKX9DyljD7w+/Ig6e0ov3EcFlgTFy8gbUP0hWrLdPuHvPK7CP62NZpH5i739 -hcIVV80kiuyB2xXFJe34sJB5fl+HK5wkpdO7FPn82eJSRnVTcCUiazIhUbtgLVf6 -wSq4zAQjlU0VxEMvkeDpPRp3ibTQtC4pZtTSSOHg5QHdC0xiWByQ30nGGFT9Mvst -ipquqqtnxxfGLthIqPJiM5iF7RETLFSOCu7Zc7SG6N5k27Y70fk0soHN1I5SBibq -Po6/AhfAPlh83MobVZXimBsm95lESYXSNImw5vz7RhkCggEBAID+HUvG9u+CPWYK -0Y4u9bCRONv56f3Zo1GL2yags6qY/JX6wriVCeZFkISQ+WYhq4Q2nCRdGjHwpgq4 -xeCZ7RTpG3sIFZmxiL4uZwnD9g8hqWIlB/xKoPmlJzoJJ53gWeyTTv6kofW2JAMP -vZ8pIO4DOoeliFFDyP3kSBrJMm1diLkzUkccMYx9xXvN4vcmUf5owTwdy/OhZO+o -FHRv5+kItx3wZKbZsGpIT0lqg/5IFXo+BKt3bT4wqMBdjREvp8KvAngVVEAMU7XL -8ZXQbc49XZFYRXVzcP6N4eDIC54KYhgCW2X4DcJNRHfRV1Wk/AUaP9+pDgsS3E2s -kGuHC+0CggEADNub2n4d1j6mfDWdUtPpF7vyHLjDfFWKsu5OzBhXey10ge7qT3Sc -FzPS/XCoXDQ3Xyz5ZnDLmP8KAJURf1k4Ny7aLzxwkWbbJlZldZu0DMRWaYlqHz/s -2Q/6g8ouiMRqyMGpCojum5wYOCpgTT6i31ggRMjb/OfcMlvGoOKtyG3RJOjD6LhJ -ka6G9TQIlYstbZin+kU8c4QipCvsmO0akCYj5gSmWyBP3rWrNz0cnOHve8kmHuYN -AFC3DyCODxuW6ogkG+c6AS8rMPg55DKSpk2jfnUXLIzhuE0BEy/gSXzmDdXpUpIC -8TsIEtHzjjQJSiYV5X1ppf1DeGE0XK/ncQKCAQAOW9vd+xrojJjJB2TjALlH6O/S -8YR34F5vJXVk+pibLHh66NzFsKbtwrLiN7MH7Mi48fK8+nEi918Vf1eC8c79P1p2 -3FxN4eN1gFNe2+ru56R7N4uIqn34RzRcxCIqlIiNTs50BAuEsTlFewmOzQNuEllw -4cfK5Sb9ZXf1DBAqMCIzuZK1T4G9kG1jJA4NPsAzdSBZ+GNteNgVHRQru2NXlxZv -36bb/2bSlyRIsd9SHT4PWmA80nUYhsVw+ecEtn8VTn7KkNRs+Xcdn7a8pNLkvY9S -YONCCIwYXrJ4yZ81f5fYmNTTpspm0e9gEHaqZQb60jza/oZZc/A5BIoAOjSF ------END RSA PRIVATE KEY----- diff --git a/etc/certs/ca.crt b/etc/certs/ca.crt deleted file mode 100644 index a8313d9e5..000000000 --- a/etc/certs/ca.crt +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFBTCCAu2gAwIBAgIUBzcyYETN1fEhUvp3jVmfPTnwC3IwDQYJKoZIhvcNAQEL -BQAwEjEQMA4GA1UEAwwHdGVzdC1jYTAeFw0yMDA3MTExODA5MTZaFw0yMDA5MDkx -ODA5MTZaMBIxEDAOBgNVBAMMB3Rlc3QtY2EwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQCq/wG6tSqey1GKJi++5Mw97nsi3TAECz1Bo1F9EVEhTjczqlEV -JJQAzIPh5mfjgWqILI9Wgg8fzenGItoZYTPSlSmKZNUl48chn+Ha9uRkkVVl2483 -orS7FZieTfVPHmiG2CeEvebhNJ1q2AfJ2Fz4iLM1gHRxqePs6rJ8s3wrx2bUUt3F -oJJ6sLkMQEICXmGS7GEtoNnrzLd4EH+Ftjxn7jUh4kYlJmlSSxEkofGI1XqBRmZH -Lgc2Yu5xaPR8xyRRRpSUHIl/td+dAUR4GJnIB3yiBA6Nb7MTReLXviy/rn19mvx/ -V5ridxN+7dLttHRu6MInB3y+KsejpVHHQdg1+LChE3J02SZAWAMWVe6fROcki+Gj -Y8fEsJviy/LVDKxD67IWOOgjYzriyCTV1Vbe2GPYcETFm6kdoyXN/kbgJ1RHb0n9 -GlzCvpljfV/sofMQnTqPvEvw9HMHprLPhnij7PS03898ESTuXzKBOHrEK77KR/Ie -SvoeEIbTlSx6bh6siKEq5Bxr9SDji8jS9w/AWgpjNblrYEdFgPs+Ev11MrYFliLt -Iz6jqUSiKJESHoB4wBOqEMnWKD/dp8UgyUWmRzEXPaGouT3AcuExInAs3oI8dIv1 -g9dwqJycVwYRSeXyPasnHsMR3n6UfvCtTZi7gEUHhGIPq/9nNsJp5P9LdQIDAQAB -o1MwUTAdBgNVHQ4EFgQUxn+L16I2hW+G1Rpq3Ax4j9ccnN8wHwYDVR0jBBgwFoAU -xn+L16I2hW+G1Rpq3Ax4j9ccnN8wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B -AQsFAAOCAgEAYa1wnKbB4/bTGk4ZWlYOV1lKHQn/AOJnH3N9kePqdIEHWXRybAYe -23Q6/SfiPlZ027pYOy9ElajTtp1kbg/R9kBhjohN31mtoWmPpZvN3LchnCW3ui9c -SUzLeoC9ZiIb/ck4H3NMybf2ktSLBgT3u+ODvPsbx61RfzZZxpV5Sx1nv9kvSATE -DWZFQyF6ctWfccuDwpjHzY14nyotcICep2xRHspuhDmMd6Eq/U3WYbML1kzrlRh1 -+BloG2dTS+MzqD7So/d0hkZj25m39oxHr3tTkfE+Pque5JJ/x9LpX84Z+tKkMMaC -RmdVS0RkTGjeiX/G3Ru0PMIaZ0gRgfP8+UShysky8v6EmAdu9dSqTw/tg6Rxl1t/ -6GFH1SGHP6SblbNUB5xVyVrYL4VfhOACxXjx+qfy319upvysRXbtFszsnD5RLhct -dRVwJWzHWGcLY8LAD0eCNfU3ylPw6ZiEcdK5JTeGz+XQk5NCINWecLyNsG351PPD -wYxtxqHRL6aApTYG/6Fp7jzoSXTnfvWsV0E4JTQjsFoX6jCHQAKSsK8ysfnebjGs -pnE+ywYk+20Cyi4evYkn2oiF04TeQwP+V8ktUjSI+PEsOFUuv/B+oq5FMRHu1+BL -E/mzUIu4YdPUOhg8HhoPYEqkf/DKkA7WBRq2Y/3ExPF8+5WhAEQMGUs= ------END CERTIFICATE----- diff --git a/etc/certs/private.pem.example b/etc/certs/private.pem.example deleted file mode 100644 index f3b5d009d..000000000 --- a/etc/certs/private.pem.example +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIBOgIBAAJBAJ6P+APtBxacEuI6n3PbdIDsLR2/uj/FVincMBYKBtpc3jBL/JNp -qX10mmdkOpOv6Jh0vE314q9Zg88jSNjus9kCAwEAAQJAZ3W09IrSVzRbNfXeWPBW -olB4V7LkSfvu7r1XOuor8ooi7cHyHAmaYu7LmcG41wE37BKkUG5+PTW3Q6qyIOqq -IQIhANERd9yfuV57Tvv4eNHeIBPzpa2PUYCkOqYng9cfPR4dAiEAwigUJYUCeY6i -SwlLcV+eFdGDd9n10iy3v9hXmyGUr+0CIDO8mObV9+9zoFYmZO+6gkGtt8A9iTPG -cGURvkSMDHnZAiBy65QZLSRs3M8VCPhdr9H7ahqd6yYEdDGC3UPlb7f5dQIhAM6Q -HzyFgXw46pPHHfiTH5bNt6Ms97plq1waZcwMtwfT ------END RSA PRIVATE KEY----- \ No newline at end of file diff --git a/etc/certs/public.pem.example b/etc/certs/public.pem.example deleted file mode 100644 index 2499366ff..000000000 --- a/etc/certs/public.pem.example +++ /dev/null @@ -1,4 +0,0 @@ ------BEGIN RSA PUBLIC KEY----- -MEgCQQCej/gD7QcWnBLiOp9z23SA7C0dv7o/xVYp3DAWCgbaXN4wS/yTaal9dJpn -ZDqTr+iYdLxN9eKvWYPPI0jY7rPZAgMBAAE= ------END RSA PUBLIC KEY----- \ No newline at end of file diff --git a/etc/fluent.conf b/etc/fluent.conf deleted file mode 100644 index 390c24186..000000000 --- a/etc/fluent.conf +++ /dev/null @@ -1,23 +0,0 @@ - - @type forward - port 24224 - bind 0.0.0.0 - - - @type copy - - @type elasticsearch - host logsaggregator.fonoster - port 9200 - logstash_format true - logstash_prefix fluentd - logstash_dateformat %Y%m%d - include_tag_key true - type_name access_log - tag_key @log_name - flush_interval 1s - - - @type stdout - - diff --git a/etc/install.sh b/etc/install.sh deleted file mode 100755 index 9982a6dc7..000000000 --- a/etc/install.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -/docker/run.sh install diff --git a/etc/limiters.json b/etc/limiters.json deleted file mode 100644 index 0637a088a..000000000 --- a/etc/limiters.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/etc/limiters_example.json b/etc/limiters_example.json deleted file mode 100644 index 6491578b8..000000000 --- a/etc/limiters_example.json +++ /dev/null @@ -1,29 +0,0 @@ -[ - { - "name": "default", - "allowedStatus": "active", - "limits": [ - { - "path": "/fonoster.projects.v1beta1.Projects/CreateProject", - "resource": "Project", - "limit": 1 - }, - { - "path": "/fonoster.domains.v1beta1.Domains/CreateDomain", - "resource": "Domain", - "limit": 5 - }, - { - "path": "/fonoster.agents.v1beta1.Agents/CreateAgent", - "resource": "Agent", - "limit": 20 - }, - { - "path": "/fonoster.callmanager.v1beta1.CallManager/Call", - "resource": "Call", - "limit": 150, - "timeUnit": "month" - } - ] - } -] \ No newline at end of file diff --git a/etc/log4j2.yaml b/etc/log4j2.yaml new file mode 100644 index 000000000..af7b0d04f --- /dev/null +++ b/etc/log4j2.yaml @@ -0,0 +1,17 @@ +Configuration: + Appenders: + Console: + PatternLayout: + pattern: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-4level{lowerCase=true}]: (${sys:serviceName}) %c{1}.java %msg%n" + name: Console + target: SYSTEM_OUT + Loggers: + Logger: + - name: io.routr + level: debug + AppenderRef: + - ref: Console + Root: + level: error + AppenderRef: + - ref: Console diff --git a/etc/log4j2.yml b/etc/log4j2.yml deleted file mode 100644 index 3baf99e70..000000000 --- a/etc/log4j2.yml +++ /dev/null @@ -1,12 +0,0 @@ -Configuration: - Appenders: - Console: - PatternLayout: - pattern: '[%-5level] %msg%n' - name: Console - target: SYSTEM_OUT - Loggers: - Root: - AppenderRef: - - ref: Console - level: info diff --git a/etc/private_key b/etc/private_key deleted file mode 100644 index 5bbaf8758..000000000 --- a/etc/private_key +++ /dev/null @@ -1 +0,0 @@ -changeit \ No newline at end of file diff --git a/etc/prompt_example.md b/etc/prompt_example.md new file mode 100644 index 000000000..c911c493c --- /dev/null +++ b/etc/prompt_example.md @@ -0,0 +1,39 @@ + +[Role] + +You are a voice agent designed to facilitate fluid and engaging conversations with users. Your primary role is to provide relevant and actionable information related about \"La Bella Ristorante\", assist with problem-solving, and maintain a coherent conversational flow. Always strive to be concise but informative, ensuring user satisfaction with each interaction. + +[Tone and Voice] + +- Maintain a friendly professional tone in all conversations +- Adapt your responses based on the user's emotional state. If they seem confused, frustrated empathy, encouragement +- Use human-like speech patterns to ensure the conversation feels smooth and engaging (e.g., avoid overly formal or robotic language) + +[Conversation Constraints] + +Use the following guidelines to ensure effective and engaging conversations: + +- Keep responses concise and conversational - aim for short sentence +- When discussing sensitive or personal information, maintain a neutral, professional tone to ensure user comfort +- Ensure that conversations remain focused on the topic at hand, but be flexible enough to handle related follow-up questions +- When asked a question you don't know the answer to, tell you don't and offer to transfer the user to a human agent if necessary +- Avoid using emojis, line-breaks (e.g, "\n"), or other non-verbal communication in your responses + +[Contextual Understanding] + +- Leverage previous user inputs to contextualize your responses. For example, if the user mentioned a recent issue refer to it in your responses. +- Ensure your suggestions are situationally appropriate to the context of the conversation. + +[Safety and Privacy] + +- You should refer the user to 911 or emergency services if they are in immediate danger or require urgent assistance. + +[Available Tools] + +You have access to the following tools and capabilities: + +- Knowledge Base: User the knowledge base to provide information about the menu +- Use the `getAvailableTime` too to check the availability of the user +- User the `bookReservation` tool to help users book appointments or reservations +- When the user says goodbye or similar closing phrases, you can use the `hangup` tool to end the conversation +- When the user wants to speak to a human agent, you can use the `transfer` tool to transfer the conversation to a human agent diff --git a/etc/rbac.json b/etc/rbac.json deleted file mode 100644 index 68415fbed..000000000 --- a/etc/rbac.json +++ /dev/null @@ -1,103 +0,0 @@ -[ - { - "name": "USER", - "description": "Access to User and Project endpoints", - "access": [ - "/fonoster.users.v1beta1.Users/ListUsers", - "/fonoster.users.v1beta1.Users/GetUser", - "/fonoster.users.v1beta1.Users/UpdateUser", - "/fonoster.users.v1beta1.Users/Login", - "/fonoster.projects.v1beta1.Projects/ListProjects", - "/fonoster.projects.v1beta1.Projects/CreateProject", - "/fonoster.projects.v1beta1.Projects/UpdateProject", - "/fonoster.projects.v1beta1.Projects/GetProject", - "/fonoster.projects.v1beta1.Projects/DeleteProject", - "/fonoster.projects.v1beta1.Projects/RenewAccessKeySecret", - "/fonoster.limiter.v1beta1.Limiter/CheckAuthorized" - ] - }, - { - "name": "PROJECT", - "description": "Access to Project resources", - "access": [ - "/fonoster.apps.v1beta1.Apps/ListApps", - "/fonoster.apps.v1beta1.Apps/CreateApp", - "/fonoster.apps.v1beta1.Apps/GetApp", - "/fonoster.apps.v1beta1.Apps/UpdateApp", - "/fonoster.apps.v1beta1.Apps/DeleteApp", - "/fonoster.monitor.v1beta1.Monitor/SearchEvents", - "/fonoster.storage.v1beta1.Storage/UploadObject", - "/fonoster.storage.v1beta1.Storage/GetObjectURL", - "/fonoster.providers.v1beta1.Providers/ListProviders", - "/fonoster.providers.v1beta1.Providers/CreateProvider", - "/fonoster.providers.v1beta1.Providers/GetProvider", - "/fonoster.providers.v1beta1.Providers/UpdateProvider", - "/fonoster.providers.v1beta1.Providers/DeleteProvider", - "/fonoster.numbers.v1beta1.Numbers/ListNumbers", - "/fonoster.numbers.v1beta1.Numbers/CreateNumber", - "/fonoster.numbers.v1beta1.Numbers/GetIngressInfo", - "/fonoster.numbers.v1beta1.Numbers/GetNumber", - "/fonoster.numbers.v1beta1.Numbers/UpdateNumber", - "/fonoster.numbers.v1beta1.Numbers/DeleteNumber", - "/fonoster.domains.v1beta1.Domains/ListDomains", - "/fonoster.domains.v1beta1.Domains/CreateDomain", - "/fonoster.domains.v1beta1.Domains/GetDomain", - "/fonoster.domains.v1beta1.Domains/UpdateDomain", - "/fonoster.domains.v1beta1.Domains/DeleteDomain", - "/fonoster.callmanager.v1beta1.CallManager/Call", - "/fonoster.agents.v1beta1.Agents/ListAgents", - "/fonoster.agents.v1beta1.Agents/CreateAgent", - "/fonoster.agents.v1beta1.Agents/GetAgent", - "/fonoster.agents.v1beta1.Agents/UpdateAgent", - "/fonoster.agents.v1beta1.Agents/DeleteAgent", - "/fonoster.funcs.v1beta1.Funcs/ListFuncs", - "/fonoster.funcs.v1beta1.Funcs/GetFunc", - "/fonoster.funcs.v1beta1.Funcs/DeployFunc", - "/fonoster.funcs.v1beta1.Funcs/DeleteFunc", - "/fonoster.funcs.v1beta1.Funcs/GetFuncLogs", - "/fonoster.secrets.v1beta1.Secrets/CreateSecret", - "/fonoster.secrets.v1beta1.Secrets/ListSecretsId", - "/fonoster.secrets.v1beta1.Secrets/DeleteSecret", - "/fonoster.secrets.v1beta1.Secrets/GetSecret", - "/fonoster.limiter.v1beta1.Limiter/CheckAuthorized" - ] - }, - { - "name": "FUNCTION", - "description": "This role is limited only to calling", - "access": [ - "/fonoster.callmanager.v1beta1.CallManager/Call", - "/fonoster.secrets.v1beta1.Secrets/GetSecret", - "/fonoster.auth.v1beta1.Auth/ValidateToken" - ] - }, - { - "name": "SERVICE", - "description": "This role is able to obtain ingress information and create short-live token", - "access": [ - "/fonoster.numbers.v1beta1.Numbers/GetIngressInfo", - "/fonoster.auth.v1beta1.Auth/CreateToken", - "/fonoster.auth.v1beta1.Auth/CreateNoAccessToken", - "/fonoster.auth.v1beta1.Auth/ValidateToken", - "/fonoster.users.v1beta1.Users/CreateUser", - "/fonoster.users.v1beta1.Users/ListUsers", - "/fonoster.users.v1beta1.Users/UpdateUser" - ] - }, - { - "name": "NO_ACCESSS", - "description": "Signature token without any access", - "access": [] - }, - { - "name": "ADMIN", - "description": "Can perform administrative task", - "access": [ - "/fonoster.auth.v1beta1.Auth/CreateToken", - "/fonoster.users.v1beta1.Users/CreateUser", - "/fonoster.users.v1beta1.Users/DeleteUser", - "/fonoster.users.v1beta1.Users/ListUsers", - "/fonoster.users.v1beta1.Users/UpdateUser" - ] - } -] diff --git a/etc/redis.conf b/etc/redis.conf deleted file mode 100644 index a3f0761f7..000000000 --- a/etc/redis.conf +++ /dev/null @@ -1,7 +0,0 @@ -# Please use a strong secret -requirepass changeit - -appendonly yes -rename-command FLUSHDB "" -rename-command FLUSHALL "" -rename-command DEBUG "" diff --git a/etc/service_envs.json b/etc/service_envs.json deleted file mode 100644 index fdd13c7b1..000000000 --- a/etc/service_envs.json +++ /dev/null @@ -1,108 +0,0 @@ -[ - { - "module": "agents", - "env": [ - "SIPPROXY_HOST", - "SIPPROXY_API_PORT", - "SIPPROXY_API_USERNAME", - "SIPPROXY_API_SECRET" - ] - }, - { - "module": "providers", - "env": [ - "SIPPROXY_HOST", - "SIPPROXY_API_PORT", - "SIPPROXY_API_USERNAME", - "SIPPROXY_API_SECRET" - ] - }, - { - "module": "callmanager", - "env": [ - "MS_TRUNK", - "MS_CONTEXT", - "MS_EXTENSION", - "MS_ARI_INTERNAL_URL", - "MS_ARI_USERNAME", - "MS_ARI_SECRET", - "SIPPROXY_HOST", - "SIPPROXY_API_PORT", - "SIPPROXY_API_USERNAME", - "SIPPROXY_API_SECRET" - ] - }, - { - "module": "dispatcher", - "env": [ - "MS_ARI_INTERNAL_URL", - "MS_ARI_USERNAME", - "MS_ARI_SECRET", - "RECORDINGS_PATH" - ] - }, - { - "module": "domains", - "env": [ - "SIPPROXY_HOST", - "SIPPROXY_API_PORT", - "SIPPROXY_API_USERNAME", - "SIPPROXY_API_SECRET", - "GLOBAL_SIP_DOMAIN" - ] - }, - { - "module": "numbers", - "env": [ - "VOICE_URL", - "MS_ENDPOINT", - "SIPPROXY_HOST", - "SIPPROXY_API_PORT", - "SIPPROXY_API_USERNAME", - "SIPPROXY_API_SECRET" - ] - }, - { - "module": "secrets", - "env": [ - "VAULT_ADDR", - "SECRETS_POLICY" - ] - }, - { - "module": "storage", - "env": [ - "FS_HOST", - "FS_PORT", - "FS_USERNAME", - "FS_SECRET" - ] - }, - { - "module": "monitor", - "env": [ - "LOGS_AGGREGRATOR_HOST", - "LOGS_AGGREGRATOR_PORT" - ] - }, - { - "module": "limiter", - "env": [ - "DS_HOST", - "DS_PORT", - "DS_SECRET", - "SIPPROXY_HOST", - "SIPPROXY_API_PORT", - "SIPPROXY_API_USERNAME", - "SIPPROXY_API_SECRET" - ] - }, - { - "module": "apps", - "env": [ - "DS_HOST", - "DS_PORT", - "DS_SECRET" - ] - } -] diff --git a/etc/sounds/test.sln b/etc/sounds/test.sln new file mode 100644 index 000000000..79a7992e2 Binary files /dev/null and b/etc/sounds/test.sln differ diff --git a/etc/sounds/test.sln16 b/etc/sounds/test.sln16 new file mode 100644 index 000000000..989cc53b2 Binary files /dev/null and b/etc/sounds/test.sln16 differ diff --git a/etc/stop.sh b/etc/stop.sh deleted file mode 100644 index 8f2959f66..000000000 --- a/etc/stop.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -/docker/run.sh stop diff --git a/etc/update.sh b/etc/update.sh deleted file mode 100755 index 0b4940f05..000000000 --- a/etc/update.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -/docker/run.sh update diff --git a/etc/vault.json b/etc/vault.json deleted file mode 100644 index 945ac9bea..000000000 --- a/etc/vault.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "backend": { - "file": { - "path": "/vault/file" - } - }, - "listener": { - "tcp": { - "address": "0.0.0.0:8200", - "tls_disable": 1 - } - }, - "default_lease_ttl": "168h", - "max_lease_ttl": "0h" -} \ No newline at end of file diff --git a/etc/vault_policy.hcl b/etc/vault_policy.hcl deleted file mode 100644 index ece666e8f..000000000 --- a/etc/vault_policy.hcl +++ /dev/null @@ -1,3 +0,0 @@ -path "secret/data/{{identity.entity.id}}/*" { - capabilities = ["create", "read", "update", "delete", "list"] -} \ No newline at end of file diff --git a/etc/vendor_protos/google/api/annotations.proto b/etc/vendor_protos/google/api/annotations.proto deleted file mode 100644 index efdab3db6..000000000 --- a/etc/vendor_protos/google/api/annotations.proto +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2015 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.api; - -import "google/api/http.proto"; -import "google/protobuf/descriptor.proto"; - -option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; -option java_multiple_files = true; -option java_outer_classname = "AnnotationsProto"; -option java_package = "com.google.api"; -option objc_class_prefix = "GAPI"; - -extend google.protobuf.MethodOptions { - // See `HttpRule`. - HttpRule http = 72295728; -} diff --git a/etc/vendor_protos/google/api/field_behavior.proto b/etc/vendor_protos/google/api/field_behavior.proto deleted file mode 100644 index b47136fdf..000000000 --- a/etc/vendor_protos/google/api/field_behavior.proto +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2018 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.api; - -import "google/protobuf/descriptor.proto"; - -option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; -option java_multiple_files = true; -option java_outer_classname = "FieldBehaviorProto"; -option java_package = "com.google.api"; -option objc_class_prefix = "GAPI"; - -extend google.protobuf.FieldOptions { - // A designation of a specific field behavior (required, output only, etc.) - // in protobuf messages. - // - // Examples: - // - // string name = 1 [(google.api.field_behavior) = REQUIRED]; - // State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - // google.protobuf.Duration ttl = 1 - // [(google.api.field_behavior) = INPUT_ONLY]; - // google.protobuf.Timestamp expire_time = 1 - // [(google.api.field_behavior) = OUTPUT_ONLY, - // (google.api.field_behavior) = IMMUTABLE]; - repeated google.api.FieldBehavior field_behavior = 1052; -} - -// An indicator of the behavior of a given field (for example, that a field -// is required in requests, or given as output but ignored as input). -// This **does not** change the behavior in protocol buffers itself; it only -// denotes the behavior and may affect how API tooling handles the field. -// -// Note: This enum **may** receive new values in the future. -enum FieldBehavior { - // Conventional default for enums. Do not use this. - FIELD_BEHAVIOR_UNSPECIFIED = 0; - - // Specifically denotes a field as optional. - // While all fields in protocol buffers are optional, this may be specified - // for emphasis if appropriate. - OPTIONAL = 1; - - // Denotes a field as required. - // This indicates that the field **must** be provided as part of the request, - // and failure to do so will cause an error (usually `INVALID_ARGUMENT`). - REQUIRED = 2; - - // Denotes a field as output only. - // This indicates that the field is provided in responses, but including the - // field in a request does nothing (the server *must* ignore it and - // *must not* throw an error as a result of the field's presence). - OUTPUT_ONLY = 3; - - // Denotes a field as input only. - // This indicates that the field is provided in requests, and the - // corresponding field is not included in output. - INPUT_ONLY = 4; - - // Denotes a field as immutable. - // This indicates that the field may be set once in a request to create a - // resource, but may not be changed thereafter. - IMMUTABLE = 5; - - // Denotes that a (repeated) field is an unordered list. - // This indicates that the service may provide the elements of the list - // in any arbitrary order, rather than the order the user originally - // provided. Additionally, the list's order may or may not be stable. - UNORDERED_LIST = 6; - - // Denotes that this field returns a non-empty default value if not set. - // This indicates that if the user provides the empty value in a request, - // a non-empty value will be returned. The user will not be aware of what - // non-empty value to expect. - NON_EMPTY_DEFAULT = 7; -} \ No newline at end of file diff --git a/etc/vendor_protos/google/api/http.proto b/etc/vendor_protos/google/api/http.proto deleted file mode 100644 index 113fa936a..000000000 --- a/etc/vendor_protos/google/api/http.proto +++ /dev/null @@ -1,375 +0,0 @@ -// Copyright 2015 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.api; - -option cc_enable_arenas = true; -option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; -option java_multiple_files = true; -option java_outer_classname = "HttpProto"; -option java_package = "com.google.api"; -option objc_class_prefix = "GAPI"; - -// Defines the HTTP configuration for an API service. It contains a list of -// [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method -// to one or more HTTP REST API methods. -message Http { - // A list of HTTP configuration rules that apply to individual API methods. - // - // **NOTE:** All service configuration rules follow "last one wins" order. - repeated HttpRule rules = 1; - - // When set to true, URL path parameters will be fully URI-decoded except in - // cases of single segment matches in reserved expansion, where "%2F" will be - // left encoded. - // - // The default behavior is to not decode RFC 6570 reserved characters in multi - // segment matches. - bool fully_decode_reserved_expansion = 2; -} - -// # gRPC Transcoding -// -// gRPC Transcoding is a feature for mapping between a gRPC method and one or -// more HTTP REST endpoints. It allows developers to build a single API service -// that supports both gRPC APIs and REST APIs. Many systems, including [Google -// APIs](https://github.com/googleapis/googleapis), -// [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC -// Gateway](https://github.com/grpc-ecosystem/grpc-gateway), -// and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature -// and use it for large scale production services. -// -// `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies -// how different portions of the gRPC request message are mapped to the URL -// path, URL query parameters, and HTTP request body. It also controls how the -// gRPC response message is mapped to the HTTP response body. `HttpRule` is -// typically specified as an `google.api.http` annotation on the gRPC method. -// -// Each mapping specifies a URL path template and an HTTP method. The path -// template may refer to one or more fields in the gRPC request message, as long -// as each field is a non-repeated field with a primitive (non-message) type. -// The path template controls how fields of the request message are mapped to -// the URL path. -// -// Example: -// -// service Messaging { -// rpc GetMessage(GetMessageRequest) returns (Message) { -// option (google.api.http) = { -// get: "/v1/{name=messages/*}" -// }; -// } -// } -// message GetMessageRequest { -// string name = 1; // Mapped to URL path. -// } -// message Message { -// string text = 1; // The resource content. -// } -// -// This enables an HTTP REST to gRPC mapping as below: -// -// HTTP | gRPC -// -----|----- -// `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")` -// -// Any fields in the request message which are not bound by the path template -// automatically become HTTP query parameters if there is no HTTP request body. -// For example: -// -// service Messaging { -// rpc GetMessage(GetMessageRequest) returns (Message) { -// option (google.api.http) = { -// get:"/v1/messages/{message_id}" -// }; -// } -// } -// message GetMessageRequest { -// message SubMessage { -// string subfield = 1; -// } -// string message_id = 1; // Mapped to URL path. -// int64 revision = 2; // Mapped to URL query parameter `revision`. -// SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`. -// } -// -// This enables a HTTP JSON to RPC mapping as below: -// -// HTTP | gRPC -// -----|----- -// `GET /v1/messages/123456?revision=2&sub.subfield=foo` | -// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: -// "foo"))` -// -// Note that fields which are mapped to URL query parameters must have a -// primitive type or a repeated primitive type or a non-repeated message type. -// In the case of a repeated type, the parameter can be repeated in the URL -// as `...?param=A¶m=B`. In the case of a message type, each field of the -// message is mapped to a separate parameter, such as -// `...?foo.a=A&foo.b=B&foo.c=C`. -// -// For HTTP methods that allow a request body, the `body` field -// specifies the mapping. Consider a REST update method on the -// message resource collection: -// -// service Messaging { -// rpc UpdateMessage(UpdateMessageRequest) returns (Message) { -// option (google.api.http) = { -// patch: "/v1/messages/{message_id}" -// body: "message" -// }; -// } -// } -// message UpdateMessageRequest { -// string message_id = 1; // mapped to the URL -// Message message = 2; // mapped to the body -// } -// -// The following HTTP JSON to RPC mapping is enabled, where the -// representation of the JSON in the request body is determined by -// protos JSON encoding: -// -// HTTP | gRPC -// -----|----- -// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: -// "123456" message { text: "Hi!" })` -// -// The special name `*` can be used in the body mapping to define that -// every field not bound by the path template should be mapped to the -// request body. This enables the following alternative definition of -// the update method: -// -// service Messaging { -// rpc UpdateMessage(Message) returns (Message) { -// option (google.api.http) = { -// patch: "/v1/messages/{message_id}" -// body: "*" -// }; -// } -// } -// message Message { -// string message_id = 1; -// string text = 2; -// } -// -// -// The following HTTP JSON to RPC mapping is enabled: -// -// HTTP | gRPC -// -----|----- -// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: -// "123456" text: "Hi!")` -// -// Note that when using `*` in the body mapping, it is not possible to -// have HTTP parameters, as all fields not bound by the path end in -// the body. This makes this option more rarely used in practice when -// defining REST APIs. The common usage of `*` is in custom methods -// which don't use the URL at all for transferring data. -// -// It is possible to define multiple HTTP methods for one RPC by using -// the `additional_bindings` option. Example: -// -// service Messaging { -// rpc GetMessage(GetMessageRequest) returns (Message) { -// option (google.api.http) = { -// get: "/v1/messages/{message_id}" -// additional_bindings { -// get: "/v1/users/{user_id}/messages/{message_id}" -// } -// }; -// } -// } -// message GetMessageRequest { -// string message_id = 1; -// string user_id = 2; -// } -// -// This enables the following two alternative HTTP JSON to RPC mappings: -// -// HTTP | gRPC -// -----|----- -// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` -// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: -// "123456")` -// -// ## Rules for HTTP mapping -// -// 1. Leaf request fields (recursive expansion nested messages in the request -// message) are classified into three categories: -// - Fields referred by the path template. They are passed via the URL path. -// - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They are passed via the HTTP -// request body. -// - All other fields are passed via the URL query parameters, and the -// parameter name is the field path in the request message. A repeated -// field can be represented as multiple query parameters under the same -// name. -// 2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL query parameter, all fields -// are passed via URL path and HTTP request body. -// 3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all -// fields are passed via URL path and URL query parameters. -// -// ### Path template syntax -// -// Template = "/" Segments [ Verb ] ; -// Segments = Segment { "/" Segment } ; -// Segment = "*" | "**" | LITERAL | Variable ; -// Variable = "{" FieldPath [ "=" Segments ] "}" ; -// FieldPath = IDENT { "." IDENT } ; -// Verb = ":" LITERAL ; -// -// The syntax `*` matches a single URL path segment. The syntax `**` matches -// zero or more URL path segments, which must be the last part of the URL path -// except the `Verb`. -// -// The syntax `Variable` matches part of the URL path as specified by its -// template. A variable template must not contain other variables. If a variable -// matches a single path segment, its template may be omitted, e.g. `{var}` -// is equivalent to `{var=*}`. -// -// The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL` -// contains any reserved character, such characters should be percent-encoded -// before the matching. -// -// If a variable contains exactly one path segment, such as `"{var}"` or -// `"{var=*}"`, when such a variable is expanded into a URL path on the client -// side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The -// server side does the reverse decoding. Such variables show up in the -// [Discovery -// Document](https://developers.google.com/discovery/v1/reference/apis) as -// `{var}`. -// -// If a variable contains multiple path segments, such as `"{var=foo/*}"` -// or `"{var=**}"`, when such a variable is expanded into a URL path on the -// client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. -// The server side does the reverse decoding, except "%2F" and "%2f" are left -// unchanged. Such variables show up in the -// [Discovery -// Document](https://developers.google.com/discovery/v1/reference/apis) as -// `{+var}`. -// -// ## Using gRPC API Service Configuration -// -// gRPC API Service Configuration (service config) is a configuration language -// for configuring a gRPC service to become a user-facing product. The -// service config is simply the YAML representation of the `google.api.Service` -// proto message. -// -// As an alternative to annotating your proto file, you can configure gRPC -// transcoding in your service config YAML files. You do this by specifying a -// `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same -// effect as the proto annotation. This can be particularly useful if you -// have a proto that is reused in multiple services. Note that any transcoding -// specified in the service config will override any matching transcoding -// configuration in the proto. -// -// Example: -// -// http: -// rules: -// # Selects a gRPC method and applies HttpRule to it. -// - selector: example.v1.Messaging.GetMessage -// get: /v1/messages/{message_id}/{sub.subfield} -// -// ## Special notes -// -// When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the -// proto to JSON conversion must follow the [proto3 -// specification](https://developers.google.com/protocol-buffers/docs/proto3#json). -// -// While the single segment variable follows the semantics of -// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String -// Expansion, the multi segment variable **does not** follow RFC 6570 Section -// 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion -// does not expand special characters like `?` and `#`, which would lead -// to invalid URLs. As the result, gRPC Transcoding uses a custom encoding -// for multi segment variables. -// -// The path variables **must not** refer to any repeated or mapped field, -// because client libraries are not capable of handling such variable expansion. -// -// The path variables **must not** capture the leading "/" character. The reason -// is that the most common use case "{var}" does not capture the leading "/" -// character. For consistency, all path variables must share the same behavior. -// -// Repeated message fields must not be mapped to URL query parameters, because -// no client library can support such complicated mapping. -// -// If an API needs to use a JSON array for request or response body, it can map -// the request or response body to a repeated field. However, some gRPC -// Transcoding implementations may not support this feature. -message HttpRule { - // Selects a method to which this rule applies. - // - // Refer to [selector][google.api.DocumentationRule.selector] for syntax details. - string selector = 1; - - // Determines the URL pattern is matched by this rules. This pattern can be - // used with any of the {get|put|post|delete|patch} methods. A custom method - // can be defined using the 'custom' field. - oneof pattern { - // Maps to HTTP GET. Used for listing and getting information about - // resources. - string get = 2; - - // Maps to HTTP PUT. Used for replacing a resource. - string put = 3; - - // Maps to HTTP POST. Used for creating a resource or performing an action. - string post = 4; - - // Maps to HTTP DELETE. Used for deleting a resource. - string delete = 5; - - // Maps to HTTP PATCH. Used for updating a resource. - string patch = 6; - - // The custom pattern is used for specifying an HTTP method that is not - // included in the `pattern` field, such as HEAD, or "*" to leave the - // HTTP method unspecified for this rule. The wild-card rule is useful - // for services that provide content to Web (HTML) clients. - CustomHttpPattern custom = 8; - } - - // The name of the request field whose value is mapped to the HTTP request - // body, or `*` for mapping all request fields not captured by the path - // pattern to the HTTP body, or omitted for not having any HTTP request body. - // - // NOTE: the referred field must be present at the top-level of the request - // message type. - string body = 7; - - // Optional. The name of the response field whose value is mapped to the HTTP - // response body. When omitted, the entire response message will be used - // as the HTTP response body. - // - // NOTE: The referred field must be present at the top-level of the response - // message type. - string response_body = 12; - - // Additional HTTP bindings for the selector. Nested bindings must - // not contain an `additional_bindings` field themselves (that is, - // the nesting may only be one level deep). - repeated HttpRule additional_bindings = 11; -} - -// A custom pattern is used for defining custom HTTP verb. -message CustomHttpPattern { - // The name of this custom HTTP verb. - string kind = 1; - - // The path matched by this custom verb. - string path = 2; -} diff --git a/etc/vendor_protos/google/api/httpbody.proto b/etc/vendor_protos/google/api/httpbody.proto deleted file mode 100644 index c2905d79e..000000000 --- a/etc/vendor_protos/google/api/httpbody.proto +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2015 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.api; - -import "google/protobuf/any.proto"; - -option cc_enable_arenas = true; -option go_package = "google.golang.org/genproto/googleapis/api/httpbody;httpbody"; -option java_multiple_files = true; -option java_outer_classname = "HttpBodyProto"; -option java_package = "com.google.api"; -option objc_class_prefix = "GAPI"; - -// Message that represents an arbitrary HTTP body. It should only be used for -// payload formats that can't be represented as JSON, such as raw binary or -// an HTML page. -// -// -// This message can be used both in streaming and non-streaming API methods in -// the request as well as the response. -// -// It can be used as a top-level request field, which is convenient if one -// wants to extract parameters from either the URL or HTTP template into the -// request fields and also want access to the raw HTTP body. -// -// Example: -// -// message GetResourceRequest { -// // A unique request id. -// string request_id = 1; -// -// // The raw HTTP body is bound to this field. -// google.api.HttpBody http_body = 2; -// } -// -// service ResourceService { -// rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); -// rpc UpdateResource(google.api.HttpBody) returns -// (google.protobuf.Empty); -// } -// -// Example with streaming methods: -// -// service CaldavService { -// rpc GetCalendar(stream google.api.HttpBody) -// returns (stream google.api.HttpBody); -// rpc UpdateCalendar(stream google.api.HttpBody) -// returns (stream google.api.HttpBody); -// } -// -// Use of this type only changes how the request and response bodies are -// handled, all other features will continue to work unchanged. -message HttpBody { - // The HTTP Content-Type header value specifying the content type of the body. - string content_type = 1; - - // The HTTP request/response body as raw binary. - bytes data = 2; - - // Application specific response metadata. Must be set in the first response - // for streaming APIs. - repeated google.protobuf.Any extensions = 3; -} \ No newline at end of file diff --git a/etc/vendor_protos/google/protobuf/struct.proto b/etc/vendor_protos/google/protobuf/struct.proto deleted file mode 100644 index 1269ce14a..000000000 --- a/etc/vendor_protos/google/protobuf/struct.proto +++ /dev/null @@ -1,95 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; - -package google.protobuf; - -option csharp_namespace = "Google.Protobuf.WellKnownTypes"; -option cc_enable_arenas = true; -option go_package = "google.golang.org/protobuf/types/known/structpb"; -option java_package = "com.google.protobuf"; -option java_outer_classname = "StructProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -// `Struct` represents a structured data value, consisting of fields -// which map to dynamically typed values. In some languages, `Struct` -// might be supported by a native representation. For example, in -// scripting languages like JS a struct is represented as an -// object. The details of that representation are described together -// with the proto support for the language. -// -// The JSON representation for `Struct` is JSON object. -message Struct { - // Unordered map of dynamically typed values. - map fields = 1; -} - -// `Value` represents a dynamically typed value which can be either -// null, a number, a string, a boolean, a recursive struct value, or a -// list of values. A producer of value is expected to set one of these -// variants. Absence of any variant indicates an error. -// -// The JSON representation for `Value` is JSON value. -message Value { - // The kind of value. - oneof kind { - // Represents a null value. - NullValue null_value = 1; - // Represents a double value. - double number_value = 2; - // Represents a string value. - string string_value = 3; - // Represents a boolean value. - bool bool_value = 4; - // Represents a structured value. - Struct struct_value = 5; - // Represents a repeated `Value`. - ListValue list_value = 6; - } -} - -// `NullValue` is a singleton enumeration to represent the null value for the -// `Value` type union. -// -// The JSON representation for `NullValue` is JSON `null`. -enum NullValue { - // Null value. - NULL_VALUE = 0; -} - -// `ListValue` is a wrapper around a repeated field of values. -// -// The JSON representation for `ListValue` is JSON array. -message ListValue { - // Repeated field of dynamically typed values. - repeated Value values = 1; -} \ No newline at end of file diff --git a/etc/vendor_protos/protoc-gen-openapiv2/options/annotations.proto b/etc/vendor_protos/protoc-gen-openapiv2/options/annotations.proto deleted file mode 100644 index d925360a1..000000000 --- a/etc/vendor_protos/protoc-gen-openapiv2/options/annotations.proto +++ /dev/null @@ -1,44 +0,0 @@ -syntax = "proto3"; - -package grpc.gateway.protoc_gen_openapiv2.options; - -option go_package = "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"; - -import "google/protobuf/descriptor.proto"; -import "protoc-gen-openapiv2/options/openapiv2.proto"; - -extend google.protobuf.FileOptions { - // ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project. - // - // All IDs are the same, as assigned. It is okay that they are the same, as they extend - // different descriptor messages. - Swagger openapiv2_swagger = 1042; -} -extend google.protobuf.MethodOptions { - // ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project. - // - // All IDs are the same, as assigned. It is okay that they are the same, as they extend - // different descriptor messages. - Operation openapiv2_operation = 1042; -} -extend google.protobuf.MessageOptions { - // ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project. - // - // All IDs are the same, as assigned. It is okay that they are the same, as they extend - // different descriptor messages. - Schema openapiv2_schema = 1042; -} -extend google.protobuf.ServiceOptions { - // ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project. - // - // All IDs are the same, as assigned. It is okay that they are the same, as they extend - // different descriptor messages. - Tag openapiv2_tag = 1042; -} -extend google.protobuf.FieldOptions { - // ID assigned by protobuf-global-extension-registry@google.com for gRPC-Gateway project. - // - // All IDs are the same, as assigned. It is okay that they are the same, as they extend - // different descriptor messages. - JSONSchema openapiv2_field = 1042; -} \ No newline at end of file diff --git a/etc/vendor_protos/protoc-gen-openapiv2/options/openapiv2.proto b/etc/vendor_protos/protoc-gen-openapiv2/options/openapiv2.proto deleted file mode 100644 index 85ab6a534..000000000 --- a/etc/vendor_protos/protoc-gen-openapiv2/options/openapiv2.proto +++ /dev/null @@ -1,645 +0,0 @@ -syntax = "proto3"; - -package grpc.gateway.protoc_gen_openapiv2.options; - -option go_package = "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options"; - -import "google/protobuf/struct.proto"; - -// Scheme describes the schemes supported by the OpenAPI Swagger -// and Operation objects. -enum Scheme { - UNKNOWN = 0; - HTTP = 1; - HTTPS = 2; - WS = 3; - WSS = 4; -} - -// `Swagger` is a representation of OpenAPI v2 specification's Swagger object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#swaggerObject -// -// Example: -// -// option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { -// info: { -// title: "Echo API"; -// version: "1.0"; -// description: "; -// contact: { -// name: "gRPC-Gateway project"; -// url: "https://github.com/grpc-ecosystem/grpc-gateway"; -// email: "none@example.com"; -// }; -// license: { -// name: "BSD 3-Clause License"; -// url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/master/LICENSE.txt"; -// }; -// }; -// schemes: HTTPS; -// consumes: "application/json"; -// produces: "application/json"; -// }; -// -message Swagger { - // Specifies the OpenAPI Specification version being used. It can be - // used by the OpenAPI UI and other clients to interpret the API listing. The - // value MUST be "2.0". - string swagger = 1; - // Provides metadata about the API. The metadata can be used by the - // clients if needed. - Info info = 2; - // The host (name or ip) serving the API. This MUST be the host only and does - // not include the scheme nor sub-paths. It MAY include a port. If the host is - // not included, the host serving the documentation is to be used (including - // the port). The host does not support path templating. - string host = 3; - // The base path on which the API is served, which is relative to the host. If - // it is not included, the API is served directly under the host. The value - // MUST start with a leading slash (/). The basePath does not support path - // templating. - // Note that using `base_path` does not change the endpoint paths that are - // generated in the resulting OpenAPI file. If you wish to use `base_path` - // with relatively generated OpenAPI paths, the `base_path` prefix must be - // manually removed from your `google.api.http` paths and your code changed to - // serve the API from the `base_path`. - string base_path = 4; - // The transfer protocol of the API. Values MUST be from the list: "http", - // "https", "ws", "wss". If the schemes is not included, the default scheme to - // be used is the one used to access the OpenAPI definition itself. - repeated Scheme schemes = 5; - // A list of MIME types the APIs can consume. This is global to all APIs but - // can be overridden on specific API calls. Value MUST be as described under - // Mime Types. - repeated string consumes = 6; - // A list of MIME types the APIs can produce. This is global to all APIs but - // can be overridden on specific API calls. Value MUST be as described under - // Mime Types. - repeated string produces = 7; - // field 8 is reserved for 'paths'. - reserved 8; - // field 9 is reserved for 'definitions', which at this time are already - // exposed as and customizable as proto messages. - reserved 9; - // An object to hold responses that can be used across operations. This - // property does not define global responses for all operations. - map responses = 10; - // Security scheme definitions that can be used across the specification. - SecurityDefinitions security_definitions = 11; - // A declaration of which security schemes are applied for the API as a whole. - // The list of values describes alternative security schemes that can be used - // (that is, there is a logical OR between the security requirements). - // Individual operations can override this definition. - repeated SecurityRequirement security = 12; - // field 13 is reserved for 'tags', which are supposed to be exposed as and - // customizable as proto services. TODO(ivucica): add processing of proto - // service objects into OpenAPI v2 Tag objects. - reserved 13; - // Additional external documentation. - ExternalDocumentation external_docs = 14; - map extensions = 15; -} - -// `Operation` is a representation of OpenAPI v2 specification's Operation object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#operationObject -// -// Example: -// -// service EchoService { -// rpc Echo(SimpleMessage) returns (SimpleMessage) { -// option (google.api.http) = { -// get: "/v1/example/echo/{id}" -// }; -// -// option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { -// summary: "Get a message."; -// operation_id: "getMessage"; -// tags: "echo"; -// responses: { -// key: "200" -// value: { -// description: "OK"; -// } -// } -// }; -// } -// } -message Operation { - // A list of tags for API documentation control. Tags can be used for logical - // grouping of operations by resources or any other qualifier. - repeated string tags = 1; - // A short summary of what the operation does. For maximum readability in the - // swagger-ui, this field SHOULD be less than 120 characters. - string summary = 2; - // A verbose explanation of the operation behavior. GFM syntax can be used for - // rich text representation. - string description = 3; - // Additional external documentation for this operation. - ExternalDocumentation external_docs = 4; - // Unique string used to identify the operation. The id MUST be unique among - // all operations described in the API. Tools and libraries MAY use the - // operationId to uniquely identify an operation, therefore, it is recommended - // to follow common programming naming conventions. - string operation_id = 5; - // A list of MIME types the operation can consume. This overrides the consumes - // definition at the OpenAPI Object. An empty value MAY be used to clear the - // global definition. Value MUST be as described under Mime Types. - repeated string consumes = 6; - // A list of MIME types the operation can produce. This overrides the produces - // definition at the OpenAPI Object. An empty value MAY be used to clear the - // global definition. Value MUST be as described under Mime Types. - repeated string produces = 7; - // field 8 is reserved for 'parameters'. - reserved 8; - // The list of possible responses as they are returned from executing this - // operation. - map responses = 9; - // The transfer protocol for the operation. Values MUST be from the list: - // "http", "https", "ws", "wss". The value overrides the OpenAPI Object - // schemes definition. - repeated Scheme schemes = 10; - // Declares this operation to be deprecated. Usage of the declared operation - // should be refrained. Default value is false. - bool deprecated = 11; - // A declaration of which security schemes are applied for this operation. The - // list of values describes alternative security schemes that can be used - // (that is, there is a logical OR between the security requirements). This - // definition overrides any declared top-level security. To remove a top-level - // security declaration, an empty array can be used. - repeated SecurityRequirement security = 12; - map extensions = 13; -} - -// `Header` is a representation of OpenAPI v2 specification's Header object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#headerObject -// -message Header { - // `Description` is a short description of the header. - string description = 1; - // The type of the object. The value MUST be one of "string", "number", "integer", or "boolean". The "array" type is not supported. - string type = 2; - // `Format` The extending format for the previously mentioned type. - string format = 3; - // field 4 is reserved for 'items', but in OpenAPI-specific way. - reserved 4; - // field 5 is reserved `Collection Format` Determines the format of the array if type array is used. - reserved 5; - // `Default` Declares the value of the header that the server will use if none is provided. - // See: https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-6.2. - // Unlike JSON Schema this value MUST conform to the defined type for the header. - string default = 6; - // field 7 is reserved for 'maximum'. - reserved 7; - // field 8 is reserved for 'exclusiveMaximum'. - reserved 8; - // field 9 is reserved for 'minimum'. - reserved 9; - // field 10 is reserved for 'exclusiveMinimum'. - reserved 10; - // field 11 is reserved for 'maxLength'. - reserved 11; - // field 12 is reserved for 'minLength'. - reserved 12; - // 'Pattern' See https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.2.3. - string pattern = 13; - // field 14 is reserved for 'maxItems'. - reserved 14; - // field 15 is reserved for 'minItems'. - reserved 15; - // field 16 is reserved for 'uniqueItems'. - reserved 16; - // field 17 is reserved for 'enum'. - reserved 17; - // field 18 is reserved for 'multipleOf'. - reserved 18; -} - -// `Response` is a representation of OpenAPI v2 specification's Response object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#responseObject -// -message Response { - // `Description` is a short description of the response. - // GFM syntax can be used for rich text representation. - string description = 1; - // `Schema` optionally defines the structure of the response. - // If `Schema` is not provided, it means there is no content to the response. - Schema schema = 2; - // `Headers` A list of headers that are sent with the response. - // `Header` name is expected to be a string in the canonical format of the MIME header key - // See: https://golang.org/pkg/net/textproto/#CanonicalMIMEHeaderKey - map headers = 3; - // `Examples` gives per-mimetype response examples. - // See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#example-object - map examples = 4; - map extensions = 5; -} - -// `Info` is a representation of OpenAPI v2 specification's Info object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#infoObject -// -// Example: -// -// option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { -// info: { -// title: "Echo API"; -// version: "1.0"; -// description: "; -// contact: { -// name: "gRPC-Gateway project"; -// url: "https://github.com/grpc-ecosystem/grpc-gateway"; -// email: "none@example.com"; -// }; -// license: { -// name: "BSD 3-Clause License"; -// url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/master/LICENSE.txt"; -// }; -// }; -// ... -// }; -// -message Info { - // The title of the application. - string title = 1; - // A short description of the application. GFM syntax can be used for rich - // text representation. - string description = 2; - // The Terms of Service for the API. - string terms_of_service = 3; - // The contact information for the exposed API. - Contact contact = 4; - // The license information for the exposed API. - License license = 5; - // Provides the version of the application API (not to be confused - // with the specification version). - string version = 6; - map extensions = 7; -} - -// `Contact` is a representation of OpenAPI v2 specification's Contact object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#contactObject -// -// Example: -// -// option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { -// info: { -// ... -// contact: { -// name: "gRPC-Gateway project"; -// url: "https://github.com/grpc-ecosystem/grpc-gateway"; -// email: "none@example.com"; -// }; -// ... -// }; -// ... -// }; -// -message Contact { - // The identifying name of the contact person/organization. - string name = 1; - // The URL pointing to the contact information. MUST be in the format of a - // URL. - string url = 2; - // The email address of the contact person/organization. MUST be in the format - // of an email address. - string email = 3; -} - -// `License` is a representation of OpenAPI v2 specification's License object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#licenseObject -// -// Example: -// -// option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { -// info: { -// ... -// license: { -// name: "BSD 3-Clause License"; -// url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/master/LICENSE.txt"; -// }; -// ... -// }; -// ... -// }; -// -message License { - // The license name used for the API. - string name = 1; - // A URL to the license used for the API. MUST be in the format of a URL. - string url = 2; -} - -// `ExternalDocumentation` is a representation of OpenAPI v2 specification's -// ExternalDocumentation object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#externalDocumentationObject -// -// Example: -// -// option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { -// ... -// external_docs: { -// description: "More about gRPC-Gateway"; -// url: "https://github.com/grpc-ecosystem/grpc-gateway"; -// } -// ... -// }; -// -message ExternalDocumentation { - // A short description of the target documentation. GFM syntax can be used for - // rich text representation. - string description = 1; - // The URL for the target documentation. Value MUST be in the format - // of a URL. - string url = 2; -} - -// `Schema` is a representation of OpenAPI v2 specification's Schema object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#schemaObject -// -message Schema { - JSONSchema json_schema = 1; - // Adds support for polymorphism. The discriminator is the schema property - // name that is used to differentiate between other schema that inherit this - // schema. The property name used MUST be defined at this schema and it MUST - // be in the required property list. When used, the value MUST be the name of - // this schema or any schema that inherits it. - string discriminator = 2; - // Relevant only for Schema "properties" definitions. Declares the property as - // "read only". This means that it MAY be sent as part of a response but MUST - // NOT be sent as part of the request. Properties marked as readOnly being - // true SHOULD NOT be in the required list of the defined schema. Default - // value is false. - bool read_only = 3; - // field 4 is reserved for 'xml'. - reserved 4; - // Additional external documentation for this schema. - ExternalDocumentation external_docs = 5; - // A free-form property to include an example of an instance for this schema in JSON. - // This is copied verbatim to the output. - string example = 6; -} - -// `JSONSchema` represents properties from JSON Schema taken, and as used, in -// the OpenAPI v2 spec. -// -// This includes changes made by OpenAPI v2. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#schemaObject -// -// See also: https://cswr.github.io/JsonSchema/spec/basic_types/, -// https://github.com/json-schema-org/json-schema-spec/blob/master/schema.json -// -// Example: -// -// message SimpleMessage { -// option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { -// json_schema: { -// title: "SimpleMessage" -// description: "A simple message." -// required: ["id"] -// } -// }; -// -// // Id represents the message identifier. -// string id = 1; [ -// (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { -// {description: "The unique identifier of the simple message." -// }]; -// } -// -message JSONSchema { - // field 1 is reserved for '$id', omitted from OpenAPI v2. - reserved 1; - // field 2 is reserved for '$schema', omitted from OpenAPI v2. - reserved 2; - // Ref is used to define an external reference to include in the message. - // This could be a fully qualified proto message reference, and that type must - // be imported into the protofile. If no message is identified, the Ref will - // be used verbatim in the output. - // For example: - // `ref: ".google.protobuf.Timestamp"`. - string ref = 3; - // field 4 is reserved for '$comment', omitted from OpenAPI v2. - reserved 4; - // The title of the schema. - string title = 5; - // A short description of the schema. - string description = 6; - string default = 7; - bool read_only = 8; - // A free-form property to include a JSON example of this field. This is copied - // verbatim to the output swagger.json. Quotes must be escaped. - // This property is the same for 2.0 and 3.0.0 https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/3.0.0.md#schemaObject https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#schemaObject - string example = 9; - double multiple_of = 10; - // Maximum represents an inclusive upper limit for a numeric instance. The - // value of MUST be a number, - double maximum = 11; - bool exclusive_maximum = 12; - // minimum represents an inclusive lower limit for a numeric instance. The - // value of MUST be a number, - double minimum = 13; - bool exclusive_minimum = 14; - uint64 max_length = 15; - uint64 min_length = 16; - string pattern = 17; - // field 18 is reserved for 'additionalItems', omitted from OpenAPI v2. - reserved 18; - // field 19 is reserved for 'items', but in OpenAPI-specific way. - // TODO(ivucica): add 'items'? - reserved 19; - uint64 max_items = 20; - uint64 min_items = 21; - bool unique_items = 22; - // field 23 is reserved for 'contains', omitted from OpenAPI v2. - reserved 23; - uint64 max_properties = 24; - uint64 min_properties = 25; - repeated string required = 26; - // field 27 is reserved for 'additionalProperties', but in OpenAPI-specific - // way. TODO(ivucica): add 'additionalProperties'? - reserved 27; - // field 28 is reserved for 'definitions', omitted from OpenAPI v2. - reserved 28; - // field 29 is reserved for 'properties', but in OpenAPI-specific way. - // TODO(ivucica): add 'additionalProperties'? - reserved 29; - // following fields are reserved, as the properties have been omitted from - // OpenAPI v2: - // patternProperties, dependencies, propertyNames, const - reserved 30 to 33; - // Items in 'array' must be unique. - repeated string array = 34; - - enum JSONSchemaSimpleTypes { - UNKNOWN = 0; - ARRAY = 1; - BOOLEAN = 2; - INTEGER = 3; - NULL = 4; - NUMBER = 5; - OBJECT = 6; - STRING = 7; - } - - repeated JSONSchemaSimpleTypes type = 35; - // `Format` - string format = 36; - // following fields are reserved, as the properties have been omitted from - // OpenAPI v2: contentMediaType, contentEncoding, if, then, else - reserved 37 to 41; - // field 42 is reserved for 'allOf', but in OpenAPI-specific way. - // TODO(ivucica): add 'allOf'? - reserved 42; - // following fields are reserved, as the properties have been omitted from - // OpenAPI v2: - // anyOf, oneOf, not - reserved 43 to 45; - // Items in `enum` must be unique https://tools.ietf.org/html/draft-fge-json-schema-validation-00#section-5.5.1 - repeated string enum = 46; -} - -// `Tag` is a representation of OpenAPI v2 specification's Tag object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#tagObject -// -message Tag { - // field 1 is reserved for 'name'. In our generator, this is (to be) extracted - // from the name of proto service, and thus not exposed to the user, as - // changing tag object's name would break the link to the references to the - // tag in individual operation specifications. - // - // TODO(ivucica): Add 'name' property. Use it to allow override of the name of - // global Tag object, then use that name to reference the tag throughout the - // OpenAPI file. - reserved 1; - // A short description for the tag. GFM syntax can be used for rich text - // representation. - string description = 2; - // Additional external documentation for this tag. - ExternalDocumentation external_docs = 3; -} - -// `SecurityDefinitions` is a representation of OpenAPI v2 specification's -// Security Definitions object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#securityDefinitionsObject -// -// A declaration of the security schemes available to be used in the -// specification. This does not enforce the security schemes on the operations -// and only serves to provide the relevant details for each scheme. -message SecurityDefinitions { - // A single security scheme definition, mapping a "name" to the scheme it - // defines. - map security = 1; -} - -// `SecurityScheme` is a representation of OpenAPI v2 specification's -// Security Scheme object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#securitySchemeObject -// -// Allows the definition of a security scheme that can be used by the -// operations. Supported schemes are basic authentication, an API key (either as -// a header or as a query parameter) and OAuth2's common flows (implicit, -// password, application and access code). -message SecurityScheme { - // The type of the security scheme. Valid values are "basic", - // "apiKey" or "oauth2". - enum Type { - TYPE_INVALID = 0; - TYPE_BASIC = 1; - TYPE_API_KEY = 2; - TYPE_OAUTH2 = 3; - } - - // The location of the API key. Valid values are "query" or "header". - enum In { - IN_INVALID = 0; - IN_QUERY = 1; - IN_HEADER = 2; - } - - // The flow used by the OAuth2 security scheme. Valid values are - // "implicit", "password", "application" or "accessCode". - enum Flow { - FLOW_INVALID = 0; - FLOW_IMPLICIT = 1; - FLOW_PASSWORD = 2; - FLOW_APPLICATION = 3; - FLOW_ACCESS_CODE = 4; - } - - // The type of the security scheme. Valid values are "basic", - // "apiKey" or "oauth2". - Type type = 1; - // A short description for security scheme. - string description = 2; - // The name of the header or query parameter to be used. - // Valid for apiKey. - string name = 3; - // The location of the API key. Valid values are "query" or - // "header". - // Valid for apiKey. - In in = 4; - // The flow used by the OAuth2 security scheme. Valid values are - // "implicit", "password", "application" or "accessCode". - // Valid for oauth2. - Flow flow = 5; - // The authorization URL to be used for this flow. This SHOULD be in - // the form of a URL. - // Valid for oauth2/implicit and oauth2/accessCode. - string authorization_url = 6; - // The token URL to be used for this flow. This SHOULD be in the - // form of a URL. - // Valid for oauth2/password, oauth2/application and oauth2/accessCode. - string token_url = 7; - // The available scopes for the OAuth2 security scheme. - // Valid for oauth2. - Scopes scopes = 8; - map extensions = 9; -} - -// `SecurityRequirement` is a representation of OpenAPI v2 specification's -// Security Requirement object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#securityRequirementObject -// -// Lists the required security schemes to execute this operation. The object can -// have multiple security schemes declared in it which are all required (that -// is, there is a logical AND between the schemes). -// -// The name used for each property MUST correspond to a security scheme -// declared in the Security Definitions. -message SecurityRequirement { - // If the security scheme is of type "oauth2", then the value is a list of - // scope names required for the execution. For other security scheme types, - // the array MUST be empty. - message SecurityRequirementValue { - repeated string scope = 1; - } - // Each name must correspond to a security scheme which is declared in - // the Security Definitions. If the security scheme is of type "oauth2", - // then the value is a list of scope names required for the execution. - // For other security scheme types, the array MUST be empty. - map security_requirement = 1; -} - -// `Scopes` is a representation of OpenAPI v2 specification's Scopes object. -// -// See: https://github.com/OAI/OpenAPI-Specification/blob/3.0.0/versions/2.0.md#scopesObject -// -// Lists the available scopes for an OAuth2 security scheme. -message Scopes { - // Maps between a name of a scope to a short description of it (as the value - // of the property). - map scope = 1; -} \ No newline at end of file diff --git a/lerna.json b/lerna.json index bd39fcbc5..7875e3022 100644 --- a/lerna.json +++ b/lerna.json @@ -1,4 +1,4 @@ { - "packages": ["mods/*"], - "version": "0.3.22" + "$schema": "./node_modules/lerna/schemas/lerna-schema.json", + "version": "0.9.0" } diff --git a/mods/agents/.dockerignore b/mods/agents/.dockerignore deleted file mode 100644 index b512c09d4..000000000 --- a/mods/agents/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/mods/agents/.npmignore b/mods/agents/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/agents/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/agents/Dockerfile b/mods/agents/Dockerfile deleted file mode 100644 index c70856ea3..000000000 --- a/mods/agents/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs \ - && npm install -g fonoster-*.tgz \ - && apk del npm git - -USER fonoster - -CMD ["run_agents"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_agents" ] \ No newline at end of file diff --git a/mods/agents/package-lock.json b/mods/agents/package-lock.json deleted file mode 100644 index 51f3f27dd..000000000 --- a/mods/agents/package-lock.json +++ /dev/null @@ -1,686 +0,0 @@ -{ - "name": "@fonoster/agents", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/agents", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_agents": "dist/service/healthcheck.js", - "run_agents": "dist/service/runner.js" - }, - "devDependencies": {} - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - }, - "devDependencies": { - "minipass": "3.3.4" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.3.18", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "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/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/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/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/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/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/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/google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.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/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/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/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/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" - } - } - }, - "dependencies": { - "@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - } - }, - "@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "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" - } - }, - "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" - } - }, - "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==" - }, - "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==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "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==" - }, - "google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "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" - } - }, - "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==" - } - } -} diff --git a/mods/agents/package.json b/mods/agents/package.json deleted file mode 100644 index b24df49e4..000000000 --- a/mods/agents/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "@fonoster/agents", - "version": "0.3.22", - "description": "VoIP Agents", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/client/agents", - "types": "dist/client/agents", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "postbuild": "cp -a ./src/service/protos/ ./dist/service/protos", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/service/runner" - }, - "bin": { - "run_agents": "dist/service/runner.js", - "healthcheck_agents": "dist/service/healthcheck.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/agents/src/client/agents.ts b/mods/agents/src/client/agents.ts deleted file mode 100644 index e7d006472..000000000 --- a/mods/agents/src/client/agents.ts +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { APIClient, ClientOptions } from "@fonoster/common"; -import { AgentsClient } from "../service/protos/agents_grpc_pb"; -import AgentsPB from "../service/protos/agents_pb"; -import CommonPB from "../service/protos/common_pb"; -import { promisifyAll } from "grpc-promise"; -import { - Agent, - CreateAgentRequest, - CreateAgentResponse, - DeleteAgentResponse, - GetAgentResponse, - IAgentsClient, - ListAgentsRequest, - ListAgentsResponse, - UpdateAgentRequest, - UpdateAgentResponse -} from "./types"; -import { Privacy } from "@fonoster/core"; - -/** - * @classdesc Use Fonoster Agents, a capability of Fonoster SIP Proxy subsystem, - * to create, update, get and delete Agents. Agents requires of a - * running Fonoster deployment. - * - * @extends APIClient - * @example - * - * const Fonoster = require("@fonoster/sdk") - * const agents = new Fonoster.Agents() - * - * const request = { - * name: "John Doe", - * username: "john", - * secret: "1234", - * domains: ["sip.local"] - * } - * - * agents.createAgent(request) - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)) // an error occurred - */ -export default class Agents extends APIClient implements IAgentsClient { - /** - * Constructs a new Agents object. - * - * @param {ClientOptions} options - Options to indicate the objects endpoint - * @see module:core:APIClient - */ - constructor(options?: ClientOptions) { - super(AgentsClient, options); - super.init(); - promisifyAll(super.getService(), { metadata: super.getMeta() }); - } - - /** - * Creates a new Agent on the SIP Proxy subsystem. - * - * @param {CreateAgentRequest} request - Request for the provision of a new Agent - * @param {string} request.name - Friendly name for the SIP device - * @param {string} request.username -Agent's credential username - * @param {string} request.secret - Agent's credential secret - * @param {Privacy} request.privacy - If set to Privacy.PRIVATE Fonoster removes - * identifiable information for the requests. Defaults to Privacy.NONE - * @param {string[]} request.domains - List of domains this Agent has access to - * @return {Promise} - * @example - * - * const request = { - * name: "John Doe", - * username: "john", - * secret: "1234", - * domains: ["sip.local"] - * privacy: Privacy.PRIVATE - * } - * - * agents.createAgent(request) - * .then(result => { - * console.log(result) // returns the CreateAgentResponse interface - * }).catch(e => console.error(e)) // an error occurred - */ - async createAgent(request: CreateAgentRequest): Promise { - const outRequest = new AgentsPB.CreateAgentRequest(); - outRequest.setName(request.name); - outRequest.setUsername(request.username); - outRequest.setSecret(request.secret); - outRequest.setDomainsList(request.domains); - outRequest.setPrivacy(request.privacy); - - const res = await super.getService().createAgent().sendMessage(outRequest); - - return { - ref: res.getRef(), - name: res.getName(), - username: res.getUsername(), - secret: res.getSecret(), - domains: res.getDomainsList(), - privacy: res.getPrivacy(), - createTime: res.getCreateTime(), - updateTime: res.getUpdateTime() - }; - } - - /** - * Retrives an Agent by reference. - * - * @param {string} ref - Reference to Agent - * @return {Promise} The agent - * @throws if ref is null or Agent does not exist - * @example - * - * const ref = "aynB1z0tzd"; - * - * agents.getAgent(ref) - * .then(result => { - * console.log(result) // returns the GetAgentResponse interface - * }).catch(e => console.error(e)) // an error occurred - */ - async getAgent(ref: string): Promise { - const request = new AgentsPB.GetAgentRequest(); - request.setRef(ref); - const res = await super.getService().getAgent().sendMessage(request); - - return { - ref: res.getRef(), - name: res.getName(), - username: res.getUsername(), - secret: res.getSecret(), - domains: res.getDomainsList(), - privacy: res.getPrivacy(), - createTime: res.getCreateTime(), - updateTime: res.getUpdateTime() - }; - } - - /** - * Update an Agent at the SIP Proxy subsystem. - * - * @param {UpdateAgentRequest} request - Request update of an Agent - * @param {string} request.ref - Reference to the Agent - * @param {string} request.name - Friendly name for the SIP device - * @param {string} request.secret - Agent's credential secret - * @return {Promise} - * @example - * - * const request = { - * name: "John Dee", - * secret: "12345" - * } - * - * agents.updateAgent(request) - * .then(result => { - * console.log(result) // returns the UpdateAgentResponse interface - * }).catch(e => console.error(e)) // an error occurred - */ - async updateAgent(request: UpdateAgentRequest): Promise { - const req = new AgentsPB.UpdateAgentRequest(); - req.setRef(request.ref); - - if (request.name) req.setName(request.name); - if (request.secret) req.setSecret(request.secret); - if (request.privacy) req.setPrivacy(request.privacy); - - const res = await super.getService().updateAgent().sendMessage(req); - - return { - ref: res.getRef() - }; - } - - /** - * List registered Agents in Fonoster SIP Proxy subsystem. - * - * @param {ListAgentsRequest} request - Optional parameter with size and - * token for the request - * @param {number} request.pageSize - Elements per page - * (defaults to 20) - * @param {string} request.pageToken - The next_page_token value returned from - * a previous List request, if any - * @return {Promise} Paginated List of Agents - * @example - * - * const request = { - * pageSize: 20, - * pageToken: 2 - * } - * - * agents.listAgents(request) - * .then(() => { - * console.log(result) // returns a ListAgentsResponse interface - * }).catch(e => console.error(e)) // an error occurred - */ - async listAgents(request: ListAgentsRequest): Promise { - const r = new AgentsPB.ListAgentsRequest(); - r.setPageSize(request.pageSize); - r.setPageToken(request.pageToken); - r.setView(request.view); - const paginatedList = await super.getService().listAgents().sendMessage(r); - - return { - nextPageToken: paginatedList.getNextPageToken(), - agents: paginatedList.getAgentsList().map((a: AgentsPB.Agent) => { - return { - ref: a.getRef(), - name: a.getName(), - username: a.getUsername(), - secret: a.getSecret(), - domains: a.getDomainsList(), - privacy: a.getPrivacy(), - createTime: a.getCreateTime(), - updateTime: a.getUpdateTime() - }; - }) - }; - } - - /** - * Deletes an Agent from the SIP Proxy subsystem. - * - * @param {string} ref - Agent's reference - * @example - * - * const ref = "aynB1z0tzd" - * - * agents.deleteAgent(ref) - * .then(() => { - * console.log("done") // returns a reference of the Agent - * }).catch(e => console.error(e)) // an error occurred - */ - async deleteAgent(ref: string): Promise { - const req = new AgentsPB.DeleteAgentRequest(); - req.setRef(ref); - await super.getService().deleteAgent().sendMessage(req); - return { ref }; - } -} - -export { Agent, Privacy, AgentsPB, CommonPB, IAgentsClient }; - -// WARNING: Workaround for support to commonjs clients -module.exports = Agents; -module.exports.Privacy = Privacy; -module.exports.AgentsPB = AgentsPB; -module.exports.CommonPB = CommonPB; diff --git a/mods/agents/src/client/types.ts b/mods/agents/src/client/types.ts deleted file mode 100644 index a244233fa..000000000 --- a/mods/agents/src/client/types.ts +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Privacy } from "@fonoster/core"; - -export interface IAgentsClient { - createAgent(request: CreateAgentRequest): Promise; - getAgent(ref: string): Promise; - updateAgent(request: UpdateAgentRequest): Promise; - listAgents(request: ListAgentsRequest): Promise; - deleteAgent(ref: string): Promise; -} - -export interface Agent { - ref: string; - name: string; - username: string; - secret: string; - domains: string[]; - privacy: Privacy; - createTime: string; - updateTime: string; -} - -export interface CreateAgentRequest { - name: string; - username: string; - secret: string; - domains: string[]; - privacy?: Privacy; -} - -export interface CreateAgentResponse { - ref: string; - name: string; - username: string; - secret: string; - domains: string[]; - privacy: Privacy; - createTime: string; - updateTime: string; -} - -export interface GetAgentResponse { - ref: string; - name: string; - username: string; - secret: string; - domains: string[]; - privacy: Privacy; - createTime: string; - updateTime: string; -} - -export interface UpdateAgentRequest { - ref: string; - name?: string; - secret?: string; - privacy?: Privacy; -} - -export interface UpdateAgentResponse { - ref: string; -} - -export interface ListAgentsRequest { - pageSize?: number; - pageToken?: string; - view?: number; -} - -export interface ListAgentsResponse { - nextPageToken: string; - agents: Agent[]; -} - -export interface DeleteAgentResponse { - ref: string; -} diff --git a/mods/agents/src/protos/agents.proto b/mods/agents/src/protos/agents.proto deleted file mode 100644 index b30d83242..000000000 --- a/mods/agents/src/protos/agents.proto +++ /dev/null @@ -1,118 +0,0 @@ -/** - * MIT License - * Copyright (c) 2021 Fonoster Inc - * - * The Agents proto contains the artificats for the administration - * of Agents. - */ -syntax = "proto3"; - -package fonoster.agents.v1beta1; - -option go_package = "github.com/fonoster/fonoster/mods/agents/fonoster/services/protos/agents"; - -import "protoc-gen-openapiv2/options/annotations.proto"; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "common.proto"; - -service Agents { - // Lists Agents from the SIP Proxy subsystem - rpc ListAgents (ListAgentsRequest) returns (ListAgentsResponse) { - option (google.api.http) = { get: "/v1beta1/agents" }; - }; - // Creates a new Agent resource - rpc CreateAgent (CreateAgentRequest) returns (Agent) { - option (google.api.http) = { - post: "/v1beta1/agents" - body: "*" - }; - }; - // Gets Agent by reference - rpc GetAgent (GetAgentRequest) returns (Agent) { - option (google.api.http) = { get: "/v1beta1/agents/{ref}" }; - }; - // Change or update fields in a resource - rpc UpdateAgent (UpdateAgentRequest) returns (Agent) { - option (google.api.http) = { - put: "/v1beta1/agents/{ref}" - body: "*" - }; - }; - // Hard delete of an Agent resource - rpc DeleteAgent (DeleteAgentRequest) returns (fonoster.common.v1beta1.Empty) { - option (google.api.http) = { - delete: "/v1beta1/agents/{ref}" - }; - }; -} - -message ListAgentsRequest { - // The maximum number of items in the list - int32 page_size = 1; - - // The next_page_token value returned from the previous request, if any - string page_token = 2; - - // Level of detail of the individual entities (reserved) - fonoster.common.v1beta1.View view = 3; -} - -message ListAgentsResponse { - // List of Agents - repeated Agent agents = 1; - - // Token to retrieve the next page of results, or empty if there are no more results in the list - string next_page_token = 2; -} - -message CreateAgentRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"name\": \"John Doe\", \"username\": \"1001\", \"secret\": \"1234\", \"domains\": \"['sip.fonoster.com']\", \"privacy\": \"none\"}" - }; - string name = 1 [(google.api.field_behavior) = REQUIRED]; - string username = 2 [(google.api.field_behavior) = REQUIRED]; - string secret = 3 [(google.api.field_behavior) = REQUIRED]; - repeated string domains = 4 [(google.api.field_behavior) = REQUIRED]; - // TODO: Change to enum in 0.4 - string privacy = 5; -} - -message UpdateAgentRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"name\": \"John Doe\", \"secret\": \"1234\"}" - }; - // Agent's reference - string ref = 1; - string name = 2; - string secret = 3; - repeated string domains = 4; - // TODO: Change to enum in 0.4 - string privacy = 5; -} - -message GetAgentRequest { - // Agent's reference - string ref = 1; -} - -message DeleteAgentRequest { - // Agent's reference - string ref = 1; -} - -message Agent { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"ref\": \"aynB1z0tzd\", \"name\": \"John Doe\", \"username\": \"1001\", \"secret\": \"1234\", \"domains\": \"['sip.fonoster.com']\", \"privacy\": \"none\", \"createTime\": \"2021-10-05T13:23:07.221Z\", \"updateTime\": \"2021-10-05T13:23:07.221Z\"}" - }; - // Agent's reference - string ref = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - string name = 2 [(google.api.field_behavior) = REQUIRED]; - string username = 3 [(google.api.field_behavior) = REQUIRED]; - string secret = 4 [(google.api.field_behavior) = REQUIRED]; - repeated string domains = 5 [(google.api.field_behavior) = REQUIRED]; - // TODO: Change to enum in 0.4 - string privacy = 6; - string create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - string update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/mods/agents/src/service/agents.ts b/mods/agents/src/service/agents.ts deleted file mode 100644 index beb15ca0a..000000000 --- a/mods/agents/src/service/agents.ts +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import grpc from "@grpc/grpc-js"; -import { - Agent, - ListAgentsRequest, - ListAgentsResponse, - GetAgentRequest, - CreateAgentRequest, - UpdateAgentRequest, - DeleteAgentRequest -} from "./protos/agents_pb"; -import { Empty } from "./protos/common_pb"; -import { - IAgentsServer, - IAgentsService, - AgentsService -} from "./protos/agents_grpc_pb"; -import { Kind, Privacy, ResourceBuilder } from "@fonoster/core"; -import { - updateResource, - createResource, - ResourceServer, - getAccessKeyId -} from "@fonoster/core"; -import decoder from "./decoder"; - -class AgentsServer implements IAgentsServer { - [name: string]: grpc.UntypedHandleCall; - async listAgents( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - const result = await ResourceServer.listResources(Kind.AGENT, call); - const response = new ListAgentsResponse(); - if (result && result.resources) { - const domains = result.resources.map((resource) => decoder(resource)); - response.setNextPageToken(result.nextPageToken + ""); - response.setAgentsList(domains); - } - callback(null, response); - } - - async createAgent( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const privacy = - call.request.getPrivacy() === Privacy.PRIVATE - ? Privacy.PRIVATE - : Privacy.NONE; - - const resource = new ResourceBuilder(Kind.AGENT, call.request.getName()) - .withCredentials(call.request.getUsername(), call.request.getSecret()) - .withDomains(call.request.getDomainsList()) - .withPrivacy(privacy) - .withMetadata({ accessKeyId: getAccessKeyId(call) }) - .build(); - - const response = await createResource(resource); - callback(null, decoder(response)); - } catch (e) { - callback(e, null); - } - } - - async updateAgent( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const agent = (await ResourceServer.getResource(Kind.AGENT, call)) as any; - - const privacy = - call.request.getPrivacy() === Privacy.PRIVATE - ? Privacy.PRIVATE - : Privacy.NONE; - - const resource = new ResourceBuilder( - Kind.AGENT, - call.request.getName(), - call.request.getRef() - ) - .withCredentials( - agent?.spec?.credentials?.username, - call.request.getSecret() - ) - .withPrivacy(privacy) - .build(); - - const result = await updateResource({ - resource, - accessKeyId: getAccessKeyId(call) - }); - - callback(null, decoder(result)); - } catch (e) { - callback(e, null); - } - } - - async getAgent( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const result = await ResourceServer.getResource(Kind.AGENT, call); - callback(null, decoder(result)); - } catch (e) { - callback(e, null); - } - } - - async deleteAgent( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - await ResourceServer.deleteResource(Kind.AGENT, call); - callback(null, new Empty()); - } catch (e) { - callback(e, null); - } - } -} - -export { AgentsServer as default, IAgentsService, AgentsService }; diff --git a/mods/agents/src/service/decoder.ts b/mods/agents/src/service/decoder.ts deleted file mode 100644 index b09e35a51..000000000 --- a/mods/agents/src/service/decoder.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Agent } from "./protos/agents_pb"; - -export default function (jsonObj: any) { - const agent = new Agent(); - const spec = jsonObj?.spec; - agent.setRef(jsonObj.metadata.ref); - agent.setName(jsonObj.metadata.name); - agent.setUsername(spec?.credentials?.username); - agent.setSecret(spec?.credentials?.secret); - agent.setDomainsList(spec?.domains); - agent.setCreateTime(jsonObj.metadata.createdOn); - agent.setUpdateTime(jsonObj.metadata.modifiedOn); - agent.setPrivacy(spec?.privacy); - return agent; -} diff --git a/mods/agents/src/service/healthcheck.ts b/mods/agents/src/service/healthcheck.ts deleted file mode 100644 index a8988fbb7..000000000 --- a/mods/agents/src/service/healthcheck.ts +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonos - * - * This file is part of Project Fonos - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -healthcheck(); diff --git a/mods/agents/src/service/protos/.d.ts b/mods/agents/src/service/protos/.d.ts deleted file mode 100644 index 6a4504b89..000000000 --- a/mods/agents/src/service/protos/.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// package: -// file: - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; diff --git a/mods/agents/src/service/protos/agents_grpc_pb.d.ts b/mods/agents/src/service/protos/agents_grpc_pb.d.ts deleted file mode 100644 index 80d60f694..000000000 --- a/mods/agents/src/service/protos/agents_grpc_pb.d.ts +++ /dev/null @@ -1,113 +0,0 @@ -// package: fonoster.agents.v1beta1 -// file: agents.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import {handleClientStreamingCall} from "@grpc/grpc-js/build/src/server-call"; -import * as agents_pb from "./agents_pb"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as common_pb from "./common_pb"; - -interface IAgentsService extends grpc.ServiceDefinition { - listAgents: IAgentsService_IListAgents; - createAgent: IAgentsService_ICreateAgent; - getAgent: IAgentsService_IGetAgent; - updateAgent: IAgentsService_IUpdateAgent; - deleteAgent: IAgentsService_IDeleteAgent; -} - -interface IAgentsService_IListAgents extends grpc.MethodDefinition { - path: "/fonoster.agents.v1beta1.Agents/ListAgents"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IAgentsService_ICreateAgent extends grpc.MethodDefinition { - path: "/fonoster.agents.v1beta1.Agents/CreateAgent"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IAgentsService_IGetAgent extends grpc.MethodDefinition { - path: "/fonoster.agents.v1beta1.Agents/GetAgent"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IAgentsService_IUpdateAgent extends grpc.MethodDefinition { - path: "/fonoster.agents.v1beta1.Agents/UpdateAgent"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IAgentsService_IDeleteAgent extends grpc.MethodDefinition { - path: "/fonoster.agents.v1beta1.Agents/DeleteAgent"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const AgentsService: IAgentsService; - -export interface IAgentsServer extends grpc.UntypedServiceImplementation { - listAgents: grpc.handleUnaryCall; - createAgent: grpc.handleUnaryCall; - getAgent: grpc.handleUnaryCall; - updateAgent: grpc.handleUnaryCall; - deleteAgent: grpc.handleUnaryCall; -} - -export interface IAgentsClient { - listAgents(request: agents_pb.ListAgentsRequest, callback: (error: grpc.ServiceError | null, response: agents_pb.ListAgentsResponse) => void): grpc.ClientUnaryCall; - listAgents(request: agents_pb.ListAgentsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: agents_pb.ListAgentsResponse) => void): grpc.ClientUnaryCall; - listAgents(request: agents_pb.ListAgentsRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: agents_pb.ListAgentsResponse) => void): grpc.ClientUnaryCall; - createAgent(request: agents_pb.CreateAgentRequest, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - createAgent(request: agents_pb.CreateAgentRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - createAgent(request: agents_pb.CreateAgentRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - getAgent(request: agents_pb.GetAgentRequest, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - getAgent(request: agents_pb.GetAgentRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - getAgent(request: agents_pb.GetAgentRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - updateAgent(request: agents_pb.UpdateAgentRequest, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - updateAgent(request: agents_pb.UpdateAgentRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - updateAgent(request: agents_pb.UpdateAgentRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - deleteAgent(request: agents_pb.DeleteAgentRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteAgent(request: agents_pb.DeleteAgentRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteAgent(request: agents_pb.DeleteAgentRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; -} - -export class AgentsClient extends grpc.Client implements IAgentsClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public listAgents(request: agents_pb.ListAgentsRequest, callback: (error: grpc.ServiceError | null, response: agents_pb.ListAgentsResponse) => void): grpc.ClientUnaryCall; - public listAgents(request: agents_pb.ListAgentsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: agents_pb.ListAgentsResponse) => void): grpc.ClientUnaryCall; - public listAgents(request: agents_pb.ListAgentsRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: agents_pb.ListAgentsResponse) => void): grpc.ClientUnaryCall; - public createAgent(request: agents_pb.CreateAgentRequest, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - public createAgent(request: agents_pb.CreateAgentRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - public createAgent(request: agents_pb.CreateAgentRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - public getAgent(request: agents_pb.GetAgentRequest, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - public getAgent(request: agents_pb.GetAgentRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - public getAgent(request: agents_pb.GetAgentRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - public updateAgent(request: agents_pb.UpdateAgentRequest, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - public updateAgent(request: agents_pb.UpdateAgentRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - public updateAgent(request: agents_pb.UpdateAgentRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: agents_pb.Agent) => void): grpc.ClientUnaryCall; - public deleteAgent(request: agents_pb.DeleteAgentRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteAgent(request: agents_pb.DeleteAgentRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteAgent(request: agents_pb.DeleteAgentRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; -} diff --git a/mods/agents/src/service/protos/agents_grpc_pb.js b/mods/agents/src/service/protos/agents_grpc_pb.js deleted file mode 100644 index 8b06f3093..000000000 --- a/mods/agents/src/service/protos/agents_grpc_pb.js +++ /dev/null @@ -1,170 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// * -// MIT License -// Copyright (c) 2021 Fonoster Inc -// -// The Agents proto contains the artificats for the administration -// of Agents. -'use strict'; -var grpc = require('@grpc/grpc-js'); -var agents_pb = require('./agents_pb.js'); -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -var common_pb = require('./common_pb.js'); - -function serialize_fonoster_agents_v1beta1_Agent(arg) { - if (!(arg instanceof agents_pb.Agent)) { - throw new Error('Expected argument of type fonoster.agents.v1beta1.Agent'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_agents_v1beta1_Agent(buffer_arg) { - return agents_pb.Agent.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_agents_v1beta1_CreateAgentRequest(arg) { - if (!(arg instanceof agents_pb.CreateAgentRequest)) { - throw new Error('Expected argument of type fonoster.agents.v1beta1.CreateAgentRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_agents_v1beta1_CreateAgentRequest(buffer_arg) { - return agents_pb.CreateAgentRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_agents_v1beta1_DeleteAgentRequest(arg) { - if (!(arg instanceof agents_pb.DeleteAgentRequest)) { - throw new Error('Expected argument of type fonoster.agents.v1beta1.DeleteAgentRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_agents_v1beta1_DeleteAgentRequest(buffer_arg) { - return agents_pb.DeleteAgentRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_agents_v1beta1_GetAgentRequest(arg) { - if (!(arg instanceof agents_pb.GetAgentRequest)) { - throw new Error('Expected argument of type fonoster.agents.v1beta1.GetAgentRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_agents_v1beta1_GetAgentRequest(buffer_arg) { - return agents_pb.GetAgentRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_agents_v1beta1_ListAgentsRequest(arg) { - if (!(arg instanceof agents_pb.ListAgentsRequest)) { - throw new Error('Expected argument of type fonoster.agents.v1beta1.ListAgentsRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_agents_v1beta1_ListAgentsRequest(buffer_arg) { - return agents_pb.ListAgentsRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_agents_v1beta1_ListAgentsResponse(arg) { - if (!(arg instanceof agents_pb.ListAgentsResponse)) { - throw new Error('Expected argument of type fonoster.agents.v1beta1.ListAgentsResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_agents_v1beta1_ListAgentsResponse(buffer_arg) { - return agents_pb.ListAgentsResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_agents_v1beta1_UpdateAgentRequest(arg) { - if (!(arg instanceof agents_pb.UpdateAgentRequest)) { - throw new Error('Expected argument of type fonoster.agents.v1beta1.UpdateAgentRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_agents_v1beta1_UpdateAgentRequest(buffer_arg) { - return agents_pb.UpdateAgentRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_common_v1beta1_Empty(arg) { - if (!(arg instanceof common_pb.Empty)) { - throw new Error('Expected argument of type fonoster.common.v1beta1.Empty'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_common_v1beta1_Empty(buffer_arg) { - return common_pb.Empty.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var AgentsService = exports.AgentsService = { - // Lists Agents from the SIP Proxy subsystem -listAgents: { - path: '/fonoster.agents.v1beta1.Agents/ListAgents', - requestStream: false, - responseStream: false, - requestType: agents_pb.ListAgentsRequest, - responseType: agents_pb.ListAgentsResponse, - requestSerialize: serialize_fonoster_agents_v1beta1_ListAgentsRequest, - requestDeserialize: deserialize_fonoster_agents_v1beta1_ListAgentsRequest, - responseSerialize: serialize_fonoster_agents_v1beta1_ListAgentsResponse, - responseDeserialize: deserialize_fonoster_agents_v1beta1_ListAgentsResponse, - }, - // Creates a new Agent resource -createAgent: { - path: '/fonoster.agents.v1beta1.Agents/CreateAgent', - requestStream: false, - responseStream: false, - requestType: agents_pb.CreateAgentRequest, - responseType: agents_pb.Agent, - requestSerialize: serialize_fonoster_agents_v1beta1_CreateAgentRequest, - requestDeserialize: deserialize_fonoster_agents_v1beta1_CreateAgentRequest, - responseSerialize: serialize_fonoster_agents_v1beta1_Agent, - responseDeserialize: deserialize_fonoster_agents_v1beta1_Agent, - }, - // Gets Agent by reference -getAgent: { - path: '/fonoster.agents.v1beta1.Agents/GetAgent', - requestStream: false, - responseStream: false, - requestType: agents_pb.GetAgentRequest, - responseType: agents_pb.Agent, - requestSerialize: serialize_fonoster_agents_v1beta1_GetAgentRequest, - requestDeserialize: deserialize_fonoster_agents_v1beta1_GetAgentRequest, - responseSerialize: serialize_fonoster_agents_v1beta1_Agent, - responseDeserialize: deserialize_fonoster_agents_v1beta1_Agent, - }, - // Change or update fields in a resource -updateAgent: { - path: '/fonoster.agents.v1beta1.Agents/UpdateAgent', - requestStream: false, - responseStream: false, - requestType: agents_pb.UpdateAgentRequest, - responseType: agents_pb.Agent, - requestSerialize: serialize_fonoster_agents_v1beta1_UpdateAgentRequest, - requestDeserialize: deserialize_fonoster_agents_v1beta1_UpdateAgentRequest, - responseSerialize: serialize_fonoster_agents_v1beta1_Agent, - responseDeserialize: deserialize_fonoster_agents_v1beta1_Agent, - }, - // Hard delete of an Agent resource -deleteAgent: { - path: '/fonoster.agents.v1beta1.Agents/DeleteAgent', - requestStream: false, - responseStream: false, - requestType: agents_pb.DeleteAgentRequest, - responseType: common_pb.Empty, - requestSerialize: serialize_fonoster_agents_v1beta1_DeleteAgentRequest, - requestDeserialize: deserialize_fonoster_agents_v1beta1_DeleteAgentRequest, - responseSerialize: serialize_fonoster_common_v1beta1_Empty, - responseDeserialize: deserialize_fonoster_common_v1beta1_Empty, - }, -}; - -exports.AgentsClient = grpc.makeGenericClientConstructor(AgentsService); diff --git a/mods/agents/src/service/protos/agents_pb.d.ts b/mods/agents/src/service/protos/agents_pb.d.ts deleted file mode 100644 index 17f0cb795..000000000 --- a/mods/agents/src/service/protos/agents_pb.d.ts +++ /dev/null @@ -1,212 +0,0 @@ -// package: fonoster.agents.v1beta1 -// file: agents.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as common_pb from "./common_pb"; - -export class ListAgentsRequest extends jspb.Message { - getPageSize(): number; - setPageSize(value: number): ListAgentsRequest; - getPageToken(): string; - setPageToken(value: string): ListAgentsRequest; - getView(): common_pb.View; - setView(value: common_pb.View): ListAgentsRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListAgentsRequest.AsObject; - static toObject(includeInstance: boolean, msg: ListAgentsRequest): ListAgentsRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListAgentsRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListAgentsRequest; - static deserializeBinaryFromReader(message: ListAgentsRequest, reader: jspb.BinaryReader): ListAgentsRequest; -} - -export namespace ListAgentsRequest { - export type AsObject = { - pageSize: number, - pageToken: string, - view: common_pb.View, - } -} - -export class ListAgentsResponse extends jspb.Message { - clearAgentsList(): void; - getAgentsList(): Array; - setAgentsList(value: Array): ListAgentsResponse; - addAgents(value?: Agent, index?: number): Agent; - getNextPageToken(): string; - setNextPageToken(value: string): ListAgentsResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListAgentsResponse.AsObject; - static toObject(includeInstance: boolean, msg: ListAgentsResponse): ListAgentsResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListAgentsResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListAgentsResponse; - static deserializeBinaryFromReader(message: ListAgentsResponse, reader: jspb.BinaryReader): ListAgentsResponse; -} - -export namespace ListAgentsResponse { - export type AsObject = { - agentsList: Array, - nextPageToken: string, - } -} - -export class CreateAgentRequest extends jspb.Message { - getName(): string; - setName(value: string): CreateAgentRequest; - getUsername(): string; - setUsername(value: string): CreateAgentRequest; - getSecret(): string; - setSecret(value: string): CreateAgentRequest; - clearDomainsList(): void; - getDomainsList(): Array; - setDomainsList(value: Array): CreateAgentRequest; - addDomains(value: string, index?: number): string; - getPrivacy(): string; - setPrivacy(value: string): CreateAgentRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateAgentRequest.AsObject; - static toObject(includeInstance: boolean, msg: CreateAgentRequest): CreateAgentRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateAgentRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateAgentRequest; - static deserializeBinaryFromReader(message: CreateAgentRequest, reader: jspb.BinaryReader): CreateAgentRequest; -} - -export namespace CreateAgentRequest { - export type AsObject = { - name: string, - username: string, - secret: string, - domainsList: Array, - privacy: string, - } -} - -export class UpdateAgentRequest extends jspb.Message { - getRef(): string; - setRef(value: string): UpdateAgentRequest; - getName(): string; - setName(value: string): UpdateAgentRequest; - getSecret(): string; - setSecret(value: string): UpdateAgentRequest; - clearDomainsList(): void; - getDomainsList(): Array; - setDomainsList(value: Array): UpdateAgentRequest; - addDomains(value: string, index?: number): string; - getPrivacy(): string; - setPrivacy(value: string): UpdateAgentRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UpdateAgentRequest.AsObject; - static toObject(includeInstance: boolean, msg: UpdateAgentRequest): UpdateAgentRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UpdateAgentRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UpdateAgentRequest; - static deserializeBinaryFromReader(message: UpdateAgentRequest, reader: jspb.BinaryReader): UpdateAgentRequest; -} - -export namespace UpdateAgentRequest { - export type AsObject = { - ref: string, - name: string, - secret: string, - domainsList: Array, - privacy: string, - } -} - -export class GetAgentRequest extends jspb.Message { - getRef(): string; - setRef(value: string): GetAgentRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetAgentRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetAgentRequest): GetAgentRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetAgentRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetAgentRequest; - static deserializeBinaryFromReader(message: GetAgentRequest, reader: jspb.BinaryReader): GetAgentRequest; -} - -export namespace GetAgentRequest { - export type AsObject = { - ref: string, - } -} - -export class DeleteAgentRequest extends jspb.Message { - getRef(): string; - setRef(value: string): DeleteAgentRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DeleteAgentRequest.AsObject; - static toObject(includeInstance: boolean, msg: DeleteAgentRequest): DeleteAgentRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DeleteAgentRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DeleteAgentRequest; - static deserializeBinaryFromReader(message: DeleteAgentRequest, reader: jspb.BinaryReader): DeleteAgentRequest; -} - -export namespace DeleteAgentRequest { - export type AsObject = { - ref: string, - } -} - -export class Agent extends jspb.Message { - getRef(): string; - setRef(value: string): Agent; - getName(): string; - setName(value: string): Agent; - getUsername(): string; - setUsername(value: string): Agent; - getSecret(): string; - setSecret(value: string): Agent; - clearDomainsList(): void; - getDomainsList(): Array; - setDomainsList(value: Array): Agent; - addDomains(value: string, index?: number): string; - getPrivacy(): string; - setPrivacy(value: string): Agent; - getCreateTime(): string; - setCreateTime(value: string): Agent; - getUpdateTime(): string; - setUpdateTime(value: string): Agent; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Agent.AsObject; - static toObject(includeInstance: boolean, msg: Agent): Agent.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Agent, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Agent; - static deserializeBinaryFromReader(message: Agent, reader: jspb.BinaryReader): Agent; -} - -export namespace Agent { - export type AsObject = { - ref: string, - name: string, - username: string, - secret: string, - domainsList: Array, - privacy: string, - createTime: string, - updateTime: string, - } -} diff --git a/mods/agents/src/service/protos/agents_pb.js b/mods/agents/src/service/protos/agents_pb.js deleted file mode 100644 index 11a1b68a4..000000000 --- a/mods/agents/src/service/protos/agents_pb.js +++ /dev/null @@ -1,1738 +0,0 @@ -// source: agents.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -goog.object.extend(proto, google_api_annotations_pb); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -goog.object.extend(proto, google_api_field_behavior_pb); -var common_pb = require('./common_pb.js'); -goog.object.extend(proto, common_pb); -goog.exportSymbol('proto.fonoster.agents.v1beta1.Agent', null, global); -goog.exportSymbol('proto.fonoster.agents.v1beta1.CreateAgentRequest', null, global); -goog.exportSymbol('proto.fonoster.agents.v1beta1.DeleteAgentRequest', null, global); -goog.exportSymbol('proto.fonoster.agents.v1beta1.GetAgentRequest', null, global); -goog.exportSymbol('proto.fonoster.agents.v1beta1.ListAgentsRequest', null, global); -goog.exportSymbol('proto.fonoster.agents.v1beta1.ListAgentsResponse', null, global); -goog.exportSymbol('proto.fonoster.agents.v1beta1.UpdateAgentRequest', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.agents.v1beta1.ListAgentsRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.agents.v1beta1.ListAgentsRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.agents.v1beta1.ListAgentsRequest.displayName = 'proto.fonoster.agents.v1beta1.ListAgentsRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.agents.v1beta1.ListAgentsResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.agents.v1beta1.ListAgentsResponse.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.agents.v1beta1.ListAgentsResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.agents.v1beta1.ListAgentsResponse.displayName = 'proto.fonoster.agents.v1beta1.ListAgentsResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.agents.v1beta1.CreateAgentRequest.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.agents.v1beta1.CreateAgentRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.agents.v1beta1.CreateAgentRequest.displayName = 'proto.fonoster.agents.v1beta1.CreateAgentRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.agents.v1beta1.UpdateAgentRequest.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.agents.v1beta1.UpdateAgentRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.agents.v1beta1.UpdateAgentRequest.displayName = 'proto.fonoster.agents.v1beta1.UpdateAgentRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.agents.v1beta1.GetAgentRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.agents.v1beta1.GetAgentRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.agents.v1beta1.GetAgentRequest.displayName = 'proto.fonoster.agents.v1beta1.GetAgentRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.agents.v1beta1.DeleteAgentRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.agents.v1beta1.DeleteAgentRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.agents.v1beta1.DeleteAgentRequest.displayName = 'proto.fonoster.agents.v1beta1.DeleteAgentRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.agents.v1beta1.Agent = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.agents.v1beta1.Agent.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.agents.v1beta1.Agent, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.agents.v1beta1.Agent.displayName = 'proto.fonoster.agents.v1beta1.Agent'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.agents.v1beta1.ListAgentsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.agents.v1beta1.ListAgentsRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.agents.v1beta1.ListAgentsRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.ListAgentsRequest.toObject = function(includeInstance, msg) { - var f, obj = { - pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), - pageToken: jspb.Message.getFieldWithDefault(msg, 2, ""), - view: jspb.Message.getFieldWithDefault(msg, 3, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.agents.v1beta1.ListAgentsRequest} - */ -proto.fonoster.agents.v1beta1.ListAgentsRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.agents.v1beta1.ListAgentsRequest; - return proto.fonoster.agents.v1beta1.ListAgentsRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.agents.v1beta1.ListAgentsRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.agents.v1beta1.ListAgentsRequest} - */ -proto.fonoster.agents.v1beta1.ListAgentsRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setPageSize(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPageToken(value); - break; - case 3: - var value = /** @type {!proto.fonoster.common.v1beta1.View} */ (reader.readEnum()); - msg.setView(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.agents.v1beta1.ListAgentsRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.agents.v1beta1.ListAgentsRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.agents.v1beta1.ListAgentsRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.ListAgentsRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getPageSize(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getView(); - if (f !== 0.0) { - writer.writeEnum( - 3, - f - ); - } -}; - - -/** - * optional int32 page_size = 1; - * @return {number} - */ -proto.fonoster.agents.v1beta1.ListAgentsRequest.prototype.getPageSize = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.agents.v1beta1.ListAgentsRequest} returns this - */ -proto.fonoster.agents.v1beta1.ListAgentsRequest.prototype.setPageSize = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string page_token = 2; - * @return {string} - */ -proto.fonoster.agents.v1beta1.ListAgentsRequest.prototype.getPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.ListAgentsRequest} returns this - */ -proto.fonoster.agents.v1beta1.ListAgentsRequest.prototype.setPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional fonoster.common.v1beta1.View view = 3; - * @return {!proto.fonoster.common.v1beta1.View} - */ -proto.fonoster.agents.v1beta1.ListAgentsRequest.prototype.getView = function() { - return /** @type {!proto.fonoster.common.v1beta1.View} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {!proto.fonoster.common.v1beta1.View} value - * @return {!proto.fonoster.agents.v1beta1.ListAgentsRequest} returns this - */ -proto.fonoster.agents.v1beta1.ListAgentsRequest.prototype.setView = function(value) { - return jspb.Message.setProto3EnumField(this, 3, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.agents.v1beta1.ListAgentsResponse.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.agents.v1beta1.ListAgentsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.agents.v1beta1.ListAgentsResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.agents.v1beta1.ListAgentsResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.ListAgentsResponse.toObject = function(includeInstance, msg) { - var f, obj = { - agentsList: jspb.Message.toObjectList(msg.getAgentsList(), - proto.fonoster.agents.v1beta1.Agent.toObject, includeInstance), - nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.agents.v1beta1.ListAgentsResponse} - */ -proto.fonoster.agents.v1beta1.ListAgentsResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.agents.v1beta1.ListAgentsResponse; - return proto.fonoster.agents.v1beta1.ListAgentsResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.agents.v1beta1.ListAgentsResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.agents.v1beta1.ListAgentsResponse} - */ -proto.fonoster.agents.v1beta1.ListAgentsResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.fonoster.agents.v1beta1.Agent; - reader.readMessage(value,proto.fonoster.agents.v1beta1.Agent.deserializeBinaryFromReader); - msg.addAgents(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setNextPageToken(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.agents.v1beta1.ListAgentsResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.agents.v1beta1.ListAgentsResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.agents.v1beta1.ListAgentsResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.ListAgentsResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getAgentsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.fonoster.agents.v1beta1.Agent.serializeBinaryToWriter - ); - } - f = message.getNextPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * repeated Agent agents = 1; - * @return {!Array} - */ -proto.fonoster.agents.v1beta1.ListAgentsResponse.prototype.getAgentsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.fonoster.agents.v1beta1.Agent, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.agents.v1beta1.ListAgentsResponse} returns this -*/ -proto.fonoster.agents.v1beta1.ListAgentsResponse.prototype.setAgentsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.fonoster.agents.v1beta1.Agent=} opt_value - * @param {number=} opt_index - * @return {!proto.fonoster.agents.v1beta1.Agent} - */ -proto.fonoster.agents.v1beta1.ListAgentsResponse.prototype.addAgents = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.agents.v1beta1.Agent, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.agents.v1beta1.ListAgentsResponse} returns this - */ -proto.fonoster.agents.v1beta1.ListAgentsResponse.prototype.clearAgentsList = function() { - return this.setAgentsList([]); -}; - - -/** - * optional string next_page_token = 2; - * @return {string} - */ -proto.fonoster.agents.v1beta1.ListAgentsResponse.prototype.getNextPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.ListAgentsResponse} returns this - */ -proto.fonoster.agents.v1beta1.ListAgentsResponse.prototype.setNextPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.repeatedFields_ = [4]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.agents.v1beta1.CreateAgentRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.agents.v1beta1.CreateAgentRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - username: jspb.Message.getFieldWithDefault(msg, 2, ""), - secret: jspb.Message.getFieldWithDefault(msg, 3, ""), - domainsList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f, - privacy: jspb.Message.getFieldWithDefault(msg, 5, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.agents.v1beta1.CreateAgentRequest} - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.agents.v1beta1.CreateAgentRequest; - return proto.fonoster.agents.v1beta1.CreateAgentRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.agents.v1beta1.CreateAgentRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.agents.v1beta1.CreateAgentRequest} - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUsername(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setSecret(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.addDomains(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setPrivacy(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.agents.v1beta1.CreateAgentRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.agents.v1beta1.CreateAgentRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUsername(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getSecret(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDomainsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 4, - f - ); - } - f = message.getPrivacy(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.CreateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string username = 2; - * @return {string} - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.getUsername = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.CreateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.setUsername = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string secret = 3; - * @return {string} - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.getSecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.CreateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.setSecret = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * repeated string domains = 4; - * @return {!Array} - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.getDomainsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.agents.v1beta1.CreateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.setDomainsList = function(value) { - return jspb.Message.setField(this, 4, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.fonoster.agents.v1beta1.CreateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.addDomains = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 4, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.agents.v1beta1.CreateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.clearDomainsList = function() { - return this.setDomainsList([]); -}; - - -/** - * optional string privacy = 5; - * @return {string} - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.getPrivacy = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.CreateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.CreateAgentRequest.prototype.setPrivacy = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.repeatedFields_ = [4]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.agents.v1beta1.UpdateAgentRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.agents.v1beta1.UpdateAgentRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - secret: jspb.Message.getFieldWithDefault(msg, 3, ""), - domainsList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f, - privacy: jspb.Message.getFieldWithDefault(msg, 5, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.agents.v1beta1.UpdateAgentRequest} - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.agents.v1beta1.UpdateAgentRequest; - return proto.fonoster.agents.v1beta1.UpdateAgentRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.agents.v1beta1.UpdateAgentRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.agents.v1beta1.UpdateAgentRequest} - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setSecret(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.addDomains(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setPrivacy(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.agents.v1beta1.UpdateAgentRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.agents.v1beta1.UpdateAgentRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getSecret(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDomainsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 4, - f - ); - } - f = message.getPrivacy(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.UpdateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.UpdateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string secret = 3; - * @return {string} - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.getSecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.UpdateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.setSecret = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * repeated string domains = 4; - * @return {!Array} - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.getDomainsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.agents.v1beta1.UpdateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.setDomainsList = function(value) { - return jspb.Message.setField(this, 4, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.fonoster.agents.v1beta1.UpdateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.addDomains = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 4, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.agents.v1beta1.UpdateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.clearDomainsList = function() { - return this.setDomainsList([]); -}; - - -/** - * optional string privacy = 5; - * @return {string} - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.getPrivacy = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.UpdateAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.UpdateAgentRequest.prototype.setPrivacy = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.agents.v1beta1.GetAgentRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.agents.v1beta1.GetAgentRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.agents.v1beta1.GetAgentRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.GetAgentRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.agents.v1beta1.GetAgentRequest} - */ -proto.fonoster.agents.v1beta1.GetAgentRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.agents.v1beta1.GetAgentRequest; - return proto.fonoster.agents.v1beta1.GetAgentRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.agents.v1beta1.GetAgentRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.agents.v1beta1.GetAgentRequest} - */ -proto.fonoster.agents.v1beta1.GetAgentRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.agents.v1beta1.GetAgentRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.agents.v1beta1.GetAgentRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.agents.v1beta1.GetAgentRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.GetAgentRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.agents.v1beta1.GetAgentRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.GetAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.GetAgentRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.agents.v1beta1.DeleteAgentRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.agents.v1beta1.DeleteAgentRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.agents.v1beta1.DeleteAgentRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.DeleteAgentRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.agents.v1beta1.DeleteAgentRequest} - */ -proto.fonoster.agents.v1beta1.DeleteAgentRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.agents.v1beta1.DeleteAgentRequest; - return proto.fonoster.agents.v1beta1.DeleteAgentRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.agents.v1beta1.DeleteAgentRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.agents.v1beta1.DeleteAgentRequest} - */ -proto.fonoster.agents.v1beta1.DeleteAgentRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.agents.v1beta1.DeleteAgentRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.agents.v1beta1.DeleteAgentRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.agents.v1beta1.DeleteAgentRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.DeleteAgentRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.agents.v1beta1.DeleteAgentRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.DeleteAgentRequest} returns this - */ -proto.fonoster.agents.v1beta1.DeleteAgentRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.agents.v1beta1.Agent.repeatedFields_ = [5]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.agents.v1beta1.Agent.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.agents.v1beta1.Agent.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.agents.v1beta1.Agent} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.Agent.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - username: jspb.Message.getFieldWithDefault(msg, 3, ""), - secret: jspb.Message.getFieldWithDefault(msg, 4, ""), - domainsList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - privacy: jspb.Message.getFieldWithDefault(msg, 6, ""), - createTime: jspb.Message.getFieldWithDefault(msg, 7, ""), - updateTime: jspb.Message.getFieldWithDefault(msg, 8, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.agents.v1beta1.Agent} - */ -proto.fonoster.agents.v1beta1.Agent.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.agents.v1beta1.Agent; - return proto.fonoster.agents.v1beta1.Agent.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.agents.v1beta1.Agent} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.agents.v1beta1.Agent} - */ -proto.fonoster.agents.v1beta1.Agent.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setUsername(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setSecret(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.addDomains(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPrivacy(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setCreateTime(value); - break; - case 8: - var value = /** @type {string} */ (reader.readString()); - msg.setUpdateTime(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.agents.v1beta1.Agent.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.agents.v1beta1.Agent.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.agents.v1beta1.Agent} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.agents.v1beta1.Agent.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getUsername(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getSecret(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getDomainsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 5, - f - ); - } - f = message.getPrivacy(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getCreateTime(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getUpdateTime(); - if (f.length > 0) { - writer.writeString( - 8, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.agents.v1beta1.Agent.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.Agent} returns this - */ -proto.fonoster.agents.v1beta1.Agent.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.fonoster.agents.v1beta1.Agent.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.Agent} returns this - */ -proto.fonoster.agents.v1beta1.Agent.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string username = 3; - * @return {string} - */ -proto.fonoster.agents.v1beta1.Agent.prototype.getUsername = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.Agent} returns this - */ -proto.fonoster.agents.v1beta1.Agent.prototype.setUsername = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string secret = 4; - * @return {string} - */ -proto.fonoster.agents.v1beta1.Agent.prototype.getSecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.Agent} returns this - */ -proto.fonoster.agents.v1beta1.Agent.prototype.setSecret = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated string domains = 5; - * @return {!Array} - */ -proto.fonoster.agents.v1beta1.Agent.prototype.getDomainsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.agents.v1beta1.Agent} returns this - */ -proto.fonoster.agents.v1beta1.Agent.prototype.setDomainsList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.fonoster.agents.v1beta1.Agent} returns this - */ -proto.fonoster.agents.v1beta1.Agent.prototype.addDomains = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.agents.v1beta1.Agent} returns this - */ -proto.fonoster.agents.v1beta1.Agent.prototype.clearDomainsList = function() { - return this.setDomainsList([]); -}; - - -/** - * optional string privacy = 6; - * @return {string} - */ -proto.fonoster.agents.v1beta1.Agent.prototype.getPrivacy = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.Agent} returns this - */ -proto.fonoster.agents.v1beta1.Agent.prototype.setPrivacy = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string create_time = 7; - * @return {string} - */ -proto.fonoster.agents.v1beta1.Agent.prototype.getCreateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.Agent} returns this - */ -proto.fonoster.agents.v1beta1.Agent.prototype.setCreateTime = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string update_time = 8; - * @return {string} - */ -proto.fonoster.agents.v1beta1.Agent.prototype.getUpdateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.agents.v1beta1.Agent} returns this - */ -proto.fonoster.agents.v1beta1.Agent.prototype.setUpdateTime = function(value) { - return jspb.Message.setProto3StringField(this, 8, value); -}; - - -goog.object.extend(exports, proto.fonoster.agents.v1beta1); diff --git a/mods/agents/src/service/protos/common_grpc_pb.js b/mods/agents/src/service/protos/common_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/agents/src/service/protos/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/agents/src/service/protos/common_pb.d.ts b/mods/agents/src/service/protos/common_pb.d.ts deleted file mode 100644 index f8b5fb810..000000000 --- a/mods/agents/src/service/protos/common_pb.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// package: fonoster.common.v1beta1 -// file: common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class Empty extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Empty.AsObject; - static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Empty; - static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; -} - -export namespace Empty { - export type AsObject = { - } -} - -export class ErrorResponse extends jspb.Message { - getStatus(): number; - setStatus(value: number): ErrorResponse; - getMessage(): string; - setMessage(value: string): ErrorResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ErrorResponse.AsObject; - static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ErrorResponse; - static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse; -} - -export namespace ErrorResponse { - export type AsObject = { - status: number, - message: string, - } -} - -export enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2, -} diff --git a/mods/agents/src/service/protos/common_pb.js b/mods/agents/src/service/protos/common_pb.js deleted file mode 100644 index b7f99c7ea..000000000 --- a/mods/agents/src/service/protos/common_pb.js +++ /dev/null @@ -1,335 +0,0 @@ -// source: common.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -goog.exportSymbol('proto.fonoster.common.v1beta1.Empty', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.ErrorResponse', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.View', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.Empty = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.Empty, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.Empty.displayName = 'proto.fonoster.common.v1beta1.Empty'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.ErrorResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.ErrorResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.ErrorResponse.displayName = 'proto.fonoster.common.v1beta1.ErrorResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.Empty.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.Empty.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.Empty} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.Empty; - return proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.Empty} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.Empty.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.Empty} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.ErrorResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.toObject = function(includeInstance, msg) { - var f, obj = { - status: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.ErrorResponse; - return proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setStatus(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getStatus(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional int32 status = 1; - * @return {number} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getStatus = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setStatus = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * @enum {number} - */ -proto.fonoster.common.v1beta1.View = { - BASIC: 0, - STANDARD: 1, - FULL: 2 -}; - -goog.object.extend(exports, proto.fonoster.common.v1beta1); diff --git a/mods/agents/src/service/protos/google/api/annotations_grpc_pb.js b/mods/agents/src/service/protos/google/api/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/agents/src/service/protos/google/api/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/agents/src/service/protos/google/api/annotations_pb.d.ts b/mods/agents/src/service/protos/google/api/annotations_pb.d.ts deleted file mode 100644 index 06072f3bd..000000000 --- a/mods/agents/src/service/protos/google/api/annotations_pb.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// package: google.api -// file: google/api/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_api_http_pb from "../../google/api/http_pb"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const http: jspb.ExtensionFieldInfo; diff --git a/mods/agents/src/service/protos/google/api/annotations_pb.js b/mods/agents/src/service/protos/google/api/annotations_pb.js deleted file mode 100644 index 99e4c1824..000000000 --- a/mods/agents/src/service/protos/google/api/annotations_pb.js +++ /dev/null @@ -1,48 +0,0 @@ -// source: google/api/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_http_pb = require('../../google/api/http_pb.js'); -goog.object.extend(proto, google_api_http_pb); -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.http', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `http`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.google.api.http = new jspb.ExtensionFieldInfo( - 72295728, - {http: 0}, - google_api_http_pb.HttpRule, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - google_api_http_pb.HttpRule.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[72295728] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.http, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - google_api_http_pb.HttpRule.serializeBinaryToWriter, - google_api_http_pb.HttpRule.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[72295728] = proto.google.api.http; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/agents/src/service/protos/google/api/field_behavior_grpc_pb.js b/mods/agents/src/service/protos/google/api/field_behavior_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/agents/src/service/protos/google/api/field_behavior_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/agents/src/service/protos/google/api/field_behavior_pb.d.ts b/mods/agents/src/service/protos/google/api/field_behavior_pb.d.ts deleted file mode 100644 index 9b853705f..000000000 --- a/mods/agents/src/service/protos/google/api/field_behavior_pb.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -// package: google.api -// file: google/api/field_behavior.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const fieldBehavior: jspb.ExtensionFieldInfo; - -export enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, -} diff --git a/mods/agents/src/service/protos/google/api/field_behavior_pb.js b/mods/agents/src/service/protos/google/api/field_behavior_pb.js deleted file mode 100644 index 44160cc41..000000000 --- a/mods/agents/src/service/protos/google/api/field_behavior_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// source: google/api/field_behavior.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.FieldBehavior', null, global); -goog.exportSymbol('proto.google.api.fieldBehaviorList', null, global); -/** - * @enum {number} - */ -proto.google.api.FieldBehavior = { - FIELD_BEHAVIOR_UNSPECIFIED: 0, - OPTIONAL: 1, - REQUIRED: 2, - OUTPUT_ONLY: 3, - INPUT_ONLY: 4, - IMMUTABLE: 5, - UNORDERED_LIST: 6, - NON_EMPTY_DEFAULT: 7 -}; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `fieldBehaviorList`. - * @type {!jspb.ExtensionFieldInfo>} - */ -proto.google.api.fieldBehaviorList = new jspb.ExtensionFieldInfo( - 1052, - {fieldBehaviorList: 0}, - null, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - null), - 1); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1052] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.fieldBehaviorList, - jspb.BinaryReader.prototype.readPackedEnum, - jspb.BinaryWriter.prototype.writePackedEnum, - undefined, - undefined, - true); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1052] = proto.google.api.fieldBehaviorList; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/agents/src/service/protos/google/api/http_grpc_pb.js b/mods/agents/src/service/protos/google/api/http_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/agents/src/service/protos/google/api/http_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/agents/src/service/protos/google/api/http_pb.d.ts b/mods/agents/src/service/protos/google/api/http_pb.d.ts deleted file mode 100644 index 02c3b1ece..000000000 --- a/mods/agents/src/service/protos/google/api/http_pb.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -// package: google.api -// file: google/api/http.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Http extends jspb.Message { - clearRulesList(): void; - getRulesList(): Array; - setRulesList(value: Array): Http; - addRules(value?: HttpRule, index?: number): HttpRule; - getFullyDecodeReservedExpansion(): boolean; - setFullyDecodeReservedExpansion(value: boolean): Http; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Http.AsObject; - static toObject(includeInstance: boolean, msg: Http): Http.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Http; - static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http; -} - -export namespace Http { - export type AsObject = { - rulesList: Array, - fullyDecodeReservedExpansion: boolean, - } -} - -export class HttpRule extends jspb.Message { - getSelector(): string; - setSelector(value: string): HttpRule; - - hasGet(): boolean; - clearGet(): void; - getGet(): string; - setGet(value: string): HttpRule; - - hasPut(): boolean; - clearPut(): void; - getPut(): string; - setPut(value: string): HttpRule; - - hasPost(): boolean; - clearPost(): void; - getPost(): string; - setPost(value: string): HttpRule; - - hasDelete(): boolean; - clearDelete(): void; - getDelete(): string; - setDelete(value: string): HttpRule; - - hasPatch(): boolean; - clearPatch(): void; - getPatch(): string; - setPatch(value: string): HttpRule; - - hasCustom(): boolean; - clearCustom(): void; - getCustom(): CustomHttpPattern | undefined; - setCustom(value?: CustomHttpPattern): HttpRule; - getBody(): string; - setBody(value: string): HttpRule; - getResponseBody(): string; - setResponseBody(value: string): HttpRule; - clearAdditionalBindingsList(): void; - getAdditionalBindingsList(): Array; - setAdditionalBindingsList(value: Array): HttpRule; - addAdditionalBindings(value?: HttpRule, index?: number): HttpRule; - - getPatternCase(): HttpRule.PatternCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpRule.AsObject; - static toObject(includeInstance: boolean, msg: HttpRule): HttpRule.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpRule, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpRule; - static deserializeBinaryFromReader(message: HttpRule, reader: jspb.BinaryReader): HttpRule; -} - -export namespace HttpRule { - export type AsObject = { - selector: string, - get: string, - put: string, - post: string, - pb_delete: string, - patch: string, - custom?: CustomHttpPattern.AsObject, - body: string, - responseBody: string, - additionalBindingsList: Array, - } - - export enum PatternCase { - PATTERN_NOT_SET = 0, - GET = 2, - PUT = 3, - POST = 4, - DELETE = 5, - PATCH = 6, - CUSTOM = 8, - } - -} - -export class CustomHttpPattern extends jspb.Message { - getKind(): string; - setKind(value: string): CustomHttpPattern; - getPath(): string; - setPath(value: string): CustomHttpPattern; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CustomHttpPattern.AsObject; - static toObject(includeInstance: boolean, msg: CustomHttpPattern): CustomHttpPattern.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CustomHttpPattern, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CustomHttpPattern; - static deserializeBinaryFromReader(message: CustomHttpPattern, reader: jspb.BinaryReader): CustomHttpPattern; -} - -export namespace CustomHttpPattern { - export type AsObject = { - kind: string, - path: string, - } -} diff --git a/mods/agents/src/service/protos/google/api/http_pb.js b/mods/agents/src/service/protos/google/api/http_pb.js deleted file mode 100644 index 0359c5eec..000000000 --- a/mods/agents/src/service/protos/google/api/http_pb.js +++ /dev/null @@ -1,1006 +0,0 @@ -// source: google/api/http.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.google.api.CustomHttpPattern', null, global); -goog.exportSymbol('proto.google.api.Http', null, global); -goog.exportSymbol('proto.google.api.HttpRule', null, global); -goog.exportSymbol('proto.google.api.HttpRule.PatternCase', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.Http = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Http.repeatedFields_, null); -}; -goog.inherits(proto.google.api.Http, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.Http.displayName = 'proto.google.api.Http'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpRule = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpRule.repeatedFields_, proto.google.api.HttpRule.oneofGroups_); -}; -goog.inherits(proto.google.api.HttpRule, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpRule.displayName = 'proto.google.api.HttpRule'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.CustomHttpPattern = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.google.api.CustomHttpPattern, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.CustomHttpPattern.displayName = 'proto.google.api.CustomHttpPattern'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.Http.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.Http.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.Http.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.Http} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.toObject = function(includeInstance, msg) { - var f, obj = { - rulesList: jspb.Message.toObjectList(msg.getRulesList(), - proto.google.api.HttpRule.toObject, includeInstance), - fullyDecodeReservedExpansion: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.Http; - return proto.google.api.Http.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.Http} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addRules(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFullyDecodeReservedExpansion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.Http.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.Http.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.Http} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRulesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } - f = message.getFullyDecodeReservedExpansion(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * repeated HttpRule rules = 1; - * @return {!Array} - */ -proto.google.api.Http.prototype.getRulesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.Http} returns this -*/ -proto.google.api.Http.prototype.setRulesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.Http.prototype.addRules = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.clearRulesList = function() { - return this.setRulesList([]); -}; - - -/** - * optional bool fully_decode_reserved_expansion = 2; - * @return {boolean} - */ -proto.google.api.Http.prototype.getFullyDecodeReservedExpansion = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.setFullyDecodeReservedExpansion = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpRule.repeatedFields_ = [11]; - -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.google.api.HttpRule.oneofGroups_ = [[2,3,4,5,6,8]]; - -/** - * @enum {number} - */ -proto.google.api.HttpRule.PatternCase = { - PATTERN_NOT_SET: 0, - GET: 2, - PUT: 3, - POST: 4, - DELETE: 5, - PATCH: 6, - CUSTOM: 8 -}; - -/** - * @return {proto.google.api.HttpRule.PatternCase} - */ -proto.google.api.HttpRule.prototype.getPatternCase = function() { - return /** @type {proto.google.api.HttpRule.PatternCase} */(jspb.Message.computeOneofCase(this, proto.google.api.HttpRule.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpRule.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpRule.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpRule} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.toObject = function(includeInstance, msg) { - var f, obj = { - selector: jspb.Message.getFieldWithDefault(msg, 1, ""), - get: jspb.Message.getFieldWithDefault(msg, 2, ""), - put: jspb.Message.getFieldWithDefault(msg, 3, ""), - post: jspb.Message.getFieldWithDefault(msg, 4, ""), - pb_delete: jspb.Message.getFieldWithDefault(msg, 5, ""), - patch: jspb.Message.getFieldWithDefault(msg, 6, ""), - custom: (f = msg.getCustom()) && proto.google.api.CustomHttpPattern.toObject(includeInstance, f), - body: jspb.Message.getFieldWithDefault(msg, 7, ""), - responseBody: jspb.Message.getFieldWithDefault(msg, 12, ""), - additionalBindingsList: jspb.Message.toObjectList(msg.getAdditionalBindingsList(), - proto.google.api.HttpRule.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpRule; - return proto.google.api.HttpRule.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpRule} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSelector(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setGet(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPut(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPost(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDelete(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPatch(value); - break; - case 8: - var value = new proto.google.api.CustomHttpPattern; - reader.readMessage(value,proto.google.api.CustomHttpPattern.deserializeBinaryFromReader); - msg.setCustom(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBody(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setResponseBody(value); - break; - case 11: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addAdditionalBindings(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpRule.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpRule.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpRule} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSelector(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeString( - 3, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeString( - 4, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 5)); - if (f != null) { - writer.writeString( - 5, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 6)); - if (f != null) { - writer.writeString( - 6, - f - ); - } - f = message.getCustom(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.google.api.CustomHttpPattern.serializeBinaryToWriter - ); - } - f = message.getBody(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getResponseBody(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getAdditionalBindingsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 11, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string selector = 1; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getSelector = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setSelector = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string get = 2; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getGet = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setGet = function(value) { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearGet = function() { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasGet = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string put = 3; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPut = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPut = function(value) { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPut = function() { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPut = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional string post = 4; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPost = function(value) { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPost = function() { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPost = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string delete = 5; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getDelete = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setDelete = function(value) { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearDelete = function() { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasDelete = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string patch = 6; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPatch = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPatch = function(value) { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPatch = function() { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPatch = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional CustomHttpPattern custom = 8; - * @return {?proto.google.api.CustomHttpPattern} - */ -proto.google.api.HttpRule.prototype.getCustom = function() { - return /** @type{?proto.google.api.CustomHttpPattern} */ ( - jspb.Message.getWrapperField(this, proto.google.api.CustomHttpPattern, 8)); -}; - - -/** - * @param {?proto.google.api.CustomHttpPattern|undefined} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setCustom = function(value) { - return jspb.Message.setOneofWrapperField(this, 8, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearCustom = function() { - return this.setCustom(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasCustom = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional string body = 7; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setBody = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string response_body = 12; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getResponseBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setResponseBody = function(value) { - return jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * repeated HttpRule additional_bindings = 11; - * @return {!Array} - */ -proto.google.api.HttpRule.prototype.getAdditionalBindingsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 11)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setAdditionalBindingsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 11, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.prototype.addAdditionalBindings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearAdditionalBindingsList = function() { - return this.setAdditionalBindingsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.CustomHttpPattern.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.CustomHttpPattern.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.CustomHttpPattern} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.toObject = function(includeInstance, msg) { - var f, obj = { - kind: jspb.Message.getFieldWithDefault(msg, 1, ""), - path: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.CustomHttpPattern; - return proto.google.api.CustomHttpPattern.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.CustomHttpPattern} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKind(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.CustomHttpPattern.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.CustomHttpPattern.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.CustomHttpPattern} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKind(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string kind = 1; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getKind = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setKind = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string path = 2; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/agents/src/service/protos/google/api/httpbody_grpc_pb.js b/mods/agents/src/service/protos/google/api/httpbody_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/agents/src/service/protos/google/api/httpbody_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/agents/src/service/protos/google/api/httpbody_pb.d.ts b/mods/agents/src/service/protos/google/api/httpbody_pb.d.ts deleted file mode 100644 index 98d973068..000000000 --- a/mods/agents/src/service/protos/google/api/httpbody_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// package: google.api -// file: google/api/httpbody.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb"; - -export class HttpBody extends jspb.Message { - getContentType(): string; - setContentType(value: string): HttpBody; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): HttpBody; - clearExtensionsList(): void; - getExtensionsList(): Array; - setExtensionsList(value: Array): HttpBody; - addExtensions(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpBody.AsObject; - static toObject(includeInstance: boolean, msg: HttpBody): HttpBody.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpBody, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpBody; - static deserializeBinaryFromReader(message: HttpBody, reader: jspb.BinaryReader): HttpBody; -} - -export namespace HttpBody { - export type AsObject = { - contentType: string, - data: Uint8Array | string, - extensionsList: Array, - } -} diff --git a/mods/agents/src/service/protos/google/api/httpbody_pb.js b/mods/agents/src/service/protos/google/api/httpbody_pb.js deleted file mode 100644 index 5539f5936..000000000 --- a/mods/agents/src/service/protos/google/api/httpbody_pb.js +++ /dev/null @@ -1,286 +0,0 @@ -// source: google/api/httpbody.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js'); -goog.object.extend(proto, google_protobuf_any_pb); -goog.exportSymbol('proto.google.api.HttpBody', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpBody = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpBody.repeatedFields_, null); -}; -goog.inherits(proto.google.api.HttpBody, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpBody.displayName = 'proto.google.api.HttpBody'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpBody.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpBody.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpBody.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpBody} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.toObject = function(includeInstance, msg) { - var f, obj = { - contentType: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64(), - extensionsList: jspb.Message.toObjectList(msg.getExtensionsList(), - google_protobuf_any_pb.Any.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpBody; - return proto.google.api.HttpBody.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpBody} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setContentType(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 3: - var value = new google_protobuf_any_pb.Any; - reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader); - msg.addExtensions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpBody.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpBody} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContentType(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getExtensionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - google_protobuf_any_pb.Any.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string content_type = 1; - * @return {string} - */ -proto.google.api.HttpBody.prototype.getContentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setContentType = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.google.api.HttpBody.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.google.api.HttpBody.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setData = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * repeated google.protobuf.Any extensions = 3; - * @return {!Array} - */ -proto.google.api.HttpBody.prototype.getExtensionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpBody} returns this -*/ -proto.google.api.HttpBody.prototype.setExtensionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.google.protobuf.Any=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.Any} - */ -proto.google.api.HttpBody.prototype.addExtensions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.clearExtensionsList = function() { - return this.setExtensionsList([]); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/agents/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js b/mods/agents/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/agents/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/agents/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts b/mods/agents/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts deleted file mode 100644 index 8e3a35012..000000000 --- a/mods/agents/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; -import * as protoc_gen_openapiv2_options_openapiv2_pb from "../../protoc-gen-openapiv2/options/openapiv2_pb"; - -export const openapiv2Swagger: jspb.ExtensionFieldInfo; - -export const openapiv2Operation: jspb.ExtensionFieldInfo; - -export const openapiv2Schema: jspb.ExtensionFieldInfo; - -export const openapiv2Tag: jspb.ExtensionFieldInfo; - -export const openapiv2Field: jspb.ExtensionFieldInfo; diff --git a/mods/agents/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js b/mods/agents/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js deleted file mode 100644 index e92ccec18..000000000 --- a/mods/agents/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js +++ /dev/null @@ -1,152 +0,0 @@ -// source: protoc-gen-openapiv2/options/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -var protoc$gen$openapiv2_options_openapiv2_pb = require('../../protoc-gen-openapiv2/options/openapiv2_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_openapiv2_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Swagger`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Swagger: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.toObject), - 0); - -google_protobuf_descriptor_pb.FileOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FileOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Operation`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Operation: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Operation, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Operation.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Schema`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Schema: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Schema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Schema.toObject), - 0); - -google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MessageOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Tag`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Tag: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Tag, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Tag.toObject), - 0); - -google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.ServiceOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Field`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Field: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.toObject), - 0); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/agents/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js b/mods/agents/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/agents/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/agents/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts b/mods/agents/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts deleted file mode 100644 index 3c3972ea9..000000000 --- a/mods/agents/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +++ /dev/null @@ -1,685 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/openapiv2.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class Swagger extends jspb.Message { - getSwagger(): string; - setSwagger(value: string): Swagger; - - hasInfo(): boolean; - clearInfo(): void; - getInfo(): Info | undefined; - setInfo(value?: Info): Swagger; - getHost(): string; - setHost(value: string): Swagger; - getBasePath(): string; - setBasePath(value: string): Swagger; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Swagger; - addSchemes(value: Scheme, index?: number): Scheme; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Swagger; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Swagger; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - - hasSecurityDefinitions(): boolean; - clearSecurityDefinitions(): void; - getSecurityDefinitions(): SecurityDefinitions | undefined; - setSecurityDefinitions(value?: SecurityDefinitions): Swagger; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Swagger; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Swagger; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Swagger.AsObject; - static toObject(includeInstance: boolean, msg: Swagger): Swagger.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Swagger, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Swagger; - static deserializeBinaryFromReader(message: Swagger, reader: jspb.BinaryReader): Swagger; -} - -export namespace Swagger { - export type AsObject = { - swagger: string, - info?: Info.AsObject, - host: string, - basePath: string, - schemesList: Array, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - securityDefinitions?: SecurityDefinitions.AsObject, - securityList: Array, - externalDocs?: ExternalDocumentation.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Operation extends jspb.Message { - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): Operation; - addTags(value: string, index?: number): string; - getSummary(): string; - setSummary(value: string): Operation; - getDescription(): string; - setDescription(value: string): Operation; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Operation; - getOperationId(): string; - setOperationId(value: string): Operation; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Operation; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Operation; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Operation; - addSchemes(value: Scheme, index?: number): Scheme; - getDeprecated(): boolean; - setDeprecated(value: boolean): Operation; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Operation; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Operation.AsObject; - static toObject(includeInstance: boolean, msg: Operation): Operation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Operation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Operation; - static deserializeBinaryFromReader(message: Operation, reader: jspb.BinaryReader): Operation; -} - -export namespace Operation { - export type AsObject = { - tagsList: Array, - summary: string, - description: string, - externalDocs?: ExternalDocumentation.AsObject, - operationId: string, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - schemesList: Array, - deprecated: boolean, - securityList: Array, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Header extends jspb.Message { - getDescription(): string; - setDescription(value: string): Header; - getType(): string; - setType(value: string): Header; - getFormat(): string; - setFormat(value: string): Header; - getDefault(): string; - setDefault(value: string): Header; - getPattern(): string; - setPattern(value: string): Header; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Header.AsObject; - static toObject(includeInstance: boolean, msg: Header): Header.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Header, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Header; - static deserializeBinaryFromReader(message: Header, reader: jspb.BinaryReader): Header; -} - -export namespace Header { - export type AsObject = { - description: string, - type: string, - format: string, - pb_default: string, - pattern: string, - } -} - -export class Response extends jspb.Message { - getDescription(): string; - setDescription(value: string): Response; - - hasSchema(): boolean; - clearSchema(): void; - getSchema(): Schema | undefined; - setSchema(value?: Schema): Response; - - getHeadersMap(): jspb.Map; - clearHeadersMap(): void; - - getExamplesMap(): jspb.Map; - clearExamplesMap(): void; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Response.AsObject; - static toObject(includeInstance: boolean, msg: Response): Response.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Response, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Response; - static deserializeBinaryFromReader(message: Response, reader: jspb.BinaryReader): Response; -} - -export namespace Response { - export type AsObject = { - description: string, - schema?: Schema.AsObject, - - headersMap: Array<[string, Header.AsObject]>, - - examplesMap: Array<[string, string]>, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Info extends jspb.Message { - getTitle(): string; - setTitle(value: string): Info; - getDescription(): string; - setDescription(value: string): Info; - getTermsOfService(): string; - setTermsOfService(value: string): Info; - - hasContact(): boolean; - clearContact(): void; - getContact(): Contact | undefined; - setContact(value?: Contact): Info; - - hasLicense(): boolean; - clearLicense(): void; - getLicense(): License | undefined; - setLicense(value?: License): Info; - getVersion(): string; - setVersion(value: string): Info; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Info.AsObject; - static toObject(includeInstance: boolean, msg: Info): Info.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Info, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Info; - static deserializeBinaryFromReader(message: Info, reader: jspb.BinaryReader): Info; -} - -export namespace Info { - export type AsObject = { - title: string, - description: string, - termsOfService: string, - contact?: Contact.AsObject, - license?: License.AsObject, - version: string, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Contact extends jspb.Message { - getName(): string; - setName(value: string): Contact; - getUrl(): string; - setUrl(value: string): Contact; - getEmail(): string; - setEmail(value: string): Contact; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contact.AsObject; - static toObject(includeInstance: boolean, msg: Contact): Contact.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contact, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contact; - static deserializeBinaryFromReader(message: Contact, reader: jspb.BinaryReader): Contact; -} - -export namespace Contact { - export type AsObject = { - name: string, - url: string, - email: string, - } -} - -export class License extends jspb.Message { - getName(): string; - setName(value: string): License; - getUrl(): string; - setUrl(value: string): License; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): License.AsObject; - static toObject(includeInstance: boolean, msg: License): License.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: License, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): License; - static deserializeBinaryFromReader(message: License, reader: jspb.BinaryReader): License; -} - -export namespace License { - export type AsObject = { - name: string, - url: string, - } -} - -export class ExternalDocumentation extends jspb.Message { - getDescription(): string; - setDescription(value: string): ExternalDocumentation; - getUrl(): string; - setUrl(value: string): ExternalDocumentation; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ExternalDocumentation.AsObject; - static toObject(includeInstance: boolean, msg: ExternalDocumentation): ExternalDocumentation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ExternalDocumentation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ExternalDocumentation; - static deserializeBinaryFromReader(message: ExternalDocumentation, reader: jspb.BinaryReader): ExternalDocumentation; -} - -export namespace ExternalDocumentation { - export type AsObject = { - description: string, - url: string, - } -} - -export class Schema extends jspb.Message { - - hasJsonSchema(): boolean; - clearJsonSchema(): void; - getJsonSchema(): JSONSchema | undefined; - setJsonSchema(value?: JSONSchema): Schema; - getDiscriminator(): string; - setDiscriminator(value: string): Schema; - getReadOnly(): boolean; - setReadOnly(value: boolean): Schema; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Schema; - getExample(): string; - setExample(value: string): Schema; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Schema.AsObject; - static toObject(includeInstance: boolean, msg: Schema): Schema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Schema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Schema; - static deserializeBinaryFromReader(message: Schema, reader: jspb.BinaryReader): Schema; -} - -export namespace Schema { - export type AsObject = { - jsonSchema?: JSONSchema.AsObject, - discriminator: string, - readOnly: boolean, - externalDocs?: ExternalDocumentation.AsObject, - example: string, - } -} - -export class JSONSchema extends jspb.Message { - getRef(): string; - setRef(value: string): JSONSchema; - getTitle(): string; - setTitle(value: string): JSONSchema; - getDescription(): string; - setDescription(value: string): JSONSchema; - getDefault(): string; - setDefault(value: string): JSONSchema; - getReadOnly(): boolean; - setReadOnly(value: boolean): JSONSchema; - getExample(): string; - setExample(value: string): JSONSchema; - getMultipleOf(): number; - setMultipleOf(value: number): JSONSchema; - getMaximum(): number; - setMaximum(value: number): JSONSchema; - getExclusiveMaximum(): boolean; - setExclusiveMaximum(value: boolean): JSONSchema; - getMinimum(): number; - setMinimum(value: number): JSONSchema; - getExclusiveMinimum(): boolean; - setExclusiveMinimum(value: boolean): JSONSchema; - getMaxLength(): number; - setMaxLength(value: number): JSONSchema; - getMinLength(): number; - setMinLength(value: number): JSONSchema; - getPattern(): string; - setPattern(value: string): JSONSchema; - getMaxItems(): number; - setMaxItems(value: number): JSONSchema; - getMinItems(): number; - setMinItems(value: number): JSONSchema; - getUniqueItems(): boolean; - setUniqueItems(value: boolean): JSONSchema; - getMaxProperties(): number; - setMaxProperties(value: number): JSONSchema; - getMinProperties(): number; - setMinProperties(value: number): JSONSchema; - clearRequiredList(): void; - getRequiredList(): Array; - setRequiredList(value: Array): JSONSchema; - addRequired(value: string, index?: number): string; - clearArrayList(): void; - getArrayList(): Array; - setArrayList(value: Array): JSONSchema; - addArray(value: string, index?: number): string; - clearTypeList(): void; - getTypeList(): Array; - setTypeList(value: Array): JSONSchema; - addType(value: JSONSchema.JSONSchemaSimpleTypes, index?: number): JSONSchema.JSONSchemaSimpleTypes; - getFormat(): string; - setFormat(value: string): JSONSchema; - clearEnumList(): void; - getEnumList(): Array; - setEnumList(value: Array): JSONSchema; - addEnum(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): JSONSchema.AsObject; - static toObject(includeInstance: boolean, msg: JSONSchema): JSONSchema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: JSONSchema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): JSONSchema; - static deserializeBinaryFromReader(message: JSONSchema, reader: jspb.BinaryReader): JSONSchema; -} - -export namespace JSONSchema { - export type AsObject = { - ref: string, - title: string, - description: string, - pb_default: string, - readOnly: boolean, - example: string, - multipleOf: number, - maximum: number, - exclusiveMaximum: boolean, - minimum: number, - exclusiveMinimum: boolean, - maxLength: number, - minLength: number, - pattern: string, - maxItems: number, - minItems: number, - uniqueItems: boolean, - maxProperties: number, - minProperties: number, - requiredList: Array, - arrayList: Array, - typeList: Array, - format: string, - pb_enumList: Array, - } - - export enum JSONSchemaSimpleTypes { - UNKNOWN = 0, - ARRAY = 1, - BOOLEAN = 2, - INTEGER = 3, - NULL = 4, - NUMBER = 5, - OBJECT = 6, - STRING = 7, - } - -} - -export class Tag extends jspb.Message { - getDescription(): string; - setDescription(value: string): Tag; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Tag; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Tag.AsObject; - static toObject(includeInstance: boolean, msg: Tag): Tag.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Tag, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Tag; - static deserializeBinaryFromReader(message: Tag, reader: jspb.BinaryReader): Tag; -} - -export namespace Tag { - export type AsObject = { - description: string, - externalDocs?: ExternalDocumentation.AsObject, - } -} - -export class SecurityDefinitions extends jspb.Message { - - getSecurityMap(): jspb.Map; - clearSecurityMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityDefinitions.AsObject; - static toObject(includeInstance: boolean, msg: SecurityDefinitions): SecurityDefinitions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityDefinitions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityDefinitions; - static deserializeBinaryFromReader(message: SecurityDefinitions, reader: jspb.BinaryReader): SecurityDefinitions; -} - -export namespace SecurityDefinitions { - export type AsObject = { - - securityMap: Array<[string, SecurityScheme.AsObject]>, - } -} - -export class SecurityScheme extends jspb.Message { - getType(): SecurityScheme.Type; - setType(value: SecurityScheme.Type): SecurityScheme; - getDescription(): string; - setDescription(value: string): SecurityScheme; - getName(): string; - setName(value: string): SecurityScheme; - getIn(): SecurityScheme.In; - setIn(value: SecurityScheme.In): SecurityScheme; - getFlow(): SecurityScheme.Flow; - setFlow(value: SecurityScheme.Flow): SecurityScheme; - getAuthorizationUrl(): string; - setAuthorizationUrl(value: string): SecurityScheme; - getTokenUrl(): string; - setTokenUrl(value: string): SecurityScheme; - - hasScopes(): boolean; - clearScopes(): void; - getScopes(): Scopes | undefined; - setScopes(value?: Scopes): SecurityScheme; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityScheme.AsObject; - static toObject(includeInstance: boolean, msg: SecurityScheme): SecurityScheme.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityScheme, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityScheme; - static deserializeBinaryFromReader(message: SecurityScheme, reader: jspb.BinaryReader): SecurityScheme; -} - -export namespace SecurityScheme { - export type AsObject = { - type: SecurityScheme.Type, - description: string, - name: string, - pb_in: SecurityScheme.In, - flow: SecurityScheme.Flow, - authorizationUrl: string, - tokenUrl: string, - scopes?: Scopes.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } - - export enum Type { - TYPE_INVALID = 0, - TYPE_BASIC = 1, - TYPE_API_KEY = 2, - TYPE_OAUTH2 = 3, - } - - export enum In { - IN_INVALID = 0, - IN_QUERY = 1, - IN_HEADER = 2, - } - - export enum Flow { - FLOW_INVALID = 0, - FLOW_IMPLICIT = 1, - FLOW_PASSWORD = 2, - FLOW_APPLICATION = 3, - FLOW_ACCESS_CODE = 4, - } - -} - -export class SecurityRequirement extends jspb.Message { - - getSecurityRequirementMap(): jspb.Map; - clearSecurityRequirementMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirement.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirement): SecurityRequirement.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirement, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirement; - static deserializeBinaryFromReader(message: SecurityRequirement, reader: jspb.BinaryReader): SecurityRequirement; -} - -export namespace SecurityRequirement { - export type AsObject = { - - securityRequirementMap: Array<[string, SecurityRequirement.SecurityRequirementValue.AsObject]>, - } - - - export class SecurityRequirementValue extends jspb.Message { - clearScopeList(): void; - getScopeList(): Array; - setScopeList(value: Array): SecurityRequirementValue; - addScope(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirementValue.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirementValue): SecurityRequirementValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirementValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirementValue; - static deserializeBinaryFromReader(message: SecurityRequirementValue, reader: jspb.BinaryReader): SecurityRequirementValue; - } - - export namespace SecurityRequirementValue { - export type AsObject = { - scopeList: Array, - } - } - -} - -export class Scopes extends jspb.Message { - - getScopeMap(): jspb.Map; - clearScopeMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Scopes.AsObject; - static toObject(includeInstance: boolean, msg: Scopes): Scopes.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Scopes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Scopes; - static deserializeBinaryFromReader(message: Scopes, reader: jspb.BinaryReader): Scopes; -} - -export namespace Scopes { - export type AsObject = { - - scopeMap: Array<[string, string]>, - } -} - -export enum Scheme { - UNKNOWN = 0, - HTTP = 1, - HTTPS = 2, - WS = 3, - WSS = 4, -} diff --git a/mods/agents/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js b/mods/agents/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js deleted file mode 100644 index be8a6bfd2..000000000 --- a/mods/agents/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js +++ /dev/null @@ -1,5367 +0,0 @@ -// source: protoc-gen-openapiv2/options/openapiv2.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Contact', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Header', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Info', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.License', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Response', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Tag', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Operation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Operation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Header, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Header'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Response, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Response'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Info, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Info'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Contact'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.License, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.License.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.License'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Schema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Tag, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Tag'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_ = [5,6,7,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject = function(includeInstance, msg) { - var f, obj = { - swagger: jspb.Message.getFieldWithDefault(msg, 1, ""), - info: (f = msg.getInfo()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(includeInstance, f), - host: jspb.Message.getFieldWithDefault(msg, 3, ""), - basePath: jspb.Message.getFieldWithDefault(msg, 4, ""), - schemesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - securityDefinitions: (f = msg.getSecurityDefinitions()) && proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(includeInstance, f), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSwagger(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader); - msg.setInfo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setBasePath(value); - break; - case 5: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 10: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 11: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader); - msg.setSecurityDefinitions(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 14: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 15: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSwagger(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInfo(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBasePath(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSecurityDefinitions(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 14, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string swagger = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSwagger = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSwagger = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Info info = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getInfo = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Info, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearInfo = function() { - return this.setInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasInfo = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string host = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string base_path = 4; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getBasePath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setBasePath = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated Scheme schemes = 5; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 10; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 10, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * optional SecurityDefinitions security_definitions = 11; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityDefinitions = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, 11)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityDefinitions = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityDefinitions = function() { - return this.setSecurityDefinitions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasSecurityDefinitions = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * optional ExternalDocumentation external_docs = 14; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 14)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 14, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 14) != null; -}; - - -/** - * map extensions = 15; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 15, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_ = [1,6,7,10,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject = function(includeInstance, msg) { - var f, obj = { - tagsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - summary: jspb.Message.getFieldWithDefault(msg, 2, ""), - description: jspb.Message.getFieldWithDefault(msg, 3, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - operationId: jspb.Message.getFieldWithDefault(msg, 5, ""), - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - schemesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f, - deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 11, false), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Operation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSummary(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setOperationId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 9: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 10: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDeprecated(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 13: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getSummary(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getOperationId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 10, - f - ); - } - f = message.getDeprecated(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * repeated string tags = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getTagsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setTagsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addTags = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearTagsList = function() { - return this.setTagsList([]); -}; - - -/** - * optional string summary = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSummary = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSummary = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string description = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string operation_id = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getOperationId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setOperationId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * repeated Scheme schemes = 10; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 10, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 10, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * optional bool deprecated = 11; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDeprecated = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDeprecated = function(value) { - return jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * map extensions = 13; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 13, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, ""), - format: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 6, ""), - pattern: jspb.Message.getFieldWithDefault(msg, 13, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Header; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string type = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string format = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string default = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string pattern = 13; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 13, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - schema: (f = msg.getSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(includeInstance, f), - headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject) : [], - examplesMap: (f = msg.getExamplesMap()) ? f.toObject(includeInstance, undefined) : [], - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Response; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader); - msg.setSchema(value); - break; - case 3: - var value = msg.getHeadersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Header()); - }); - break; - case 4: - var value = msg.getExamplesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - case 5: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchema(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter - ); - } - f = message.getHeadersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter); - } - f = message.getExamplesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Schema schema = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setSchema = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearSchema = function() { - return this.setSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.hasSchema = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * map headers = 3; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getHeadersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 3, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Header)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearHeadersMap = function() { - this.getHeadersMap().clear(); - return this;}; - - -/** - * map examples = 4; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExamplesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 4, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExamplesMap = function() { - this.getExamplesMap().clear(); - return this;}; - - -/** - * map extensions = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject = function(includeInstance, msg) { - var f, obj = { - title: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - termsOfService: jspb.Message.getFieldWithDefault(msg, 3, ""), - contact: (f = msg.getContact()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(includeInstance, f), - license: (f = msg.getLicense()) && proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(includeInstance, f), - version: jspb.Message.getFieldWithDefault(msg, 6, ""), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTermsOfService(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader); - msg.setContact(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader); - msg.setLicense(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 7: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTermsOfService(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getContact(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter - ); - } - f = message.getLicense(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string title = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string terms_of_service = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTermsOfService = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTermsOfService = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional Contact contact = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getContact = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setContact = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearContact = function() { - return this.setContact(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasContact = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional License license = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getLicense = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.License} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.License, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.License|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setLicense = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearLicense = function() { - return this.setLicense(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasLicense = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string version = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setVersion = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * map extensions = 7; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 7, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject = function(includeInstance, msg) { - var f, obj = { - jsonSchema: (f = msg.getJsonSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(includeInstance, f), - discriminator: jspb.Message.getFieldWithDefault(msg, 2, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - example: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader); - msg.setJsonSchema(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDiscriminator(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsonSchema(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter - ); - } - f = message.getDiscriminator(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional JSONSchema json_schema = 1; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getJsonSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, 1)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setJsonSchema = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearJsonSchema = function() { - return this.setJsonSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasJsonSchema = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string discriminator = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getDiscriminator = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setDiscriminator = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool read_only = 3; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string example = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_ = [26,34,35,46]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 3, ""), - title: jspb.Message.getFieldWithDefault(msg, 5, ""), - description: jspb.Message.getFieldWithDefault(msg, 6, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 7, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - example: jspb.Message.getFieldWithDefault(msg, 9, ""), - multipleOf: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0), - maximum: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0), - exclusiveMaximum: jspb.Message.getBooleanFieldWithDefault(msg, 12, false), - minimum: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), - exclusiveMinimum: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - maxLength: jspb.Message.getFieldWithDefault(msg, 15, 0), - minLength: jspb.Message.getFieldWithDefault(msg, 16, 0), - pattern: jspb.Message.getFieldWithDefault(msg, 17, ""), - maxItems: jspb.Message.getFieldWithDefault(msg, 20, 0), - minItems: jspb.Message.getFieldWithDefault(msg, 21, 0), - uniqueItems: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), - maxProperties: jspb.Message.getFieldWithDefault(msg, 24, 0), - minProperties: jspb.Message.getFieldWithDefault(msg, 25, 0), - requiredList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, - arrayList: (f = jspb.Message.getRepeatedField(msg, 34)) == null ? undefined : f, - typeList: (f = jspb.Message.getRepeatedField(msg, 35)) == null ? undefined : f, - format: jspb.Message.getFieldWithDefault(msg, 36, ""), - enumList: (f = jspb.Message.getRepeatedField(msg, 46)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - case 10: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMultipleOf(value); - break; - case 11: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMaximum(value); - break; - case 12: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMaximum(value); - break; - case 13: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMinimum(value); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMinimum(value); - break; - case 15: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxLength(value); - break; - case 16: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinLength(value); - break; - case 17: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - case 20: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxItems(value); - break; - case 21: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinItems(value); - break; - case 22: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUniqueItems(value); - break; - case 24: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxProperties(value); - break; - case 25: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinProperties(value); - break; - case 26: - var value = /** @type {string} */ (reader.readString()); - msg.addRequired(value); - break; - case 34: - var value = /** @type {string} */ (reader.readString()); - msg.addArray(value); - break; - case 35: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addType(values[i]); - } - break; - case 36: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 46: - var value = /** @type {string} */ (reader.readString()); - msg.addEnum(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getMultipleOf(); - if (f !== 0.0) { - writer.writeDouble( - 10, - f - ); - } - f = message.getMaximum(); - if (f !== 0.0) { - writer.writeDouble( - 11, - f - ); - } - f = message.getExclusiveMaximum(); - if (f) { - writer.writeBool( - 12, - f - ); - } - f = message.getMinimum(); - if (f !== 0.0) { - writer.writeDouble( - 13, - f - ); - } - f = message.getExclusiveMinimum(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getMaxLength(); - if (f !== 0) { - writer.writeUint64( - 15, - f - ); - } - f = message.getMinLength(); - if (f !== 0) { - writer.writeUint64( - 16, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 17, - f - ); - } - f = message.getMaxItems(); - if (f !== 0) { - writer.writeUint64( - 20, - f - ); - } - f = message.getMinItems(); - if (f !== 0) { - writer.writeUint64( - 21, - f - ); - } - f = message.getUniqueItems(); - if (f) { - writer.writeBool( - 22, - f - ); - } - f = message.getMaxProperties(); - if (f !== 0) { - writer.writeUint64( - 24, - f - ); - } - f = message.getMinProperties(); - if (f !== 0) { - writer.writeUint64( - 25, - f - ); - } - f = message.getRequiredList(); - if (f.length > 0) { - writer.writeRepeatedString( - 26, - f - ); - } - f = message.getArrayList(); - if (f.length > 0) { - writer.writeRepeatedString( - 34, - f - ); - } - f = message.getTypeList(); - if (f.length > 0) { - writer.writePackedEnum( - 35, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 36, - f - ); - } - f = message.getEnumList(); - if (f.length > 0) { - writer.writeRepeatedString( - 46, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes = { - UNKNOWN: 0, - ARRAY: 1, - BOOLEAN: 2, - INTEGER: 3, - NULL: 4, - NUMBER: 5, - OBJECT: 6, - STRING: 7 -}; - -/** - * optional string ref = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string title = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string description = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string default = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional bool read_only = 8; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - -/** - * optional string example = 9; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional double multiple_of = 10; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMultipleOf = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMultipleOf = function(value) { - return jspb.Message.setProto3FloatField(this, 10, value); -}; - - -/** - * optional double maximum = 11; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaximum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaximum = function(value) { - return jspb.Message.setProto3FloatField(this, 11, value); -}; - - -/** - * optional bool exclusive_maximum = 12; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMaximum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMaximum = function(value) { - return jspb.Message.setProto3BooleanField(this, 12, value); -}; - - -/** - * optional double minimum = 13; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinimum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinimum = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); -}; - - -/** - * optional bool exclusive_minimum = 14; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMinimum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMinimum = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * optional uint64 max_length = 15; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxLength = function(value) { - return jspb.Message.setProto3IntField(this, 15, value); -}; - - -/** - * optional uint64 min_length = 16; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinLength = function(value) { - return jspb.Message.setProto3IntField(this, 16, value); -}; - - -/** - * optional string pattern = 17; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 17, value); -}; - - -/** - * optional uint64 max_items = 20; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxItems = function(value) { - return jspb.Message.setProto3IntField(this, 20, value); -}; - - -/** - * optional uint64 min_items = 21; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinItems = function(value) { - return jspb.Message.setProto3IntField(this, 21, value); -}; - - -/** - * optional bool unique_items = 22; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getUniqueItems = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setUniqueItems = function(value) { - return jspb.Message.setProto3BooleanField(this, 22, value); -}; - - -/** - * optional uint64 max_properties = 24; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxProperties = function(value) { - return jspb.Message.setProto3IntField(this, 24, value); -}; - - -/** - * optional uint64 min_properties = 25; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinProperties = function(value) { - return jspb.Message.setProto3IntField(this, 25, value); -}; - - -/** - * repeated string required = 26; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRequiredList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 26)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRequiredList = function(value) { - return jspb.Message.setField(this, 26, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addRequired = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 26, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearRequiredList = function() { - return this.setRequiredList([]); -}; - - -/** - * repeated string array = 34; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getArrayList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 34)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setArrayList = function(value) { - return jspb.Message.setField(this, 34, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addArray = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 34, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearArrayList = function() { - return this.setArrayList([]); -}; - - -/** - * repeated JSONSchemaSimpleTypes type = 35; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTypeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 35)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTypeList = function(value) { - return jspb.Message.setField(this, 35, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addType = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 35, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearTypeList = function() { - return this.setTypeList([]); -}; - - -/** - * optional string format = 36; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 36, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 36, value); -}; - - -/** - * repeated string enum = 46; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getEnumList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 46)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setEnumList = function(value) { - return jspb.Message.setField(this, 46, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addEnum = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 46, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearEnumList = function() { - return this.setEnumList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Tag; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 3; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 3)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject = function(includeInstance, msg) { - var f, obj = { - securityMap: (f = msg.getSecurityMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter); - } -}; - - -/** - * map security = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.getSecurityMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.clearSecurityMap = function() { - this.getSecurityMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject = function(includeInstance, msg) { - var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_in: jspb.Message.getFieldWithDefault(msg, 4, 0), - flow: jspb.Message.getFieldWithDefault(msg, 5, 0), - authorizationUrl: jspb.Message.getFieldWithDefault(msg, 6, ""), - tokenUrl: jspb.Message.getFieldWithDefault(msg, 7, ""), - scopes: (f = msg.getScopes()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (reader.readEnum()); - msg.setIn(value); - break; - case 5: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (reader.readEnum()); - msg.setFlow(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthorizationUrl(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setTokenUrl(value); - break; - case 8: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader); - msg.setScopes(value); - break; - case 9: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIn(); - if (f !== 0.0) { - writer.writeEnum( - 4, - f - ); - } - f = message.getFlow(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } - f = message.getAuthorizationUrl(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getTokenUrl(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getScopes(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type = { - TYPE_INVALID: 0, - TYPE_BASIC: 1, - TYPE_API_KEY: 2, - TYPE_OAUTH2: 3 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In = { - IN_INVALID: 0, - IN_QUERY: 1, - IN_HEADER: 2 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow = { - FLOW_INVALID: 0, - FLOW_IMPLICIT: 1, - FLOW_PASSWORD: 2, - FLOW_APPLICATION: 3, - FLOW_ACCESS_CODE: 4 -}; - -/** - * optional Type type = 1; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getType = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional In in = 4; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getIn = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setIn = function(value) { - return jspb.Message.setProto3EnumField(this, 4, value); -}; - - -/** - * optional Flow flow = 5; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getFlow = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setFlow = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); -}; - - -/** - * optional string authorization_url = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getAuthorizationUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setAuthorizationUrl = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string token_url = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getTokenUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setTokenUrl = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional Scopes scopes = 8; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getScopes = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, 8)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setScopes = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearScopes = function() { - return this.setScopes(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.hasScopes = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * map extensions = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject = function(includeInstance, msg) { - var f, obj = { - securityRequirementMap: (f = msg.getSecurityRequirementMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityRequirementMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityRequirementMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject = function(includeInstance, msg) { - var f, obj = { - scopeList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addScope(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } -}; - - -/** - * repeated string scope = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.getScopeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.setScopeList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.addScope = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.clearScopeList = function() { - return this.setScopeList([]); -}; - - -/** - * map security_requirement = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.getSecurityRequirementMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.clearSecurityRequirementMap = function() { - this.getSecurityRequirementMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject = function(includeInstance, msg) { - var f, obj = { - scopeMap: (f = msg.getScopeMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getScopeMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map scope = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.getScopeMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.clearScopeMap = function() { - this.getScopeMap().clear(); - return this;}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme = { - UNKNOWN: 0, - HTTP: 1, - HTTPS: 2, - WS: 3, - WSS: 4 -}; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/agents/src/service/runner.ts b/mods/agents/src/service/runner.ts deleted file mode 100644 index e229c70a2..000000000 --- a/mods/agents/src/service/runner.ts +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env node -import { Tracer as T } from "@fonoster/common"; -T.init("agents-service"); - -import AgentsServer from "./agents"; -import { AgentsService } from "./protos/agents_grpc_pb"; -import { AuthMiddleware, limiterMiddleware } from "@fonoster/auth"; -import { getSalt } from "@fonoster/certs"; -import { runServices } from "@fonoster/common"; - -const services = [ - { - name: "agents", - version: "v1beta1", - service: AgentsService, - server: new AgentsServer() - } -]; - -const middlewares = [ - { - name: "authenticator", - middlewareObj: new AuthMiddleware(getSalt()).middleware - }, - { - name: "limiter", - middlewareObj: limiterMiddleware - } -]; - -runServices(services, middlewares); diff --git a/mods/agents/test/agents.unit.test.ts b/mods/agents/test/agents.unit.test.ts deleted file mode 100644 index 99dda3756..000000000 --- a/mods/agents/test/agents.unit.test.ts +++ /dev/null @@ -1,176 +0,0 @@ -/* import updateBucketPolicy from '@fonoster/core/dist/common/fsutils' -import Storage from '../src/storage' -import chai from 'chai' -import sinon from 'sinon' -import sinonChai from 'sinon-chai' -import chaiAsPromised from 'chai-as-promised' -import { join } from 'path' - -const expect = chai.expect -chai.use(sinonChai) -chai.use(chaiAsPromised) -const sandbox = sinon.createSandbox() - -if (process.env.NODE_ENV === 'dev') { - require('dotenv').config({ path: join(__dirname, '..', '..', '.env') }) -} - -describe('Agents Service', () => { - let agents - let agentRef - - before(() => { - agents = new Agents({ - endpoint: `${process.env.APISERVER_ENDPOINT}` - }) - }) - - context('agent decoder', () => { - const decoder = require('../dist/common/decoders/agent_decoder') - it('should create an agent object from a json object', () => { - const jsonObj = { - metadata: { - ref: '001', - name: 'Peter', - createdOn: 'DATE', - modifiedOn: 'DATE' - }, - spec: { - credentials: { - username: 'peter', - secret: 'secret' - }, - domains: ['sip.local'] - } - } - const agent = decoder(jsonObj) - expect(agent.getRef()).to.be.equal(jsonObj.metadata.ref) - expect(agent.getName()).to.be.equal(jsonObj.metadata.name) - expect(agent.getCreateTime()).to.be.equal(jsonObj.metadata.createdOn) - expect(agent.getUpdateTime()).to.be.equal(jsonObj.metadata.modifiedOn) - expect(agent.getUsername()).to.be.equal(jsonObj.spec.credentials.username) - expect(agent.getSecret()).to.be.equal(jsonObj.spec.credentials.secret) - expect(agent.getDomainsList()) - .to.be.a('array') - .lengthOf(1) - }) - }) - - // The backend(routr) is failing at this - it.skip('Create agent missing username', done => { - agents - .createAgent({ - name: 'John Doe', - secret: '1234', - domains: ['sip2.local'] - }) - .then(r => done('not good')) - .catch(err => { - console.log(err) - assert.ok(err.message.includes('FAILED_PRECONDITION')) - done() - }) - }) - - it.skip('Create agent missing domains', done => { - agents - .createAgent({ - name: 'John Doe', - username: 'john', - secret: '1234' - }) - .then(r => done('not good')) - .catch(err => { - assert.ok(err.message.includes('FAILED_PRECONDITION')) - done() - }) - }) - - it.skip('Create agent', done => { - agents - .createAgent({ - name: 'John Doe', - username: 'john', - secret: '1234', - domains: ['sip2.local'] - }) - .then(agent => { - agentRef = agent.getRef() - assert.ok(agent.getUsername() === 'john') - done() - }) - .catch(e => { - done(e) - }) - }) - - // This is not wokring either - it.skip('Agent already exist', done => { - agents - .createAgent({ - name: 'John Doe', - username: 'john', - secret: '1234', - domains: ['sip2.local'] - }) - .then(r => done('not good')) - .catch(err => { - assert.ok(err.message.includes('FAILED_PRECONDITION')) - done() - }) - }) - - it.skip('List agents', done => { - agents - .listAgents({ pageSize: 10, pageToken: '0', view: 0 }) - .then(result => { - assert.ok(result.getAgentsList().length > 0) - done() - }) - .catch(err => done(err)) - }) - - it.skip('Get agent by reference', done => { - agents - .getAgent(agentRef) - .then(agent => { - assert.ok(agent.getRef() === agentRef) - done() - }) - .catch(err => done(err)) - }) - - it.skip('Update agent', done => { - const agent = { - ref: agentRef, - name: 'John Doe', - secret: '1234' - } - - agents - .updateAgent(agent) - .then(agentFromDB => { - assert.ok(agent.ref === agentFromDB.getRef()) - done() - }) - .catch(err => done(err)) - }) - - it.skip('Delete agent', done => { - agents - .deleteAgent(agentRef) - .then(() => done()) - .catch(err => done(err)) - }) - - it.skip('Agent reference does not exist', done => { - agents - .deleteAgent('1234') - .then(() => done('not good')) - .catch(err => { - assert.ok(err.message.includes('NOT_FOUND')) - done() - }) - }) -}) -*/ diff --git a/mods/agents/tsconfig.json b/mods/agents/tsconfig.json deleted file mode 100644 index 0fddb065f..000000000 --- a/mods/agents/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../common" }, - { "path": "../core" }, - { "path": "../logger" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/apiserver/.dockerignore b/mods/apiserver/.dockerignore new file mode 100644 index 000000000..03d5ef051 --- /dev/null +++ b/mods/apiserver/.dockerignore @@ -0,0 +1,9 @@ +# Ignore everything +* + +# But not these files and directories (keep them): +!migrations/ +!dist/ +!schema.prisma +!package.json +!package-lock.json \ No newline at end of file diff --git a/mods/agents/.lerna-changed-buster-192 b/mods/apiserver/.lerna-changed-buster-5577 similarity index 100% rename from mods/agents/.lerna-changed-buster-192 rename to mods/apiserver/.lerna-changed-buster-5577 diff --git a/mods/apiserver/.npmignore b/mods/apiserver/.npmignore new file mode 100644 index 000000000..51256b514 --- /dev/null +++ b/mods/apiserver/.npmignore @@ -0,0 +1,6 @@ +.nyc_output +coverage +src +test +*.log +.ts \ No newline at end of file diff --git a/mods/apiserver/Dockerfile b/mods/apiserver/Dockerfile new file mode 100644 index 000000000..4dd654ff5 --- /dev/null +++ b/mods/apiserver/Dockerfile @@ -0,0 +1,58 @@ +## +# Build stage +## +FROM node:20-alpine3.19 AS builder +LABEL team="Fonoster Team " + +WORKDIR /work +COPY . . + +ENV DOCKERIZE_VERSION=v0.7.0 + +RUN apk add --no-cache --update git \ + && npm install \ + && npm run build \ + && cd mods/apiserver \ + && npm pack \ + && npm install -g $(ls *.tgz) \ + && cp schema.prisma /usr/local/lib/node_modules/@fonoster/apiserver/ \ + && npx prisma generate --schema /usr/local/lib/node_modules/@fonoster/apiserver/schema.prisma \ + && cd /work \ + && npx prisma generate --schema mods/identity/schema.prisma \ + && rm -rf /usr/local/lib/node_modules/@fonoster/apiserver/node_modules/@fonoster/identity/dist/generated \ + && mv mods/identity/src/generated /usr/local/lib/node_modules/@fonoster/apiserver/node_modules/@fonoster/identity/dist \ + && wget https://github.com/jwilder/dockerize/releases/download/"$DOCKERIZE_VERSION"/dockerize-alpine-linux-amd64-"$DOCKERIZE_VERSION".tar.gz \ + && tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-"$DOCKERIZE_VERSION".tar.gz \ + && rm -rf dockerize-alpine-linux-amd64-"$DOCKERIZE_VERSION".tar.gz $(ls *.tgz) + +## +# Run stage +## +FROM node:20-alpine3.19 + +RUN addgroup -g 1001 appuser && adduser -u 1001 -G appuser -D appuser + +WORKDIR /service + +COPY --from=builder --chown=appuser:appuser /usr/local/lib/node_modules/@fonoster/apiserver /usr/local/lib/node_modules/@fonoster/apiserver +COPY --from=builder --chown=appuser:appuser /usr/local/bin/dockerize /usr/local/bin/dockerize +COPY --from=builder --chown=appuser:appuser /work/mods/apiserver/migrations ./core/migrations +COPY --from=builder --chown=appuser:appuser /work/mods/apiserver/schema.prisma ./core/schema.prisma +COPY --from=builder --chown=appuser:appuser /work/mods/identity/migrations ./identity/migrations +COPY --from=builder --chown=appuser:appuser /work/mods/identity/schema.prisma ./identity/schema.prisma + +RUN npm install -g prisma@6.1.0 npm@latest + +USER appuser + +# Extract database host and port from APISERVER_DATABASE_URL environment variable +CMD DB_HOST=$(echo $APISERVER_DATABASE_URL | sed -n 's/.*@\([^:/]*\)[:/].*/\1/p') && \ + DB_PORT=$(echo $APISERVER_DATABASE_URL | sed -n 's/.*:\([0-9]*\)\/.*/\1/p') && \ + if [ -z "$DB_PORT" ]; then DB_PORT=5432; fi && \ + dockerize -wait tcp://${DB_HOST}:${DB_PORT} -timeout 30s && \ + cd /service/core && \ + npx prisma migrate deploy && \ + cd /service/identity && \ + npx prisma migrate deploy && \ + node /usr/local/lib/node_modules/@fonoster/apiserver/dist/core/seed.js && \ + node /usr/local/lib/node_modules/@fonoster/apiserver/dist/index.js \ No newline at end of file diff --git a/mods/apiserver/README.md b/mods/apiserver/README.md new file mode 100644 index 000000000..7669fdd1a --- /dev/null +++ b/mods/apiserver/README.md @@ -0,0 +1,3 @@ +[![Discord](https://img.shields.io/discord/1016419835455996076?color=5865F2&label=Discord&logo=discord&logoColor=white)](https://discord.gg/4QWgSz4hTC) ![GitHub](https://img.shields.io/github/license/fonoster/fonoster?color=%2347b96d) ![Twitter Follow](https://img.shields.io/twitter/follow/fonoster?style=social) + +This module is part of the [Fonoster](https://fonoster.com) open-source. By itself, it does not do much. It is intended to be used as a dependency for other modules. For more information about the project, please visit [https://github.com/fonoster/fonoster](https://github.com/fonoster/fonoster). \ No newline at end of file diff --git a/mods/apiserver/migrations/20241017020041_init/migration.sql b/mods/apiserver/migrations/20241017020041_init/migration.sql new file mode 100644 index 000000000..55a509321 --- /dev/null +++ b/mods/apiserver/migrations/20241017020041_init/migration.sql @@ -0,0 +1,128 @@ +-- CreateEnum +CREATE TYPE "application_types" AS ENUM ('EXTERNAL'); + +-- CreateEnum +CREATE TYPE "product_types" AS ENUM ('TTS', 'STT', 'ASSISTANT'); + +-- CreateEnum +CREATE TYPE "product_vendors" AS ENUM ('GOOGLE', 'MICROSOFT', 'AMAZON', 'DEEPGRAM', 'IBM', 'RASA', 'OPENAI', 'GROQ', 'ELEVEN_LABS', 'GENERIC'); + +-- CreateTable +CREATE TABLE "applications" ( + "ref" TEXT NOT NULL, + "access_key_id" TEXT NOT NULL, + "name" VARCHAR(255) NOT NULL, + "type" "application_types" NOT NULL, + "endpoint" VARCHAR(255) NOT NULL, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "applications_pkey" PRIMARY KEY ("ref") +); + +-- CreateTable +CREATE TABLE "tts_services" ( + "ref" TEXT NOT NULL, + "config" JSONB NOT NULL, + "application_ref" TEXT NOT NULL, + "product_ref" TEXT NOT NULL, + + CONSTRAINT "tts_services_pkey" PRIMARY KEY ("ref") +); + +-- CreateTable +CREATE TABLE "stt_services" ( + "ref" TEXT NOT NULL, + "config" JSONB NOT NULL, + "application_ref" TEXT NOT NULL, + "product_ref" TEXT NOT NULL, + + CONSTRAINT "stt_services_pkey" PRIMARY KEY ("ref") +); + +-- CreateTable +CREATE TABLE "intelligence_services" ( + "ref" TEXT NOT NULL, + "config" JSONB NOT NULL, + "credentials_hash" TEXT NOT NULL, + "application_ref" TEXT NOT NULL, + "product_ref" TEXT NOT NULL, + + CONSTRAINT "intelligence_services_pkey" PRIMARY KEY ("ref") +); + +-- CreateTable +CREATE TABLE "products" ( + "ref" TEXT NOT NULL, + "name" TEXT NOT NULL, + "vendor" "product_vendors" NOT NULL, + "type" "product_types" NOT NULL, + + CONSTRAINT "products_pkey" PRIMARY KEY ("ref") +); + +-- CreateTable +CREATE TABLE "secrets" ( + "ref" TEXT NOT NULL, + "access_key_id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "secret_hash" TEXT NOT NULL, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "secrets_pkey" PRIMARY KEY ("ref") +); + +-- CreateIndex +CREATE INDEX "applications_access_key_id_idx" ON "applications" USING HASH ("access_key_id"); + +-- CreateIndex +CREATE UNIQUE INDEX "tts_services_application_ref_key" ON "tts_services"("application_ref"); + +-- CreateIndex +CREATE INDEX "tts_services_application_ref_idx" ON "tts_services" USING HASH ("application_ref"); + +-- CreateIndex +CREATE INDEX "tts_services_product_ref_idx" ON "tts_services" USING HASH ("product_ref"); + +-- CreateIndex +CREATE UNIQUE INDEX "stt_services_application_ref_key" ON "stt_services"("application_ref"); + +-- CreateIndex +CREATE INDEX "stt_services_application_ref_idx" ON "stt_services" USING HASH ("application_ref"); + +-- CreateIndex +CREATE INDEX "stt_services_product_ref_idx" ON "stt_services" USING HASH ("product_ref"); + +-- CreateIndex +CREATE UNIQUE INDEX "intelligence_services_application_ref_key" ON "intelligence_services"("application_ref"); + +-- CreateIndex +CREATE INDEX "intelligence_services_application_ref_idx" ON "intelligence_services" USING HASH ("application_ref"); + +-- CreateIndex +CREATE INDEX "intelligence_services_product_ref_idx" ON "intelligence_services" USING HASH ("product_ref"); + +-- CreateIndex +CREATE INDEX "secrets_access_key_id_idx" ON "secrets" USING HASH ("access_key_id"); + +-- CreateIndex +CREATE INDEX "secrets_name_idx" ON "secrets" USING HASH ("name"); + +-- AddForeignKey +ALTER TABLE "tts_services" ADD CONSTRAINT "tts_services_application_ref_fkey" FOREIGN KEY ("application_ref") REFERENCES "applications"("ref") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "tts_services" ADD CONSTRAINT "tts_services_product_ref_fkey" FOREIGN KEY ("product_ref") REFERENCES "products"("ref") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "stt_services" ADD CONSTRAINT "stt_services_application_ref_fkey" FOREIGN KEY ("application_ref") REFERENCES "applications"("ref") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "stt_services" ADD CONSTRAINT "stt_services_product_ref_fkey" FOREIGN KEY ("product_ref") REFERENCES "products"("ref") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "intelligence_services" ADD CONSTRAINT "intelligence_services_application_ref_fkey" FOREIGN KEY ("application_ref") REFERENCES "applications"("ref") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "intelligence_services" ADD CONSTRAINT "intelligence_services_product_ref_fkey" FOREIGN KEY ("product_ref") REFERENCES "products"("ref") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/mods/apiserver/migrations/20250103121426_add_autopilot_app_type/migration.sql b/mods/apiserver/migrations/20250103121426_add_autopilot_app_type/migration.sql new file mode 100644 index 000000000..00b0c5f51 --- /dev/null +++ b/mods/apiserver/migrations/20250103121426_add_autopilot_app_type/migration.sql @@ -0,0 +1,25 @@ +/* + Warnings: + + - The values [ASSISTANT] on the enum `product_types` will be removed. If these variants are still used in the database, this will fail. + - Added the required column `credentials_hash` to the `stt_services` table without a default value. This is not possible if the table is not empty. + - Added the required column `credentials_hash` to the `tts_services` table without a default value. This is not possible if the table is not empty. + +*/ +-- AlterEnum +ALTER TYPE "application_types" ADD VALUE 'AUTOPILOT'; + +-- AlterEnum +BEGIN; +CREATE TYPE "product_types_new" AS ENUM ('TTS', 'STT', 'LLM'); +ALTER TABLE "products" ALTER COLUMN "type" TYPE "product_types_new" USING ("type"::text::"product_types_new"); +ALTER TYPE "product_types" RENAME TO "product_types_old"; +ALTER TYPE "product_types_new" RENAME TO "product_types"; +DROP TYPE "product_types_old"; +COMMIT; + +-- AlterTable +ALTER TABLE "stt_services" ADD COLUMN "credentials_hash" TEXT NOT NULL; + +-- AlterTable +ALTER TABLE "tts_services" ADD COLUMN "credentials_hash" TEXT NOT NULL; diff --git a/mods/apiserver/migrations/20250105184832_make_credentials_optional/migration.sql b/mods/apiserver/migrations/20250105184832_make_credentials_optional/migration.sql new file mode 100644 index 000000000..c98cdced6 --- /dev/null +++ b/mods/apiserver/migrations/20250105184832_make_credentials_optional/migration.sql @@ -0,0 +1,8 @@ +-- AlterTable +ALTER TABLE "intelligence_services" ALTER COLUMN "credentials_hash" DROP NOT NULL; + +-- AlterTable +ALTER TABLE "stt_services" ALTER COLUMN "credentials_hash" DROP NOT NULL; + +-- AlterTable +ALTER TABLE "tts_services" ALTER COLUMN "credentials_hash" DROP NOT NULL; diff --git a/mods/apiserver/migrations/migration_lock.toml b/mods/apiserver/migrations/migration_lock.toml new file mode 100644 index 000000000..648c57fd5 --- /dev/null +++ b/mods/apiserver/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (e.g., Git) +provider = "postgresql" \ No newline at end of file diff --git a/mods/apiserver/package.json b/mods/apiserver/package.json new file mode 100644 index 000000000..0b26ed8ce --- /dev/null +++ b/mods/apiserver/package.json @@ -0,0 +1,77 @@ +{ + "name": "@fonoster/apiserver", + "version": "0.9.0", + "description": "APIServer for Fonoster", + "author": "Pedro Sanders ", + "homepage": "https://github.com/fonoster/fonoster#readme", + "license": "MIT", + "main": "dist/index", + "types": "dist/index", + "directories": { + "src": "src", + "test": "test" + }, + "scripts": { + "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", + "build": "tsc -b tsconfig.json", + "clean": "rimraf ./dist node_modules tsconfig.tsbuildinfo" + }, + "bin": { + "fonoster": "./dist/index.js" + }, + "dependencies": { + "@deepgram/sdk": "^3.5.1", + "@fonoster/authz": "^0.9.0", + "@fonoster/common": "^0.9.0", + "@fonoster/identity": "^0.9.0", + "@fonoster/logger": "^0.9.0", + "@fonoster/sipnet": "^0.9.0", + "@fonoster/streams": "^0.9.0", + "@fonoster/types": "^0.9.0", + "@google-cloud/speech": "^6.6.0", + "@google-cloud/text-to-speech": "^5.3.0", + "@grpc/grpc-js": "~1.10.6", + "@influxdata/influxdb-client": "^1.33.2", + "@prisma/client": "^6.1.0", + "@routr/common": "^2.10.0", + "@routr/sdk": "^2.13.1", + "ari-client": "^2.2.0", + "dotenv": "^16.4.5", + "elevenlabs": "^1.50.2", + "express": "^5.0.1", + "grpc-health-check": "^2.0.1", + "jsonwebtoken": "^9.0.2", + "jwt-decode": "^4.0.0", + "microsoft-cognitiveservices-speech-sdk": "^1.36.0", + "nanoid": "^3.3.6", + "nats": "^2.25.0", + "pb-util": "^1.0.3", + "pick-port": "^2.0.1", + "prisma-field-encryption": "^1.5.2", + "uuid": "^11.0.3", + "validator": "^13.12.0", + "wait-port": "^1.1.0", + "zod": "^3.23.8" + }, + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/fonoster/fonoster.git" + }, + "bugs": { + "url": "https://github.com/fonoster/fonoster/issues" + }, + "devDependencies": { + "@types/ari-client": "^2.2.12", + "@types/express": "^5.0.0", + "@types/jsonwebtoken": "^9.0.6", + "@types/uuid": "^10.0.0", + "@types/validator": "^13.12.0" + }, + "gitHead": "d4aa82f7926c0f451d2f580c59ab812c74a7f579" +} diff --git a/mods/apiserver/schema.prisma b/mods/apiserver/schema.prisma new file mode 100644 index 000000000..a7b87ca62 --- /dev/null +++ b/mods/apiserver/schema.prisma @@ -0,0 +1,140 @@ +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "postgresql" + url = env("APISERVER_DATABASE_URL") +} + +model Application { + ref String @id @default(uuid()) + accessKeyId String @map("access_key_id") + name String @db.VarChar(255) + type ApplicationType + endpoint String @db.VarChar(255) + createdAt DateTime @default(now()) @map("created_at") + updatedAt DateTime @default(now()) @map("updated_at") + + // Relations + textToSpeech TextToSpeech? + speechToText SpeechToText? + intelligence Intelligence? + + // Indexes and maps + @@index([accessKeyId], type: Hash) + @@map("applications") +} + +model TextToSpeech { + ref String @id @default(uuid()) + config Json + credentials String? @map("credentials_hash") /// @encrypted + + // Relations + application Application @relation(fields: [applicationRef], references: [ref], onDelete: Cascade) + applicationRef String @unique @map("application_ref") + product Product @relation(fields: [productRef], references: [ref], onDelete: Cascade) + productRef String @map("product_ref") + + // Indexes and maps + @@index([applicationRef], type: Hash) + @@index([productRef], type: Hash) + @@map("tts_services") +} + +model SpeechToText { + ref String @id @default(uuid()) + config Json + credentials String? @map("credentials_hash") /// @encrypted + + // Relations + application Application @relation(fields: [applicationRef], references: [ref], onDelete: Cascade) + applicationRef String @unique @map("application_ref") + product Product @relation(fields: [productRef], references: [ref], onDelete: Cascade) + productRef String @map("product_ref") + + // Indexes and maps + @@index([applicationRef], type: Hash) + @@index([productRef], type: Hash) + @@map("stt_services") +} + +model Intelligence { + ref String @id @default(uuid()) + config Json + credentials String? @map("credentials_hash") /// @encrypted + + // Relations + application Application @relation(fields: [applicationRef], references: [ref], onDelete: Cascade) + applicationRef String @unique @map("application_ref") + Product Product @relation(fields: [productRef], references: [ref], onDelete: Cascade) + productRef String @map("product_ref") + + // Indexes and maps + @@index([applicationRef], type: Hash) + @@index([productRef], type: Hash) + @@map("intelligence_services") +} + +model Product { + ref String @id + name String + vendor ProductVendor + type ProductType + + // Relations + speechToText SpeechToText[] + sextToSpeech TextToSpeech[] + intelligence Intelligence[] + + // Indexes and maps + @@map("products") +} + +model Secret { + ref String @id @default(uuid()) + accessKeyId String @map("access_key_id") + name String + secret String @map("secret_hash") /// @encrypted + createdAt DateTime @default(now()) @map("created_at") + updatedAt DateTime @default(now()) @map("updated_at") + + // Indexes and maps + @@index([accessKeyId], type: Hash) + @@index([name], type: Hash) + @@map("secrets") +} + +enum ApplicationType { + EXTERNAL + AUTOPILOT + + // Maps + @@map("application_types") +} + +enum ProductType { + TTS + STT + LLM + + // Maps + @@map("product_types") +} + +enum ProductVendor { + GOOGLE + MICROSOFT + AMAZON + DEEPGRAM + IBM + RASA + OPENAI + GROQ + ELEVEN_LABS + GENERIC + + // Maps + @@map("product_vendors") +} diff --git a/mods/apiserver/src/applications/buildService.ts b/mods/apiserver/src/applications/buildService.ts new file mode 100644 index 000000000..e4b30b1e1 --- /dev/null +++ b/mods/apiserver/src/applications/buildService.ts @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createCreateApplication } from "./createCreateApplication"; +import { createDeleteApplication } from "./createDeleteApplication"; +import { createGetApplication } from "./createGetApplication"; +import { createListApplications } from "./createListApplications"; +import { createUpdateApplication } from "./createUpdateApplication"; +import { Prisma } from "../core/db"; + +function buildService(prisma: Prisma) { + return { + definition: { + serviceName: "Applications", + pckg: "applications", + version: "v1beta2", + proto: "applications.proto" + }, + handlers: { + createApplication: createCreateApplication(prisma), + getApplication: createGetApplication(prisma), + listApplications: createListApplications(prisma), + deleteApplication: createDeleteApplication(prisma), + updateApplication: createUpdateApplication(prisma) + } + }; +} + +export { buildService }; diff --git a/mods/apiserver/src/applications/createCreateApplication.ts b/mods/apiserver/src/applications/createCreateApplication.ts new file mode 100644 index 000000000..264ffacbf --- /dev/null +++ b/mods/apiserver/src/applications/createCreateApplication.ts @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + AUTOPILOT_SPECIAL_LOCAL_ADDRESS, + getAccessKeyIdFromCall, + GrpcErrorMessage, + withErrorHandling +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject, CreateApplicationRequest } from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { convertToApplicationData } from "./utils/convertToApplicationData"; +import { validOrThrow } from "./validation/validOrThrow"; +import { Prisma } from "../core/db"; +import { ApplicationType } from "@prisma/client"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function createCreateApplication(prisma: Prisma) { + const createApplication = async ( + call: { request: CreateApplicationRequest }, + callback: (error: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { request } = call; + const { type } = request; + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + logger.verbose("call to createApplication", { + accessKeyId, + type + }); + + if (type === ApplicationType.AUTOPILOT && !request.endpoint) { + logger.verbose("setting default endpoint for autopilot application", { + autopilotEndpoint: AUTOPILOT_SPECIAL_LOCAL_ADDRESS + }); + request.endpoint = AUTOPILOT_SPECIAL_LOCAL_ADDRESS; + } + + validOrThrow(request); + + const result = await prisma.application.create({ + data: { + ...convertToApplicationData(request), + accessKeyId + } + }); + + callback(null, { ref: result.ref }); + }; + + return withErrorHandling(createApplication); +} + +export { createCreateApplication }; diff --git a/mods/apiserver/src/applications/createDeleteApplication.ts b/mods/apiserver/src/applications/createDeleteApplication.ts new file mode 100644 index 000000000..292ac5a24 --- /dev/null +++ b/mods/apiserver/src/applications/createDeleteApplication.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { withAccess } from "@fonoster/identity"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject } from "@fonoster/types"; +import { createGetFnUtil } from "./createGetFnUtil"; +import { Prisma } from "../core/db"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function createDeleteApplication(prisma: Prisma) { + const getFn = createGetFnUtil(prisma); + + const deleteApplication = async (call: { + request: BaseApiObject; + }): Promise => { + const { ref } = call.request; + + logger.verbose("call to deleteApplication", { ref }); + + await prisma.application.delete({ where: { ref } }); + + return { ref }; + }; + + return withErrorHandlingAndValidation( + withAccess(deleteApplication, (ref: string) => getFn(ref)), + V.emptySchema + ); +} + +export { createDeleteApplication }; diff --git a/mods/apiserver/src/applications/createGetApplication.ts b/mods/apiserver/src/applications/createGetApplication.ts new file mode 100644 index 000000000..2a753b8c1 --- /dev/null +++ b/mods/apiserver/src/applications/createGetApplication.ts @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Validators as V } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { Application, BaseApiObject } from "@fonoster/types"; +import { createGetFnUtil } from "./createGetFnUtil"; +import { applicationWithEncodedStruct } from "./utils/applicationWithEncodedStruct"; +import { Prisma } from "../core/db"; +import { withErrorHandlingAndValidationAndAccess } from "../utils/withErrorHandlingAndValidationAndAccess"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function createGetApplication(prisma: Prisma) { + const getFn = createGetFnUtil(prisma); + + const getApplication = async (call: { + request: BaseApiObject; + }): Promise => { + const { ref } = call.request; + + logger.verbose("call to getApplication", { ref }); + + const result = await getFn(ref); + + return result ? applicationWithEncodedStruct(result) : null; + }; + + return withErrorHandlingAndValidationAndAccess( + getApplication, + (ref: string) => getFn(ref), + V.emptySchema + ); +} + +export { createGetApplication }; diff --git a/mods/apiserver/src/applications/createGetFnUtil.ts b/mods/apiserver/src/applications/createGetFnUtil.ts new file mode 100644 index 000000000..d0537deb6 --- /dev/null +++ b/mods/apiserver/src/applications/createGetFnUtil.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { badRequestError } from "../core/badRequestError"; +import { Prisma } from "../core/db"; +import { notFoundError } from "../core/notFoundError"; + +function createGetFnUtil(prisma: Prisma) { + return async (ref: string) => { + if (!ref) { + throw badRequestError("The reference to the resource is required"); + } + + const response = await prisma.application.findUnique({ + where: { ref }, + include: { + textToSpeech: true, + speechToText: true, + intelligence: true + } + }); + + if (!response) { + throw notFoundError("Application not found"); + } + + return { + // NOTE: Adding extended to match the signature of withAccess + ...response, + extended: { + accessKeyId: response.accessKeyId + } + }; + }; +} + +export { createGetFnUtil }; diff --git a/mods/apiserver/src/applications/createListApplications.ts b/mods/apiserver/src/applications/createListApplications.ts new file mode 100644 index 000000000..f1dcb1017 --- /dev/null +++ b/mods/apiserver/src/applications/createListApplications.ts @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getAccessKeyIdFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { + ListApplicationsRequest, + ListApplicationsResponse +} from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { applicationWithEncodedStruct } from "./utils/applicationWithEncodedStruct"; +import { Prisma } from "../core/db"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function createListApplications(prisma: Prisma) { + const listApplications = async ( + call: { + request: ListApplicationsRequest; + }, + callback: ( + error: GrpcErrorMessage, + response?: ListApplicationsResponse + ) => void + ) => { + const { pageSize, pageToken } = call.request; + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + logger.verbose("call to getApplication", { + accessKeyId, + pageSize, + pageToken + }); + + const result = await prisma.application.findMany({ + where: { accessKeyId }, + include: { + textToSpeech: true, + speechToText: true, + intelligence: true + }, + take: pageSize, + skip: pageToken ? 1 : 0, + cursor: pageToken ? { ref: pageToken } : undefined + }); + + const items = result.map(applicationWithEncodedStruct); + + callback(null, { + items, + nextPageToken: result[result.length - 1]?.ref + }); + }; + + return withErrorHandlingAndValidation(listApplications, V.listRequestSchema); +} + +export { createListApplications }; diff --git a/mods/apiserver/src/applications/createUpdateApplication.ts b/mods/apiserver/src/applications/createUpdateApplication.ts new file mode 100644 index 000000000..90534dd59 --- /dev/null +++ b/mods/apiserver/src/applications/createUpdateApplication.ts @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + AUTOPILOT_SPECIAL_LOCAL_ADDRESS, + getAccessKeyIdFromCall, + withErrorHandling +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { ApplicationType, UpdateApplicationRequest } from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { createGetFnUtil } from "./createGetFnUtil"; +import { convertToApplicationData } from "./utils/convertToApplicationData"; +import { validOrThrow } from "./validation/validOrThrow"; +import { Prisma } from "../core/db"; +import { withAccess } from "@fonoster/identity"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function createUpdateApplication(prisma: Prisma) { + const getFn = createGetFnUtil(prisma); + + const updateApplication = async (call: { + request: UpdateApplicationRequest; + }) => { + const { request } = call; + const { type, ref: applicationRef } = request; + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + if (type === ApplicationType.AUTOPILOT && !request.endpoint) { + logger.verbose("setting default endpoint for autopilot application", { + autopilotEndpoint: AUTOPILOT_SPECIAL_LOCAL_ADDRESS + }); + request.endpoint = AUTOPILOT_SPECIAL_LOCAL_ADDRESS; + } + + validOrThrow(request); + + logger.verbose("call to updateApplication", { + accessKeyId, + type + }); + + await prisma.$transaction([ + prisma.textToSpeech.deleteMany({ + where: { + applicationRef + } + }), + prisma.speechToText.deleteMany({ + where: { + applicationRef + } + }), + prisma.intelligence.deleteMany({ + where: { + applicationRef + } + }), + prisma.application.update({ + where: { + ref: applicationRef, + accessKeyId + }, + data: convertToApplicationData(request) + }) + ]); + + return { ref: applicationRef }; + }; + + return withErrorHandling( + withAccess(updateApplication, (ref: string) => getFn(ref)) + ); +} + +export { createUpdateApplication }; diff --git a/mods/apiserver/src/applications/index.ts b/mods/apiserver/src/applications/index.ts new file mode 100644 index 000000000..0b01dc6c3 --- /dev/null +++ b/mods/apiserver/src/applications/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { buildService as buildApplicationsService } from "./buildService"; diff --git a/mods/apiserver/src/applications/types.ts b/mods/apiserver/src/applications/types.ts new file mode 100644 index 000000000..594c94662 --- /dev/null +++ b/mods/apiserver/src/applications/types.ts @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ApplicationType } from "@prisma/client"; + +// For Prisma schema +type ApplicationData = { + ref?: string; + name: string; + type: ApplicationType; + endpoint: string; + textToSpeech?: { + create: { + productRef: string; + config: Record; + }; + }; + speechToText?: { + create: { + productRef: string; + config: Record; + }; + }; + intelligence?: { + create: { + productRef: string; + credentials: string; + config: Record; + }; + }; +}; + +export { ApplicationData }; diff --git a/mods/apiserver/src/applications/utils/applicationWithEncodedStruct.ts b/mods/apiserver/src/applications/utils/applicationWithEncodedStruct.ts new file mode 100644 index 000000000..164e66681 --- /dev/null +++ b/mods/apiserver/src/applications/utils/applicationWithEncodedStruct.ts @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { datesMapper } from "@fonoster/common"; +import { Application } from "@fonoster/types"; +import { struct } from "pb-util"; + +function applicationWithEncodedStruct(application): Application { + const encodeConfig = (property) => { + return property?.config ? struct.encode(property.config) : null; + }; + + const result = { ...application }; + + if (application.textToSpeech) { + delete application.textToSpeech.credentials; + result.textToSpeech = { + ...application.textToSpeech, + config: encodeConfig(application.textToSpeech) + }; + } + + if (application.speechToText) { + delete application.speechToText.credentials; + result.speechToText = { + ...application.speechToText, + config: encodeConfig(application.speechToText) + }; + } + + if (application.intelligence) { + const intelligenceCopy = application.intelligence; + delete intelligenceCopy.credentials; + + result.intelligence = { + ...intelligenceCopy, + config: encodeConfig(intelligenceCopy) + }; + } + + return datesMapper(result); +} + +export { applicationWithEncodedStruct }; diff --git a/mods/apiserver/src/applications/utils/convertToApplicationData.ts b/mods/apiserver/src/applications/utils/convertToApplicationData.ts new file mode 100644 index 000000000..057fa2847 --- /dev/null +++ b/mods/apiserver/src/applications/utils/convertToApplicationData.ts @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + CreateApplicationRequest, + UpdateApplicationRequest +} from "@fonoster/types"; +import { Application, ApplicationType } from "@prisma/client"; +import { struct } from "pb-util"; +import { ApplicationData } from "../types"; + +function convertToApplicationData( + request: CreateApplicationRequest | UpdateApplicationRequest +): Application { + const type = (request.type as ApplicationType) || ApplicationType.EXTERNAL; + + const result = { + ref: (request as UpdateApplicationRequest).ref, // Only for UpdateApplicationRequest + name: request.name, + type, + endpoint: request.endpoint + } as unknown as ApplicationData; + + const createProperty = (property) => { + return property + ? { + create: { + productRef: property.productRef, + credentials: property.credentials + ? JSON.stringify(struct.decode(property.credentials)) + : undefined, + config: property.config ? struct.decode(property.config) : null + } + } + : undefined; + }; + + if (request.textToSpeech) { + result.textToSpeech = createProperty(request.textToSpeech); + } + + if (request.speechToText) { + result.speechToText = createProperty(request.speechToText); + } + + if (request.intelligence) { + result.intelligence = createProperty(request.intelligence); + } + + return result as Application; +} + +export { convertToApplicationData }; diff --git a/mods/apiserver/src/applications/validation/assistantWithoutApiKeySchema.ts b/mods/apiserver/src/applications/validation/assistantWithoutApiKeySchema.ts new file mode 100644 index 000000000..2f30198e5 --- /dev/null +++ b/mods/apiserver/src/applications/validation/assistantWithoutApiKeySchema.ts @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { assistantSchema } from "@fonoster/common"; +import { z } from "zod"; + +const assistantWithoutApiKeySchema = assistantSchema.extend({ + languageModel: assistantSchema.shape.languageModel.superRefine( + (data, ctx) => { + if ("apiKey" in data) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: "apiKey is not allowed in languageModel", + path: ["apiKey"] + }); + } + } + ) +}); + +export { assistantWithoutApiKeySchema }; diff --git a/mods/apiserver/src/applications/validation/createValidationSchema.ts b/mods/apiserver/src/applications/validation/createValidationSchema.ts new file mode 100644 index 000000000..152b3a64c --- /dev/null +++ b/mods/apiserver/src/applications/validation/createValidationSchema.ts @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { hostOrHostPortSchema } from "@fonoster/common"; +import { ApplicationType } from "@prisma/client"; +import { z } from "zod"; +import { speechValidators } from "./speechValidators"; +import { assistantWithoutApiKeySchema } from "./assistantWithoutApiKeySchema"; + +const MAX_NAME_MESSAGE = "Name must contain at most 255 characters"; + +function createValidationSchema(request: { + applicationType: ApplicationType; + ttsEngineName: string; + sttEngineName: string; +}) { + const { applicationType, ttsEngineName, sttEngineName } = request; + + return z.object({ + name: z.string().max(255, MAX_NAME_MESSAGE), + type: z.nativeEnum(ApplicationType, { + message: "Invalid application type" + }), + endpoint: hostOrHostPortSchema, + textToSpeech: ttsEngineName + ? z.object({ + productRef: z.string(), + config: speechValidators.ttsConfigValidators[ttsEngineName]() + }) + : z.undefined(), + speechToText: sttEngineName + ? z.object({ + productRef: z.string(), + config: speechValidators.sttConfigValidators[sttEngineName]() + }) + : z.undefined(), + intelligence: + applicationType === ApplicationType.AUTOPILOT + ? z + .object({ + productRef: z.string(), + config: assistantWithoutApiKeySchema + }) + .superRefine((data, ctx) => { + const vendor = data.productRef.split(".")[1]; + const languageModelProvider = data.config.languageModel.provider; + + if (vendor !== languageModelProvider) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: `intelligence.productRef (${data.productRef}) must match languageModel.provider (${languageModelProvider}).`, + path: ["productRef"] + }); + } + }) + : z.undefined() + }); +} + +export { createValidationSchema }; diff --git a/mods/apiserver/src/applications/validation/prepareForValidation.ts b/mods/apiserver/src/applications/validation/prepareForValidation.ts new file mode 100644 index 000000000..f47a02550 --- /dev/null +++ b/mods/apiserver/src/applications/validation/prepareForValidation.ts @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + Application, + CreateApplicationRequest, + UpdateApplicationRequest +} from "@fonoster/types"; +import { ApplicationType } from "@prisma/client"; +import { struct } from "pb-util"; + +function prepareForValidation( + request: CreateApplicationRequest | UpdateApplicationRequest +) { + const type = (request.type as ApplicationType) || ApplicationType.EXTERNAL; + + const result = { + ref: (request as UpdateApplicationRequest).ref, // Only for UpdateApplicationRequest + name: request.name, + type, + endpoint: request.endpoint + } as Application; + + const createProperty = (property) => { + return property + ? { + productRef: property.productRef, + credentials: property.credentials + ? struct.decode(property.credentials) + : undefined, + config: property.config ? struct.decode(property.config) : null + } + : undefined; + }; + + if (request.textToSpeech) { + result.textToSpeech = createProperty(request.textToSpeech); + } + + if (request.speechToText) { + result.speechToText = createProperty(request.speechToText); + } + + if (request.intelligence) { + result.intelligence = createProperty(request.intelligence); + } + + return result; +} + +export { prepareForValidation }; diff --git a/mods/apiserver/src/applications/validation/speechValidators.ts b/mods/apiserver/src/applications/validation/speechValidators.ts new file mode 100644 index 000000000..17141c153 --- /dev/null +++ b/mods/apiserver/src/applications/validation/speechValidators.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Deepgram as DeepgramStt } from "../../voice/stt/Deepgram"; +import { Google as GoogleStt } from "../../voice/stt/Google"; +import { Azure as AzureTts } from "../../voice/tts/Azure"; +import { Deepgram as DeepgramTts } from "../../voice/tts/Deepgram"; +import { ElevenLabs as ElevenLabsTts } from "../../voice/tts/ElevenLabs"; +import { Google as GoogleTts } from "../../voice/tts/Google"; + +const speechValidators = { + ttsConfigValidators: { + "tts.google": GoogleTts.getConfigValidationSchema, + "tts.azure": AzureTts.getConfigValidationSchema, + "tts.deepgram": DeepgramTts.getConfigValidationSchema, + "tts.elevenlabs": ElevenLabsTts.getConfigValidationSchema + }, + ttsCredentialsValidators: { + "tts.google": GoogleTts.getCredentialsValidationSchema, + "tts.azure": AzureTts.getCredentialsValidationSchema, + "tts.deepgram": DeepgramTts.getCredentialsValidationSchema, + "tts.elevenlabs": ElevenLabsTts.getCredentialsValidationSchema + }, + sttConfigValidators: { + "stt.google": GoogleStt.getConfigValidationSchema, + "stt.deepgram": DeepgramStt.getConfigValidationSchema + }, + sttCredentialsValidators: { + "stt.google": GoogleStt.getCredentialsValidationSchema, + "stt.deepgram": DeepgramStt.getCredentialsValidationSchema + } +}; + +export { speechValidators }; diff --git a/mods/apiserver/src/applications/validation/validOrThrow.ts b/mods/apiserver/src/applications/validation/validOrThrow.ts new file mode 100644 index 000000000..e68a34305 --- /dev/null +++ b/mods/apiserver/src/applications/validation/validOrThrow.ts @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + CreateApplicationRequest, + UpdateApplicationRequest +} from "@fonoster/types"; +import { createValidationSchema } from "./createValidationSchema"; +import { prepareForValidation } from "./prepareForValidation"; + +function validOrThrow( + request: CreateApplicationRequest | UpdateApplicationRequest +) { + const data = prepareForValidation(request); + + const schema = createValidationSchema({ + applicationType: request.type, + ttsEngineName: request.textToSpeech?.productRef, + sttEngineName: request.speechToText?.productRef + }); + + schema.parse(data); +} + +export { validOrThrow }; diff --git a/mods/apiserver/src/calls/buildService.ts b/mods/apiserver/src/calls/buildService.ts new file mode 100644 index 000000000..2d694cc5d --- /dev/null +++ b/mods/apiserver/src/calls/buildService.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { connect } from "nats"; +import { createCall } from "./createCall"; +import { createCallPublisher } from "./createCallPublisher"; +import { getCall } from "./getCall"; +import { listCalls } from "./listCalls"; +import { createTrackCall } from "./createTrackCall"; +import { InfluxDBClient } from "@fonoster/common"; +import { prisma } from "../core/db"; +import { NATS_URL } from "../envs"; + +async function buildService(influxdb: InfluxDBClient) { + const callPublisher = await createCallPublisher(NATS_URL); + const nc = await connect({ servers: NATS_URL, maxReconnectAttempts: -1 }); + + return { + definition: { + serviceName: "Calls", + pckg: "calls", + version: "v1beta2", + proto: "calls.proto" + }, + handlers: { + createCall: createCall(prisma, callPublisher), + listCalls: listCalls(influxdb), + getCall: getCall(influxdb), + trackCall: createTrackCall(nc) + } + }; +} + +export { buildService }; diff --git a/mods/apiserver/src/calls/createCall.ts b/mods/apiserver/src/calls/createCall.ts new file mode 100644 index 000000000..20e4cc1cb --- /dev/null +++ b/mods/apiserver/src/calls/createCall.ts @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getAccessKeyIdFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject, CreateCallRequest } from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { v4 as uuidv4 } from "uuid"; +import { CallPublisher } from "./types"; +import { Prisma } from "../core/db"; +import { notFoundError } from "../core/notFoundError"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function createCall(prisma: Prisma, publisher: CallPublisher) { + const fn = async ( + call: { + request: CreateCallRequest; + }, + callback: (error?: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { request } = call; + const { from, to, appRef, timeout } = request; + const ref = uuidv4(); + + logger.verbose("call to createCall", { ...request, ref }); + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + const app = await prisma.application.findUnique({ + where: { ref: appRef, accessKeyId } + }); + + if (!app) { + throw notFoundError(`Application with ref ${appRef} not found`); + } + + publisher.publishCall({ + ref, + from, + to, + appRef, + accessKeyId, + timeout: timeout || 60 + }); + + callback(null, { ref }); + }; + + return withErrorHandlingAndValidation(fn, V.createCallRequestSchema); +} + +export { createCall }; diff --git a/mods/apiserver/src/calls/createCallPublisher.ts b/mods/apiserver/src/calls/createCallPublisher.ts new file mode 100644 index 000000000..522145646 --- /dev/null +++ b/mods/apiserver/src/calls/createCallPublisher.ts @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { connect } from "nats"; +import { CreateCallRequest } from "./types"; +import { CALLS_CREATE_SUBJECT } from "../envs"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +async function createCallPublisher(natsUrl: string) { + logger.verbose("connecting to nats", { natsUrl }); + + const nc = await connect({ servers: natsUrl, maxReconnectAttempts: -1 }); + + return { + publishCall: async (request: CreateCallRequest & { ref: string }) => { + logger.verbose("publishing call", { ref: request.ref }); + + nc.publish(CALLS_CREATE_SUBJECT, JSON.stringify(request)); + } + }; +} + +export { createCallPublisher }; diff --git a/mods/apiserver/src/calls/createFetchCalls.ts b/mods/apiserver/src/calls/createFetchCalls.ts new file mode 100644 index 000000000..21cc1e3a4 --- /dev/null +++ b/mods/apiserver/src/calls/createFetchCalls.ts @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { flux } from "@influxdata/influxdb-client"; +import { + CallDetailRecord, + ListCallsRequest, + ListCallsResponse +} from "@fonoster/types"; +import { + InfluxDBClient, + CALL_DETAIL_RECORD_MEASUREMENT, + INFLUXDB_CALLS_BUCKET +} from "@fonoster/common"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function createFetchCalls(influxdb: InfluxDBClient) { + return async ( + accessKeyId: string, + request: ListCallsRequest + ): Promise => { + const { after, before, type, from, to, status, pageSize, pageToken } = + request; + + const accessKeyIdFilter = accessKeyId + ? flux`and r.accessKeyId == "${accessKeyId}"` + : flux``; + const typeFilter = type ? flux`and r.type == "${type}"` : flux``; + const fromFilter = from ? flux`and r.from == "${from}"` : flux``; + const toFilter = to ? flux`and r.to == "${to}"` : flux``; + const statusFilter = status ? flux`and r.status == "${status}"` : flux``; + const pageTokenFilter = pageToken + ? flux`|> filter(fn: (r) => r.startedAtParsed < int(v: ${pageToken}))` + : flux``; + const limit = flux`|> limit(n: ${pageSize || 50})`; + const parsedAfter = after ? new Date(after).getTime() / 1000 : flux`-30d`; + const parsedBefore = before + ? new Date(before).getTime() / 1000 + : new Date().getTime() / 1000; + + const query = flux`from(bucket: "${INFLUXDB_CALLS_BUCKET}") + |> range(start: ${parsedAfter}) + |> pivot(rowKey: ["callId"], columnKey: ["_field"], valueColumn: "_value") + |> map(fn: (r) => ({ + r with + duration: int(v: r.endedAt) - int(v: r.startedAt), + startedAtParsed: int(v: r.startedAt) / 1000, + })) + |> filter(fn: (r) => + r._measurement == "${CALL_DETAIL_RECORD_MEASUREMENT}" + and r.startedAtParsed < ${parsedBefore} + ${accessKeyIdFilter} + ${typeFilter} + ${fromFilter} + ${toFilter} + ${statusFilter}) + |> group() + |> sort(columns: ["startedAtParsed"], desc: true) + ${pageTokenFilter} + ${limit}`; + + logger.verbose("list calls request", { accessKeyId, after, before }); + + const items = (await influxdb.collectRows(query)) as CallDetailRecord[]; + + const nextPageToken = + items.length > 0 ? items[items.length - 1].startedAt : ""; + + return { + nextPageToken: nextPageToken + "", + items + }; + }; +} + +export { createFetchCalls }; diff --git a/mods/apiserver/src/calls/createFetchSingleCall.ts b/mods/apiserver/src/calls/createFetchSingleCall.ts new file mode 100644 index 000000000..b5dd2b77d --- /dev/null +++ b/mods/apiserver/src/calls/createFetchSingleCall.ts @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { flux } from "@influxdata/influxdb-client"; +import { CallDetailRecord } from "@fonoster/types"; +import { + CALL_DETAIL_RECORD_MEASUREMENT, + INFLUXDB_CALLS_BUCKET, + InfluxDBClient +} from "@fonoster/common"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function createFetchSingleCall(influxdb: InfluxDBClient) { + return async ( + accessKeyId: string, + ref: string + ): Promise => { + const query = flux`from(bucket: "${INFLUXDB_CALLS_BUCKET}") + |> range(start: -365d) + |> pivot(rowKey: ["callId"], columnKey: ["_field"], valueColumn: "_value") + |> map(fn: (r) => ({ + r with + duration: int(v: r.endedAt) - int(v: r.startedAt) + })) + |> filter(fn: (r) => r._measurement == "${CALL_DETAIL_RECORD_MEASUREMENT}") + |> filter(fn: (r) => r.ref == ${ref} and r.accessKeyId == "${accessKeyId}") + |> sort(columns: ["_time"], desc: true) + |> limit(n: 1)`; + + logger.verbose("fetch single call request", { accessKeyId, ref }); + + const items = (await influxdb.collectRows(query)) as CallDetailRecord[]; + + return items.length > 0 ? items[0] : null; + }; +} + +export { createFetchSingleCall }; diff --git a/mods/apiserver/src/calls/createTrackCall.ts b/mods/apiserver/src/calls/createTrackCall.ts new file mode 100644 index 000000000..7be5ecf8e --- /dev/null +++ b/mods/apiserver/src/calls/createTrackCall.ts @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + DialStatus, + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { NatsConnection } from "nats"; +import { CallStream, TrackCallResponse } from "./types"; +import { CALLS_TRACK_CALL_SUBJECT } from "../envs"; +import { BaseApiObject } from "@fonoster/types"; + +const FINAL_STATUSES = [ + DialStatus.BUSY, + DialStatus.FAILED, + DialStatus.NOANSWER +]; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function createTrackCall(nc: NatsConnection) { + const trackingCallsMap = new Map(); + const subscription = nc.subscribe(CALLS_TRACK_CALL_SUBJECT); + + subscription.callback = (err, msg) => { + // We can't do much more than log the error + if (err) { + logger.error("call to subscription.callback", { err }); + return; + } + + const { ref, status } = msg?.json() as TrackCallResponse; + + logger.verbose("call to subscription.callback", { ref, status }); + + const stream = trackingCallsMap.get(ref); + + if (!stream) { + // There is not request to track this call + return; + } + + if (FINAL_STATUSES.includes(status)) { + stream.write({ ref, status }); + + setTimeout(() => stream.end(), 500); + + trackingCallsMap.delete(ref); + } else { + stream.write({ ref, status }); + } + }; + + const trackCall = (call: { request: BaseApiObject }) => { + const stream = call as unknown as CallStream; + const { ref } = call.request; + + logger.verbose("call to trackCall", { ref }); + + trackingCallsMap.set(ref, stream); + }; + + return withErrorHandlingAndValidation(trackCall, V.baseApiObjectSchema); +} + +export { createTrackCall }; diff --git a/mods/apiserver/src/calls/getCall.ts b/mods/apiserver/src/calls/getCall.ts new file mode 100644 index 000000000..c4a4cfe68 --- /dev/null +++ b/mods/apiserver/src/calls/getCall.ts @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + InfluxDBClient, + getAccessKeyIdFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { createFetchSingleCall } from "./createFetchSingleCall"; +import { CallDetailRecord } from "@fonoster/types"; +import { notFoundError } from "../core/notFoundError"; +import { GetCallRequest } from "./types"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function getCall(influx: InfluxDBClient) { + const fetchSingleCall = createFetchSingleCall(influx); + + const fn = async ( + call: { + request: GetCallRequest; + }, + callback: (error?: GrpcErrorMessage, response?: CallDetailRecord) => void + ) => { + const { ref } = call.request; + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + logger.verbose("call to getCall", { accessKeyId, ref }); + + const response = await fetchSingleCall(accessKeyId, ref); + + if (!response) { + throw notFoundError(`Call not found: ${ref}`); + } + + callback(null, response); + }; + + return withErrorHandlingAndValidation(fn, V.getCallRequestSchema); +} + +export { getCall }; diff --git a/mods/apiserver/src/calls/index.ts b/mods/apiserver/src/calls/index.ts new file mode 100644 index 000000000..db50017be --- /dev/null +++ b/mods/apiserver/src/calls/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { buildService as buildCallsService } from "./buildService"; diff --git a/mods/apiserver/src/calls/influxdb.ts b/mods/apiserver/src/calls/influxdb.ts new file mode 100644 index 000000000..1afa7bacf --- /dev/null +++ b/mods/apiserver/src/calls/influxdb.ts @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { InfluxDB } from "@influxdata/influxdb-client"; +import { INFLUXDB_ORG, INFLUXDB_TOKEN, INFLUXDB_URL } from "../envs"; + +const client = new InfluxDB({ + url: INFLUXDB_URL, + token: INFLUXDB_TOKEN +}); + +const influxdb = client.getQueryApi(INFLUXDB_ORG); + +export { influxdb }; diff --git a/mods/apiserver/src/calls/listCalls.ts b/mods/apiserver/src/calls/listCalls.ts new file mode 100644 index 000000000..12a564c88 --- /dev/null +++ b/mods/apiserver/src/calls/listCalls.ts @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + InfluxDBClient, + getAccessKeyIdFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { createFetchCalls } from "./createFetchCalls"; +import { ListCallsRequest, ListCallsResponse } from "@fonoster/types"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function listCalls(influx: InfluxDBClient) { + const fetchCalls = createFetchCalls(influx); + + const fn = async ( + call: { + request: ListCallsRequest; + }, + callback: (error?: GrpcErrorMessage, response?: ListCallsResponse) => void + ) => { + const { request } = call; + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + logger.verbose("call to listCalls", { request, accessKeyId }); + + const result = await fetchCalls(accessKeyId, request); + + callback(null, result); + }; + + return withErrorHandlingAndValidation(fn, V.listCallsRequestSchema); +} + +export { listCalls }; diff --git a/mods/apiserver/src/calls/runCallManager.ts b/mods/apiserver/src/calls/runCallManager.ts new file mode 100644 index 000000000..e4582fbbd --- /dev/null +++ b/mods/apiserver/src/calls/runCallManager.ts @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { STASIS_APP_NAME } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import ariClient from "ari-client"; +import { connect } from "nats"; +import { CreateCallRequest } from "./types"; +import { + ASTERISK_SYSTEM_DOMAIN, + ASTERISK_TRUNK, + CALLS_CREATE_SUBJECT, + DEFAULT_NATS_QUEUE_GROUP +} from "../envs"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +type CallManagerConfig = { + natsUrl: string; + ariProxyUrl: string; + ariUsername: string; + ariPassword: string; +}; + +async function createCreateCallSubscriber(config: CallManagerConfig) { + const { natsUrl, ariProxyUrl, ariUsername, ariPassword } = config; + + try { + logger.verbose("connecting to nats", { natsUrl }); + + const nc = await connect({ servers: natsUrl, maxReconnectAttempts: -1 }); + + logger.verbose("subscribing to call create subject", { + subject: CALLS_CREATE_SUBJECT + }); + + const subscription = nc.subscribe(CALLS_CREATE_SUBJECT, { + queue: DEFAULT_NATS_QUEUE_GROUP + }); + + logger.verbose("connecting to ari", { ariProxyUrl }); + + const ariConn = await ariClient.connect( + ariProxyUrl, + ariUsername, + ariPassword + ); + + subscription.callback = async (err, msg) => { + if (err) { + logger.error(err); + } + + const { ref, from, to, appRef, accessKeyId, timeout } = + msg.json() as CreateCallRequest & { + ref: string; + accessKeyId: string; + }; + + logger.verbose("received a new call request", { + ...msg.json() + }); + + await ariConn.channels.originateWithId({ + channelId: ref, + app: STASIS_APP_NAME, + endpoint: `PJSIP/${ASTERISK_TRUNK}/sip:${to}@${ASTERISK_SYSTEM_DOMAIN}`, + timeout, + variables: { + "PJSIP_HEADER(add,X-Call-Ref)": ref, + "PJSIP_HEADER(add,X-Dod-Number)": from, + "PJSIP_HEADER(add,X-Access-Key-Id)": accessKeyId, + "PJSIP_HEADER(add,X-Is-Api-Originated-Type)": "true", + CALL_DIRECTION: "peer-to-pstn", + INGRESS_NUMBER: from, + APP_REF: appRef + } + }); + }; + } catch (e) { + logger.error("error connecting to ari", e); + } +} + +export { createCreateCallSubscriber }; diff --git a/mods/apiserver/src/calls/types.ts b/mods/apiserver/src/calls/types.ts new file mode 100644 index 000000000..b6a08185d --- /dev/null +++ b/mods/apiserver/src/calls/types.ts @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { DialStatus, GrpcErrorMessage } from "@fonoster/common"; +import { CallDetailRecord, CallStatus, CallType } from "@fonoster/types"; + +type ListCallsRequest = { + after?: string; + before?: string; + type?: CallType; + status?: CallStatus; + from?: string; + to?: string; + pageSize?: number; + pageToken?: string; +}; + +type ListCallsResponse = { + nextPageToken?: string; + items: CallDetailRecord[]; +}; + +type GetCallRequest = { + ref: string; +}; + +// If appRef is not provided, we will use the application associated +// with the 'from' number +type CreateCallRequest = { + from: string; + to: string; + appRef?: string; + timeout?: number; +}; + +type CallPublisher = { + publishCall: ( + event: CreateCallRequest & { ref: string; accessKeyId: string } + ) => void; +}; + +type TrackCallResponse = { + ref: string; + status: DialStatus; +}; + +type CallStream = { + write: (data: TrackCallResponse | GrpcErrorMessage) => void; + end: () => void; +}; + +type TrackCallSubscriber = { + events: { + on: (event: string, cb: (data: TrackCallResponse | Error) => void) => void; + }; +}; + +export { + CallPublisher, + CallStream, + CreateCallRequest, + GetCallRequest, + ListCallsRequest, + ListCallsResponse, + TrackCallResponse, + TrackCallSubscriber +}; diff --git a/mods/apiserver/src/core/allowList.ts b/mods/apiserver/src/core/allowList.ts new file mode 100644 index 000000000..47285bb26 --- /dev/null +++ b/mods/apiserver/src/core/allowList.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const allowList = [ + "/grpc.health.v1.Health/Check", + "/fonoster.identity.v1beta2.Identity/CreateUser", + "/fonoster.identity.v1beta2.Identity/CreateWorkspace", + "/fonoster.identity.v1beta2.Identity/ExchangeApiKey", + "/fonoster.identity.v1beta2.Identity/ExchangeCredentials", + "/fonoster.identity.v1beta2.Identity/ExchangeOauth2Code", + "/fonoster.identity.v1beta2.Identity/ExchangeRefreshToken", + "/fonoster.identity.v1beta2.Identity/SendVerificationCode", + "/fonoster.identity.v1beta2.Identity/VerifyCode", + "/fonoster.identity.v1beta2.Identity/GetPublicKey", + "/fonoster.voice.v1beta2.Voice/CreateSession" +]; + +export { allowList }; diff --git a/mods/apiserver/src/core/badRequestError.ts b/mods/apiserver/src/core/badRequestError.ts new file mode 100644 index 000000000..503adc090 --- /dev/null +++ b/mods/apiserver/src/core/badRequestError.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { status } from "@grpc/grpc-js"; + +const badRequestError = (message: string) => ({ + code: status.INVALID_ARGUMENT, + message +}); + +export { badRequestError }; diff --git a/mods/apiserver/src/core/buildWelcomeDemoService.ts b/mods/apiserver/src/core/buildWelcomeDemoService.ts new file mode 100644 index 000000000..d9f928772 --- /dev/null +++ b/mods/apiserver/src/core/buildWelcomeDemoService.ts @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { StreamEvent, VoiceSessionStreamServer } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +const SERVICE_DEFINITION = { + serviceName: "Voice", + pckg: "voice", + version: "v1beta2", + proto: "voice.proto" +} as const; + +function buildWelcomeDemoService() { + return { + definition: SERVICE_DEFINITION, + handlers: { + createSession: (voice: VoiceSessionStreamServer) => { + let sessionRef: string | undefined; + + voice.on( + StreamEvent.DATA, + (params: { + request?: { sessionRef: string; callerNumber: string }; + sayResponse?: unknown; + }) => { + try { + const { request, sayResponse } = params; + + if (request) { + const { callerNumber } = request; + sessionRef = request.sessionRef; + + logger.verbose("welcome demo session started", { + sessionRef, + callerNumber + }); + + voice.write({ + answerRequest: { + sessionRef: request.sessionRef + } + }); + + voice.write({ + sayRequest: { + text: "Welcome to Fonoster! Your system is configured correctly and ready for voice application development. Goodbye!", + sessionRef: request.sessionRef + } + }); + } + + if (sayResponse && sessionRef) { + logger.verbose("hanging up welcome demo session", { + sessionRef + }); + voice.write({ + hangupRequest: { + sessionRef + } + }); + } + } catch (error) { + logger.error("error in welcome demo session", { + sessionRef, + error + }); + if (sessionRef) { + voice.write({ + hangupRequest: { sessionRef } + }); + } + voice.end(); + } + } + ); + + voice.once(StreamEvent.END, () => { + voice.end(); + logger.verbose("welcome demo session ended", { sessionRef }); + }); + + voice.on(StreamEvent.ERROR, (error) => { + logger.error("stream error in welcome demo session", { + sessionRef, + error + }); + voice.end(); + }); + } + } + }; +} + +export { buildWelcomeDemoService }; diff --git a/mods/apiserver/src/core/db.ts b/mods/apiserver/src/core/db.ts new file mode 100644 index 000000000..2a72f568f --- /dev/null +++ b/mods/apiserver/src/core/db.ts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { PrismaClient } from "@prisma/client"; +import { fieldEncryptionExtension } from "prisma-field-encryption"; +import { CLOAK_ENCRYPTION_KEY } from "../envs"; + +// We encrypt all fields marked with /// encrypted in the schema +const prisma = new PrismaClient().$extends( + fieldEncryptionExtension({ + encryptionKey: CLOAK_ENCRYPTION_KEY + }) +); + +type Prisma = typeof prisma; + +export { Prisma, prisma }; diff --git a/mods/apiserver/src/core/httpBridge.ts b/mods/apiserver/src/core/httpBridge.ts new file mode 100644 index 000000000..34f2b8fb3 --- /dev/null +++ b/mods/apiserver/src/core/httpBridge.ts @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Readable } from "stream"; +import { createUpdateMembershipStatus } from "@fonoster/identity"; +import { getLogger } from "@fonoster/logger"; +import express, { Request, Response } from "express"; +import { identityConfig } from "./identityConfig"; +import { APP_URL, IDENTITY_WORKSPACE_INVITATION_FAIL_URL } from "../envs"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +const CONTENT_TYPE = "audio/L16;rate=16000;channels=1"; + +function httpBridge(params: { port: number }) { + const { port } = params; + const app = express(); + const streamMap = new Map(); + + app.get("/api/sounds/:id", (req: Request, res: Response) => { + const idWithoutExtension = req.params.id.split(".")[0]; + const stream = streamMap.get(idWithoutExtension); + + if (!stream) { + res.status(404).send(`Stream not found for id: ${req.params.id}`); + return; + } + + res.setHeader("content-type", CONTENT_TYPE); + + stream.on("error", (error) => { + logger.error(`Error reading file: ${error.message}`); + res.status(500).send("Error reading file!"); + }); + + stream.on("end", () => { + res.end(); + }); + + stream.on("close", () => { + res.end(); + }); + + stream.pipe(res); + }); + + app.get( + "/api/identity/accept-invite", + async (req: Request, res: Response) => { + try { + await createUpdateMembershipStatus(identityConfig)( + req.query.token as string + ); + res.redirect(APP_URL); + } catch (error) { + logger.verbose("error updating membership status", error); + res.redirect(IDENTITY_WORKSPACE_INVITATION_FAIL_URL); + } + } + ); + + app.listen(port, () => { + logger.info(`HTTP bridge is running on port ${port}`); + }); + + return { + addStream: (id: string, stream: Readable) => { + streamMap.set(id, stream); + }, + removeStream: (id: string) => { + streamMap.delete(id); + }, + getStream: (id: string) => { + return streamMap.get(id); + } + }; +} + +export { httpBridge }; diff --git a/mods/apiserver/src/core/identityConfig.ts b/mods/apiserver/src/core/identityConfig.ts new file mode 100644 index 000000000..29ea2e121 --- /dev/null +++ b/mods/apiserver/src/core/identityConfig.ts @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { assertEnvsAreSet } from "@fonoster/common"; +import { + CLOAK_ENCRYPTION_KEY, + IDENTITY_ACCESS_TOKEN_EXPIRES_IN, + IDENTITY_AUDIENCE, + IDENTITY_ID_TOKEN_EXPIRES_IN, + IDENTITY_ISSUER, + IDENTITY_OAUTH2_GITHUB_CLIENT_ID, + IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET, + IDENTITY_OAUTH2_GITHUB_ENABLED, + IDENTITY_PRIVATE_KEY, + IDENTITY_PUBLIC_KEY, + IDENTITY_REFRESH_TOKEN_EXPIRES_IN, + IDENTITY_USER_VERIFICATION_REQUIRED, + SMTP_AUTH_PASS, + SMTP_AUTH_USER, + SMTP_HOST, + SMTP_PORT, + SMTP_SECURE, + SMTP_SENDER, + TWILIO_ACCOUNT_SID, + TWILIO_AUTH_TOKEN, + TWILIO_PHONE_NUMBER +} from "../envs"; + +if (IDENTITY_USER_VERIFICATION_REQUIRED) { + assertEnvsAreSet([ + "TWILIO_ACCOUNT_SID", + "TWILIO_AUTH_TOKEN", + "TWILIO_PHONE_NUMBER" + ]); +} + +if (IDENTITY_OAUTH2_GITHUB_ENABLED) { + assertEnvsAreSet([ + "IDENTITY_OAUTH2_GITHUB_CLIENT_ID", + "IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET" + ]); +} + +const identityConfig = { + issuer: IDENTITY_ISSUER, + audience: IDENTITY_AUDIENCE, + privateKey: IDENTITY_PRIVATE_KEY, + publicKey: IDENTITY_PUBLIC_KEY, + encryptionKey: CLOAK_ENCRYPTION_KEY, + accessTokenExpiresIn: IDENTITY_ACCESS_TOKEN_EXPIRES_IN, + refreshTokenExpiresIn: IDENTITY_REFRESH_TOKEN_EXPIRES_IN, + idTokenExpiresIn: IDENTITY_ID_TOKEN_EXPIRES_IN, + smtpConfig: { + host: SMTP_HOST, + port: SMTP_PORT, + secure: SMTP_SECURE, + sender: SMTP_SENDER, + auth: { + user: SMTP_AUTH_USER, + pass: SMTP_AUTH_PASS + } + }, + twilioSmsConfig: { + accountSid: TWILIO_ACCOUNT_SID, + authToken: TWILIO_AUTH_TOKEN, + sender: TWILIO_PHONE_NUMBER + }, + githubOauth2Config: { + clientId: IDENTITY_OAUTH2_GITHUB_CLIENT_ID, + clientSecret: IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET + } +}; + +export { identityConfig }; diff --git a/mods/apiserver/src/core/loadServices.ts b/mods/apiserver/src/core/loadServices.ts new file mode 100644 index 000000000..0ddeffb13 --- /dev/null +++ b/mods/apiserver/src/core/loadServices.ts @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + ServiceDefinitionParams, + createServiceDefinition +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import * as grpc from "@grpc/grpc-js"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +type FonosterService = { + definition: ServiceDefinitionParams; + handlers: grpc.UntypedServiceImplementation; +}; + +async function loadServices(server: grpc.Server, services: FonosterService[]) { + services.forEach((service) => { + const serviceDefinition = createServiceDefinition(service.definition); + const { serviceName, pckg, version } = service.definition; + server.addService(serviceDefinition, service.handlers); + + logger.info("loaded service", { serviceName, pckg, version }); + }); +} + +export default loadServices; diff --git a/mods/apiserver/src/core/notFoundError.ts b/mods/apiserver/src/core/notFoundError.ts new file mode 100644 index 000000000..26b67f898 --- /dev/null +++ b/mods/apiserver/src/core/notFoundError.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { status } from "@grpc/grpc-js"; + +const notFoundError = (message: string) => ({ + code: status.NOT_FOUND, + message +}); + +export { notFoundError }; diff --git a/mods/apiserver/src/core/removeSwaggerNotice.ts b/mods/apiserver/src/core/removeSwaggerNotice.ts new file mode 100644 index 000000000..836869fb3 --- /dev/null +++ b/mods/apiserver/src/core/removeSwaggerNotice.ts @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// eslint-disable-next-line no-console +const originalLog = console.log; + +const containsDeprecationWarning = (str: string) => { + const deprecationWarning = + "This API is using a deprecated version of Swagger! Please see http://github.com/wordnik/swagger-core/wiki for more info"; + return str.includes(deprecationWarning); +}; + +// eslint-disable-next-line no-console +console.log = (...args) => { + const logString = args.join(" "); + if (!containsDeprecationWarning(logString)) { + originalLog(...args); + } +}; + +export default {}; diff --git a/mods/apiserver/src/core/routrConfig.ts b/mods/apiserver/src/core/routrConfig.ts new file mode 100644 index 000000000..009748dc7 --- /dev/null +++ b/mods/apiserver/src/core/routrConfig.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ROUTR_API_ENDPOINT } from "../envs"; + +const routrConfig = { + endpoint: ROUTR_API_ENDPOINT, + insecure: true +}; + +export { routrConfig }; diff --git a/mods/apiserver/src/core/runServices.ts b/mods/apiserver/src/core/runServices.ts new file mode 100644 index 000000000..129092f43 --- /dev/null +++ b/mods/apiserver/src/core/runServices.ts @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GRPC_SERVING_STATUS, + getServerCredentials, + statusMap, + createAuthInterceptor +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import * as grpc from "@grpc/grpc-js"; +import { HealthImplementation } from "grpc-health-check"; +import { allowList } from "./allowList"; +import { httpBridge } from "./httpBridge"; +import loadServices from "./loadServices"; +import services from "./services"; +import { createCreateCallSubscriber as runCallManager } from "../calls/runCallManager"; +import { + APISERVER_BIND_ADDR, + ASTERISK_ARI_PROXY_URL, + ASTERISK_ARI_SECRET, + ASTERISK_ARI_USERNAME, + AUTHZ_SERVICE_ENABLED, + AUTHZ_SERVICE_HOST, + AUTHZ_SERVICE_METHODS, + AUTHZ_SERVICE_PORT, + HTTP_BRIDGE_PORT, + IDENTITY_PUBLIC_KEY, + NATS_URL +} from "../envs"; +import { connectToAri } from "../voice/connectToAri"; +import { createCheckMethodAuthorized } from "@fonoster/authz"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +const authorization = createAuthInterceptor(IDENTITY_PUBLIC_KEY, allowList); +const checkMethodAuthorized = createCheckMethodAuthorized( + `${AUTHZ_SERVICE_HOST}:${AUTHZ_SERVICE_PORT}`, + AUTHZ_SERVICE_METHODS +); + +async function runServices() { + const healthImpl = new HealthImplementation(statusMap); + const credentials = await getServerCredentials({}); + const interceptors = AUTHZ_SERVICE_ENABLED + ? [authorization, checkMethodAuthorized] + : [authorization]; + + const server = new grpc.Server({ interceptors }); + + // Add the health check service to the server + healthImpl.addToServer(server); + + // Load the remaining services + loadServices(server, await services); + + // Connecting to Asterisk ARI + await connectToAri(httpBridge({ port: HTTP_BRIDGE_PORT })); + + // Additional Call Managers subscriber may be added here to handle call events + await runCallManager({ + natsUrl: NATS_URL, + ariProxyUrl: ASTERISK_ARI_PROXY_URL, + ariUsername: ASTERISK_ARI_USERNAME, + ariPassword: ASTERISK_ARI_SECRET + }); + + server.bindAsync(APISERVER_BIND_ADDR, credentials, async () => { + healthImpl.setStatus("", GRPC_SERVING_STATUS); + logger.info(`apiserver running at ${APISERVER_BIND_ADDR}`); + }); +} + +export default runServices; diff --git a/mods/apiserver/src/core/seed.ts b/mods/apiserver/src/core/seed.ts new file mode 100644 index 000000000..a3cd40056 --- /dev/null +++ b/mods/apiserver/src/core/seed.ts @@ -0,0 +1,124 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { PrismaClient } from "@prisma/client"; + +const prisma = new PrismaClient(); + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +async function main() { + await prisma.product.upsert({ + where: { ref: "tts.google" }, + update: {}, + create: { + ref: "tts.google", + name: "Google Text-to-Speech", + vendor: "GOOGLE", + type: "TTS" + } + }); + + await prisma.product.upsert({ + where: { ref: "stt.google" }, + update: {}, + create: { + ref: "stt.google", + name: "Google Speech-to-Text", + vendor: "GOOGLE", + type: "STT" + } + }); + + await prisma.product.upsert({ + where: { ref: "stt.deepgram" }, + update: {}, + create: { + ref: "stt.deepgram", + name: "Deepgram Speech-to-Text", + vendor: "DEEPGRAM", + type: "STT" + } + }); + + await prisma.product.upsert({ + where: { ref: "tts.deepgram" }, + update: {}, + create: { + ref: "tts.deepgram", + name: "Deepgram Text-to-Speech", + vendor: "DEEPGRAM", + type: "TTS" + } + }); + + await prisma.product.upsert({ + where: { ref: "tts.elevenlabs" }, + update: {}, + create: { + ref: "tts.elevenlabs", + name: "Eleven Labs Text-to-Speech", + vendor: "ELEVEN_LABS", + type: "TTS" + } + }); + + await prisma.product.upsert({ + where: { ref: "llm.openai" }, + update: {}, + create: { + ref: "llm.openai", + name: "OpenAI Language Model", + vendor: "OPENAI", + type: "LLM" + } + }); + + await prisma.product.upsert({ + where: { ref: "llm.groq" }, + update: {}, + create: { + ref: "llm.groq", + name: "Groq Language Model", + vendor: "GROQ", + type: "LLM" + } + }); + + await prisma.product.upsert({ + where: { ref: "tts.azure" }, + update: {}, + create: { + ref: "tts.azure", + name: "Azure Text-to-Speech", + vendor: "MICROSOFT", + type: "TTS" + } + }); +} + +main() + .then(async () => { + await prisma.$disconnect(); + }) + .catch(async (e) => { + logger.error(e); + await prisma.$disconnect(); + process.exit(1); + }); diff --git a/mods/apiserver/src/core/services.ts b/mods/apiserver/src/core/services.ts new file mode 100644 index 000000000..547c491b7 --- /dev/null +++ b/mods/apiserver/src/core/services.ts @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { buildIdentityService } from "@fonoster/identity"; +import { + buildAclsService, + buildAgentsService, + buildCredentialsService, + buildDomainsService, + buildNumbersService, + buildTrunksService +} from "@fonoster/sipnet"; +import { prisma } from "./db"; +import { identityConfig } from "./identityConfig"; +import { routrConfig } from "./routrConfig"; +import { buildApplicationsService } from "../applications"; +import { buildCallsService } from "../calls"; +import { influxdb } from "../calls/influxdb"; +import { buildSecretsService } from "../secrets"; +import { createCheckNumberPreconditions } from "../utils"; +import { buildWelcomeDemoService } from "./buildWelcomeDemoService"; + +const applicationsService = buildApplicationsService(prisma); +const secretsService = buildSecretsService(prisma); +const callsService = buildCallsService(influxdb); +const identityService = buildIdentityService(identityConfig); +const agentsService = buildAgentsService(routrConfig); +const domainsService = buildDomainsService(routrConfig); +const credentialsService = buildCredentialsService(routrConfig); +const trunksService = buildTrunksService(routrConfig); +const numbersService = buildNumbersService( + routrConfig, + createCheckNumberPreconditions(prisma) +); +const aclsService = buildAclsService(routrConfig); +const welcomeDemoService = buildWelcomeDemoService(); + +const services = Promise.all([ + applicationsService, + secretsService, + callsService, + identityService, + agentsService, + credentialsService, + aclsService, + numbersService, + trunksService, + domainsService, + welcomeDemoService +]); + +export default services; diff --git a/mods/apiserver/src/core/upsertDefaultPeer.ts b/mods/apiserver/src/core/upsertDefaultPeer.ts new file mode 100644 index 000000000..7c7435782 --- /dev/null +++ b/mods/apiserver/src/core/upsertDefaultPeer.ts @@ -0,0 +1,94 @@ +#!/usr/bin/env node +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { CommonTypes as CT } from "@routr/common"; +import SDK from "@routr/sdk"; +import { CreatePeerRequest } from "@routr/sdk/dist/peers/types"; +import { routrConfig } from "./routrConfig"; +import { + ROUTR_DEFAULT_PEER_AOR, + ROUTR_DEFAULT_PEER_NAME, + ROUTR_DEFAULT_PEER_PASSWORD, + ROUTR_DEFAULT_PEER_USERNAME +} from "../envs"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function createCredentialsForDefaultPeer() { + const credentials = new SDK.Credentials(routrConfig); + + const request = { + name: ROUTR_DEFAULT_PEER_NAME, + username: ROUTR_DEFAULT_PEER_USERNAME, + password: ROUTR_DEFAULT_PEER_PASSWORD + }; + + return credentials.createCredentials(request); +} + +async function upsertDefaultPeer() { + const peers = new SDK.Peers(routrConfig); + + logger.info("creating default peer"); + + try { + const request = { + name: ROUTR_DEFAULT_PEER_NAME, + username: ROUTR_DEFAULT_PEER_USERNAME, + aor: ROUTR_DEFAULT_PEER_AOR, + balancingAlgorithm: CT.LoadBalancingAlgorithm.ROUND_ROBIN, + withSessionAffinity: false, + maxContacts: -1, + enabled: true + } as CreatePeerRequest; + + const peer = await peers.createPeer(request); + + logger.info("default Peer created", { peerRef: peer.ref }); + + const creds = await createCredentialsForDefaultPeer(); + + logger.info("credentials for default Peer created", { + credentialsRef: creds.ref + }); + + peer.credentialsRef = creds.ref; + + await peers.updatePeer(peer); + + logger.info("credentials associated with default Peer", { + peerRef: peer.ref, + credentialsRef: creds.ref + }); + } catch (err: unknown) { + const error = err as { message: string; code: number }; + + if (error.message.includes("already exist")) { + logger.info("default peer already exist"); + return; + } + + logger.error(`error creating default peer: ${error.message}`, { + code: error.code + }); + } +} + +export { upsertDefaultPeer }; diff --git a/mods/apiserver/src/envs.ts b/mods/apiserver/src/envs.ts new file mode 100644 index 000000000..35a9158d1 --- /dev/null +++ b/mods/apiserver/src/envs.ts @@ -0,0 +1,208 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fs from "fs"; +import { join } from "path"; +import { assertEnvsAreSet } from "@fonoster/common"; +import dotenv from "dotenv"; + +if (process.env.NODE_ENV === "dev") { + dotenv.config({ path: join(__dirname, "..", "..", "..", ".env") }); +} + +const e = process.env; + +assertEnvsAreSet([ + "APISERVER_APP_URL", + "APISERVER_ASTERISK_ARI_PROXY_URL", + "APISERVER_ASTERISK_ARI_USERNAME", + "APISERVER_ASTERISK_ARI_SECRET", + "APISERVER_CLOAK_ENCRYPTION_KEY", + "APISERVER_SMTP_HOST", + "APISERVER_SMTP_SENDER", + "APISERVER_SMTP_AUTH_USER", + "APISERVER_SMTP_AUTH_PASS", + "APISERVER_IDENTITY_ISSUER", + "APISERVER_IDENTITY_DATABASE_URL", + "APISERVER_IDENTITY_WORKSPACE_INVITATION_FAIL_URL", + "APISERVER_DATABASE_URL", + "APISERVER_INFLUXDB_URL", + "APISERVER_INFLUXDB_INIT_USERNAME", + "APISERVER_INFLUXDB_INIT_PASSWORD", + "APISERVER_INFLUXDB_INIT_ORG", + "APISERVER_INFLUXDB_INIT_TOKEN", + "APISERVER_NATS_URL" +]); + +const IDENTITY_PRIVATE_KEY_PATH = + e.APISERVER_IDENTITY_PRIVATE_KEY_PATH || "/opt/fonoster/keys/private.pem"; +const IDENTITY_PUBLIC_KEY_PATH = + e.APISERVER_IDENTITY_PUBLIC_KEY_PATH || "/opt/fonoster/keys/public.pem"; + +export const APISERVER_BIND_ADDR = e.APISERVER_BIND_ADDR || "0.0.0.0:50051"; + +export const APISERVER_HOST = e.APISERVER_HOST || "apiserver"; + +// Frontend configurations +export const APP_URL = e.APISERVER_APP_URL; + +export const ASTERISK_ARI_PROXY_URL = e.APISERVER_ASTERISK_ARI_PROXY_URL; + +export const ASTERISK_ARI_SECRET = e.APISERVER_ASTERISK_ARI_SECRET; + +export const ASTERISK_ARI_USERNAME = e.APISERVER_ASTERISK_ARI_USERNAME; + +export const ASTERISK_SYSTEM_DOMAIN = + e.APISERVER_ASTERISK_SYSTEM_DOMAIN || "sip.invalid"; + +export const ASTERISK_TRUNK = "routr"; + +export const CALLS_CREATE_SUBJECT = "calls.create"; + +export const CALLS_TRACK_CALL_SUBJECT = "calls.track"; + +// Other configurations +export const CLOAK_ENCRYPTION_KEY = e.APISERVER_CLOAK_ENCRYPTION_KEY; + +export const DEFAULT_NATS_QUEUE_GROUP = "apiserver"; + +export const HTTP_BRIDGE_PORT = e.APISERVER_HTTP_BRIDGE_PORT + ? parseInt(e.APISERVER_HTTP_BRIDGE_PORT) + : 9876; + +// Identity configurations +export const IDENTITY_ACCESS_TOKEN_EXPIRES_IN = + e.APISERVER_IDENTITY_ACCESS_TOKEN_EXPIRES_IN || "15m"; + +export const IDENTITY_AUDIENCE = e.APISERVER_IDENTITY_AUDIENCE || "api"; + +export const IDENTITY_ID_TOKEN_EXPIRES_IN = + e.APISERVER_IDENTITY_ID_TOKEN_EXPIRES_IN || "15m"; + +export const IDENTITY_ISSUER = e.APISERVER_IDENTITY_ISSUER; + +export const IDENTITY_USER_VERIFICATION_REQUIRED = + e.APISERVER_IDENTITY_USER_VERIFICATION_REQUIRED === "true"; + +export const IDENTITY_OAUTH2_GITHUB_ENABLED = + e.APISERVER_IDENTITY_OAUTH2_GITHUB_ENABLED === "true"; + +export const IDENTITY_OAUTH2_GITHUB_CLIENT_ID = + e.APISERVER_IDENTITY_OAUTH2_GITHUB_CLIENT_ID; + +export const IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET = + e.APISERVER_IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET; + +export const IDENTITY_PRIVATE_KEY = fs.readFileSync( + IDENTITY_PRIVATE_KEY_PATH, + "utf8" +); + +export const IDENTITY_PUBLIC_KEY = fs.readFileSync( + IDENTITY_PUBLIC_KEY_PATH, + "utf8" +); + +export const IDENTITY_REFRESH_TOKEN_EXPIRES_IN = + e.APISERVER_IDENTITY_REFRESH_TOKEN_EXPIRES_IN || "24h"; + +export const IDENTITY_WORKSPACE_INVITATION_FAIL_URL = + e.APISERVER_IDENTITY_WORKSPACE_INVITATION_FAIL_URL; + +if (e.APISERVER_IDENTITY_OAUTH2_GITHUB_ENABLED === "true") { + assertEnvsAreSet([ + "APISERVER_IDENTITY_OAUTH2_GITHUB_CLIENT_ID", + "APISERVER_IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET" + ]); +} + +if (e.APISERVER_AUTHZ_SERVICE_ENABLED === "true") { + assertEnvsAreSet(["APISERVER_AUTHZ_SERVICE_HOST"]); +} + +// Authz configurations +export const AUTHZ_SERVICE_ENABLED = + e.APISERVER_AUTHZ_SERVICE_ENABLED === "true"; +export const AUTHZ_SERVICE_HOST = e.APISERVER_AUTHZ_SERVICE_HOST; +export const AUTHZ_SERVICE_PORT = e.APISERVER_AUTHZ_SERVICE_PORT || 50071; +export const AUTHZ_SERVICE_METHODS = e.APISERVER_AUTHZ_SERVICE_METHODS + ? e.APISERVER_AUTHZ_SERVICE_METHODS.split(",") + : ["/fonoster.calls.v1beta2.Calls/CreateCall"]; + +// InfluxDB configurations +export const INFLUXDB_ORG = e.APISERVER_INFLUXDB_INIT_ORG; + +export const INFLUXDB_PASSWORD = e.APISERVER_INFLUXDB_INIT_PASSWORD; + +export const INFLUXDB_TOKEN = e.APISERVER_INFLUXDB_INIT_TOKEN; + +export const INFLUXDB_URL = e.APISERVER_INFLUXDB_URL; + +export const INFLUXDB_USERNAME = e.APISERVER_INFLUXDB_INIT_USERNAME; + +export const INTEGRATIONS_FILE = + e.APISERVER_INTEGRATIONS_FILE || "/opt/fonoster/integrations.json"; + +export const NATS_URL = e.APISERVER_NATS_URL; + +export const OWNER_EMAIL = e.APISERVER_OWNER_EMAIL; + +// Default owner configurations (If OWNER_EMAIL is set, the system will create a default user and a workspace) +export const OWNER_NAME = e.APISERVER_OWNER_NAME || "Admin"; + +export const OWNER_PASSWORD = e.APISERVER_OWNER_PASSWORD || "changeme"; + +export const ROUTR_API_ENDPOINT = + e.APISERVER_ROUTR_API_ENDPOINT || "routr:51907"; + +export const ROUTR_DEFAULT_PEER_AOR = + e.APISERVER_ROUTR_DEFAULT_PEER_AOR || "sip:voice@default"; + +export const ROUTR_DEFAULT_PEER_NAME = + e.APISERVER_ROUTR_DEFAULT_PEER_NAME || "Voice Server"; + +export const ROUTR_DEFAULT_PEER_PASSWORD = + e.APISERVER_ROUTR_DEFAULT_PEER_PASSWORD || "changeme"; + +export const ROUTR_DEFAULT_PEER_USERNAME = + e.APISERVER_ROUTR_DEFAULT_PEER_USERNAME || "voice"; + +export const SMTP_AUTH_PASS = e.APISERVER_SMTP_AUTH_PASS; + +export const SMTP_AUTH_USER = e.APISERVER_SMTP_AUTH_USER; + +// SMTP configurations +export const SMTP_HOST = e.APISERVER_SMTP_HOST; + +export const SMTP_PORT = e.APISERVER_SMTP_PORT + ? parseInt(e.APISERVER_SMTP_PORT) + : 587; + +export const SMTP_SECURE = e.APISERVER_SMTP_SECURE?.toLowerCase() === "true"; + +export const SMTP_SENDER = e.APISERVER_SMTP_SENDER; + +// Custom templates +export const TEMPLATES_DIR = e.APISERVER_TEMPLATES_DIR; + +// Twilio configurations +export const TWILIO_ACCOUNT_SID = e.APISERVER_TWILIO_ACCOUNT_SID; + +export const TWILIO_AUTH_TOKEN = e.APISERVER_TWILIO_AUTH_TOKEN; + +export const TWILIO_PHONE_NUMBER = e.APISERVER_TWILIO_PHONE_NUMBER; diff --git a/mods/apiserver/src/events/createInfluxDbPub.ts b/mods/apiserver/src/events/createInfluxDbPub.ts new file mode 100644 index 000000000..bc2c12842 --- /dev/null +++ b/mods/apiserver/src/events/createInfluxDbPub.ts @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { InfluxDB, Point } from "@influxdata/influxdb-client"; + +type InfluxDbPub = { + url: string; + token: string; + org: string; + bucket: string; +}; + +type FonosterEvent = { + name: "cdr" | "error"; + tag: string; + data: Record; +}; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function createInfluxDbPub(config) { + const { url, token, org, bucket } = config; + + logger.info("creating influxdb client", { url, org, bucket }); + + const client = new InfluxDB({ url, token }); + const writeClient = client.getWriteApi(org, bucket, "ns"); + + return (event) => { + logger.verbose("writing event to InfluxDB", event); + const point = new Point(event.name).tag("callId", event.tag); + + Object.entries(event.data).forEach(([key, value]) => { + if (typeof value === "number") { + point.intField(key, value); // Or floatField for floating-point numbers + } else if (typeof value === "boolean") { + point.booleanField(key, value); + } else if (key === "startedAt" || key === "endedAt") { + point.stringField(key, new Date(value.toString()).getTime()); + } else { + point.stringField(key, value); + } + }); + + try { + writeClient.writePoint(point); + writeClient.flush(); + } catch (error) { + logger.error("error writing to InfluxDB:", error); + } + }; +} + +export { FonosterEvent, InfluxDbPub, createInfluxDbPub }; diff --git a/mods/apiserver/src/events/mapCallDirectionToEnum.ts b/mods/apiserver/src/events/mapCallDirectionToEnum.ts new file mode 100644 index 000000000..5041207d4 --- /dev/null +++ b/mods/apiserver/src/events/mapCallDirectionToEnum.ts @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { CallDirection } from "@fonoster/types"; + +function mapCallDirectionToEnum(direction: string): CallDirection { + switch (direction) { + case "from-pstn": + return CallDirection.FROM_PSTN; + case "peer-to-pstn": + case "agent-to-pstn": + return CallDirection.TO_PSTN; + case "agent-to-agent": + case "agent-to-peer": + case "peer-to-agent": + return CallDirection.INTRA_NETWORK; + default: + throw new Error(`Invalid call direction: ${direction}`); + } +} + +export { mapCallDirectionToEnum }; diff --git a/mods/apiserver/src/events/nats.ts b/mods/apiserver/src/events/nats.ts new file mode 100644 index 000000000..3d5a4616f --- /dev/null +++ b/mods/apiserver/src/events/nats.ts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { connect } from "nats"; +import { NatsEventCallback } from "./types"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +const ROUTR_CALL_SUBJECT = "routr.call.*"; + +async function streamEvents(subscription, callback: NatsEventCallback) { + // eslint-disable-next-line no-loops/no-loops + for await (const m of subscription) { + const messageStr = m.data.toString(); + callback({ ...JSON.parse(messageStr) }); + } +} + +/** + * This method listens for registration events from Routr. + * + * @param {string} natsUrl - The NATS server URL + * @param {RegisterEventCallback} callback - The callback function + * @return {void} + */ +function watchNats(natsUrl: string, callback: NatsEventCallback) { + (async () => { + const nc = await connect({ servers: natsUrl, maxReconnectAttempts: -1 }); + + const a = nc.subscribe(ROUTR_CALL_SUBJECT); + + logger.verbose("connected to nats", { natsUrl }); + logger.verbose("subscribed to subjects", { + subjects: [ROUTR_CALL_SUBJECT] + }); + + await Promise.all([streamEvents(a, callback)]); + })(); +} + +export { watchNats }; diff --git a/mods/apiserver/src/events/transformEvent.ts b/mods/apiserver/src/events/transformEvent.ts new file mode 100644 index 000000000..4de252a13 --- /dev/null +++ b/mods/apiserver/src/events/transformEvent.ts @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { CallType } from "@fonoster/types"; +import { mapCallDirectionToEnum } from "./mapCallDirectionToEnum"; +import { v4 as uuidv4 } from "uuid"; + +const ACCESS_KEY_ID_HEADER = "X-Access-Key-Id"; +const CALL_REF_HEADER = "X-Call-Ref"; +const CALL_DIRECTION_HEADER = "X-Call-Direction"; +const DOD_NUMBER_HEADER = "X-Dod-Number"; +const API_ORIGINATED_TYPE_HEADER = "X-Is-Api-Originated-Type"; + +function transformEvent( + event: Record +): Record { + const transformedEvent: Record = { ...event }; + + if (event.startTime) { + const time = new Date(event.startTime as string).getTime() / 1000; + transformedEvent.startedAt = time; + transformedEvent.endedAt = time; + delete transformedEvent.startTime; + } + + if (event.endTime) { + transformedEvent.endedAt = + new Date(event.endTime as string).getTime() / 1000; + delete transformedEvent.endTime; + } + + if (event.hangupCause) { + transformedEvent.status = event.hangupCause; + delete transformedEvent.hangupCause; + } + + if (event.to) { + const to = event.to as string; + transformedEvent.to = to.split("@")[0].replace("sip:", ""); + } + + const extraHeaders = event.extraHeaders as Record; + + if (extraHeaders && Object.keys(extraHeaders).length > 0) { + if (extraHeaders[ACCESS_KEY_ID_HEADER]) { + transformedEvent.accessKeyId = extraHeaders[ACCESS_KEY_ID_HEADER]; + } + + if (extraHeaders[CALL_REF_HEADER]) { + transformedEvent.ref = extraHeaders[CALL_REF_HEADER]; + } else { + // SIP originated calls don't have a ref so we need to create one + transformedEvent.ref = uuidv4(); + } + + if (extraHeaders[DOD_NUMBER_HEADER]) { + transformedEvent.from = extraHeaders[DOD_NUMBER_HEADER]; + } + + if (extraHeaders[API_ORIGINATED_TYPE_HEADER]) { + transformedEvent.type = CallType.API_ORIGINATED; + } + + if (extraHeaders[CALL_DIRECTION_HEADER]) { + transformedEvent.direction = mapCallDirectionToEnum( + extraHeaders[CALL_DIRECTION_HEADER] + ); + } + } + + // Delete the extra headers as they may contain sensitive information + delete transformedEvent.extraHeaders; + delete transformedEvent.callId; + + return transformedEvent; +} + +export { transformEvent }; diff --git a/mods/apiserver/src/events/types.ts b/mods/apiserver/src/events/types.ts new file mode 100644 index 000000000..e709db81f --- /dev/null +++ b/mods/apiserver/src/events/types.ts @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// The register event is sent by Routr when a new endpoint is registered +type RegisterEvent = { + // The address of record (aor) is the unique identifier for the endpoint + // And it is formatted as `sip:username@domain` + aor: string; + registeredAt: Date; + expires: number; + extraHeaders: Record; +}; + +type NatsEventCallback = (registerEvent: Record) => void; + +export { NatsEventCallback, RegisterEvent }; diff --git a/mods/apiserver/src/index.ts b/mods/apiserver/src/index.ts new file mode 100644 index 000000000..9339ace0c --- /dev/null +++ b/mods/apiserver/src/index.ts @@ -0,0 +1,80 @@ +#!/usr/bin/env node +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { upsertDefaultUser } from "@fonoster/identity"; +import { getLogger } from "@fonoster/logger"; +import runServices from "./core/runServices"; +import { upsertDefaultPeer } from "./core/upsertDefaultPeer"; +import { + INFLUXDB_ORG, + INFLUXDB_TOKEN, + INFLUXDB_URL, + NATS_URL, + OWNER_EMAIL, + OWNER_NAME, + OWNER_PASSWORD +} from "./envs"; +import { createInfluxDbPub } from "./events/createInfluxDbPub"; +import { watchNats } from "./events/nats"; +import { transformEvent } from "./events/transformEvent"; +import { + CALL_DETAIL_RECORD_MEASUREMENT, + INFLUXDB_CALLS_BUCKET +} from "@fonoster/common"; + +import("./core/removeSwaggerNotice"); + +async function main() { + if (OWNER_EMAIL) { + const user = { + name: OWNER_NAME, + email: OWNER_EMAIL, + password: OWNER_PASSWORD + }; + await upsertDefaultUser(user); + } + + // Upsert a Peer for the default region, if it doesn't already exist + await upsertDefaultPeer(); + + // Start the gRPC server + runServices().catch(logger.error); + + const pubToInfluxDb = createInfluxDbPub({ + url: INFLUXDB_URL, + token: INFLUXDB_TOKEN, + org: INFLUXDB_ORG, + bucket: INFLUXDB_CALLS_BUCKET + }); + + // Subscribe to NATs events + watchNats(NATS_URL, (event: Record) => { + logger.verbose("received nats event", { ...event }); + + pubToInfluxDb({ + name: CALL_DETAIL_RECORD_MEASUREMENT, + tag: event.callId, + data: transformEvent(event) + }); + }); +} + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +main().catch(logger.error); diff --git a/mods/apiserver/src/secrets/buildService.ts b/mods/apiserver/src/secrets/buildService.ts new file mode 100644 index 000000000..184cd2e32 --- /dev/null +++ b/mods/apiserver/src/secrets/buildService.ts @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createSecret } from "./createSecret"; +import { deleteSecret } from "./deleteSecret"; +import { getSecret } from "./getSecret"; +import { listSecrets } from "./listSecrets"; +import { updateSecret } from "./updateSecret"; +import { Prisma } from "../core/db"; + +function buildService(prisma: Prisma) { + return { + definition: { + serviceName: "Secrets", + pckg: "secrets", + version: "v1beta2", + proto: "secrets.proto" + }, + handlers: { + createSecret: createSecret(prisma), + getSecret: getSecret(prisma), + listSecrets: listSecrets(prisma), + deleteSecret: deleteSecret(prisma), + updateSecret: updateSecret(prisma) + } + }; +} + +export { buildService }; diff --git a/mods/apiserver/src/secrets/createGetFnUtil.ts b/mods/apiserver/src/secrets/createGetFnUtil.ts new file mode 100644 index 000000000..61c10786e --- /dev/null +++ b/mods/apiserver/src/secrets/createGetFnUtil.ts @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { datesMapper } from "@fonoster/common"; +import { Prisma } from "../core/db"; +import { notFoundError } from "../core/notFoundError"; + +function createGetFnUtil(prisma: Prisma) { + return async function getFnUtil(ref: string) { + const response = await prisma.secret.findUnique({ + where: { ref } + }); + + if (!response) { + throw notFoundError(`Resource not found: ${ref}`); + } + + return datesMapper({ + // NOTE: Adding extended to match the signature of withAccess + ...response, + extended: { + accessKeyId: response.accessKeyId + } + }); + }; +} + +export { createGetFnUtil }; diff --git a/mods/apiserver/src/secrets/createSecret.ts b/mods/apiserver/src/secrets/createSecret.ts new file mode 100644 index 000000000..3e8889d15 --- /dev/null +++ b/mods/apiserver/src/secrets/createSecret.ts @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getAccessKeyIdFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject, CreateSecretRequest } from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { Prisma } from "../core/db"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function createSecret(prisma: Prisma) { + const fn = async ( + call: { request: CreateSecretRequest }, + callback: (error: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { name, secret } = call.request; + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + logger.verbose("call to createSecret", { + accessKeyId + }); + + const result = await prisma.secret.create({ + data: { + name, + secret, + accessKeyId + } + }); + + callback(null, { ref: result.ref }); + }; + + return withErrorHandlingAndValidation(fn, V.createSecretRequestSchema); +} + +export { createSecret }; diff --git a/mods/apiserver/src/secrets/deleteSecret.ts b/mods/apiserver/src/secrets/deleteSecret.ts new file mode 100644 index 000000000..e2c46aae0 --- /dev/null +++ b/mods/apiserver/src/secrets/deleteSecret.ts @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Validators as V } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject } from "@fonoster/types"; +import { createGetFnUtil } from "./createGetFnUtil"; +import { Prisma } from "../core/db"; +import { withErrorHandlingAndValidationAndAccess } from "../utils/withErrorHandlingAndValidationAndAccess"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function deleteSecret(prisma: Prisma) { + const getFn = createGetFnUtil(prisma); + + const fn = async (call: { + request: BaseApiObject; + }): Promise => { + const { ref } = call.request; + + logger.verbose("call to deleteSecret", { ref }); + + await prisma.secret.delete({ where: { ref } }); + + return { ref }; + }; + + return withErrorHandlingAndValidationAndAccess( + fn, + (ref: string) => getFn(ref), + V.emptySchema + ); +} + +export { deleteSecret }; diff --git a/mods/apiserver/src/secrets/getSecret.ts b/mods/apiserver/src/secrets/getSecret.ts new file mode 100644 index 000000000..a7d2dc756 --- /dev/null +++ b/mods/apiserver/src/secrets/getSecret.ts @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Validators as V } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject, Secret } from "@fonoster/types"; +import { createGetFnUtil } from "./createGetFnUtil"; +import { Prisma } from "../core/db"; +import { withErrorHandlingAndValidationAndAccess } from "../utils/withErrorHandlingAndValidationAndAccess"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function getSecret(prisma: Prisma) { + const getFn = createGetFnUtil(prisma); + + const fn = async (call: { request: BaseApiObject }): Promise => { + const { ref } = call.request; + + logger.verbose("call to getSecret", { ref }); + + return await getFn(ref); + }; + + return withErrorHandlingAndValidationAndAccess( + fn, + (ref: string) => getFn(ref), + V.emptySchema + ); +} + +export { getSecret }; diff --git a/mods/apiserver/src/secrets/index.ts b/mods/apiserver/src/secrets/index.ts new file mode 100644 index 000000000..c8ca36824 --- /dev/null +++ b/mods/apiserver/src/secrets/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { buildService as buildSecretsService } from "./buildService"; diff --git a/mods/apiserver/src/secrets/listSecrets.ts b/mods/apiserver/src/secrets/listSecrets.ts new file mode 100644 index 000000000..976c9604c --- /dev/null +++ b/mods/apiserver/src/secrets/listSecrets.ts @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + datesMapper, + withErrorHandlingAndValidation, + getAccessKeyIdFromCall +} from "@fonoster/common"; +import {} from "@fonoster/identity"; +import { getLogger } from "@fonoster/logger"; +import { ListSecretsRequest, ListSecretsResponse } from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { Prisma } from "../core/db"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function listSecrets(prisma: Prisma) { + const fn = async ( + call: { + request: ListSecretsRequest; + }, + callback: (error: GrpcErrorMessage, response?: ListSecretsResponse) => void + ) => { + const { pageSize, pageToken } = call.request; + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + logger.verbose("call to getSecret", { + accessKeyId, + pageSize, + pageToken + }); + + const result = ( + await prisma.secret.findMany({ + where: { accessKeyId }, + take: pageSize, + skip: pageToken ? 1 : 0, + cursor: pageToken ? { ref: pageToken } : undefined + }) + ).map(datesMapper); + + callback(null, { + items: result, + nextPageToken: result[result.length - 1]?.ref + }); + }; + + return withErrorHandlingAndValidation(fn, V.listRequestSchema); +} + +export { listSecrets }; diff --git a/mods/apiserver/src/secrets/updateSecret.ts b/mods/apiserver/src/secrets/updateSecret.ts new file mode 100644 index 000000000..c63a87855 --- /dev/null +++ b/mods/apiserver/src/secrets/updateSecret.ts @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Validators as V, getAccessKeyIdFromCall } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { UpdateSecretRequest } from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { createGetFnUtil } from "./createGetFnUtil"; +import { Prisma } from "../core/db"; +import { withErrorHandlingAndValidationAndAccess } from "../utils/withErrorHandlingAndValidationAndAccess"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function updateSecret(prisma: Prisma) { + const getFn = createGetFnUtil(prisma); + + const fn = async (call: { request: UpdateSecretRequest }) => { + const { name, secret } = call.request; + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + logger.verbose("call to updateSecret", { + accessKeyId + }); + + await prisma.secret.update({ + where: { ref: call.request.ref }, + data: { + name, + secret + } + }); + + return { ref: call.request.ref }; + }; + + return withErrorHandlingAndValidationAndAccess( + fn, + (ref: string) => getFn(ref), + V.listRequestSchema + ); +} + +export { updateSecret }; diff --git a/mods/apiserver/src/utils/createCheckNumberPreconditions.ts b/mods/apiserver/src/utils/createCheckNumberPreconditions.ts new file mode 100644 index 000000000..399d3fe1f --- /dev/null +++ b/mods/apiserver/src/utils/createCheckNumberPreconditions.ts @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { GrpcError } from "@fonoster/common"; +import { status } from "@grpc/grpc-js"; +import { Prisma } from "../core/db"; + +function createCheckNumberPreconditions(prisma: Prisma) { + return async function checkNumberPreconditions({ appRef, accessKeyId }) { + // You can have a Number without an Application but it must exist + if (!appRef) { + return; + } + + const app = await prisma.application.findUnique({ + where: { ref: appRef, accessKeyId } + }); + + if (!app) { + throw new GrpcError( + status.INVALID_ARGUMENT, + "Application not found for ref: " + appRef + ); + } + }; +} + +export { createCheckNumberPreconditions }; diff --git a/mods/apiserver/src/utils/createHandleDialEventsWithNats.ts b/mods/apiserver/src/utils/createHandleDialEventsWithNats.ts new file mode 100644 index 000000000..eb9c58185 --- /dev/null +++ b/mods/apiserver/src/utils/createHandleDialEventsWithNats.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { NatsConnection } from "nats"; +import { mapDialStatus } from "./mapDialStatus"; +import { CALLS_TRACK_CALL_SUBJECT } from "../envs"; + +function createHandleDialEventsWithNats(nc: NatsConnection) { + return async function handleDialEventsWithNats( + callRef: string, + event: { dialstatus: string } + ) { + const mappedStatus = mapDialStatus(event.dialstatus); + if (!mappedStatus) return; // Ignore the event if status is not mapped + + nc.publish( + CALLS_TRACK_CALL_SUBJECT, + JSON.stringify({ ref: callRef, status: mappedStatus }) + ); + }; +} + +export { createHandleDialEventsWithNats }; diff --git a/mods/apiserver/src/utils/createHandleDialEventsWithVoiceClient.ts b/mods/apiserver/src/utils/createHandleDialEventsWithVoiceClient.ts new file mode 100644 index 000000000..4d2ed412a --- /dev/null +++ b/mods/apiserver/src/utils/createHandleDialEventsWithVoiceClient.ts @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { mapDialStatus } from "./mapDialStatus"; +import { VoiceClient } from "../voice/types"; + +function createHandleDialEventsWithVoiceClient(voiceClient: VoiceClient) { + return async function handleDialEventsWithVoiceClient(event: { + dialstatus: string; + }) { + const mappedStatus = mapDialStatus(event.dialstatus); + if (!mappedStatus) return; // Ignore the event if status is not mapped + + voiceClient.sendResponse({ + dialResponse: { + status: mappedStatus + } + }); + }; +} + +export { createHandleDialEventsWithVoiceClient }; diff --git a/mods/apiserver/src/utils/index.ts b/mods/apiserver/src/utils/index.ts new file mode 100644 index 000000000..0f89b120f --- /dev/null +++ b/mods/apiserver/src/utils/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./createCheckNumberPreconditions"; +export * from "./createHandleDialEventsWithNats"; +export * from "./createHandleDialEventsWithVoiceClient"; diff --git a/mods/apiserver/src/utils/mapDialStatus.ts b/mods/apiserver/src/utils/mapDialStatus.ts new file mode 100644 index 000000000..6f4687eb5 --- /dev/null +++ b/mods/apiserver/src/utils/mapDialStatus.ts @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { DialStatus } from "@fonoster/common"; + +const FailedStatus = ["CHANUNAVAIL", "CONGESTION"]; + +function mapDialStatus(status: string): DialStatus | undefined { + if (status === "") { + return DialStatus.TRYING; + } + + const normalizedStatus = status.toUpperCase(); + const dialStatusArray = Object.keys(DialStatus).map((key) => DialStatus[key]); + + if (FailedStatus.includes(normalizedStatus)) { + return DialStatus.FAILED; + } else if (dialStatusArray.includes(normalizedStatus)) { + return DialStatus[normalizedStatus]; + } + // If the status is not in the DialStatus enum, return undefined + return undefined; +} + +export { mapDialStatus }; diff --git a/mods/apiserver/src/utils/withErrorHandlingAndValidationAndAccess.ts b/mods/apiserver/src/utils/withErrorHandlingAndValidationAndAccess.ts new file mode 100644 index 000000000..1a56da40d --- /dev/null +++ b/mods/apiserver/src/utils/withErrorHandlingAndValidationAndAccess.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/ban-types */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { withErrorHandling, withValidation } from "@fonoster/common"; +import { withAccess } from "@fonoster/identity"; +import { z } from "zod"; + +function withErrorHandlingAndValidationAndAccess( + handler: (call: T) => Promise, + getFn: (ref: string) => Promise, + schema: z.ZodSchema +) { + // Start by applying access logic, then validation, and finally error handling + const withAccessHandler = withAccess(handler, getFn); + const withValidationHandler = withValidation(withAccessHandler, schema); + return withErrorHandling(withValidationHandler); +} + +export { withErrorHandlingAndValidationAndAccess }; diff --git a/mods/apiserver/src/voice/VoiceClientImpl.ts b/mods/apiserver/src/voice/VoiceClientImpl.ts new file mode 100644 index 000000000..9a4b0d94a --- /dev/null +++ b/mods/apiserver/src/voice/VoiceClientImpl.ts @@ -0,0 +1,319 @@ +/* eslint-disable new-cap */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Stream } from "stream"; +import { + GrpcError, + STASIS_APP_NAME, + SayOptions, + StreamEvent, + VoiceClientConfig, + VoiceIn, + VoiceSessionStreamClient +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { AudioSocket } from "@fonoster/streams"; +import * as grpc from "@grpc/grpc-js"; +import { Bridge, Client } from "ari-client"; +import { pickPort } from "pick-port"; +import { SpeechResult } from "./stt/types"; +import { transcribeOnConnection } from "./transcribeOnConnection"; +import { + AriEvent, + GRPCClient, + SpeechToText, + TextToSpeech, + VoiceClient +} from "./types"; +import { createExternalMediaConfig } from "./utils/createExternalMediaConfig"; +import { VoiceServiceClientConstructor } from "./utils/VoiceServiceClientConstructor"; +import { + AUTHZ_SERVICE_ENABLED, + AUTHZ_SERVICE_HOST, + AUTHZ_SERVICE_PORT +} from "../envs"; +import { AuthzClient } from "@fonoster/authz"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +class VoiceClientImpl implements VoiceClient { + config: VoiceClientConfig; + verbsStream: Stream; + transcriptionsStream: Stream; + voice: VoiceSessionStreamClient; + tts: TextToSpeech; + stt: SpeechToText; + grpcClient: GRPCClient; + audioSocket: AudioSocket; + asStream: Stream; + ari: Client; + bridge: Bridge; + filesServer; + + constructor( + params: { + ari: Client; + config: VoiceClientConfig; + tts: TextToSpeech; + stt: SpeechToText; + }, + filesServer + ) { + const { config, tts, stt, ari } = params; + this.config = config; + this.verbsStream = new Stream(); + this.transcriptionsStream = new Stream(); + this.tts = tts; + this.stt = stt; + this.ari = ari; + this.filesServer = filesServer; + } + + async connect() { + if (AUTHZ_SERVICE_ENABLED) { + const { sessionRef: channelId } = this.config; + const { ari } = this; + + try { + const authz = new AuthzClient( + `${AUTHZ_SERVICE_HOST}:${AUTHZ_SERVICE_PORT}` + ); + const authorized = await authz.checkSessionAuthorized({ + accessKeyId: this.config.accessKeyId + }); + + if (!authorized) { + logger.verbose("rejected unauthorized session", { channelId }); + + await ari.channels.answer({ channelId }); + await ari.channels.play({ channelId, media: "sound:unavailable" }); + await new Promise((resolve) => setTimeout(resolve, 2000)); + await ari.channels.hangup({ channelId }); + return; + } + } catch (e) { + logger.error("authz service error", e); + + // TODO: Play a different sound + await ari.channels.answer({ channelId }); + await ari.channels.play({ channelId, media: "sound:unavailable" }); + await new Promise((resolve) => setTimeout(resolve, 2000)); + await ari.channels.hangup({ channelId }); + return; + } + } + + this.grpcClient = new VoiceServiceClientConstructor( + this.config.endpoint, + grpc.credentials.createInsecure() + ) as unknown as GRPCClient; + + const metadata = new grpc.Metadata(); + metadata.add("accessKeyId", this.config.accessKeyId); + metadata.add("token", this.config.sessionToken); + + this.voice = this.grpcClient.createSession(metadata); + + this.voice.on(StreamEvent.DATA, (data: VoiceIn) => { + this.verbsStream.emit(data.content, data); + }); + + this.voice.write({ request: this.config }); + + this.voice.on(StreamEvent.ERROR, (error: GrpcError) => { + if (error.code === grpc.status.UNAVAILABLE) { + // FIXME: This error should be sent back to the user + logger.error(`voice server not available at "${this.config.endpoint}"`); + return; + } + logger.error(error.message); + }); + + const externalMediaPort = await pickPort({ type: "tcp" }); + + this.setupAudioSocket(externalMediaPort); + await this.setupExternalMedia(externalMediaPort); + } + + setupAudioSocket(port: number) { + this.audioSocket = new AudioSocket(); + + this.audioSocket.onConnection( + transcribeOnConnection(this.transcriptionsStream) + ); + + this.audioSocket.listen(port, () => { + logger.verbose("starting audio socket for voice client", { + port, + appRef: this.config.appRef + }); + }); + } + + on(type: string, callback: (data: VoiceIn) => void) { + this.verbsStream.on(type.toString(), (data: VoiceIn) => { + callback(data[type]); + }); + } + + sendResponse(response: VoiceIn): void { + this.voice.write(response); + } + + getTranscriptionsStream() { + return this.transcriptionsStream; + } + + async setupExternalMedia(port: number) { + // Snoop from the main channel + const snoopChannel = await this.ari.channels.snoopChannel({ + app: STASIS_APP_NAME, + channelId: this.config.sessionRef, + snoopId: `snoop-${this.config.sessionRef}`, + spy: "in" + }); + + const bridge = this.ari.Bridge(); + + await bridge.create({ type: "mixing" }); + + this.bridge = bridge; + + const channel = this.ari.Channel(); + + channel.externalMedia(createExternalMediaConfig(port)); + + channel.once(AriEvent.STASIS_START, async (_, channel) => { + bridge.addChannel({ channel: [snoopChannel.id, channel.id] }); + }); + + channel.once("ChannelLeftBridge", async () => { + try { + await bridge.destroy(); + } catch (e) { + // We can only try + } + }); + } + + async synthesize(text: string, options: SayOptions): Promise { + const { ref, stream } = await this.tts.synthesize(text, options); + this.filesServer.addStream(ref, stream); + return ref; + } + + async transcribe(): Promise { + try { + return await this.stt.transcribe(this.transcriptionsStream); + } catch (e) { + logger.warn("transcription error", e); + return {} as unknown as SpeechResult; + } + } + + async startSpeechGather( + callback: (stream: { speech: string; responseTime: number }) => void + ) { + try { + const out = this.stt.streamTranscribe(this.transcriptionsStream); + out.on("data", callback); + } catch (e) { + logger.error(e); + } + } + + async startDtmfGather( + sessionRef: string, + callback: (event: { digit: string }) => void + ) { + const channel = await this.ari.channels.get({ channelId: sessionRef }); + + channel.on(AriEvent.CHANNEL_DTMF_RECEIVED, (event) => { + const { digit } = event; + callback({ digit }); + }); + } + + // Stops both speech and dtmf gather + async stopStreamGather() { + throw new Error("Method 'stopStreamGather' not implemented."); + } + + async waitForDtmf(params: { + sessionRef: string; + finishOnKey: string; + maxDigits: number; + timeout: number; + onDigitReceived: () => void; + }): Promise<{ digits: string }> { + const { onDigitReceived, sessionRef, finishOnKey, maxDigits, timeout } = + params; + + let result = ""; + let timeoutId = null; + + const channel = await this.ari.channels.get({ channelId: sessionRef }); + + return new Promise((resolve) => { + const resetTimer = () => { + if (timeoutId) { + clearTimeout(timeoutId); + } + + timeoutId = setTimeout(() => { + channel.removeListener(AriEvent.CHANNEL_DTMF_RECEIVED, dtmfListener); + resolve({ digits: result }); + }, timeout); + }; + + const dtmfListener = (event) => { + const { digit } = event; + + // Stops the global timeout + onDigitReceived(); + resetTimer(); + + if (digit !== finishOnKey) { + result += digit; + } + + if (result.length >= maxDigits || digit === finishOnKey) { + clearTimeout(timeoutId); + channel.removeListener(AriEvent.CHANNEL_DTMF_RECEIVED, dtmfListener); + resolve({ digits: result }); + } + }; + + channel.on(AriEvent.CHANNEL_DTMF_RECEIVED, dtmfListener); + resetTimer(); // Start the initial timeout + }); + } + + close() { + try { + this.voice.end(); + this.grpcClient.close(); + this.audioSocket.close(); + } catch (e) { + // Do nothing + } + } +} + +export { VoiceClientImpl }; diff --git a/mods/apiserver/src/voice/VoiceDispatcher.ts b/mods/apiserver/src/voice/VoiceDispatcher.ts new file mode 100644 index 000000000..cb8260298 --- /dev/null +++ b/mods/apiserver/src/voice/VoiceDispatcher.ts @@ -0,0 +1,151 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { StreamContent as SC, STASIS_APP_NAME } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { Channel, Client, Dial, StasisStart } from "ari-client"; +import { NatsConnection } from "nats"; +import { + createAnswerHandler, + createDialHandler, + createGatherHandler, + createHangupHandler, + createMuteHandler, + createPlayDtmfHandler, + createPlayHandler, + createPlaybackControlHandler, + createSayHandler, + createStreamGatherHandler, + createUnmuteHandler, + createStreamHandler +} from "./handlers"; +import { AriEvent as AE, ChannelVar, VoiceClient } from "./types"; +import { createHandleDialEventsWithNats } from "../utils"; +import { createGetChannelVarWithoutThrow } from "./utils"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +type CreateVoiceClient = (params: { + ari: Client; + event: StasisStart; + channel: Channel; +}) => Promise; + +class VoiceDispatcher { + voiceClients: Map; + ari: Client; + nc: NatsConnection; + createVoiceClient: CreateVoiceClient; + + constructor( + ari: Client, + nc: NatsConnection, + createVoiceClient: CreateVoiceClient + ) { + this.ari = ari; + this.nc = nc; + this.voiceClients = new Map(); + this.createVoiceClient = createVoiceClient; + } + + start() { + // Initialize the ARI client + const { ari, handleStasisStart, handleStasisEnd, handleDial } = this; + ari.start(STASIS_APP_NAME); + ari.on(AE.STASIS_START, handleStasisStart.bind(this)); + ari.on(AE.STASIS_END, handleStasisEnd.bind(this)); + ari.on(AE.DIAL, handleDial.bind(this)); + } + + async handleStasisStart(event: StasisStart, channel: Channel) { + const { ari, voiceClients, createVoiceClient, isHandledElsewhere } = this; + + const getChannelVar = createGetChannelVarWithoutThrow(channel); + const appRef = (await getChannelVar(ChannelVar.APP_REF))?.value; + + // This check feels strange but is necessary as ARI calls this event twice + if (!appRef) { + logger.silly("no appRef found, ignoring handleStasisStart event"); + return; + } + + if (await isHandledElsewhere(channel)) { + return; + } + + try { + const vc = await createVoiceClient({ ari, event, channel }); + + // Connect to voice server + vc.connect(); + + voiceClients.set(channel.id, vc); + + vc.on(SC.ANSWER_REQUEST, createAnswerHandler(ari, vc).bind(this)); + vc.on(SC.HANGUP_REQUEST, createHangupHandler(ari, vc).bind(this)); + vc.on(SC.MUTE_REQUEST, createMuteHandler(ari, vc).bind(this)); + vc.on(SC.UNMUTE_REQUEST, createUnmuteHandler(ari, vc).bind(this)); + vc.on(SC.PLAY_REQUEST, createPlayHandler(ari, vc).bind(this)); + vc.on(SC.PLAY_DTMF_REQUEST, createPlayDtmfHandler(ari, vc).bind(this)); + vc.on(SC.SAY_REQUEST, createSayHandler(ari, vc).bind(this)); + vc.on(SC.GATHER_REQUEST, createGatherHandler(vc).bind(this)); + vc.on(SC.DIAL_REQUEST, createDialHandler(ari, vc).bind(this)); + vc.on( + SC.PLAYBACK_CONTROL_REQUEST, + createPlaybackControlHandler(ari, vc).bind(this) + ); + vc.on( + SC.START_STREAM_GATHER_REQUEST, + createStreamGatherHandler(vc).bind(this) + ); + vc.on(SC.STOP_STREAM_GATHER_REQUEST, () => { + vc.stopStreamGather(); + }); + vc.on(SC.START_STREAM_REQUEST, createStreamHandler(vc).bind(this)); + } catch (err) { + logger.error("error handling stasis start", { error: err.message }); + } + } + + handleStasisEnd(_: undefined, channel: Channel) { + const { voiceClients } = this; + + const voiceClient = voiceClients.get(channel.id); + + if (voiceClient) { + voiceClient.close(); + voiceClients.delete(channel.id); + } + } + + async handleDial(event: Dial, channel: Channel) { + createHandleDialEventsWithNats(this.nc)(channel.id, event); + } + + async isHandledElsewhere(channel: Channel) { + return ( + ( + await createGetChannelVarWithoutThrow(channel)( + ChannelVar.FROM_EXTERNAL_MEDIA + ) + )?.value === "true" + ); + } +} + +export { VoiceDispatcher }; diff --git a/mods/apiserver/src/voice/connectToAri.ts b/mods/apiserver/src/voice/connectToAri.ts new file mode 100644 index 000000000..044dece03 --- /dev/null +++ b/mods/apiserver/src/voice/connectToAri.ts @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import ariClient from "ari-client"; +import { connect } from "nats"; +import wait from "wait-port"; +import { createCreateContainer } from "./integrations"; +import { createCreateVoiceClient } from "./createCreateVoiceClient"; +import { AriEvent } from "./types"; +import { VoiceDispatcher } from "./VoiceDispatcher"; +import { prisma } from "../core/db"; +import { + ASTERISK_ARI_PROXY_URL, + ASTERISK_ARI_SECRET, + ASTERISK_ARI_USERNAME, + INTEGRATIONS_FILE, + NATS_URL +} from "../envs"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +const connection = { + host: ASTERISK_ARI_PROXY_URL.split("//")[1].split(":")[0], + port: parseInt(ASTERISK_ARI_PROXY_URL.split("//")[1].split(":")[1]), + timeout: 5000, + output: "silent" as const +}; + +async function connectToAri(filesServer) { + logger.info("waiting for asterisk server"); + const open = await wait(connection); + if (open) { + const ari = await ariClient.connect( + ASTERISK_ARI_PROXY_URL, + ASTERISK_ARI_USERNAME, + ASTERISK_ARI_SECRET + ); + + ari.on(AriEvent.WEB_SOCKET_RECONNECTING, () => { + logger.info("reconnecting to asterisk"); + }); + + ari.on(AriEvent.WEB_SOCKET_MAX_RETRIES, () => { + logger.error("max retries reconnecting to asterisk"); + attemptReconnection(filesServer); + }); + + logger.info("asterisk is ready"); + + const createContainer = createCreateContainer(prisma, INTEGRATIONS_FILE); + + const nats = await connect({ servers: NATS_URL, maxReconnectAttempts: -1 }); + + const dispatcher = new VoiceDispatcher( + ari, + nats, + createCreateVoiceClient(createContainer, filesServer) + ); + + dispatcher.start(); + } else { + logger.error("asterisk is not ready"); + process.exit(1); + } +} + +function attemptReconnection(filesServer) { + logger.info("attempting to reconnect in 5 seconds..."); + setTimeout(() => { + connectToAri(filesServer); + }, 5000); // Reconnect after 5 seconds +} + +export { connectToAri }; diff --git a/mods/apiserver/src/voice/createCreateVoiceClient.ts b/mods/apiserver/src/voice/createCreateVoiceClient.ts new file mode 100644 index 000000000..23a337713 --- /dev/null +++ b/mods/apiserver/src/voice/createCreateVoiceClient.ts @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createGenerateCallAccessToken } from "@fonoster/identity"; +import { getLogger } from "@fonoster/logger"; +import { Channel, Client, StasisStart } from "ari-client"; +import { CreateContainer } from "./integrations/types"; +import { ChannelVar, VoiceClient } from "./types"; +import { createGetChannelVarWithoutThrow } from "./utils/createGetChannelVarWithoutThrow"; +import { VoiceClientImpl } from "./VoiceClientImpl"; +import { identityConfig } from "../core/identityConfig"; +import { mapCallDirectionToEnum } from "../events/mapCallDirectionToEnum"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +const generateCallAccessToken = createGenerateCallAccessToken(identityConfig); + +// Note: By the time the call arrives here the owner of the app MUST be authenticated +function createCreateVoiceClient( + createContainer: CreateContainer, + filesServer +) { + return async function createVoiceClient(params: { + ari: Client; + event: StasisStart; + channel: Channel; + }): Promise { + const { ari, event, channel } = params; + const { id: sessionRef, caller } = event.channel; + const { name: callerName, number: callerNumber } = caller; + + const getChannelVar = createGetChannelVarWithoutThrow(channel); + + // Variables set by Asterisk's dialplan + const callDirection = (await getChannelVar(ChannelVar.CALL_DIRECTION)) + ?.value; + const appRef = (await getChannelVar(ChannelVar.APP_REF))?.value; + const ingressNumber = + (await getChannelVar(ChannelVar.INGRESS_NUMBER))?.value || ""; + + const { accessKeyId, endpoint, tts, stt } = await createContainer(appRef); + + const sessionToken = await generateCallAccessToken({ accessKeyId, appRef }); + + const metadataStr = (await getChannelVar(ChannelVar.METADATA))?.value; + + const config = { + appRef, + sessionRef, + accessKeyId, + endpoint, + callerName, + callerNumber, + ingressNumber, + sessionToken, + callDirection: mapCallDirectionToEnum(callDirection), + metadata: metadataStr ? JSON.parse(metadataStr) : {} + }; + + logger.verbose("creating voice client with config: ", { + appRef, + callerNumber, + ingressNumber + }); + + return new VoiceClientImpl({ ari, config, tts, stt }, filesServer); + }; +} + +export { createCreateVoiceClient }; diff --git a/mods/apiserver/src/voice/errors/ChannelVarNotFoundError.ts b/mods/apiserver/src/voice/errors/ChannelVarNotFoundError.ts new file mode 100644 index 000000000..6d945ea73 --- /dev/null +++ b/mods/apiserver/src/voice/errors/ChannelVarNotFoundError.ts @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ChannelVar } from "../types"; + +class ChannelVarNotFoundError extends Error { + constructor(variable: ChannelVar) { + super(`Channel variable not found: ${variable}`); + this.name = this.constructor.name; + } +} + +export { ChannelVarNotFoundError }; diff --git a/mods/apiserver/src/voice/errors/MethodNotImplementedError.ts b/mods/apiserver/src/voice/errors/MethodNotImplementedError.ts new file mode 100644 index 000000000..b486def14 --- /dev/null +++ b/mods/apiserver/src/voice/errors/MethodNotImplementedError.ts @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class MethodNotImplementedError extends Error { + constructor() { + super("Method not implemented! Use derived class"); + } +} + +export { MethodNotImplementedError }; diff --git a/mods/apiserver/src/voice/errors/index.ts b/mods/apiserver/src/voice/errors/index.ts new file mode 100644 index 000000000..5225a629c --- /dev/null +++ b/mods/apiserver/src/voice/errors/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./ChannelVarNotFoundError"; +export * from "./MethodNotImplementedError"; diff --git a/mods/apiserver/src/voice/handlers/createAnswerHandler.ts b/mods/apiserver/src/voice/handlers/createAnswerHandler.ts new file mode 100644 index 000000000..cf0192ee9 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/createAnswerHandler.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VerbRequest } from "@fonoster/common"; +import { Client } from "ari-client"; +import { VoiceClient } from "../types"; +import { withErrorHandling } from "./utils/withErrorHandling"; + +function createAnswerHandler(ari: Client, voiceClient: VoiceClient) { + return withErrorHandling(async (request: VerbRequest) => { + const { sessionRef } = request; + + await ari.channels.answer({ channelId: sessionRef }); + + voiceClient.sendResponse({ + answerResponse: { + sessionRef + } + }); + }); +} + +export { createAnswerHandler }; diff --git a/mods/apiserver/src/voice/handlers/createHangupHandler.ts b/mods/apiserver/src/voice/handlers/createHangupHandler.ts new file mode 100644 index 000000000..68bf295c8 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/createHangupHandler.ts @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VerbRequest } from "@fonoster/common"; +import { Client } from "ari-client"; +import { VoiceClient } from "../types"; +import { withErrorHandling } from "./utils/withErrorHandling"; + +function createHangupHandler(ari: Client, voiceClient: VoiceClient) { + return withErrorHandling(async (request: VerbRequest) => { + const { sessionRef } = request; + + // Give some time for the last sound to play + setTimeout(() => { + ari.channels.hangup({ channelId: sessionRef }); + + voiceClient.sendResponse({ + hangupResponse: { + sessionRef + } + }); + + voiceClient.close(); + }, 2000); + }); +} + +export { createHangupHandler }; diff --git a/mods/apiserver/src/voice/handlers/createMuteHandler.ts b/mods/apiserver/src/voice/handlers/createMuteHandler.ts new file mode 100644 index 000000000..c2d545aa9 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/createMuteHandler.ts @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { MuteRequest } from "@fonoster/common"; +import { Client } from "ari-client"; +import { VoiceClient } from "../types"; +import { withErrorHandling } from "./utils/withErrorHandling"; + +function createMuteHandler(ari: Client, voiceClient: VoiceClient) { + return withErrorHandling(async (request: MuteRequest) => { + const { sessionRef, direction } = request; + + await ari.channels.mute({ + channelId: sessionRef, + direction + }); + + voiceClient.sendResponse({ + muteResponse: { + sessionRef + } + }); + }); +} + +export { createMuteHandler }; diff --git a/mods/apiserver/src/voice/handlers/createPlayDtmfHandler.ts b/mods/apiserver/src/voice/handlers/createPlayDtmfHandler.ts new file mode 100644 index 000000000..e2f6f1efa --- /dev/null +++ b/mods/apiserver/src/voice/handlers/createPlayDtmfHandler.ts @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { PlayDtmfRequest } from "@fonoster/common"; +import { Client } from "ari-client"; +import { VoiceClient } from "../types"; +import { withErrorHandling } from "./utils/withErrorHandling"; + +function createPlayDtmfHandler(ari: Client, voiceClient: VoiceClient) { + return withErrorHandling(async (request: PlayDtmfRequest) => { + const { sessionRef, digits } = request; + + await ari.channels.sendDTMF({ + channelId: sessionRef, + dtmf: digits + }); + + voiceClient.sendResponse({ + playDtmfResponse: { + sessionRef + } + }); + }); +} + +export { createPlayDtmfHandler }; diff --git a/mods/apiserver/src/voice/handlers/createPlayHandler.ts b/mods/apiserver/src/voice/handlers/createPlayHandler.ts new file mode 100644 index 000000000..4952071f8 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/createPlayHandler.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { PlayRequest } from "@fonoster/common"; +import { Client } from "ari-client"; +import { nanoid } from "nanoid"; +import { VoiceClient } from "../types"; +import { awaitForPlaybackFinished } from "./utils/awaitForPlaybackFinished"; +import { withErrorHandling } from "./utils/withErrorHandling"; + +function createPlayHandler(ari: Client, voiceClient: VoiceClient) { + return withErrorHandling(async (request: PlayRequest) => { + const { sessionRef } = request; + + const playbackRef = request.playbackRef || nanoid(10); + + await ari.channels.play({ + channelId: sessionRef, + media: `sound:${request.url}`, + playbackId: playbackRef + }); + + await awaitForPlaybackFinished(ari, playbackRef); + + voiceClient.sendResponse({ + playResponse: { + sessionRef, + playbackRef + } + }); + }); +} + +export { createPlayHandler }; diff --git a/mods/apiserver/src/voice/handlers/createPlaybackControlHandler.ts b/mods/apiserver/src/voice/handlers/createPlaybackControlHandler.ts new file mode 100644 index 000000000..d1e4d0e16 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/createPlaybackControlHandler.ts @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + PlaybackControlAction, + PlaybackControlRequest +} from "@fonoster/common"; +import { Client } from "ari-client"; +import { z } from "zod"; +import { VoiceClient } from "../types"; +import { withErrorHandling } from "./utils/withErrorHandling"; + +const requestSchema = z.object({ + sessionRef: z.string(), + playbackRef: z.string().optional(), + action: z.nativeEnum(PlaybackControlAction, { + message: "Invalid playback control action." + }) +}); + +function createPlaybackControlHandler(ari: Client, voiceClient: VoiceClient) { + return withErrorHandling( + async (playbackControlReq: PlaybackControlRequest) => { + requestSchema.parse(playbackControlReq); + + const { + sessionRef, + playbackRef: playbackId, + action + } = playbackControlReq; + + try { + if (action === PlaybackControlAction.STOP) { + await ari.playbacks.stop({ playbackId }); + } else { + await ari.playbacks.control({ playbackId, operation: action }); + } + } catch (err) { + // Ignore error + } + + voiceClient.sendResponse({ + playbackControlResponse: { + sessionRef + } + }); + } + ); +} + +export { createPlaybackControlHandler }; diff --git a/mods/apiserver/src/voice/handlers/createRecordHandler.ts b/mods/apiserver/src/voice/handlers/createRecordHandler.ts new file mode 100644 index 000000000..c18b54b76 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/createRecordHandler.ts @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { RecordFormat, RecordRequest } from "@fonoster/common"; +import { Client } from "ari-client"; +import { nanoid } from "nanoid"; +import { VoiceClient } from "../types"; +import { awaitForRecordingFinished } from "./utils/awaitForRecordingFinished"; +import { withErrorHandling } from "./utils/withErrorHandling"; + +function createRecordHandler(ari: Client, voiceClient: VoiceClient) { + return withErrorHandling(async (request: RecordRequest) => { + const { sessionRef, maxDuration, maxSilence, beep, finishOnKey } = request; + const name = nanoid(10); + + await ari.channels.record({ + channelId: sessionRef, + format: RecordFormat.WAV, + name, + beep, + maxDurationSeconds: maxDuration, + maxSilenceSeconds: maxSilence, + terminateOn: finishOnKey + }); + + const { duration } = await awaitForRecordingFinished(ari, name); + + voiceClient.sendResponse({ + recordResponse: { + sessionRef, + name, + format: RecordFormat.WAV, + duration + } + }); + }); +} + +export { createRecordHandler }; diff --git a/mods/apiserver/src/voice/handlers/createSayHandler.ts b/mods/apiserver/src/voice/handlers/createSayHandler.ts new file mode 100644 index 000000000..acea4d51b --- /dev/null +++ b/mods/apiserver/src/voice/handlers/createSayHandler.ts @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { SayRequest } from "@fonoster/common"; +import { Client } from "ari-client"; +import { nanoid } from "nanoid"; +import { struct } from "pb-util"; +import { z } from "zod"; +import { awaitForPlaybackFinished } from "./utils/awaitForPlaybackFinished"; +import { withErrorHandling } from "./utils/withErrorHandling"; +import { APISERVER_HOST, HTTP_BRIDGE_PORT } from "../../envs"; +import { VoiceClient } from "../types"; + +const sayRequestSchema = z.object({ + text: z.string(), + sessionRef: z.string(), + playbackRef: z.string().optional(), + options: z.record(z.unknown()).optional() +}); + +const getMediaUrl = (filename: string) => + `sound:http://${APISERVER_HOST}:${HTTP_BRIDGE_PORT}/api/sounds/${filename}.sln16`; + +function createSayHandler(ari: Client, voiceClient: VoiceClient) { + return withErrorHandling(async (request: SayRequest) => { + const { sessionRef: channelId } = request; + + sayRequestSchema.parse(request); + + const playbackRef = request.playbackRef || nanoid(10); + + const mediaId = await voiceClient.synthesize( + request.text, + request.options ? struct.decode(request.options) : {} + ); + + await ari.channels.play({ + channelId, + media: getMediaUrl(mediaId), + playbackId: playbackRef + }); + + await awaitForPlaybackFinished(ari, playbackRef); + + voiceClient.sendResponse({ + sayResponse: { + playbackRef + } + }); + }); +} + +export { createSayHandler }; diff --git a/mods/apiserver/src/voice/handlers/createStreamGatherHandler.ts b/mods/apiserver/src/voice/handlers/createStreamGatherHandler.ts new file mode 100644 index 000000000..0116593c5 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/createStreamGatherHandler.ts @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { StartStreamGatherRequest, StreamGatherSource } from "@fonoster/common"; +import { z } from "zod"; +import { VoiceClient } from "../types"; +import { withErrorHandling } from "./utils/withErrorHandling"; + +const gatherRequestSchema = z.object({ + source: z.optional( + z.nativeEnum(StreamGatherSource, { + message: "Invalid stream gather source." + }) + ) +}); + +function createStreamGatherHandler(voiceClient: VoiceClient) { + return withErrorHandling(async (request: StartStreamGatherRequest) => { + const { sessionRef, source } = request; + + gatherRequestSchema.parse(request); + + const effectiveSource = source || StreamGatherSource.SPEECH_AND_DTMF; + + if (effectiveSource.includes(StreamGatherSource.DTMF)) { + voiceClient.startDtmfGather(sessionRef, (event) => { + const { digit } = event; + voiceClient.sendResponse({ + streamGatherPayload: { + sessionRef, + digit, + responseTime: 0 + } + }); + }); + } + + if (effectiveSource.includes(StreamGatherSource.SPEECH)) { + voiceClient.startSpeechGather((event) => { + const { speech, responseTime } = event; + voiceClient.sendResponse({ + streamGatherPayload: { + sessionRef, + speech, + responseTime + } + }); + }); + } + + voiceClient.sendResponse({ + startStreamGatherResponse: { + sessionRef + } + }); + }); +} + +export { createStreamGatherHandler }; diff --git a/mods/apiserver/src/voice/handlers/createStreamHandler.ts b/mods/apiserver/src/voice/handlers/createStreamHandler.ts new file mode 100644 index 000000000..9ccfcc427 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/createStreamHandler.ts @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + StartStreamRequest, + StreamAudioFormat, + StreamDirection, + StreamMessageType +} from "@fonoster/common"; +import { z } from "zod"; +import { VoiceClient } from "../types"; +import { withErrorHandling } from "./utils/withErrorHandling"; + +const streamRequestSchema = z.object({ + direction: z + .nativeEnum(StreamDirection, { message: "Invalid stream direction" }) + .optional(), + format: z + .nativeEnum(StreamAudioFormat, { message: "Invalid stream audio format" }) + .optional() +}); + +function createStreamHandler(voiceClient: VoiceClient) { + return withErrorHandling(async (request: StartStreamRequest) => { + const { sessionRef, direction, format } = request; + + streamRequestSchema.parse(request); + + const effectiveDirection = direction || StreamDirection.BOTH; + const effectiveFormat = format || StreamAudioFormat.WAV; + + // FIXME: Implement stream IN and correct streamRef + if ( + effectiveDirection.includes(StreamDirection.OUT) || + effectiveDirection === StreamDirection.BOTH + ) { + voiceClient.getTranscriptionsStream().on("data", (data) => { + voiceClient.sendResponse({ + streamPayload: { + sessionRef, + type: StreamMessageType.AUDIO_OUT, + data, + streamRef: "fixme", + format: effectiveFormat + } + }); + }); + } + + voiceClient.sendResponse({ + startStreamResponse: { + sessionRef, + streamRef: "fixme" + } + }); + }); +} + +export { createStreamHandler }; diff --git a/mods/apiserver/src/voice/handlers/createUnmuteHandler.ts b/mods/apiserver/src/voice/handlers/createUnmuteHandler.ts new file mode 100644 index 000000000..e59997ebc --- /dev/null +++ b/mods/apiserver/src/voice/handlers/createUnmuteHandler.ts @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { MuteRequest } from "@fonoster/common"; +import { Client } from "ari-client"; +import { VoiceClient } from "../types"; +import { withErrorHandling } from "./utils/withErrorHandling"; + +function createUnmuteHandler(ari: Client, voiceClient: VoiceClient) { + return withErrorHandling(async (request: MuteRequest) => { + const { sessionRef, direction } = request; + + await ari.channels.unmute({ + channelId: sessionRef, + direction + }); + + voiceClient.sendResponse({ + muteResponse: { + sessionRef + } + }); + }); +} + +export { createUnmuteHandler }; diff --git a/mods/apiserver/src/voice/handlers/dial/createDialHandler.ts b/mods/apiserver/src/voice/handlers/dial/createDialHandler.ts new file mode 100644 index 000000000..0f1a94cdd --- /dev/null +++ b/mods/apiserver/src/voice/handlers/dial/createDialHandler.ts @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { DialRequest, DialStatus, STASIS_APP_NAME } from "@fonoster/common"; +import { Client } from "ari-client"; +import { v4 as uuidv4 } from "uuid"; +import { handleChannelLeftBridge } from "./handleChannelLeftBridge"; +import { handleStasisEnd } from "./handleStasisEnd"; +import { handleStasisStart } from "./handleStasisStart"; +import { ASTERISK_SYSTEM_DOMAIN, ASTERISK_TRUNK } from "../../../envs"; +import { createHandleDialEventsWithVoiceClient } from "../../../utils"; +import { AriEvent as AE, ChannelVar, VoiceClient } from "../../types"; +import { createGetChannelVar } from "../../utils/createGetChannelVar"; + +// TODO: Needs request validation +function createDialHandler(ari: Client, voiceClient: VoiceClient) { + return async function dial(request: DialRequest) { + const { sessionRef: channelId, destination, timeout } = request; + + const bridge = await ari.bridges.create({ + type: "mixing" + }); + + // eslint-disable-next-line new-cap + const dialed = ari.Channel(); + + await bridge.addChannel({ channel: channelId }); + + const callerChannel = await ari.channels.get({ channelId }); + const getChannelVar = createGetChannelVar(callerChannel); + + const ingressNumber = (await getChannelVar(ChannelVar.INGRESS_NUMBER)) + .value; + + const ref = uuidv4(); + + await dialed.originate({ + app: STASIS_APP_NAME, + endpoint: `PJSIP/${ASTERISK_TRUNK}/sip:${destination}@${ASTERISK_SYSTEM_DOMAIN}`, + timeout, + variables: { + "PJSIP_HEADER(add,X-Call-Ref)": ref, + "PJSIP_HEADER(add,X-Dod-Number)": ingressNumber, + "PJSIP_HEADER(add,X-Is-Api-Originated-Type)": "true" + } + }); + + await ari.channels.ring({ channelId }); + + dialed.once( + AE.STASIS_START, + handleStasisStart({ ari, request, bridge, dialed }) + ); + + dialed.once( + AE.CHANNEL_LEFT_BRIDGE, + handleChannelLeftBridge({ bridge, dialed }) + ); + + dialed.once(AE.STASIS_END, handleStasisEnd(request)); + + dialed.on(AE.DIAL, createHandleDialEventsWithVoiceClient(voiceClient)); + + voiceClient.sendResponse({ + dialResponse: { + status: DialStatus.TRYING + } + }); + }; +} + +export { createDialHandler }; diff --git a/mods/apiserver/src/voice/handlers/dial/handleChannelLeftBridge.ts b/mods/apiserver/src/voice/handlers/dial/handleChannelLeftBridge.ts new file mode 100644 index 000000000..dcbfda4ac --- /dev/null +++ b/mods/apiserver/src/voice/handlers/dial/handleChannelLeftBridge.ts @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Bridge, Channel } from "ari-client"; + +function handleChannelLeftBridge(params: { bridge: Bridge; dialed: Channel }) { + const { dialed, bridge } = params; + + return async () => { + try { + dialed.hangup(); + } catch (e) { + /** We can only try */ + } + + try { + await bridge.destroy(); + } catch (e) { + /* Ignore because the bridge might not exist anymore */ + } + }; +} + +export { handleChannelLeftBridge }; diff --git a/mods/apiserver/src/voice/handlers/dial/handleStasisEnd.ts b/mods/apiserver/src/voice/handlers/dial/handleStasisEnd.ts new file mode 100644 index 000000000..5260621c7 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/dial/handleStasisEnd.ts @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { DialRequest } from "@fonoster/common"; + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function handleStasisEnd(request: DialRequest) { + return async () => { + // Fixme: Should upload the recording to the storage service + // no-op + }; +} + +export { handleStasisEnd }; diff --git a/mods/apiserver/src/voice/handlers/dial/handleStasisStart.ts b/mods/apiserver/src/voice/handlers/dial/handleStasisStart.ts new file mode 100644 index 000000000..3a9d56ee7 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/dial/handleStasisStart.ts @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { DialRecordDirection, DialRequest } from "@fonoster/common"; +import { Bridge, Channel, Client } from "ari-client"; +import { recordChannel } from "./recordChannel"; + +function handleStasisStart(params: { + ari: Client; + request: DialRequest; + bridge: Bridge; + dialed: Channel; +}) { + const { ari, request, dialed, bridge } = params; + const { recordDirection } = request; + + return async (_: undefined, channel: Channel) => { + try { + await bridge.addChannel({ channel: dialed.id }); + + await ari.channels.ringStop({ channelId: channel.id }); + + if ( + [DialRecordDirection.IN, DialRecordDirection.BOTH].includes( + recordDirection + ) + ) { + recordChannel(ari, DialRecordDirection.IN, channel.id); + } + + if ( + [DialRecordDirection.OUT, DialRecordDirection.BOTH].includes( + recordDirection + ) + ) { + recordChannel(ari, DialRecordDirection.OUT, dialed.id); + } + } catch (e) { + // It is possible that the originating side was already closed + await dialed.hangup(); + } + }; +} + +export { handleStasisStart }; diff --git a/mods/apiserver/src/voice/handlers/dial/index.ts b/mods/apiserver/src/voice/handlers/dial/index.ts new file mode 100644 index 000000000..4210e622a --- /dev/null +++ b/mods/apiserver/src/voice/handlers/dial/index.ts @@ -0,0 +1,21 @@ +import { createDialHandler } from "./createDialHandler"; + +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./createDialHandler"; diff --git a/mods/apiserver/src/voice/handlers/dial/recordChannel.ts b/mods/apiserver/src/voice/handlers/dial/recordChannel.ts new file mode 100644 index 000000000..36bf62261 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/dial/recordChannel.ts @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + DialRecordDirection, + RecordFormat, + STASIS_APP_NAME +} from "@fonoster/common"; +import { Client } from "ari-client"; + +async function recordChannel( + ari: Client, + direction: DialRecordDirection.IN | DialRecordDirection.OUT, + sessionRef: string +) { + const spy = direction.toLowerCase(); + + const channel = await ari.channels.snoopChannel({ + app: STASIS_APP_NAME, + channelId: sessionRef, + spy + }); + + return ari.channels.record({ + channelId: channel.id, + format: RecordFormat.WAV, + name: `${sessionRef}_${spy}` + }); +} + +export { recordChannel }; diff --git a/mods/apiserver/src/voice/handlers/gather/createGatherHandler.ts b/mods/apiserver/src/voice/handlers/gather/createGatherHandler.ts new file mode 100644 index 000000000..306bcf81b --- /dev/null +++ b/mods/apiserver/src/voice/handlers/gather/createGatherHandler.ts @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GatherRequest, + GatherSource, + MUST_BE_A_SINGLE_CHARACTER, + POSITIVE_INTEGER_MESSAGE +} from "@fonoster/common"; +import { z } from "zod"; +import { getTimeoutPromise } from "./getTimeoutPromise"; +import { VoiceClient } from "../../types"; +import { isDtmf } from "../utils"; +import { withErrorHandling } from "../utils/withErrorHandling"; + +const gatherRequestSchema = z.object({ + source: z + .optional(z.nativeEnum(GatherSource, { message: "Invalid gather source" })) + .optional(), + maxDigits: z + .number() + .int({ + message: POSITIVE_INTEGER_MESSAGE + }) + .positive({ + message: POSITIVE_INTEGER_MESSAGE + }) + .optional(), + finishOnKey: z + .string() + .regex(/^[0-9*#]$/) + .max(1, { message: MUST_BE_A_SINGLE_CHARACTER }) + .optional() +}); + +function createGatherHandler(voiceClient: VoiceClient) { + return withErrorHandling(async (request: GatherRequest) => { + const { sessionRef, source, timeout, finishOnKey, maxDigits } = request; + + gatherRequestSchema.parse(request); + + const { timeoutPromise, effectiveTimeout } = getTimeoutPromise(timeout); + + const effectiveSource = source || GatherSource.SPEECH_AND_DTMF; + + const promises = [timeoutPromise]; + + if (effectiveSource.includes(GatherSource.SPEECH)) { + promises.push(voiceClient.transcribe().then((result) => result)); + } + + if (effectiveSource.includes(GatherSource.DTMF)) { + promises.push( + voiceClient + .waitForDtmf({ + sessionRef, + finishOnKey, + maxDigits, + timeout: effectiveTimeout, + onDigitReceived: timeoutPromise.cancelGlobalTimer + }) + .then((result) => result) + ); + } + + const result = (await Promise.race(promises)) as { + responseTime: number; + speech?: string; + digits?: string; + }; + + voiceClient.sendResponse({ + gatherResponse: { + sessionRef, + responseTime: result.responseTime, + speech: isDtmf(result.digits) ? undefined : result.speech, + digits: isDtmf(result.digits) ? result.digits : undefined + } + }); + }); +} + +export { createGatherHandler }; diff --git a/mods/apiserver/src/voice/handlers/gather/getTimeoutPromise.ts b/mods/apiserver/src/voice/handlers/gather/getTimeoutPromise.ts new file mode 100644 index 000000000..4a2bca745 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/gather/getTimeoutPromise.ts @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +interface PromiseWithResetTimer extends Promise { + cancelGlobalTimer?: () => void; +} + +function getTimeoutPromise(timeout: number) { + const effectiveTimeout = timeout || 5000; + + let timeoutId: ReturnType | null = null; + + const timeoutPromise = new Promise((resolve) => { + timeoutId = setTimeout(() => { + resolve(""); + }, effectiveTimeout); + }) as PromiseWithResetTimer; + + timeoutPromise.cancelGlobalTimer = () => { + if (timeoutId) { + clearTimeout(timeoutId); + } + }; + + return { timeoutPromise, effectiveTimeout }; +} + +export { getTimeoutPromise }; diff --git a/mods/apiserver/src/voice/handlers/index.ts b/mods/apiserver/src/voice/handlers/index.ts new file mode 100644 index 000000000..a8c778da9 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/index.ts @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./createAnswerHandler"; +export * from "./createHangupHandler"; +export * from "./createMuteHandler"; +export * from "./createStreamHandler"; +export * from "./createPlayHandler"; +export * from "./createPlayDtmfHandler"; +export * from "./createPlaybackControlHandler"; +export * from "./createRecordHandler"; +export * from "./createSayHandler"; +export * from "./createStreamGatherHandler"; +export * from "./createUnmuteHandler"; +export * from "./dial/createDialHandler"; +export * from "./gather/createGatherHandler"; diff --git a/mods/apiserver/src/voice/handlers/utils/awaitForPlaybackFinished.ts b/mods/apiserver/src/voice/handlers/utils/awaitForPlaybackFinished.ts new file mode 100644 index 000000000..3e308d07b --- /dev/null +++ b/mods/apiserver/src/voice/handlers/utils/awaitForPlaybackFinished.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Client } from "ari-client"; +import { AriEvent } from "../../types"; + +const awaitForPlaybackFinished = async ( + ari: Client, + playbackRef: string +): Promise => { + return new Promise((resolve) => { + const listener = (_: unknown, playback: { id: string }) => { + if (playbackRef === playback.id) { + ari.removeListener(AriEvent.PLAYBACK_FINISHED, listener); + resolve(); + } + }; + + ari.on(AriEvent.PLAYBACK_FINISHED, listener); + }); +}; + +export { awaitForPlaybackFinished }; diff --git a/mods/apiserver/src/voice/handlers/utils/awaitForRecordingFinished.ts b/mods/apiserver/src/voice/handlers/utils/awaitForRecordingFinished.ts new file mode 100644 index 000000000..378994f9f --- /dev/null +++ b/mods/apiserver/src/voice/handlers/utils/awaitForRecordingFinished.ts @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { GrpcError } from "@fonoster/common"; +import { status } from "@grpc/grpc-js"; +import { Client, RecordingFinished } from "ari-client"; +import { AriEvent } from "../../types"; + +async function awaitForRecordingFinished( + ari: Client, + name: string +): Promise<{ duration: number }> { + return new Promise((resolve, reject) => { + const listener = (event: RecordingFinished) => { + if ("cause" in event.recording) { + ari.removeListener(AriEvent.RECORDING_FINISHED, listener); + ari.removeListener(AriEvent.RECORDING_FAILED, listener); + reject(new GrpcError(status.INTERNAL, "Recording failed")); + } else if (name === event.recording.name) { + ari.removeListener(AriEvent.RECORDING_FINISHED, listener); + ari.removeListener(AriEvent.RECORDING_FAILED, listener); + resolve({ duration: event.recording.duration }); + } + }; + + ari.on(AriEvent.RECORDING_FINISHED, listener); + ari.on(AriEvent.RECORDING_FAILED, listener); + }); +} + +export { awaitForRecordingFinished }; diff --git a/mods/apiserver/src/voice/handlers/utils/index.ts b/mods/apiserver/src/voice/handlers/utils/index.ts new file mode 100644 index 000000000..a5c335e04 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/utils/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./awaitForPlaybackFinished"; +export * from "./awaitForRecordingFinished"; +export * from "./isDtmf"; diff --git a/mods/apiserver/src/voice/handlers/utils/isDtmf.ts b/mods/apiserver/src/voice/handlers/utils/isDtmf.ts new file mode 100644 index 000000000..c653c7228 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/utils/isDtmf.ts @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function isDtmf(digit: string) { + return /^[0-9*#]+$/.test(digit); +} + +export { isDtmf }; diff --git a/mods/apiserver/src/voice/handlers/utils/textChunksByClause.ts b/mods/apiserver/src/voice/handlers/utils/textChunksByClause.ts new file mode 100644 index 000000000..9e31bde2f --- /dev/null +++ b/mods/apiserver/src/voice/handlers/utils/textChunksByClause.ts @@ -0,0 +1,45 @@ +/* eslint-disable no-loops/no-loops */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const CLAUSE_BOUNDARIES = /[.?!;]+/g; + +function textChunkTextByClause(text: string) { + const boundaries = [...text.matchAll(CLAUSE_BOUNDARIES)]; + const chunks = []; + let start = 0; + + for (let i = 0; i < boundaries.length; i++) { + if (chunks.length >= 2) { + break; + } + const boundary = boundaries[i]; + const end = boundary.index + boundary[0].length; + chunks.push(text.slice(start, end).trim()); + start = end; + } + + const remainingText = text.slice(start).trim(); + if (remainingText.length > 0) { + chunks.push(remainingText); + } + + return chunks; +} + +export { textChunkTextByClause }; diff --git a/mods/apiserver/src/voice/handlers/utils/textChunksByFirstNaturalPause.ts b/mods/apiserver/src/voice/handlers/utils/textChunksByFirstNaturalPause.ts new file mode 100644 index 000000000..eeed2c643 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/utils/textChunksByFirstNaturalPause.ts @@ -0,0 +1,36 @@ +/* eslint-disable no-loops/no-loops */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const CLAUSE_BOUNDARIES = /[.?!;]+/g; + +function textChunksByFirstNaturalPause(text: string) { + const boundary = text.match(CLAUSE_BOUNDARIES)?.[0]; + if (!boundary) { + // No pause found, return the entire text as the first chunk + return [text.trim()]; + } + + const boundaryIndex = text.indexOf(boundary) + boundary.length; + const firstChunk = text.slice(0, boundaryIndex).trim(); + const secondChunk = text.slice(boundaryIndex).trim(); + + return secondChunk ? [firstChunk, secondChunk] : [firstChunk]; +} + +export { textChunksByFirstNaturalPause }; diff --git a/mods/apiserver/src/voice/handlers/utils/withErrorHandling.ts b/mods/apiserver/src/voice/handlers/utils/withErrorHandling.ts new file mode 100644 index 000000000..f9803b409 --- /dev/null +++ b/mods/apiserver/src/voice/handlers/utils/withErrorHandling.ts @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VerbRequest } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { z } from "zod"; +import { fromError } from "zod-validation-error"; + +type VerbHandler = (request: VerbRequest) => Promise; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function withErrorHandling(fn: VerbHandler) { + return async (request: VerbRequest) => { + try { + return await fn(request); + } catch (err) { + if (err instanceof z.ZodError) { + const validationError = fromError(err, { + prefix: null + }); + logger.error("Error:", { + message: validationError.toString() + }); + } else if ( + err.message !== "Channel not found" && + !err.message.includes("Channel not found") + ) { + throw err; + } + } + }; +} + +export { withErrorHandling }; diff --git a/mods/apiserver/src/voice/integrations/ApplicationNotFoundError.ts b/mods/apiserver/src/voice/integrations/ApplicationNotFoundError.ts new file mode 100644 index 000000000..9bd78be08 --- /dev/null +++ b/mods/apiserver/src/voice/integrations/ApplicationNotFoundError.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class ApplicationNotFoundError extends Error { + constructor(appRef: string) { + super(`Application not found: ${appRef}`); + this.name = this.constructor.name; + } +} + +export { ApplicationNotFoundError }; diff --git a/mods/apiserver/src/voice/integrations/createCreateContainer.ts b/mods/apiserver/src/voice/integrations/createCreateContainer.ts new file mode 100644 index 000000000..5d922c596 --- /dev/null +++ b/mods/apiserver/src/voice/integrations/createCreateContainer.ts @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fs from "fs"; +import { getLogger } from "@fonoster/logger"; +import { Application } from "@fonoster/types"; +import { z } from "zod"; +import { fromError } from "zod-validation-error"; +import { ApplicationNotFoundError } from "./ApplicationNotFoundError"; +import { getSttConfig } from "./getSttConfig"; +import { getTtsConfig } from "./getTtsConfig"; +import { IntegrationsContainer } from "./types"; +import { Prisma } from "../../core/db"; +import { SpeechToTextFactory } from "../stt/SpeechToTextFactory"; +import { TextToSpeechFactory } from "../tts/TextToSpeechFactory"; +import { + AUTOPILOT_INTERNAL_ADDRESS, + AUTOPILOT_SPECIAL_LOCAL_ADDRESS, + WELCOME_DEMO_SPECIAL_LOCAL_ADDRESS +} from "@fonoster/common"; +import { APISERVER_HOST } from "../../envs"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +const integrationsConfigSchema = z.array( + z.object({ + name: z.string(), + productRef: z.string(), + type: z.enum(["tts", "stt", "llm"]), + credentials: z.record(z.unknown()) + }) +); + +function createCreateContainer(prisma: Prisma, pathToIntegrations: string) { + logger.verbose("loading integrations config", { pathToIntegrations }); + + const integrationsFile = fs.readFileSync(pathToIntegrations, "utf8"); + const integrations = JSON.parse(integrationsFile); + + try { + integrationsConfigSchema.parse(integrations); + } catch (e) { + // fatal error + const message = fromError(e, { prefix: null }).toString(); + logger.error("integrations config is invalid", { message }); + process.exit(1); + } + + return async function createContainer( + appRef: string + ): Promise { + logger.verbose("creating integrations container", { appRef }); + + const app = await prisma.application.findUnique({ + where: { ref: appRef }, + include: { + textToSpeech: true, + speechToText: true, + intelligence: true + } + }); + + if (!app) { + throw new ApplicationNotFoundError(appRef); + } + + const ttsConfig = getTtsConfig(integrations, app as Application); + const sttConfig = getSttConfig(integrations, app as Application); + + const tts = TextToSpeechFactory.getEngine( + app.textToSpeech.productRef, + ttsConfig + ); + + const stt = SpeechToTextFactory.getEngine( + app.speechToText.productRef, + sttConfig + ); + + const actualEndpoint = + app.endpoint === AUTOPILOT_SPECIAL_LOCAL_ADDRESS + ? AUTOPILOT_INTERNAL_ADDRESS + : app.endpoint === WELCOME_DEMO_SPECIAL_LOCAL_ADDRESS + ? `${APISERVER_HOST}:50051` + : app.endpoint; + + return { + ref: appRef, + accessKeyId: app.accessKeyId, + endpoint: actualEndpoint, + tts, + stt + }; + }; +} + +export { createCreateContainer }; diff --git a/mods/apiserver/src/voice/integrations/getSttConfig.ts b/mods/apiserver/src/voice/integrations/getSttConfig.ts new file mode 100644 index 000000000..fbb2cf2a0 --- /dev/null +++ b/mods/apiserver/src/voice/integrations/getSttConfig.ts @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VoiceLanguage, findIntegrationsCredentials } from "@fonoster/common"; +import { Application } from "@fonoster/types"; +import { IntegrationConfig } from "./types"; + +function getSttConfig(integrations: IntegrationConfig[], app: Application) { + const config = app.speechToText.config as { languageCode: VoiceLanguage }; + const credentials = findIntegrationsCredentials( + integrations, + app.speechToText.productRef + ); + + return { + config, + credentials + }; +} + +export { getSttConfig }; diff --git a/mods/apiserver/src/voice/integrations/getTtsConfig.ts b/mods/apiserver/src/voice/integrations/getTtsConfig.ts new file mode 100644 index 000000000..30600756f --- /dev/null +++ b/mods/apiserver/src/voice/integrations/getTtsConfig.ts @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Application } from "@fonoster/types"; +import { findIntegrationsCredentials } from "@fonoster/common"; +import { IntegrationConfig } from "./types"; + +function getTtsConfig(integrations: IntegrationConfig[], app: Application) { + const config = app.textToSpeech.config; + const credentials = findIntegrationsCredentials( + integrations, + app.textToSpeech.productRef + ); + + return { + config, + credentials + }; +} + +export { getTtsConfig }; diff --git a/mods/apiserver/src/voice/integrations/index.ts b/mods/apiserver/src/voice/integrations/index.ts new file mode 100644 index 000000000..313ee42e4 --- /dev/null +++ b/mods/apiserver/src/voice/integrations/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./createCreateContainer"; diff --git a/mods/apiserver/src/voice/integrations/types.ts b/mods/apiserver/src/voice/integrations/types.ts new file mode 100644 index 000000000..75eb39491 --- /dev/null +++ b/mods/apiserver/src/voice/integrations/types.ts @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { AbstractSpeechToText } from "../stt/AbstractSpeechToText"; +import { AbstractTextToSpeech } from "../tts/AbstractTextToSpeech"; + +type IntegrationConfig = { + productRef: string; + credentials: Record; +}; + +type IntegrationsContainer = { + ref: string; + accessKeyId: string; + endpoint: string; + tts: AbstractTextToSpeech; + stt: AbstractSpeechToText; +}; + +type CreateContainer = (appRef: string) => Promise; + +export { CreateContainer, IntegrationConfig, IntegrationsContainer }; diff --git a/mods/apiserver/src/voice/stt/AbstractSpeechToText.ts b/mods/apiserver/src/voice/stt/AbstractSpeechToText.ts new file mode 100644 index 000000000..59453f8e0 --- /dev/null +++ b/mods/apiserver/src/voice/stt/AbstractSpeechToText.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Stream } from "stream"; +import * as z from "zod"; +import { SpeechResult, StreamSpeech, SttConfig } from "./types"; +import { MethodNotImplementedError } from "../errors/MethodNotImplementedError"; +import { SpeechToText } from "../types"; + +abstract class AbstractSpeechToText + implements SpeechToText +{ + abstract readonly engineName: E; + config: T; + + constructor(config: T) { + this.config = config; + } + + abstract streamTranscribe(stream: Stream): StreamSpeech; + + abstract transcribe(stream: Stream): Promise; + + getName(): E { + return this.engineName; + } + + static getConfigValidationSchema(): z.Schema { + throw new MethodNotImplementedError(); + } + + static getCredentialsValidationSchema(): z.Schema { + throw new MethodNotImplementedError(); + } +} + +export { AbstractSpeechToText }; diff --git a/mods/apiserver/src/voice/stt/Deepgram.ts b/mods/apiserver/src/voice/stt/Deepgram.ts new file mode 100644 index 000000000..215514572 --- /dev/null +++ b/mods/apiserver/src/voice/stt/Deepgram.ts @@ -0,0 +1,176 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Stream } from "stream"; +import { Messages, VoiceLanguage } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import * as z from "zod"; +import { AbstractSpeechToText } from "./AbstractSpeechToText"; +import { + DeepgramModel, + DeepgramSttConfig, + SpeechResult, + StreamSpeech +} from "./types"; +import { SpeechToText } from "../types"; +const { + DeepgramClient, + LiveTranscriptionEvents, + createClient +} = require("@deepgram/sdk"); // Why Deepgram :( + +const ENGINE_NAME = "stt.deepgram"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +class Deepgram + extends AbstractSpeechToText + implements SpeechToText +{ + client: typeof DeepgramClient; + engineConfig: DeepgramSttConfig; + readonly engineName = ENGINE_NAME; + + constructor(config: DeepgramSttConfig) { + super(config); + this.client = createClient(config.credentials.apiKey); + this.engineConfig = config; + } + + streamTranscribe(stream: Stream): StreamSpeech { + const connection = this.client.listen.live( + buildTranscribeConfig(this.engineConfig.config) + ); + + const out = new Stream(); + + connection.on(LiveTranscriptionEvents.Open, () => { + stream.on("data", (chunk) => { + connection.send(chunk); + }); + + connection.on(LiveTranscriptionEvents.Transcript, (data) => { + if (!data.channel.alternatives[0].transcript || !data.speech_final) { + return; + } + + const words = data.channel.alternatives[0].words; + + const responseTime = + words.length > 0 + ? (words.reduce( + (acc: number, word: any) => acc + (word.end - word.start), + 0 + ) * + 1000) / + words.length + : 0; + + out.emit("data", { + speech: data.channel.alternatives[0].transcript, + responseTime + }); + }); + + connection.on(LiveTranscriptionEvents.Error, (err) => { + logger.warn("error on Deepgram connection", { err }); + connection.destroy(); + }); + }); + + return out; + } + + async transcribe(stream: Stream): Promise { + return new Promise((resolve, reject) => { + const startTime = performance.now(); + + const connection = this.client.listen.live( + buildTranscribeConfig(this.engineConfig.config) + ); + + stream.on("data", (chunk) => { + connection.send(chunk); + }); + + connection.on(LiveTranscriptionEvents.Open, () => { + connection.on(LiveTranscriptionEvents.Transcript, (data) => { + if (data.channel.alternatives[0].transcript && data.speech_final) { + const result: SpeechResult = { + speech: data.channel.alternatives[0].transcript, + isFinal: true, + responseTime: performance.now() - startTime + }; + + resolve(result); + connection.destroy(); + } + }); + + connection.on(LiveTranscriptionEvents.Error, (err) => { + logger.warn("error on Deepgram connection", { err }); + reject(err); + }); + }); + + stream.on("end", () => { + connection.destroy(); + }); + + stream.on("error", (err) => { + connection.destroy(); + reject(err); + }); + }); + } + + static getConfigValidationSchema(): z.Schema { + return z.object({ + languageCode: z + .nativeEnum(VoiceLanguage, { + message: Messages.VALID_LANGUAGE_CODE + }) + .optional(), + model: z + .nativeEnum(DeepgramModel, { message: "Invalid Deepgram model" }) + .optional() + }); + } + + static getCredentialsValidationSchema(): z.Schema { + return z.object({ + apiKey: z.string() + }); + } +} + +function buildTranscribeConfig(config: { + model: DeepgramModel; + languageCode: VoiceLanguage; +}) { + return { + model: config.model || DeepgramModel.NOVA_2_PHONECALL, + encoding: "linear16", + sample_rate: 16000, + language: config.languageCode || VoiceLanguage.EN_US, + smart_format: true + }; +} + +export { Deepgram, ENGINE_NAME }; diff --git a/mods/apiserver/src/voice/stt/Google.ts b/mods/apiserver/src/voice/stt/Google.ts new file mode 100644 index 000000000..c15e89740 --- /dev/null +++ b/mods/apiserver/src/voice/stt/Google.ts @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Stream } from "stream"; +import { Messages, VoiceLanguage } from "@fonoster/common"; +import { SpeechClient } from "@google-cloud/speech"; +import * as z from "zod"; +import { AbstractSpeechToText } from "./AbstractSpeechToText"; +import { GoogleSttConfig, SpeechResult, StreamSpeech } from "./types"; +import { SpeechToText } from "../types"; +import { performance } from "perf_hooks"; + +const ENGINE_NAME = "stt.google"; + +class Google + extends AbstractSpeechToText + implements SpeechToText +{ + client: SpeechClient; + engineConfig: GoogleSttConfig; + readonly engineName = ENGINE_NAME; + + constructor(config: GoogleSttConfig) { + super(config); + this.client = new SpeechClient(config); + this.engineConfig = config; + } + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + streamTranscribe(_: Stream): StreamSpeech { + // Not implemented + throw new Error("Stream Transcribe not implemented for Google Engine"); + } + + async transcribe(stream: Stream): Promise { + const startTime = performance.now(); + + const languageCode = + this.engineConfig.config.languageCode || VoiceLanguage.EN_US; + + const audioConfig = { + interimResults: false, + config: { + encoding: "LINEAR16" as const, + sampleRateHertz: 16000, + languageCode + } + }; + + return new Promise((resolve, reject) => { + const recognizeStream = this.client + .streamingRecognize(audioConfig) + .on("error", (e: Error) => reject(e)) + .on("data", (data: Record) => { + const responseTime = performance.now() - startTime; + + if (data.results[0]?.alternatives[0]) { + const result = { + speech: data.results[0].alternatives[0].transcript, + isFinal: true, + responseTime + }; + resolve(result); + } else { + resolve({ speech: "", isFinal: true, responseTime }); + } + recognizeStream.destroy(); + }); + stream.pipe(recognizeStream); + }); + } + + static getConfigValidationSchema(): z.Schema { + return z.object({ + languageCode: z + .nativeEnum(VoiceLanguage, { message: Messages.VALID_LANGUAGE_CODE }) + .optional() + }); + } + + static getCredentialsValidationSchema(): z.Schema { + return z.object({ + client_email: z.string(), + private_key: z.string() + }); + } +} + +export { ENGINE_NAME, Google }; diff --git a/mods/apiserver/src/voice/stt/SpeechToTextFactory.ts b/mods/apiserver/src/voice/stt/SpeechToTextFactory.ts new file mode 100644 index 000000000..88cae4de4 --- /dev/null +++ b/mods/apiserver/src/voice/stt/SpeechToTextFactory.ts @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { AbstractSpeechToText } from "./AbstractSpeechToText"; +import { ENGINE_NAME as DEEPGRAM_ENGINE_NAME, Deepgram } from "./Deepgram"; +import { ENGINE_NAME as GOOGLE_ENGINE_NAME, Google } from "./Google"; +import { SttConfig } from "./types"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +type EngineConstructor = new ( + options: T +) => AbstractSpeechToText; + +class SpeechToTextFactory { + private static engines: Map = new Map(); + + static registerEngine( + name: string, + ctor: EngineConstructor + ) { + logger.verbose("registering stt engine", { name }); + this.engines.set(name, ctor); + } + + static getEngine( + engineName: string, + config: T + ): AbstractSpeechToText { + const EngineConstructor = this.engines.get(engineName); + if (!EngineConstructor) { + throw new Error(`Engine ${engineName} not found`); + } + return new EngineConstructor(config); + } +} + +// Register engines +SpeechToTextFactory.registerEngine(GOOGLE_ENGINE_NAME, Google); +SpeechToTextFactory.registerEngine(DEEPGRAM_ENGINE_NAME, Deepgram); + +export { SpeechToTextFactory }; diff --git a/mods/apiserver/src/voice/stt/types.ts b/mods/apiserver/src/voice/stt/types.ts new file mode 100644 index 000000000..54776f6ca --- /dev/null +++ b/mods/apiserver/src/voice/stt/types.ts @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VoiceLanguage } from "@fonoster/common"; + +type SpeechResult = { + speech: string; + isFinal: boolean; + responseTime: number; +}; + +type StreamSpeech = { + on(events: string, callback: (result: SpeechResult) => void): void; + // close: () => void; +}; + +type SttConfig = { + config: { + languageCode: VoiceLanguage; + }; +}; + +type GoogleSttConfig = { + config: { + languageCode: VoiceLanguage; + }; + credentials: { + client_email: string; + private_key: string; + }; +}; + +enum DeepgramModel { + NOVA_2 = "nova-2", + NOVA_2_PHONECALL = "nova-2-phonecall", + NOVA_2_CONVERSATIONALAI = "nova-2-conversationalai" +} + +type DeepgramSttConfig = { + config: { + languageCode: VoiceLanguage; + model: DeepgramModel; + }; + credentials: { + apiKey: string; + }; +}; + +export { + DeepgramModel, + DeepgramSttConfig, + GoogleSttConfig, + SpeechResult, + StreamSpeech, + SttConfig +}; diff --git a/mods/apiserver/src/voice/transcribeOnConnection.ts b/mods/apiserver/src/voice/transcribeOnConnection.ts new file mode 100644 index 000000000..014408a8e --- /dev/null +++ b/mods/apiserver/src/voice/transcribeOnConnection.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Stream } from "stream"; +import { getLogger } from "@fonoster/logger"; +import { AudioStream } from "@fonoster/streams"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function transcribeOnConnection(stream: Stream) { + return async (_, res: AudioStream) => { + logger.verbose("starting instance of audio stream for transcription"); + res + .onData((data) => { + stream.emit("data", data); + }) + .onError((err) => { + logger.error("stream error:", err); + }); + }; +} + +export { transcribeOnConnection }; diff --git a/mods/apiserver/src/voice/tts/AbstractTextToSpeech.ts b/mods/apiserver/src/voice/tts/AbstractTextToSpeech.ts new file mode 100644 index 000000000..6219dfc8c --- /dev/null +++ b/mods/apiserver/src/voice/tts/AbstractTextToSpeech.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Readable } from "stream"; +import { v4 as uuidv4 } from "uuid"; +import * as z from "zod"; +import { SynthOptions } from "./types"; +import { MethodNotImplementedError } from "../errors/MethodNotImplementedError"; + +abstract class AbstractTextToSpeech { + abstract readonly engineName: E; + protected abstract OUTPUT_FORMAT: "wav" | "sln16"; + protected abstract CACHING_FIELDS: string[]; + + abstract synthesize( + text: string, + options: S + ): Promise<{ ref: string; stream: Readable }>; + + static getConfigValidationSchema(): z.Schema { + throw new MethodNotImplementedError(); + } + + static getCredentialsValidationSchema(): z.Schema { + throw new MethodNotImplementedError(); + } + + protected createMediaReference(): string { + return uuidv4(); + } + + getName(): E { + return this.engineName; + } +} + +export { AbstractTextToSpeech }; diff --git a/mods/apiserver/src/voice/tts/Azure.ts b/mods/apiserver/src/voice/tts/Azure.ts new file mode 100644 index 000000000..4b1c99bbc --- /dev/null +++ b/mods/apiserver/src/voice/tts/Azure.ts @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Readable } from "stream"; +import { AzureVoice } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import * as sdk from "microsoft-cognitiveservices-speech-sdk"; +import * as z from "zod"; +import { AbstractTextToSpeech } from "./AbstractTextToSpeech"; +import { isSsml } from "./isSsml"; +import { SynthOptions } from "./types"; + +const ENGINE_NAME = "tts.azure"; + +type AzureTTSConfig = { + [key: string]: Record; + credentials: { + subscriptionKey: string; + serviceRegion: string; + }; +}; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +class Azure extends AbstractTextToSpeech { + config: AzureTTSConfig; + readonly engineName = ENGINE_NAME; + protected readonly OUTPUT_FORMAT = "sln16"; + protected readonly CACHING_FIELDS = ["voice"]; + + constructor(config: AzureTTSConfig) { + super(); + this.config = config; + } + + async synthesize( + text: string, + options: SynthOptions + ): Promise<{ ref: string; stream: Readable }> { + logger.verbose( + `synthesize [input: ${text}, isSsml=${isSsml( + text + )} options: ${JSON.stringify(options)}]` + ); + + const { subscriptionKey, serviceRegion } = this.config.credentials; + + const speechConfig = sdk.SpeechConfig.fromSubscription( + subscriptionKey, + serviceRegion + ); + + speechConfig.speechSynthesisVoiceName = options.voice; + speechConfig.speechSynthesisOutputFormat = + sdk.SpeechSynthesisOutputFormat.Riff16Khz16BitMonoPcm; + + const synthesizer = new sdk.SpeechSynthesizer(speechConfig); + const isSSML = isSsml(text); + const func = isSSML ? "speakSsmlAsync" : "speakTextAsync"; + + const audioData = await new Promise((resolve, reject) => { + const audioChunks: Buffer[] = []; + + synthesizer[func]( + text, + (result) => { + if (result.reason === sdk.ResultReason.SynthesizingAudioCompleted) { + audioChunks.push(Buffer.from(result.audioData)); + resolve(Buffer.concat(audioChunks)); + } else { + reject( + new Error("Speech synthesis canceled: " + result.errorDetails) + ); + } + synthesizer.close(); + }, + (err: string) => { + synthesizer.close(); + reject(new Error(err)); + } + ); + }); + + const ref = this.createMediaReference(); + const stream = Readable.from(audioData); + + return { ref, stream }; + } + + static getConfigValidationSchema(): z.Schema { + return z.object({ + voice: z.nativeEnum(AzureVoice, { message: "Invalid Azure voice" }) + }); + } + + static getCredentialsValidationSchema(): z.Schema { + return z.object({ + subscriptionKey: z.string(), + serviceRegion: z.string() + }); + } +} + +export { Azure, ENGINE_NAME }; diff --git a/mods/apiserver/src/voice/tts/Deepgram.ts b/mods/apiserver/src/voice/tts/Deepgram.ts new file mode 100644 index 000000000..dd779a792 --- /dev/null +++ b/mods/apiserver/src/voice/tts/Deepgram.ts @@ -0,0 +1,137 @@ +/* eslint-disable no-loops/no-loops */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Readable } from "stream"; +import { DeepgramClient, createClient } from "@deepgram/sdk"; +import { DeepgramVoice } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import * as z from "zod"; +import { AbstractTextToSpeech } from "./AbstractTextToSpeech"; +import { isSsml } from "./isSsml"; +import { streamToBuffer } from "./streamToBuffer"; +import { SynthOptions } from "./types"; +import { textChunksByFirstNaturalPause } from "../handlers/utils/textChunksByFirstNaturalPause"; + +const ENGINE_NAME = "tts.deepgram"; + +type DeepgramTtsConfig = { + [key: string]: Record; + credentials: { + apiKey: string; + }; +}; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +class Deepgram extends AbstractTextToSpeech { + client: DeepgramClient; + engineConfig: DeepgramTtsConfig; + readonly engineName = ENGINE_NAME; + protected readonly OUTPUT_FORMAT = "sln16"; + protected readonly CACHING_FIELDS = ["voice"]; + protected readonly AUDIO_ENCODING = "linear16" as const; + protected readonly SAMPLE_RATE_HERTZ = 16000; + + constructor(config: DeepgramTtsConfig) { + super(); + this.client = createClient(config.credentials.apiKey); + this.engineConfig = config; + } + + async synthesize( + text: string, + options: SynthOptions + ): Promise<{ ref: string; stream: Readable }> { + logger.verbose( + `synthesize [input: ${text}, isSsml=${isSsml( + text + )} options: ${JSON.stringify(options)}]` + ); + + const { voice } = this.engineConfig.config; + const ref = this.createMediaReference(); + const chunks = textChunksByFirstNaturalPause(text); + const stream = new Readable({ read() {} }); + + const results = new Array(chunks.length); + let nextIndexToPush = 0; + + function observeQueue() { + if ( + nextIndexToPush < results.length && + results[nextIndexToPush] !== undefined + ) { + stream.push(results[nextIndexToPush]); + nextIndexToPush++; + setImmediate(observeQueue); + } else if (nextIndexToPush < results.length) { + setTimeout(observeQueue, 10); + } else { + stream.push(null); + } + } + + observeQueue(); + + chunks.forEach((text, index) => { + this.doSynthesize(text, voice as DeepgramVoice) + .then((synthesizedText) => { + results[index] = synthesizedText; + }) + .catch((error) => { + stream.emit("error", error); + }); + }); + + return { ref, stream }; + } + + private async doSynthesize( + text: string, + voice: DeepgramVoice + ): Promise { + const response = await this.client.speak.request( + { text }, + { + model: voice || DeepgramVoice.AURA_ASTERIA_EN, + encoding: this.AUDIO_ENCODING, + sample_rate: this.SAMPLE_RATE_HERTZ, + container: "none" + } + ); + + return (await streamToBuffer( + await response.getStream() + )) as unknown as Readable; + } + + static getConfigValidationSchema(): z.Schema { + return z.object({ + voice: z.nativeEnum(DeepgramVoice, { message: "Invalid Deepgram voice" }) + }); + } + + static getCredentialsValidationSchema(): z.Schema { + return z.object({ + apiKey: z.string() + }); + } +} + +export { Deepgram, ENGINE_NAME }; diff --git a/mods/apiserver/src/voice/tts/ElevenLabs.ts b/mods/apiserver/src/voice/tts/ElevenLabs.ts new file mode 100644 index 000000000..641c89235 --- /dev/null +++ b/mods/apiserver/src/voice/tts/ElevenLabs.ts @@ -0,0 +1,131 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Readable } from "stream"; +import { getLogger } from "@fonoster/logger"; +import { ElevenLabsClient } from "elevenlabs"; +import * as z from "zod"; +import { AbstractTextToSpeech } from "./AbstractTextToSpeech"; +import { isSsml } from "./isSsml"; +import { streamToBuffer } from "./streamToBuffer"; +import { SynthOptions } from "./types"; +import { textChunksByFirstNaturalPause } from "../handlers/utils/textChunksByFirstNaturalPause"; // Assuming this is the chunking function + +const ENGINE_NAME = "tts.elevenlabs"; + +type ElevenLabsTtsConfig = { + [key: string]: Record; + credentials: { + apiKey: string; + }; +}; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +class ElevenLabs extends AbstractTextToSpeech { + client: ElevenLabsClient; + engineConfig: ElevenLabsTtsConfig; + readonly engineName = ENGINE_NAME; + protected readonly OUTPUT_FORMAT = "sln16"; + protected readonly CACHING_FIELDS = ["voice", "text"]; + + constructor(config: ElevenLabsTtsConfig) { + super(); + this.client = new ElevenLabsClient(config.credentials); + this.engineConfig = config; + } + + async synthesize( + text: string, + options: SynthOptions + ): Promise<{ ref: string; stream: Readable }> { + logger.verbose( + `synthesize [input: ${text}, isSsml=${isSsml( + text + )} options: ${JSON.stringify(options)}]` + ); + + const { voice, model } = this.engineConfig.config; + const ref = this.createMediaReference(); + const chunks = textChunksByFirstNaturalPause(text); + const stream = new Readable({ read() {} }); + + const results = new Array(chunks.length); + let nextIndexToPush = 0; + + function observeQueue() { + if ( + nextIndexToPush < results.length && + results[nextIndexToPush] !== undefined + ) { + stream.push(results[nextIndexToPush]); + nextIndexToPush++; + setImmediate(observeQueue); + } else if (nextIndexToPush < results.length) { + setTimeout(observeQueue, 10); + } else { + stream.push(null); + } + } + + observeQueue(); + + chunks.forEach((text, index) => { + this.doSynthesize({ text, voice, model }) + .then((synthesizedText) => { + results[index] = synthesizedText; + }) + .catch((error) => { + stream.emit("error", error); + }); + }); + + return { ref, stream }; + } + + private async doSynthesize(params: { + text: string; + voice: string; + model: string; + }): Promise { + const { text, voice, model } = params; + const response = await this.client.generate({ + stream: true, + voice, + text, + model_id: model ?? "eleven_flash_v2_5", + output_format: "pcm_16000", + // TODO: Make this configurable + optimize_streaming_latency: 2 + }); + + return (await streamToBuffer(response)) as unknown as Readable; + } + + static getConfigValidationSchema(): z.Schema { + return z.object({}); + } + + static getCredentialsValidationSchema(): z.Schema { + return z.object({ + apiKey: z.string() + }); + } +} + +export { ENGINE_NAME, ElevenLabs }; diff --git a/mods/apiserver/src/voice/tts/Google.ts b/mods/apiserver/src/voice/tts/Google.ts new file mode 100644 index 000000000..83307f76a --- /dev/null +++ b/mods/apiserver/src/voice/tts/Google.ts @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Readable } from "stream"; +import { GoogleVoice } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { TextToSpeechClient } from "@google-cloud/text-to-speech"; +import * as z from "zod"; +import { AbstractTextToSpeech } from "./AbstractTextToSpeech"; +import { isSsml } from "./isSsml"; +import { SynthOptions } from "./types"; + +const ENGINE_NAME = "tts.google"; + +type GoogleTtsConfig = { + [key: string]: Record; + credentials: { + client_email: string; + private_key: string; + }; +}; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +class Google extends AbstractTextToSpeech { + client: TextToSpeechClient; + engineConfig: GoogleTtsConfig; + readonly engineName = ENGINE_NAME; + protected readonly OUTPUT_FORMAT = "sln16"; + protected readonly CACHING_FIELDS = ["voice"]; + protected readonly AUDIO_ENCODING = "LINEAR16" as const; + protected readonly SAMPLE_RATE_HERTZ = 16000; + + constructor(config: GoogleTtsConfig) { + super(); + this.client = new TextToSpeechClient(config); + this.engineConfig = config; + } + + async synthesize( + text: string, + options: SynthOptions + ): Promise<{ ref: string; stream: Readable }> { + logger.verbose( + `synthesize [input: ${text}, isSsml=${isSsml( + text + )} options: ${JSON.stringify(options)}]` + ); + + const { voice } = this.engineConfig.config; + + const lang = `${voice.split("-")[0]}-${voice.split("-")[1]}`; + + const request = { + input: isSsml(text) ? { ssml: text } : { text }, + audioConfig: { + audioEncoding: this.AUDIO_ENCODING, + sampleRateHertz: this.SAMPLE_RATE_HERTZ + }, + voice: { + languageCode: lang, + name: voice + } + }; + + const [response] = await this.client.synthesizeSpeech(request); + + const ref = this.createMediaReference(); + + return { ref, stream: Readable.from(response.audioContent) }; + } + + static getConfigValidationSchema(): z.Schema { + return z.object({ + voice: z + .nativeEnum(GoogleVoice, { message: "Invalid Google voice" }) + .optional() + }); + } + + static getCredentialsValidationSchema(): z.Schema { + return z.object({ + client_email: z.string(), + private_key: z.string() + }); + } +} + +export { ENGINE_NAME, Google }; diff --git a/mods/apiserver/src/voice/tts/TextToSpeechFactory.ts b/mods/apiserver/src/voice/tts/TextToSpeechFactory.ts new file mode 100644 index 000000000..1b9ea780a --- /dev/null +++ b/mods/apiserver/src/voice/tts/TextToSpeechFactory.ts @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { AbstractTextToSpeech } from "./AbstractTextToSpeech"; +import { ENGINE_NAME as AZURE_ENGINE_NAME, Azure } from "./Azure"; +import { ENGINE_NAME as DEEPGRAM_ENGINE_NAME, Deepgram } from "./Deepgram"; +import { + ENGINE_NAME as ELEVEN_LABS_ENGINE_NAME, + ElevenLabs +} from "./ElevenLabs"; +import { ENGINE_NAME as GOOGLE_ENGINE_NAME, Google } from "./Google"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +type EngineConstructor = new (options: T) => AbstractTextToSpeech; + +class TextToSpeechFactory { + private static readonly engines: Map> = + new Map(); + + static registerEngine(name: string, ctor: EngineConstructor) { + logger.verbose("registering tts engine", { name }); + this.engines.set(name, ctor); + } + + static getEngine( + engineName: string, + config: T + ): AbstractTextToSpeech { + const EngineConstructor = this.engines.get(engineName); + if (!EngineConstructor) { + throw new Error(`Engine ${engineName} not found`); + } + return new EngineConstructor(config); + } +} + +// Register engines +TextToSpeechFactory.registerEngine(GOOGLE_ENGINE_NAME, Google); +TextToSpeechFactory.registerEngine(AZURE_ENGINE_NAME, Azure); +TextToSpeechFactory.registerEngine(DEEPGRAM_ENGINE_NAME, Deepgram); +TextToSpeechFactory.registerEngine(ELEVEN_LABS_ENGINE_NAME, ElevenLabs); + +export { TextToSpeechFactory }; diff --git a/mods/apiserver/src/voice/tts/isSsml.ts b/mods/apiserver/src/voice/tts/isSsml.ts new file mode 100644 index 000000000..89cd0852a --- /dev/null +++ b/mods/apiserver/src/voice/tts/isSsml.ts @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function isSsml(text: string) { + const v = text.trim(); + return v.startsWith("<") && v.endsWith(">"); +} + +export { isSsml }; diff --git a/mods/apiserver/src/voice/tts/streamToBuffer.ts b/mods/apiserver/src/voice/tts/streamToBuffer.ts new file mode 100644 index 000000000..c20e397d2 --- /dev/null +++ b/mods/apiserver/src/voice/tts/streamToBuffer.ts @@ -0,0 +1,28 @@ +/* eslint-disable no-loops/no-loops */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +async function streamToBuffer(readableStream): Promise { + const chunks = []; + for await (const chunk of readableStream) { + chunks.push(chunk); + } + return Buffer.concat(chunks); +} + +export { streamToBuffer }; diff --git a/mods/apiserver/src/voice/tts/types.ts b/mods/apiserver/src/voice/tts/types.ts new file mode 100644 index 000000000..96e93613d --- /dev/null +++ b/mods/apiserver/src/voice/tts/types.ts @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type SynthOptions = { + voice: string; +}; + +export { SynthOptions }; diff --git a/mods/apiserver/src/voice/types/ari.ts b/mods/apiserver/src/voice/types/ari.ts new file mode 100644 index 000000000..0ff9fea38 --- /dev/null +++ b/mods/apiserver/src/voice/types/ari.ts @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +enum AriEvent { + STASIS_START = "StasisStart", + STASIS_END = "StasisEnd", + CHANNEL_USER_EVENT = "ChannelUserevent", + CHANNEL_DTMF_RECEIVED = "ChannelDtmfReceived", + PLAYBACK_FINISHED = "PlaybackFinished", + RECORDING_FINISHED = "RecordingFinished", + RECORDING_FAILED = "RecordingFailed", + WEB_SOCKET_RECONNECTING = "WebSocketReconnecting", + WEB_SOCKET_MAX_RETRIES = "WebSocketMaxRetries", + CHANNEL_LEFT_BRIDGE = "ChannelLeftBridge", + DIAL = "Dial" +} + +enum ChannelVar { + CALL_DIRECTION = "CALL_DIRECTION", + INGRESS_NUMBER = "INGRESS_NUMBER", + APP_REF = "APP_REF", + APP_ENDPOINT = "APP_ENDPOINT", + METADATA = "METADATA", + FROM_EXTERNAL_MEDIA = "FROM_EXTERNAL_MEDIA" +} + +export { AriEvent, ChannelVar }; diff --git a/mods/apiserver/src/voice/types/index.ts b/mods/apiserver/src/voice/types/index.ts new file mode 100644 index 000000000..b5d827b3e --- /dev/null +++ b/mods/apiserver/src/voice/types/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./ari"; +export * from "./voice"; diff --git a/mods/apiserver/src/voice/types/voice.ts b/mods/apiserver/src/voice/types/voice.ts new file mode 100644 index 000000000..fa9102d00 --- /dev/null +++ b/mods/apiserver/src/voice/types/voice.ts @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Readable, Stream } from "stream"; +import { + SayOptions, + StreamContent, + VoiceClientConfig, + VoiceIn, + VoiceSessionStreamClient +} from "@fonoster/common"; +import * as grpc from "@grpc/grpc-js"; +import { SpeechResult, StreamSpeech } from "../stt/types"; + +type VoiceClient = { + config: VoiceClientConfig; + sendResponse: (command: VoiceIn) => void; + on: (type: StreamContent, callback: (data: VoiceIn) => void) => void; + connect: () => void; + close: () => void; + synthesize: (text: string, options: SayOptions) => Promise; + transcribe: () => Promise; + startSpeechGather: ( + callback: (stream: { speech: string; responseTime: number }) => void + ) => void; + startDtmfGather: ( + sessionRef: string, + callback: (event: { digit: string }) => void + ) => void; + // Stops both speech and dtmf gather + stopStreamGather: () => void; + waitForDtmf: (params: { + sessionRef: string; + finishOnKey: string; + maxDigits: number; + timeout: number; + onDigitReceived: () => void; + }) => Promise<{ digits: string }>; + getTranscriptionsStream: () => Stream; +}; + +type TextToSpeech = { + synthesize: ( + text: string, + options: Record + ) => Promise<{ ref: string; stream: Readable }>; +}; + +type SpeechToText = { + transcribe: (stream: Stream) => Promise; + streamTranscribe(stream: Stream): StreamSpeech; +}; + +type GRPCClient = { + createSession: (metadata: grpc.Metadata) => VoiceSessionStreamClient; + close: () => void; +}; + +export { GRPCClient, SpeechToText, TextToSpeech, VoiceClient }; diff --git a/mods/apiserver/src/voice/utils/VoiceServiceClientConstructor.ts b/mods/apiserver/src/voice/utils/VoiceServiceClientConstructor.ts new file mode 100644 index 000000000..9cc481201 --- /dev/null +++ b/mods/apiserver/src/voice/utils/VoiceServiceClientConstructor.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createServiceDefinition } from "@fonoster/common"; +import * as grpc from "@grpc/grpc-js"; + +const VoiceServiceClientConstructor = grpc.makeGenericClientConstructor( + createServiceDefinition({ + serviceName: "Voice", + pckg: "voice", + proto: "voice.proto", + version: "v1beta2" + }), + "", + {} +); + +export { VoiceServiceClientConstructor }; diff --git a/mods/apiserver/src/voice/utils/createExternalMediaConfig.ts b/mods/apiserver/src/voice/utils/createExternalMediaConfig.ts new file mode 100644 index 000000000..66beafe7b --- /dev/null +++ b/mods/apiserver/src/voice/utils/createExternalMediaConfig.ts @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { STASIS_APP_NAME } from "@fonoster/common"; +import { v4 as uuidv4 } from "uuid"; +import { APISERVER_HOST } from "../../envs"; + +function createExternalMediaConfig(port: number) { + return { + app: STASIS_APP_NAME, + external_host: `${APISERVER_HOST}:${port}`, + format: "slin16", + transport: "tcp", + data: uuidv4(), + encapsulation: "audiosocket", + variables: { + FROM_EXTERNAL_MEDIA: "true" + } + }; +} + +export { createExternalMediaConfig }; diff --git a/mods/apiserver/src/voice/utils/createGetChannelVar.ts b/mods/apiserver/src/voice/utils/createGetChannelVar.ts new file mode 100644 index 000000000..f52c14848 --- /dev/null +++ b/mods/apiserver/src/voice/utils/createGetChannelVar.ts @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Channel } from "ari-client"; +import { ChannelVarNotFoundError } from "../errors/ChannelVarNotFoundError"; +import { ChannelVar } from "../types"; + +function createGetChannelVar(channel: Channel) { + return async function getChannelVar(variable: ChannelVar) { + try { + return await channel.getChannelVar({ + variable + }); + } catch (e) { + throw new ChannelVarNotFoundError(variable); + } + }; +} + +export { createGetChannelVar }; diff --git a/mods/apiserver/src/voice/utils/createGetChannelVarWithoutThrow.ts b/mods/apiserver/src/voice/utils/createGetChannelVarWithoutThrow.ts new file mode 100644 index 000000000..f0e8e696e --- /dev/null +++ b/mods/apiserver/src/voice/utils/createGetChannelVarWithoutThrow.ts @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Channel } from "ari-client"; +import { ChannelVar } from "../types"; + +function createGetChannelVarWithoutThrow(channel: Channel) { + return async function getChannelVarWithoutThrow(variable: ChannelVar) { + try { + return await channel.getChannelVar({ + variable + }); + } catch (e) { + return null; + } + }; +} + +export { createGetChannelVarWithoutThrow }; diff --git a/mods/apiserver/src/voice/utils/index.ts b/mods/apiserver/src/voice/utils/index.ts new file mode 100644 index 000000000..dd64df56f --- /dev/null +++ b/mods/apiserver/src/voice/utils/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./VoiceServiceClientConstructor"; +export * from "./createExternalMediaConfig"; +export * from "./createGetChannelVar"; +export * from "./createGetChannelVarWithoutThrow"; diff --git a/mods/apiserver/test/applications/applicationWithEncodedStruct.test.ts b/mods/apiserver/test/applications/applicationWithEncodedStruct.test.ts new file mode 100644 index 000000000..a536e8ee0 --- /dev/null +++ b/mods/apiserver/test/applications/applicationWithEncodedStruct.test.ts @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@applications/applicationWithEncodedStruct", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should return an application with encoded struct", async function () { + // Arrange + const { applicationWithEncodedStruct } = await import( + "../../src/applications/utils/applicationWithEncodedStruct" + ); + + const createdAt = new Date(); + const updatedAt = new Date(); + + const application = { + ref: "123", + name: "My Application", + endpoint: "localhost:50061", + textToSpeech: { + productRef: "123", + config: { + voice: "angela" + } + }, + speechToText: { + productRef: "123", + config: null + }, + createdAt, + updatedAt + }; + + // Act + const result = applicationWithEncodedStruct(application); + + // Assert + chai.expect(result).to.deep.equal({ + ...application, + textToSpeech: { + productRef: "123", + config: { + fields: { + voice: { + kind: "stringValue", + stringValue: "angela" + } + } + } + }, + speechToText: { + productRef: "123", + config: null + }, + createdAt: createdAt.getTime() / 1000, + updatedAt: updatedAt.getTime() / 1000 + }); + }); +}); diff --git a/mods/apiserver/test/applications/convertToApplicationData.test.ts b/mods/apiserver/test/applications/convertToApplicationData.test.ts new file mode 100644 index 000000000..b03cafba8 --- /dev/null +++ b/mods/apiserver/test/applications/convertToApplicationData.test.ts @@ -0,0 +1,123 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ApplicationType } from "@fonoster/types"; +import * as chai from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@applications/convertToApplicationData", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("it should convert a create or update request to application data", async function () { + // Arrange + const { convertToApplicationData } = await import( + "../../src/applications/utils/convertToApplicationData" + ); + + const request = { + ref: "123", + name: "My Application", + type: "STREAMS" as ApplicationType, + endpoint: "localhost:50061", + textToSpeech: { + productRef: "123", + config: { + fields: { + voice: { + stringValue: "angela" + } + } + } + }, + speechToText: { + productRef: "123", + config: { + fields: { + languageCode: { + stringValue: "en-US" + } + } + } + }, + intelligence: { + productRef: "123", + credentials: { + fields: { + apiKey: { + stringValue: "1234" + } + } + }, + config: { + fields: { + agentRef: { + stringValue: "1234" + } + } + } + } + }; + + // Act + const result = convertToApplicationData(request); + + // Assert + chai.expect(result).to.deep.equal({ + ref: "123", + name: "My Application", + type: "STREAMS", + endpoint: "localhost:50061", + textToSpeech: { + create: { + productRef: "123", + credentials: undefined, + config: { + voice: "angela" + } + } + }, + speechToText: { + create: { + productRef: "123", + credentials: undefined, + config: { + languageCode: "en-US" + } + } + }, + intelligence: { + create: { + productRef: "123", + // eslint-disable-next-line prettier/prettier + credentials: "{\"apiKey\":\"1234\"}", + config: { + agentRef: "1234" + } + } + } + }); + }); +}); diff --git a/mods/apiserver/test/applications/createApplication.test.ts b/mods/apiserver/test/applications/createApplication.test.ts new file mode 100644 index 000000000..f8c67b758 --- /dev/null +++ b/mods/apiserver/test/applications/createApplication.test.ts @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ApplicationType } from "@fonoster/types"; +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/core/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@applications/createApplication", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create an application", async function () { + // Arrange + const { createCreateApplication } = await import( + "../../src/applications/createCreateApplication" + ); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const applications = { + application: { + create: sandbox.stub().resolves({ ref: "123" }) + } + } as unknown as Prisma; + + const call = { + metadata, + request: { + name: "My Application", + type: ApplicationType.EXTERNAL, + endpoint: "localhost:50061" + } + }; + + const callback = sandbox.stub(); + + // Act + await createCreateApplication(applications)(call, callback); + + // Assert + expect(callback).to.have.been.calledOnceWithExactly(null, { ref: "123" }); + }); + + it("should throw an error if the application already exists", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + name: "My Application", + type: ApplicationType.EXTERNAL, + endpoint: "localhost:50061" + } + }; + + const prisma = { + application: { + create: sandbox.stub().throws({ code: "P2002" }) + } + } as unknown as Prisma; + + const { createCreateApplication } = await import( + "../../src/applications/createCreateApplication" + ); + + // Act + await createCreateApplication(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: grpc.status.ALREADY_EXISTS, + message: "The resource already exists" + }); + }); + }); +}); diff --git a/mods/apiserver/test/applications/deleteApplication.test.ts b/mods/apiserver/test/applications/deleteApplication.test.ts new file mode 100644 index 000000000..9f0870d58 --- /dev/null +++ b/mods/apiserver/test/applications/deleteApplication.test.ts @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/core/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const appRef = "3c459670-efa0-4404-8671-b6f36c3da11d"; + +describe("@applications/deleteApplication", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should delete an application", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: appRef + } + }; + + const res = { + ref: appRef + }; + + const prisma = { + application: { + delete: sandbox.stub().resolves(res), + findUnique: sandbox.stub().resolves({ + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p" + }) + } + } as unknown as Prisma; + + const { createDeleteApplication } = await import( + "../../src/applications/createDeleteApplication" + ); + + // Act + await createDeleteApplication(prisma)(call, (_, response) => { + // Assert + expect(response).to.have.property("ref", appRef); + }); + }); +}); diff --git a/mods/apiserver/test/applications/getApplication.test.ts b/mods/apiserver/test/applications/getApplication.test.ts new file mode 100644 index 000000000..3c57018f3 --- /dev/null +++ b/mods/apiserver/test/applications/getApplication.test.ts @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/core/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@applications/getApplication", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should get an application by id", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const application = { + ref: "123", + name: "My Application", + endpoint: "example.com:50051", + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p", + createdAt: new Date(), + updatedAt: new Date() + }; + + const prisma = { + application: { + delete: sandbox.stub().resolves({ ref: application.ref }), + findUnique: sandbox.stub().resolves(application) + } + } as unknown as Prisma; + + const { createGetApplication } = await import( + "../../src/applications/createGetApplication" + ); + + // Act + const response = await new Promise((resolve, reject) => { + createGetApplication(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(prisma.application.findUnique).to.have.been.calledTwice; + expect(response).have.property("ref", application.ref); + expect(response).have.property("name", application.name); + expect(response).have.property("endpoint", application.endpoint); + expect(response).have.property("accessKeyId", application.accessKeyId); + }); + + it("should throw an error if the application is not found", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const prisma = { + application: { + findUnique: sandbox.stub().resolves(null) + } + } as unknown as Prisma; + + const { createGetApplication } = await import( + "../../src/applications/createGetApplication" + ); + + // Act + await createGetApplication(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: grpc.status.NOT_FOUND, + message: "The requested resource was not found" + }); + }); + }); +}); diff --git a/mods/apiserver/test/applications/listApplications.test.ts b/mods/apiserver/test/applications/listApplications.test.ts new file mode 100644 index 000000000..8eff58880 --- /dev/null +++ b/mods/apiserver/test/applications/listApplications.test.ts @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/core/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@applications/listApplications", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should list applications", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + pageSize: 10, + pageToken: "1" + } + }; + + const applications = [ + { + ref: "123", + name: "My Application", + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p", + createdAt: new Date(), + updatedAt: new Date() + } + ]; + + const prisma = { + application: { + findMany: sandbox.stub().resolves(applications) + } + } as unknown as Prisma; + + const { createListApplications } = await import( + "../../src/applications/createListApplications" + ); + + // Act + const response = await new Promise((resolve, reject) => { + createListApplications(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(response) + .has.property("items") + .to.be.an("array") + .to.have.lengthOf(1); + expect(response) + .has.property("nextPageToken") + .to.be.a("string") + .to.equal("123"); + }); + + it("should return an empty array if no applications found", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + pageSize: 10, + pageToken: "1" + } + }; + + const prisma = { + application: { + findMany: sandbox.stub().resolves([]) + } + } as unknown as Prisma; + + const { createListApplications } = await import( + "../../src/applications/createListApplications" + ); + + // Act + const response = await new Promise((resolve, reject) => { + createListApplications(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(response) + .has.property("items") + .to.be.an("array") + .to.have.lengthOf(0); + expect(response).has.property("nextPageToken").to.be.undefined; + }); +}); diff --git a/mods/apiserver/test/applications/updateApplication.test.ts b/mods/apiserver/test/applications/updateApplication.test.ts new file mode 100644 index 000000000..44a5c2e82 --- /dev/null +++ b/mods/apiserver/test/applications/updateApplication.test.ts @@ -0,0 +1,123 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ApplicationType } from "@fonoster/types"; +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/core/db"; +import { TEST_TOKEN, TEST_UUID } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@applications/updateApplication", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should update an application", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: TEST_UUID, + name: "My new application name", + endpoint: "localhost:8765", + type: ApplicationType.EXTERNAL + } + }; + + const prisma = { + application: { + update: sandbox.stub().resolves({ ref: TEST_UUID }), + findUnique: sandbox + .stub() + .resolves({ accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p" }) + }, + $transaction: sandbox.stub().resolves(), + textToSpeech: { + deleteMany: sandbox.stub().resolves() + }, + speechToText: { + deleteMany: sandbox.stub().resolves() + }, + intelligence: { + deleteMany: sandbox.stub().resolves() + } + } as unknown as Prisma; + + const { createUpdateApplication } = await import( + "../../src/applications/createUpdateApplication" + ); + + // Act + const response = await new Promise((resolve, reject) => { + createUpdateApplication(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(response).to.deep.equal({ ref: TEST_UUID }); + }); + + it("should throw an error if the application does not exist", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: TEST_UUID, + name: "My new application name" + } + }; + + const prisma = { + application: { + update: sandbox.stub().throws({ code: "P2025" }), + findUnique: sandbox.stub().resolves(null) + } + } as unknown as Prisma; + + const { createUpdateApplication } = await import( + "../../src/applications/createUpdateApplication" + ); + + // Act + const response = new Promise((resolve, reject) => { + createUpdateApplication(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + await expect(response).to.be.rejectedWith("The requested resource was not found"); + }); +}); diff --git a/mods/apiserver/test/calls/createCall.test.ts b/mods/apiserver/test/calls/createCall.test.ts new file mode 100644 index 000000000..4a12a3ba1 --- /dev/null +++ b/mods/apiserver/test/calls/createCall.test.ts @@ -0,0 +1,82 @@ +/* eslint-disable prettier/prettier */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Metadata } from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/core/db"; +import { TEST_TOKEN, TEST_UUID } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@calls/createCall", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a call", async function () { + // Arrange + const { createCall } = await import("../../src/calls/createCall"); + const metadata = new Metadata(); + metadata.set("token", TEST_TOKEN); + const publisher = { + publishCall: sandbox.stub() + }; + const call = { + metadata, + request: { + from: "+1234567890", + to: "+1234567891", + appRef: TEST_UUID + } + }; + + const application = { + ref: TEST_UUID, + name: "My Application", + endpoint: "example.com:50051", + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p", + createdAt: new Date(), + updatedAt: new Date() + }; + + const applications = { + application: { + findUnique: sandbox.stub().resolves(application) + } + } as unknown as Prisma; + + // Act + await createCall(applications, publisher)(call, sandbox.stub()); + + // Assert + expect(publisher.publishCall).to.have.been.calledOnce; + expect(applications.application.findUnique).to.have.been.calledOnce; + expect(publisher.publishCall).to.have.been.calledWithMatch({ + from: "+1234567890", + to: "+1234567891", + appRef: TEST_UUID + }); + }); +}); diff --git a/mods/apiserver/test/calls/fetchCalls.test.ts b/mods/apiserver/test/calls/fetchCalls.test.ts new file mode 100644 index 000000000..4128747cd --- /dev/null +++ b/mods/apiserver/test/calls/fetchCalls.test.ts @@ -0,0 +1,129 @@ +/* eslint-disable prettier/prettier */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { CallType, CallStatus } from "@fonoster/types"; +import * as chai from "chai"; import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { InfluxDBClient } from "@fonoster/common"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@calls/fetchCalls", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should fetch calls from influxdb with no filters", async function () { + // Arrange + const { createFetchCalls } = await import( + "../../src/calls/createFetchCalls" + ); + const accessKeyId = "accessKeyId"; + const items = [ + { + ref: "01", + startedAt: 1715869342759, + endedAt: 1715869342759, + from: "+1234567890", + to: "+1234567891", + status: CallStatus.NORMAL_CLEARING, + type: CallType.API_ORIGINATED, + accessKeyId + } + ]; + + const influxdb = { + collectRows: sandbox.stub().resolves(items) + } as InfluxDBClient; + + const fetchCalls = createFetchCalls(influxdb); + + // Act + const result = await fetchCalls(accessKeyId, {}); + + // Assert + expect(result).to.deep.equal({ + nextPageToken: "1715869342759", + items + }); + }); + + it("should fetch calls from influxdb with filters", async function () { + // Arrange + const { createFetchCalls } = await import( + "../../src/calls/createFetchCalls" + ); + const accessKeyId = "accessKeyId"; + const type = CallType.API_ORIGINATED; + const from = "+1234567890"; + const to = "+1234567891"; + const status = CallStatus.NORMAL_CLEARING; + const items = [ + { + ref: "01", + callId: "asdf", + startedAt: 1715869342759, + endedAt: 1715869342759, + from, + to, + status, + accessKeyId, + type, + } + ]; + + // Arrange + const collectRows = sandbox.stub().resolves(items); + const influxdb = { + collectRows + } as InfluxDBClient; + + const fetchCalls = createFetchCalls(influxdb); + + // Act + await fetchCalls(accessKeyId, { + after: "2024-01-01T00:00:00.000Z", + before: "2024-01-02T23:00:00.000Z", + type, + from, + to, + status + }); + + // Assert + const queryStr = collectRows.getCall(0).args[0].toString(); + expect(queryStr).to.include("from(bucket: \"calls\")"); + // expect(queryStr).to.include("range(start: 2024-01-01T00:00:00.000Z, stop: 2024-01-02T23:00:00.000Z)"); + expect(queryStr).to.include("pivot(rowKey: [\"callId\"], columnKey: [\"_field\"], valueColumn: \"_value\")"); + expect(queryStr).to.include("duration: int(v: r.endedAt) - int(v: r.startedAt),"); + expect(queryStr).to.include("r._measurement == \"cdr\""); + expect(queryStr).to.include("group()"); + expect(queryStr).to.include("sort(columns: [\"startedAtParsed\"], desc: true)"); + expect(queryStr).to.include("limit(n: 50)"); + expect(queryStr).to.include(`and r.accessKeyId == "${accessKeyId}"`); + expect(queryStr).to.include(`and r.type == "${type}"`); + expect(queryStr).to.include(`and r.from == "${from}"`); + expect(queryStr).to.include(`and r.to == "${to}"`); + expect(queryStr).to.include(`and r.status == "${status}"`); + }); +}); diff --git a/mods/apiserver/test/calls/trackCall.test.ts b/mods/apiserver/test/calls/trackCall.test.ts new file mode 100644 index 000000000..cca79e7fb --- /dev/null +++ b/mods/apiserver/test/calls/trackCall.test.ts @@ -0,0 +1,70 @@ +/* eslint-disable prettier/prettier */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { DialStatus } from "@fonoster/common"; +import * as chai from "chai"; import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { NatsConnection } from "nats"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@calls/trackCall", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should track the status of a call", async function () { + const { createTrackCall } = await import("../../src/calls/createTrackCall"); + const callRef = "5d8c253a-62a0-48d5-9c8f-cfd00279936f"; + + const call = { + write: sandbox.stub(), + end: sandbox.stub(), + request: { + ref: callRef + } + }; + + const subscription = { callback: sandbox.stub() }; + const nc = { subscribe: sandbox.stub().returns(subscription) } as unknown as NatsConnection; + + const trackCall = createTrackCall(nc); + + trackCall(call, () => {}); + + const msg = { + json: sandbox.stub().onFirstCall().returns({ ref: callRef, status: DialStatus.TRYING }) + .onSecondCall().returns({ ref: callRef, status: DialStatus.PROGRESS }) + .onThirdCall().returns({ ref: callRef, status: DialStatus.ANSWER }) + }; + + subscription.callback(null, msg); + subscription.callback(null, msg); + subscription.callback(null, msg); + + expect(call.write).to.have.been.calledWith({ ref: callRef, status: DialStatus.TRYING }); + expect(call.write).to.have.been.calledWith({ ref: callRef, status: DialStatus.PROGRESS }); + expect(call.write).to.have.been.calledWith({ ref: callRef, status: DialStatus.ANSWER }); + }); + +}); diff --git a/mods/apiserver/test/secrets/createSecret.test.ts b/mods/apiserver/test/secrets/createSecret.test.ts new file mode 100644 index 000000000..63cdedba4 --- /dev/null +++ b/mods/apiserver/test/secrets/createSecret.test.ts @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/core/db"; +import { TEST_TOKEN, TEST_UUID } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@secrets/createSecret", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a secret", async function () { + // Arrange + const { createSecret } = await import("../../src/secrets/createSecret"); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const secrets = { + secret: { + create: sandbox.stub().resolves({ ref: TEST_UUID }) + } + } as unknown as Prisma; + + const call = { + metadata, + request: { + name: "MY_SECRET", + secret: "supersecret" + } + }; + + const callback = sandbox.stub(); + + // Act + await createSecret(secrets)(call, callback); + + // Assert + expect(callback).to.have.been.calledOnceWithExactly(null, { + ref: TEST_UUID + }); + }); + + it("should throw an error if the secret already exists", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + name: "MY_SECRET", + secret: "supersecret" + } + }; + + const prisma = { + secret: { + create: sandbox.stub().throws({ code: "P2002" }) + } + } as unknown as Prisma; + + const { createSecret } = await import("../../src/secrets/createSecret"); + + // Act + await createSecret(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: grpc.status.ALREADY_EXISTS, + message: "The resource already exists" + }); + }); + }); +}); diff --git a/mods/apiserver/test/secrets/deleteSecret.test.ts b/mods/apiserver/test/secrets/deleteSecret.test.ts new file mode 100644 index 000000000..466fc992c --- /dev/null +++ b/mods/apiserver/test/secrets/deleteSecret.test.ts @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/core/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@secrets/deleteSecret", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should delete a secret", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const res = { + ref: "123" + }; + + const prisma = { + secret: { + delete: sandbox.stub().resolves(res), + findUnique: sandbox.stub().resolves({ + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p" + }) + } + } as unknown as Prisma; + + const { deleteSecret } = await import("../../src/secrets/deleteSecret"); + + // Act + await deleteSecret(prisma)(call, (_, response) => { + // Assert + expect(response).to.have.property("ref", "123"); + }); + }); +}); diff --git a/mods/apiserver/test/secrets/getSecret.test.ts b/mods/apiserver/test/secrets/getSecret.test.ts new file mode 100644 index 000000000..ff384e625 --- /dev/null +++ b/mods/apiserver/test/secrets/getSecret.test.ts @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/core/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@secrets/getSecret", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should get a secret by id", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const secret = { + ref: "123", + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p", + name: "My Secret", + secret: "123456" + }; + + const prisma = { + secret: { + delete: sandbox.stub().resolves({ ref: secret.ref }), + findUnique: sandbox.stub().resolves(secret) + } + } as unknown as Prisma; + + const { getSecret } = await import("../../src/secrets/getSecret"); + + // Act + const response = await new Promise((resolve, reject) => { + getSecret(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(prisma.secret.findUnique).to.have.been.calledTwice; + expect(response).have.property("ref", secret.ref); + expect(response).have.property("name", secret.name); + expect(response).have.property("secret", secret.secret); + }); + + it("should throw an error if the secret is not found", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const prisma = { + secret: { + findUnique: sandbox.stub().resolves(null) + } + } as unknown as Prisma; + + const { getSecret } = await import("../../src/secrets/getSecret"); + + // Act + await getSecret(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: grpc.status.NOT_FOUND, + message: `The requested resource was not found` + }); + }); + }); +}); diff --git a/mods/apiserver/test/secrets/listSecrets.test.ts b/mods/apiserver/test/secrets/listSecrets.test.ts new file mode 100644 index 000000000..1d360f24e --- /dev/null +++ b/mods/apiserver/test/secrets/listSecrets.test.ts @@ -0,0 +1,124 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/core/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@secrets/listSecrets", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should return a list of secrets", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + pageSize: 10, + pageToken: "1" + } + }; + + const secrets = [ + { + ref: "123", + name: "My Secret", + secret: "123456", + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p", + createdAt: new Date(), + updatedAt: new Date() + } + ]; + + const prisma = { + secret: { + findMany: sandbox.stub().resolves(secrets) + } + } as unknown as Prisma; + + const { listSecrets } = await import("../../src/secrets/listSecrets"); + + // Act + const response = await new Promise((resolve, reject) => { + listSecrets(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(response) + .has.property("items") + .to.be.an("array") + .to.have.lengthOf(1); + expect(response) + .has.property("nextPageToken") + .to.be.a("string") + .to.equal("123"); + }); + + it("should return an empty array if no secrets found", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + pageSize: 10, + pageToken: "1" + } + }; + + const prisma = { + secret: { + findMany: sandbox.stub().resolves([]) + } + } as unknown as Prisma; + + const { listSecrets } = await import("../../src/secrets/listSecrets"); + + // Act + const response = await new Promise((resolve, reject) => { + listSecrets(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(response) + .has.property("items") + .to.be.an("array") + .to.have.lengthOf(0); + expect(response).has.property("nextPageToken").to.be.undefined; + }); +}); diff --git a/mods/apiserver/test/secrets/updateSecret.test.ts b/mods/apiserver/test/secrets/updateSecret.test.ts new file mode 100644 index 000000000..59fd325c4 --- /dev/null +++ b/mods/apiserver/test/secrets/updateSecret.test.ts @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/core/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@secrets/updateSecret", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should update a secret", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123", + name: "My new secret name", + secret: "123456" + } + }; + + const prisma = { + secret: { + update: sandbox.stub().resolves({ ref: "123" }), + findUnique: sandbox + .stub() + .resolves({ accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p" }) + } + } as unknown as Prisma; + + const { updateSecret } = await import("../../src/secrets/updateSecret"); + + // Act + const response = await new Promise((resolve, reject) => { + updateSecret(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(response).to.deep.equal({ ref: "123" }); + }); + + it("should throw an error if the secret does not exist", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123", + name: "My new secret name", + secret: "123456" + } + }; + + const prisma = { + secret: { + update: sandbox.stub().throws({ code: "P2025" }), + findUnique: sandbox.stub().resolves(null) + } + } as unknown as Prisma; + + const { updateSecret } = await import("../../src/secrets/updateSecret"); + + // Act + const response = new Promise((resolve, reject) => { + updateSecret(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + await expect(response).to.be.rejectedWith( + `The requested resource was not found` + ); + }); +}); diff --git a/mods/apiserver/test/utils.ts b/mods/apiserver/test/utils.ts new file mode 100644 index 000000000..593246758 --- /dev/null +++ b/mods/apiserver/test/utils.ts @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Long-lived token for testing only +const TEST_TOKEN = + "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2Zvbm9zdGVyLmxvY2FsIiwic3ViIjoiNjM1YzBjZDgtODEyNS00ODNkLWI0NjctMDVjNTNjZTJjZDMxIiwiYXVkIjoiYXBpIiwidG9rZW5Vc2UiOiJhY2Nlc3MiLCJhY2Nlc3NLZXlJZCI6IlVTMTR3ajhxNnFsaXJ3MzMxZ2Zzd3VzZmJsaWU2aDc4dXoiLCJhY2Nlc3MiOlt7ImFjY2Vzc0tleUlkIjoiR1JhaG4wMnM4dGdkZmdoejcydmIwZno1MzhxcGI1ejM1cCIsInJvbGUiOiJPV05FUiJ9LHsiYWNjZXNzS2V5SWQiOiJHUmtnYmY4YW1pbnl3dWV2dXBiZHB4bDYzNmtjM2N5YmhvIiwicm9sZSI6Ik9XTkVSIn1dLCJpYXQiOjE3MTQ0MzM3MzZ9.eG6UEe8nBncu1I8TtytG5bModK42JxuSLCK74eLzUb-7MLowza8ZSfoHPHSPu5j1Wy_nj8NWa1u1SvqTfW-8inoL8Y_Mawl_u9zSM09Co85RQOI_bj7huGB7v0UECLfKyd7cAo_9wGB9TDDDX5Qo66bQz49hu_8zed8e6RzJXYRC5-5TBlyYdw3o7yHUXL5t8tFxDhT7U61kg0eVjPPZCAUiyohK74Zxdv1Z9RCfWTt9kUYXReqOUvhAFzL5Um5KwNdRnWwFRz_3-Msui2axAsZ6ztGoAvw_GhdlAminGEq7FILVCh6OHeOESAYo-qreAANmbwfBS8qNsglTiPAUEw"; + +const TEST_UUID = "13225251-c790-482d-912f-1646d054dc8c"; + +export { TEST_TOKEN, TEST_UUID }; diff --git a/mods/apiserver/test/voice/StasisEnd.test.ts b/mods/apiserver/test/voice/StasisEnd.test.ts new file mode 100644 index 000000000..192d15b32 --- /dev/null +++ b/mods/apiserver/test/voice/StasisEnd.test.ts @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Channel } from "ari-client"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { NatsConnection } from "nats"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub, getCreateVoiceClient } from "./helper"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const channelId = "channel-id"; + +describe("@voice/handler/StasisEnd", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should handle a StasisEnd event", async function () { + // Arrange + const { VoiceDispatcher } = await import("../../src/voice/VoiceDispatcher"); + + const ari = getAriStub(sandbox); + const nc = {} as unknown as NatsConnection; + const createVoiceClient = getCreateVoiceClient(sandbox); + const voiceDispatcher = new VoiceDispatcher(ari, nc, createVoiceClient); + + const channel = { + id: channelId, + getChannelVar: sandbox.stub().resolves({ value: "value" }), + Channel: sandbox.stub(), + originate: sandbox.stub(), + on: sandbox.stub(), + hangup: sandbox.stub() + } as unknown as Channel; + + voiceDispatcher.voiceClients.set(channelId, createVoiceClient()); + + // Act + voiceDispatcher.handleStasisEnd(undefined, channel); + + // Assert + expect(createVoiceClient().close).to.have.been.calledOnce; + expect(voiceDispatcher.voiceClients.get(channelId)).to.not.exist; + expect(channel.getChannelVar).to.have.been.not.called; + }); +}); diff --git a/mods/apiserver/test/voice/StasisStart.test.ts b/mods/apiserver/test/voice/StasisStart.test.ts new file mode 100644 index 000000000..36c491f27 --- /dev/null +++ b/mods/apiserver/test/voice/StasisStart.test.ts @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Channel, StasisStart } from "ari-client"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { NatsConnection } from "nats"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub } from "./helper"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const channelId = "channel-id"; + +describe("@voice/handler/StasisStart", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should handle a StasisStart event", async function () { + // Arrange + const { VoiceDispatcher } = await import("../../src/voice/VoiceDispatcher"); + + const ari = getAriStub(sandbox); + const nc = {} as unknown as NatsConnection; + const createVoiceClient = sandbox.stub().returns({ + connect: sandbox.stub(), + on: sandbox.stub(), + config: { + sessionId: channelId + } + }); + + const voiceDispatcher = new VoiceDispatcher(ari, nc, createVoiceClient); + + const event = { + channel: { + id: channelId, + caller: { + name: "John Doe", + number: "+17853178070" + } + } + } as unknown as StasisStart; + + const channel = { + id: channelId, + getChannelVar: sandbox.stub().resolves({ value: "value" }), + Channel: sandbox.stub(), + originate: sandbox.stub(), + on: sandbox.stub(), + hangup: sandbox.stub() + } as unknown as Channel; + + // Act + await voiceDispatcher.handleStasisStart(event, channel); + + // Assert + expect(createVoiceClient).to.have.been.calledOnce; + expect(voiceDispatcher.voiceClients.get(channelId)).to.exist; + expect(createVoiceClient().connect).to.have.been.calledOnce; + }); +}); diff --git a/mods/apiserver/test/voice/VoiceDispatcher.test.ts b/mods/apiserver/test/voice/VoiceDispatcher.test.ts new file mode 100644 index 000000000..5e03f675c --- /dev/null +++ b/mods/apiserver/test/voice/VoiceDispatcher.test.ts @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { NatsConnection } from "nats"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub } from "./helper"; +import { AriEvent } from "../../src/voice/types"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/handler/VoiceDispatcher", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a VoiceDispatcher", async function () { + // Arrange + const { VoiceDispatcher } = await import("../../src/voice/VoiceDispatcher"); + const ari = getAriStub(sandbox); + const nc = {} as unknown as NatsConnection; + const createVoiceClient = sandbox.stub(); + const voiceDispatcher = new VoiceDispatcher(ari, nc, createVoiceClient); + + // Act + voiceDispatcher.start(); + + // Assert + expect(ari.on).to.have.been.called.calledThrice; + expect(ari.on).to.have.been.calledWith( + AriEvent.STASIS_START, + match.func.and( + match(function (fn) { + return fn.name === "bound handleStasisStart"; + }) + ) + ); + expect(ari.on).to.have.been.calledWith( + AriEvent.STASIS_END, + match.func.and( + match(function (fn) { + return fn.name === "bound handleStasisEnd"; + }) + ) + ); + }); +}); diff --git a/mods/apiserver/test/voice/answerHandler.test.ts b/mods/apiserver/test/voice/answerHandler.test.ts new file mode 100644 index 000000000..4c5dbe6a7 --- /dev/null +++ b/mods/apiserver/test/voice/answerHandler.test.ts @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub, getCreateVoiceClient } from "./helper"; +import { createAnswerHandler } from "../../src/voice/handlers/createAnswerHandler"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const channelId = "channel-id"; + +describe("@voice/handler/Answer", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should handle an Answer command", async function () { + // Arrange + const ari = getAriStub(sandbox); + + const createVoiceClient = getCreateVoiceClient(sandbox); + + const verbRequest = { + sessionRef: channelId + }; + + // Act + await createAnswerHandler(ari, createVoiceClient())(verbRequest); + + // Assert + expect(ari.channels.answer).to.have.been.calledOnce; + expect(createVoiceClient().sendResponse).to.have.been.calledOnce; + expect(createVoiceClient().sendResponse).to.have.been.calledWith({ + answerResponse: { + sessionRef: verbRequest.sessionRef + } + }); + }); +}); diff --git a/mods/apiserver/test/voice/createVoiceClient.test.ts b/mods/apiserver/test/voice/createVoiceClient.test.ts new file mode 100644 index 000000000..a037ee079 --- /dev/null +++ b/mods/apiserver/test/voice/createVoiceClient.test.ts @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Channel, Client, StasisStart } from "ari-client"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { CreateContainer } from "../../src/voice/integrations/types"; +import { AbstractTextToSpeech } from "../../src/voice/tts/AbstractTextToSpeech"; +import { ChannelVar } from "../../src/voice/types"; +import { VoiceClientImpl } from "../../src/voice/VoiceClientImpl"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const channelId = "channel-id"; + +describe("@voice/createVoiceClient", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a voice client", async function () { + // Arrange + const { createCreateVoiceClient } = await import( + "../../src/voice/createCreateVoiceClient" + ); + + const createContainer = async (appRef: string) => { + return { + ref: appRef, + accessKeyId: "access-key-id", + endpoint: "app-endpoint", + tts: {} as unknown as AbstractTextToSpeech, + stt: {} as unknown as AbstractTextToSpeech + }; + }; + + const event = { + channel: { + id: channelId, + caller: { + name: "John Doe", + number: "+17853178070" + } + } + } as unknown as StasisStart; + + const channel = { + id: channelId, + originate: sandbox.stub(), + hangup: sandbox.stub(), + on: sandbox.stub(), + getChannelVar: sandbox + .stub() + .onFirstCall() + .resolves({ value: "from-pstn" }) + .onSecondCall() + .resolves({ value: "app-ref" }) + .onThirdCall() + .resolves({ value: "ingress-number" }) + .onCall(4) + .resolves({ value: "{}" }) + } as unknown as Channel; + + // Act + const voiceClient = await createCreateVoiceClient( + createContainer as unknown as CreateContainer, + null + )({ + ari: {} as Client, + event, + channel + }); + + // Assert + expect(voiceClient).to.be.an.instanceOf(VoiceClientImpl); + expect(channel.getChannelVar).to.have.callCount(4); + expect(channel.getChannelVar).to.have.been.calledWith({ + variable: ChannelVar.APP_REF + }); + expect(channel.getChannelVar).to.have.been.calledWith({ + variable: ChannelVar.METADATA + }); + expect(channel.getChannelVar).to.have.been.calledWith({ + variable: ChannelVar.INGRESS_NUMBER + }); + expect(channel.getChannelVar).to.have.been.calledWith({ + variable: ChannelVar.CALL_DIRECTION + }); + }); +}); diff --git a/mods/apiserver/test/voice/dialHandler.test.ts b/mods/apiserver/test/voice/dialHandler.test.ts new file mode 100644 index 000000000..ef39f82c7 --- /dev/null +++ b/mods/apiserver/test/voice/dialHandler.test.ts @@ -0,0 +1,209 @@ +/* eslint-disable new-cap */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + DialRecordDirection, + DialStatus, + STASIS_APP_NAME +} from "@fonoster/common"; +import { Bridge, Client } from "ari-client"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import sinon, { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub, getCreateVoiceClient } from "./helper"; +import { sessionRef } from "@fonoster/voice/test/helpers"; +import { ASTERISK_SYSTEM_DOMAIN, ASTERISK_TRUNK } from "../../src/envs"; +import { createHandleDialEventsWithVoiceClient } from "../../src/utils"; +import { createDialHandler } from "../../src/voice/handlers/dial/createDialHandler"; +import { handleChannelLeftBridge } from "../../src/voice/handlers/dial/handleChannelLeftBridge"; +import { handleStasisStart } from "../../src/voice/handlers/dial/handleStasisStart"; +import { AriEvent, VoiceClient } from "../../src/voice/types"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/handler/Dial", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should dial a number", async function () { + // Arrange + const ari = getAriStub(sandbox); + const createVoiceClient = getCreateVoiceClient(sandbox); + + const request = { + sessionRef: "sessionRef", + destination: "destination", + timeout: 30 + }; + + await createDialHandler(ari, createVoiceClient())(request); + + const channelStub = ari.Channel as unknown as sinon.SinonStub; + + expect(ari.bridges.create).to.have.been.calledOnce; + expect(ari.Channel).to.have.been.calledOnce; + expect(channelStub.returnValues[0].originate).to.have.been.calledOnce; + expect(channelStub.returnValues[0].originate).to.have.been.calledWith({ + app: STASIS_APP_NAME, + endpoint: `PJSIP/${ASTERISK_TRUNK}/sip:${request.destination}@${ASTERISK_SYSTEM_DOMAIN}`, + timeout: request.timeout, + variables: { + "PJSIP_HEADER(add,X-Call-Ref)": match.string, + "PJSIP_HEADER(add,X-Dod-Number)": "value", + "PJSIP_HEADER(add,X-Is-Api-Originated-Type)": "true" + } + }); + expect(channelStub.returnValues[0].once).to.have.been.calledWith( + AriEvent.STASIS_START + ); + expect(channelStub.returnValues[0].once).to.have.been.calledWith( + AriEvent.CHANNEL_LEFT_BRIDGE + ); + expect(channelStub.returnValues[0].once).to.have.been.calledWith( + AriEvent.STASIS_END + ); + expect(channelStub.returnValues[0].on).to.have.been.calledWith( + AriEvent.DIAL + ); + expect(createVoiceClient().sendResponse).to.have.been.calledWith({ + dialResponse: { + status: DialStatus.TRYING + } + }); + }); + + it("should handle channel left bridge", async function () { + // Arrange + const ari = getAriStub(sandbox); + + const bridge = { + addChannel: sandbox.stub(), + destroy: sandbox.stub() + } as unknown as Bridge; + + const dialed = ari.Channel(); + + // Act + await handleChannelLeftBridge({ bridge, dialed })(); + + // Assert + expect(dialed.hangup).to.have.been.calledOnce; + expect(bridge.destroy).to.have.been.calledOnce; + }); + + it("should handle dial events (Channel Unavailable)", async function () { + // Arrange + const voiceClient = { + sendResponse: sandbox.stub() + }; + + const event = { + dialstatus: "CHANUNAVAIL" + }; + + // Act + await createHandleDialEventsWithVoiceClient( + voiceClient as unknown as VoiceClient + )(event); + + // Assert + expect(voiceClient.sendResponse).to.have.been.calledOnce; + expect(voiceClient.sendResponse).to.have.been.calledWith({ + dialResponse: { + status: DialStatus.FAILED + } + }); + }); + + it("should handle dial events (Progress)", async function () { + // Arrange + const voiceClient = { + sendResponse: sandbox.stub() + }; + + const event = { + dialstatus: "PROGRESS" + }; + + // Act + await createHandleDialEventsWithVoiceClient( + voiceClient as unknown as VoiceClient + )(event); + + // Assert + expect(voiceClient.sendResponse).to.have.been.calledOnce; + expect(voiceClient.sendResponse).to.have.been.calledWith({ + dialResponse: { + status: DialStatus.PROGRESS + } + }); + }); + + it("should handle dial events (Ignore event)", async function () { + // Arrange + const voiceClient = { + sendResponse: sandbox.stub() + }; + + const event = { + dialstatus: "X" + }; + + // Act + await createHandleDialEventsWithVoiceClient( + voiceClient as unknown as VoiceClient + )(event); + + // Assert + expect(voiceClient.sendResponse).to.not.have.been.called; + }); + + it("should handle stasis start", async function () { + // Arrange + const ari = getAriStub(sandbox) as unknown as Client; + + const request = { + sessionRef, + recordDirection: DialRecordDirection.IN, + destination: "destination" + }; + + const bridge = { + addChannel: sandbox.stub() + } as unknown as Bridge; + + const dialed = ari.Channel(); + + // Act + await handleStasisStart({ ari, request, bridge, dialed })( + undefined, + ari.Channel() + ); + + // Assert + expect(bridge.addChannel).to.have.been.calledOnce; + expect(bridge.addChannel).to.have.been.calledWith({ channel: dialed.id }); + expect(dialed.hangup).to.not.have.been.called; + }); +}); diff --git a/mods/apiserver/test/voice/gatherHandler.test.ts b/mods/apiserver/test/voice/gatherHandler.test.ts new file mode 100644 index 000000000..d3b050bc4 --- /dev/null +++ b/mods/apiserver/test/voice/gatherHandler.test.ts @@ -0,0 +1,37 @@ +/* eslint-disable new-cap */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/handler/Gather", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it.skip("needs tests", async function () { + // Noop + }); +}); diff --git a/mods/apiserver/test/voice/hangupHandler.test.ts b/mods/apiserver/test/voice/hangupHandler.test.ts new file mode 100644 index 000000000..6e550050b --- /dev/null +++ b/mods/apiserver/test/voice/hangupHandler.test.ts @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub, getCreateVoiceClient } from "./helper"; +import { createHangupHandler } from "../../src/voice/handlers/createHangupHandler"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const channelId = "channel-id"; + +describe("@voice/handler/Hangup", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should handle a Hangup command", async function () { + // Arrange + const ari = getAriStub(sandbox); + + const createVoiceClient = getCreateVoiceClient(sandbox); + + const hangupRequest = { + sessionRef: channelId + }; + + // Act + await createHangupHandler(ari, createVoiceClient())(hangupRequest); + + // Wait for 3 seconds to allow the hangup to complete + await new Promise((resolve) => setTimeout(resolve, 4000)); + + // Assert + expect(createVoiceClient().close).to.have.been.calledOnce; + expect(ari.channels.hangup).to.have.been.calledOnce; + expect(ari.channels.hangup).to.have.been.calledWith({ channelId }); + }).timeout(5000); +}); diff --git a/mods/apiserver/test/voice/helper.ts b/mods/apiserver/test/voice/helper.ts new file mode 100644 index 000000000..b3cd99a71 --- /dev/null +++ b/mods/apiserver/test/voice/helper.ts @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Client } from "ari-client"; +import { SinonSandbox } from "sinon"; + +function getAriStub(sandbox: SinonSandbox) { + return { + Channel: sandbox.stub().returns({ + originate: sandbox.stub(), + on: sandbox.stub(), + once: sandbox.stub(), + hangup: sandbox.stub(), + getChannelVar: sandbox.stub().resolves({ value: "value" }) + }), + on: sandbox.stub(), + once: sandbox.stub(), + start: sandbox.stub(), + removeListener: sandbox.stub(), + channels: { + get: sandbox.stub().resolves({ + getChannelVar: sandbox.stub().resolves({ value: "value" }) + }), + ring: sandbox.stub(), + ringStop: sandbox.stub(), + record: sandbox.stub(), + answer: sandbox.stub(), + play: sandbox.stub(), + hangup: sandbox.stub(), + mute: sandbox.stub(), + unmute: sandbox.stub(), + sendDTMF: sandbox.stub(), + snoopChannel: sandbox.stub() + }, + playbacks: { + control: sandbox.stub(), + stop: sandbox.stub() + }, + bridges: { + get: sandbox.stub(), + create: sandbox.stub().resolves({ + addChannel: sandbox.stub(), + destroy: sandbox.stub() + }) + } + } as unknown as Client; +} + +function getCreateVoiceClient(sandbox: SinonSandbox) { + return sandbox.stub().returns({ + config: { + sessionId: "channelId" + }, + close: sandbox.stub(), + sendResponse: sandbox.stub(), + startSpeechGather: sandbox.stub(), + startDtmfGather: sandbox.stub() + }); +} + +export { getAriStub, getCreateVoiceClient }; diff --git a/mods/apiserver/test/voice/muteHandler.test.ts b/mods/apiserver/test/voice/muteHandler.test.ts new file mode 100644 index 000000000..2969eaab6 --- /dev/null +++ b/mods/apiserver/test/voice/muteHandler.test.ts @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { MuteDirection } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub, getCreateVoiceClient } from "./helper"; +import { createMuteHandler } from "../../src/voice/handlers/createMuteHandler"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const channelId = "channel-id"; + +describe("@voice/handler/Mute", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should handle a Mute command", async function () { + // Arrange + const ari = getAriStub(sandbox); + + const createVoiceClient = getCreateVoiceClient(sandbox); + + const muteRequest = { + sessionRef: channelId, + direction: MuteDirection.BOTH + }; + + // Act + await createMuteHandler(ari, createVoiceClient())(muteRequest); + + // Assert + expect(createVoiceClient().sendResponse).to.have.been.calledOnce; + expect(ari.channels.mute).to.have.been.calledOnce; + expect(ari.channels.mute).to.have.been.calledWith({ + channelId, + direction: muteRequest.direction + }); + }); +}); diff --git a/mods/apiserver/test/voice/playDtmfHandler.test.ts b/mods/apiserver/test/voice/playDtmfHandler.test.ts new file mode 100644 index 000000000..d8b5d99c9 --- /dev/null +++ b/mods/apiserver/test/voice/playDtmfHandler.test.ts @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub, getCreateVoiceClient } from "./helper"; +import { createPlayDtmfHandler } from "../../src/voice/handlers/createPlayDtmfHandler"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const channelId = "channel-id"; + +describe("@voice/handler/PlayDtmf", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should handle a PlayDtmf command", async function () { + // Arrange + const ari = getAriStub(sandbox); + + const createVoiceClient = getCreateVoiceClient(sandbox); + + const playDtmfRequest = { + sessionRef: channelId, + digits: "123" + }; + + // Act + await createPlayDtmfHandler(ari, createVoiceClient())(playDtmfRequest); + + // Assert + expect(ari.channels.sendDTMF).to.have.been.calledOnce; + expect(createVoiceClient().sendResponse).to.have.been.calledOnce; + expect(createVoiceClient().sendResponse).to.have.been.calledWith({ + playDtmfResponse: { + sessionRef: channelId + } + }); + expect(ari.channels.sendDTMF).to.have.been.calledWith({ + channelId, + dtmf: playDtmfRequest.digits + }); + }); +}); diff --git a/mods/apiserver/test/voice/playHandler.test.ts b/mods/apiserver/test/voice/playHandler.test.ts new file mode 100644 index 000000000..aa043ac3d --- /dev/null +++ b/mods/apiserver/test/voice/playHandler.test.ts @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import sinon, { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub, getCreateVoiceClient } from "./helper"; +import { createPlayHandler } from "../../src/voice/handlers/createPlayHandler"; +import { AriEvent } from "../../src/voice/types"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const channelId = "channel-id"; + +describe("@voice/handler/Play", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should handle a Play command", async function () { + // Arrange + const ari = getAriStub(sandbox); + + const onStub = ari.on as sinon.SinonStub; + + onStub.withArgs(AriEvent.PLAYBACK_FINISHED).callsFake((_, cb) => { + cb({}, { id: playRequest.playbackRef }); + }); + + const createVoiceClient = getCreateVoiceClient(sandbox); + + const playRequest = { + playbackRef: "playbackRef", + sessionRef: channelId, + url: "url" + }; + + // Act + await createPlayHandler(ari, createVoiceClient())(playRequest); + + // Assert + expect(ari.channels.play).to.have.been.calledOnce; + expect(createVoiceClient().sendResponse).to.have.been.calledOnce; + expect(createVoiceClient().sendResponse).to.have.been.calledWith({ + playResponse: { + playbackRef: playRequest.playbackRef, + sessionRef: playRequest.sessionRef + } + }); + expect(ari.channels.play).to.have.been.calledWith({ + channelId, + media: `sound:${playRequest.url}`, + playbackId: playRequest.playbackRef + }); + }); +}); diff --git a/mods/apiserver/test/voice/playbackControlHandler.test.ts b/mods/apiserver/test/voice/playbackControlHandler.test.ts new file mode 100644 index 000000000..e539d87f2 --- /dev/null +++ b/mods/apiserver/test/voice/playbackControlHandler.test.ts @@ -0,0 +1,101 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { PlaybackControlAction } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub, getCreateVoiceClient } from "./helper"; +import { createPlaybackControlHandler } from "../../src/voice/handlers/createPlaybackControlHandler"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const channelId = "channel-id"; + +describe("@voice/handler/PlaybackControl", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should handle a PlaybackControl command", async function () { + // Arrange + const ari = getAriStub(sandbox); + + const createVoiceClient = getCreateVoiceClient(sandbox); + + const playbackControlRequest = { + playbackRef: "playback-id", + sessionRef: channelId, + action: PlaybackControlAction.FORWARD + }; + + // Act + await createPlaybackControlHandler( + ari, + createVoiceClient() + )(playbackControlRequest); + + // Assert + expect(ari.playbacks.control).to.have.been.calledOnce; + expect(createVoiceClient().sendResponse).to.have.been.calledOnce; + expect(createVoiceClient().sendResponse).to.have.been.calledWith({ + playbackControlResponse: { + sessionRef: playbackControlRequest.sessionRef + } + }); + expect(ari.playbacks.control).to.have.been.calledWith({ + playbackId: playbackControlRequest.playbackRef, + operation: playbackControlRequest.action + }); + }); + + it("should handle a STOP PlaybackControl command", async function () { + // Arrange + const ari = getAriStub(sandbox); + + const createVoiceClient = getCreateVoiceClient(sandbox); + + const playbackControlRequest = { + playbackRef: "playback-id", + sessionRef: channelId, + action: PlaybackControlAction.STOP + }; + + // Act + await createPlaybackControlHandler( + ari, + createVoiceClient() + )(playbackControlRequest); + + // Assert + expect(ari.playbacks.stop).to.have.been.calledOnce; + expect(createVoiceClient().sendResponse).to.have.been.calledOnce; + expect(createVoiceClient().sendResponse).to.have.been.calledWith({ + playbackControlResponse: { + sessionRef: playbackControlRequest.sessionRef + } + }); + expect(ari.playbacks.stop).to.have.been.calledWith({ + playbackId: playbackControlRequest.playbackRef + }); + }); +}); diff --git a/mods/apiserver/test/voice/recordHandler.test.ts b/mods/apiserver/test/voice/recordHandler.test.ts new file mode 100644 index 000000000..f2979babf --- /dev/null +++ b/mods/apiserver/test/voice/recordHandler.test.ts @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import sinon, { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub, getCreateVoiceClient } from "./helper"; +import { createRecordHandler } from "../../src/voice/handlers/createRecordHandler"; +import { AriEvent } from "../../src/voice/types"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/handler/Record", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should handle the Record command", async function () { + // Arrange + const ari = getAriStub(sandbox); + + const recordingName = "recordingName"; + const sessionRef = "sessionRef"; + + // eslint-disable-next-line @typescript-eslint/no-var-requires + const nanoid = require("nanoid"); + sandbox.stub(nanoid, "nanoid").returns(recordingName); + + const onStub = ari.on as sinon.SinonStub; + + onStub.withArgs(AriEvent.RECORDING_FINISHED).callsFake((_, cb) => { + cb({ recording: { name: recordingName } }); + }); + + const createVoiceClient = getCreateVoiceClient(sandbox); + + const recordRequest = { + beep: true, + finishOnKey: "#", + maxDuration: 10, + maxSilence: 5, + sessionRef + }; + + // Act + await createRecordHandler(ari, createVoiceClient())(recordRequest); + + // Assert + expect(ari.channels.record).to.have.been.calledOnce; + }); + + it("should handle the Record command with a failed recording", async function () { + // Arrange + const ari = getAriStub(sandbox); + + const recordingName = "recordingName"; + const sessionRef = "sessionRef"; + + // eslint-disable-next-line @typescript-eslint/no-var-requires + const nanoid = require("nanoid"); + sandbox.stub(nanoid, "nanoid").returns(recordingName); + + const onStub = ari.on as sinon.SinonStub; + + onStub.withArgs(AriEvent.RECORDING_FAILED).callsFake((_, cb) => { + cb({ recording: { name: recordingName, cause: "cause" } }); + }); + + const createVoiceClient = getCreateVoiceClient(sandbox); + + const recordRequest = { + beep: true, + finishOnKey: "#", + maxDuration: 10, + maxSilence: 5, + sessionRef + }; + + // Act + const promise = createRecordHandler(ari, createVoiceClient())(recordRequest); + + // Assert + await expect(promise).to.eventually.be.rejectedWith("Recording failed"); + }); +}); diff --git a/mods/apiserver/test/voice/sayHandler.test.ts b/mods/apiserver/test/voice/sayHandler.test.ts new file mode 100644 index 000000000..52578ad0e --- /dev/null +++ b/mods/apiserver/test/voice/sayHandler.test.ts @@ -0,0 +1,37 @@ +/* eslint-disable new-cap */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/handler/Say", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it.skip("needs tests", async function () { + // Noop + }); +}); diff --git a/mods/apiserver/test/voice/stasisEnd.test.ts b/mods/apiserver/test/voice/stasisEnd.test.ts new file mode 100644 index 000000000..192d15b32 --- /dev/null +++ b/mods/apiserver/test/voice/stasisEnd.test.ts @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Channel } from "ari-client"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { NatsConnection } from "nats"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub, getCreateVoiceClient } from "./helper"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const channelId = "channel-id"; + +describe("@voice/handler/StasisEnd", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should handle a StasisEnd event", async function () { + // Arrange + const { VoiceDispatcher } = await import("../../src/voice/VoiceDispatcher"); + + const ari = getAriStub(sandbox); + const nc = {} as unknown as NatsConnection; + const createVoiceClient = getCreateVoiceClient(sandbox); + const voiceDispatcher = new VoiceDispatcher(ari, nc, createVoiceClient); + + const channel = { + id: channelId, + getChannelVar: sandbox.stub().resolves({ value: "value" }), + Channel: sandbox.stub(), + originate: sandbox.stub(), + on: sandbox.stub(), + hangup: sandbox.stub() + } as unknown as Channel; + + voiceDispatcher.voiceClients.set(channelId, createVoiceClient()); + + // Act + voiceDispatcher.handleStasisEnd(undefined, channel); + + // Assert + expect(createVoiceClient().close).to.have.been.calledOnce; + expect(voiceDispatcher.voiceClients.get(channelId)).to.not.exist; + expect(channel.getChannelVar).to.have.been.not.called; + }); +}); diff --git a/mods/apiserver/test/voice/stasisStart.test.ts b/mods/apiserver/test/voice/stasisStart.test.ts new file mode 100644 index 000000000..36c491f27 --- /dev/null +++ b/mods/apiserver/test/voice/stasisStart.test.ts @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Channel, StasisStart } from "ari-client"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { NatsConnection } from "nats"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub } from "./helper"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const channelId = "channel-id"; + +describe("@voice/handler/StasisStart", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should handle a StasisStart event", async function () { + // Arrange + const { VoiceDispatcher } = await import("../../src/voice/VoiceDispatcher"); + + const ari = getAriStub(sandbox); + const nc = {} as unknown as NatsConnection; + const createVoiceClient = sandbox.stub().returns({ + connect: sandbox.stub(), + on: sandbox.stub(), + config: { + sessionId: channelId + } + }); + + const voiceDispatcher = new VoiceDispatcher(ari, nc, createVoiceClient); + + const event = { + channel: { + id: channelId, + caller: { + name: "John Doe", + number: "+17853178070" + } + } + } as unknown as StasisStart; + + const channel = { + id: channelId, + getChannelVar: sandbox.stub().resolves({ value: "value" }), + Channel: sandbox.stub(), + originate: sandbox.stub(), + on: sandbox.stub(), + hangup: sandbox.stub() + } as unknown as Channel; + + // Act + await voiceDispatcher.handleStasisStart(event, channel); + + // Assert + expect(createVoiceClient).to.have.been.calledOnce; + expect(voiceDispatcher.voiceClients.get(channelId)).to.exist; + expect(createVoiceClient().connect).to.have.been.calledOnce; + }); +}); diff --git a/mods/apiserver/test/voice/streamGatherHandler.test.ts b/mods/apiserver/test/voice/streamGatherHandler.test.ts new file mode 100644 index 000000000..941d9184b --- /dev/null +++ b/mods/apiserver/test/voice/streamGatherHandler.test.ts @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { StreamGatherSource } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getCreateVoiceClient } from "./helper"; +import { createStreamGatherHandler } from "../../src/voice/handlers/createStreamGatherHandler"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/handler/StreamHeader", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should handle the StreamGather command", async function () { + // Arrange + const createVoiceClient = getCreateVoiceClient(sandbox); + + const streamGatherRequest = { + sessionRef: "sessionRef", + source: "speech" + }; + + const voiceClient = createVoiceClient(); + + // Act + await createStreamGatherHandler(voiceClient)(streamGatherRequest); + + // Assert + expect(voiceClient.startSpeechGather).to.have.been.calledOnce; + expect(voiceClient.startSpeechGather).to.have.been.calledWith(match.func); + expect(voiceClient.startDtmfGather).to.not.have.been.called; + }); + + it("should handle the StreamGather command with DTMF", async function () { + // Arrange + const createVoiceClient = getCreateVoiceClient(sandbox); + + const streamGatherRequest = { + sessionRef: "sessionRef", + source: StreamGatherSource.SPEECH_AND_DTMF + }; + + const voiceClient = createVoiceClient(); + + // Act + await createStreamGatherHandler(voiceClient)(streamGatherRequest); + + // Assert + expect(voiceClient.startDtmfGather).to.have.been.calledOnce; + expect(voiceClient.startDtmfGather).to.have.been.calledWith( + "sessionRef", + match.func + ); + expect(voiceClient.startSpeechGather).to.have.been.calledOnce; + }); +}); diff --git a/mods/apiserver/test/voice/unmuteHandler.test.ts b/mods/apiserver/test/voice/unmuteHandler.test.ts new file mode 100644 index 000000000..a85aa6e59 --- /dev/null +++ b/mods/apiserver/test/voice/unmuteHandler.test.ts @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { MuteDirection } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getAriStub, getCreateVoiceClient } from "./helper"; +import { createUnmuteHandler } from "../../src/voice/handlers/createUnmuteHandler"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const channelId = "channel-id"; + +describe("@voice/handler/Unmute", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should handle a Unmute command", async function () { + // Arrange + const ari = getAriStub(sandbox); + + const createVoiceClient = getCreateVoiceClient(sandbox); + + const unmuteRequest = { + sessionRef: channelId, + direction: MuteDirection.BOTH + }; + + // Act + await createUnmuteHandler(ari, createVoiceClient())(unmuteRequest); + + // Assert + expect(createVoiceClient().sendResponse).to.have.been.calledOnce; + expect(ari.channels.unmute).to.have.been.calledOnce; + expect(ari.channels.unmute).to.have.been.calledWith({ + channelId, + direction: unmuteRequest.direction + }); + expect(ari.channels.mute).to.not.have.been.called; + }); +}); diff --git a/mods/apiserver/tsconfig.json b/mods/apiserver/tsconfig.json new file mode 100644 index 000000000..6c06c9f82 --- /dev/null +++ b/mods/apiserver/tsconfig.json @@ -0,0 +1,25 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "references": [ + { + "path": "../identity", + }, + { + "path": "../authz", + }, + { + "path": "../logger", + }, + { + "path": "../common", + }, + { + "path": "../types", + } + ], + "exclude": ["node_modules", "dist", "test"] +} diff --git a/mods/apps/.dockerignore b/mods/apps/.dockerignore deleted file mode 100644 index b512c09d4..000000000 --- a/mods/apps/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/mods/apps/.npmignore b/mods/apps/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/apps/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/apps/Dockerfile b/mods/apps/Dockerfile deleted file mode 100644 index 46e4330b8..000000000 --- a/mods/apps/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs \ - && npm install -g fonoster-*.tgz \ - && apk del npm git - -USER fonoster - -CMD ["run_apps"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_apps" ] \ No newline at end of file diff --git a/mods/apps/package-lock.json b/mods/apps/package-lock.json deleted file mode 100644 index 2b4cc67ab..000000000 --- a/mods/apps/package-lock.json +++ /dev/null @@ -1,4226 +0,0 @@ -{ - "name": "@fonoster/apps", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/apps", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/errors": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_apps": "dist/service/healthcheck.js", - "run_apps": "dist/service/runner.js" - }, - "devDependencies": { - "@types/google-protobuf": "^3.15.2" - } - }, - "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/@fonoster/auth": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/auth/-/auth-0.3.18.tgz", - "integrity": "sha512-xnTvdbXt2BAHwqetb2QUuSVNDkIAmjtz+CCkV2MlQ5fKX/XLwySbVjleKpf80F0+CMoz3U8wviGGHFQ0q0Y7IQ==", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/certs": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/certs/-/certs-0.3.18.tgz", - "integrity": "sha512-echVIIX6le3yBVs0b8XtVFYJtMzMI/1fGm0CVqdrUw/mp9stsKyDV79Fc9KLKAtVs9+H2bwyAgTgo3HuLwLCvA==", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "node_modules/@fonoster/common": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/common/-/common-0.3.18.tgz", - "integrity": "sha512-C7XgeGOZmnKf48zimp/kCcTSb0+Q0m8JUNh1D+ZImdl2keDN2mh+ibJqydjjwjOpB6TNTUJCVa6CEkjRNnGECw==", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "node_modules/@fonoster/core": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/core/-/core-0.3.18.tgz", - "integrity": "sha512-fquMnpfE34aqmyg1MO52S04rb2RvkVWl7R+zmvyrsyzDiYS2TzRGNV+30YzEe6V7hTz5gfXcCNAVve+N0lE7/A==", - "dependencies": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - } - }, - "node_modules/@fonoster/errors": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/errors/-/errors-0.3.18.tgz", - "integrity": "sha512-lXI36Ai0OwuAMDyKr4PUXgJo5xw/ViHPfo2+St18pZnalaZSNHX6FN9Jh1VRg3XxqIfCgqLSrTovtc86FB2fqw==" - }, - "node_modules/@fonoster/grpc-health-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@fonoster/grpc-health-check/-/grpc-health-check-3.1.1.tgz", - "integrity": "sha512-JjXI4i2g2FF7QgHcAgy18RISbeRnqQ+U9QdPeYmE5TijaK7JaFwV/mOK7WgIIxQNqNsR/ozoap5Q46T0qpukeQ==", - "dependencies": { - "google-protobuf": "^3.21.0", - "grpc-boom": "^3.0.11" - }, - "peerDependencies": { - "@fonoster/logger": "^0.3.16-alpha.2", - "@grpc/grpc-js": "^1.6.10", - "@grpc/proto-loader": "^0.7.2" - } - }, - "node_modules/@fonoster/logger": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/logger/-/logger-0.3.18.tgz", - "integrity": "sha512-/RpGAsteYmvbe6o9GKsoZAgl9HzqSvNqTJDj52wo3WzyzLF7rZNxnoL5JAdfP7GV+Z0qvLBM/NW6Hqsc04b2Hw==", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/api-metrics": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.27.0.tgz", - "integrity": "sha512-tB79288bwjkdhPNpw4UdOEy3bacVwtol6Que7cAu8KEJ9ULjRfSiwpYEwJY/oER3xZ7zNFz0uiJ7N1jSiotpVA==", - "deprecated": "Please use @opentelemetry/api >= 1.3.0", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", - "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==", - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/exporter-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.8.0.tgz", - "integrity": "sha512-3h16Sb1T/G33S+RM3yjt1t2xRuu/mi9iB172faS6qFQEclTTJru1pTK4wuWG+9GyI7uyBLfbQoXVA5/BA6gvHw==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0", - "jaeger-client": "^3.15.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/exporter-zipkin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.8.0.tgz", - "integrity": "sha512-Y3WqNCZjfWKnHiRzb35sXpDfGL4Gx2qajFAv059s/VFayIPytLHUOrZMiQqrpfzU/TSIKPG4OHJaypFtUtNlQQ==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.27.0.tgz", - "integrity": "sha512-dUwY/VoDptdK8AYigwS3IKblG+unV5xIdV4VQKy+nX5aT3f7vd5PMYs4arCQSYLbLRe0s7GxK6S9dtjai/TsHQ==", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.27.1.tgz", - "integrity": "sha512-EbpmTyem70Rg56+A0w8ndSmeyVYj7gFV9yk2IGgVVc9n/hs2mTgsBI2evaUtWbpB51pb1u/h+DhICKxgg/8Hew==", - "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/express": "4.17.13" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.2" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.27.0.tgz", - "integrity": "sha512-aFHcAeeLfqoH8PMjmdqEwZwXDJtFSkWmGDBZeH2yrx3KzFMVBB/UJEr1n/ZC6AqfqahL/qqB1N8EnoCoOcs5ig==", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.27.0.tgz", - "integrity": "sha512-Q1dxUt+5d70rbY6jJAC8nwpIQJontmJW94eIS5CsGngvCRYw6tgjLZp2fpVL1o7Lj7uiLpGigeE4EN5Lr2YDFA==", - "dependencies": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/propagator-b3": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.8.0.tgz", - "integrity": "sha512-ffP6AVHyISqK1kiUY1MoVKt43Wp3FJXI8NOePqxBrAU7bRDJ13276VbSl4ugCZbZLTPrPhhSmvQh1WqlfUgcAg==", - "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/propagator-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.8.0.tgz", - "integrity": "sha512-v6GA38k2cqeGAh3368prLW5MsuG2/KxpfWI/PxTPjCa9tThDPq0cvhKpk7cEma3y+F6rieMhwmzZhKQL5QVBzQ==", - "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/resources": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.8.0.tgz", - "integrity": "sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.27.0.tgz", - "integrity": "sha512-HpiWI4sVNsjp3FGyUlc24KvUY2Whl4PQVwcbA/gWv2kHaLQrDJrWC+3rjUR+87Mrd0nsiqJ85xhGFU6IK8h7gg==", - "deprecated": "Please use @opentelemetry/sdk-metrics", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/core": "1.0.1", - "@opentelemetry/resources": "1.0.1", - "lodash.merge": "^4.6.2" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/resources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.1.tgz", - "integrity": "sha512-p8DevOaAEepPucUtImR4cZKHOE2L1jgQAtkdZporV+XnxPA/HqCHPEESyUVuo4f5M0NUlL6k5Pba75KwNJlTRg==", - "dependencies": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz", - "integrity": "sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-node": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.8.0.tgz", - "integrity": "sha512-6FqhJEgW9Nke5SO4Ul9+5EWOfms/JeLg5LRqILMPMK4UMBWcOtk7jldvGGyfVpraJ16/WPo/R5NSnMwlupN5zQ==", - "dependencies": { - "@opentelemetry/context-async-hooks": "1.8.0", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/propagator-b3": "1.8.0", - "@opentelemetry/propagator-jaeger": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz", - "integrity": "sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "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.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/google-protobuf": { - "version": "3.15.5", - "resolved": "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.15.5.tgz", - "integrity": "sha512-6bgv24B+A2bo9AfzReeg5StdiijKzwwnRflA8RLd1V4Yv995LeTmo0z69/MPbBDFSiZWdZHQygLo/ccXhMEDgw==", - "dev": true - }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", - "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "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": "16.18.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.4.tgz", - "integrity": "sha512-9qGjJ5GyShZjUfx2ArBIGM+xExdfLvvaCyQR0t6yRXKPcWCVYF/WemtX/uIU3r7FYECXRXkIiw2Vnhn6y8d+pw==" - }, - "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/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acme-client": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/acme-client/-/acme-client-4.2.5.tgz", - "integrity": "sha512-dtnck4sdZ2owFLTC73Ewjx0kmvsRjTRgaOc8UztCNODT+lr1DXj0tiuUXjeY4LAzZryXCtCib/E+KD8NYeP1aw==", - "dependencies": { - "axios": "0.26.1", - "backo2": "^1.0.0", - "bluebird": "^3.5.0", - "debug": "^4.1.1", - "node-forge": "^1.3.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==", - "engines": { - "node": "*" - } - }, - "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/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "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/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "dependencies": { - "follow-redirects": "^1.14.8" - } - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "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/bufrw": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", - "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", - "dependencies": { - "ansi-color": "^0.2.1", - "error": "^7.0.0", - "hexer": "^1.5.0", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "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/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/cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "engines": { - "node": ">=0.10.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": "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/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/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/color/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/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/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/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "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/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "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/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "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/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", - "dependencies": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "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-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-lite": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz", - "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==" - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "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/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/fluent-logger": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/fluent-logger/-/fluent-logger-3.4.1.tgz", - "integrity": "sha512-lERIhXAvhtCYeQq8K7sBDg/HY9GkiVRq5xY3oN+hcSINVKwqwBzG6LQOJK73EnV50qO59U7XEmRnn2hBzLWaHw==", - "dependencies": { - "msgpack-lite": "*" - }, - "engines": { - "node": ">=6" - } - }, - "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/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "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.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "node_modules/grpc-boom": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/grpc-boom/-/grpc-boom-3.0.11.tgz", - "integrity": "sha512-bdGLCww+w+CWHdT0Fm2AzoRToJJHzlIEfTggkquUO9JG5d2TU+yUIuk4ksWQ2B+LFQpxLaB7ZbZXKBPkErtW5w==", - "peerDependencies": { - "@types/node": "^16.11.35" - } - }, - "node_modules/grpc-interceptors": { - "version": "0.2.5", - "resolved": "git+ssh://git@github.com/fonoster/node-grpc-interceptors.git#3ccc1d222f8a66e319a0e1e93bd18095aeaeb141", - "license": "ISC", - "dependencies": { - "zipkin": "^0.12.0", - "zipkin-transport-http": "^0.22.0" - }, - "peerDependencies": { - "@grpc/grpc-js": "^1.3.7" - } - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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-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/hexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", - "dependencies": { - "ansi-color": "^0.2.1", - "minimist": "^1.1.0", - "process": "^0.10.0", - "xtend": "^4.0.0" - }, - "bin": { - "hexer": "cli.js" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/int64-buffer": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz", - "integrity": "sha512-v7cSY1J8ydZ0GyjUHqF+1bshJ6cnEVLo9EnjB8p+4HDRPZc9N5jjmvUV7NvEsqQOKyH0pmIBFWXVQbiS0+OBbA==" - }, - "node_modules/ioredis": { - "version": "4.28.5", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.28.5.tgz", - "integrity": "sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==", - "dependencies": { - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.1", - "denque": "^1.1.0", - "lodash.defaults": "^4.2.0", - "lodash.flatten": "^4.4.0", - "lodash.isarguments": "^3.1.0", - "p-map": "^2.1.0", - "redis-commands": "1.7.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.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-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "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/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/jaeger-client": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", - "dependencies": { - "node-int64": "^0.4.0", - "opentracing": "^0.14.4", - "thriftrw": "^3.5.0", - "uuid": "^8.3.2", - "xorshift": "^1.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "node_modules/jsonwebtoken/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "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/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/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, - "node_modules/logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", - "dependencies": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "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": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "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/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, - "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/msgpack-lite": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz", - "integrity": "sha512-SZ2IxeqZ1oRFGo0xFGbvBJWMp3yLIY9rlIJyxy8CGrwZn1f0ZK4r6jV/AM1r0FZMDUkWkglOk/eeKIL9g77Nxw==", - "dependencies": { - "event-lite": "^0.1.1", - "ieee754": "^1.1.8", - "int64-buffer": "^0.1.9", - "isarray": "^1.0.0" - }, - "bin": { - "msgpack": "bin/msgpack" - } - }, - "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/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/network-address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", - "integrity": "sha512-Q6878fmvItA1mE7H9Il46lONgFgTzX2f98zkS0c2YlkCACzNjwvum/8Kq693IQpxe9zy+w+Zm/4p0wQreLEtZw==", - "bin": { - "network-address": "cli.js" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "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/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "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/opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/phone": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/phone/-/phone-2.4.22.tgz", - "integrity": "sha512-k2f9qkIgcgbbeyFFMHDcCaYdPxq7u71EjmMvD998PEquwDvIT7zmUFe00S4hH9WPjk+IQlw9W/FlHOu1O17Tbw==", - "engines": { - "node": ">=6.10.0" - } - }, - "node_modules/process": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/protobufjs/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "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/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "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/redis-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", - "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" - }, - "node_modules/redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "dependencies": { - "redis-errors": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "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-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "dependencies": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz", - "integrity": "sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "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/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/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/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "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/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/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/standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "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-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==" - }, - "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/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/thriftrw": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.12.0.tgz", - "integrity": "sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw==", - "dependencies": { - "bufrw": "^1.3.0", - "error": "7.0.2", - "long": "^2.4.0" - }, - "bin": { - "thrift2json": "thrift2json.js" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/thriftrw/node_modules/long": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "peer": true - }, - "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/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "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/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "peer": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "peer": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "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/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/xorshift": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "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/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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/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/zipkin": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.12.0.tgz", - "integrity": "sha512-QguH/UQt/ofUVcTJLW7qdyi7iEo71MJJbKg/6d/m3ptvxhm5gDVf/KVuCEfzxxzzWGSKtX+c+qACvowsPkNjuQ==", - "dependencies": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0", - "network-address": "^1.1.0" - } - }, - "node_modules/zipkin-transport-http": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin-transport-http/-/zipkin-transport-http-0.22.0.tgz", - "integrity": "sha512-bjM2fm/hurseBuvpyB8mYCBBGOz3gc2f9KUSQl71LGxmgYcUeXvDHJyE9MgzWMhl+3HcD8l5nNn6OmdX63he+g==", - "dependencies": { - "zipkin": "^0.22.0" - }, - "peerDependencies": { - "node-fetch": ">=1.4.0 <3.0.0" - } - }, - "node_modules/zipkin-transport-http/node_modules/zipkin": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.22.0.tgz", - "integrity": "sha512-SZgorBAvywnj5R26mqsFP+2MRUsBXGg0B8GLRLw9R0FeE4alMUAfhXYvzeAt2+MvkXne9QdQyziuqO5oXNQ0Sg==", - "dependencies": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0" - } - } - }, - "dependencies": { - "@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" - } - }, - "@fonoster/auth": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/auth/-/auth-0.3.18.tgz", - "integrity": "sha512-xnTvdbXt2BAHwqetb2QUuSVNDkIAmjtz+CCkV2MlQ5fKX/XLwySbVjleKpf80F0+CMoz3U8wviGGHFQ0q0Y7IQ==", - "requires": { - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - } - }, - "@fonoster/certs": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/certs/-/certs-0.3.18.tgz", - "integrity": "sha512-echVIIX6le3yBVs0b8XtVFYJtMzMI/1fGm0CVqdrUw/mp9stsKyDV79Fc9KLKAtVs9+H2bwyAgTgo3HuLwLCvA==", - "requires": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "@fonoster/common": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/common/-/common-0.3.18.tgz", - "integrity": "sha512-C7XgeGOZmnKf48zimp/kCcTSb0+Q0m8JUNh1D+ZImdl2keDN2mh+ibJqydjjwjOpB6TNTUJCVa6CEkjRNnGECw==", - "requires": { - "@fonoster/certs": "^0.3.18", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "@fonoster/core": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/core/-/core-0.3.18.tgz", - "integrity": "sha512-fquMnpfE34aqmyg1MO52S04rb2RvkVWl7R+zmvyrsyzDiYS2TzRGNV+30YzEe6V7hTz5gfXcCNAVve+N0lE7/A==", - "requires": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - } - }, - "@fonoster/errors": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/errors/-/errors-0.3.18.tgz", - "integrity": "sha512-lXI36Ai0OwuAMDyKr4PUXgJo5xw/ViHPfo2+St18pZnalaZSNHX6FN9Jh1VRg3XxqIfCgqLSrTovtc86FB2fqw==" - }, - "@fonoster/grpc-health-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@fonoster/grpc-health-check/-/grpc-health-check-3.1.1.tgz", - "integrity": "sha512-JjXI4i2g2FF7QgHcAgy18RISbeRnqQ+U9QdPeYmE5TijaK7JaFwV/mOK7WgIIxQNqNsR/ozoap5Q46T0qpukeQ==", - "requires": { - "google-protobuf": "^3.21.0", - "grpc-boom": "^3.0.11" - } - }, - "@fonoster/logger": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/logger/-/logger-0.3.18.tgz", - "integrity": "sha512-/RpGAsteYmvbe6o9GKsoZAgl9HzqSvNqTJDj52wo3WzyzLF7rZNxnoL5JAdfP7GV+Z0qvLBM/NW6Hqsc04b2Hw==", - "requires": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - } - }, - "@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "requires": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - } - }, - "@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==" - }, - "@opentelemetry/api-metrics": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.27.0.tgz", - "integrity": "sha512-tB79288bwjkdhPNpw4UdOEy3bacVwtol6Que7cAu8KEJ9ULjRfSiwpYEwJY/oER3xZ7zNFz0uiJ7N1jSiotpVA==" - }, - "@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", - "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==", - "requires": {} - }, - "@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "requires": { - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/exporter-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.8.0.tgz", - "integrity": "sha512-3h16Sb1T/G33S+RM3yjt1t2xRuu/mi9iB172faS6qFQEclTTJru1pTK4wuWG+9GyI7uyBLfbQoXVA5/BA6gvHw==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0", - "jaeger-client": "^3.15.0" - } - }, - "@opentelemetry/exporter-zipkin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.8.0.tgz", - "integrity": "sha512-Y3WqNCZjfWKnHiRzb35sXpDfGL4Gx2qajFAv059s/VFayIPytLHUOrZMiQqrpfzU/TSIKPG4OHJaypFtUtNlQQ==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/instrumentation": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.27.0.tgz", - "integrity": "sha512-dUwY/VoDptdK8AYigwS3IKblG+unV5xIdV4VQKy+nX5aT3f7vd5PMYs4arCQSYLbLRe0s7GxK6S9dtjai/TsHQ==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "@opentelemetry/instrumentation-express": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.27.1.tgz", - "integrity": "sha512-EbpmTyem70Rg56+A0w8ndSmeyVYj7gFV9yk2IGgVVc9n/hs2mTgsBI2evaUtWbpB51pb1u/h+DhICKxgg/8Hew==", - "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/express": "4.17.13" - } - }, - "@opentelemetry/instrumentation-grpc": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.27.0.tgz", - "integrity": "sha512-aFHcAeeLfqoH8PMjmdqEwZwXDJtFSkWmGDBZeH2yrx3KzFMVBB/UJEr1n/ZC6AqfqahL/qqB1N8EnoCoOcs5ig==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "dependencies": { - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/instrumentation-http": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.27.0.tgz", - "integrity": "sha512-Q1dxUt+5d70rbY6jJAC8nwpIQJontmJW94eIS5CsGngvCRYw6tgjLZp2fpVL1o7Lj7uiLpGigeE4EN5Lr2YDFA==", - "requires": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1", - "semver": "^7.3.5" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "requires": { - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/propagator-b3": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.8.0.tgz", - "integrity": "sha512-ffP6AVHyISqK1kiUY1MoVKt43Wp3FJXI8NOePqxBrAU7bRDJ13276VbSl4ugCZbZLTPrPhhSmvQh1WqlfUgcAg==", - "requires": { - "@opentelemetry/core": "1.8.0" - } - }, - "@opentelemetry/propagator-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.8.0.tgz", - "integrity": "sha512-v6GA38k2cqeGAh3368prLW5MsuG2/KxpfWI/PxTPjCa9tThDPq0cvhKpk7cEma3y+F6rieMhwmzZhKQL5QVBzQ==", - "requires": { - "@opentelemetry/core": "1.8.0" - } - }, - "@opentelemetry/resources": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.8.0.tgz", - "integrity": "sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/sdk-metrics-base": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.27.0.tgz", - "integrity": "sha512-HpiWI4sVNsjp3FGyUlc24KvUY2Whl4PQVwcbA/gWv2kHaLQrDJrWC+3rjUR+87Mrd0nsiqJ85xhGFU6IK8h7gg==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/core": "1.0.1", - "@opentelemetry/resources": "1.0.1", - "lodash.merge": "^4.6.2" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "requires": { - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/resources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.1.tgz", - "integrity": "sha512-p8DevOaAEepPucUtImR4cZKHOE2L1jgQAtkdZporV+XnxPA/HqCHPEESyUVuo4f5M0NUlL6k5Pba75KwNJlTRg==", - "requires": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/sdk-trace-base": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz", - "integrity": "sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/sdk-trace-node": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.8.0.tgz", - "integrity": "sha512-6FqhJEgW9Nke5SO4Ul9+5EWOfms/JeLg5LRqILMPMK4UMBWcOtk7jldvGGyfVpraJ16/WPo/R5NSnMwlupN5zQ==", - "requires": { - "@opentelemetry/context-async-hooks": "1.8.0", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/propagator-b3": "1.8.0", - "@opentelemetry/propagator-jaeger": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "semver": "^7.3.5" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz", - "integrity": "sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "@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.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/google-protobuf": { - "version": "3.15.5", - "resolved": "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.15.5.tgz", - "integrity": "sha512-6bgv24B+A2bo9AfzReeg5StdiijKzwwnRflA8RLd1V4Yv995LeTmo0z69/MPbBDFSiZWdZHQygLo/ccXhMEDgw==", - "dev": true - }, - "@types/jsonwebtoken": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", - "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", - "requires": { - "@types/node": "*" - } - }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "@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": "16.18.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.4.tgz", - "integrity": "sha512-9qGjJ5GyShZjUfx2ArBIGM+xExdfLvvaCyQR0t6yRXKPcWCVYF/WemtX/uIU3r7FYECXRXkIiw2Vnhn6y8d+pw==" - }, - "@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": "*" - } - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acme-client": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/acme-client/-/acme-client-4.2.5.tgz", - "integrity": "sha512-dtnck4sdZ2owFLTC73Ewjx0kmvsRjTRgaOc8UztCNODT+lr1DXj0tiuUXjeY4LAzZryXCtCib/E+KD8NYeP1aw==", - "requires": { - "axios": "0.26.1", - "backo2": "^1.0.0", - "bluebird": "^3.5.0", - "debug": "^4.1.1", - "node-forge": "^1.3.0" - } - }, - "ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==" - }, - "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" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "requires": { - "follow-redirects": "^1.14.8" - } - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" - }, - "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==" - }, - "bufrw": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", - "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", - "requires": { - "ansi-color": "^0.2.1", - "error": "^7.0.0", - "hexer": "^1.5.0", - "xtend": "^4.0.0" - } - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "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" - } - }, - "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" - } - }, - "cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==" - }, - "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" - }, - "dependencies": { - "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-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==" - }, - "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" - } - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "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" - } - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "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" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "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==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - }, - "error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", - "requires": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - }, - "event-lite": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz", - "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==" - }, - "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "fluent-logger": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/fluent-logger/-/fluent-logger-3.4.1.tgz", - "integrity": "sha512-lERIhXAvhtCYeQq8K7sBDg/HY9GkiVRq5xY3oN+hcSINVKwqwBzG6LQOJK73EnV50qO59U7XEmRnn2hBzLWaHw==", - "requires": { - "msgpack-lite": "*" - } - }, - "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==" - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - }, - "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.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "grpc-boom": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/grpc-boom/-/grpc-boom-3.0.11.tgz", - "integrity": "sha512-bdGLCww+w+CWHdT0Fm2AzoRToJJHzlIEfTggkquUO9JG5d2TU+yUIuk4ksWQ2B+LFQpxLaB7ZbZXKBPkErtW5w==", - "requires": {} - }, - "grpc-interceptors": { - "version": "git+ssh://git@github.com/fonoster/node-grpc-interceptors.git#3ccc1d222f8a66e319a0e1e93bd18095aeaeb141", - "from": "grpc-interceptors@github:fonoster/node-grpc-interceptors", - "requires": { - "zipkin": "^0.12.0", - "zipkin-transport-http": "^0.22.0" - } - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "hexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", - "requires": { - "ansi-color": "^0.2.1", - "minimist": "^1.1.0", - "process": "^0.10.0", - "xtend": "^4.0.0" - } - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "int64-buffer": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz", - "integrity": "sha512-v7cSY1J8ydZ0GyjUHqF+1bshJ6cnEVLo9EnjB8p+4HDRPZc9N5jjmvUV7NvEsqQOKyH0pmIBFWXVQbiS0+OBbA==" - }, - "ioredis": { - "version": "4.28.5", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.28.5.tgz", - "integrity": "sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==", - "requires": { - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.1", - "denque": "^1.1.0", - "lodash.defaults": "^4.2.0", - "lodash.flatten": "^4.4.0", - "lodash.isarguments": "^3.1.0", - "p-map": "^2.1.0", - "redis-commands": "1.7.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - } - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "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-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "requires": { - "has": "^1.0.3" - } - }, - "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-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "jaeger-client": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", - "requires": { - "node-int64": "^0.4.0", - "opentracing": "^0.14.4", - "thriftrw": "^3.5.0", - "uuid": "^8.3.2", - "xorshift": "^1.1.1" - } - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "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" - } - }, - "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" - } - }, - "kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, - "logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", - "requires": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "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" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" - }, - "module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "msgpack-lite": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz", - "integrity": "sha512-SZ2IxeqZ1oRFGo0xFGbvBJWMp3yLIY9rlIJyxy8CGrwZn1f0ZK4r6jV/AM1r0FZMDUkWkglOk/eeKIL9g77Nxw==", - "requires": { - "event-lite": "^0.1.1", - "ieee754": "^1.1.8", - "int64-buffer": "^0.1.9", - "isarray": "^1.0.0" - } - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "network-address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", - "integrity": "sha512-Q6878fmvItA1mE7H9Il46lONgFgTzX2f98zkS0c2YlkCACzNjwvum/8Kq693IQpxe9zy+w+Zm/4p0wQreLEtZw==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "peer": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.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" - } - }, - "opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==" - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "phone": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/phone/-/phone-2.4.22.tgz", - "integrity": "sha512-k2f9qkIgcgbbeyFFMHDcCaYdPxq7u71EjmMvD998PEquwDvIT7zmUFe00S4hH9WPjk+IQlw9W/FlHOu1O17Tbw==" - }, - "process": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==" - }, - "protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - } - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "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" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "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" - } - }, - "redis-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", - "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" - }, - "redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==" - }, - "redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "requires": { - "redis-errors": "^1.0.0" - } - }, - "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-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "requires": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - } - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "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.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz", - "integrity": "sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "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" - } - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "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" - } - }, - "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" - } - }, - "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==" - }, - "standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "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-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==" - }, - "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" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "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==" - }, - "thriftrw": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.12.0.tgz", - "integrity": "sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw==", - "requires": { - "bufrw": "^1.3.0", - "error": "7.0.2", - "long": "^2.4.0" - }, - "dependencies": { - "long": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==" - } - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "peer": true - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "peer": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "peer": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "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" - } - }, - "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" - } - }, - "xorshift": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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==" - }, - "zipkin": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.12.0.tgz", - "integrity": "sha512-QguH/UQt/ofUVcTJLW7qdyi7iEo71MJJbKg/6d/m3ptvxhm5gDVf/KVuCEfzxxzzWGSKtX+c+qACvowsPkNjuQ==", - "requires": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0", - "network-address": "^1.1.0" - } - }, - "zipkin-transport-http": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin-transport-http/-/zipkin-transport-http-0.22.0.tgz", - "integrity": "sha512-bjM2fm/hurseBuvpyB8mYCBBGOz3gc2f9KUSQl71LGxmgYcUeXvDHJyE9MgzWMhl+3HcD8l5nNn6OmdX63he+g==", - "requires": { - "zipkin": "^0.22.0" - }, - "dependencies": { - "zipkin": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.22.0.tgz", - "integrity": "sha512-SZgorBAvywnj5R26mqsFP+2MRUsBXGg0B8GLRLw9R0FeE4alMUAfhXYvzeAt2+MvkXne9QdQyziuqO5oXNQ0Sg==", - "requires": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0" - } - } - } - } - } -} diff --git a/mods/apps/package.json b/mods/apps/package.json deleted file mode 100644 index d714a9f70..000000000 --- a/mods/apps/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "@fonoster/apps", - "version": "0.3.22", - "description": "Fonoster Voice Applications", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/client/apps", - "types": "dist/client/apps", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "postbuild": "cp -a ./src/service/protos/ ./dist/service/protos", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/srv_runner" - }, - "bin": { - "run_apps": "dist/service/runner.js", - "healthcheck_apps": "dist/service/healthcheck.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/errors": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "grpc-promise": "^1.4.0" - }, - "devDependencies": { - "@types/google-protobuf": "^3.15.2" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/apps/src/client/apps.ts b/mods/apps/src/client/apps.ts deleted file mode 100644 index 287a9b054..000000000 --- a/mods/apps/src/client/apps.ts +++ /dev/null @@ -1,380 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { APIClient, ClientOptions } from "@fonoster/common"; -import AppsPB from "../service/protos/apps_pb"; -import CommonPB from "../service/protos/common_pb"; -import { promisifyAll } from "grpc-promise"; -import { AppsClient } from "../service/protos/apps_grpc_pb"; -import { Struct } from "google-protobuf/google/protobuf/struct_pb"; -import { - App, - CreateAppRequest, - CreateAppResponse, - DeleteAppResponse, - GetAppResponse, - IAppsClient, - ListAppsRequest, - ListAppsResponse, - UpdateAppRequest, - UpdateAppResponse -} from "./types"; - -/** - * @classdesc Use Fonoster Apps, a capability of Fonoster Voice Subsystem, - * to create, update, get and delete Voice Applications. Apps requires of a - * running Fonoster deployment. - * - * @extends APIClient - * @example - * - * const Fonoster = require("@fonoster/sdk") - * const apps = new Fonoster.Apps() - * - * const request = { - * name: "My application", - * initialDtmf: "1234", - * speechConfig: { - * secretName: "my-secret", - * voice: "en-US-Wavenet-F" - * }, - * intentsEngineConfig: { - * secretName: "my-secret", - * projectId: "my-project" - * } - * } - * - * apps.createApp(request) - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)) // an error occurred - */ -export default class Apps extends APIClient implements IAppsClient { - /** - * Constructs a new Apps object. - * - * @param {ClientOptions} options - Options to indicate the objects endpoint - * @see module:core:APIClient - */ - constructor(options?: ClientOptions) { - super(AppsClient, options); - super.init(); - promisifyAll(super.getService(), { metadata: super.getMeta() }); - } - - /** - * Creates a new Agent on the SIP Proxy subsystem. - * - * @param {CreateAppRequest} request - Request to create a new Voice Application - * @param {string} request.name - The name of the application - * @param {string} request.initialDtmf - Optional DTMF code to be sent at after answer the call - * @param {string} request.activationIntentId - Optional intent id to "wake" the application. Similar to "Alexa!" - * @param {number} request.activationTimeout - Time in seconds for the duration of the `AWAKE_ACTIVE` state, - * set for the activation command. After this time the bot will return to `AWAKE_PASSIVE` and new intents will be ignored. Defaults to 15000 - * @param {number} request.interactionTimeout - Timeout, in seconds, to ask again for user input. Use -1 for no timeout. Defaults to -1 - * @param {boolean} request.enableEvents - If set to true it will send events to WS clients subscribed to events. Defaults to false - * @param {TransferConfig} request.transferConfig - Transfer configuration object - * @param {string} request.transferConfig.message - Optional message to play while transfering - * @param {string} request.transferConfig.messageBusy - Optional message to play if callee is busy - * @param {string} request.transferConfig.messageBusy - Optional message to play if callee does not answer - * @param {SpeechConfig} request.speechConfig - Speech configuration. Value varies based on implementation - * @param {IntentsEngineConfig} request.intentsEngineConfig - Intents Engine. Value varies based on implementation - * @return {Promise} - * @see GoogleSpeechConfig - * @see DialogflowES - * @see DialogflowCX - * @example - * - * const request = { - * name: "My application", - * initialDtmf: "1234", - * speechConfig: { - * secretName: "my-secret", - * voice: "en-US-Wavenet-F" - * }, - * intentsEngineConfig: { - * secretName: "my-secret", - * projectId: "my-project" - * } - * } - * - * apps.createApp(request) - * .then(result => { - * console.log(result) // returns the CreateAppResponse interface - * }).catch(e => console.error(e)) // an error occurred - */ - async createApp(request: CreateAppRequest): Promise { - const transferConfig = new AppsPB.TransferConfig(); - transferConfig.setMessage(request?.transferConfig?.message); - transferConfig.setMessageBusy(request?.transferConfig?.messageBusy); - transferConfig.setMessageNoAnswer(request?.transferConfig?.messageNoAnswer); - - const outRequest = new AppsPB.CreateAppRequest(); - outRequest.setName(request.name); - outRequest.setInitialDtmf(request.initialDtmf); - outRequest.setActivationIntentId(request.activationIntentId); - outRequest.setActivationTimeout(request.activationTimeout); - outRequest.setInteractionTimeout(request.interactionTimeout); - outRequest.setEnableEvents(request.enableEvents); - outRequest.setTransferConfig(transferConfig); - outRequest.setIntentsEngineConfig( - Struct.fromJavaScript( - request.intentsEngineConfig as unknown as Record - ) as unknown as Struct - ); - outRequest.setSpeechConfig( - Struct.fromJavaScript( - request.speechConfig as unknown as Record - ) as unknown as Struct - ); - - const res = await super.getService().createApp().sendMessage(outRequest); - - return { - ref: res.getRef(), - name: res.getName(), - initialDtmf: res.getInitialDtmf(), - activationIntentId: res.getActivationIntentId(), - activationTimeout: res.getActivationTimeout(), - interactionTimeout: res.getInteractionTimeout(), - enableEvents: res.getEnableEvents(), - transferConfig: { - message: res?.getTransferConfig()?.getMessage(), - messageBusy: res?.getTransferConfig()?.getMessageBusy(), - messageNoAnswer: res?.getTransferConfig()?.getMessageNoAnswer() - }, - speechConfig: res.getSpeechConfig().toJavaScript(), - intentsEngineConfig: res.getIntentsEngineConfig().toJavaScript(), - createTime: res.getCreateTime(), - updateTime: res.getUpdateTime() - }; - } - - /** - * Retrives a Voice Application by reference. - * - * @param {string} ref - Reference to Application - * @return {Promise} The Application - * @throws if ref is null or App does not exist - * @example - * - * const ref = "aynB1z0tzd"; - * - * apps.getApp(ref) - * .then(result => { - * console.log(result) // returns the GetAppResponse interface - * }).catch(e => console.error(e)) // an error occurred - */ - async getApp(ref: string): Promise { - const request = new AppsPB.GetAppRequest(); - request.setRef(ref); - const res = await super.getService().getApp().sendMessage(request); - - return { - ref: res.getRef(), - name: res.getName(), - initialDtmf: res.getInitialDtmf(), - activationIntentId: res.getActivationIntentId(), - activationTimeout: res.getActivationTimeout(), - interactionTimeout: res.getInteractionTimeout(), - enableEvents: res.getEnableEvents(), - transferConfig: { - message: res?.getTransferConfig()?.getMessage(), - messageBusy: res?.getTransferConfig()?.getMessageBusy(), - messageNoAnswer: res?.getTransferConfig()?.getMessageNoAnswer() - }, - speechConfig: res.getSpeechConfig().toJavaScript(), - intentsEngineConfig: res.getIntentsEngineConfig().toJavaScript(), - createTime: res.getCreateTime(), - updateTime: res.getUpdateTime() - }; - } - - /** - * Update a Voice Application. - * - * @param {UpdateAppRequest} request - Request to update an existing Voice Application - * @param {string} request.ref - The reference of the application - * @param {string} request.name - The name of the application - * @param {string} request.initialDtmf - Optional DTMF code to be sent at after answer the call - * @param {string} request.activationIntentId - Optional intent id to "wake" the application. Similar to "Alexa!" - * @param {number} request.activationTimeout - Time in seconds for the duration of the `AWAKE_ACTIVE` state, - * set for the activation command. After this time the bot will return to `AWAKE_PASSIVE` and new intents will be ignored. Defaults to 15000 - * @param {number} request.interactionTimeout - Timeout, in seconds, to ask again for user input. Use -1 for no timeout. Defaults to -1 - * @param {boolean} request.enableEvents - If set to true it will send events to WS clients subscribed to events. Defaults to false - * @param {TransferConfig} request.transferConfig - Transfer configuration object - * @param {string} request.transferConfig.message - Optional message to play while transfering - * @param {string} request.transferConfig.messageBusy - Optional message to play if callee is busy - * @param {string} request.transferConfig.messageBusy - Optional message to play if callee does not answer - * @param {SpeechConfig} request.speechConfig - Speech configuration. Value varies based on implementation - * @param {IntentsEngineConfig} request.intentsEngineConfig - Intents Engine configuration. Value varies based on implementation - * @return {Promise} - * @see GoogleSpeechConfig - * @see DialogflowES - * @see DialogflowCX - * @example - * - * const request = { - * ref: "aynB1z0tzd", - * name: "My new application name", - * speechConfig: { - * secretName: "my-secret", - * voice: "en-US-Wavenet-F" - * }, - * intentsEngineConfig: { - * secretName: "my-secret" - * } - * } - * - * apps.updateApp(request) - * .then(result => { - * console.log(result) // returns the CreateAppResponse interface - * }).catch(e => console.error(e)) // an error occurred - */ - async updateApp(request: UpdateAppRequest): Promise { - const transferConfig = new AppsPB.TransferConfig(); - transferConfig.setMessage(request?.transferConfig?.message); - transferConfig.setMessageBusy(request?.transferConfig?.messageBusy); - transferConfig.setMessageNoAnswer(request?.transferConfig?.messageNoAnswer); - - const outRequest = new AppsPB.UpdateAppRequest(); - outRequest.setRef(request.ref); - - Object.keys(request) - .filter( - (key) => - !["speechConfig", "intentsEngineConfig", "transferConfig"].includes( - key - ) - ) - .forEach((key) => { - if (request[key]) { - const capitalKey = key.charAt(0).toUpperCase() + key.slice(1); - outRequest[`set${capitalKey}`](request[key]); - } - }); - - if ( - transferConfig.getMessage() || - transferConfig.getMediaBusy() || - transferConfig.getMediaNoAnswer() - ) - outRequest.setTransferConfig(transferConfig); - - if (request.intentsEngineConfig) - outRequest.setIntentsEngineConfig( - Struct.fromJavaScript( - request.intentsEngineConfig as unknown as Record - ) as unknown as Struct - ); - - if (request.speechConfig) - outRequest.setSpeechConfig( - Struct.fromJavaScript( - request.speechConfig as unknown as Record - ) as unknown as Struct - ); - - const res = await super.getService().updateApp().sendMessage(outRequest); - - return { - ref: res.getRef() - }; - } - - /** - * List of Voice Applications in your Project. - * - * @param {ListAgentsRequest} request - Optional parameter with size and - * token for the request - * @param {number} request.pageSize - Elements per page - * (defaults to 20) - * @param {string} request.pageToken - The next_page_token value returned from - * a previous List request, if any - * @return {Promise} Paginated List of Applications - * @example - * - * const request = { - * pageSize: 20, - * pageToken: 2 - * } - * - * apps.listApps(request) - * .then(() => { - * console.log(result) // returns a ListAppsResponse interface - * }).catch(e => console.error(e)) // an error occurred - */ - async listApps(request: ListAppsRequest): Promise { - const r = new AppsPB.ListAppsRequest(); - r.setPageSize(request.pageSize); - r.setPageToken(request.pageToken); - r.setView(request.view); - const paginatedList = await super.getService().listApps().sendMessage(r); - - return { - nextPageToken: paginatedList.getNextPageToken(), - apps: paginatedList.getAppsList().map((a: AppsPB.App) => { - return { - ref: a.getRef(), - name: a.getName(), - initialDtmf: a.getInitialDtmf(), - activationIntentId: a.getActivationIntentId(), - activationTimeout: a.getActivationTimeout(), - interactionTimeout: a.getInteractionTimeout(), - enableEvents: a.getEnableEvents(), - transferConfig: { - message: a?.getTransferConfig()?.getMessage(), - messageBusy: a?.getTransferConfig()?.getMessageBusy(), - messageNoAnswer: a?.getTransferConfig()?.getMessageNoAnswer() - }, - speechConfig: a.getSpeechConfig().toJavaScript(), - intentsEngineConfig: a.getIntentsEngineConfig().toJavaScript(), - createTime: a.getCreateTime(), - updateTime: a.getUpdateTime() - }; - }) - }; - } - - /** - * Deletes a Voice Application in your Project. - * - * @param {string} ref - Apps's reference - * @example - * - * const ref = "aynB1z0tzd" - * - * apps.deleteApp(ref) - * .then(() => { - * console.log("done") // returns a reference of the Application - * }).catch(e => console.error(e)) // an error occurred - */ - async deleteApp(ref: string): Promise { - const req = new AppsPB.DeleteAppRequest(); - req.setRef(ref); - await super.getService().deleteApp().sendMessage(req); - return { ref }; - } -} - -export { App, AppsPB, CommonPB, IAppsClient }; - -// WARNING: Workaround for support to commonjs clients -module.exports = Apps; -module.exports.AppsPB = AppsPB; -module.exports.CommonPB = CommonPB; diff --git a/mods/apps/src/client/types.ts b/mods/apps/src/client/types.ts deleted file mode 100644 index ab5c75e8a..000000000 --- a/mods/apps/src/client/types.ts +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface IAppsClient { - createApp(request: CreateAppRequest): Promise; - getApp(ref: string): Promise; - updateApp(request: UpdateAppRequest): Promise; - listApps(request: ListAppsRequest): Promise; - deleteApp(ref: string): Promise; -} - -export type SpeechConfig = GoogleSpeechConfig; -export type IntentsEngineConfig = DialogflowES | DialoflowCX; - -export interface GoogleSpeechConfig { - secretName: string; - voice: string; - languageCode: string; -} - -export interface DialogflowES { - projectId: string; - secretName: string; - welcomeIntentId?: string; - emulateTelephonyPlatform?: boolean; -} - -export interface DialoflowCX { - projectId: string; - agent: string; - location: string; - secretName: string; - welcomeIntentId: string; - emulateTelephonyPlatform: boolean; -} - -export interface TransferConfig { - media?: string; - mediaBusy?: string; - mediaNoAnswer?: string; - message?: string; - messageBusy?: string; - messageNoAnswer?: string; -} - -export interface App { - ref: string; - name: string; - initialDtmf?: string; - activationIntentId?: string; - activationTimeout?: number; - interactionTimeout?: number; - enableEvents?: boolean; - transferConfig?: TransferConfig; - speechConfig: SpeechConfig; - intentsEngineConfig: IntentsEngineConfig; -} - -export interface CreateAppRequest { - name: string; - initialDtmf?: string; - activationIntentId?: string; - activationTimeout?: number; - interactionTimeout?: number; - enableEvents?: boolean; - transferConfig?: TransferConfig; - speechConfig: SpeechConfig; - intentsEngineConfig: IntentsEngineConfig; -} - -export interface CreateAppResponse { - ref: string; - name: string; - initialDtmf?: string; - activationIntentId?: string; - activationTimeout: number; - interactionTimeout: number; - enableEvents: boolean; - transferConfig?: TransferConfig; - speechConfig: SpeechConfig; - intentsEngineConfig: IntentsEngineConfig; - createTime: string; - updateTime: string; -} - -export interface UpdateAppRequest { - ref: string; - name?: string; - initialDtmf?: string; - activationIntentId?: string; - activationTimeout?: number; - interactionTimeout?: number; - enableEvents?: boolean; - transferConfig?: TransferConfig; - speechConfig?: SpeechConfig; - intentsEngineConfig?: IntentsEngineConfig; -} - -export interface UpdateAppResponse { - ref: string; -} - -export interface GetAppResponse { - ref: string; - name: string; - initialDtmf?: string; - activationIntentId?: string; - activationTimeout: number; - interactionTimeout: number; - enableEvents: boolean; - transferConfig?: TransferConfig; - speechConfig: SpeechConfig; - intentsEngineConfig: IntentsEngineConfig; - createTime: string; - updateTime: string; -} - -export interface ListAppsRequest { - pageSize?: number; - pageToken?: string; - view?: number; -} - -export interface ListAppsResponse { - nextPageToken: string; - apps: App[]; -} - -export interface DeleteAppResponse { - ref: string; -} diff --git a/mods/apps/src/protos/apps.proto b/mods/apps/src/protos/apps.proto deleted file mode 100644 index c79d11400..000000000 --- a/mods/apps/src/protos/apps.proto +++ /dev/null @@ -1,137 +0,0 @@ -/** - * MIT License - * Copyright (c) 2021 Fonoster Inc - * - * The Apps proto contains the artificats for application administration - * such as creation and deployment. - */ -syntax = "proto3"; - -package fonoster.apps.v1beta1; - -option go_package = "github.com/fonoster/fonoster/mods/apps/fonoster/services/protos/apps"; - -import "protoc-gen-openapiv2/options/annotations.proto"; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "google/protobuf/struct.proto"; -import "common.proto"; - -service Apps { - // Shows a list of user applications - rpc ListApps (ListAppsRequest) returns (ListAppsResponse) { - option (google.api.http) = { get: "/v1beta1/apps" }; - }; - // Creates a new App resource - rpc CreateApp (CreateAppRequest) returns (App) { - option (google.api.http) = { - post: "/v1beta1/apps" - body: "*" - }; - }; - // Gets an application by reference - rpc GetApp (GetAppRequest) returns (App) { - option (google.api.http) = { get: "/v1beta1/apps/{ref}" }; - }; - // Change or update fields in a resource - rpc UpdateApp (UpdateAppRequest) returns (App) { - option (google.api.http) = { - put: "/v1beta1/apps/{ref}" - body: "*" - }; - }; - // Peforms a hard delete of an application - rpc DeleteApp (DeleteAppRequest) returns (fonoster.common.v1beta1.Empty) { - option (google.api.http) = { - delete: "/v1beta1/apps/{ref}" - }; - }; -} - -message ListAppsRequest { - // The maximum number of items in the list - int32 page_size = 1; - - // The next_page_token value returned from the previous request, if any - string page_token = 2; - - // Level of detail of the individual entities - fonoster.common.v1beta1.View view = 3; -} - -message ListAppsResponse { - // List of applications - repeated App apps = 1; - // Token to retrieve the next page of results, or empty if there are no more results in the list - string next_page_token = 2; -} - -message CreateAppRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"name\": \"Pizza App\", \"initialDtmf\": \"145\", \"intentsEngineConfig\": { \"projectId\": \"my-project\", \"secret\": \"my-secret\" }, \"speechConfig\": { \"secretName\": \"my-secret\", \"voice\": \"en-US-Wavenet-F\" }, \"transferConfig\": { \"message\": \"Transfering...\" } , \"enableEvents\": false}" - }; - string name = 1 [(google.api.field_behavior) = REQUIRED]; - optional string initial_dtmf = 2; - string activation_intent_id = 3; - int32 activation_timeout = 4; - int32 interaction_timeout = 5; - bool enable_events = 6; - TransferConfig transfer_config = 7; - .google.protobuf.Struct speech_config = 8 [(google.api.field_behavior) = REQUIRED]; - .google.protobuf.Struct intents_engine_config = 9 [(google.api.field_behavior) = REQUIRED]; -} - -message UpdateAppRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"name\": \"My Pizzeria\", \"initialDtmf\": \"4567\"}" - }; - // App's reference - string ref = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - string name = 2 [(google.api.field_behavior) = REQUIRED]; - string initial_dtmf = 3; - string activation_intent_id = 4; - int32 activation_timeout = 5; - int32 interaction_timeout = 6; - bool enable_events = 7; - TransferConfig transfer_config = 8; - .google.protobuf.Struct speech_config = 9; - .google.protobuf.Struct intents_engine_config = 10; -} - -message GetAppRequest { - string ref = 1; - // Requested level of detail - fonoster.common.v1beta1.View view = 2; -} - -message DeleteAppRequest { - string ref = 1; -} - -message TransferConfig { - string media = 1; - string media_busy = 2; - string media_no_answer= 3; - string message = 4; - string message_busy = 5; - string message_no_answer = 6; -} - -message App { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"ref\": \"aynB1z0tzd\", \"accessKeyId\": \"aynB1z0tzd\", \"name\": \"Pizza App\", \"initialDtmf\": \"145\", \"intentsEngineConfig\": { \"projectId\": \"my-project\", \"secret\": \"my-secret\" }, \"speechConfig\": { \"secretName\": \"my-secret\", \"voice\": \"en-US-Wavenet-F\" }, \"transferConfig\": { \"message\": \"Transfering...\" } , \"enableEvents\": false, \"createTime\": \"2021-10-05T13:23:07.221Z\", \"updateTime\": \"2021-10-05T13:23:07.221Z\"}" - }; - string ref = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - string access_key_id = 2 [(google.api.field_behavior) = REQUIRED]; - string name = 3 [(google.api.field_behavior) = REQUIRED]; - string initial_dtmf = 4; - string activation_intent_id = 5; - string create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - string update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - int32 activation_timeout = 8; - int32 interaction_timeout = 9; - bool enable_events = 10; - TransferConfig transfer_config = 11; - .google.protobuf.Struct speech_config = 12 [(google.api.field_behavior) = REQUIRED]; - .google.protobuf.Struct intents_engine_config = 13 [(google.api.field_behavior) = REQUIRED]; -} diff --git a/mods/apps/src/service/apps.ts b/mods/apps/src/service/apps.ts deleted file mode 100644 index b344759b4..000000000 --- a/mods/apps/src/service/apps.ts +++ /dev/null @@ -1,208 +0,0 @@ -/* eslint-disable require-jsdoc */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import * as grpc from "@grpc/grpc-js"; -import { getRedisConnection, getAccessKeyId } from "@fonoster/core"; -import { AppsPB } from "../client/apps"; -import { AppsService, IAppsServer, IAppsService } from "./protos/apps_grpc_pb"; -import { - GetAppRequest, - App, - DeleteAppRequest, - ListAppsResponse, - ListAppsRequest, - CreateAppRequest, - UpdateAppRequest -} from "./protos/apps_pb"; -import { Empty } from "./protos/common_pb"; -import { ErrorCodes, FonosterError } from "@fonoster/errors"; -import decoder from "./decoder"; -import { nanoid } from "nanoid"; -import encoder from "./encoder"; - -const redis = getRedisConnection(); - -export default class AppsServer implements IAppsServer { - [name: string]: grpc.UntypedHandleCall; - async createApp( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ): Promise { - try { - // TODO: Needs assertions - - const ref = nanoid(10); - const app = new AppsPB.App(); - - app.setRef(ref); - app.setAccessKeyId(getAccessKeyId(call)); - app.setInitialDtmf(call.request.getInitialDtmf()); - app.setActivationIntentId(call.request.getActivationIntentId()); - app.setActivationTimeout(call.request.getActivationTimeout()); - app.setInteractionTimeout(call.request.getInteractionTimeout()); - app.setEnableEvents(call.request.getEnableEvents()); - app.setTransferConfig(call.request.getTransferConfig()); - app.setSpeechConfig(call.request.getSpeechConfig()); - app.setIntentsEngineConfig(call.request.getIntentsEngineConfig()); - app.setName(call.request.getName()); - app.setUpdateTime(new Date().toISOString()); - app.setCreateTime(new Date().toISOString()); - - redis.set(ref, encoder(app)); - redis.sadd("apps_" + app.getAccessKeyId(), ref); - callback(null, app); - } catch (e) { - callback(e, null); - } - } - - async updateApp( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ): Promise { - try { - // TODO: Needs assertions - const ref = call.request.getRef(); - const raw = await redis.get(ref); - if (!raw) throw new FonosterError("not found", ErrorCodes.NOT_FOUND); - - const app = decoder(raw.toString()); - - if (getAccessKeyId(call) !== app.getAccessKeyId()) { - throw new FonosterError( - "permission denied", - ErrorCodes.PERMISSION_DENIED - ); - } - - if (call.request.getInitialDtmf() !== undefined) - app.setInitialDtmf(call.request.getInitialDtmf()); - - if (call.request.getActivationIntentId() !== undefined) - app.setActivationIntentId(call.request.getActivationIntentId()); - - if (call.request.getActivationTimeout() !== undefined) - app.setActivationTimeout(call.request.getActivationTimeout()); - - if (call.request.getInteractionTimeout() !== undefined) - app.setInteractionTimeout(call.request.getInteractionTimeout()); - - if (call.request.getEnableEvents() !== undefined) - app.setEnableEvents(call.request.getEnableEvents()); - - if (call.request.getName() !== undefined) - app.setName(call.request.getName()); - - if (call.request.getIntentsEngineConfig()) - app.setIntentsEngineConfig(call.request.getIntentsEngineConfig()); - - if (call.request.getSpeechConfig()) - app.setSpeechConfig(call.request.getSpeechConfig()); - - if ( - call.request.getTransferConfig()?.getMessage() !== undefined || - call.request.getTransferConfig()?.getMediaBusy() !== undefined || - call.request.getTransferConfig()?.getMediaNoAnswer() !== undefined - ) - app.setTransferConfig(call.request.getTransferConfig()); - - app.setUpdateTime(new Date().toISOString()); - redis.set(ref, encoder(app)); - callback(null, app); - } catch (e) { - callback(e, null); - } - } - - async listApps( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ): Promise { - try { - const list = await redis.smembers("apps_" + getAccessKeyId(call)); - const Apps: App[] = await Promise.all( - list.map(async (ref) => { - const raw = (await redis.get(ref)).toString(); - return decoder(raw); - }) - ); - - const response = new ListAppsResponse(); - // TODO: Implement pagination - response.setNextPageToken("1"); - response.setAppsList(Apps); - - callback(null, response); - } catch (e) { - callback(e, null); - } - } - - async getApp( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ): Promise { - try { - const ref = call.request.getRef(); - const raw = await redis.get(ref); - if (!raw) throw new FonosterError("not found", ErrorCodes.NOT_FOUND); - - const app = decoder(raw.toString()); - - if (getAccessKeyId(call) !== app.getAccessKeyId()) { - throw new FonosterError( - "permission denied", - ErrorCodes.PERMISSION_DENIED - ); - } - - callback(null, app); - } catch (e) { - callback(e, null); - } - } - - async deleteApp( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ): Promise { - try { - const ref = call.request.getRef(); - const raw = await redis.get(ref); - if (!raw) throw new FonosterError("not found", ErrorCodes.NOT_FOUND); - - const app = decoder(raw.toString()); - - if (getAccessKeyId(call) !== app.getAccessKeyId()) { - throw new FonosterError( - "permission denied", - ErrorCodes.PERMISSION_DENIED - ); - } - - redis.del(app.getRef()); - redis.srem("apps_" + app.getAccessKeyId(), app.getRef()); - callback(null, new Empty()); - } catch (e) { - callback(e, null); - } - } -} - -export { IAppsService, AppsService }; diff --git a/mods/apps/src/service/decoder.ts b/mods/apps/src/service/decoder.ts deleted file mode 100644 index b2806a351..000000000 --- a/mods/apps/src/service/decoder.ts +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Struct } from "google-protobuf/google/protobuf/struct_pb"; -import { AppsPB } from "../client/apps"; -import { App } from "./protos/apps_pb"; - -export default (raw: string): App => { - const appJSON = JSON.parse(raw); - const app = new App(); - const transferConfig = new AppsPB.TransferConfig(); - transferConfig.setMessage(appJSON?.transferConfig?.message); - transferConfig.setMessageBusy(appJSON?.transferConfig?.messageBusy); - transferConfig.setMessageNoAnswer(appJSON?.transferConfig?.messageNoAnswer); - - app.setRef(appJSON.ref); - app.setAccessKeyId(appJSON.accessKeyId); - app.setInitialDtmf(appJSON.initialDtmf); - app.setActivationIntentId(appJSON.activationIntentId); - app.setActivationTimeout(appJSON.activationTimeout); - app.setInteractionTimeout(appJSON.interactionTimeout); - app.setEnableEvents(appJSON.enableEvents); - app.setTransferConfig(transferConfig); - app.setIntentsEngineConfig( - Struct.fromJavaScript( - appJSON.intentsEngineConfig as unknown as Record - ) as unknown as Struct - ); - app.setSpeechConfig( - Struct.fromJavaScript( - appJSON.speechConfig as unknown as Record - ) as unknown as Struct - ); - app.setName(appJSON.name); - app.setUpdateTime(appJSON.updateTime); - app.setCreateTime(appJSON.createTime); - return app; -}; diff --git a/mods/apps/src/service/encoder.ts b/mods/apps/src/service/encoder.ts deleted file mode 100644 index d0d23fd96..000000000 --- a/mods/apps/src/service/encoder.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"), - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { App } from "./protos/apps_pb"; - -export default (app: App): string => - JSON.stringify({ - ref: app.getRef(), - accessKeyId: app.getAccessKeyId(), - initialDtmf: app.getInitialDtmf(), - activationIntentId: app.getActivationIntentId(), - activationTimeout: app.getActivationTimeout(), - interactionTimeout: app.getInteractionTimeout(), - enableEvents: app.getEnableEvents(), - transferConfig: { - message: app?.getTransferConfig()?.getMessage(), - messageBusy: app?.getTransferConfig()?.getMessageBusy(), - messageNoAnswer: app?.getTransferConfig()?.getMessageNoAnswer() - }, - speechConfig: app?.getSpeechConfig()?.toJavaScript(), - intentsEngineConfig: app?.getIntentsEngineConfig()?.toJavaScript(), - name: app.getName(), - updateTime: app.getUpdateTime(), - createTime: app.getCreateTime() - }); diff --git a/mods/apps/src/service/healthcheck.ts b/mods/apps/src/service/healthcheck.ts deleted file mode 100644 index 05ab1a96f..000000000 --- a/mods/apps/src/service/healthcheck.ts +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -healthcheck(); diff --git a/mods/apps/src/service/protos/apps_grpc_pb.d.ts b/mods/apps/src/service/protos/apps_grpc_pb.d.ts deleted file mode 100644 index ecd63c8a5..000000000 --- a/mods/apps/src/service/protos/apps_grpc_pb.d.ts +++ /dev/null @@ -1,114 +0,0 @@ -// package: fonoster.apps.v1beta1 -// file: apps.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import {handleClientStreamingCall} from "@grpc/grpc-js/build/src/server-call"; -import * as apps_pb from "./apps_pb"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; -import * as common_pb from "./common_pb"; - -interface IAppsService extends grpc.ServiceDefinition { - listApps: IAppsService_IListApps; - createApp: IAppsService_ICreateApp; - getApp: IAppsService_IGetApp; - updateApp: IAppsService_IUpdateApp; - deleteApp: IAppsService_IDeleteApp; -} - -interface IAppsService_IListApps extends grpc.MethodDefinition { - path: "/fonoster.apps.v1beta1.Apps/ListApps"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IAppsService_ICreateApp extends grpc.MethodDefinition { - path: "/fonoster.apps.v1beta1.Apps/CreateApp"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IAppsService_IGetApp extends grpc.MethodDefinition { - path: "/fonoster.apps.v1beta1.Apps/GetApp"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IAppsService_IUpdateApp extends grpc.MethodDefinition { - path: "/fonoster.apps.v1beta1.Apps/UpdateApp"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IAppsService_IDeleteApp extends grpc.MethodDefinition { - path: "/fonoster.apps.v1beta1.Apps/DeleteApp"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const AppsService: IAppsService; - -export interface IAppsServer extends grpc.UntypedServiceImplementation { - listApps: grpc.handleUnaryCall; - createApp: grpc.handleUnaryCall; - getApp: grpc.handleUnaryCall; - updateApp: grpc.handleUnaryCall; - deleteApp: grpc.handleUnaryCall; -} - -export interface IAppsClient { - listApps(request: apps_pb.ListAppsRequest, callback: (error: grpc.ServiceError | null, response: apps_pb.ListAppsResponse) => void): grpc.ClientUnaryCall; - listApps(request: apps_pb.ListAppsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: apps_pb.ListAppsResponse) => void): grpc.ClientUnaryCall; - listApps(request: apps_pb.ListAppsRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: apps_pb.ListAppsResponse) => void): grpc.ClientUnaryCall; - createApp(request: apps_pb.CreateAppRequest, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - createApp(request: apps_pb.CreateAppRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - createApp(request: apps_pb.CreateAppRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - getApp(request: apps_pb.GetAppRequest, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - getApp(request: apps_pb.GetAppRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - getApp(request: apps_pb.GetAppRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - updateApp(request: apps_pb.UpdateAppRequest, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - updateApp(request: apps_pb.UpdateAppRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - updateApp(request: apps_pb.UpdateAppRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - deleteApp(request: apps_pb.DeleteAppRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteApp(request: apps_pb.DeleteAppRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteApp(request: apps_pb.DeleteAppRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; -} - -export class AppsClient extends grpc.Client implements IAppsClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public listApps(request: apps_pb.ListAppsRequest, callback: (error: grpc.ServiceError | null, response: apps_pb.ListAppsResponse) => void): grpc.ClientUnaryCall; - public listApps(request: apps_pb.ListAppsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: apps_pb.ListAppsResponse) => void): grpc.ClientUnaryCall; - public listApps(request: apps_pb.ListAppsRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: apps_pb.ListAppsResponse) => void): grpc.ClientUnaryCall; - public createApp(request: apps_pb.CreateAppRequest, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - public createApp(request: apps_pb.CreateAppRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - public createApp(request: apps_pb.CreateAppRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - public getApp(request: apps_pb.GetAppRequest, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - public getApp(request: apps_pb.GetAppRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - public getApp(request: apps_pb.GetAppRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - public updateApp(request: apps_pb.UpdateAppRequest, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - public updateApp(request: apps_pb.UpdateAppRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - public updateApp(request: apps_pb.UpdateAppRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: apps_pb.App) => void): grpc.ClientUnaryCall; - public deleteApp(request: apps_pb.DeleteAppRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteApp(request: apps_pb.DeleteAppRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteApp(request: apps_pb.DeleteAppRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; -} diff --git a/mods/apps/src/service/protos/apps_grpc_pb.js b/mods/apps/src/service/protos/apps_grpc_pb.js deleted file mode 100644 index 8e170785c..000000000 --- a/mods/apps/src/service/protos/apps_grpc_pb.js +++ /dev/null @@ -1,171 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// * -// MIT License -// Copyright (c) 2021 Fonoster Inc -// -// The Apps proto contains the artificats for application administration -// such as creation and deployment. -'use strict'; -var grpc = require('@grpc/grpc-js'); -var apps_pb = require('./apps_pb.js'); -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -var common_pb = require('./common_pb.js'); - -function serialize_fonoster_apps_v1beta1_App(arg) { - if (!(arg instanceof apps_pb.App)) { - throw new Error('Expected argument of type fonoster.apps.v1beta1.App'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_apps_v1beta1_App(buffer_arg) { - return apps_pb.App.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_apps_v1beta1_CreateAppRequest(arg) { - if (!(arg instanceof apps_pb.CreateAppRequest)) { - throw new Error('Expected argument of type fonoster.apps.v1beta1.CreateAppRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_apps_v1beta1_CreateAppRequest(buffer_arg) { - return apps_pb.CreateAppRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_apps_v1beta1_DeleteAppRequest(arg) { - if (!(arg instanceof apps_pb.DeleteAppRequest)) { - throw new Error('Expected argument of type fonoster.apps.v1beta1.DeleteAppRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_apps_v1beta1_DeleteAppRequest(buffer_arg) { - return apps_pb.DeleteAppRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_apps_v1beta1_GetAppRequest(arg) { - if (!(arg instanceof apps_pb.GetAppRequest)) { - throw new Error('Expected argument of type fonoster.apps.v1beta1.GetAppRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_apps_v1beta1_GetAppRequest(buffer_arg) { - return apps_pb.GetAppRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_apps_v1beta1_ListAppsRequest(arg) { - if (!(arg instanceof apps_pb.ListAppsRequest)) { - throw new Error('Expected argument of type fonoster.apps.v1beta1.ListAppsRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_apps_v1beta1_ListAppsRequest(buffer_arg) { - return apps_pb.ListAppsRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_apps_v1beta1_ListAppsResponse(arg) { - if (!(arg instanceof apps_pb.ListAppsResponse)) { - throw new Error('Expected argument of type fonoster.apps.v1beta1.ListAppsResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_apps_v1beta1_ListAppsResponse(buffer_arg) { - return apps_pb.ListAppsResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_apps_v1beta1_UpdateAppRequest(arg) { - if (!(arg instanceof apps_pb.UpdateAppRequest)) { - throw new Error('Expected argument of type fonoster.apps.v1beta1.UpdateAppRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_apps_v1beta1_UpdateAppRequest(buffer_arg) { - return apps_pb.UpdateAppRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_common_v1beta1_Empty(arg) { - if (!(arg instanceof common_pb.Empty)) { - throw new Error('Expected argument of type fonoster.common.v1beta1.Empty'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_common_v1beta1_Empty(buffer_arg) { - return common_pb.Empty.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var AppsService = exports.AppsService = { - // Shows a list of user applications -listApps: { - path: '/fonoster.apps.v1beta1.Apps/ListApps', - requestStream: false, - responseStream: false, - requestType: apps_pb.ListAppsRequest, - responseType: apps_pb.ListAppsResponse, - requestSerialize: serialize_fonoster_apps_v1beta1_ListAppsRequest, - requestDeserialize: deserialize_fonoster_apps_v1beta1_ListAppsRequest, - responseSerialize: serialize_fonoster_apps_v1beta1_ListAppsResponse, - responseDeserialize: deserialize_fonoster_apps_v1beta1_ListAppsResponse, - }, - // Creates a new App resource -createApp: { - path: '/fonoster.apps.v1beta1.Apps/CreateApp', - requestStream: false, - responseStream: false, - requestType: apps_pb.CreateAppRequest, - responseType: apps_pb.App, - requestSerialize: serialize_fonoster_apps_v1beta1_CreateAppRequest, - requestDeserialize: deserialize_fonoster_apps_v1beta1_CreateAppRequest, - responseSerialize: serialize_fonoster_apps_v1beta1_App, - responseDeserialize: deserialize_fonoster_apps_v1beta1_App, - }, - // Gets an application by reference -getApp: { - path: '/fonoster.apps.v1beta1.Apps/GetApp', - requestStream: false, - responseStream: false, - requestType: apps_pb.GetAppRequest, - responseType: apps_pb.App, - requestSerialize: serialize_fonoster_apps_v1beta1_GetAppRequest, - requestDeserialize: deserialize_fonoster_apps_v1beta1_GetAppRequest, - responseSerialize: serialize_fonoster_apps_v1beta1_App, - responseDeserialize: deserialize_fonoster_apps_v1beta1_App, - }, - // Change or update fields in a resource -updateApp: { - path: '/fonoster.apps.v1beta1.Apps/UpdateApp', - requestStream: false, - responseStream: false, - requestType: apps_pb.UpdateAppRequest, - responseType: apps_pb.App, - requestSerialize: serialize_fonoster_apps_v1beta1_UpdateAppRequest, - requestDeserialize: deserialize_fonoster_apps_v1beta1_UpdateAppRequest, - responseSerialize: serialize_fonoster_apps_v1beta1_App, - responseDeserialize: deserialize_fonoster_apps_v1beta1_App, - }, - // Peforms a hard delete of an application -deleteApp: { - path: '/fonoster.apps.v1beta1.Apps/DeleteApp', - requestStream: false, - responseStream: false, - requestType: apps_pb.DeleteAppRequest, - responseType: common_pb.Empty, - requestSerialize: serialize_fonoster_apps_v1beta1_DeleteAppRequest, - requestDeserialize: deserialize_fonoster_apps_v1beta1_DeleteAppRequest, - responseSerialize: serialize_fonoster_common_v1beta1_Empty, - responseDeserialize: deserialize_fonoster_common_v1beta1_Empty, - }, -}; - -exports.AppsClient = grpc.makeGenericClientConstructor(AppsService); diff --git a/mods/apps/src/service/protos/apps_pb.d.ts b/mods/apps/src/service/protos/apps_pb.d.ts deleted file mode 100644 index b71ffc356..000000000 --- a/mods/apps/src/service/protos/apps_pb.d.ts +++ /dev/null @@ -1,317 +0,0 @@ -// package: fonoster.apps.v1beta1 -// file: apps.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; -import * as common_pb from "./common_pb"; - -export class ListAppsRequest extends jspb.Message { - getPageSize(): number; - setPageSize(value: number): ListAppsRequest; - getPageToken(): string; - setPageToken(value: string): ListAppsRequest; - getView(): common_pb.View; - setView(value: common_pb.View): ListAppsRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListAppsRequest.AsObject; - static toObject(includeInstance: boolean, msg: ListAppsRequest): ListAppsRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListAppsRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListAppsRequest; - static deserializeBinaryFromReader(message: ListAppsRequest, reader: jspb.BinaryReader): ListAppsRequest; -} - -export namespace ListAppsRequest { - export type AsObject = { - pageSize: number, - pageToken: string, - view: common_pb.View, - } -} - -export class ListAppsResponse extends jspb.Message { - clearAppsList(): void; - getAppsList(): Array; - setAppsList(value: Array): ListAppsResponse; - addApps(value?: App, index?: number): App; - getNextPageToken(): string; - setNextPageToken(value: string): ListAppsResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListAppsResponse.AsObject; - static toObject(includeInstance: boolean, msg: ListAppsResponse): ListAppsResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListAppsResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListAppsResponse; - static deserializeBinaryFromReader(message: ListAppsResponse, reader: jspb.BinaryReader): ListAppsResponse; -} - -export namespace ListAppsResponse { - export type AsObject = { - appsList: Array, - nextPageToken: string, - } -} - -export class CreateAppRequest extends jspb.Message { - getName(): string; - setName(value: string): CreateAppRequest; - - hasInitialDtmf(): boolean; - clearInitialDtmf(): void; - getInitialDtmf(): string | undefined; - setInitialDtmf(value: string): CreateAppRequest; - getActivationIntentId(): string; - setActivationIntentId(value: string): CreateAppRequest; - getActivationTimeout(): number; - setActivationTimeout(value: number): CreateAppRequest; - getInteractionTimeout(): number; - setInteractionTimeout(value: number): CreateAppRequest; - getEnableEvents(): boolean; - setEnableEvents(value: boolean): CreateAppRequest; - - hasTransferConfig(): boolean; - clearTransferConfig(): void; - getTransferConfig(): TransferConfig | undefined; - setTransferConfig(value?: TransferConfig): CreateAppRequest; - - hasSpeechConfig(): boolean; - clearSpeechConfig(): void; - getSpeechConfig(): google_protobuf_struct_pb.Struct | undefined; - setSpeechConfig(value?: google_protobuf_struct_pb.Struct): CreateAppRequest; - - hasIntentsEngineConfig(): boolean; - clearIntentsEngineConfig(): void; - getIntentsEngineConfig(): google_protobuf_struct_pb.Struct | undefined; - setIntentsEngineConfig(value?: google_protobuf_struct_pb.Struct): CreateAppRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateAppRequest.AsObject; - static toObject(includeInstance: boolean, msg: CreateAppRequest): CreateAppRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateAppRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateAppRequest; - static deserializeBinaryFromReader(message: CreateAppRequest, reader: jspb.BinaryReader): CreateAppRequest; -} - -export namespace CreateAppRequest { - export type AsObject = { - name: string, - initialDtmf?: string, - activationIntentId: string, - activationTimeout: number, - interactionTimeout: number, - enableEvents: boolean, - transferConfig?: TransferConfig.AsObject, - speechConfig?: google_protobuf_struct_pb.Struct.AsObject, - intentsEngineConfig?: google_protobuf_struct_pb.Struct.AsObject, - } -} - -export class UpdateAppRequest extends jspb.Message { - getRef(): string; - setRef(value: string): UpdateAppRequest; - getName(): string; - setName(value: string): UpdateAppRequest; - getInitialDtmf(): string; - setInitialDtmf(value: string): UpdateAppRequest; - getActivationIntentId(): string; - setActivationIntentId(value: string): UpdateAppRequest; - getActivationTimeout(): number; - setActivationTimeout(value: number): UpdateAppRequest; - getInteractionTimeout(): number; - setInteractionTimeout(value: number): UpdateAppRequest; - getEnableEvents(): boolean; - setEnableEvents(value: boolean): UpdateAppRequest; - - hasTransferConfig(): boolean; - clearTransferConfig(): void; - getTransferConfig(): TransferConfig | undefined; - setTransferConfig(value?: TransferConfig): UpdateAppRequest; - - hasSpeechConfig(): boolean; - clearSpeechConfig(): void; - getSpeechConfig(): google_protobuf_struct_pb.Struct | undefined; - setSpeechConfig(value?: google_protobuf_struct_pb.Struct): UpdateAppRequest; - - hasIntentsEngineConfig(): boolean; - clearIntentsEngineConfig(): void; - getIntentsEngineConfig(): google_protobuf_struct_pb.Struct | undefined; - setIntentsEngineConfig(value?: google_protobuf_struct_pb.Struct): UpdateAppRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UpdateAppRequest.AsObject; - static toObject(includeInstance: boolean, msg: UpdateAppRequest): UpdateAppRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UpdateAppRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UpdateAppRequest; - static deserializeBinaryFromReader(message: UpdateAppRequest, reader: jspb.BinaryReader): UpdateAppRequest; -} - -export namespace UpdateAppRequest { - export type AsObject = { - ref: string, - name: string, - initialDtmf: string, - activationIntentId: string, - activationTimeout: number, - interactionTimeout: number, - enableEvents: boolean, - transferConfig?: TransferConfig.AsObject, - speechConfig?: google_protobuf_struct_pb.Struct.AsObject, - intentsEngineConfig?: google_protobuf_struct_pb.Struct.AsObject, - } -} - -export class GetAppRequest extends jspb.Message { - getRef(): string; - setRef(value: string): GetAppRequest; - getView(): common_pb.View; - setView(value: common_pb.View): GetAppRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetAppRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetAppRequest): GetAppRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetAppRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetAppRequest; - static deserializeBinaryFromReader(message: GetAppRequest, reader: jspb.BinaryReader): GetAppRequest; -} - -export namespace GetAppRequest { - export type AsObject = { - ref: string, - view: common_pb.View, - } -} - -export class DeleteAppRequest extends jspb.Message { - getRef(): string; - setRef(value: string): DeleteAppRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DeleteAppRequest.AsObject; - static toObject(includeInstance: boolean, msg: DeleteAppRequest): DeleteAppRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DeleteAppRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DeleteAppRequest; - static deserializeBinaryFromReader(message: DeleteAppRequest, reader: jspb.BinaryReader): DeleteAppRequest; -} - -export namespace DeleteAppRequest { - export type AsObject = { - ref: string, - } -} - -export class TransferConfig extends jspb.Message { - getMedia(): string; - setMedia(value: string): TransferConfig; - getMediaBusy(): string; - setMediaBusy(value: string): TransferConfig; - getMediaNoAnswer(): string; - setMediaNoAnswer(value: string): TransferConfig; - getMessage(): string; - setMessage(value: string): TransferConfig; - getMessageBusy(): string; - setMessageBusy(value: string): TransferConfig; - getMessageNoAnswer(): string; - setMessageNoAnswer(value: string): TransferConfig; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): TransferConfig.AsObject; - static toObject(includeInstance: boolean, msg: TransferConfig): TransferConfig.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: TransferConfig, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): TransferConfig; - static deserializeBinaryFromReader(message: TransferConfig, reader: jspb.BinaryReader): TransferConfig; -} - -export namespace TransferConfig { - export type AsObject = { - media: string, - mediaBusy: string, - mediaNoAnswer: string, - message: string, - messageBusy: string, - messageNoAnswer: string, - } -} - -export class App extends jspb.Message { - getRef(): string; - setRef(value: string): App; - getAccessKeyId(): string; - setAccessKeyId(value: string): App; - getName(): string; - setName(value: string): App; - getInitialDtmf(): string; - setInitialDtmf(value: string): App; - getActivationIntentId(): string; - setActivationIntentId(value: string): App; - getCreateTime(): string; - setCreateTime(value: string): App; - getUpdateTime(): string; - setUpdateTime(value: string): App; - getActivationTimeout(): number; - setActivationTimeout(value: number): App; - getInteractionTimeout(): number; - setInteractionTimeout(value: number): App; - getEnableEvents(): boolean; - setEnableEvents(value: boolean): App; - - hasTransferConfig(): boolean; - clearTransferConfig(): void; - getTransferConfig(): TransferConfig | undefined; - setTransferConfig(value?: TransferConfig): App; - - hasSpeechConfig(): boolean; - clearSpeechConfig(): void; - getSpeechConfig(): google_protobuf_struct_pb.Struct | undefined; - setSpeechConfig(value?: google_protobuf_struct_pb.Struct): App; - - hasIntentsEngineConfig(): boolean; - clearIntentsEngineConfig(): void; - getIntentsEngineConfig(): google_protobuf_struct_pb.Struct | undefined; - setIntentsEngineConfig(value?: google_protobuf_struct_pb.Struct): App; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): App.AsObject; - static toObject(includeInstance: boolean, msg: App): App.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: App, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): App; - static deserializeBinaryFromReader(message: App, reader: jspb.BinaryReader): App; -} - -export namespace App { - export type AsObject = { - ref: string, - accessKeyId: string, - name: string, - initialDtmf: string, - activationIntentId: string, - createTime: string, - updateTime: string, - activationTimeout: number, - interactionTimeout: number, - enableEvents: boolean, - transferConfig?: TransferConfig.AsObject, - speechConfig?: google_protobuf_struct_pb.Struct.AsObject, - intentsEngineConfig?: google_protobuf_struct_pb.Struct.AsObject, - } -} diff --git a/mods/apps/src/service/protos/apps_pb.js b/mods/apps/src/service/protos/apps_pb.js deleted file mode 100644 index 705055187..000000000 --- a/mods/apps/src/service/protos/apps_pb.js +++ /dev/null @@ -1,2621 +0,0 @@ -// source: apps.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -goog.object.extend(proto, google_api_annotations_pb); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -goog.object.extend(proto, google_api_field_behavior_pb); -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -var common_pb = require('./common_pb.js'); -goog.object.extend(proto, common_pb); -goog.exportSymbol('proto.fonoster.apps.v1beta1.App', null, global); -goog.exportSymbol('proto.fonoster.apps.v1beta1.CreateAppRequest', null, global); -goog.exportSymbol('proto.fonoster.apps.v1beta1.DeleteAppRequest', null, global); -goog.exportSymbol('proto.fonoster.apps.v1beta1.GetAppRequest', null, global); -goog.exportSymbol('proto.fonoster.apps.v1beta1.ListAppsRequest', null, global); -goog.exportSymbol('proto.fonoster.apps.v1beta1.ListAppsResponse', null, global); -goog.exportSymbol('proto.fonoster.apps.v1beta1.TransferConfig', null, global); -goog.exportSymbol('proto.fonoster.apps.v1beta1.UpdateAppRequest', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.apps.v1beta1.ListAppsRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.apps.v1beta1.ListAppsRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.apps.v1beta1.ListAppsRequest.displayName = 'proto.fonoster.apps.v1beta1.ListAppsRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.apps.v1beta1.ListAppsResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.apps.v1beta1.ListAppsResponse.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.apps.v1beta1.ListAppsResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.apps.v1beta1.ListAppsResponse.displayName = 'proto.fonoster.apps.v1beta1.ListAppsResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.apps.v1beta1.CreateAppRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.apps.v1beta1.CreateAppRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.apps.v1beta1.CreateAppRequest.displayName = 'proto.fonoster.apps.v1beta1.CreateAppRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.apps.v1beta1.UpdateAppRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.apps.v1beta1.UpdateAppRequest.displayName = 'proto.fonoster.apps.v1beta1.UpdateAppRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.apps.v1beta1.GetAppRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.apps.v1beta1.GetAppRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.apps.v1beta1.GetAppRequest.displayName = 'proto.fonoster.apps.v1beta1.GetAppRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.apps.v1beta1.DeleteAppRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.apps.v1beta1.DeleteAppRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.apps.v1beta1.DeleteAppRequest.displayName = 'proto.fonoster.apps.v1beta1.DeleteAppRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.apps.v1beta1.TransferConfig = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.apps.v1beta1.TransferConfig, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.apps.v1beta1.TransferConfig.displayName = 'proto.fonoster.apps.v1beta1.TransferConfig'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.apps.v1beta1.App = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.apps.v1beta1.App, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.apps.v1beta1.App.displayName = 'proto.fonoster.apps.v1beta1.App'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.apps.v1beta1.ListAppsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.apps.v1beta1.ListAppsRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.apps.v1beta1.ListAppsRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.ListAppsRequest.toObject = function(includeInstance, msg) { - var f, obj = { - pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), - pageToken: jspb.Message.getFieldWithDefault(msg, 2, ""), - view: jspb.Message.getFieldWithDefault(msg, 3, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.apps.v1beta1.ListAppsRequest} - */ -proto.fonoster.apps.v1beta1.ListAppsRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.apps.v1beta1.ListAppsRequest; - return proto.fonoster.apps.v1beta1.ListAppsRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.apps.v1beta1.ListAppsRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.apps.v1beta1.ListAppsRequest} - */ -proto.fonoster.apps.v1beta1.ListAppsRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setPageSize(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPageToken(value); - break; - case 3: - var value = /** @type {!proto.fonoster.common.v1beta1.View} */ (reader.readEnum()); - msg.setView(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.apps.v1beta1.ListAppsRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.apps.v1beta1.ListAppsRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.apps.v1beta1.ListAppsRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.ListAppsRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getPageSize(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getView(); - if (f !== 0.0) { - writer.writeEnum( - 3, - f - ); - } -}; - - -/** - * optional int32 page_size = 1; - * @return {number} - */ -proto.fonoster.apps.v1beta1.ListAppsRequest.prototype.getPageSize = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.apps.v1beta1.ListAppsRequest} returns this - */ -proto.fonoster.apps.v1beta1.ListAppsRequest.prototype.setPageSize = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string page_token = 2; - * @return {string} - */ -proto.fonoster.apps.v1beta1.ListAppsRequest.prototype.getPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.ListAppsRequest} returns this - */ -proto.fonoster.apps.v1beta1.ListAppsRequest.prototype.setPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional fonoster.common.v1beta1.View view = 3; - * @return {!proto.fonoster.common.v1beta1.View} - */ -proto.fonoster.apps.v1beta1.ListAppsRequest.prototype.getView = function() { - return /** @type {!proto.fonoster.common.v1beta1.View} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {!proto.fonoster.common.v1beta1.View} value - * @return {!proto.fonoster.apps.v1beta1.ListAppsRequest} returns this - */ -proto.fonoster.apps.v1beta1.ListAppsRequest.prototype.setView = function(value) { - return jspb.Message.setProto3EnumField(this, 3, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.apps.v1beta1.ListAppsResponse.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.apps.v1beta1.ListAppsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.apps.v1beta1.ListAppsResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.apps.v1beta1.ListAppsResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.ListAppsResponse.toObject = function(includeInstance, msg) { - var f, obj = { - appsList: jspb.Message.toObjectList(msg.getAppsList(), - proto.fonoster.apps.v1beta1.App.toObject, includeInstance), - nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.apps.v1beta1.ListAppsResponse} - */ -proto.fonoster.apps.v1beta1.ListAppsResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.apps.v1beta1.ListAppsResponse; - return proto.fonoster.apps.v1beta1.ListAppsResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.apps.v1beta1.ListAppsResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.apps.v1beta1.ListAppsResponse} - */ -proto.fonoster.apps.v1beta1.ListAppsResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.fonoster.apps.v1beta1.App; - reader.readMessage(value,proto.fonoster.apps.v1beta1.App.deserializeBinaryFromReader); - msg.addApps(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setNextPageToken(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.apps.v1beta1.ListAppsResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.apps.v1beta1.ListAppsResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.apps.v1beta1.ListAppsResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.ListAppsResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getAppsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.fonoster.apps.v1beta1.App.serializeBinaryToWriter - ); - } - f = message.getNextPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * repeated App apps = 1; - * @return {!Array} - */ -proto.fonoster.apps.v1beta1.ListAppsResponse.prototype.getAppsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.fonoster.apps.v1beta1.App, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.apps.v1beta1.ListAppsResponse} returns this -*/ -proto.fonoster.apps.v1beta1.ListAppsResponse.prototype.setAppsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.fonoster.apps.v1beta1.App=} opt_value - * @param {number=} opt_index - * @return {!proto.fonoster.apps.v1beta1.App} - */ -proto.fonoster.apps.v1beta1.ListAppsResponse.prototype.addApps = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.apps.v1beta1.App, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.apps.v1beta1.ListAppsResponse} returns this - */ -proto.fonoster.apps.v1beta1.ListAppsResponse.prototype.clearAppsList = function() { - return this.setAppsList([]); -}; - - -/** - * optional string next_page_token = 2; - * @return {string} - */ -proto.fonoster.apps.v1beta1.ListAppsResponse.prototype.getNextPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.ListAppsResponse} returns this - */ -proto.fonoster.apps.v1beta1.ListAppsResponse.prototype.setNextPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.apps.v1beta1.CreateAppRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.apps.v1beta1.CreateAppRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - initialDtmf: jspb.Message.getFieldWithDefault(msg, 2, ""), - activationIntentId: jspb.Message.getFieldWithDefault(msg, 3, ""), - activationTimeout: jspb.Message.getFieldWithDefault(msg, 4, 0), - interactionTimeout: jspb.Message.getFieldWithDefault(msg, 5, 0), - enableEvents: jspb.Message.getBooleanFieldWithDefault(msg, 6, false), - transferConfig: (f = msg.getTransferConfig()) && proto.fonoster.apps.v1beta1.TransferConfig.toObject(includeInstance, f), - speechConfig: (f = msg.getSpeechConfig()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f), - intentsEngineConfig: (f = msg.getIntentsEngineConfig()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.apps.v1beta1.CreateAppRequest; - return proto.fonoster.apps.v1beta1.CreateAppRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.apps.v1beta1.CreateAppRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setInitialDtmf(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setActivationIntentId(value); - break; - case 4: - var value = /** @type {number} */ (reader.readInt32()); - msg.setActivationTimeout(value); - break; - case 5: - var value = /** @type {number} */ (reader.readInt32()); - msg.setInteractionTimeout(value); - break; - case 6: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setEnableEvents(value); - break; - case 7: - var value = new proto.fonoster.apps.v1beta1.TransferConfig; - reader.readMessage(value,proto.fonoster.apps.v1beta1.TransferConfig.deserializeBinaryFromReader); - msg.setTransferConfig(value); - break; - case 8: - var value = new google_protobuf_struct_pb.Struct; - reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); - msg.setSpeechConfig(value); - break; - case 9: - var value = new google_protobuf_struct_pb.Struct; - reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); - msg.setIntentsEngineConfig(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.apps.v1beta1.CreateAppRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.apps.v1beta1.CreateAppRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = message.getActivationIntentId(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getActivationTimeout(); - if (f !== 0) { - writer.writeInt32( - 4, - f - ); - } - f = message.getInteractionTimeout(); - if (f !== 0) { - writer.writeInt32( - 5, - f - ); - } - f = message.getEnableEvents(); - if (f) { - writer.writeBool( - 6, - f - ); - } - f = message.getTransferConfig(); - if (f != null) { - writer.writeMessage( - 7, - f, - proto.fonoster.apps.v1beta1.TransferConfig.serializeBinaryToWriter - ); - } - f = message.getSpeechConfig(); - if (f != null) { - writer.writeMessage( - 8, - f, - google_protobuf_struct_pb.Struct.serializeBinaryToWriter - ); - } - f = message.getIntentsEngineConfig(); - if (f != null) { - writer.writeMessage( - 9, - f, - google_protobuf_struct_pb.Struct.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string initial_dtmf = 2; - * @return {string} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.getInitialDtmf = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.setInitialDtmf = function(value) { - return jspb.Message.setField(this, 2, value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.clearInitialDtmf = function() { - return jspb.Message.setField(this, 2, undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.hasInitialDtmf = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string activation_intent_id = 3; - * @return {string} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.getActivationIntentId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.setActivationIntentId = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional int32 activation_timeout = 4; - * @return {number} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.getActivationTimeout = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.setActivationTimeout = function(value) { - return jspb.Message.setProto3IntField(this, 4, value); -}; - - -/** - * optional int32 interaction_timeout = 5; - * @return {number} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.getInteractionTimeout = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.setInteractionTimeout = function(value) { - return jspb.Message.setProto3IntField(this, 5, value); -}; - - -/** - * optional bool enable_events = 6; - * @return {boolean} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.getEnableEvents = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.setEnableEvents = function(value) { - return jspb.Message.setProto3BooleanField(this, 6, value); -}; - - -/** - * optional TransferConfig transfer_config = 7; - * @return {?proto.fonoster.apps.v1beta1.TransferConfig} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.getTransferConfig = function() { - return /** @type{?proto.fonoster.apps.v1beta1.TransferConfig} */ ( - jspb.Message.getWrapperField(this, proto.fonoster.apps.v1beta1.TransferConfig, 7)); -}; - - -/** - * @param {?proto.fonoster.apps.v1beta1.TransferConfig|undefined} value - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} returns this -*/ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.setTransferConfig = function(value) { - return jspb.Message.setWrapperField(this, 7, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.clearTransferConfig = function() { - return this.setTransferConfig(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.hasTransferConfig = function() { - return jspb.Message.getField(this, 7) != null; -}; - - -/** - * optional google.protobuf.Struct speech_config = 8; - * @return {?proto.google.protobuf.Struct} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.getSpeechConfig = function() { - return /** @type{?proto.google.protobuf.Struct} */ ( - jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 8)); -}; - - -/** - * @param {?proto.google.protobuf.Struct|undefined} value - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} returns this -*/ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.setSpeechConfig = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.clearSpeechConfig = function() { - return this.setSpeechConfig(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.hasSpeechConfig = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional google.protobuf.Struct intents_engine_config = 9; - * @return {?proto.google.protobuf.Struct} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.getIntentsEngineConfig = function() { - return /** @type{?proto.google.protobuf.Struct} */ ( - jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 9)); -}; - - -/** - * @param {?proto.google.protobuf.Struct|undefined} value - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} returns this -*/ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.setIntentsEngineConfig = function(value) { - return jspb.Message.setWrapperField(this, 9, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.apps.v1beta1.CreateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.clearIntentsEngineConfig = function() { - return this.setIntentsEngineConfig(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.apps.v1beta1.CreateAppRequest.prototype.hasIntentsEngineConfig = function() { - return jspb.Message.getField(this, 9) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.apps.v1beta1.UpdateAppRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.apps.v1beta1.UpdateAppRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - initialDtmf: jspb.Message.getFieldWithDefault(msg, 3, ""), - activationIntentId: jspb.Message.getFieldWithDefault(msg, 4, ""), - activationTimeout: jspb.Message.getFieldWithDefault(msg, 5, 0), - interactionTimeout: jspb.Message.getFieldWithDefault(msg, 6, 0), - enableEvents: jspb.Message.getBooleanFieldWithDefault(msg, 7, false), - transferConfig: (f = msg.getTransferConfig()) && proto.fonoster.apps.v1beta1.TransferConfig.toObject(includeInstance, f), - speechConfig: (f = msg.getSpeechConfig()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f), - intentsEngineConfig: (f = msg.getIntentsEngineConfig()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.apps.v1beta1.UpdateAppRequest; - return proto.fonoster.apps.v1beta1.UpdateAppRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.apps.v1beta1.UpdateAppRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setInitialDtmf(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setActivationIntentId(value); - break; - case 5: - var value = /** @type {number} */ (reader.readInt32()); - msg.setActivationTimeout(value); - break; - case 6: - var value = /** @type {number} */ (reader.readInt32()); - msg.setInteractionTimeout(value); - break; - case 7: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setEnableEvents(value); - break; - case 8: - var value = new proto.fonoster.apps.v1beta1.TransferConfig; - reader.readMessage(value,proto.fonoster.apps.v1beta1.TransferConfig.deserializeBinaryFromReader); - msg.setTransferConfig(value); - break; - case 9: - var value = new google_protobuf_struct_pb.Struct; - reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); - msg.setSpeechConfig(value); - break; - case 10: - var value = new google_protobuf_struct_pb.Struct; - reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); - msg.setIntentsEngineConfig(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.apps.v1beta1.UpdateAppRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.apps.v1beta1.UpdateAppRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getInitialDtmf(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getActivationIntentId(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getActivationTimeout(); - if (f !== 0) { - writer.writeInt32( - 5, - f - ); - } - f = message.getInteractionTimeout(); - if (f !== 0) { - writer.writeInt32( - 6, - f - ); - } - f = message.getEnableEvents(); - if (f) { - writer.writeBool( - 7, - f - ); - } - f = message.getTransferConfig(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.fonoster.apps.v1beta1.TransferConfig.serializeBinaryToWriter - ); - } - f = message.getSpeechConfig(); - if (f != null) { - writer.writeMessage( - 9, - f, - google_protobuf_struct_pb.Struct.serializeBinaryToWriter - ); - } - f = message.getIntentsEngineConfig(); - if (f != null) { - writer.writeMessage( - 10, - f, - google_protobuf_struct_pb.Struct.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string initial_dtmf = 3; - * @return {string} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.getInitialDtmf = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.setInitialDtmf = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string activation_intent_id = 4; - * @return {string} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.getActivationIntentId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.setActivationIntentId = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional int32 activation_timeout = 5; - * @return {number} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.getActivationTimeout = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.setActivationTimeout = function(value) { - return jspb.Message.setProto3IntField(this, 5, value); -}; - - -/** - * optional int32 interaction_timeout = 6; - * @return {number} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.getInteractionTimeout = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.setInteractionTimeout = function(value) { - return jspb.Message.setProto3IntField(this, 6, value); -}; - - -/** - * optional bool enable_events = 7; - * @return {boolean} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.getEnableEvents = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 7, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.setEnableEvents = function(value) { - return jspb.Message.setProto3BooleanField(this, 7, value); -}; - - -/** - * optional TransferConfig transfer_config = 8; - * @return {?proto.fonoster.apps.v1beta1.TransferConfig} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.getTransferConfig = function() { - return /** @type{?proto.fonoster.apps.v1beta1.TransferConfig} */ ( - jspb.Message.getWrapperField(this, proto.fonoster.apps.v1beta1.TransferConfig, 8)); -}; - - -/** - * @param {?proto.fonoster.apps.v1beta1.TransferConfig|undefined} value - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} returns this -*/ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.setTransferConfig = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.clearTransferConfig = function() { - return this.setTransferConfig(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.hasTransferConfig = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional google.protobuf.Struct speech_config = 9; - * @return {?proto.google.protobuf.Struct} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.getSpeechConfig = function() { - return /** @type{?proto.google.protobuf.Struct} */ ( - jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 9)); -}; - - -/** - * @param {?proto.google.protobuf.Struct|undefined} value - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} returns this -*/ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.setSpeechConfig = function(value) { - return jspb.Message.setWrapperField(this, 9, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.clearSpeechConfig = function() { - return this.setSpeechConfig(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.hasSpeechConfig = function() { - return jspb.Message.getField(this, 9) != null; -}; - - -/** - * optional google.protobuf.Struct intents_engine_config = 10; - * @return {?proto.google.protobuf.Struct} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.getIntentsEngineConfig = function() { - return /** @type{?proto.google.protobuf.Struct} */ ( - jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 10)); -}; - - -/** - * @param {?proto.google.protobuf.Struct|undefined} value - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} returns this -*/ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.setIntentsEngineConfig = function(value) { - return jspb.Message.setWrapperField(this, 10, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.apps.v1beta1.UpdateAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.clearIntentsEngineConfig = function() { - return this.setIntentsEngineConfig(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.apps.v1beta1.UpdateAppRequest.prototype.hasIntentsEngineConfig = function() { - return jspb.Message.getField(this, 10) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.apps.v1beta1.GetAppRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.apps.v1beta1.GetAppRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.apps.v1beta1.GetAppRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.GetAppRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - view: jspb.Message.getFieldWithDefault(msg, 2, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.apps.v1beta1.GetAppRequest} - */ -proto.fonoster.apps.v1beta1.GetAppRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.apps.v1beta1.GetAppRequest; - return proto.fonoster.apps.v1beta1.GetAppRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.apps.v1beta1.GetAppRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.apps.v1beta1.GetAppRequest} - */ -proto.fonoster.apps.v1beta1.GetAppRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {!proto.fonoster.common.v1beta1.View} */ (reader.readEnum()); - msg.setView(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.apps.v1beta1.GetAppRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.apps.v1beta1.GetAppRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.apps.v1beta1.GetAppRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.GetAppRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getView(); - if (f !== 0.0) { - writer.writeEnum( - 2, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.apps.v1beta1.GetAppRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.GetAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.GetAppRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional fonoster.common.v1beta1.View view = 2; - * @return {!proto.fonoster.common.v1beta1.View} - */ -proto.fonoster.apps.v1beta1.GetAppRequest.prototype.getView = function() { - return /** @type {!proto.fonoster.common.v1beta1.View} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** - * @param {!proto.fonoster.common.v1beta1.View} value - * @return {!proto.fonoster.apps.v1beta1.GetAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.GetAppRequest.prototype.setView = function(value) { - return jspb.Message.setProto3EnumField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.apps.v1beta1.DeleteAppRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.apps.v1beta1.DeleteAppRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.apps.v1beta1.DeleteAppRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.DeleteAppRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.apps.v1beta1.DeleteAppRequest} - */ -proto.fonoster.apps.v1beta1.DeleteAppRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.apps.v1beta1.DeleteAppRequest; - return proto.fonoster.apps.v1beta1.DeleteAppRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.apps.v1beta1.DeleteAppRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.apps.v1beta1.DeleteAppRequest} - */ -proto.fonoster.apps.v1beta1.DeleteAppRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.apps.v1beta1.DeleteAppRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.apps.v1beta1.DeleteAppRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.apps.v1beta1.DeleteAppRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.DeleteAppRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.apps.v1beta1.DeleteAppRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.DeleteAppRequest} returns this - */ -proto.fonoster.apps.v1beta1.DeleteAppRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.apps.v1beta1.TransferConfig.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.apps.v1beta1.TransferConfig} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.TransferConfig.toObject = function(includeInstance, msg) { - var f, obj = { - media: jspb.Message.getFieldWithDefault(msg, 1, ""), - mediaBusy: jspb.Message.getFieldWithDefault(msg, 2, ""), - mediaNoAnswer: jspb.Message.getFieldWithDefault(msg, 3, ""), - message: jspb.Message.getFieldWithDefault(msg, 4, ""), - messageBusy: jspb.Message.getFieldWithDefault(msg, 5, ""), - messageNoAnswer: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.apps.v1beta1.TransferConfig} - */ -proto.fonoster.apps.v1beta1.TransferConfig.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.apps.v1beta1.TransferConfig; - return proto.fonoster.apps.v1beta1.TransferConfig.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.apps.v1beta1.TransferConfig} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.apps.v1beta1.TransferConfig} - */ -proto.fonoster.apps.v1beta1.TransferConfig.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setMedia(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMediaBusy(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setMediaNoAnswer(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setMessageBusy(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setMessageNoAnswer(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.apps.v1beta1.TransferConfig.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.apps.v1beta1.TransferConfig} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.TransferConfig.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getMedia(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getMediaBusy(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getMediaNoAnswer(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getMessageBusy(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getMessageNoAnswer(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional string media = 1; - * @return {string} - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.getMedia = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.TransferConfig} returns this - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.setMedia = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string media_busy = 2; - * @return {string} - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.getMediaBusy = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.TransferConfig} returns this - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.setMediaBusy = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string media_no_answer = 3; - * @return {string} - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.getMediaNoAnswer = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.TransferConfig} returns this - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.setMediaNoAnswer = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string message = 4; - * @return {string} - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.TransferConfig} returns this - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string message_busy = 5; - * @return {string} - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.getMessageBusy = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.TransferConfig} returns this - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.setMessageBusy = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string message_no_answer = 6; - * @return {string} - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.getMessageNoAnswer = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.TransferConfig} returns this - */ -proto.fonoster.apps.v1beta1.TransferConfig.prototype.setMessageNoAnswer = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.apps.v1beta1.App.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.apps.v1beta1.App.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.apps.v1beta1.App} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.App.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - accessKeyId: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - initialDtmf: jspb.Message.getFieldWithDefault(msg, 4, ""), - activationIntentId: jspb.Message.getFieldWithDefault(msg, 5, ""), - createTime: jspb.Message.getFieldWithDefault(msg, 6, ""), - updateTime: jspb.Message.getFieldWithDefault(msg, 7, ""), - activationTimeout: jspb.Message.getFieldWithDefault(msg, 8, 0), - interactionTimeout: jspb.Message.getFieldWithDefault(msg, 9, 0), - enableEvents: jspb.Message.getBooleanFieldWithDefault(msg, 10, false), - transferConfig: (f = msg.getTransferConfig()) && proto.fonoster.apps.v1beta1.TransferConfig.toObject(includeInstance, f), - speechConfig: (f = msg.getSpeechConfig()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f), - intentsEngineConfig: (f = msg.getIntentsEngineConfig()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.apps.v1beta1.App} - */ -proto.fonoster.apps.v1beta1.App.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.apps.v1beta1.App; - return proto.fonoster.apps.v1beta1.App.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.apps.v1beta1.App} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.apps.v1beta1.App} - */ -proto.fonoster.apps.v1beta1.App.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setAccessKeyId(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setInitialDtmf(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setActivationIntentId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setCreateTime(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setUpdateTime(value); - break; - case 8: - var value = /** @type {number} */ (reader.readInt32()); - msg.setActivationTimeout(value); - break; - case 9: - var value = /** @type {number} */ (reader.readInt32()); - msg.setInteractionTimeout(value); - break; - case 10: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setEnableEvents(value); - break; - case 11: - var value = new proto.fonoster.apps.v1beta1.TransferConfig; - reader.readMessage(value,proto.fonoster.apps.v1beta1.TransferConfig.deserializeBinaryFromReader); - msg.setTransferConfig(value); - break; - case 12: - var value = new google_protobuf_struct_pb.Struct; - reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); - msg.setSpeechConfig(value); - break; - case 13: - var value = new google_protobuf_struct_pb.Struct; - reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); - msg.setIntentsEngineConfig(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.apps.v1beta1.App.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.apps.v1beta1.App.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.apps.v1beta1.App} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.apps.v1beta1.App.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getAccessKeyId(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getInitialDtmf(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getActivationIntentId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getCreateTime(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getUpdateTime(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getActivationTimeout(); - if (f !== 0) { - writer.writeInt32( - 8, - f - ); - } - f = message.getInteractionTimeout(); - if (f !== 0) { - writer.writeInt32( - 9, - f - ); - } - f = message.getEnableEvents(); - if (f) { - writer.writeBool( - 10, - f - ); - } - f = message.getTransferConfig(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.fonoster.apps.v1beta1.TransferConfig.serializeBinaryToWriter - ); - } - f = message.getSpeechConfig(); - if (f != null) { - writer.writeMessage( - 12, - f, - google_protobuf_struct_pb.Struct.serializeBinaryToWriter - ); - } - f = message.getIntentsEngineConfig(); - if (f != null) { - writer.writeMessage( - 13, - f, - google_protobuf_struct_pb.Struct.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.apps.v1beta1.App.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.App} returns this - */ -proto.fonoster.apps.v1beta1.App.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string access_key_id = 2; - * @return {string} - */ -proto.fonoster.apps.v1beta1.App.prototype.getAccessKeyId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.App} returns this - */ -proto.fonoster.apps.v1beta1.App.prototype.setAccessKeyId = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.fonoster.apps.v1beta1.App.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.App} returns this - */ -proto.fonoster.apps.v1beta1.App.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string initial_dtmf = 4; - * @return {string} - */ -proto.fonoster.apps.v1beta1.App.prototype.getInitialDtmf = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.App} returns this - */ -proto.fonoster.apps.v1beta1.App.prototype.setInitialDtmf = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string activation_intent_id = 5; - * @return {string} - */ -proto.fonoster.apps.v1beta1.App.prototype.getActivationIntentId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.App} returns this - */ -proto.fonoster.apps.v1beta1.App.prototype.setActivationIntentId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string create_time = 6; - * @return {string} - */ -proto.fonoster.apps.v1beta1.App.prototype.getCreateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.App} returns this - */ -proto.fonoster.apps.v1beta1.App.prototype.setCreateTime = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string update_time = 7; - * @return {string} - */ -proto.fonoster.apps.v1beta1.App.prototype.getUpdateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.apps.v1beta1.App} returns this - */ -proto.fonoster.apps.v1beta1.App.prototype.setUpdateTime = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional int32 activation_timeout = 8; - * @return {number} - */ -proto.fonoster.apps.v1beta1.App.prototype.getActivationTimeout = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.apps.v1beta1.App} returns this - */ -proto.fonoster.apps.v1beta1.App.prototype.setActivationTimeout = function(value) { - return jspb.Message.setProto3IntField(this, 8, value); -}; - - -/** - * optional int32 interaction_timeout = 9; - * @return {number} - */ -proto.fonoster.apps.v1beta1.App.prototype.getInteractionTimeout = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.apps.v1beta1.App} returns this - */ -proto.fonoster.apps.v1beta1.App.prototype.setInteractionTimeout = function(value) { - return jspb.Message.setProto3IntField(this, 9, value); -}; - - -/** - * optional bool enable_events = 10; - * @return {boolean} - */ -proto.fonoster.apps.v1beta1.App.prototype.getEnableEvents = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 10, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.fonoster.apps.v1beta1.App} returns this - */ -proto.fonoster.apps.v1beta1.App.prototype.setEnableEvents = function(value) { - return jspb.Message.setProto3BooleanField(this, 10, value); -}; - - -/** - * optional TransferConfig transfer_config = 11; - * @return {?proto.fonoster.apps.v1beta1.TransferConfig} - */ -proto.fonoster.apps.v1beta1.App.prototype.getTransferConfig = function() { - return /** @type{?proto.fonoster.apps.v1beta1.TransferConfig} */ ( - jspb.Message.getWrapperField(this, proto.fonoster.apps.v1beta1.TransferConfig, 11)); -}; - - -/** - * @param {?proto.fonoster.apps.v1beta1.TransferConfig|undefined} value - * @return {!proto.fonoster.apps.v1beta1.App} returns this -*/ -proto.fonoster.apps.v1beta1.App.prototype.setTransferConfig = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.apps.v1beta1.App} returns this - */ -proto.fonoster.apps.v1beta1.App.prototype.clearTransferConfig = function() { - return this.setTransferConfig(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.apps.v1beta1.App.prototype.hasTransferConfig = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * optional google.protobuf.Struct speech_config = 12; - * @return {?proto.google.protobuf.Struct} - */ -proto.fonoster.apps.v1beta1.App.prototype.getSpeechConfig = function() { - return /** @type{?proto.google.protobuf.Struct} */ ( - jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 12)); -}; - - -/** - * @param {?proto.google.protobuf.Struct|undefined} value - * @return {!proto.fonoster.apps.v1beta1.App} returns this -*/ -proto.fonoster.apps.v1beta1.App.prototype.setSpeechConfig = function(value) { - return jspb.Message.setWrapperField(this, 12, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.apps.v1beta1.App} returns this - */ -proto.fonoster.apps.v1beta1.App.prototype.clearSpeechConfig = function() { - return this.setSpeechConfig(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.apps.v1beta1.App.prototype.hasSpeechConfig = function() { - return jspb.Message.getField(this, 12) != null; -}; - - -/** - * optional google.protobuf.Struct intents_engine_config = 13; - * @return {?proto.google.protobuf.Struct} - */ -proto.fonoster.apps.v1beta1.App.prototype.getIntentsEngineConfig = function() { - return /** @type{?proto.google.protobuf.Struct} */ ( - jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 13)); -}; - - -/** - * @param {?proto.google.protobuf.Struct|undefined} value - * @return {!proto.fonoster.apps.v1beta1.App} returns this -*/ -proto.fonoster.apps.v1beta1.App.prototype.setIntentsEngineConfig = function(value) { - return jspb.Message.setWrapperField(this, 13, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.apps.v1beta1.App} returns this - */ -proto.fonoster.apps.v1beta1.App.prototype.clearIntentsEngineConfig = function() { - return this.setIntentsEngineConfig(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.apps.v1beta1.App.prototype.hasIntentsEngineConfig = function() { - return jspb.Message.getField(this, 13) != null; -}; - - -goog.object.extend(exports, proto.fonoster.apps.v1beta1); diff --git a/mods/apps/src/service/protos/common_grpc_pb.js b/mods/apps/src/service/protos/common_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/apps/src/service/protos/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/apps/src/service/protos/common_pb.d.ts b/mods/apps/src/service/protos/common_pb.d.ts deleted file mode 100644 index f8b5fb810..000000000 --- a/mods/apps/src/service/protos/common_pb.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// package: fonoster.common.v1beta1 -// file: common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class Empty extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Empty.AsObject; - static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Empty; - static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; -} - -export namespace Empty { - export type AsObject = { - } -} - -export class ErrorResponse extends jspb.Message { - getStatus(): number; - setStatus(value: number): ErrorResponse; - getMessage(): string; - setMessage(value: string): ErrorResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ErrorResponse.AsObject; - static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ErrorResponse; - static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse; -} - -export namespace ErrorResponse { - export type AsObject = { - status: number, - message: string, - } -} - -export enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2, -} diff --git a/mods/apps/src/service/protos/common_pb.js b/mods/apps/src/service/protos/common_pb.js deleted file mode 100644 index b7f99c7ea..000000000 --- a/mods/apps/src/service/protos/common_pb.js +++ /dev/null @@ -1,335 +0,0 @@ -// source: common.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -goog.exportSymbol('proto.fonoster.common.v1beta1.Empty', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.ErrorResponse', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.View', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.Empty = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.Empty, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.Empty.displayName = 'proto.fonoster.common.v1beta1.Empty'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.ErrorResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.ErrorResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.ErrorResponse.displayName = 'proto.fonoster.common.v1beta1.ErrorResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.Empty.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.Empty.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.Empty} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.Empty; - return proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.Empty} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.Empty.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.Empty} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.ErrorResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.toObject = function(includeInstance, msg) { - var f, obj = { - status: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.ErrorResponse; - return proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setStatus(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getStatus(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional int32 status = 1; - * @return {number} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getStatus = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setStatus = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * @enum {number} - */ -proto.fonoster.common.v1beta1.View = { - BASIC: 0, - STANDARD: 1, - FULL: 2 -}; - -goog.object.extend(exports, proto.fonoster.common.v1beta1); diff --git a/mods/apps/src/service/protos/google/api/annotations_grpc_pb.js b/mods/apps/src/service/protos/google/api/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/apps/src/service/protos/google/api/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/apps/src/service/protos/google/api/annotations_pb.d.ts b/mods/apps/src/service/protos/google/api/annotations_pb.d.ts deleted file mode 100644 index 06072f3bd..000000000 --- a/mods/apps/src/service/protos/google/api/annotations_pb.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// package: google.api -// file: google/api/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_api_http_pb from "../../google/api/http_pb"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const http: jspb.ExtensionFieldInfo; diff --git a/mods/apps/src/service/protos/google/api/annotations_pb.js b/mods/apps/src/service/protos/google/api/annotations_pb.js deleted file mode 100644 index 99e4c1824..000000000 --- a/mods/apps/src/service/protos/google/api/annotations_pb.js +++ /dev/null @@ -1,48 +0,0 @@ -// source: google/api/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_http_pb = require('../../google/api/http_pb.js'); -goog.object.extend(proto, google_api_http_pb); -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.http', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `http`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.google.api.http = new jspb.ExtensionFieldInfo( - 72295728, - {http: 0}, - google_api_http_pb.HttpRule, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - google_api_http_pb.HttpRule.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[72295728] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.http, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - google_api_http_pb.HttpRule.serializeBinaryToWriter, - google_api_http_pb.HttpRule.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[72295728] = proto.google.api.http; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/apps/src/service/protos/google/api/field_behavior_grpc_pb.js b/mods/apps/src/service/protos/google/api/field_behavior_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/apps/src/service/protos/google/api/field_behavior_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/apps/src/service/protos/google/api/field_behavior_pb.d.ts b/mods/apps/src/service/protos/google/api/field_behavior_pb.d.ts deleted file mode 100644 index 9b853705f..000000000 --- a/mods/apps/src/service/protos/google/api/field_behavior_pb.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -// package: google.api -// file: google/api/field_behavior.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const fieldBehavior: jspb.ExtensionFieldInfo; - -export enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, -} diff --git a/mods/apps/src/service/protos/google/api/field_behavior_pb.js b/mods/apps/src/service/protos/google/api/field_behavior_pb.js deleted file mode 100644 index 44160cc41..000000000 --- a/mods/apps/src/service/protos/google/api/field_behavior_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// source: google/api/field_behavior.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.FieldBehavior', null, global); -goog.exportSymbol('proto.google.api.fieldBehaviorList', null, global); -/** - * @enum {number} - */ -proto.google.api.FieldBehavior = { - FIELD_BEHAVIOR_UNSPECIFIED: 0, - OPTIONAL: 1, - REQUIRED: 2, - OUTPUT_ONLY: 3, - INPUT_ONLY: 4, - IMMUTABLE: 5, - UNORDERED_LIST: 6, - NON_EMPTY_DEFAULT: 7 -}; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `fieldBehaviorList`. - * @type {!jspb.ExtensionFieldInfo>} - */ -proto.google.api.fieldBehaviorList = new jspb.ExtensionFieldInfo( - 1052, - {fieldBehaviorList: 0}, - null, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - null), - 1); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1052] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.fieldBehaviorList, - jspb.BinaryReader.prototype.readPackedEnum, - jspb.BinaryWriter.prototype.writePackedEnum, - undefined, - undefined, - true); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1052] = proto.google.api.fieldBehaviorList; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/apps/src/service/protos/google/api/http_grpc_pb.js b/mods/apps/src/service/protos/google/api/http_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/apps/src/service/protos/google/api/http_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/apps/src/service/protos/google/api/http_pb.d.ts b/mods/apps/src/service/protos/google/api/http_pb.d.ts deleted file mode 100644 index 02c3b1ece..000000000 --- a/mods/apps/src/service/protos/google/api/http_pb.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -// package: google.api -// file: google/api/http.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Http extends jspb.Message { - clearRulesList(): void; - getRulesList(): Array; - setRulesList(value: Array): Http; - addRules(value?: HttpRule, index?: number): HttpRule; - getFullyDecodeReservedExpansion(): boolean; - setFullyDecodeReservedExpansion(value: boolean): Http; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Http.AsObject; - static toObject(includeInstance: boolean, msg: Http): Http.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Http; - static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http; -} - -export namespace Http { - export type AsObject = { - rulesList: Array, - fullyDecodeReservedExpansion: boolean, - } -} - -export class HttpRule extends jspb.Message { - getSelector(): string; - setSelector(value: string): HttpRule; - - hasGet(): boolean; - clearGet(): void; - getGet(): string; - setGet(value: string): HttpRule; - - hasPut(): boolean; - clearPut(): void; - getPut(): string; - setPut(value: string): HttpRule; - - hasPost(): boolean; - clearPost(): void; - getPost(): string; - setPost(value: string): HttpRule; - - hasDelete(): boolean; - clearDelete(): void; - getDelete(): string; - setDelete(value: string): HttpRule; - - hasPatch(): boolean; - clearPatch(): void; - getPatch(): string; - setPatch(value: string): HttpRule; - - hasCustom(): boolean; - clearCustom(): void; - getCustom(): CustomHttpPattern | undefined; - setCustom(value?: CustomHttpPattern): HttpRule; - getBody(): string; - setBody(value: string): HttpRule; - getResponseBody(): string; - setResponseBody(value: string): HttpRule; - clearAdditionalBindingsList(): void; - getAdditionalBindingsList(): Array; - setAdditionalBindingsList(value: Array): HttpRule; - addAdditionalBindings(value?: HttpRule, index?: number): HttpRule; - - getPatternCase(): HttpRule.PatternCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpRule.AsObject; - static toObject(includeInstance: boolean, msg: HttpRule): HttpRule.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpRule, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpRule; - static deserializeBinaryFromReader(message: HttpRule, reader: jspb.BinaryReader): HttpRule; -} - -export namespace HttpRule { - export type AsObject = { - selector: string, - get: string, - put: string, - post: string, - pb_delete: string, - patch: string, - custom?: CustomHttpPattern.AsObject, - body: string, - responseBody: string, - additionalBindingsList: Array, - } - - export enum PatternCase { - PATTERN_NOT_SET = 0, - GET = 2, - PUT = 3, - POST = 4, - DELETE = 5, - PATCH = 6, - CUSTOM = 8, - } - -} - -export class CustomHttpPattern extends jspb.Message { - getKind(): string; - setKind(value: string): CustomHttpPattern; - getPath(): string; - setPath(value: string): CustomHttpPattern; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CustomHttpPattern.AsObject; - static toObject(includeInstance: boolean, msg: CustomHttpPattern): CustomHttpPattern.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CustomHttpPattern, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CustomHttpPattern; - static deserializeBinaryFromReader(message: CustomHttpPattern, reader: jspb.BinaryReader): CustomHttpPattern; -} - -export namespace CustomHttpPattern { - export type AsObject = { - kind: string, - path: string, - } -} diff --git a/mods/apps/src/service/protos/google/api/http_pb.js b/mods/apps/src/service/protos/google/api/http_pb.js deleted file mode 100644 index 0359c5eec..000000000 --- a/mods/apps/src/service/protos/google/api/http_pb.js +++ /dev/null @@ -1,1006 +0,0 @@ -// source: google/api/http.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.google.api.CustomHttpPattern', null, global); -goog.exportSymbol('proto.google.api.Http', null, global); -goog.exportSymbol('proto.google.api.HttpRule', null, global); -goog.exportSymbol('proto.google.api.HttpRule.PatternCase', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.Http = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Http.repeatedFields_, null); -}; -goog.inherits(proto.google.api.Http, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.Http.displayName = 'proto.google.api.Http'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpRule = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpRule.repeatedFields_, proto.google.api.HttpRule.oneofGroups_); -}; -goog.inherits(proto.google.api.HttpRule, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpRule.displayName = 'proto.google.api.HttpRule'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.CustomHttpPattern = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.google.api.CustomHttpPattern, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.CustomHttpPattern.displayName = 'proto.google.api.CustomHttpPattern'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.Http.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.Http.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.Http.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.Http} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.toObject = function(includeInstance, msg) { - var f, obj = { - rulesList: jspb.Message.toObjectList(msg.getRulesList(), - proto.google.api.HttpRule.toObject, includeInstance), - fullyDecodeReservedExpansion: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.Http; - return proto.google.api.Http.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.Http} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addRules(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFullyDecodeReservedExpansion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.Http.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.Http.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.Http} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRulesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } - f = message.getFullyDecodeReservedExpansion(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * repeated HttpRule rules = 1; - * @return {!Array} - */ -proto.google.api.Http.prototype.getRulesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.Http} returns this -*/ -proto.google.api.Http.prototype.setRulesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.Http.prototype.addRules = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.clearRulesList = function() { - return this.setRulesList([]); -}; - - -/** - * optional bool fully_decode_reserved_expansion = 2; - * @return {boolean} - */ -proto.google.api.Http.prototype.getFullyDecodeReservedExpansion = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.setFullyDecodeReservedExpansion = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpRule.repeatedFields_ = [11]; - -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.google.api.HttpRule.oneofGroups_ = [[2,3,4,5,6,8]]; - -/** - * @enum {number} - */ -proto.google.api.HttpRule.PatternCase = { - PATTERN_NOT_SET: 0, - GET: 2, - PUT: 3, - POST: 4, - DELETE: 5, - PATCH: 6, - CUSTOM: 8 -}; - -/** - * @return {proto.google.api.HttpRule.PatternCase} - */ -proto.google.api.HttpRule.prototype.getPatternCase = function() { - return /** @type {proto.google.api.HttpRule.PatternCase} */(jspb.Message.computeOneofCase(this, proto.google.api.HttpRule.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpRule.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpRule.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpRule} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.toObject = function(includeInstance, msg) { - var f, obj = { - selector: jspb.Message.getFieldWithDefault(msg, 1, ""), - get: jspb.Message.getFieldWithDefault(msg, 2, ""), - put: jspb.Message.getFieldWithDefault(msg, 3, ""), - post: jspb.Message.getFieldWithDefault(msg, 4, ""), - pb_delete: jspb.Message.getFieldWithDefault(msg, 5, ""), - patch: jspb.Message.getFieldWithDefault(msg, 6, ""), - custom: (f = msg.getCustom()) && proto.google.api.CustomHttpPattern.toObject(includeInstance, f), - body: jspb.Message.getFieldWithDefault(msg, 7, ""), - responseBody: jspb.Message.getFieldWithDefault(msg, 12, ""), - additionalBindingsList: jspb.Message.toObjectList(msg.getAdditionalBindingsList(), - proto.google.api.HttpRule.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpRule; - return proto.google.api.HttpRule.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpRule} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSelector(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setGet(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPut(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPost(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDelete(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPatch(value); - break; - case 8: - var value = new proto.google.api.CustomHttpPattern; - reader.readMessage(value,proto.google.api.CustomHttpPattern.deserializeBinaryFromReader); - msg.setCustom(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBody(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setResponseBody(value); - break; - case 11: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addAdditionalBindings(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpRule.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpRule.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpRule} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSelector(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeString( - 3, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeString( - 4, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 5)); - if (f != null) { - writer.writeString( - 5, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 6)); - if (f != null) { - writer.writeString( - 6, - f - ); - } - f = message.getCustom(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.google.api.CustomHttpPattern.serializeBinaryToWriter - ); - } - f = message.getBody(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getResponseBody(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getAdditionalBindingsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 11, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string selector = 1; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getSelector = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setSelector = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string get = 2; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getGet = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setGet = function(value) { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearGet = function() { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasGet = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string put = 3; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPut = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPut = function(value) { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPut = function() { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPut = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional string post = 4; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPost = function(value) { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPost = function() { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPost = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string delete = 5; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getDelete = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setDelete = function(value) { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearDelete = function() { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasDelete = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string patch = 6; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPatch = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPatch = function(value) { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPatch = function() { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPatch = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional CustomHttpPattern custom = 8; - * @return {?proto.google.api.CustomHttpPattern} - */ -proto.google.api.HttpRule.prototype.getCustom = function() { - return /** @type{?proto.google.api.CustomHttpPattern} */ ( - jspb.Message.getWrapperField(this, proto.google.api.CustomHttpPattern, 8)); -}; - - -/** - * @param {?proto.google.api.CustomHttpPattern|undefined} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setCustom = function(value) { - return jspb.Message.setOneofWrapperField(this, 8, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearCustom = function() { - return this.setCustom(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasCustom = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional string body = 7; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setBody = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string response_body = 12; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getResponseBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setResponseBody = function(value) { - return jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * repeated HttpRule additional_bindings = 11; - * @return {!Array} - */ -proto.google.api.HttpRule.prototype.getAdditionalBindingsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 11)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setAdditionalBindingsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 11, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.prototype.addAdditionalBindings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearAdditionalBindingsList = function() { - return this.setAdditionalBindingsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.CustomHttpPattern.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.CustomHttpPattern.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.CustomHttpPattern} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.toObject = function(includeInstance, msg) { - var f, obj = { - kind: jspb.Message.getFieldWithDefault(msg, 1, ""), - path: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.CustomHttpPattern; - return proto.google.api.CustomHttpPattern.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.CustomHttpPattern} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKind(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.CustomHttpPattern.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.CustomHttpPattern.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.CustomHttpPattern} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKind(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string kind = 1; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getKind = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setKind = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string path = 2; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/apps/src/service/protos/google/api/httpbody_grpc_pb.js b/mods/apps/src/service/protos/google/api/httpbody_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/apps/src/service/protos/google/api/httpbody_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/apps/src/service/protos/google/api/httpbody_pb.d.ts b/mods/apps/src/service/protos/google/api/httpbody_pb.d.ts deleted file mode 100644 index 98d973068..000000000 --- a/mods/apps/src/service/protos/google/api/httpbody_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// package: google.api -// file: google/api/httpbody.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb"; - -export class HttpBody extends jspb.Message { - getContentType(): string; - setContentType(value: string): HttpBody; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): HttpBody; - clearExtensionsList(): void; - getExtensionsList(): Array; - setExtensionsList(value: Array): HttpBody; - addExtensions(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpBody.AsObject; - static toObject(includeInstance: boolean, msg: HttpBody): HttpBody.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpBody, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpBody; - static deserializeBinaryFromReader(message: HttpBody, reader: jspb.BinaryReader): HttpBody; -} - -export namespace HttpBody { - export type AsObject = { - contentType: string, - data: Uint8Array | string, - extensionsList: Array, - } -} diff --git a/mods/apps/src/service/protos/google/api/httpbody_pb.js b/mods/apps/src/service/protos/google/api/httpbody_pb.js deleted file mode 100644 index 5539f5936..000000000 --- a/mods/apps/src/service/protos/google/api/httpbody_pb.js +++ /dev/null @@ -1,286 +0,0 @@ -// source: google/api/httpbody.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js'); -goog.object.extend(proto, google_protobuf_any_pb); -goog.exportSymbol('proto.google.api.HttpBody', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpBody = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpBody.repeatedFields_, null); -}; -goog.inherits(proto.google.api.HttpBody, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpBody.displayName = 'proto.google.api.HttpBody'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpBody.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpBody.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpBody.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpBody} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.toObject = function(includeInstance, msg) { - var f, obj = { - contentType: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64(), - extensionsList: jspb.Message.toObjectList(msg.getExtensionsList(), - google_protobuf_any_pb.Any.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpBody; - return proto.google.api.HttpBody.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpBody} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setContentType(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 3: - var value = new google_protobuf_any_pb.Any; - reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader); - msg.addExtensions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpBody.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpBody} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContentType(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getExtensionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - google_protobuf_any_pb.Any.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string content_type = 1; - * @return {string} - */ -proto.google.api.HttpBody.prototype.getContentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setContentType = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.google.api.HttpBody.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.google.api.HttpBody.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setData = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * repeated google.protobuf.Any extensions = 3; - * @return {!Array} - */ -proto.google.api.HttpBody.prototype.getExtensionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpBody} returns this -*/ -proto.google.api.HttpBody.prototype.setExtensionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.google.protobuf.Any=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.Any} - */ -proto.google.api.HttpBody.prototype.addExtensions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.clearExtensionsList = function() { - return this.setExtensionsList([]); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/apps/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js b/mods/apps/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/apps/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/apps/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts b/mods/apps/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts deleted file mode 100644 index 8e3a35012..000000000 --- a/mods/apps/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; -import * as protoc_gen_openapiv2_options_openapiv2_pb from "../../protoc-gen-openapiv2/options/openapiv2_pb"; - -export const openapiv2Swagger: jspb.ExtensionFieldInfo; - -export const openapiv2Operation: jspb.ExtensionFieldInfo; - -export const openapiv2Schema: jspb.ExtensionFieldInfo; - -export const openapiv2Tag: jspb.ExtensionFieldInfo; - -export const openapiv2Field: jspb.ExtensionFieldInfo; diff --git a/mods/apps/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js b/mods/apps/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js deleted file mode 100644 index e92ccec18..000000000 --- a/mods/apps/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js +++ /dev/null @@ -1,152 +0,0 @@ -// source: protoc-gen-openapiv2/options/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -var protoc$gen$openapiv2_options_openapiv2_pb = require('../../protoc-gen-openapiv2/options/openapiv2_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_openapiv2_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Swagger`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Swagger: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.toObject), - 0); - -google_protobuf_descriptor_pb.FileOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FileOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Operation`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Operation: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Operation, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Operation.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Schema`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Schema: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Schema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Schema.toObject), - 0); - -google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MessageOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Tag`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Tag: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Tag, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Tag.toObject), - 0); - -google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.ServiceOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Field`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Field: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.toObject), - 0); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/apps/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js b/mods/apps/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/apps/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/apps/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts b/mods/apps/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts deleted file mode 100644 index 3c3972ea9..000000000 --- a/mods/apps/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +++ /dev/null @@ -1,685 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/openapiv2.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class Swagger extends jspb.Message { - getSwagger(): string; - setSwagger(value: string): Swagger; - - hasInfo(): boolean; - clearInfo(): void; - getInfo(): Info | undefined; - setInfo(value?: Info): Swagger; - getHost(): string; - setHost(value: string): Swagger; - getBasePath(): string; - setBasePath(value: string): Swagger; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Swagger; - addSchemes(value: Scheme, index?: number): Scheme; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Swagger; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Swagger; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - - hasSecurityDefinitions(): boolean; - clearSecurityDefinitions(): void; - getSecurityDefinitions(): SecurityDefinitions | undefined; - setSecurityDefinitions(value?: SecurityDefinitions): Swagger; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Swagger; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Swagger; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Swagger.AsObject; - static toObject(includeInstance: boolean, msg: Swagger): Swagger.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Swagger, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Swagger; - static deserializeBinaryFromReader(message: Swagger, reader: jspb.BinaryReader): Swagger; -} - -export namespace Swagger { - export type AsObject = { - swagger: string, - info?: Info.AsObject, - host: string, - basePath: string, - schemesList: Array, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - securityDefinitions?: SecurityDefinitions.AsObject, - securityList: Array, - externalDocs?: ExternalDocumentation.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Operation extends jspb.Message { - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): Operation; - addTags(value: string, index?: number): string; - getSummary(): string; - setSummary(value: string): Operation; - getDescription(): string; - setDescription(value: string): Operation; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Operation; - getOperationId(): string; - setOperationId(value: string): Operation; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Operation; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Operation; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Operation; - addSchemes(value: Scheme, index?: number): Scheme; - getDeprecated(): boolean; - setDeprecated(value: boolean): Operation; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Operation; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Operation.AsObject; - static toObject(includeInstance: boolean, msg: Operation): Operation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Operation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Operation; - static deserializeBinaryFromReader(message: Operation, reader: jspb.BinaryReader): Operation; -} - -export namespace Operation { - export type AsObject = { - tagsList: Array, - summary: string, - description: string, - externalDocs?: ExternalDocumentation.AsObject, - operationId: string, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - schemesList: Array, - deprecated: boolean, - securityList: Array, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Header extends jspb.Message { - getDescription(): string; - setDescription(value: string): Header; - getType(): string; - setType(value: string): Header; - getFormat(): string; - setFormat(value: string): Header; - getDefault(): string; - setDefault(value: string): Header; - getPattern(): string; - setPattern(value: string): Header; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Header.AsObject; - static toObject(includeInstance: boolean, msg: Header): Header.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Header, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Header; - static deserializeBinaryFromReader(message: Header, reader: jspb.BinaryReader): Header; -} - -export namespace Header { - export type AsObject = { - description: string, - type: string, - format: string, - pb_default: string, - pattern: string, - } -} - -export class Response extends jspb.Message { - getDescription(): string; - setDescription(value: string): Response; - - hasSchema(): boolean; - clearSchema(): void; - getSchema(): Schema | undefined; - setSchema(value?: Schema): Response; - - getHeadersMap(): jspb.Map; - clearHeadersMap(): void; - - getExamplesMap(): jspb.Map; - clearExamplesMap(): void; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Response.AsObject; - static toObject(includeInstance: boolean, msg: Response): Response.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Response, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Response; - static deserializeBinaryFromReader(message: Response, reader: jspb.BinaryReader): Response; -} - -export namespace Response { - export type AsObject = { - description: string, - schema?: Schema.AsObject, - - headersMap: Array<[string, Header.AsObject]>, - - examplesMap: Array<[string, string]>, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Info extends jspb.Message { - getTitle(): string; - setTitle(value: string): Info; - getDescription(): string; - setDescription(value: string): Info; - getTermsOfService(): string; - setTermsOfService(value: string): Info; - - hasContact(): boolean; - clearContact(): void; - getContact(): Contact | undefined; - setContact(value?: Contact): Info; - - hasLicense(): boolean; - clearLicense(): void; - getLicense(): License | undefined; - setLicense(value?: License): Info; - getVersion(): string; - setVersion(value: string): Info; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Info.AsObject; - static toObject(includeInstance: boolean, msg: Info): Info.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Info, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Info; - static deserializeBinaryFromReader(message: Info, reader: jspb.BinaryReader): Info; -} - -export namespace Info { - export type AsObject = { - title: string, - description: string, - termsOfService: string, - contact?: Contact.AsObject, - license?: License.AsObject, - version: string, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Contact extends jspb.Message { - getName(): string; - setName(value: string): Contact; - getUrl(): string; - setUrl(value: string): Contact; - getEmail(): string; - setEmail(value: string): Contact; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contact.AsObject; - static toObject(includeInstance: boolean, msg: Contact): Contact.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contact, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contact; - static deserializeBinaryFromReader(message: Contact, reader: jspb.BinaryReader): Contact; -} - -export namespace Contact { - export type AsObject = { - name: string, - url: string, - email: string, - } -} - -export class License extends jspb.Message { - getName(): string; - setName(value: string): License; - getUrl(): string; - setUrl(value: string): License; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): License.AsObject; - static toObject(includeInstance: boolean, msg: License): License.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: License, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): License; - static deserializeBinaryFromReader(message: License, reader: jspb.BinaryReader): License; -} - -export namespace License { - export type AsObject = { - name: string, - url: string, - } -} - -export class ExternalDocumentation extends jspb.Message { - getDescription(): string; - setDescription(value: string): ExternalDocumentation; - getUrl(): string; - setUrl(value: string): ExternalDocumentation; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ExternalDocumentation.AsObject; - static toObject(includeInstance: boolean, msg: ExternalDocumentation): ExternalDocumentation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ExternalDocumentation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ExternalDocumentation; - static deserializeBinaryFromReader(message: ExternalDocumentation, reader: jspb.BinaryReader): ExternalDocumentation; -} - -export namespace ExternalDocumentation { - export type AsObject = { - description: string, - url: string, - } -} - -export class Schema extends jspb.Message { - - hasJsonSchema(): boolean; - clearJsonSchema(): void; - getJsonSchema(): JSONSchema | undefined; - setJsonSchema(value?: JSONSchema): Schema; - getDiscriminator(): string; - setDiscriminator(value: string): Schema; - getReadOnly(): boolean; - setReadOnly(value: boolean): Schema; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Schema; - getExample(): string; - setExample(value: string): Schema; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Schema.AsObject; - static toObject(includeInstance: boolean, msg: Schema): Schema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Schema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Schema; - static deserializeBinaryFromReader(message: Schema, reader: jspb.BinaryReader): Schema; -} - -export namespace Schema { - export type AsObject = { - jsonSchema?: JSONSchema.AsObject, - discriminator: string, - readOnly: boolean, - externalDocs?: ExternalDocumentation.AsObject, - example: string, - } -} - -export class JSONSchema extends jspb.Message { - getRef(): string; - setRef(value: string): JSONSchema; - getTitle(): string; - setTitle(value: string): JSONSchema; - getDescription(): string; - setDescription(value: string): JSONSchema; - getDefault(): string; - setDefault(value: string): JSONSchema; - getReadOnly(): boolean; - setReadOnly(value: boolean): JSONSchema; - getExample(): string; - setExample(value: string): JSONSchema; - getMultipleOf(): number; - setMultipleOf(value: number): JSONSchema; - getMaximum(): number; - setMaximum(value: number): JSONSchema; - getExclusiveMaximum(): boolean; - setExclusiveMaximum(value: boolean): JSONSchema; - getMinimum(): number; - setMinimum(value: number): JSONSchema; - getExclusiveMinimum(): boolean; - setExclusiveMinimum(value: boolean): JSONSchema; - getMaxLength(): number; - setMaxLength(value: number): JSONSchema; - getMinLength(): number; - setMinLength(value: number): JSONSchema; - getPattern(): string; - setPattern(value: string): JSONSchema; - getMaxItems(): number; - setMaxItems(value: number): JSONSchema; - getMinItems(): number; - setMinItems(value: number): JSONSchema; - getUniqueItems(): boolean; - setUniqueItems(value: boolean): JSONSchema; - getMaxProperties(): number; - setMaxProperties(value: number): JSONSchema; - getMinProperties(): number; - setMinProperties(value: number): JSONSchema; - clearRequiredList(): void; - getRequiredList(): Array; - setRequiredList(value: Array): JSONSchema; - addRequired(value: string, index?: number): string; - clearArrayList(): void; - getArrayList(): Array; - setArrayList(value: Array): JSONSchema; - addArray(value: string, index?: number): string; - clearTypeList(): void; - getTypeList(): Array; - setTypeList(value: Array): JSONSchema; - addType(value: JSONSchema.JSONSchemaSimpleTypes, index?: number): JSONSchema.JSONSchemaSimpleTypes; - getFormat(): string; - setFormat(value: string): JSONSchema; - clearEnumList(): void; - getEnumList(): Array; - setEnumList(value: Array): JSONSchema; - addEnum(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): JSONSchema.AsObject; - static toObject(includeInstance: boolean, msg: JSONSchema): JSONSchema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: JSONSchema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): JSONSchema; - static deserializeBinaryFromReader(message: JSONSchema, reader: jspb.BinaryReader): JSONSchema; -} - -export namespace JSONSchema { - export type AsObject = { - ref: string, - title: string, - description: string, - pb_default: string, - readOnly: boolean, - example: string, - multipleOf: number, - maximum: number, - exclusiveMaximum: boolean, - minimum: number, - exclusiveMinimum: boolean, - maxLength: number, - minLength: number, - pattern: string, - maxItems: number, - minItems: number, - uniqueItems: boolean, - maxProperties: number, - minProperties: number, - requiredList: Array, - arrayList: Array, - typeList: Array, - format: string, - pb_enumList: Array, - } - - export enum JSONSchemaSimpleTypes { - UNKNOWN = 0, - ARRAY = 1, - BOOLEAN = 2, - INTEGER = 3, - NULL = 4, - NUMBER = 5, - OBJECT = 6, - STRING = 7, - } - -} - -export class Tag extends jspb.Message { - getDescription(): string; - setDescription(value: string): Tag; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Tag; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Tag.AsObject; - static toObject(includeInstance: boolean, msg: Tag): Tag.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Tag, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Tag; - static deserializeBinaryFromReader(message: Tag, reader: jspb.BinaryReader): Tag; -} - -export namespace Tag { - export type AsObject = { - description: string, - externalDocs?: ExternalDocumentation.AsObject, - } -} - -export class SecurityDefinitions extends jspb.Message { - - getSecurityMap(): jspb.Map; - clearSecurityMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityDefinitions.AsObject; - static toObject(includeInstance: boolean, msg: SecurityDefinitions): SecurityDefinitions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityDefinitions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityDefinitions; - static deserializeBinaryFromReader(message: SecurityDefinitions, reader: jspb.BinaryReader): SecurityDefinitions; -} - -export namespace SecurityDefinitions { - export type AsObject = { - - securityMap: Array<[string, SecurityScheme.AsObject]>, - } -} - -export class SecurityScheme extends jspb.Message { - getType(): SecurityScheme.Type; - setType(value: SecurityScheme.Type): SecurityScheme; - getDescription(): string; - setDescription(value: string): SecurityScheme; - getName(): string; - setName(value: string): SecurityScheme; - getIn(): SecurityScheme.In; - setIn(value: SecurityScheme.In): SecurityScheme; - getFlow(): SecurityScheme.Flow; - setFlow(value: SecurityScheme.Flow): SecurityScheme; - getAuthorizationUrl(): string; - setAuthorizationUrl(value: string): SecurityScheme; - getTokenUrl(): string; - setTokenUrl(value: string): SecurityScheme; - - hasScopes(): boolean; - clearScopes(): void; - getScopes(): Scopes | undefined; - setScopes(value?: Scopes): SecurityScheme; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityScheme.AsObject; - static toObject(includeInstance: boolean, msg: SecurityScheme): SecurityScheme.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityScheme, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityScheme; - static deserializeBinaryFromReader(message: SecurityScheme, reader: jspb.BinaryReader): SecurityScheme; -} - -export namespace SecurityScheme { - export type AsObject = { - type: SecurityScheme.Type, - description: string, - name: string, - pb_in: SecurityScheme.In, - flow: SecurityScheme.Flow, - authorizationUrl: string, - tokenUrl: string, - scopes?: Scopes.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } - - export enum Type { - TYPE_INVALID = 0, - TYPE_BASIC = 1, - TYPE_API_KEY = 2, - TYPE_OAUTH2 = 3, - } - - export enum In { - IN_INVALID = 0, - IN_QUERY = 1, - IN_HEADER = 2, - } - - export enum Flow { - FLOW_INVALID = 0, - FLOW_IMPLICIT = 1, - FLOW_PASSWORD = 2, - FLOW_APPLICATION = 3, - FLOW_ACCESS_CODE = 4, - } - -} - -export class SecurityRequirement extends jspb.Message { - - getSecurityRequirementMap(): jspb.Map; - clearSecurityRequirementMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirement.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirement): SecurityRequirement.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirement, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirement; - static deserializeBinaryFromReader(message: SecurityRequirement, reader: jspb.BinaryReader): SecurityRequirement; -} - -export namespace SecurityRequirement { - export type AsObject = { - - securityRequirementMap: Array<[string, SecurityRequirement.SecurityRequirementValue.AsObject]>, - } - - - export class SecurityRequirementValue extends jspb.Message { - clearScopeList(): void; - getScopeList(): Array; - setScopeList(value: Array): SecurityRequirementValue; - addScope(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirementValue.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirementValue): SecurityRequirementValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirementValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirementValue; - static deserializeBinaryFromReader(message: SecurityRequirementValue, reader: jspb.BinaryReader): SecurityRequirementValue; - } - - export namespace SecurityRequirementValue { - export type AsObject = { - scopeList: Array, - } - } - -} - -export class Scopes extends jspb.Message { - - getScopeMap(): jspb.Map; - clearScopeMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Scopes.AsObject; - static toObject(includeInstance: boolean, msg: Scopes): Scopes.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Scopes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Scopes; - static deserializeBinaryFromReader(message: Scopes, reader: jspb.BinaryReader): Scopes; -} - -export namespace Scopes { - export type AsObject = { - - scopeMap: Array<[string, string]>, - } -} - -export enum Scheme { - UNKNOWN = 0, - HTTP = 1, - HTTPS = 2, - WS = 3, - WSS = 4, -} diff --git a/mods/apps/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js b/mods/apps/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js deleted file mode 100644 index be8a6bfd2..000000000 --- a/mods/apps/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js +++ /dev/null @@ -1,5367 +0,0 @@ -// source: protoc-gen-openapiv2/options/openapiv2.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Contact', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Header', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Info', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.License', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Response', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Tag', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Operation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Operation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Header, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Header'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Response, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Response'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Info, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Info'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Contact'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.License, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.License.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.License'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Schema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Tag, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Tag'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_ = [5,6,7,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject = function(includeInstance, msg) { - var f, obj = { - swagger: jspb.Message.getFieldWithDefault(msg, 1, ""), - info: (f = msg.getInfo()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(includeInstance, f), - host: jspb.Message.getFieldWithDefault(msg, 3, ""), - basePath: jspb.Message.getFieldWithDefault(msg, 4, ""), - schemesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - securityDefinitions: (f = msg.getSecurityDefinitions()) && proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(includeInstance, f), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSwagger(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader); - msg.setInfo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setBasePath(value); - break; - case 5: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 10: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 11: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader); - msg.setSecurityDefinitions(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 14: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 15: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSwagger(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInfo(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBasePath(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSecurityDefinitions(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 14, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string swagger = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSwagger = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSwagger = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Info info = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getInfo = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Info, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearInfo = function() { - return this.setInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasInfo = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string host = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string base_path = 4; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getBasePath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setBasePath = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated Scheme schemes = 5; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 10; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 10, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * optional SecurityDefinitions security_definitions = 11; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityDefinitions = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, 11)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityDefinitions = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityDefinitions = function() { - return this.setSecurityDefinitions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasSecurityDefinitions = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * optional ExternalDocumentation external_docs = 14; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 14)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 14, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 14) != null; -}; - - -/** - * map extensions = 15; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 15, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_ = [1,6,7,10,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject = function(includeInstance, msg) { - var f, obj = { - tagsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - summary: jspb.Message.getFieldWithDefault(msg, 2, ""), - description: jspb.Message.getFieldWithDefault(msg, 3, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - operationId: jspb.Message.getFieldWithDefault(msg, 5, ""), - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - schemesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f, - deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 11, false), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Operation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSummary(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setOperationId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 9: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 10: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDeprecated(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 13: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getSummary(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getOperationId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 10, - f - ); - } - f = message.getDeprecated(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * repeated string tags = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getTagsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setTagsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addTags = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearTagsList = function() { - return this.setTagsList([]); -}; - - -/** - * optional string summary = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSummary = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSummary = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string description = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string operation_id = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getOperationId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setOperationId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * repeated Scheme schemes = 10; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 10, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 10, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * optional bool deprecated = 11; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDeprecated = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDeprecated = function(value) { - return jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * map extensions = 13; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 13, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, ""), - format: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 6, ""), - pattern: jspb.Message.getFieldWithDefault(msg, 13, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Header; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string type = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string format = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string default = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string pattern = 13; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 13, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - schema: (f = msg.getSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(includeInstance, f), - headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject) : [], - examplesMap: (f = msg.getExamplesMap()) ? f.toObject(includeInstance, undefined) : [], - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Response; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader); - msg.setSchema(value); - break; - case 3: - var value = msg.getHeadersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Header()); - }); - break; - case 4: - var value = msg.getExamplesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - case 5: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchema(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter - ); - } - f = message.getHeadersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter); - } - f = message.getExamplesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Schema schema = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setSchema = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearSchema = function() { - return this.setSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.hasSchema = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * map headers = 3; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getHeadersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 3, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Header)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearHeadersMap = function() { - this.getHeadersMap().clear(); - return this;}; - - -/** - * map examples = 4; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExamplesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 4, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExamplesMap = function() { - this.getExamplesMap().clear(); - return this;}; - - -/** - * map extensions = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject = function(includeInstance, msg) { - var f, obj = { - title: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - termsOfService: jspb.Message.getFieldWithDefault(msg, 3, ""), - contact: (f = msg.getContact()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(includeInstance, f), - license: (f = msg.getLicense()) && proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(includeInstance, f), - version: jspb.Message.getFieldWithDefault(msg, 6, ""), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTermsOfService(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader); - msg.setContact(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader); - msg.setLicense(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 7: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTermsOfService(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getContact(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter - ); - } - f = message.getLicense(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string title = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string terms_of_service = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTermsOfService = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTermsOfService = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional Contact contact = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getContact = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setContact = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearContact = function() { - return this.setContact(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasContact = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional License license = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getLicense = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.License} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.License, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.License|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setLicense = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearLicense = function() { - return this.setLicense(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasLicense = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string version = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setVersion = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * map extensions = 7; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 7, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject = function(includeInstance, msg) { - var f, obj = { - jsonSchema: (f = msg.getJsonSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(includeInstance, f), - discriminator: jspb.Message.getFieldWithDefault(msg, 2, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - example: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader); - msg.setJsonSchema(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDiscriminator(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsonSchema(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter - ); - } - f = message.getDiscriminator(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional JSONSchema json_schema = 1; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getJsonSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, 1)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setJsonSchema = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearJsonSchema = function() { - return this.setJsonSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasJsonSchema = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string discriminator = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getDiscriminator = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setDiscriminator = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool read_only = 3; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string example = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_ = [26,34,35,46]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 3, ""), - title: jspb.Message.getFieldWithDefault(msg, 5, ""), - description: jspb.Message.getFieldWithDefault(msg, 6, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 7, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - example: jspb.Message.getFieldWithDefault(msg, 9, ""), - multipleOf: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0), - maximum: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0), - exclusiveMaximum: jspb.Message.getBooleanFieldWithDefault(msg, 12, false), - minimum: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), - exclusiveMinimum: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - maxLength: jspb.Message.getFieldWithDefault(msg, 15, 0), - minLength: jspb.Message.getFieldWithDefault(msg, 16, 0), - pattern: jspb.Message.getFieldWithDefault(msg, 17, ""), - maxItems: jspb.Message.getFieldWithDefault(msg, 20, 0), - minItems: jspb.Message.getFieldWithDefault(msg, 21, 0), - uniqueItems: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), - maxProperties: jspb.Message.getFieldWithDefault(msg, 24, 0), - minProperties: jspb.Message.getFieldWithDefault(msg, 25, 0), - requiredList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, - arrayList: (f = jspb.Message.getRepeatedField(msg, 34)) == null ? undefined : f, - typeList: (f = jspb.Message.getRepeatedField(msg, 35)) == null ? undefined : f, - format: jspb.Message.getFieldWithDefault(msg, 36, ""), - enumList: (f = jspb.Message.getRepeatedField(msg, 46)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - case 10: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMultipleOf(value); - break; - case 11: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMaximum(value); - break; - case 12: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMaximum(value); - break; - case 13: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMinimum(value); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMinimum(value); - break; - case 15: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxLength(value); - break; - case 16: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinLength(value); - break; - case 17: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - case 20: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxItems(value); - break; - case 21: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinItems(value); - break; - case 22: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUniqueItems(value); - break; - case 24: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxProperties(value); - break; - case 25: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinProperties(value); - break; - case 26: - var value = /** @type {string} */ (reader.readString()); - msg.addRequired(value); - break; - case 34: - var value = /** @type {string} */ (reader.readString()); - msg.addArray(value); - break; - case 35: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addType(values[i]); - } - break; - case 36: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 46: - var value = /** @type {string} */ (reader.readString()); - msg.addEnum(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getMultipleOf(); - if (f !== 0.0) { - writer.writeDouble( - 10, - f - ); - } - f = message.getMaximum(); - if (f !== 0.0) { - writer.writeDouble( - 11, - f - ); - } - f = message.getExclusiveMaximum(); - if (f) { - writer.writeBool( - 12, - f - ); - } - f = message.getMinimum(); - if (f !== 0.0) { - writer.writeDouble( - 13, - f - ); - } - f = message.getExclusiveMinimum(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getMaxLength(); - if (f !== 0) { - writer.writeUint64( - 15, - f - ); - } - f = message.getMinLength(); - if (f !== 0) { - writer.writeUint64( - 16, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 17, - f - ); - } - f = message.getMaxItems(); - if (f !== 0) { - writer.writeUint64( - 20, - f - ); - } - f = message.getMinItems(); - if (f !== 0) { - writer.writeUint64( - 21, - f - ); - } - f = message.getUniqueItems(); - if (f) { - writer.writeBool( - 22, - f - ); - } - f = message.getMaxProperties(); - if (f !== 0) { - writer.writeUint64( - 24, - f - ); - } - f = message.getMinProperties(); - if (f !== 0) { - writer.writeUint64( - 25, - f - ); - } - f = message.getRequiredList(); - if (f.length > 0) { - writer.writeRepeatedString( - 26, - f - ); - } - f = message.getArrayList(); - if (f.length > 0) { - writer.writeRepeatedString( - 34, - f - ); - } - f = message.getTypeList(); - if (f.length > 0) { - writer.writePackedEnum( - 35, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 36, - f - ); - } - f = message.getEnumList(); - if (f.length > 0) { - writer.writeRepeatedString( - 46, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes = { - UNKNOWN: 0, - ARRAY: 1, - BOOLEAN: 2, - INTEGER: 3, - NULL: 4, - NUMBER: 5, - OBJECT: 6, - STRING: 7 -}; - -/** - * optional string ref = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string title = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string description = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string default = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional bool read_only = 8; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - -/** - * optional string example = 9; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional double multiple_of = 10; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMultipleOf = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMultipleOf = function(value) { - return jspb.Message.setProto3FloatField(this, 10, value); -}; - - -/** - * optional double maximum = 11; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaximum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaximum = function(value) { - return jspb.Message.setProto3FloatField(this, 11, value); -}; - - -/** - * optional bool exclusive_maximum = 12; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMaximum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMaximum = function(value) { - return jspb.Message.setProto3BooleanField(this, 12, value); -}; - - -/** - * optional double minimum = 13; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinimum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinimum = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); -}; - - -/** - * optional bool exclusive_minimum = 14; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMinimum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMinimum = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * optional uint64 max_length = 15; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxLength = function(value) { - return jspb.Message.setProto3IntField(this, 15, value); -}; - - -/** - * optional uint64 min_length = 16; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinLength = function(value) { - return jspb.Message.setProto3IntField(this, 16, value); -}; - - -/** - * optional string pattern = 17; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 17, value); -}; - - -/** - * optional uint64 max_items = 20; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxItems = function(value) { - return jspb.Message.setProto3IntField(this, 20, value); -}; - - -/** - * optional uint64 min_items = 21; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinItems = function(value) { - return jspb.Message.setProto3IntField(this, 21, value); -}; - - -/** - * optional bool unique_items = 22; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getUniqueItems = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setUniqueItems = function(value) { - return jspb.Message.setProto3BooleanField(this, 22, value); -}; - - -/** - * optional uint64 max_properties = 24; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxProperties = function(value) { - return jspb.Message.setProto3IntField(this, 24, value); -}; - - -/** - * optional uint64 min_properties = 25; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinProperties = function(value) { - return jspb.Message.setProto3IntField(this, 25, value); -}; - - -/** - * repeated string required = 26; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRequiredList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 26)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRequiredList = function(value) { - return jspb.Message.setField(this, 26, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addRequired = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 26, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearRequiredList = function() { - return this.setRequiredList([]); -}; - - -/** - * repeated string array = 34; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getArrayList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 34)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setArrayList = function(value) { - return jspb.Message.setField(this, 34, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addArray = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 34, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearArrayList = function() { - return this.setArrayList([]); -}; - - -/** - * repeated JSONSchemaSimpleTypes type = 35; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTypeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 35)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTypeList = function(value) { - return jspb.Message.setField(this, 35, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addType = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 35, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearTypeList = function() { - return this.setTypeList([]); -}; - - -/** - * optional string format = 36; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 36, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 36, value); -}; - - -/** - * repeated string enum = 46; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getEnumList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 46)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setEnumList = function(value) { - return jspb.Message.setField(this, 46, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addEnum = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 46, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearEnumList = function() { - return this.setEnumList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Tag; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 3; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 3)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject = function(includeInstance, msg) { - var f, obj = { - securityMap: (f = msg.getSecurityMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter); - } -}; - - -/** - * map security = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.getSecurityMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.clearSecurityMap = function() { - this.getSecurityMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject = function(includeInstance, msg) { - var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_in: jspb.Message.getFieldWithDefault(msg, 4, 0), - flow: jspb.Message.getFieldWithDefault(msg, 5, 0), - authorizationUrl: jspb.Message.getFieldWithDefault(msg, 6, ""), - tokenUrl: jspb.Message.getFieldWithDefault(msg, 7, ""), - scopes: (f = msg.getScopes()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (reader.readEnum()); - msg.setIn(value); - break; - case 5: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (reader.readEnum()); - msg.setFlow(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthorizationUrl(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setTokenUrl(value); - break; - case 8: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader); - msg.setScopes(value); - break; - case 9: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIn(); - if (f !== 0.0) { - writer.writeEnum( - 4, - f - ); - } - f = message.getFlow(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } - f = message.getAuthorizationUrl(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getTokenUrl(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getScopes(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type = { - TYPE_INVALID: 0, - TYPE_BASIC: 1, - TYPE_API_KEY: 2, - TYPE_OAUTH2: 3 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In = { - IN_INVALID: 0, - IN_QUERY: 1, - IN_HEADER: 2 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow = { - FLOW_INVALID: 0, - FLOW_IMPLICIT: 1, - FLOW_PASSWORD: 2, - FLOW_APPLICATION: 3, - FLOW_ACCESS_CODE: 4 -}; - -/** - * optional Type type = 1; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getType = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional In in = 4; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getIn = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setIn = function(value) { - return jspb.Message.setProto3EnumField(this, 4, value); -}; - - -/** - * optional Flow flow = 5; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getFlow = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setFlow = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); -}; - - -/** - * optional string authorization_url = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getAuthorizationUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setAuthorizationUrl = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string token_url = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getTokenUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setTokenUrl = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional Scopes scopes = 8; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getScopes = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, 8)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setScopes = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearScopes = function() { - return this.setScopes(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.hasScopes = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * map extensions = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject = function(includeInstance, msg) { - var f, obj = { - securityRequirementMap: (f = msg.getSecurityRequirementMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityRequirementMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityRequirementMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject = function(includeInstance, msg) { - var f, obj = { - scopeList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addScope(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } -}; - - -/** - * repeated string scope = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.getScopeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.setScopeList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.addScope = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.clearScopeList = function() { - return this.setScopeList([]); -}; - - -/** - * map security_requirement = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.getSecurityRequirementMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.clearSecurityRequirementMap = function() { - this.getSecurityRequirementMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject = function(includeInstance, msg) { - var f, obj = { - scopeMap: (f = msg.getScopeMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getScopeMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map scope = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.getScopeMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.clearScopeMap = function() { - this.getScopeMap().clear(); - return this;}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme = { - UNKNOWN: 0, - HTTP: 1, - HTTPS: 2, - WS: 3, - WSS: 4 -}; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/apps/src/service/runner.ts b/mods/apps/src/service/runner.ts deleted file mode 100644 index 8a7fa76f6..000000000 --- a/mods/apps/src/service/runner.ts +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Tracer as T } from "@fonoster/common"; -T.init("apps-service"); - -import { AuthMiddleware } from "@fonoster/auth"; -import { runServices } from "@fonoster/common"; -import { getSalt } from "@fonoster/certs"; -import { AppsService } from "./protos/apps_grpc_pb"; -import AppsServer from "./apps"; - -const services = [ - { - name: "Apps", - version: "v1beta1", - service: AppsService, - server: new AppsServer() - } -]; - -const middleware = { - name: "Authentication", - middlewareObj: new AuthMiddleware(getSalt()).middleware -}; - -runServices(services, [middleware]); diff --git a/mods/apps/test/apps.unit.test.ts b/mods/apps/test/apps.unit.test.ts deleted file mode 100644 index 047aa0a89..000000000 --- a/mods/apps/test/apps.unit.test.ts +++ /dev/null @@ -1,326 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import Apps from "../src/client/apps"; -import { APIClient } from "@fonoster/common"; -import AppsPB from "../src/service/protos/apps_pb"; -import { Struct } from "google-protobuf/google/protobuf/struct_pb"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/apps/client", () => { - const transferConfig = new AppsPB.TransferConfig(); - transferConfig.setMessage("transfering"); - const appObj = new AppsPB.App(); - appObj.setRef("Nx05y-ldZa"); - appObj.setName("my app"); - appObj.setInitialDtmf("1234"); - appObj.setActivationIntentId("activate.bot"); - appObj.setActivationTimeout(3000); - appObj.setInteractionTimeout(4000); - appObj.setEnableEvents(false); - appObj.setTransferConfig(transferConfig); - appObj.setIntentsEngineConfig( - Struct.fromJavaScript({ - projectId: "my-project", - secretName: "my-secret" - }) as unknown as Struct - ); - appObj.setSpeechConfig( - Struct.fromJavaScript({ - voice: "en-US-Wavenet-F", - secretName: "my-secret" - }) as unknown as Struct - ); - appObj.setCreateTime("..."); - appObj.setUpdateTime("..."); - - afterEach(() => sandbox.restore()); - - it("should create an app", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - createApp: () => { - return { - sendMessage: () => Promise.resolve(appObj) - }; - } - }); - - const req = { - name: appObj.getName(), - speechConfig: { - languageCode: "", - voice: "my-project", - secretName: "my-secret" - }, - intentsEngineConfig: { - projectId: "my-project", - secretName: "my-secret" - } - }; - - const appsAPI = new Apps(); - const result = await appsAPI.createApp(req); - - expect(result).to.have.property("ref").to.be.equal(appObj.getRef()); - expect(result).to.have.property("name").to.be.equal(appObj.getName()); - expect(result) - .to.have.property("initialDtmf") - .to.be.equal(appObj.getInitialDtmf()); - expect(result) - .to.have.property("activationIntentId") - .to.be.equal(appObj.getActivationIntentId()); - expect(result) - .to.have.property("activationTimeout") - .to.be.equal(appObj.getActivationTimeout()); - expect(result) - .to.have.property("interactionTimeout") - .to.be.equal(appObj.getInteractionTimeout()); - expect(result) - .to.have.property("enableEvents") - .to.be.equal(appObj.getEnableEvents()); - expect(result) - .to.have.property("intentsEngineConfig") - .to.be.deep.equal(appObj.getIntentsEngineConfig().toJavaScript()); - expect(result) - .to.have.property("speechConfig") - .to.be.deep.equal(appObj.getSpeechConfig().toJavaScript()); - expect(result) - .to.have.property("transferConfig") - .to.have.property("message") - .to.be.equal(appObj.getTransferConfig().getMessage()); - expect(result) - .to.have.property("transferConfig") - .to.have.property("messageBusy") - .to.be.equal(appObj.getTransferConfig().getMediaBusy()); - expect(result) - .to.have.property("transferConfig") - .to.have.property("messageNoAnswer") - .to.be.equal(appObj.getTransferConfig().getMessageNoAnswer()); - expect(result).to.have.property("createTime").not.to.be.null; - expect(result).to.have.property("updateTime").not.to.be.null; - expect(serviceStub).to.have.been.calledTwice; - }); - - it("should get an app", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - getApp: () => { - return { - sendMessage: () => Promise.resolve(appObj) - }; - } - }); - - const request = "Nx05y-ldZa"; - - const appsAPI = new Apps(); - const result = await appsAPI.getApp(request); - - expect(result).to.have.property("ref").to.be.equal(appObj.getRef()); - expect(result).to.have.property("name").to.be.equal(appObj.getName()); - expect(result) - .to.have.property("initialDtmf") - .to.be.equal(appObj.getInitialDtmf()); - expect(result) - .to.have.property("activationIntentId") - .to.be.equal(appObj.getActivationIntentId()); - expect(result) - .to.have.property("activationTimeout") - .to.be.equal(appObj.getActivationTimeout()); - expect(result) - .to.have.property("interactionTimeout") - .to.be.equal(appObj.getInteractionTimeout()); - expect(result) - .to.have.property("enableEvents") - .to.be.equal(appObj.getEnableEvents()); - expect(result) - .to.have.property("intentsEngineConfig") - .to.be.deep.equal(appObj.getIntentsEngineConfig().toJavaScript()); - expect(result) - .to.have.property("speechConfig") - .to.be.deep.equal(appObj.getSpeechConfig().toJavaScript()); - expect(result) - .to.have.property("transferConfig") - .to.have.property("message") - .to.be.equal(appObj.getTransferConfig().getMessage()); - expect(result) - .to.have.property("transferConfig") - .to.have.property("messageBusy") - .to.be.equal(appObj.getTransferConfig().getMediaBusy()); - expect(result) - .to.have.property("transferConfig") - .to.have.property("messageNoAnswer") - .to.be.equal(appObj.getTransferConfig().getMessageNoAnswer()); - expect(result).to.have.property("createTime").not.to.be.null; - expect(result).to.have.property("updateTime").not.to.be.null; - expect(serviceStub).to.have.been.calledTwice; - }); - - it("should delete an app", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - deleteApp: () => { - return { - sendMessage: () => Promise.resolve({ ref: "Nx05y-ldZa" }) - }; - } - }); - - const domainsAPI = new Apps(); - const res = await domainsAPI.deleteApp(appObj.getRef()); - - expect(serviceStub).to.have.been.calledTwice; - expect(res).to.have.property("ref").to.be.equal(appObj.getRef()); - }); - - it("should list domains", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - listApps: () => { - return { - sendMessage: () => - Promise.resolve({ - getNextPageToken: () => "1", - getAppsList: () => [appObj] - }) - }; - } - }); - - const request = { - pageSize: 0, - pageToken: "1", - view: 0 - }; - - const appsAPI = new Apps(); - const result = await appsAPI.listApps(request); - - expect(serviceStub).to.be.calledTwice; - expect(result.apps[0]).to.have.property("ref").to.be.equal(appObj.getRef()); - expect(result.apps[0]) - .to.have.property("name") - .to.be.equal(appObj.getName()); - expect(result.apps[0]).to.have.property("ref").to.be.equal(appObj.getRef()); - expect(result.apps[0]) - .to.have.property("name") - .to.be.equal(appObj.getName()); - expect(result.apps[0]) - .to.have.property("initialDtmf") - .to.be.equal(appObj.getInitialDtmf()); - expect(result.apps[0]) - .to.have.property("activationIntentId") - .to.be.equal(appObj.getActivationIntentId()); - expect(result.apps[0]) - .to.have.property("activationTimeout") - .to.be.equal(appObj.getActivationTimeout()); - expect(result.apps[0]) - .to.have.property("interactionTimeout") - .to.be.equal(appObj.getInteractionTimeout()); - expect(result.apps[0]) - .to.have.property("enableEvents") - .to.be.equal(appObj.getEnableEvents()); - expect(result.apps[0]) - .to.have.property("intentsEngineConfig") - .to.be.deep.equal(appObj.getIntentsEngineConfig().toJavaScript()); - expect(result.apps[0]) - .to.have.property("speechConfig") - .to.be.deep.equal(appObj.getSpeechConfig().toJavaScript()); - expect(result.apps[0]) - .to.have.property("transferConfig") - .to.have.property("message") - .to.be.equal(appObj.getTransferConfig().getMessage()); - expect(result.apps[0]) - .to.have.property("transferConfig") - .to.have.property("messageBusy") - .to.be.equal(appObj.getTransferConfig().getMediaBusy()); - expect(result.apps[0]) - .to.have.property("transferConfig") - .to.have.property("messageNoAnswer") - .to.be.equal(appObj.getTransferConfig().getMessageNoAnswer()); - expect(result.apps[0]).to.have.property("createTime").not.to.be.null; - expect(result.apps[0]).to.have.property("updateTime").not.to.be.null; - }); - - it("should update the app", async () => { - const request = { - ref: appObj.getRef(), - name: appObj.getName(), - initialDtmf: "1234", - transferConfig: { - message: appObj.getTransferConfig().getMessage(), - messageBusy: appObj.getTransferConfig().getMessageBusy(), - messageNoAnswer: appObj.getTransferConfig().getMessageNoAnswer() - }, - intentsEngineConfig: appObj - .getIntentsEngineConfig() - // eslint-disable-next-line @typescript-eslint/no-explicit-any - .toJavaScript() as any, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - speechConfig: appObj.getSpeechConfig().toJavaScript() as any - }; - - sandbox.stub(APIClient.prototype, "init").returns(); - const updateDomainStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - updateApp: () => { - return { - sendMessage: (a) => { - const t1 = a.getTransferConfig(); - const t2 = request.transferConfig; - expect(t1.getMessage()).to.equal(t2.message); - expect(t1.getMessageBusy()).to.equal(t2.messageBusy); - expect(t1.getMessageNoAnswer()).to.be.equal(t2.messageNoAnswer); - expect(a.getSpeechConfig().toJavaScript()).to.be.deep.equal( - appObj.getSpeechConfig().toJavaScript() - ); - expect( - a.getIntentsEngineConfig().toJavaScript() - ).to.be.deep.equal( - appObj.getIntentsEngineConfig().toJavaScript() - ); - return Promise.resolve({ getRef: () => appObj.getRef() }); - } - }; - } - }); - - const appsAPI = new Apps(); - const result = await appsAPI.updateApp(request); - expect(result).to.have.property("ref").to.be.equal(appObj.getRef()); - expect(updateDomainStub).to.be.calledTwice; - }); -}); diff --git a/mods/apps/tsconfig.json b/mods/apps/tsconfig.json deleted file mode 100644 index eec2fce4f..000000000 --- a/mods/apps/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../core" }, - { "path": "../auth" }, - { "path": "../common" }, - { "path": "../logger" }, - { "path": "../errors" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/auth/.npmignore b/mods/auth/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/auth/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/auth/Dockerfile b/mods/auth/Dockerfile deleted file mode 100644 index 7a83f0bea..000000000 --- a/mods/auth/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs \ - && npm install -g fonoster-*.tgz \ - && apk del npm git - -USER fonoster - -CMD ["run_auth"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_auth" ] \ No newline at end of file diff --git a/mods/auth/package-lock.json b/mods/auth/package-lock.json deleted file mode 100644 index 7bfaa2204..000000000 --- a/mods/auth/package-lock.json +++ /dev/null @@ -1,1713 +0,0 @@ -{ - "name": "@fonoster/auth", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/auth", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - }, - "devDependencies": { - "minipass": "3.3.4" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.3.18", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", - "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "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/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" - }, - "engines": { - "node": ">= 0.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": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "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/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/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/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "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/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "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/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "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/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "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-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.19.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.2", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.7", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "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/google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.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/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "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/jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "node_modules/jsonwebtoken/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/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/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/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/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/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "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/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "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/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/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/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" - } - } - }, - "dependencies": { - "@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - } - }, - "@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/jsonwebtoken": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", - "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "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" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" - } - }, - "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": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "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" - } - }, - "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==" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "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" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "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==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.19.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.2", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.7", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "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==" - }, - "google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "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==" - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "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" - } - }, - "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" - } - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", - "requires": { - "bytes": "3.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "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" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "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==" - } - } -} diff --git a/mods/auth/package.json b/mods/auth/package.json deleted file mode 100644 index 66c23284b..000000000 --- a/mods/auth/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "@fonoster/auth", - "version": "0.3.22", - "description": "Authentication Module", - "author": "Raul Sanchez ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/index", - "types": "dist/index", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json", - "postbuild": "cp -a ./src/service/protos/ ./dist/service/protos", - "start": "cross-env NODE_ENV=dev nodemon src/service/runner" - }, - "bin": { - "run_auth": "dist/service/runner.js", - "healthcheck_auth": "dist/service/healthcheck.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/errors": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/auth/src/auth_middleware.ts b/mods/auth/src/auth_middleware.ts deleted file mode 100644 index 4c2f4d722..000000000 --- a/mods/auth/src/auth_middleware.ts +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { status } from "@grpc/grpc-js"; -import Auth from "./utils/auth_utils"; -import JWT from "./utils/jwt"; -import roleHasAccess from "./utils/role_has_access"; -import logger from "@fonoster/logger"; - -const WHITELIST = process.env.AUTH_ACCESS_WHITELIST - ? process.env.AUTH_ACCESS_WHITELIST.split(",") - : []; - -export default class AuthMiddleware { - privateKey: string; - whitelist: string[]; - - constructor(privateKey: string, whitelist = []) { - this.privateKey = privateKey; - this.whitelist = whitelist || WHITELIST; - } - - middleware = async (ctx: any, next: any, errorCb: any) => { - const pathRequest = ctx.service.path; - - logger.verbose( - `@fonoster/middleware receiving request [request.path = ${pathRequest}]` - ); - - if (this.whitelist.includes(pathRequest)) { - next(); - return; - } - - const jwtHandler = new Auth(new JWT()); - - try { - if ( - !ctx.call.metadata.get("access_key_id").toString() || - !ctx.call.metadata.get("access_key_secret").toString() - ) { - errorCb({ - code: status.UNAUTHENTICATED, - message: "UNAUTHENTICATED" - }); - return; - } - - const accessKeyId = ctx.call.metadata.get("access_key_id").toString(); - const accessKeySecret = ctx.call.metadata - .get("access_key_secret") - .toString(); - - jwtHandler - .validateToken({ accessToken: accessKeySecret }, this.privateKey) - .then(async (result) => { - if (result.isValid) { - if (result.data.accessKeyId != accessKeyId) - errorCb({ - code: status.UNAUTHENTICATED, - // TODO: Improve error message - message: "invalid authentication" - }); - - const hasAccess = await roleHasAccess( - result.data.role, - pathRequest - ); - - if (hasAccess) { - await next(); - } else { - errorCb({ - code: status.PERMISSION_DENIED, - // TODO: Improve error message - message: "permission denied" - }); - } - } else { - errorCb({ - code: status.UNAUTHENTICATED, - // TODO: Improve error message - message: "invalid authentication" - }); - } - }); - } catch (e) { - errorCb({ - code: status.INTERNAL, - message: e - }); - } - }; -} diff --git a/mods/auth/src/client/auth.ts b/mods/auth/src/client/auth.ts deleted file mode 100644 index 60ed949c3..000000000 --- a/mods/auth/src/client/auth.ts +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { APIClient, ClientOptions } from "@fonoster/common"; -import { AuthClient } from "../service/protos/auth_grpc_pb"; -import AuthPB from "../service/protos/auth_pb"; -import { promisifyAll } from "grpc-promise"; -import { - CreateTokenRequest, - CreateTokenResponse, - IAuthClient, - ValidateTokenRequest -} from "./types"; - -/** - * @classdesc Use Fonoster Auth, a capability of Fonoster, - * to validate and create short life tokens. - * - * @extends APIClient - * @example - * - * const request = { - * accessKeyId: "US618572e3ec11d10600000001", - * roleName: "USER" - * }; - * - * auth.createToken(request) - * .then(console.log) // returns an object with the token - * .catch(console.error); // an error occurred - */ -export default class Auths extends APIClient implements IAuthClient { - /** - * Constructs a new Auth object. - * @param {ClientOptions} options - Options to indicate the objects endpoint - * @see module:core:APIClient - */ - constructor(options?: ClientOptions) { - super(AuthClient, options); - super.init(); - promisifyAll(super.getService(), { metadata: super.getMeta() }); - } - - /** - * Creates a short-life token. The client must have role allowed to create - * tokens. - * - * @param {CreateTokenRequest} request - Request to create a new token - * @param {string} request.accessKeyId - Path to the function - * @param {string} request.expiration - Longevity of the token - * @param {string} request.roleName - Role assigned to the token - * @return {Promise} - * @example - * - * const Fonoster = require("@fonoster/sdk"); - * const auth = new Fonoster.Auth(); - * - * const request = { - * accessKeyId: "PJ618572e3ec11d10600000001", - * roleName: "SERVICE", - * expiration: "10m" - * }; - * - * auth.createToken(request) - * .then(console.log) // returns an object with the token - * .catch(console.error); // an error occurred - */ - async createToken(request: CreateTokenRequest): Promise { - const req = new AuthPB.CreateTokenRequest(); - - req.setAccessKeyId(request.accessKeyId); - req.setRoleName(request.roleName); - req.setExpiration(request.expiration); - const res = await super.getService().createToken().sendMessage(req); - return { - token: res.getToken() - }; - } - - /** - * Creates a short-life token meant only to serve as a signature. This token will - * only be useful to sign a request. - * - * @param {CreateTokenRequest} request - Request to create a new signature token - * @param {string} request.accessKeyId - Path to the function - * @return {Promise} - * @example - * - * const Fonoster = require("@fonoster/sdk"); - * const auth = new Fonoster.Auth(); - * - * const request = { - * accessKeyId: "PJ619154d081467a0700000001", - * }; - * - * auth.createNoAccessToken(request) - * .then(console.log) // returns an object with the token - * .catch(console.error); // an error occurred - */ - async createNoAccessToken( - request: CreateTokenRequest - ): Promise { - const req = new AuthPB.CreateTokenRequest(); - req.setAccessKeyId(request.accessKeyId); - const res = await super.getService().createNoAccessToken().sendMessage(req); - return { - token: res.getToken() - }; - } - - /** - * Checks if a give token was issue by the system. - * - * @param {CreateTokValidateTokenRequestenRequest} request - Request to verify the validity of a token - * @param {string} request.token - Path to the function. - * @return {Promise} - * @example - * - * const Fonoster = require("@fonoster/sdk"); - * const auth = new Fonoster.Auth(); - * - * const request = { - * token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", - * }; - * - * auth.validateToken(request) - * .then(console.log) // returns `true` or `false` - * .catch(console.error); // an error occurred - */ - async validateToken(request: ValidateTokenRequest): Promise { - const req = new AuthPB.ValidateTokenRequest(); - req.setToken(request.token); - const res = await super.getService().validateToken().sendMessage(req); - return res.getValid(); - } -} - -export { AuthPB, IAuthClient }; - -// WARNING: Workaround for support to commonjs clients -module.exports = Auths; -module.exports.AuthPB = AuthPB; diff --git a/mods/auth/src/client/types.ts b/mods/auth/src/client/types.ts deleted file mode 100644 index 1514aa526..000000000 --- a/mods/auth/src/client/types.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface IAuthClient { - createToken(request: CreateTokenRequest): Promise; - createNoAccessToken( - request: CreateTokenRequest - ): Promise; - validateToken(request: ValidateTokenRequest): Promise; -} - -export interface CreateTokenRequest { - accessKeyId: string; - roleName?: string; - // Examples: 40s, 10m, 1d, 30d, 1y - expiration?: string; -} - -export interface CreateTokenResponse { - token: string; -} - -export interface ValidateTokenRequest { - token: string; -} diff --git a/mods/auth/src/index.ts b/mods/auth/src/index.ts deleted file mode 100644 index 5e43191c1..000000000 --- a/mods/auth/src/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Jwt from "./utils/jwt"; -import AuthMiddleware from "./auth_middleware"; -import Auth from "./client/auth"; -import AuthUtils from "./utils/auth_utils"; -import limiterMiddleware from "./limiter_middleware"; - -export { AuthMiddleware, limiterMiddleware, Jwt, AuthUtils, Auth as default }; diff --git a/mods/auth/src/limiter_middleware.ts b/mods/auth/src/limiter_middleware.ts deleted file mode 100644 index 2f2ab5856..000000000 --- a/mods/auth/src/limiter_middleware.ts +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Metadata } from "@grpc/grpc-js"; -import AuthPB from "./service/protos/auth_pb"; -import { LimiterClient } from "./service/protos/auth_grpc_pb"; -import { getClientCredentials } from "@fonoster/common"; - -interface Context { - service: { - path: string; - }; - call: { - metadata: Metadata; - }; -} - -const svc = new LimiterClient( - process.env.APISERVER_ENDPOINT || "localhost:50052", - getClientCredentials() -); - -export async function checkAuthorized( - path: string, - metadata: Metadata -): Promise { - return new Promise((resolve, reject) => { - const req = new AuthPB.CheckAuthorizedRequest(); - req.setPath(path); - svc.checkAuthorized( - req, - metadata, - (e: any, res: AuthPB.CheckAuthorizedResponse) => { - if (e) return reject(e); - resolve(res.getAuthorized()); - } - ); - }); -} - -export default async function limiterMiddleware( - ctx: Context, - next: () => void, - errorCb: (e: Error) => void -) { - try { - if (await checkAuthorized(ctx.service.path, ctx.call.metadata)) { - next(); - } - } catch (e) { - errorCb(e); - } -} diff --git a/mods/auth/src/protos/auth.proto b/mods/auth/src/protos/auth.proto deleted file mode 100644 index bacb6d36a..000000000 --- a/mods/auth/src/protos/auth.proto +++ /dev/null @@ -1,81 +0,0 @@ -/** - * MIT License - * Copyright (c) 2021 Fonoster Inc - * - * The Auth proto contains procedures to obtain authentication - * data. - */ -syntax = "proto3"; - -package fonoster.auth.v1beta1; - -option go_package = "github.com/fonoster/fonoster/mods/auth/fonoster/services/protos/auth"; - -import "protoc-gen-openapiv2/options/annotations.proto"; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; - -service Auth { - // Gets a role by name - rpc GetRole (GetRoleRequest) returns (Role) { - option (google.api.http) = { get: "/v1beta1/auth/role/{name}" }; - }; - // Verifies if a token was issue by Fonoster - rpc ValidateToken (ValidateTokenRequest) returns (ValidateTokenResponse) { - option (google.api.http) = { get: "/v1beta1/auth/token/{token}" }; - } - // Creates a new token for a given accessKeyId - rpc CreateToken (CreateTokenRequest) returns (CreateTokenResponse) { - option (google.api.http) = { - post: "/v1beta1/auth/token" - body: "*" - }; - } - // Creates a special token that has no access but serves a signature - rpc CreateNoAccessToken (CreateTokenRequest) returns (CreateTokenResponse) {} -} - -service Limiter { - rpc CheckAuthorized (CheckAuthorizedRequest) returns (CheckAuthorizedResponse) { }; -} - -message CheckAuthorizedRequest { - // The path of the resource to check. - string path = 1; -} - -message CheckAuthorizedResponse { - // Whether the user is authorized to access the resource. - bool authorized = 1; -} - -message GetRoleRequest { - string name = 1; -} - -message Role { - string name = 1; - string description = 2; - repeated string access = 3; -} - -message ValidateTokenRequest { - string token = 1; -} - -message ValidateTokenResponse { - bool valid = 1; -} - -message CreateTokenRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"roleName\": \"USER\", \"accessKeyId\": \"US618572e3ec11d10600000001\"}" - }; - string role_name = 1 [(google.api.field_behavior) = REQUIRED]; - string access_key_id = 2 [(google.api.field_behavior) = REQUIRED]; - string expiration = 3; -} - -message CreateTokenResponse { - string token = 1; -} \ No newline at end of file diff --git a/mods/auth/src/service/auth.ts b/mods/auth/src/service/auth.ts deleted file mode 100644 index 1f94b156a..000000000 --- a/mods/auth/src/service/auth.ts +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import grpc from "@grpc/grpc-js"; -import { - GetRoleRequest, - Role, - ValidateTokenRequest, - ValidateTokenResponse, - CreateTokenRequest, - CreateTokenResponse -} from "./protos/auth_pb"; -import { IAuthServer, IAuthService, AuthService } from "./protos/auth_grpc_pb"; -import { ErrorCodes, FonosterError } from "@fonoster/errors"; -import { getSalt, AUTH_ISS } from "@fonoster/certs"; -import logger from "@fonoster/logger"; -import Auth from "../utils/auth_utils"; -import JWT from "../utils/jwt"; - -const authenticator = new Auth(new JWT()); -const rbac = require(process.env.AUTH_RBAC || "/home/fonoster/rbac.json"); - -class AuthServer implements IAuthServer { - [name: string]: grpc.UntypedHandleCall; - async validateToken( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - const result = await authenticator.validateToken( - { accessToken: call.request.getToken() }, - getSalt() - ); - const validateTokenResponse = new ValidateTokenResponse(); - validateTokenResponse.setValid(result.isValid); - callback(null, validateTokenResponse); - } - - async createToken( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - // TODO: We need to validate the token and verify - // it has permissions to create token since the auth module - // doesnt pass thru the auth middleware. - logger.verbose( - `@fonoster/auth creating token [accessKeyId is ${call.request.getAccessKeyId()}]` - ); - const result = await authenticator.createToken( - call.request.getAccessKeyId(), - AUTH_ISS, - call.request.getRoleName(), - getSalt(), - call.request.getExpiration() || "30d" - ); - const response = new CreateTokenResponse(); - response.setToken(result.accessToken); - callback(null, response); - } - - async createNoAccessToken( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - // TODO: We need to validate the token and verify - // it has permissions to create token since the auth module - // doesnt pass thru the auth middleware. - logger.verbose( - `@fonoster/auth creating no access token [accessKeyId is ${call.request.getAccessKeyId()}]` - ); - const result = await authenticator.createToken( - call.request.getAccessKeyId(), - AUTH_ISS, - "NO_ACCESS", - getSalt(), - "1d" - ); - const response = new CreateTokenResponse(); - response.setToken(result.accessToken); - callback(null, response); - } - - async getRole( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const rawRole = rbac.filter((r) => r.name === call.request.getName())[0]; - if (rawRole) { - const role = new Role(); - role.setAccessList(rawRole.access); - role.setName(rawRole.name); - role.setDescription(rawRole.description); - callback(null, role); - return; - } - - callback(new FonosterError("Role not found", ErrorCodes.NOT_FOUND), null); - } catch (e) { - callback(new FonosterError(e, ErrorCodes.UNKNOWN), null); - } - } -} - -export { AuthServer as default, IAuthService, AuthService }; diff --git a/mods/auth/src/service/healthcheck.ts b/mods/auth/src/service/healthcheck.ts deleted file mode 100644 index a8988fbb7..000000000 --- a/mods/auth/src/service/healthcheck.ts +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonos - * - * This file is part of Project Fonos - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -healthcheck(); diff --git a/mods/auth/src/service/protos/auth_grpc_pb.d.ts b/mods/auth/src/service/protos/auth_grpc_pb.d.ts deleted file mode 100644 index b892e86a3..000000000 --- a/mods/auth/src/service/protos/auth_grpc_pb.d.ts +++ /dev/null @@ -1,128 +0,0 @@ -// package: fonoster.auth.v1beta1 -// file: auth.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import {handleClientStreamingCall} from "@grpc/grpc-js/build/src/server-call"; -import * as auth_pb from "./auth_pb"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; - -interface IAuthService extends grpc.ServiceDefinition { - getRole: IAuthService_IGetRole; - validateToken: IAuthService_IValidateToken; - createToken: IAuthService_ICreateToken; - createNoAccessToken: IAuthService_ICreateNoAccessToken; -} - -interface IAuthService_IGetRole extends grpc.MethodDefinition { - path: "/fonoster.auth.v1beta1.Auth/GetRole"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IAuthService_IValidateToken extends grpc.MethodDefinition { - path: "/fonoster.auth.v1beta1.Auth/ValidateToken"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IAuthService_ICreateToken extends grpc.MethodDefinition { - path: "/fonoster.auth.v1beta1.Auth/CreateToken"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IAuthService_ICreateNoAccessToken extends grpc.MethodDefinition { - path: "/fonoster.auth.v1beta1.Auth/CreateNoAccessToken"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const AuthService: IAuthService; - -export interface IAuthServer extends grpc.UntypedServiceImplementation { - getRole: grpc.handleUnaryCall; - validateToken: grpc.handleUnaryCall; - createToken: grpc.handleUnaryCall; - createNoAccessToken: grpc.handleUnaryCall; -} - -export interface IAuthClient { - getRole(request: auth_pb.GetRoleRequest, callback: (error: grpc.ServiceError | null, response: auth_pb.Role) => void): grpc.ClientUnaryCall; - getRole(request: auth_pb.GetRoleRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: auth_pb.Role) => void): grpc.ClientUnaryCall; - getRole(request: auth_pb.GetRoleRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: auth_pb.Role) => void): grpc.ClientUnaryCall; - validateToken(request: auth_pb.ValidateTokenRequest, callback: (error: grpc.ServiceError | null, response: auth_pb.ValidateTokenResponse) => void): grpc.ClientUnaryCall; - validateToken(request: auth_pb.ValidateTokenRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: auth_pb.ValidateTokenResponse) => void): grpc.ClientUnaryCall; - validateToken(request: auth_pb.ValidateTokenRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: auth_pb.ValidateTokenResponse) => void): grpc.ClientUnaryCall; - createToken(request: auth_pb.CreateTokenRequest, callback: (error: grpc.ServiceError | null, response: auth_pb.CreateTokenResponse) => void): grpc.ClientUnaryCall; - createToken(request: auth_pb.CreateTokenRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: auth_pb.CreateTokenResponse) => void): grpc.ClientUnaryCall; - createToken(request: auth_pb.CreateTokenRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: auth_pb.CreateTokenResponse) => void): grpc.ClientUnaryCall; - createNoAccessToken(request: auth_pb.CreateTokenRequest, callback: (error: grpc.ServiceError | null, response: auth_pb.CreateTokenResponse) => void): grpc.ClientUnaryCall; - createNoAccessToken(request: auth_pb.CreateTokenRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: auth_pb.CreateTokenResponse) => void): grpc.ClientUnaryCall; - createNoAccessToken(request: auth_pb.CreateTokenRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: auth_pb.CreateTokenResponse) => void): grpc.ClientUnaryCall; -} - -export class AuthClient extends grpc.Client implements IAuthClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public getRole(request: auth_pb.GetRoleRequest, callback: (error: grpc.ServiceError | null, response: auth_pb.Role) => void): grpc.ClientUnaryCall; - public getRole(request: auth_pb.GetRoleRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: auth_pb.Role) => void): grpc.ClientUnaryCall; - public getRole(request: auth_pb.GetRoleRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: auth_pb.Role) => void): grpc.ClientUnaryCall; - public validateToken(request: auth_pb.ValidateTokenRequest, callback: (error: grpc.ServiceError | null, response: auth_pb.ValidateTokenResponse) => void): grpc.ClientUnaryCall; - public validateToken(request: auth_pb.ValidateTokenRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: auth_pb.ValidateTokenResponse) => void): grpc.ClientUnaryCall; - public validateToken(request: auth_pb.ValidateTokenRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: auth_pb.ValidateTokenResponse) => void): grpc.ClientUnaryCall; - public createToken(request: auth_pb.CreateTokenRequest, callback: (error: grpc.ServiceError | null, response: auth_pb.CreateTokenResponse) => void): grpc.ClientUnaryCall; - public createToken(request: auth_pb.CreateTokenRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: auth_pb.CreateTokenResponse) => void): grpc.ClientUnaryCall; - public createToken(request: auth_pb.CreateTokenRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: auth_pb.CreateTokenResponse) => void): grpc.ClientUnaryCall; - public createNoAccessToken(request: auth_pb.CreateTokenRequest, callback: (error: grpc.ServiceError | null, response: auth_pb.CreateTokenResponse) => void): grpc.ClientUnaryCall; - public createNoAccessToken(request: auth_pb.CreateTokenRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: auth_pb.CreateTokenResponse) => void): grpc.ClientUnaryCall; - public createNoAccessToken(request: auth_pb.CreateTokenRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: auth_pb.CreateTokenResponse) => void): grpc.ClientUnaryCall; -} - -interface ILimiterService extends grpc.ServiceDefinition { - checkAuthorized: ILimiterService_ICheckAuthorized; -} - -interface ILimiterService_ICheckAuthorized extends grpc.MethodDefinition { - path: "/fonoster.auth.v1beta1.Limiter/CheckAuthorized"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const LimiterService: ILimiterService; - -export interface ILimiterServer extends grpc.UntypedServiceImplementation { - checkAuthorized: grpc.handleUnaryCall; -} - -export interface ILimiterClient { - checkAuthorized(request: auth_pb.CheckAuthorizedRequest, callback: (error: grpc.ServiceError | null, response: auth_pb.CheckAuthorizedResponse) => void): grpc.ClientUnaryCall; - checkAuthorized(request: auth_pb.CheckAuthorizedRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: auth_pb.CheckAuthorizedResponse) => void): grpc.ClientUnaryCall; - checkAuthorized(request: auth_pb.CheckAuthorizedRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: auth_pb.CheckAuthorizedResponse) => void): grpc.ClientUnaryCall; -} - -export class LimiterClient extends grpc.Client implements ILimiterClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public checkAuthorized(request: auth_pb.CheckAuthorizedRequest, callback: (error: grpc.ServiceError | null, response: auth_pb.CheckAuthorizedResponse) => void): grpc.ClientUnaryCall; - public checkAuthorized(request: auth_pb.CheckAuthorizedRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: auth_pb.CheckAuthorizedResponse) => void): grpc.ClientUnaryCall; - public checkAuthorized(request: auth_pb.CheckAuthorizedRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: auth_pb.CheckAuthorizedResponse) => void): grpc.ClientUnaryCall; -} diff --git a/mods/auth/src/service/protos/auth_grpc_pb.js b/mods/auth/src/service/protos/auth_grpc_pb.js deleted file mode 100644 index 281055b5b..000000000 --- a/mods/auth/src/service/protos/auth_grpc_pb.js +++ /dev/null @@ -1,172 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// * -// MIT License -// Copyright (c) 2021 Fonoster Inc -// -// The Auth proto contains procedures to obtain authentication -// data. -'use strict'; -var grpc = require('@grpc/grpc-js'); -var auth_pb = require('./auth_pb.js'); -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); - -function serialize_fonoster_auth_v1beta1_CheckAuthorizedRequest(arg) { - if (!(arg instanceof auth_pb.CheckAuthorizedRequest)) { - throw new Error('Expected argument of type fonoster.auth.v1beta1.CheckAuthorizedRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_auth_v1beta1_CheckAuthorizedRequest(buffer_arg) { - return auth_pb.CheckAuthorizedRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_auth_v1beta1_CheckAuthorizedResponse(arg) { - if (!(arg instanceof auth_pb.CheckAuthorizedResponse)) { - throw new Error('Expected argument of type fonoster.auth.v1beta1.CheckAuthorizedResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_auth_v1beta1_CheckAuthorizedResponse(buffer_arg) { - return auth_pb.CheckAuthorizedResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_auth_v1beta1_CreateTokenRequest(arg) { - if (!(arg instanceof auth_pb.CreateTokenRequest)) { - throw new Error('Expected argument of type fonoster.auth.v1beta1.CreateTokenRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_auth_v1beta1_CreateTokenRequest(buffer_arg) { - return auth_pb.CreateTokenRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_auth_v1beta1_CreateTokenResponse(arg) { - if (!(arg instanceof auth_pb.CreateTokenResponse)) { - throw new Error('Expected argument of type fonoster.auth.v1beta1.CreateTokenResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_auth_v1beta1_CreateTokenResponse(buffer_arg) { - return auth_pb.CreateTokenResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_auth_v1beta1_GetRoleRequest(arg) { - if (!(arg instanceof auth_pb.GetRoleRequest)) { - throw new Error('Expected argument of type fonoster.auth.v1beta1.GetRoleRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_auth_v1beta1_GetRoleRequest(buffer_arg) { - return auth_pb.GetRoleRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_auth_v1beta1_Role(arg) { - if (!(arg instanceof auth_pb.Role)) { - throw new Error('Expected argument of type fonoster.auth.v1beta1.Role'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_auth_v1beta1_Role(buffer_arg) { - return auth_pb.Role.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_auth_v1beta1_ValidateTokenRequest(arg) { - if (!(arg instanceof auth_pb.ValidateTokenRequest)) { - throw new Error('Expected argument of type fonoster.auth.v1beta1.ValidateTokenRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_auth_v1beta1_ValidateTokenRequest(buffer_arg) { - return auth_pb.ValidateTokenRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_auth_v1beta1_ValidateTokenResponse(arg) { - if (!(arg instanceof auth_pb.ValidateTokenResponse)) { - throw new Error('Expected argument of type fonoster.auth.v1beta1.ValidateTokenResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_auth_v1beta1_ValidateTokenResponse(buffer_arg) { - return auth_pb.ValidateTokenResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var AuthService = exports.AuthService = { - // Gets a role by name -getRole: { - path: '/fonoster.auth.v1beta1.Auth/GetRole', - requestStream: false, - responseStream: false, - requestType: auth_pb.GetRoleRequest, - responseType: auth_pb.Role, - requestSerialize: serialize_fonoster_auth_v1beta1_GetRoleRequest, - requestDeserialize: deserialize_fonoster_auth_v1beta1_GetRoleRequest, - responseSerialize: serialize_fonoster_auth_v1beta1_Role, - responseDeserialize: deserialize_fonoster_auth_v1beta1_Role, - }, - // Verifies if a token was issue by Fonoster -validateToken: { - path: '/fonoster.auth.v1beta1.Auth/ValidateToken', - requestStream: false, - responseStream: false, - requestType: auth_pb.ValidateTokenRequest, - responseType: auth_pb.ValidateTokenResponse, - requestSerialize: serialize_fonoster_auth_v1beta1_ValidateTokenRequest, - requestDeserialize: deserialize_fonoster_auth_v1beta1_ValidateTokenRequest, - responseSerialize: serialize_fonoster_auth_v1beta1_ValidateTokenResponse, - responseDeserialize: deserialize_fonoster_auth_v1beta1_ValidateTokenResponse, - }, - // Creates a new token for a given accessKeyId -createToken: { - path: '/fonoster.auth.v1beta1.Auth/CreateToken', - requestStream: false, - responseStream: false, - requestType: auth_pb.CreateTokenRequest, - responseType: auth_pb.CreateTokenResponse, - requestSerialize: serialize_fonoster_auth_v1beta1_CreateTokenRequest, - requestDeserialize: deserialize_fonoster_auth_v1beta1_CreateTokenRequest, - responseSerialize: serialize_fonoster_auth_v1beta1_CreateTokenResponse, - responseDeserialize: deserialize_fonoster_auth_v1beta1_CreateTokenResponse, - }, - // Creates a special token that has no access but serves a signature -createNoAccessToken: { - path: '/fonoster.auth.v1beta1.Auth/CreateNoAccessToken', - requestStream: false, - responseStream: false, - requestType: auth_pb.CreateTokenRequest, - responseType: auth_pb.CreateTokenResponse, - requestSerialize: serialize_fonoster_auth_v1beta1_CreateTokenRequest, - requestDeserialize: deserialize_fonoster_auth_v1beta1_CreateTokenRequest, - responseSerialize: serialize_fonoster_auth_v1beta1_CreateTokenResponse, - responseDeserialize: deserialize_fonoster_auth_v1beta1_CreateTokenResponse, - }, -}; - -exports.AuthClient = grpc.makeGenericClientConstructor(AuthService); -var LimiterService = exports.LimiterService = { - checkAuthorized: { - path: '/fonoster.auth.v1beta1.Limiter/CheckAuthorized', - requestStream: false, - responseStream: false, - requestType: auth_pb.CheckAuthorizedRequest, - responseType: auth_pb.CheckAuthorizedResponse, - requestSerialize: serialize_fonoster_auth_v1beta1_CheckAuthorizedRequest, - requestDeserialize: deserialize_fonoster_auth_v1beta1_CheckAuthorizedRequest, - responseSerialize: serialize_fonoster_auth_v1beta1_CheckAuthorizedResponse, - responseDeserialize: deserialize_fonoster_auth_v1beta1_CheckAuthorizedResponse, - }, -}; - -exports.LimiterClient = grpc.makeGenericClientConstructor(LimiterService); diff --git a/mods/auth/src/service/protos/auth_pb.d.ts b/mods/auth/src/service/protos/auth_pb.d.ts deleted file mode 100644 index 4ddc5c795..000000000 --- a/mods/auth/src/service/protos/auth_pb.d.ts +++ /dev/null @@ -1,183 +0,0 @@ -// package: fonoster.auth.v1beta1 -// file: auth.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; - -export class CheckAuthorizedRequest extends jspb.Message { - getPath(): string; - setPath(value: string): CheckAuthorizedRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CheckAuthorizedRequest.AsObject; - static toObject(includeInstance: boolean, msg: CheckAuthorizedRequest): CheckAuthorizedRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CheckAuthorizedRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CheckAuthorizedRequest; - static deserializeBinaryFromReader(message: CheckAuthorizedRequest, reader: jspb.BinaryReader): CheckAuthorizedRequest; -} - -export namespace CheckAuthorizedRequest { - export type AsObject = { - path: string, - } -} - -export class CheckAuthorizedResponse extends jspb.Message { - getAuthorized(): boolean; - setAuthorized(value: boolean): CheckAuthorizedResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CheckAuthorizedResponse.AsObject; - static toObject(includeInstance: boolean, msg: CheckAuthorizedResponse): CheckAuthorizedResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CheckAuthorizedResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CheckAuthorizedResponse; - static deserializeBinaryFromReader(message: CheckAuthorizedResponse, reader: jspb.BinaryReader): CheckAuthorizedResponse; -} - -export namespace CheckAuthorizedResponse { - export type AsObject = { - authorized: boolean, - } -} - -export class GetRoleRequest extends jspb.Message { - getName(): string; - setName(value: string): GetRoleRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetRoleRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetRoleRequest): GetRoleRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetRoleRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetRoleRequest; - static deserializeBinaryFromReader(message: GetRoleRequest, reader: jspb.BinaryReader): GetRoleRequest; -} - -export namespace GetRoleRequest { - export type AsObject = { - name: string, - } -} - -export class Role extends jspb.Message { - getName(): string; - setName(value: string): Role; - getDescription(): string; - setDescription(value: string): Role; - clearAccessList(): void; - getAccessList(): Array; - setAccessList(value: Array): Role; - addAccess(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Role.AsObject; - static toObject(includeInstance: boolean, msg: Role): Role.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Role, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Role; - static deserializeBinaryFromReader(message: Role, reader: jspb.BinaryReader): Role; -} - -export namespace Role { - export type AsObject = { - name: string, - description: string, - accessList: Array, - } -} - -export class ValidateTokenRequest extends jspb.Message { - getToken(): string; - setToken(value: string): ValidateTokenRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ValidateTokenRequest.AsObject; - static toObject(includeInstance: boolean, msg: ValidateTokenRequest): ValidateTokenRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ValidateTokenRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ValidateTokenRequest; - static deserializeBinaryFromReader(message: ValidateTokenRequest, reader: jspb.BinaryReader): ValidateTokenRequest; -} - -export namespace ValidateTokenRequest { - export type AsObject = { - token: string, - } -} - -export class ValidateTokenResponse extends jspb.Message { - getValid(): boolean; - setValid(value: boolean): ValidateTokenResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ValidateTokenResponse.AsObject; - static toObject(includeInstance: boolean, msg: ValidateTokenResponse): ValidateTokenResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ValidateTokenResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ValidateTokenResponse; - static deserializeBinaryFromReader(message: ValidateTokenResponse, reader: jspb.BinaryReader): ValidateTokenResponse; -} - -export namespace ValidateTokenResponse { - export type AsObject = { - valid: boolean, - } -} - -export class CreateTokenRequest extends jspb.Message { - getRoleName(): string; - setRoleName(value: string): CreateTokenRequest; - getAccessKeyId(): string; - setAccessKeyId(value: string): CreateTokenRequest; - getExpiration(): string; - setExpiration(value: string): CreateTokenRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateTokenRequest.AsObject; - static toObject(includeInstance: boolean, msg: CreateTokenRequest): CreateTokenRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateTokenRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateTokenRequest; - static deserializeBinaryFromReader(message: CreateTokenRequest, reader: jspb.BinaryReader): CreateTokenRequest; -} - -export namespace CreateTokenRequest { - export type AsObject = { - roleName: string, - accessKeyId: string, - expiration: string, - } -} - -export class CreateTokenResponse extends jspb.Message { - getToken(): string; - setToken(value: string): CreateTokenResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateTokenResponse.AsObject; - static toObject(includeInstance: boolean, msg: CreateTokenResponse): CreateTokenResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateTokenResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateTokenResponse; - static deserializeBinaryFromReader(message: CreateTokenResponse, reader: jspb.BinaryReader): CreateTokenResponse; -} - -export namespace CreateTokenResponse { - export type AsObject = { - token: string, - } -} diff --git a/mods/auth/src/service/protos/auth_pb.js b/mods/auth/src/service/protos/auth_pb.js deleted file mode 100644 index 6b3ff0bae..000000000 --- a/mods/auth/src/service/protos/auth_pb.js +++ /dev/null @@ -1,1386 +0,0 @@ -// source: auth.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -goog.object.extend(proto, google_api_annotations_pb); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -goog.object.extend(proto, google_api_field_behavior_pb); -goog.exportSymbol('proto.fonoster.auth.v1beta1.CheckAuthorizedRequest', null, global); -goog.exportSymbol('proto.fonoster.auth.v1beta1.CheckAuthorizedResponse', null, global); -goog.exportSymbol('proto.fonoster.auth.v1beta1.CreateTokenRequest', null, global); -goog.exportSymbol('proto.fonoster.auth.v1beta1.CreateTokenResponse', null, global); -goog.exportSymbol('proto.fonoster.auth.v1beta1.GetRoleRequest', null, global); -goog.exportSymbol('proto.fonoster.auth.v1beta1.Role', null, global); -goog.exportSymbol('proto.fonoster.auth.v1beta1.ValidateTokenRequest', null, global); -goog.exportSymbol('proto.fonoster.auth.v1beta1.ValidateTokenResponse', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.auth.v1beta1.CheckAuthorizedRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.auth.v1beta1.CheckAuthorizedRequest.displayName = 'proto.fonoster.auth.v1beta1.CheckAuthorizedRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.auth.v1beta1.CheckAuthorizedResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.auth.v1beta1.CheckAuthorizedResponse.displayName = 'proto.fonoster.auth.v1beta1.CheckAuthorizedResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.auth.v1beta1.GetRoleRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.auth.v1beta1.GetRoleRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.auth.v1beta1.GetRoleRequest.displayName = 'proto.fonoster.auth.v1beta1.GetRoleRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.auth.v1beta1.Role = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.auth.v1beta1.Role.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.auth.v1beta1.Role, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.auth.v1beta1.Role.displayName = 'proto.fonoster.auth.v1beta1.Role'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.auth.v1beta1.ValidateTokenRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.auth.v1beta1.ValidateTokenRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.auth.v1beta1.ValidateTokenRequest.displayName = 'proto.fonoster.auth.v1beta1.ValidateTokenRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.auth.v1beta1.ValidateTokenResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.auth.v1beta1.ValidateTokenResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.auth.v1beta1.ValidateTokenResponse.displayName = 'proto.fonoster.auth.v1beta1.ValidateTokenResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.auth.v1beta1.CreateTokenRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.auth.v1beta1.CreateTokenRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.auth.v1beta1.CreateTokenRequest.displayName = 'proto.fonoster.auth.v1beta1.CreateTokenRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.auth.v1beta1.CreateTokenResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.auth.v1beta1.CreateTokenResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.auth.v1beta1.CreateTokenResponse.displayName = 'proto.fonoster.auth.v1beta1.CreateTokenResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.auth.v1beta1.CheckAuthorizedRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.auth.v1beta1.CheckAuthorizedRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedRequest.toObject = function(includeInstance, msg) { - var f, obj = { - path: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.auth.v1beta1.CheckAuthorizedRequest} - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.auth.v1beta1.CheckAuthorizedRequest; - return proto.fonoster.auth.v1beta1.CheckAuthorizedRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.auth.v1beta1.CheckAuthorizedRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.auth.v1beta1.CheckAuthorizedRequest} - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.auth.v1beta1.CheckAuthorizedRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.auth.v1beta1.CheckAuthorizedRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string path = 1; - * @return {string} - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedRequest.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.auth.v1beta1.CheckAuthorizedRequest} returns this - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedRequest.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.auth.v1beta1.CheckAuthorizedResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.auth.v1beta1.CheckAuthorizedResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedResponse.toObject = function(includeInstance, msg) { - var f, obj = { - authorized: jspb.Message.getBooleanFieldWithDefault(msg, 1, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.auth.v1beta1.CheckAuthorizedResponse} - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.auth.v1beta1.CheckAuthorizedResponse; - return proto.fonoster.auth.v1beta1.CheckAuthorizedResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.auth.v1beta1.CheckAuthorizedResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.auth.v1beta1.CheckAuthorizedResponse} - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setAuthorized(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.auth.v1beta1.CheckAuthorizedResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.auth.v1beta1.CheckAuthorizedResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getAuthorized(); - if (f) { - writer.writeBool( - 1, - f - ); - } -}; - - -/** - * optional bool authorized = 1; - * @return {boolean} - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedResponse.prototype.getAuthorized = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.fonoster.auth.v1beta1.CheckAuthorizedResponse} returns this - */ -proto.fonoster.auth.v1beta1.CheckAuthorizedResponse.prototype.setAuthorized = function(value) { - return jspb.Message.setProto3BooleanField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.auth.v1beta1.GetRoleRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.auth.v1beta1.GetRoleRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.auth.v1beta1.GetRoleRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.GetRoleRequest.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.auth.v1beta1.GetRoleRequest} - */ -proto.fonoster.auth.v1beta1.GetRoleRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.auth.v1beta1.GetRoleRequest; - return proto.fonoster.auth.v1beta1.GetRoleRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.auth.v1beta1.GetRoleRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.auth.v1beta1.GetRoleRequest} - */ -proto.fonoster.auth.v1beta1.GetRoleRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.auth.v1beta1.GetRoleRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.auth.v1beta1.GetRoleRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.auth.v1beta1.GetRoleRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.GetRoleRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.auth.v1beta1.GetRoleRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.auth.v1beta1.GetRoleRequest} returns this - */ -proto.fonoster.auth.v1beta1.GetRoleRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.auth.v1beta1.Role.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.auth.v1beta1.Role.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.auth.v1beta1.Role.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.auth.v1beta1.Role} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.Role.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - accessList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.auth.v1beta1.Role} - */ -proto.fonoster.auth.v1beta1.Role.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.auth.v1beta1.Role; - return proto.fonoster.auth.v1beta1.Role.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.auth.v1beta1.Role} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.auth.v1beta1.Role} - */ -proto.fonoster.auth.v1beta1.Role.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.addAccess(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.auth.v1beta1.Role.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.auth.v1beta1.Role.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.auth.v1beta1.Role} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.Role.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getAccessList(); - if (f.length > 0) { - writer.writeRepeatedString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.auth.v1beta1.Role.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.auth.v1beta1.Role} returns this - */ -proto.fonoster.auth.v1beta1.Role.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.fonoster.auth.v1beta1.Role.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.auth.v1beta1.Role} returns this - */ -proto.fonoster.auth.v1beta1.Role.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * repeated string access = 3; - * @return {!Array} - */ -proto.fonoster.auth.v1beta1.Role.prototype.getAccessList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.auth.v1beta1.Role} returns this - */ -proto.fonoster.auth.v1beta1.Role.prototype.setAccessList = function(value) { - return jspb.Message.setField(this, 3, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.fonoster.auth.v1beta1.Role} returns this - */ -proto.fonoster.auth.v1beta1.Role.prototype.addAccess = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 3, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.auth.v1beta1.Role} returns this - */ -proto.fonoster.auth.v1beta1.Role.prototype.clearAccessList = function() { - return this.setAccessList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.auth.v1beta1.ValidateTokenRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.auth.v1beta1.ValidateTokenRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.auth.v1beta1.ValidateTokenRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.ValidateTokenRequest.toObject = function(includeInstance, msg) { - var f, obj = { - token: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.auth.v1beta1.ValidateTokenRequest} - */ -proto.fonoster.auth.v1beta1.ValidateTokenRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.auth.v1beta1.ValidateTokenRequest; - return proto.fonoster.auth.v1beta1.ValidateTokenRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.auth.v1beta1.ValidateTokenRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.auth.v1beta1.ValidateTokenRequest} - */ -proto.fonoster.auth.v1beta1.ValidateTokenRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setToken(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.auth.v1beta1.ValidateTokenRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.auth.v1beta1.ValidateTokenRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.auth.v1beta1.ValidateTokenRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.ValidateTokenRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getToken(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string token = 1; - * @return {string} - */ -proto.fonoster.auth.v1beta1.ValidateTokenRequest.prototype.getToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.auth.v1beta1.ValidateTokenRequest} returns this - */ -proto.fonoster.auth.v1beta1.ValidateTokenRequest.prototype.setToken = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.auth.v1beta1.ValidateTokenResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.auth.v1beta1.ValidateTokenResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.auth.v1beta1.ValidateTokenResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.ValidateTokenResponse.toObject = function(includeInstance, msg) { - var f, obj = { - valid: jspb.Message.getBooleanFieldWithDefault(msg, 1, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.auth.v1beta1.ValidateTokenResponse} - */ -proto.fonoster.auth.v1beta1.ValidateTokenResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.auth.v1beta1.ValidateTokenResponse; - return proto.fonoster.auth.v1beta1.ValidateTokenResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.auth.v1beta1.ValidateTokenResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.auth.v1beta1.ValidateTokenResponse} - */ -proto.fonoster.auth.v1beta1.ValidateTokenResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setValid(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.auth.v1beta1.ValidateTokenResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.auth.v1beta1.ValidateTokenResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.auth.v1beta1.ValidateTokenResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.ValidateTokenResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getValid(); - if (f) { - writer.writeBool( - 1, - f - ); - } -}; - - -/** - * optional bool valid = 1; - * @return {boolean} - */ -proto.fonoster.auth.v1beta1.ValidateTokenResponse.prototype.getValid = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.fonoster.auth.v1beta1.ValidateTokenResponse} returns this - */ -proto.fonoster.auth.v1beta1.ValidateTokenResponse.prototype.setValid = function(value) { - return jspb.Message.setProto3BooleanField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.auth.v1beta1.CreateTokenRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.auth.v1beta1.CreateTokenRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.auth.v1beta1.CreateTokenRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.CreateTokenRequest.toObject = function(includeInstance, msg) { - var f, obj = { - roleName: jspb.Message.getFieldWithDefault(msg, 1, ""), - accessKeyId: jspb.Message.getFieldWithDefault(msg, 2, ""), - expiration: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.auth.v1beta1.CreateTokenRequest} - */ -proto.fonoster.auth.v1beta1.CreateTokenRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.auth.v1beta1.CreateTokenRequest; - return proto.fonoster.auth.v1beta1.CreateTokenRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.auth.v1beta1.CreateTokenRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.auth.v1beta1.CreateTokenRequest} - */ -proto.fonoster.auth.v1beta1.CreateTokenRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRoleName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setAccessKeyId(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setExpiration(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.auth.v1beta1.CreateTokenRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.auth.v1beta1.CreateTokenRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.auth.v1beta1.CreateTokenRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.CreateTokenRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRoleName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getAccessKeyId(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExpiration(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string role_name = 1; - * @return {string} - */ -proto.fonoster.auth.v1beta1.CreateTokenRequest.prototype.getRoleName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.auth.v1beta1.CreateTokenRequest} returns this - */ -proto.fonoster.auth.v1beta1.CreateTokenRequest.prototype.setRoleName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string access_key_id = 2; - * @return {string} - */ -proto.fonoster.auth.v1beta1.CreateTokenRequest.prototype.getAccessKeyId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.auth.v1beta1.CreateTokenRequest} returns this - */ -proto.fonoster.auth.v1beta1.CreateTokenRequest.prototype.setAccessKeyId = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string expiration = 3; - * @return {string} - */ -proto.fonoster.auth.v1beta1.CreateTokenRequest.prototype.getExpiration = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.auth.v1beta1.CreateTokenRequest} returns this - */ -proto.fonoster.auth.v1beta1.CreateTokenRequest.prototype.setExpiration = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.auth.v1beta1.CreateTokenResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.auth.v1beta1.CreateTokenResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.auth.v1beta1.CreateTokenResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.CreateTokenResponse.toObject = function(includeInstance, msg) { - var f, obj = { - token: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.auth.v1beta1.CreateTokenResponse} - */ -proto.fonoster.auth.v1beta1.CreateTokenResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.auth.v1beta1.CreateTokenResponse; - return proto.fonoster.auth.v1beta1.CreateTokenResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.auth.v1beta1.CreateTokenResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.auth.v1beta1.CreateTokenResponse} - */ -proto.fonoster.auth.v1beta1.CreateTokenResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setToken(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.auth.v1beta1.CreateTokenResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.auth.v1beta1.CreateTokenResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.auth.v1beta1.CreateTokenResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.auth.v1beta1.CreateTokenResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getToken(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string token = 1; - * @return {string} - */ -proto.fonoster.auth.v1beta1.CreateTokenResponse.prototype.getToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.auth.v1beta1.CreateTokenResponse} returns this - */ -proto.fonoster.auth.v1beta1.CreateTokenResponse.prototype.setToken = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -goog.object.extend(exports, proto.fonoster.auth.v1beta1); diff --git a/mods/auth/src/service/protos/common_grpc_pb.js b/mods/auth/src/service/protos/common_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/auth/src/service/protos/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/auth/src/service/protos/common_pb.d.ts b/mods/auth/src/service/protos/common_pb.d.ts deleted file mode 100644 index f8b5fb810..000000000 --- a/mods/auth/src/service/protos/common_pb.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// package: fonoster.common.v1beta1 -// file: common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class Empty extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Empty.AsObject; - static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Empty; - static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; -} - -export namespace Empty { - export type AsObject = { - } -} - -export class ErrorResponse extends jspb.Message { - getStatus(): number; - setStatus(value: number): ErrorResponse; - getMessage(): string; - setMessage(value: string): ErrorResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ErrorResponse.AsObject; - static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ErrorResponse; - static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse; -} - -export namespace ErrorResponse { - export type AsObject = { - status: number, - message: string, - } -} - -export enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2, -} diff --git a/mods/auth/src/service/protos/common_pb.js b/mods/auth/src/service/protos/common_pb.js deleted file mode 100644 index b7f99c7ea..000000000 --- a/mods/auth/src/service/protos/common_pb.js +++ /dev/null @@ -1,335 +0,0 @@ -// source: common.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -goog.exportSymbol('proto.fonoster.common.v1beta1.Empty', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.ErrorResponse', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.View', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.Empty = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.Empty, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.Empty.displayName = 'proto.fonoster.common.v1beta1.Empty'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.ErrorResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.ErrorResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.ErrorResponse.displayName = 'proto.fonoster.common.v1beta1.ErrorResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.Empty.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.Empty.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.Empty} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.Empty; - return proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.Empty} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.Empty.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.Empty} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.ErrorResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.toObject = function(includeInstance, msg) { - var f, obj = { - status: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.ErrorResponse; - return proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setStatus(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getStatus(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional int32 status = 1; - * @return {number} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getStatus = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setStatus = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * @enum {number} - */ -proto.fonoster.common.v1beta1.View = { - BASIC: 0, - STANDARD: 1, - FULL: 2 -}; - -goog.object.extend(exports, proto.fonoster.common.v1beta1); diff --git a/mods/auth/src/service/protos/google/api/annotations_grpc_pb.js b/mods/auth/src/service/protos/google/api/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/auth/src/service/protos/google/api/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/auth/src/service/protos/google/api/annotations_pb.d.ts b/mods/auth/src/service/protos/google/api/annotations_pb.d.ts deleted file mode 100644 index 06072f3bd..000000000 --- a/mods/auth/src/service/protos/google/api/annotations_pb.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// package: google.api -// file: google/api/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_api_http_pb from "../../google/api/http_pb"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const http: jspb.ExtensionFieldInfo; diff --git a/mods/auth/src/service/protos/google/api/annotations_pb.js b/mods/auth/src/service/protos/google/api/annotations_pb.js deleted file mode 100644 index 99e4c1824..000000000 --- a/mods/auth/src/service/protos/google/api/annotations_pb.js +++ /dev/null @@ -1,48 +0,0 @@ -// source: google/api/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_http_pb = require('../../google/api/http_pb.js'); -goog.object.extend(proto, google_api_http_pb); -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.http', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `http`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.google.api.http = new jspb.ExtensionFieldInfo( - 72295728, - {http: 0}, - google_api_http_pb.HttpRule, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - google_api_http_pb.HttpRule.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[72295728] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.http, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - google_api_http_pb.HttpRule.serializeBinaryToWriter, - google_api_http_pb.HttpRule.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[72295728] = proto.google.api.http; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/auth/src/service/protos/google/api/field_behavior_grpc_pb.js b/mods/auth/src/service/protos/google/api/field_behavior_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/auth/src/service/protos/google/api/field_behavior_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/auth/src/service/protos/google/api/field_behavior_pb.d.ts b/mods/auth/src/service/protos/google/api/field_behavior_pb.d.ts deleted file mode 100644 index 9b853705f..000000000 --- a/mods/auth/src/service/protos/google/api/field_behavior_pb.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -// package: google.api -// file: google/api/field_behavior.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const fieldBehavior: jspb.ExtensionFieldInfo; - -export enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, -} diff --git a/mods/auth/src/service/protos/google/api/field_behavior_pb.js b/mods/auth/src/service/protos/google/api/field_behavior_pb.js deleted file mode 100644 index 44160cc41..000000000 --- a/mods/auth/src/service/protos/google/api/field_behavior_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// source: google/api/field_behavior.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.FieldBehavior', null, global); -goog.exportSymbol('proto.google.api.fieldBehaviorList', null, global); -/** - * @enum {number} - */ -proto.google.api.FieldBehavior = { - FIELD_BEHAVIOR_UNSPECIFIED: 0, - OPTIONAL: 1, - REQUIRED: 2, - OUTPUT_ONLY: 3, - INPUT_ONLY: 4, - IMMUTABLE: 5, - UNORDERED_LIST: 6, - NON_EMPTY_DEFAULT: 7 -}; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `fieldBehaviorList`. - * @type {!jspb.ExtensionFieldInfo>} - */ -proto.google.api.fieldBehaviorList = new jspb.ExtensionFieldInfo( - 1052, - {fieldBehaviorList: 0}, - null, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - null), - 1); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1052] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.fieldBehaviorList, - jspb.BinaryReader.prototype.readPackedEnum, - jspb.BinaryWriter.prototype.writePackedEnum, - undefined, - undefined, - true); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1052] = proto.google.api.fieldBehaviorList; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/auth/src/service/protos/google/api/http_grpc_pb.js b/mods/auth/src/service/protos/google/api/http_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/auth/src/service/protos/google/api/http_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/auth/src/service/protos/google/api/http_pb.d.ts b/mods/auth/src/service/protos/google/api/http_pb.d.ts deleted file mode 100644 index 02c3b1ece..000000000 --- a/mods/auth/src/service/protos/google/api/http_pb.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -// package: google.api -// file: google/api/http.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Http extends jspb.Message { - clearRulesList(): void; - getRulesList(): Array; - setRulesList(value: Array): Http; - addRules(value?: HttpRule, index?: number): HttpRule; - getFullyDecodeReservedExpansion(): boolean; - setFullyDecodeReservedExpansion(value: boolean): Http; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Http.AsObject; - static toObject(includeInstance: boolean, msg: Http): Http.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Http; - static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http; -} - -export namespace Http { - export type AsObject = { - rulesList: Array, - fullyDecodeReservedExpansion: boolean, - } -} - -export class HttpRule extends jspb.Message { - getSelector(): string; - setSelector(value: string): HttpRule; - - hasGet(): boolean; - clearGet(): void; - getGet(): string; - setGet(value: string): HttpRule; - - hasPut(): boolean; - clearPut(): void; - getPut(): string; - setPut(value: string): HttpRule; - - hasPost(): boolean; - clearPost(): void; - getPost(): string; - setPost(value: string): HttpRule; - - hasDelete(): boolean; - clearDelete(): void; - getDelete(): string; - setDelete(value: string): HttpRule; - - hasPatch(): boolean; - clearPatch(): void; - getPatch(): string; - setPatch(value: string): HttpRule; - - hasCustom(): boolean; - clearCustom(): void; - getCustom(): CustomHttpPattern | undefined; - setCustom(value?: CustomHttpPattern): HttpRule; - getBody(): string; - setBody(value: string): HttpRule; - getResponseBody(): string; - setResponseBody(value: string): HttpRule; - clearAdditionalBindingsList(): void; - getAdditionalBindingsList(): Array; - setAdditionalBindingsList(value: Array): HttpRule; - addAdditionalBindings(value?: HttpRule, index?: number): HttpRule; - - getPatternCase(): HttpRule.PatternCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpRule.AsObject; - static toObject(includeInstance: boolean, msg: HttpRule): HttpRule.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpRule, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpRule; - static deserializeBinaryFromReader(message: HttpRule, reader: jspb.BinaryReader): HttpRule; -} - -export namespace HttpRule { - export type AsObject = { - selector: string, - get: string, - put: string, - post: string, - pb_delete: string, - patch: string, - custom?: CustomHttpPattern.AsObject, - body: string, - responseBody: string, - additionalBindingsList: Array, - } - - export enum PatternCase { - PATTERN_NOT_SET = 0, - GET = 2, - PUT = 3, - POST = 4, - DELETE = 5, - PATCH = 6, - CUSTOM = 8, - } - -} - -export class CustomHttpPattern extends jspb.Message { - getKind(): string; - setKind(value: string): CustomHttpPattern; - getPath(): string; - setPath(value: string): CustomHttpPattern; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CustomHttpPattern.AsObject; - static toObject(includeInstance: boolean, msg: CustomHttpPattern): CustomHttpPattern.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CustomHttpPattern, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CustomHttpPattern; - static deserializeBinaryFromReader(message: CustomHttpPattern, reader: jspb.BinaryReader): CustomHttpPattern; -} - -export namespace CustomHttpPattern { - export type AsObject = { - kind: string, - path: string, - } -} diff --git a/mods/auth/src/service/protos/google/api/http_pb.js b/mods/auth/src/service/protos/google/api/http_pb.js deleted file mode 100644 index 0359c5eec..000000000 --- a/mods/auth/src/service/protos/google/api/http_pb.js +++ /dev/null @@ -1,1006 +0,0 @@ -// source: google/api/http.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.google.api.CustomHttpPattern', null, global); -goog.exportSymbol('proto.google.api.Http', null, global); -goog.exportSymbol('proto.google.api.HttpRule', null, global); -goog.exportSymbol('proto.google.api.HttpRule.PatternCase', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.Http = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Http.repeatedFields_, null); -}; -goog.inherits(proto.google.api.Http, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.Http.displayName = 'proto.google.api.Http'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpRule = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpRule.repeatedFields_, proto.google.api.HttpRule.oneofGroups_); -}; -goog.inherits(proto.google.api.HttpRule, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpRule.displayName = 'proto.google.api.HttpRule'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.CustomHttpPattern = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.google.api.CustomHttpPattern, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.CustomHttpPattern.displayName = 'proto.google.api.CustomHttpPattern'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.Http.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.Http.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.Http.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.Http} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.toObject = function(includeInstance, msg) { - var f, obj = { - rulesList: jspb.Message.toObjectList(msg.getRulesList(), - proto.google.api.HttpRule.toObject, includeInstance), - fullyDecodeReservedExpansion: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.Http; - return proto.google.api.Http.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.Http} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addRules(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFullyDecodeReservedExpansion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.Http.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.Http.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.Http} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRulesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } - f = message.getFullyDecodeReservedExpansion(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * repeated HttpRule rules = 1; - * @return {!Array} - */ -proto.google.api.Http.prototype.getRulesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.Http} returns this -*/ -proto.google.api.Http.prototype.setRulesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.Http.prototype.addRules = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.clearRulesList = function() { - return this.setRulesList([]); -}; - - -/** - * optional bool fully_decode_reserved_expansion = 2; - * @return {boolean} - */ -proto.google.api.Http.prototype.getFullyDecodeReservedExpansion = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.setFullyDecodeReservedExpansion = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpRule.repeatedFields_ = [11]; - -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.google.api.HttpRule.oneofGroups_ = [[2,3,4,5,6,8]]; - -/** - * @enum {number} - */ -proto.google.api.HttpRule.PatternCase = { - PATTERN_NOT_SET: 0, - GET: 2, - PUT: 3, - POST: 4, - DELETE: 5, - PATCH: 6, - CUSTOM: 8 -}; - -/** - * @return {proto.google.api.HttpRule.PatternCase} - */ -proto.google.api.HttpRule.prototype.getPatternCase = function() { - return /** @type {proto.google.api.HttpRule.PatternCase} */(jspb.Message.computeOneofCase(this, proto.google.api.HttpRule.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpRule.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpRule.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpRule} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.toObject = function(includeInstance, msg) { - var f, obj = { - selector: jspb.Message.getFieldWithDefault(msg, 1, ""), - get: jspb.Message.getFieldWithDefault(msg, 2, ""), - put: jspb.Message.getFieldWithDefault(msg, 3, ""), - post: jspb.Message.getFieldWithDefault(msg, 4, ""), - pb_delete: jspb.Message.getFieldWithDefault(msg, 5, ""), - patch: jspb.Message.getFieldWithDefault(msg, 6, ""), - custom: (f = msg.getCustom()) && proto.google.api.CustomHttpPattern.toObject(includeInstance, f), - body: jspb.Message.getFieldWithDefault(msg, 7, ""), - responseBody: jspb.Message.getFieldWithDefault(msg, 12, ""), - additionalBindingsList: jspb.Message.toObjectList(msg.getAdditionalBindingsList(), - proto.google.api.HttpRule.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpRule; - return proto.google.api.HttpRule.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpRule} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSelector(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setGet(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPut(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPost(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDelete(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPatch(value); - break; - case 8: - var value = new proto.google.api.CustomHttpPattern; - reader.readMessage(value,proto.google.api.CustomHttpPattern.deserializeBinaryFromReader); - msg.setCustom(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBody(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setResponseBody(value); - break; - case 11: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addAdditionalBindings(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpRule.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpRule.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpRule} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSelector(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeString( - 3, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeString( - 4, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 5)); - if (f != null) { - writer.writeString( - 5, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 6)); - if (f != null) { - writer.writeString( - 6, - f - ); - } - f = message.getCustom(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.google.api.CustomHttpPattern.serializeBinaryToWriter - ); - } - f = message.getBody(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getResponseBody(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getAdditionalBindingsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 11, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string selector = 1; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getSelector = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setSelector = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string get = 2; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getGet = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setGet = function(value) { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearGet = function() { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasGet = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string put = 3; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPut = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPut = function(value) { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPut = function() { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPut = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional string post = 4; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPost = function(value) { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPost = function() { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPost = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string delete = 5; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getDelete = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setDelete = function(value) { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearDelete = function() { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasDelete = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string patch = 6; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPatch = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPatch = function(value) { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPatch = function() { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPatch = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional CustomHttpPattern custom = 8; - * @return {?proto.google.api.CustomHttpPattern} - */ -proto.google.api.HttpRule.prototype.getCustom = function() { - return /** @type{?proto.google.api.CustomHttpPattern} */ ( - jspb.Message.getWrapperField(this, proto.google.api.CustomHttpPattern, 8)); -}; - - -/** - * @param {?proto.google.api.CustomHttpPattern|undefined} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setCustom = function(value) { - return jspb.Message.setOneofWrapperField(this, 8, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearCustom = function() { - return this.setCustom(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasCustom = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional string body = 7; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setBody = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string response_body = 12; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getResponseBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setResponseBody = function(value) { - return jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * repeated HttpRule additional_bindings = 11; - * @return {!Array} - */ -proto.google.api.HttpRule.prototype.getAdditionalBindingsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 11)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setAdditionalBindingsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 11, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.prototype.addAdditionalBindings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearAdditionalBindingsList = function() { - return this.setAdditionalBindingsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.CustomHttpPattern.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.CustomHttpPattern.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.CustomHttpPattern} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.toObject = function(includeInstance, msg) { - var f, obj = { - kind: jspb.Message.getFieldWithDefault(msg, 1, ""), - path: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.CustomHttpPattern; - return proto.google.api.CustomHttpPattern.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.CustomHttpPattern} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKind(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.CustomHttpPattern.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.CustomHttpPattern.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.CustomHttpPattern} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKind(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string kind = 1; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getKind = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setKind = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string path = 2; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/auth/src/service/protos/google/api/httpbody_grpc_pb.js b/mods/auth/src/service/protos/google/api/httpbody_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/auth/src/service/protos/google/api/httpbody_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/auth/src/service/protos/google/api/httpbody_pb.d.ts b/mods/auth/src/service/protos/google/api/httpbody_pb.d.ts deleted file mode 100644 index 98d973068..000000000 --- a/mods/auth/src/service/protos/google/api/httpbody_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// package: google.api -// file: google/api/httpbody.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb"; - -export class HttpBody extends jspb.Message { - getContentType(): string; - setContentType(value: string): HttpBody; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): HttpBody; - clearExtensionsList(): void; - getExtensionsList(): Array; - setExtensionsList(value: Array): HttpBody; - addExtensions(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpBody.AsObject; - static toObject(includeInstance: boolean, msg: HttpBody): HttpBody.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpBody, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpBody; - static deserializeBinaryFromReader(message: HttpBody, reader: jspb.BinaryReader): HttpBody; -} - -export namespace HttpBody { - export type AsObject = { - contentType: string, - data: Uint8Array | string, - extensionsList: Array, - } -} diff --git a/mods/auth/src/service/protos/google/api/httpbody_pb.js b/mods/auth/src/service/protos/google/api/httpbody_pb.js deleted file mode 100644 index 5539f5936..000000000 --- a/mods/auth/src/service/protos/google/api/httpbody_pb.js +++ /dev/null @@ -1,286 +0,0 @@ -// source: google/api/httpbody.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js'); -goog.object.extend(proto, google_protobuf_any_pb); -goog.exportSymbol('proto.google.api.HttpBody', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpBody = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpBody.repeatedFields_, null); -}; -goog.inherits(proto.google.api.HttpBody, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpBody.displayName = 'proto.google.api.HttpBody'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpBody.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpBody.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpBody.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpBody} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.toObject = function(includeInstance, msg) { - var f, obj = { - contentType: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64(), - extensionsList: jspb.Message.toObjectList(msg.getExtensionsList(), - google_protobuf_any_pb.Any.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpBody; - return proto.google.api.HttpBody.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpBody} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setContentType(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 3: - var value = new google_protobuf_any_pb.Any; - reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader); - msg.addExtensions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpBody.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpBody} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContentType(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getExtensionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - google_protobuf_any_pb.Any.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string content_type = 1; - * @return {string} - */ -proto.google.api.HttpBody.prototype.getContentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setContentType = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.google.api.HttpBody.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.google.api.HttpBody.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setData = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * repeated google.protobuf.Any extensions = 3; - * @return {!Array} - */ -proto.google.api.HttpBody.prototype.getExtensionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpBody} returns this -*/ -proto.google.api.HttpBody.prototype.setExtensionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.google.protobuf.Any=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.Any} - */ -proto.google.api.HttpBody.prototype.addExtensions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.clearExtensionsList = function() { - return this.setExtensionsList([]); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/auth/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js b/mods/auth/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/auth/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/auth/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts b/mods/auth/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts deleted file mode 100644 index 8e3a35012..000000000 --- a/mods/auth/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; -import * as protoc_gen_openapiv2_options_openapiv2_pb from "../../protoc-gen-openapiv2/options/openapiv2_pb"; - -export const openapiv2Swagger: jspb.ExtensionFieldInfo; - -export const openapiv2Operation: jspb.ExtensionFieldInfo; - -export const openapiv2Schema: jspb.ExtensionFieldInfo; - -export const openapiv2Tag: jspb.ExtensionFieldInfo; - -export const openapiv2Field: jspb.ExtensionFieldInfo; diff --git a/mods/auth/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js b/mods/auth/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js deleted file mode 100644 index e92ccec18..000000000 --- a/mods/auth/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js +++ /dev/null @@ -1,152 +0,0 @@ -// source: protoc-gen-openapiv2/options/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -var protoc$gen$openapiv2_options_openapiv2_pb = require('../../protoc-gen-openapiv2/options/openapiv2_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_openapiv2_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Swagger`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Swagger: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.toObject), - 0); - -google_protobuf_descriptor_pb.FileOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FileOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Operation`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Operation: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Operation, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Operation.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Schema`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Schema: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Schema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Schema.toObject), - 0); - -google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MessageOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Tag`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Tag: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Tag, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Tag.toObject), - 0); - -google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.ServiceOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Field`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Field: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.toObject), - 0); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/auth/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js b/mods/auth/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/auth/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/auth/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts b/mods/auth/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts deleted file mode 100644 index 3c3972ea9..000000000 --- a/mods/auth/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +++ /dev/null @@ -1,685 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/openapiv2.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class Swagger extends jspb.Message { - getSwagger(): string; - setSwagger(value: string): Swagger; - - hasInfo(): boolean; - clearInfo(): void; - getInfo(): Info | undefined; - setInfo(value?: Info): Swagger; - getHost(): string; - setHost(value: string): Swagger; - getBasePath(): string; - setBasePath(value: string): Swagger; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Swagger; - addSchemes(value: Scheme, index?: number): Scheme; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Swagger; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Swagger; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - - hasSecurityDefinitions(): boolean; - clearSecurityDefinitions(): void; - getSecurityDefinitions(): SecurityDefinitions | undefined; - setSecurityDefinitions(value?: SecurityDefinitions): Swagger; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Swagger; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Swagger; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Swagger.AsObject; - static toObject(includeInstance: boolean, msg: Swagger): Swagger.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Swagger, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Swagger; - static deserializeBinaryFromReader(message: Swagger, reader: jspb.BinaryReader): Swagger; -} - -export namespace Swagger { - export type AsObject = { - swagger: string, - info?: Info.AsObject, - host: string, - basePath: string, - schemesList: Array, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - securityDefinitions?: SecurityDefinitions.AsObject, - securityList: Array, - externalDocs?: ExternalDocumentation.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Operation extends jspb.Message { - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): Operation; - addTags(value: string, index?: number): string; - getSummary(): string; - setSummary(value: string): Operation; - getDescription(): string; - setDescription(value: string): Operation; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Operation; - getOperationId(): string; - setOperationId(value: string): Operation; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Operation; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Operation; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Operation; - addSchemes(value: Scheme, index?: number): Scheme; - getDeprecated(): boolean; - setDeprecated(value: boolean): Operation; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Operation; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Operation.AsObject; - static toObject(includeInstance: boolean, msg: Operation): Operation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Operation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Operation; - static deserializeBinaryFromReader(message: Operation, reader: jspb.BinaryReader): Operation; -} - -export namespace Operation { - export type AsObject = { - tagsList: Array, - summary: string, - description: string, - externalDocs?: ExternalDocumentation.AsObject, - operationId: string, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - schemesList: Array, - deprecated: boolean, - securityList: Array, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Header extends jspb.Message { - getDescription(): string; - setDescription(value: string): Header; - getType(): string; - setType(value: string): Header; - getFormat(): string; - setFormat(value: string): Header; - getDefault(): string; - setDefault(value: string): Header; - getPattern(): string; - setPattern(value: string): Header; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Header.AsObject; - static toObject(includeInstance: boolean, msg: Header): Header.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Header, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Header; - static deserializeBinaryFromReader(message: Header, reader: jspb.BinaryReader): Header; -} - -export namespace Header { - export type AsObject = { - description: string, - type: string, - format: string, - pb_default: string, - pattern: string, - } -} - -export class Response extends jspb.Message { - getDescription(): string; - setDescription(value: string): Response; - - hasSchema(): boolean; - clearSchema(): void; - getSchema(): Schema | undefined; - setSchema(value?: Schema): Response; - - getHeadersMap(): jspb.Map; - clearHeadersMap(): void; - - getExamplesMap(): jspb.Map; - clearExamplesMap(): void; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Response.AsObject; - static toObject(includeInstance: boolean, msg: Response): Response.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Response, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Response; - static deserializeBinaryFromReader(message: Response, reader: jspb.BinaryReader): Response; -} - -export namespace Response { - export type AsObject = { - description: string, - schema?: Schema.AsObject, - - headersMap: Array<[string, Header.AsObject]>, - - examplesMap: Array<[string, string]>, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Info extends jspb.Message { - getTitle(): string; - setTitle(value: string): Info; - getDescription(): string; - setDescription(value: string): Info; - getTermsOfService(): string; - setTermsOfService(value: string): Info; - - hasContact(): boolean; - clearContact(): void; - getContact(): Contact | undefined; - setContact(value?: Contact): Info; - - hasLicense(): boolean; - clearLicense(): void; - getLicense(): License | undefined; - setLicense(value?: License): Info; - getVersion(): string; - setVersion(value: string): Info; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Info.AsObject; - static toObject(includeInstance: boolean, msg: Info): Info.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Info, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Info; - static deserializeBinaryFromReader(message: Info, reader: jspb.BinaryReader): Info; -} - -export namespace Info { - export type AsObject = { - title: string, - description: string, - termsOfService: string, - contact?: Contact.AsObject, - license?: License.AsObject, - version: string, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Contact extends jspb.Message { - getName(): string; - setName(value: string): Contact; - getUrl(): string; - setUrl(value: string): Contact; - getEmail(): string; - setEmail(value: string): Contact; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contact.AsObject; - static toObject(includeInstance: boolean, msg: Contact): Contact.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contact, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contact; - static deserializeBinaryFromReader(message: Contact, reader: jspb.BinaryReader): Contact; -} - -export namespace Contact { - export type AsObject = { - name: string, - url: string, - email: string, - } -} - -export class License extends jspb.Message { - getName(): string; - setName(value: string): License; - getUrl(): string; - setUrl(value: string): License; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): License.AsObject; - static toObject(includeInstance: boolean, msg: License): License.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: License, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): License; - static deserializeBinaryFromReader(message: License, reader: jspb.BinaryReader): License; -} - -export namespace License { - export type AsObject = { - name: string, - url: string, - } -} - -export class ExternalDocumentation extends jspb.Message { - getDescription(): string; - setDescription(value: string): ExternalDocumentation; - getUrl(): string; - setUrl(value: string): ExternalDocumentation; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ExternalDocumentation.AsObject; - static toObject(includeInstance: boolean, msg: ExternalDocumentation): ExternalDocumentation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ExternalDocumentation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ExternalDocumentation; - static deserializeBinaryFromReader(message: ExternalDocumentation, reader: jspb.BinaryReader): ExternalDocumentation; -} - -export namespace ExternalDocumentation { - export type AsObject = { - description: string, - url: string, - } -} - -export class Schema extends jspb.Message { - - hasJsonSchema(): boolean; - clearJsonSchema(): void; - getJsonSchema(): JSONSchema | undefined; - setJsonSchema(value?: JSONSchema): Schema; - getDiscriminator(): string; - setDiscriminator(value: string): Schema; - getReadOnly(): boolean; - setReadOnly(value: boolean): Schema; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Schema; - getExample(): string; - setExample(value: string): Schema; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Schema.AsObject; - static toObject(includeInstance: boolean, msg: Schema): Schema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Schema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Schema; - static deserializeBinaryFromReader(message: Schema, reader: jspb.BinaryReader): Schema; -} - -export namespace Schema { - export type AsObject = { - jsonSchema?: JSONSchema.AsObject, - discriminator: string, - readOnly: boolean, - externalDocs?: ExternalDocumentation.AsObject, - example: string, - } -} - -export class JSONSchema extends jspb.Message { - getRef(): string; - setRef(value: string): JSONSchema; - getTitle(): string; - setTitle(value: string): JSONSchema; - getDescription(): string; - setDescription(value: string): JSONSchema; - getDefault(): string; - setDefault(value: string): JSONSchema; - getReadOnly(): boolean; - setReadOnly(value: boolean): JSONSchema; - getExample(): string; - setExample(value: string): JSONSchema; - getMultipleOf(): number; - setMultipleOf(value: number): JSONSchema; - getMaximum(): number; - setMaximum(value: number): JSONSchema; - getExclusiveMaximum(): boolean; - setExclusiveMaximum(value: boolean): JSONSchema; - getMinimum(): number; - setMinimum(value: number): JSONSchema; - getExclusiveMinimum(): boolean; - setExclusiveMinimum(value: boolean): JSONSchema; - getMaxLength(): number; - setMaxLength(value: number): JSONSchema; - getMinLength(): number; - setMinLength(value: number): JSONSchema; - getPattern(): string; - setPattern(value: string): JSONSchema; - getMaxItems(): number; - setMaxItems(value: number): JSONSchema; - getMinItems(): number; - setMinItems(value: number): JSONSchema; - getUniqueItems(): boolean; - setUniqueItems(value: boolean): JSONSchema; - getMaxProperties(): number; - setMaxProperties(value: number): JSONSchema; - getMinProperties(): number; - setMinProperties(value: number): JSONSchema; - clearRequiredList(): void; - getRequiredList(): Array; - setRequiredList(value: Array): JSONSchema; - addRequired(value: string, index?: number): string; - clearArrayList(): void; - getArrayList(): Array; - setArrayList(value: Array): JSONSchema; - addArray(value: string, index?: number): string; - clearTypeList(): void; - getTypeList(): Array; - setTypeList(value: Array): JSONSchema; - addType(value: JSONSchema.JSONSchemaSimpleTypes, index?: number): JSONSchema.JSONSchemaSimpleTypes; - getFormat(): string; - setFormat(value: string): JSONSchema; - clearEnumList(): void; - getEnumList(): Array; - setEnumList(value: Array): JSONSchema; - addEnum(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): JSONSchema.AsObject; - static toObject(includeInstance: boolean, msg: JSONSchema): JSONSchema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: JSONSchema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): JSONSchema; - static deserializeBinaryFromReader(message: JSONSchema, reader: jspb.BinaryReader): JSONSchema; -} - -export namespace JSONSchema { - export type AsObject = { - ref: string, - title: string, - description: string, - pb_default: string, - readOnly: boolean, - example: string, - multipleOf: number, - maximum: number, - exclusiveMaximum: boolean, - minimum: number, - exclusiveMinimum: boolean, - maxLength: number, - minLength: number, - pattern: string, - maxItems: number, - minItems: number, - uniqueItems: boolean, - maxProperties: number, - minProperties: number, - requiredList: Array, - arrayList: Array, - typeList: Array, - format: string, - pb_enumList: Array, - } - - export enum JSONSchemaSimpleTypes { - UNKNOWN = 0, - ARRAY = 1, - BOOLEAN = 2, - INTEGER = 3, - NULL = 4, - NUMBER = 5, - OBJECT = 6, - STRING = 7, - } - -} - -export class Tag extends jspb.Message { - getDescription(): string; - setDescription(value: string): Tag; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Tag; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Tag.AsObject; - static toObject(includeInstance: boolean, msg: Tag): Tag.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Tag, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Tag; - static deserializeBinaryFromReader(message: Tag, reader: jspb.BinaryReader): Tag; -} - -export namespace Tag { - export type AsObject = { - description: string, - externalDocs?: ExternalDocumentation.AsObject, - } -} - -export class SecurityDefinitions extends jspb.Message { - - getSecurityMap(): jspb.Map; - clearSecurityMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityDefinitions.AsObject; - static toObject(includeInstance: boolean, msg: SecurityDefinitions): SecurityDefinitions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityDefinitions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityDefinitions; - static deserializeBinaryFromReader(message: SecurityDefinitions, reader: jspb.BinaryReader): SecurityDefinitions; -} - -export namespace SecurityDefinitions { - export type AsObject = { - - securityMap: Array<[string, SecurityScheme.AsObject]>, - } -} - -export class SecurityScheme extends jspb.Message { - getType(): SecurityScheme.Type; - setType(value: SecurityScheme.Type): SecurityScheme; - getDescription(): string; - setDescription(value: string): SecurityScheme; - getName(): string; - setName(value: string): SecurityScheme; - getIn(): SecurityScheme.In; - setIn(value: SecurityScheme.In): SecurityScheme; - getFlow(): SecurityScheme.Flow; - setFlow(value: SecurityScheme.Flow): SecurityScheme; - getAuthorizationUrl(): string; - setAuthorizationUrl(value: string): SecurityScheme; - getTokenUrl(): string; - setTokenUrl(value: string): SecurityScheme; - - hasScopes(): boolean; - clearScopes(): void; - getScopes(): Scopes | undefined; - setScopes(value?: Scopes): SecurityScheme; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityScheme.AsObject; - static toObject(includeInstance: boolean, msg: SecurityScheme): SecurityScheme.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityScheme, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityScheme; - static deserializeBinaryFromReader(message: SecurityScheme, reader: jspb.BinaryReader): SecurityScheme; -} - -export namespace SecurityScheme { - export type AsObject = { - type: SecurityScheme.Type, - description: string, - name: string, - pb_in: SecurityScheme.In, - flow: SecurityScheme.Flow, - authorizationUrl: string, - tokenUrl: string, - scopes?: Scopes.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } - - export enum Type { - TYPE_INVALID = 0, - TYPE_BASIC = 1, - TYPE_API_KEY = 2, - TYPE_OAUTH2 = 3, - } - - export enum In { - IN_INVALID = 0, - IN_QUERY = 1, - IN_HEADER = 2, - } - - export enum Flow { - FLOW_INVALID = 0, - FLOW_IMPLICIT = 1, - FLOW_PASSWORD = 2, - FLOW_APPLICATION = 3, - FLOW_ACCESS_CODE = 4, - } - -} - -export class SecurityRequirement extends jspb.Message { - - getSecurityRequirementMap(): jspb.Map; - clearSecurityRequirementMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirement.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirement): SecurityRequirement.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirement, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirement; - static deserializeBinaryFromReader(message: SecurityRequirement, reader: jspb.BinaryReader): SecurityRequirement; -} - -export namespace SecurityRequirement { - export type AsObject = { - - securityRequirementMap: Array<[string, SecurityRequirement.SecurityRequirementValue.AsObject]>, - } - - - export class SecurityRequirementValue extends jspb.Message { - clearScopeList(): void; - getScopeList(): Array; - setScopeList(value: Array): SecurityRequirementValue; - addScope(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirementValue.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirementValue): SecurityRequirementValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirementValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirementValue; - static deserializeBinaryFromReader(message: SecurityRequirementValue, reader: jspb.BinaryReader): SecurityRequirementValue; - } - - export namespace SecurityRequirementValue { - export type AsObject = { - scopeList: Array, - } - } - -} - -export class Scopes extends jspb.Message { - - getScopeMap(): jspb.Map; - clearScopeMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Scopes.AsObject; - static toObject(includeInstance: boolean, msg: Scopes): Scopes.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Scopes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Scopes; - static deserializeBinaryFromReader(message: Scopes, reader: jspb.BinaryReader): Scopes; -} - -export namespace Scopes { - export type AsObject = { - - scopeMap: Array<[string, string]>, - } -} - -export enum Scheme { - UNKNOWN = 0, - HTTP = 1, - HTTPS = 2, - WS = 3, - WSS = 4, -} diff --git a/mods/auth/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js b/mods/auth/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js deleted file mode 100644 index be8a6bfd2..000000000 --- a/mods/auth/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js +++ /dev/null @@ -1,5367 +0,0 @@ -// source: protoc-gen-openapiv2/options/openapiv2.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Contact', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Header', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Info', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.License', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Response', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Tag', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Operation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Operation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Header, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Header'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Response, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Response'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Info, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Info'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Contact'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.License, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.License.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.License'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Schema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Tag, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Tag'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_ = [5,6,7,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject = function(includeInstance, msg) { - var f, obj = { - swagger: jspb.Message.getFieldWithDefault(msg, 1, ""), - info: (f = msg.getInfo()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(includeInstance, f), - host: jspb.Message.getFieldWithDefault(msg, 3, ""), - basePath: jspb.Message.getFieldWithDefault(msg, 4, ""), - schemesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - securityDefinitions: (f = msg.getSecurityDefinitions()) && proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(includeInstance, f), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSwagger(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader); - msg.setInfo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setBasePath(value); - break; - case 5: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 10: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 11: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader); - msg.setSecurityDefinitions(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 14: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 15: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSwagger(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInfo(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBasePath(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSecurityDefinitions(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 14, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string swagger = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSwagger = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSwagger = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Info info = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getInfo = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Info, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearInfo = function() { - return this.setInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasInfo = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string host = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string base_path = 4; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getBasePath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setBasePath = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated Scheme schemes = 5; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 10; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 10, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * optional SecurityDefinitions security_definitions = 11; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityDefinitions = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, 11)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityDefinitions = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityDefinitions = function() { - return this.setSecurityDefinitions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasSecurityDefinitions = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * optional ExternalDocumentation external_docs = 14; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 14)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 14, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 14) != null; -}; - - -/** - * map extensions = 15; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 15, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_ = [1,6,7,10,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject = function(includeInstance, msg) { - var f, obj = { - tagsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - summary: jspb.Message.getFieldWithDefault(msg, 2, ""), - description: jspb.Message.getFieldWithDefault(msg, 3, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - operationId: jspb.Message.getFieldWithDefault(msg, 5, ""), - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - schemesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f, - deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 11, false), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Operation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSummary(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setOperationId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 9: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 10: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDeprecated(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 13: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getSummary(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getOperationId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 10, - f - ); - } - f = message.getDeprecated(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * repeated string tags = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getTagsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setTagsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addTags = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearTagsList = function() { - return this.setTagsList([]); -}; - - -/** - * optional string summary = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSummary = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSummary = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string description = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string operation_id = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getOperationId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setOperationId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * repeated Scheme schemes = 10; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 10, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 10, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * optional bool deprecated = 11; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDeprecated = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDeprecated = function(value) { - return jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * map extensions = 13; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 13, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, ""), - format: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 6, ""), - pattern: jspb.Message.getFieldWithDefault(msg, 13, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Header; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string type = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string format = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string default = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string pattern = 13; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 13, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - schema: (f = msg.getSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(includeInstance, f), - headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject) : [], - examplesMap: (f = msg.getExamplesMap()) ? f.toObject(includeInstance, undefined) : [], - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Response; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader); - msg.setSchema(value); - break; - case 3: - var value = msg.getHeadersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Header()); - }); - break; - case 4: - var value = msg.getExamplesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - case 5: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchema(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter - ); - } - f = message.getHeadersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter); - } - f = message.getExamplesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Schema schema = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setSchema = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearSchema = function() { - return this.setSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.hasSchema = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * map headers = 3; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getHeadersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 3, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Header)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearHeadersMap = function() { - this.getHeadersMap().clear(); - return this;}; - - -/** - * map examples = 4; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExamplesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 4, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExamplesMap = function() { - this.getExamplesMap().clear(); - return this;}; - - -/** - * map extensions = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject = function(includeInstance, msg) { - var f, obj = { - title: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - termsOfService: jspb.Message.getFieldWithDefault(msg, 3, ""), - contact: (f = msg.getContact()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(includeInstance, f), - license: (f = msg.getLicense()) && proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(includeInstance, f), - version: jspb.Message.getFieldWithDefault(msg, 6, ""), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTermsOfService(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader); - msg.setContact(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader); - msg.setLicense(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 7: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTermsOfService(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getContact(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter - ); - } - f = message.getLicense(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string title = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string terms_of_service = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTermsOfService = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTermsOfService = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional Contact contact = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getContact = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setContact = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearContact = function() { - return this.setContact(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasContact = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional License license = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getLicense = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.License} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.License, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.License|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setLicense = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearLicense = function() { - return this.setLicense(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasLicense = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string version = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setVersion = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * map extensions = 7; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 7, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject = function(includeInstance, msg) { - var f, obj = { - jsonSchema: (f = msg.getJsonSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(includeInstance, f), - discriminator: jspb.Message.getFieldWithDefault(msg, 2, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - example: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader); - msg.setJsonSchema(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDiscriminator(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsonSchema(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter - ); - } - f = message.getDiscriminator(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional JSONSchema json_schema = 1; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getJsonSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, 1)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setJsonSchema = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearJsonSchema = function() { - return this.setJsonSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasJsonSchema = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string discriminator = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getDiscriminator = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setDiscriminator = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool read_only = 3; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string example = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_ = [26,34,35,46]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 3, ""), - title: jspb.Message.getFieldWithDefault(msg, 5, ""), - description: jspb.Message.getFieldWithDefault(msg, 6, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 7, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - example: jspb.Message.getFieldWithDefault(msg, 9, ""), - multipleOf: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0), - maximum: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0), - exclusiveMaximum: jspb.Message.getBooleanFieldWithDefault(msg, 12, false), - minimum: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), - exclusiveMinimum: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - maxLength: jspb.Message.getFieldWithDefault(msg, 15, 0), - minLength: jspb.Message.getFieldWithDefault(msg, 16, 0), - pattern: jspb.Message.getFieldWithDefault(msg, 17, ""), - maxItems: jspb.Message.getFieldWithDefault(msg, 20, 0), - minItems: jspb.Message.getFieldWithDefault(msg, 21, 0), - uniqueItems: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), - maxProperties: jspb.Message.getFieldWithDefault(msg, 24, 0), - minProperties: jspb.Message.getFieldWithDefault(msg, 25, 0), - requiredList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, - arrayList: (f = jspb.Message.getRepeatedField(msg, 34)) == null ? undefined : f, - typeList: (f = jspb.Message.getRepeatedField(msg, 35)) == null ? undefined : f, - format: jspb.Message.getFieldWithDefault(msg, 36, ""), - enumList: (f = jspb.Message.getRepeatedField(msg, 46)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - case 10: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMultipleOf(value); - break; - case 11: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMaximum(value); - break; - case 12: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMaximum(value); - break; - case 13: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMinimum(value); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMinimum(value); - break; - case 15: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxLength(value); - break; - case 16: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinLength(value); - break; - case 17: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - case 20: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxItems(value); - break; - case 21: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinItems(value); - break; - case 22: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUniqueItems(value); - break; - case 24: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxProperties(value); - break; - case 25: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinProperties(value); - break; - case 26: - var value = /** @type {string} */ (reader.readString()); - msg.addRequired(value); - break; - case 34: - var value = /** @type {string} */ (reader.readString()); - msg.addArray(value); - break; - case 35: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addType(values[i]); - } - break; - case 36: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 46: - var value = /** @type {string} */ (reader.readString()); - msg.addEnum(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getMultipleOf(); - if (f !== 0.0) { - writer.writeDouble( - 10, - f - ); - } - f = message.getMaximum(); - if (f !== 0.0) { - writer.writeDouble( - 11, - f - ); - } - f = message.getExclusiveMaximum(); - if (f) { - writer.writeBool( - 12, - f - ); - } - f = message.getMinimum(); - if (f !== 0.0) { - writer.writeDouble( - 13, - f - ); - } - f = message.getExclusiveMinimum(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getMaxLength(); - if (f !== 0) { - writer.writeUint64( - 15, - f - ); - } - f = message.getMinLength(); - if (f !== 0) { - writer.writeUint64( - 16, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 17, - f - ); - } - f = message.getMaxItems(); - if (f !== 0) { - writer.writeUint64( - 20, - f - ); - } - f = message.getMinItems(); - if (f !== 0) { - writer.writeUint64( - 21, - f - ); - } - f = message.getUniqueItems(); - if (f) { - writer.writeBool( - 22, - f - ); - } - f = message.getMaxProperties(); - if (f !== 0) { - writer.writeUint64( - 24, - f - ); - } - f = message.getMinProperties(); - if (f !== 0) { - writer.writeUint64( - 25, - f - ); - } - f = message.getRequiredList(); - if (f.length > 0) { - writer.writeRepeatedString( - 26, - f - ); - } - f = message.getArrayList(); - if (f.length > 0) { - writer.writeRepeatedString( - 34, - f - ); - } - f = message.getTypeList(); - if (f.length > 0) { - writer.writePackedEnum( - 35, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 36, - f - ); - } - f = message.getEnumList(); - if (f.length > 0) { - writer.writeRepeatedString( - 46, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes = { - UNKNOWN: 0, - ARRAY: 1, - BOOLEAN: 2, - INTEGER: 3, - NULL: 4, - NUMBER: 5, - OBJECT: 6, - STRING: 7 -}; - -/** - * optional string ref = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string title = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string description = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string default = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional bool read_only = 8; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - -/** - * optional string example = 9; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional double multiple_of = 10; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMultipleOf = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMultipleOf = function(value) { - return jspb.Message.setProto3FloatField(this, 10, value); -}; - - -/** - * optional double maximum = 11; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaximum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaximum = function(value) { - return jspb.Message.setProto3FloatField(this, 11, value); -}; - - -/** - * optional bool exclusive_maximum = 12; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMaximum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMaximum = function(value) { - return jspb.Message.setProto3BooleanField(this, 12, value); -}; - - -/** - * optional double minimum = 13; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinimum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinimum = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); -}; - - -/** - * optional bool exclusive_minimum = 14; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMinimum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMinimum = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * optional uint64 max_length = 15; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxLength = function(value) { - return jspb.Message.setProto3IntField(this, 15, value); -}; - - -/** - * optional uint64 min_length = 16; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinLength = function(value) { - return jspb.Message.setProto3IntField(this, 16, value); -}; - - -/** - * optional string pattern = 17; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 17, value); -}; - - -/** - * optional uint64 max_items = 20; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxItems = function(value) { - return jspb.Message.setProto3IntField(this, 20, value); -}; - - -/** - * optional uint64 min_items = 21; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinItems = function(value) { - return jspb.Message.setProto3IntField(this, 21, value); -}; - - -/** - * optional bool unique_items = 22; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getUniqueItems = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setUniqueItems = function(value) { - return jspb.Message.setProto3BooleanField(this, 22, value); -}; - - -/** - * optional uint64 max_properties = 24; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxProperties = function(value) { - return jspb.Message.setProto3IntField(this, 24, value); -}; - - -/** - * optional uint64 min_properties = 25; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinProperties = function(value) { - return jspb.Message.setProto3IntField(this, 25, value); -}; - - -/** - * repeated string required = 26; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRequiredList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 26)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRequiredList = function(value) { - return jspb.Message.setField(this, 26, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addRequired = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 26, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearRequiredList = function() { - return this.setRequiredList([]); -}; - - -/** - * repeated string array = 34; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getArrayList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 34)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setArrayList = function(value) { - return jspb.Message.setField(this, 34, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addArray = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 34, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearArrayList = function() { - return this.setArrayList([]); -}; - - -/** - * repeated JSONSchemaSimpleTypes type = 35; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTypeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 35)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTypeList = function(value) { - return jspb.Message.setField(this, 35, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addType = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 35, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearTypeList = function() { - return this.setTypeList([]); -}; - - -/** - * optional string format = 36; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 36, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 36, value); -}; - - -/** - * repeated string enum = 46; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getEnumList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 46)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setEnumList = function(value) { - return jspb.Message.setField(this, 46, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addEnum = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 46, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearEnumList = function() { - return this.setEnumList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Tag; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 3; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 3)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject = function(includeInstance, msg) { - var f, obj = { - securityMap: (f = msg.getSecurityMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter); - } -}; - - -/** - * map security = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.getSecurityMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.clearSecurityMap = function() { - this.getSecurityMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject = function(includeInstance, msg) { - var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_in: jspb.Message.getFieldWithDefault(msg, 4, 0), - flow: jspb.Message.getFieldWithDefault(msg, 5, 0), - authorizationUrl: jspb.Message.getFieldWithDefault(msg, 6, ""), - tokenUrl: jspb.Message.getFieldWithDefault(msg, 7, ""), - scopes: (f = msg.getScopes()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (reader.readEnum()); - msg.setIn(value); - break; - case 5: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (reader.readEnum()); - msg.setFlow(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthorizationUrl(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setTokenUrl(value); - break; - case 8: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader); - msg.setScopes(value); - break; - case 9: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIn(); - if (f !== 0.0) { - writer.writeEnum( - 4, - f - ); - } - f = message.getFlow(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } - f = message.getAuthorizationUrl(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getTokenUrl(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getScopes(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type = { - TYPE_INVALID: 0, - TYPE_BASIC: 1, - TYPE_API_KEY: 2, - TYPE_OAUTH2: 3 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In = { - IN_INVALID: 0, - IN_QUERY: 1, - IN_HEADER: 2 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow = { - FLOW_INVALID: 0, - FLOW_IMPLICIT: 1, - FLOW_PASSWORD: 2, - FLOW_APPLICATION: 3, - FLOW_ACCESS_CODE: 4 -}; - -/** - * optional Type type = 1; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getType = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional In in = 4; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getIn = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setIn = function(value) { - return jspb.Message.setProto3EnumField(this, 4, value); -}; - - -/** - * optional Flow flow = 5; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getFlow = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setFlow = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); -}; - - -/** - * optional string authorization_url = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getAuthorizationUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setAuthorizationUrl = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string token_url = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getTokenUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setTokenUrl = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional Scopes scopes = 8; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getScopes = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, 8)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setScopes = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearScopes = function() { - return this.setScopes(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.hasScopes = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * map extensions = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject = function(includeInstance, msg) { - var f, obj = { - securityRequirementMap: (f = msg.getSecurityRequirementMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityRequirementMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityRequirementMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject = function(includeInstance, msg) { - var f, obj = { - scopeList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addScope(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } -}; - - -/** - * repeated string scope = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.getScopeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.setScopeList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.addScope = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.clearScopeList = function() { - return this.setScopeList([]); -}; - - -/** - * map security_requirement = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.getSecurityRequirementMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.clearSecurityRequirementMap = function() { - this.getSecurityRequirementMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject = function(includeInstance, msg) { - var f, obj = { - scopeMap: (f = msg.getScopeMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getScopeMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map scope = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.getScopeMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.clearScopeMap = function() { - this.getScopeMap().clear(); - return this;}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme = { - UNKNOWN: 0, - HTTP: 1, - HTTPS: 2, - WS: 3, - WSS: 4 -}; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/auth/src/service/runner.ts b/mods/auth/src/service/runner.ts deleted file mode 100644 index 1d1e86edf..000000000 --- a/mods/auth/src/service/runner.ts +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env node -import { Tracer as T } from "@fonoster/common"; -T.init("auth-service"); - -import { AuthService } from "./protos/auth_grpc_pb"; -import { runServices } from "@fonoster/common"; -import { getSalt } from "@fonoster/certs"; -import AuthServer from "./auth"; -import logger from "@fonoster/logger"; -import Auth from "../utils/auth_utils"; -import JWT from "../utils/jwt"; -import express from "express"; - -const app = express(); - -import AuthMiddleware from "../auth_middleware"; -const authenticator = new Auth(new JWT()); - -app.get("/session_auth", async (req, res) => { - const sessionToken = req.headers["x-session-token"] as string; - const result = await authenticator.validateToken( - { accessToken: sessionToken }, - getSalt() - ); - - if (!sessionToken || result.isValid === false) { - res.status(401); - res.send("Unauthorized"); - return; - } - - res.status(200); - res.send("Access granted"); -}); - -// First starting the http 1.1 auth endpoint -app.listen(3000, () => { - logger.info(`starting simple authentication service @ ${3000}`); - - const services = [ - { - name: "auth", - version: "v1beta1", - service: AuthService, - server: new AuthServer() - } - ]; - - const middleware = { - name: "authentication", - middlewareObj: new AuthMiddleware(getSalt(), null).middleware - }; - - runServices(services, [middleware]); -}); diff --git a/mods/auth/src/utils/auth_utils.ts b/mods/auth/src/utils/auth_utils.ts deleted file mode 100644 index a4aa4829e..000000000 --- a/mods/auth/src/utils/auth_utils.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import JwtPayload from "./jwt_payload"; -import ITokenManager from "./itoken_manager"; -import logger from "@fonoster/logger"; - -export declare interface UserToken { - accessToken: string; -} - -export declare interface TokenResponse { - isValid: boolean; - data: JwtPayload; -} - -export default class AuthUtils { - private handler: ITokenManager; - - constructor(handler: ITokenManager) { - this.handler = handler; - } - - public validateTokenData = (payload: JwtPayload): boolean => { - if ( - !payload || - !payload.iss || - !payload.accessKeyId || - !payload.iss || - !payload.role - ) - throw new Error("Invalid Access Token"); - return true; - }; - - public createToken = async ( - accessKeyId: string, - issuer: string, - role: string, - privateKey: string, - expiration?: string - ): Promise => { - const accessToken = await this.handler.encode( - new JwtPayload(issuer, role, accessKeyId), - privateKey, - expiration - ); - - if (!accessToken) throw new Error("Error creating token"); - - return { - accessToken: accessToken - } as UserToken; - }; - - public validateToken = async ( - token: UserToken, - privateKey: string - ): Promise => { - let result = false; - try { - const accessTokenData = await this.handler.decode( - token.accessToken, - privateKey - ); - if (accessTokenData) { - result = true; - } - - return { - data: accessTokenData, - isValid: result - } as TokenResponse; - } catch (e) { - logger.log("error", "@fonoster/auth [Error decoding token]"); - } - return { - isValid: result - } as TokenResponse; - }; -} diff --git a/mods/auth/src/utils/itoken_manager.ts b/mods/auth/src/utils/itoken_manager.ts deleted file mode 100644 index ab5fb11f5..000000000 --- a/mods/auth/src/utils/itoken_manager.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import JwtPayload from "./jwt_payload"; - -export default interface ITokenManager { - encode( - payload: JwtPayload, - privateKey: string, - expiration?: string - ): Promise; - decode(token: string, privateKey: string): Promise; -} diff --git a/mods/auth/src/utils/jwt.ts b/mods/auth/src/utils/jwt.ts deleted file mode 100644 index cfa9f5799..000000000 --- a/mods/auth/src/utils/jwt.ts +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { promisify } from "util"; -import { sign, verify } from "jsonwebtoken"; -import logger from "@fonoster/logger"; -import JwtPayload from "./jwt_payload"; -import ITokenManager from "./itoken_manager"; -/* - * issuer  — Organization who issue the toke. - * role — User role - * accessKey — User access key - * expiresIn — Expiration time after which the token will be invalid. - * algorithm  — Encryption algorithm to be used to protect the token. - */ -export default class JWT implements ITokenManager { - async encode( - payload: JwtPayload, - privateKey: string, - expiresIn = "30d" - ): Promise { - if (!privateKey) throw new Error("Token generation failure"); - // @ts-ignore - return promisify(sign)({ ...payload }, privateKey, { - expiresIn - }); - } - - /** - * Returns the decoded payload if the signature is valid even if it is expired - */ - async decode(token: string, privateKey: string): Promise { - try { - // @ts-ignore - return (await promisify(verify)(token, privateKey, { - ignoreExpiration: false - })) as JwtPayload; - } catch (e) { - logger.log("error", "@fonoster/auth [Bad token]"); - throw new Error(e); - } - } -} diff --git a/mods/auth/src/utils/jwt_payload.ts b/mods/auth/src/utils/jwt_payload.ts deleted file mode 100644 index 120ca0fe2..000000000 --- a/mods/auth/src/utils/jwt_payload.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export default class JwtPayload { - iss: string; - role: string; - accessKeyId: string; - constructor(issuer: string, role: string, accessKeyId: string) { - this.iss = issuer; - this.role = role; - this.accessKeyId = accessKeyId; - } -} diff --git a/mods/auth/src/utils/role_has_access.ts b/mods/auth/src/utils/role_has_access.ts deleted file mode 100644 index 0828ae38b..000000000 --- a/mods/auth/src/utils/role_has_access.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import AuthPB from "../service/protos/auth_pb"; -import { AuthClient } from "../service/protos/auth_grpc_pb"; -import { getClientCredentials } from "@fonoster/common"; - -const svc = new AuthClient( - process.env.APISERVER_ENDPOINT || "localhost:50052", - getClientCredentials() -); - -export default async function ( - role: string, - service: string -): Promise { - return new Promise((resolve, reject) => { - const req = new AuthPB.GetRoleRequest(); - req.setName(role); - svc.getRole(req, (e: any, res: AuthPB.Role) => { - if (e) reject(e); - - resolve(res && res.getAccessList().includes(service)); - }); - }); -} diff --git a/mods/auth/test/auth.unit.test.ts b/mods/auth/test/auth.unit.test.ts deleted file mode 100644 index 018326028..000000000 --- a/mods/auth/test/auth.unit.test.ts +++ /dev/null @@ -1,101 +0,0 @@ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import AuthUtils from "../src/utils/auth_utils"; -import Jwt from "../src/utils/jwt"; -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/authentication", () => { - before(async () => { - sandbox.stub(Jwt); - }); - const expiredToken = - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJpc3MiLCJyb2xlIjoicm9sZSIsImFjY2Vzc0tleUlkIjoidXNlcmlkIiwiaWF0IjoxNjIzMjY1NDQxLCJleHAiOjE2MjMyNjU0NDJ9.2o_T4VgEekNCX3ATir6W_J24fduTXaRSks6zjs2-qBk"; - - it("should create a valid token", async () => { - const stubValue = "tokenfake"; - const jwtDependency = new Jwt(); - const authUtils = new AuthUtils(jwtDependency); - const parameter = { - accessKeyIdPayload: "userId", - issuePayload: "issue", - rolePayload: "role", - privateKey: "privatekey" - }; - const stub = sinon.stub(jwtDependency, "encode").resolves(stubValue); - const token = await authUtils.createToken( - parameter.accessKeyIdPayload, - parameter.issuePayload, - parameter.rolePayload, - "privatekey" - ); - expect(stub.calledOnce).to.be.true; - expect(token.accessToken).to.be.equal(stubValue); - }); - - it("should return a decode jwt", async () => { - const stubValue = { - iss: "iss", - role: "role", - accessKeyId: "userid" - }; - const jwtDependency = new Jwt(); - const authUtils = new AuthUtils(jwtDependency); - const parameter = { - accessToken: "token" - }; - const stub = sinon.stub(jwtDependency, "decode").resolves(stubValue); - - const token = await authUtils.validateToken(parameter, "privatekey"); - expect(stub.calledOnce).to.be.true; - expect(token.data).to.be.equal(stubValue); - }); - - it("should generate a jwt", async () => { - const stubValue = { - iss: "iss", - role: "role", - accessKeyId: "userid" - }; - const jwtDependency = new Jwt(); - const token = jwtDependency.encode(stubValue, "secret"); - expect(token).to.be.not.null; - }); - - it("should return an exception with no privatekey", async () => { - const stubValue = { - iss: "iss", - role: "role", - accessKeyId: "userid" - }; - const jwtDependency = new Jwt(); - jwtDependency.encode(stubValue, "").catch((err) => { - expect(err.message).to.be.equal("Token generation failure"); - }); - }); - - it("should return an exception with jwt expired", async () => { - const jwtDependency = new Jwt(); - await jwtDependency.decode(expiredToken, "secret").catch((err) => { - expect(err.message).to.include("jwt expired"); - }); - }); - - it("should decode a token", async () => { - const stubValue = { - iss: "iss", - role: "role", - accessKeyId: "userid" - }; - const jwtDependency = new Jwt(); - jwtDependency.encode(stubValue, "secret").then((result) => { - jwtDependency.decode(result, "secret").then((objectJWT) => { - expect(objectJWT.accessKeyId).to.be.equal(stubValue.accessKeyId); - }); - }); - }); -}); diff --git a/mods/auth/test/client.unit.test.ts b/mods/auth/test/client.unit.test.ts deleted file mode 100644 index 1748dad2d..000000000 --- a/mods/auth/test/client.unit.test.ts +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import Auth from "../src/client/auth"; -import { APIClient } from "@fonoster/common"; -import { AuthPB } from "../src/client/auth"; -import { CreateTokenResponse } from "../src/client/types"; -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -const createTokenResponse = new AuthPB.CreateTokenResponse(); -createTokenResponse.setToken("..."); - -describe("@fonoster/auth/client", () => { - afterEach(() => sandbox.restore()); - - it("creates a new no access token", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const stubAuth = sandbox.stub(APIClient.prototype, "getService").returns({ - createNoAccessToken: () => { - return { - sendMessage: () => Promise.resolve(createTokenResponse) - }; - } - }); - - const auth = new Auth(); - const result: CreateTokenResponse = await auth.createNoAccessToken({ - accessKeyId: "603693c0afaa1a080000000e" - }); - - expect(stubAuth).to.be.calledTwice; - expect(result) - .to.have.property("token") - .to.be.equal(createTokenResponse.getToken()); - }); - - it("creates a new access token", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const stubAuth = sandbox.stub(APIClient.prototype, "getService").returns({ - createToken: () => { - return { - sendMessage: () => Promise.resolve(createTokenResponse) - }; - } - }); - - const auth = new Auth(); - const result: CreateTokenResponse = await auth.createToken({ - accessKeyId: "603693c0afaa1a080000000e" - }); - - expect(stubAuth).to.be.calledTwice; - expect(result) - .to.have.property("token") - .to.be.equal(createTokenResponse.getToken()); - }); - - it("checks if a token is valid", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const stubAuth = sandbox.stub(APIClient.prototype, "getService").returns({ - validateToken: () => { - return { - sendMessage: () => - Promise.resolve({ - getValid: () => true - }) - }; - } - }); - - const auth = new Auth(); - const result = await auth.validateToken({ - token: - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmb25vcyIsInJvbGUiOiJVU0VSIiwiYWNjZXNzS2V5SWQiOiI2MDM2OTNjMGFmYWExYTA4MDAwMDAwMGMiLCJpYXQiOjE2MTQxODk1MDQsImV4cCI6MTYxNjc4MTUwNH0.4baHuvasGcJXjgqNfWCfh_qgRshdNf5WsACzE5DGUQ8" - }); - - expect(stubAuth).to.be.calledTwice; - expect(result).to.be.equal(true); - }); -}); diff --git a/mods/auth/tsconfig.json b/mods/auth/tsconfig.json deleted file mode 100644 index 7fa22037e..000000000 --- a/mods/auth/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../certs" }, - { "path": "../common" }, - { "path": "../logger" }, - { "path": "../errors" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/apps/.lerna-changed-buster-192 b/mods/authz/.lerna-changed-buster-5577 similarity index 100% rename from mods/apps/.lerna-changed-buster-192 rename to mods/authz/.lerna-changed-buster-5577 diff --git a/mods/authz/.npmignore b/mods/authz/.npmignore new file mode 100644 index 000000000..13fad0be9 --- /dev/null +++ b/mods/authz/.npmignore @@ -0,0 +1,5 @@ +.nyc_output +coverage +src +test +*.log diff --git a/mods/authz/README.md b/mods/authz/README.md new file mode 100644 index 000000000..359a4671f --- /dev/null +++ b/mods/authz/README.md @@ -0,0 +1,31 @@ +authz +================= + +[![Authz](https://img.shields.io/badge/authz-server-brightgreen.svg)](https://fonoster.com) +[![Version](https://img.shields.io/npm/v/@fonoster/authz.svg)](https://npmjs.org/package/@fonoster/authz) +[![Downloads/week](https://img.shields.io/npm/dw/@fonoster/authz.svg)](https://npmjs.org/package/@fonoster/authz) +[![License](https://img.shields.io/npm/l/@fonoster/authz.svg)](https://github.com/fonoster/fonoster/blob/main/package.json) + +Authz is a simple and extensible authorization module for Fonoster. It provides a way to authorize incoming phone and API calls. + +The module has a simple interface that allows you to create authorization strategies. That includes verifying if a session is authorized, if a GRPC method is authorized, charging an account, and getting the account balance. + +The interface is defined as follows: + +```typescript +type AuthzHandler = { + checkSessionAuthorized(request: VoiceRequest): Promise; + checkMethodAuthorized( + request: CheckMethodAuthorizedRequest + ): Promise; + addBillingMeterEvent(request: AddBillingMeterEventRequest): Promise; +}; +``` + +Please look at the [DummyAuthzHandler](./src/server/DummyAuthzHandler.ts) for an example of implementing your authorization strategy. + +## Enabling the Authz module + +To enable the Authz module you need to set the `AUTHZ_SERVICE_ENABLED` environment variable to `true`. Also, you need the `AUTHZ_SERVICE_HOST` (required), `AUTHZ_SERVICE_PORT` (defaults), and `AUTHZ_SERVICE_METHODS` (default is `/fonoster.calls.v1beta2.Calls/CreateCall`) environment variables. + +Imagine you want to authorize the creation of new Workspaces. You can add the `/fonoster.identity.v1beta2.Identity/CreateWorkspace` method to the `AUTHZ_SERVICE_METHODS` environment variable and implement the `checkMethodAuthorized` method in your AuthzHandler. diff --git a/mods/authz/package.json b/mods/authz/package.json new file mode 100644 index 000000000..fed117c7b --- /dev/null +++ b/mods/authz/package.json @@ -0,0 +1,44 @@ +{ + "name": "@fonoster/authz", + "version": "0.9.0", + "description": "Authorization module for Fonoster", + "author": "Pedro Sanders ", + "homepage": "https://github.com/fonoster/fonoster#readme", + "license": "MIT", + "main": "dist/index", + "types": "dist/index", + "directories": { + "src": "src", + "test": "test" + }, + "scripts": { + "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", + "build": "tsc -b tsconfig.json", + "clean": "rimraf ./dist node_modules tsconfig.tsbuildinfo" + }, + "bin": { + "authz": "./dist/server.js" + }, + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "dependencies": { + "@fonoster/common": "^0.9.0", + "@fonoster/identity": "^0.9.0", + "@fonoster/logger": "^0.9.0", + "@grpc/grpc-js": "~1.10.6", + "deepmerge": "^4.3.1", + "grpc-health-check": "^2.0.2" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/fonoster/fonoster.git" + }, + "bugs": { + "url": "https://github.com/fonoster/fonoster/issues" + }, + "gitHead": "d4aa82f7926c0f451d2f580c59ab812c74a7f579" +} diff --git a/mods/authz/src/client/AuthzClient.ts b/mods/authz/src/client/AuthzClient.ts new file mode 100644 index 000000000..70e7d1078 --- /dev/null +++ b/mods/authz/src/client/AuthzClient.ts @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import { serviceDefinition } from "../serviceDefinition"; +import { + CheckMethodAuthorizedRequest, + AddBillingMeterEventRequest, + VoiceRequest +} from "../types"; +import { AuthzServiceClient } from "./AuthzServiceClient"; + +/** + * AuthzClient class to interact with the AuthzServer via gRPC. + */ +export class AuthzClient { + private readonly client: AuthzServiceClient; + + /** + * Initializes the AuthzClient with the given configuration. + * @param address The address of the AuthzServer (e.g., "localhost:50051"). + */ + constructor(address: string) { + this.client = new (grpc.makeGenericClientConstructor( + serviceDefinition, + "AuthzService", + {} + ))( + address, + grpc.credentials.createInsecure() + ) as unknown as AuthzServiceClient; + } + + /** + * Checks if the session is authorized. + * @param request VoiceRequest containing session details. + * @returns Promise resolving to a boolean indicating authorization. + */ + async checkSessionAuthorized( + request: Partial + ): Promise { + return new Promise((resolve, reject) => { + this.client.checkSessionAuthorized(request, (error, response) => { + if (error) { + reject( + new Error( + `checkSessionAuthorized failed: ${error.message || error}` + ) + ); + } else if (response && typeof response.authorized === "boolean") { + resolve(response.authorized); + } else { + reject( + new Error(`checkSessionAuthorized failed: Invalid response format.`) + ); + } + }); + }); + } + + /** + * Checks if a specific method is authorized. + * @param request CheckMethodAuthorizedRequest containing accessKeyId and method. + * @returns Promise resolving to a boolean indicating authorization. + */ + async checkMethodAuthorized( + request: CheckMethodAuthorizedRequest + ): Promise { + return new Promise((resolve, reject) => { + this.client.checkMethodAuthorized(request, (error, response) => { + if (error) { + reject( + new Error(`checkMethodAuthorized failed: ${error.message || error}`) + ); + } else if (response && typeof response.authorized === "boolean") { + resolve(response.authorized); + } else { + reject( + new Error(`checkMethodAuthorized failed: Invalid response format.`) + ); + } + }); + }); + } + + /** + * Adds a billing meter event. + * @param request AddBillingMeterEventRequest containing accessKeyId and amount. + * @returns Promise resolving when the charge is successful. + */ + async addBillingMeterEvent( + request: AddBillingMeterEventRequest + ): Promise { + return new Promise((resolve, reject) => { + this.client.addBillingMeterEvent(request, (error, _response) => { + if (error) { + reject( + new Error(`addBillingMeterEvent failed: ${error.message || error}`) + ); + } else { + resolve(); + } + }); + }); + } + + /** + * Closes the gRPC client connection. + */ + close(): void { + this.client.close(); + } +} diff --git a/mods/authz/src/client/AuthzServiceClient.ts b/mods/authz/src/client/AuthzServiceClient.ts new file mode 100644 index 000000000..fe72e1626 --- /dev/null +++ b/mods/authz/src/client/AuthzServiceClient.ts @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import { + CheckMethodAuthorizedRequest, + VoiceRequest, + AddBillingMeterEventRequest +} from "../types"; + +/** + * Interface representing the AuthzService client methods. + * This should match the service definition used by the server. + */ +interface AuthzServiceClient extends grpc.Client { + checkSessionAuthorized( + request: Partial, + callback: grpc.requestCallback<{ authorized: boolean }> + ): void; + + checkMethodAuthorized( + request: CheckMethodAuthorizedRequest, + callback: grpc.requestCallback<{ authorized: boolean }> + ): void; + + addBillingMeterEvent( + request: AddBillingMeterEventRequest, + callback: grpc.requestCallback<{}> + ): void; +} + +export { AuthzServiceClient }; diff --git a/mods/authz/src/client/index.ts b/mods/authz/src/client/index.ts new file mode 100644 index 000000000..957f38320 --- /dev/null +++ b/mods/authz/src/client/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./AuthzClient"; +export * from "./AuthzServiceClient"; diff --git a/mods/authz/src/createCheckMethodAuthorized.ts b/mods/authz/src/createCheckMethodAuthorized.ts new file mode 100644 index 000000000..7750c6062 --- /dev/null +++ b/mods/authz/src/createCheckMethodAuthorized.ts @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + getAccessKeyIdFromCall, + createInterceptingCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { ServerInterceptingCall, status } from "@grpc/grpc-js"; +import { AuthzClient } from "./client/AuthzClient"; +import { CheckMethodAuthorizedRequest } from "./types"; + +const logger = getLogger({ service: "authz", filePath: __filename }); + +/** + * This function is a gRPC interceptor that checks if the request a method is authorized + * to be called by the user. + * + * @param {string} authzServer - The public key to validate the token + * @return {Function} - The gRPC interceptor + */ +function createCheckMethodAuthorized(authzServer: string, methods: string[]) { + logger.verbose("creating check method authorized interceptor", { + authzServer, + methods + }); + const authz = new AuthzClient(authzServer); + + /** + * Inner function that will be called by the gRPC server. + * + * @param {object} methodDefinition - The method definition + * @param {string} methodDefinition.path - The path of the gRPC method + * @param {ServerInterceptingCall} call - The call object + * @return {ServerInterceptingCall} - The modified call object + */ + return function checkMethodAuthorized( + methodDefinition: { path: string }, + call: ServerInterceptingCall + ) { + const { path: method } = methodDefinition; + + if (!methods.includes(method)) { + // Ignore the check if the method is not in the list + logger.silly("method is not in the list", { method }); + return call; + } + + const accessKeyId = getAccessKeyIdFromCall(call); + + logger.verbose("checking if method is authorized", { method, accessKeyId }); + + return new ServerInterceptingCall(call, { + start: async (next) => { + try { + const authorized = await authz.checkMethodAuthorized({ + accessKeyId, + method + } as CheckMethodAuthorizedRequest); + + logger.verbose("the status of the method authorization", { + method, + accessKeyId, + authorized + }); + + if (!authorized) { + logger.verbose("method unauthorized by external service", { + method, + accessKeyId + }); + createInterceptingCall({ + call, + code: status.PERMISSION_DENIED, + details: `Method unauthorized` + }); + return; + } + + next(); + } catch (error) { + logger.error("error checking if method is authorized", { + method, + accessKeyId, + error + }); + + createInterceptingCall({ + call, + code: status.INTERNAL, + details: "Internal server error" + }); + } + } + }); + }; +} + +export { createCheckMethodAuthorized }; diff --git a/mods/authz/src/index.ts b/mods/authz/src/index.ts new file mode 100644 index 000000000..f56440008 --- /dev/null +++ b/mods/authz/src/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./server"; +export * from "./client"; +export * from "./createCheckMethodAuthorized"; +export * from "./types"; diff --git a/mods/authz/src/server/AuthzServer.ts b/mods/authz/src/server/AuthzServer.ts new file mode 100644 index 000000000..1014fb21b --- /dev/null +++ b/mods/authz/src/server/AuthzServer.ts @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GRPC_SERVING_STATUS, + getServerCredentials, + statusMap +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import * as grpc from "@grpc/grpc-js"; +import merge from "deepmerge"; +import { HealthImplementation } from "grpc-health-check"; +import { defaultServerConfig } from "./defaultServerConfig"; +import { serviceDefinition } from "../serviceDefinition"; +import { ServerConfig, AuthzHandler } from "../types"; +import { struct } from "pb-util"; + +const logger = getLogger({ service: "authz", filePath: __filename }); + +class AuthzServer { + config: ServerConfig; + + constructor(config: ServerConfig = defaultServerConfig) { + this.config = merge(defaultServerConfig, config); + } + + async listen(handler: AuthzHandler) { + try { + const healthImpl = new HealthImplementation(statusMap); + const credentials = await getServerCredentials({}); + + const server: grpc.Server = new grpc.Server(); + + server.addService(serviceDefinition, { + checkSessionAuthorized: async ( + call: grpc.ServerUnaryCall, + callback: grpc.sendUnaryData + ) => { + logger.verbose("checkSessionAuthorized called", call.request); + + try { + const authorized = await handler.checkSessionAuthorized( + call.request + ); + callback(null, { authorized }); + } catch (error) { + logger.error("error in checkSessionAuthorized:", error); + callback({ + code: grpc.status.INTERNAL, + message: "Internal server error." + }); + } + }, + checkMethodAuthorized: async ( + call: grpc.ServerUnaryCall, + callback: grpc.sendUnaryData + ) => { + logger.verbose("checkMethodAuthorized called", call.request); + + try { + const authorized = await handler.checkMethodAuthorized( + call.request + ); + callback(null, { authorized }); + } catch (error) { + logger.error("error in checkMethodAuthorized:", error); + callback({ + code: grpc.status.INTERNAL, + message: "Internal server error." + }); + } + }, + addBillingMeterEvent: async ( + call: grpc.ServerUnaryCall, + callback: grpc.sendUnaryData + ) => { + logger.verbose("addBillingMeterEvent called", call.request); + + try { + const request = { + accessKeyId: call.request.accessKeyId, + payload: struct.decode(call.request.payload) + }; + await handler.addBillingMeterEvent(request); + callback(null, {}); + } catch (error) { + logger.error("Error in while adding billing meter event:", error); + callback({ + code: grpc.status.INTERNAL, + message: "Internal server error." + }); + } + } + }); + + healthImpl.addToServer(server); + + const bindAddr = `${this.config.bind}:${this.config.port}`; + + server.bindAsync(bindAddr, credentials, async (err, port) => { + if (err) { + logger.error("Failed to bind server:", err); + return; + } + healthImpl.setStatus("", GRPC_SERVING_STATUS); + logger.info(`Authz server started at ${this.config.bind}:${port}`); + }); + } catch (err) { + logger.error("Error starting AuthzServer:", err); + } + } +} + +export { AuthzServer }; diff --git a/mods/authz/src/server/DummyAuthzHandler.ts b/mods/authz/src/server/DummyAuthzHandler.ts new file mode 100644 index 000000000..781434b21 --- /dev/null +++ b/mods/authz/src/server/DummyAuthzHandler.ts @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { + AuthzHandler, + AddBillingMeterEventRequest, + CheckMethodAuthorizedRequest, + VoiceRequest +} from "../types"; +const logger = getLogger({ service: "authz", filePath: __filename }); + +class DummyAuthzHandler implements AuthzHandler { + async checkSessionAuthorized(request: VoiceRequest): Promise { + logger.verbose("checkSessionAuthorized called", request); + return true; + } + + async checkMethodAuthorized( + request: CheckMethodAuthorizedRequest + ): Promise { + logger.verbose("checkMethodAuthorized called", request); + return true; + } + + async addBillingMeterEvent( + request: AddBillingMeterEventRequest + ): Promise { + logger.verbose("chargeAccount called", request); + } +} + +export { DummyAuthzHandler }; diff --git a/mods/authz/src/server/defaultServerConfig.ts b/mods/authz/src/server/defaultServerConfig.ts new file mode 100644 index 000000000..6cec5af35 --- /dev/null +++ b/mods/authz/src/server/defaultServerConfig.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ServerConfig } from "../types"; + +const defaultServerConfig: ServerConfig = { + port: 50071, + bind: "0.0.0.0" +}; + +export { defaultServerConfig }; diff --git a/mods/authz/src/server/index.ts b/mods/authz/src/server/index.ts new file mode 100644 index 000000000..4083181c5 --- /dev/null +++ b/mods/authz/src/server/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./AuthzServer"; diff --git a/mods/authz/src/server/server.ts b/mods/authz/src/server/server.ts new file mode 100644 index 000000000..21aa16d0b --- /dev/null +++ b/mods/authz/src/server/server.ts @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { AuthzServer } from "./AuthzServer"; +import { DummyAuthzHandler } from "./DummyAuthzHandler"; + +new AuthzServer().listen(new DummyAuthzHandler()); diff --git a/mods/authz/src/serviceDefinition.ts b/mods/authz/src/serviceDefinition.ts new file mode 100644 index 000000000..f0ea7ae29 --- /dev/null +++ b/mods/authz/src/serviceDefinition.ts @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createServiceDefinition } from "@fonoster/common"; + +const serviceDefinition = createServiceDefinition({ + serviceName: "Authz", + pckg: "authz", + proto: "authz.proto", + version: "v1beta2" +}); + +export { serviceDefinition }; diff --git a/mods/authz/src/types.ts b/mods/authz/src/types.ts new file mode 100644 index 000000000..8711f9bb3 --- /dev/null +++ b/mods/authz/src/types.ts @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VoiceRequest } from "@fonoster/common"; + +type ServerConfig = { + bind?: string; + port?: number; +}; + +type CheckMethodAuthorizedRequest = { + accessKeyId: string; + method: string; +}; + +type AddBillingMeterEventRequest = { + accessKeyId: string; + payload: Record; +}; + +type AuthzHandler = { + checkSessionAuthorized(request: VoiceRequest): Promise; + checkMethodAuthorized( + request: CheckMethodAuthorizedRequest + ): Promise; + addBillingMeterEvent(request: AddBillingMeterEventRequest): Promise; +}; + +export { + ServerConfig, + AuthzHandler, + VoiceRequest, + CheckMethodAuthorizedRequest, + AddBillingMeterEventRequest +}; diff --git a/mods/authz/test/authz.test.ts b/mods/authz/test/authz.test.ts new file mode 100644 index 000000000..49aa1effb --- /dev/null +++ b/mods/authz/test/authz.test.ts @@ -0,0 +1,37 @@ +/* eslint-disable no-invalid-this */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@authz", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("needs tests", async function () { + }); +}); diff --git a/mods/authz/tsconfig.json b/mods/authz/tsconfig.json new file mode 100644 index 000000000..4bbb21070 --- /dev/null +++ b/mods/authz/tsconfig.json @@ -0,0 +1,22 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src", + "skipLibCheck": true, + "strictNullChecks": true, + "target": "es2020", + }, + "exclude": ["node_modules", "dist", "test"], + "references": [ + { + "path": "../common", + }, + { + "path": "../identity", + }, + { + "path": "../logger", + } + ], +} diff --git a/mods/autopilot/.intro.md b/mods/autopilot/.intro.md new file mode 100644 index 000000000..f7f6d8213 --- /dev/null +++ b/mods/autopilot/.intro.md @@ -0,0 +1,196 @@ +autopilot +================= + +[![Autopilot](https://img.shields.io/badge/autopilot-api-brightgreen.svg)](https://fonoster.com) +[![Version](https://img.shields.io/npm/v/@fonoster/autopilot.svg)](https://npmjs.org/package/@fonoster/autopilot) +[![Downloads/week](https://img.shields.io/npm/dw/@fonoster/autopilot.svg)](https://npmjs.org/package/@fonoster/autopilot) +[![License](https://img.shields.io/npm/l/@fonoster/autopilot.svg)](https://github.com/fonoster/fonoster/blob/main/package.json) + +The autopilot module provides a way to create Voice AI applications in Fonoster. It uses Fonoster internal Voice API and the power of Large Language Models to create a conversational experience with the calling party. + +* [Installation](#installation) +* [Example](#example) +* [Adding Knowledge Base](#configuring-the-knowledge-base) +* [Adding Tools](#configuring-the-tools) +* [What's Next](#whats-next) + +## Installation + +```sh-session +$ npm install -g @fonoster/autopilot +``` + +The previous command will install the module globally. + +## Example + +To function, Autopilot needs a configuration file, an OpenAI API key, and an active Fonoster account or self-hosted Fonoster instance. + +The configuration file has two major sections: `conversationSettings` and `languageModel`. The `conversationSettings` section contains the settings for the conversation, like the first message, the system template, and the transfer options. The `languageModel` section contains the settings for the language model, like the provider, the model, and the temperature, among others. + +```json +{ + "conversationSettings": { + "firstMessage": "Hello, this is Olivia from Dr. Green's Family Medicine. How can I assist you today?", + "systemPrompt": "You are a Customer Service Representative. You are here to help the caller with their needs.", + "systemErrorMessage": "I'm sorry, but I seem to be having trouble. Please try again later.", + "initialDtmf": "6589", + "transferOptions": { + "phoneNumber": "+15555555555", + "message": "Please hold while I transfer you to a live agent.", + "timeout": 30000 + }, + "idleOptions": { + "message": "Are you still there?", + "timeout": 10000, + "maxTimeoutCount": 3 + } + }, + "languageModel": { + "provider": "openai", + "model": "gpt-4o-mini", + "maxTokens": 250, + "temperature": 0.7, + "knowledgeBase": [], + "tools": [] + } +} +``` + +To run the Autopilot, you can use the following command: + +```sh-session +$ ASSISTANTS=$(pwd)/assistants.json OPEN_API_KEY=your-key autopilot +``` + +You will see a message like this: + +```sh-session +2024-09-06 11:32:16.584 [info]: (voice) started voice server @ 0.0.0.0, port=50061 {} +``` + +This means that the Autopilot is running and ready to take calls. + +Since you are running Autopilot locally, you must expose port 50061 to the Internet. To expose the port, you can use a service like [ngrok](https://ngrok.com/) + +```sh-session +$ ngrok tcp 50061 +``` + +Take the endpoint provided by ngrok and configure it in your Fonoster account. You can find more information about how to do this in the [Fonoster documentation](https://fonoster.com/docs). + +## Language Model Providers + +The Autopilot supports multiple language model providers. The following is a list of the supported providers: + +| Provider | Description | Supported models +|------------|------------------------------------------------------------|--------------------------------------------------------------------------------------------| +| OpenAI | OpenAI provides various GPT models for conversational AI | `gpt-4o`, `gpt-4o-mini`, `gpt-3.5-turbo`, `gpt-4-turbo` | +| Groq | Groq offers high-performance AI models optimized for speed | `llama-3.1-8b-instant`, `llama-3.3-70b-specdec` | +| Ollama | Self-hosted Ollama models | `llama3-groq-tool-use` | + +> We are constantly updating the list of supported providers and models. If you have a specific model you would like to use, please let us know. + +## Adding Knowledge Base + +A knowledge base provides information to the language model, such as business hours, services, or products. + +Currently, we support retrieving documents from an S3 bucket. + +To add a knowledge base, include a new entry in the `knowledgeBase` array in the configuration file. Below is an example of a knowledge for a menu PDF. + +```json +{ + "conversationSettings": { ... }, + "languageModel": { + "provider": "openai", + "model": "gpt-4o-mini", + "apiKey": "your-api-key", + "maxTokens": 100, + "temperature": 0.4, + "knowledgeBase": [{ + "type": "s3", + "title": "Menu PDF", + "document": "sample.pdf" + }], + "tools": [] + } +} +``` + +## Adding Tools + +A tool in Autopilot is a way to interact with external services to get information or perform actions. For example, you can use a tool to get the weather, the latest news, or an SMS. + +You can configure a new tool by adding a new entry in the `tools` array in the configuration file. The following is an example tool that gets the available appointment times for a specific date. + +```json +{ + "conversationSettings": { ... }, + "languageModel": { + "provider": "openai", + "model": "gpt-4o-mini", + "apiKey": "your-api-key", + "maxTokens": 100, + "temperature": 0.4, + "knowledgeBase": [], + "tools": [ + { + "name": "getAvailableTimes", + "description": "Get available appointment times for a specific date.", + "parameters": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date" + } + }, + "required": [ + "date" + ] + }, + "operation": { + "type": "get", + "url": "https://api.example.com/appointment-times", + "headers": { + "x-api-key": "your-api-key" + } + } + } + ] + } +} +``` + +In addition to the `get` operation type, you can use the `post` operation type. The `post` operation type is used when sending data to the tool. When sending a post, you can optionally set `waitForResponse` to false, which will "fire and forget" the request. The default behavior is to wait for the response. + +If your tool needs the number of the caller or the number that received the call, you can use the reserved variables `ingressNumber` and `callerNumber`. Similarly, you can use the reserved variable `callReceivedAt` to get the date and time when the call was received in `ISO 8601` format and the `callDirection` variable to check if the call was originated from the PSTN. + +The expected format for the response is a JSON object with the following structure: + +```json +{ "result": "text to pass to the language model" } +``` + +For example: + +```json +{ "result": "The available appointment times are 9:00 AM, 10:00 AM, and 11:00 AM." } +``` + +## Environment Variables + +Please use the following environment variables to configure the Autopilot: + +- `ASSISTANTS`: The path to the configuration file. +- `OPEN_API_KEY`: The OpenAI API key for embeddings support. +- `KNOWLEDGE_BASE_ENABLED`: Enable knowledge base powered by AWS S3 and Unstructured API. +- `AWS_S3_ACCESS_KEY_ID`: The AWS S3 access key. +- `AWS_S3_SECRET_ACCESS_KEY`: The AWS S3 secret access key. +- `UNSTRUCTURED_API_KEY`: The Unstructured API key. +- `UNSTRUCTURED_API_URL`: The Unstructured API URL. Default is `https://api.unstructured.com`. + +## What's Next + +The Autopilot is still under heavy development. The next steps are to add support for Retrieval-Augmented Generation(RAG), improve the language model integration, and improve the Finite State Machine (FSM) that powers the conversations. If you have any suggestions or feedback, please let us know. diff --git a/mods/auth/.lerna-changed-buster-192 b/mods/autopilot/.lerna-changed-buster-5577 similarity index 100% rename from mods/auth/.lerna-changed-buster-192 rename to mods/autopilot/.lerna-changed-buster-5577 diff --git a/mods/autopilot/.npmignore b/mods/autopilot/.npmignore new file mode 100644 index 000000000..91859ce6a --- /dev/null +++ b/mods/autopilot/.npmignore @@ -0,0 +1,8 @@ +node_modules +Dockerfile +intro.md +.nyc_output +coverage +src +test +*.log diff --git a/mods/autopilot/Dockerfile b/mods/autopilot/Dockerfile new file mode 100644 index 000000000..b1735d086 --- /dev/null +++ b/mods/autopilot/Dockerfile @@ -0,0 +1,35 @@ +## +# Build stage +## +FROM node:20-slim AS builder +LABEL team="Fonoster Team " + +WORKDIR /work +COPY . . + +RUN npm rebuild + +## +# Run stage +## +FROM node:20-slim + +ENV ASSISTANT=/opt/fonoster/assistant.json + +RUN groupadd -r appuser && useradd -r -g appuser -m -d /home/appuser appuser + +COPY --from=builder --chown=appuser:appuser /work/mods/autopilot/dist /home/appuser/autopilot/dist +COPY --from=builder --chown=appuser:appuser /work/mods/autopilot/package.json /home/appuser/autopilot/package.json +COPY --from=builder --chown=appuser:appuser /work/mods/autopilot/node_modules /home/appuser/autopilot/node_modules +COPY --from=builder --chown=appuser:appuser /work/mods/autopilot/silero_vad.onnx /home/appuser/autopilot/silero_vad.onnx +COPY --from=builder --chown=appuser:appuser /work/mods/autopilot/silero_vad_v5.onnx /home/appuser/autopilot/silero_vad_v5.onnx +COPY --from=builder --chown=appuser:appuser /work/mods/autopilot/silero_vad_v5_16k_op15.onnx /home/appuser/autopilot/silero_vad_v5_16k_op15.onnx + +WORKDIR /home/appuser/autopilot + +# Workaround for missing voice module +RUN npm install @fonoster/voice + +USER appuser + +CMD ["node", "/home/appuser/autopilot/dist/server.js"] diff --git a/mods/autopilot/README.md b/mods/autopilot/README.md new file mode 100644 index 000000000..3e630a4e7 --- /dev/null +++ b/mods/autopilot/README.md @@ -0,0 +1,198 @@ +autopilot +================= + +[![Autopilot](https://img.shields.io/badge/autopilot-api-brightgreen.svg)](https://fonoster.com) +[![Version](https://img.shields.io/npm/v/@fonoster/autopilot.svg)](https://npmjs.org/package/@fonoster/autopilot) +[![Downloads/week](https://img.shields.io/npm/dw/@fonoster/autopilot.svg)](https://npmjs.org/package/@fonoster/autopilot) +[![License](https://img.shields.io/npm/l/@fonoster/autopilot.svg)](https://github.com/fonoster/fonoster/blob/main/package.json) + +The autopilot module provides a way to create Voice AI applications in Fonoster. It uses Fonoster internal Voice API and the power of Large Language Models to create a conversational experience with the calling party. + +* [Installation](#installation) +* [Example](#example) +* [Adding Knowledge Base](#configuring-the-knowledge-base) +* [Adding Tools](#configuring-the-tools) +* [What's Next](#whats-next) + +## Installation + +```sh-session +$ npm install -g @fonoster/autopilot +``` + +The previous command will install the module globally. + +## Example + +To function, Autopilot needs a configuration file, an OpenAI API key, and an active Fonoster account or self-hosted Fonoster instance. + +The configuration file has two major sections: `conversationSettings` and `languageModel`. The `conversationSettings` section contains the settings for the conversation, like the first message, the system template, and the transfer options. The `languageModel` section contains the settings for the language model, like the provider, the model, and the temperature, among others. + +```json +{ + "conversationSettings": { + "firstMessage": "Hello, this is Olivia from Dr. Green's Family Medicine. How can I assist you today?", + "systemPrompt": "You are a Customer Service Representative. You are here to help the caller with their needs.", + "systemErrorMessage": "I'm sorry, but I seem to be having trouble. Please try again later.", + "initialDtmf": "6589", + "transferOptions": { + "phoneNumber": "+15555555555", + "message": "Please hold while I transfer you to a live agent.", + "timeout": 30000 + }, + "idleOptions": { + "message": "Are you still there?", + "timeout": 10000, + "maxTimeoutCount": 3 + } + }, + "languageModel": { + "provider": "openai", + "model": "gpt-4o-mini", + "maxTokens": 250, + "temperature": 0.7, + "knowledgeBase": [], + "tools": [] + } +} +``` + +To run the Autopilot, you can use the following command: + +```sh-session +$ ASSISTANTS=$(pwd)/assistants.json OPEN_API_KEY=your-key autopilot +``` + +You will see a message like this: + +```sh-session +2024-09-06 11:32:16.584 [info]: (voice) started voice server @ 0.0.0.0, port=50061 {} +``` + +This means that the Autopilot is running and ready to take calls. + +Since you are running Autopilot locally, you must expose port 50061 to the Internet. To expose the port, you can use a service like [ngrok](https://ngrok.com/) + +```sh-session +$ ngrok tcp 50061 +``` + +Take the endpoint provided by ngrok and configure it in your Fonoster account. You can find more information about how to do this in the [Fonoster documentation](https://fonoster.com/docs). + +## Language Model Providers + +The Autopilot supports multiple language model providers. The following is a list of the supported providers: + +| Provider | Description | Supported models +|------------|------------------------------------------------------------|--------------------------------------------------------------------------------------------| +| OpenAI | OpenAI provides various GPT models for conversational AI | `gpt-4o`, `gpt-4o-mini`, `gpt-3.5-turbo`, `gpt-4-turbo` | +| Groq | Groq offers high-performance AI models optimized for speed | `llama-3.1-8b-instant`, `llama-3.3-70b-specdec` | +| Ollama | Self-hosted Ollama models | `llama3-groq-tool-use` | + +> We are constantly updating the list of supported providers and models. If you have a specific model you would like to use, please let us know. + +## Adding Knowledge Base + +A knowledge base provides information to the language model, such as business hours, services, or products. + +Currently, we support retrieving documents from an S3 bucket. + +To add a knowledge base, include a new entry in the `knowledgeBase` array in the configuration file. Below is an example of a knowledge for a menu PDF. + +```json +{ + "conversationSettings": { ... }, + "languageModel": { + "provider": "openai", + "model": "gpt-4o-mini", + "apiKey": "your-api-key", + "maxTokens": 100, + "temperature": 0.4, + "knowledgeBase": [{ + "type": "s3", + "title": "Menu PDF", + "document": "sample.pdf" + }], + "tools": [] + } +} +``` + +## Adding Tools + +A tool in Autopilot is a way to interact with external services to get information or perform actions. For example, you can use a tool to get the weather, the latest news, or an SMS. + +You can configure a new tool by adding a new entry in the `tools` array in the configuration file. The following is an example tool that gets the available appointment times for a specific date. + +```json +{ + "conversationSettings": { ... }, + "languageModel": { + "provider": "openai", + "model": "gpt-4o-mini", + "apiKey": "your-api-key", + "maxTokens": 100, + "temperature": 0.4, + "knowledgeBase": [], + "tools": [ + { + "name": "getAvailableTimes", + "description": "Get available appointment times for a specific date.", + "parameters": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date" + } + }, + "required": [ + "date" + ] + }, + "operation": { + "type": "get", + "url": "https://api.example.com/appointment-times", + "headers": { + "x-api-key": "your-api-key" + } + } + } + ] + } +} +``` + +In addition to the `get` operation type, you can use the `post` operation type. The `post` operation type is used when sending data to the tool. When sending a post, you can optionally set `waitForResponse` to false, which will "fire and forget" the request. The default behavior is to wait for the response. + +If your tool needs the number of the caller or the number that received the call, you can use the reserved variables `ingressNumber` and `callerNumber`. Similarly, you can use the reserved variable `callReceivedAt` to get the date and time when the call was received in `ISO 8601` format and the `callDirection` variable to check if the call was originated from the PSTN. + +The expected format for the response is a JSON object with the following structure: + +```json +{ "result": "text to pass to the language model" } +``` + +For example: + +```json +{ "result": "The available appointment times are 9:00 AM, 10:00 AM, and 11:00 AM." } +``` + +## Environment Variables + +Please use the following environment variables to configure the Autopilot: + +- `ASSISTANTS`: The path to the configuration file. +- `OPEN_API_KEY`: The OpenAI API key for embeddings support. +- `KNOWLEDGE_BASE_ENABLED`: Enable knowledge base powered by AWS S3 and Unstructured API. +- `AWS_S3_ACCESS_KEY_ID`: The AWS S3 access key. +- `AWS_S3_SECRET_ACCESS_KEY`: The AWS S3 secret access key. +- `UNSTRUCTURED_API_KEY`: The Unstructured API key. +- `UNSTRUCTURED_API_URL`: The Unstructured API URL. Default is `https://api.unstructured.com`. + +## What's Next + +The Autopilot is still under heavy development. The next steps are to add support for Retrieval-Augmented Generation(RAG), improve the language model integration, and improve the Finite State Machine (FSM) that powers the conversations. If you have any suggestions or feedback, please let us know. + + diff --git a/mods/autopilot/package.json b/mods/autopilot/package.json new file mode 100644 index 000000000..f911e87d5 --- /dev/null +++ b/mods/autopilot/package.json @@ -0,0 +1,61 @@ +{ + "name": "@fonoster/autopilot", + "version": "0.9.0", + "description": "Voice AI for the Fonoster platform", + "author": "Pedro Sanders ", + "homepage": "https://github.com/fonoster/fonoster#readme", + "license": "MIT", + "main": "dist/index", + "types": "dist/index", + "directories": { + "src": "src", + "test": "test" + }, + "scripts": { + "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", + "build": "tsc -b tsconfig.json", + "clean": "rimraf ./dist node_modules tsconfig.tsbuildinfo", + "generate:readme": "node ../../.scripts/gen-readme.js" + }, + "files": [ + "dist", + "silero_vad.onnx" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/fonoster/fonoster.git" + }, + "bugs": { + "url": "https://github.com/fonoster/fonoster/issues" + }, + "dependencies": { + "@aws-sdk/client-s3": "^3.712.0", + "@fonoster/common": "^0.9.0", + "@fonoster/logger": "^0.9.0", + "@fonoster/sdk": "^0.9.0", + "@fonoster/types": "^0.9.0", + "@fonoster/voice": "^0.9.0", + "@langchain/community": "^0.3.29", + "@langchain/core": "^0.3.39", + "@langchain/groq": "^0.1.3", + "@langchain/ollama": "^0.1.5", + "@langchain/openai": "^0.4.3", + "cheerio": "^1.0.0", + "cli-table3": "^0.6.5", + "dotenv": "^16.4.5", + "js-yaml": "^4.1.0", + "langchain": "^0.3.6", + "onnxruntime-node": "^1.19.0", + "pdf-parse": "^1.1.1", + "uuid": "^11.0.3", + "xstate": "^5.17.3", + "zod": "^3.23.8" + }, + "devDependencies": { + "typescript": "^5.5.4" + }, + "gitHead": "d4aa82f7926c0f451d2f580c59ab812c74a7f579" +} diff --git a/mods/autopilot/silero_vad.onnx b/mods/autopilot/silero_vad.onnx new file mode 100644 index 000000000..e6db48d6e Binary files /dev/null and b/mods/autopilot/silero_vad.onnx differ diff --git a/mods/autopilot/silero_vad_v5.onnx b/mods/autopilot/silero_vad_v5.onnx new file mode 100644 index 000000000..b3e3a900c Binary files /dev/null and b/mods/autopilot/silero_vad_v5.onnx differ diff --git a/mods/autopilot/silero_vad_v5_16k_op15.onnx b/mods/autopilot/silero_vad_v5_16k_op15.onnx new file mode 100644 index 000000000..0607ae8a7 Binary files /dev/null and b/mods/autopilot/silero_vad_v5_16k_op15.onnx differ diff --git a/mods/autopilot/src/Autopilot.ts b/mods/autopilot/src/Autopilot.ts new file mode 100644 index 000000000..33c3799de --- /dev/null +++ b/mods/autopilot/src/Autopilot.ts @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import path from "path"; +import { Worker } from "worker_threads"; +import { getLogger } from "@fonoster/logger"; +import { Actor, createActor } from "xstate"; +import { machine } from "./machine/machine"; +import { AutopilotParams } from "./types"; +import { VadEvent } from "./vad"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +class Autopilot { + private readonly actor: Actor; + private readonly vadWorker: Worker; + + constructor(private readonly params: AutopilotParams) { + const { voice, languageModel, conversationSettings } = this.params; + const vadWorkerPath = path.resolve(__dirname, "../dist", "./vadWorker"); + this.vadWorker = new Worker(vadWorkerPath, { + workerData: conversationSettings.vad + }); + this.actor = createActor(machine, { + input: { + conversationSettings, + languageModel, + voice + } + }); + } + + start() { + this.actor.start(); + this.actor.subscribe((state) => { + logger.verbose("actor's new state is", { state: state.value }); + }); + this.setupVoiceStream(); + this.setupSpeechGathering(); + + this.vadWorker.on("error", (err) => { + logger.error("vad worker error", err); + }); + + this.vadWorker.on("exit", (code) => { + if (code !== 0) { + logger.error("vad worker stopped with exit code", { code }); + } + }); + } + + stop() { + logger.verbose("stopping autopilot"); + this.actor.stop(); + } + + private async setupVoiceStream() { + const { voice } = this.params; + const stream = await voice.stream(); + + stream.onData(this.handleVoicePayload.bind(this)); + + this.vadWorker.on("message", (event: VadEvent) => { + logger.verbose("received speech event from vad", { event }); + + if (event === "SPEECH_START") { + this.actor.send({ type: "SPEECH_START" }); + } else if (event === "SPEECH_END") { + this.actor.send({ type: "SPEECH_END" }); + } + }); + } + + private handleVoicePayload(chunk: Uint8Array) { + try { + this.vadWorker.postMessage(chunk); + } catch (err) { + logger.error("an error occurred while processing vad", err); + } + } + + private async setupSpeechGathering() { + const { voice } = this.params; + const stream = await voice.sgather(); + + stream.onData((payload: { speech: string; responseTime: number }) => { + const { speech, responseTime } = payload; + + logger.verbose("received speech result", { speech, responseTime }); + + if (payload.speech) { + this.actor.send({ type: "SPEECH_RESULT", speech, responseTime }); + } + }); + } +} + +export { Autopilot }; diff --git a/mods/autopilot/src/assistants/index.ts b/mods/autopilot/src/assistants/index.ts new file mode 100644 index 000000000..b016dd383 --- /dev/null +++ b/mods/autopilot/src/assistants/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./loadAndValidateAssistant"; +export * from "./types"; diff --git a/mods/autopilot/src/assistants/loadAndValidateAssistant.ts b/mods/autopilot/src/assistants/loadAndValidateAssistant.ts new file mode 100644 index 000000000..b369524ee --- /dev/null +++ b/mods/autopilot/src/assistants/loadAndValidateAssistant.ts @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fs from "fs"; +import { getLogger } from "@fonoster/logger"; +import { AssistantConfig } from "./types"; +import { assistantSchema } from "@fonoster/common"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +function loadAndValidateAssistant(path: string): AssistantConfig { + if (!fs.existsSync(path)) { + logger.error("assistant file not found", { path }); + process.exit(1); + } + + try { + const fileContent = fs.readFileSync(path, "utf8"); + const assistant = JSON.parse(fileContent) as unknown; + + return assistantSchema.parse(assistant); + } catch (e) { + logger.error("error parsing or validating assistant file", { + path, + error: e + }); + process.exit(1); + } +} + +export { loadAndValidateAssistant }; diff --git a/mods/autopilot/src/assistants/types.ts b/mods/autopilot/src/assistants/types.ts new file mode 100644 index 000000000..37c766764 --- /dev/null +++ b/mods/autopilot/src/assistants/types.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { + assistantSchema, + conversationSettingsSchema, + languageModelConfigSchema +} from "@fonoster/common"; + +type ConversationSettings = z.infer; +type LanguageModelConfig = z.infer; +type AssistantConfig = z.infer; + +export { AssistantConfig, ConversationSettings, LanguageModelConfig }; diff --git a/mods/autopilot/src/envs.ts b/mods/autopilot/src/envs.ts new file mode 100644 index 000000000..aad295414 --- /dev/null +++ b/mods/autopilot/src/envs.ts @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { join } from "path"; +import { assertEnvsAreSet, assertFileExists } from "@fonoster/common"; +import dotenv from "dotenv"; +import { ConversationProvider } from "./types"; + +if (process.env.NODE_ENV === "dev") { + dotenv.config({ path: join(__dirname, "..", "..", "..", ".env") }); +} + +const e = process.env; + +export const SKIP_IDENTITY = e.SKIP_IDENTITY === "true"; +export const AWS_S3_ACCESS_KEY_ID = e.AWS_S3_ACCESS_KEY_ID; +export const AWS_S3_ENDPOINT = e.AWS_S3_ENDPOINT; +export const AWS_S3_REGION = e.AWS_S3_REGION ?? "us-east-1"; +export const AWS_S3_SECRET_ACCESS_KEY = e.AWS_S3_SECRET_ACCESS_KEY; +export const KNOWLEDGE_BASE_ENABLED = e.KNOWLEDGE_BASE_ENABLED === "true"; +export const NODE_ENV = e.NODE_ENV || "production"; +export const UNSTRUCTURED_API_KEY = e.UNSTRUCTURED_API_KEY; +export const UNSTRUCTURED_API_URL = + e.UNSTRUCTURED_API_URL ?? "https://api.unstructuredapp.io/general/v0/general"; +export const SILERO_VAD_VERSION = e.SILERO_VAD_VERSION ?? "v5"; +export const CONVERSATION_PROVIDER = e.CONVERSATION_PROVIDER + ? e.CONVERSATION_PROVIDER + : ConversationProvider.FILE; +export const CONVERSATION_PROVIDER_FILE = e.CONVERSATION_PROVIDER_FILE + ? e.CONVERSATION_PROVIDER_FILE + : `${process.cwd()}/config/assistant.json`; +export const APISERVER_ENDPOINT = e.APISERVER_ENDPOINT + ? e.APISERVER_ENDPOINT + : "apiserver:50051"; +export const INTEGRATIONS_FILE = e.INTEGRATIONS_FILE + ? e.INTEGRATIONS_FILE + : `${process.cwd()}/config/integrations.json`; + +if (SILERO_VAD_VERSION !== "v4" && SILERO_VAD_VERSION !== "v5") { + console.error("SILERO_VAD_VERSION must be set to 'v4' or 'v5'"); + process.exit(1); +} + +if ( + CONVERSATION_PROVIDER!.toLocaleLowerCase() !== ConversationProvider.API && + CONVERSATION_PROVIDER!.toLocaleLowerCase() !== ConversationProvider.FILE +) { + console.error("CONVERSATION_PROVIDER must be set to 'api' or 'file'"); + process.exit(1); +} + +if (CONVERSATION_PROVIDER!.toLocaleLowerCase() === ConversationProvider.API) { + assertFileExists(INTEGRATIONS_FILE); +} + +if (KNOWLEDGE_BASE_ENABLED) { + assertEnvsAreSet([ + "AWS_S3_ACCESS_KEY_ID", + "AWS_S3_SECRET_ACCESS_KEY", + "UNSTRUCTURED_API_KEY" + ]); +} diff --git a/mods/autopilot/src/handleVoiceRequest.ts b/mods/autopilot/src/handleVoiceRequest.ts new file mode 100644 index 000000000..023dee7c7 --- /dev/null +++ b/mods/autopilot/src/handleVoiceRequest.ts @@ -0,0 +1,139 @@ +// @ts-nocheck - All inputs are validated by the APIServer +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { StreamEvent } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { VoiceRequest, VoiceResponse } from "@fonoster/voice"; +import { createLanguageModel } from "./models/createLanguageModel"; +import { + AWS_S3_ACCESS_KEY_ID, + AWS_S3_ENDPOINT, + AWS_S3_REGION, + AWS_S3_SECRET_ACCESS_KEY, + KNOWLEDGE_BASE_ENABLED, + UNSTRUCTURED_API_KEY, + UNSTRUCTURED_API_URL, + CONVERSATION_PROVIDER, + CONVERSATION_PROVIDER_FILE, + INTEGRATIONS_FILE +} from "./envs"; +import { loadAssistantConfigFromFile } from "./loadAssistantConfigFromFile"; +import Autopilot, { ConversationProvider, S3KnowledgeBase, VoiceImpl } from "."; +import { loadAssistantFromAPI } from "./loadAssistantFromAPI"; +import fs from "fs"; +import { sendConversationEndedEvent } from "./sendConversationEndedEvent"; +import { BaseMessage } from "@langchain/core/messages"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +async function handleVoiceRequest(req: VoiceRequest, res: VoiceResponse) { + const { + accessKeyId, + callerNumber, + ingressNumber, + sessionRef, + appRef, + callDirection + } = req; + + logger.verbose("voice request", { + accessKeyId, + ingressNumber, + sessionRef, + appRef, + metadata: req.metadata + }); + + const assistantConfig = + CONVERSATION_PROVIDER === ConversationProvider.FILE + ? loadAssistantConfigFromFile(CONVERSATION_PROVIDER_FILE) + : await loadAssistantFromAPI( + req, + JSON.parse(fs.readFileSync(INTEGRATIONS_FILE, "utf8")) + ); + + let knowledgeBase; + + if (KNOWLEDGE_BASE_ENABLED) { + knowledgeBase = new S3KnowledgeBase({ + bucket: req.accessKeyId.toLowerCase(), + documents: assistantConfig.languageModel.knowledgeBase.map( + (doc) => doc.document + ), + s3Config: { + endpoint: AWS_S3_ENDPOINT, + region: AWS_S3_REGION, + credentials: { + accessKeyId: AWS_S3_ACCESS_KEY_ID, + secretAccessKey: AWS_S3_SECRET_ACCESS_KEY + }, + forcePathStyle: true + }, + unstructuredAPIURL: UNSTRUCTURED_API_URL, + unstructuredAPIKey: UNSTRUCTURED_API_KEY + }); + } + + knowledgeBase?.load().then(() => { + logger.verbose("knowledge base loaded"); + }); + + const voice = new VoiceImpl(sessionRef, res); + + const languageModel = createLanguageModel({ + voice, + assistantConfig, + knowledgeBase, + telephonyContext: { + callDirection, + ingressNumber, + callerNumber + } + }); + + const { conversationSettings } = assistantConfig; + + const autopilot = new Autopilot({ + conversationSettings, + voice, + languageModel + }); + + autopilot.start(); + + res.on(StreamEvent.END, async () => { + autopilot.stop(); + + const rawChatHistory = await languageModel.getChatHistoryMessages(); + const chatHistory = rawChatHistory + .map((msg: BaseMessage) => { + if (msg.constructor.name === "HumanMessage") { + return { human: msg.content }; + } else if (msg.constructor.name === "AIMessage") { + return { ai: msg.content }; + } + return null; + }) + .filter(Boolean); + + await sendConversationEndedEvent(assistantConfig.eventsHook, chatHistory); + }); +} + +export { handleVoiceRequest }; diff --git a/mods/autopilot/src/index.ts b/mods/autopilot/src/index.ts new file mode 100644 index 000000000..4dcdaa5ca --- /dev/null +++ b/mods/autopilot/src/index.ts @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Autopilot } from "./Autopilot"; + +export default Autopilot; + +export * from "./assistants"; +export * from "./knowledge"; +export * from "./models"; +export * from "./tools"; +export * from "./types"; +export * from "./vad"; +export * from "./voice"; diff --git a/mods/autopilot/src/knowledge/AbstractKnowledgeBase.ts b/mods/autopilot/src/knowledge/AbstractKnowledgeBase.ts new file mode 100644 index 000000000..bd8922237 --- /dev/null +++ b/mods/autopilot/src/knowledge/AbstractKnowledgeBase.ts @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { Document } from "@langchain/core/documents"; +import { Embeddings } from "@langchain/core/embeddings"; +import { VectorStore } from "@langchain/core/vectorstores"; +import { OpenAIEmbeddings } from "@langchain/openai"; +import { RecursiveCharacterTextSplitter } from "langchain/text_splitter"; +import { MemoryVectorStore } from "langchain/vectorstores/memory"; +import { KnowledgeBase } from "./types"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +abstract class AbstractKnowledgeBase implements KnowledgeBase { + protected embeddings: Embeddings; + protected vectorStore: VectorStore; + + constructor(params?: { embeddings?: Embeddings }) { + this.embeddings = params?.embeddings || new OpenAIEmbeddings(); + } + + abstract getLoaders(): Promise; + + async load(): Promise { + const loaders = (await this.getLoaders()) as { + load: () => Promise; + }[]; + + if (loaders.length !== 0) { + // No loaders to load + return; + } + + const loadedDocs = await Promise.all( + loaders.map((loader) => loader.load()) + ); + + const textSplitter = new RecursiveCharacterTextSplitter({ + chunkSize: 1000, + chunkOverlap: 200 + }); + + const splitDocs = await Promise.all( + loadedDocs.map((docs) => textSplitter.splitDocuments(docs)) + ); + + this.vectorStore = await MemoryVectorStore.fromDocuments( + splitDocs.flat(), + this.embeddings + ); + } + + async queryKnowledgeBase(query: string, k = 2): Promise { + const { vectorStore } = this; + + if (!vectorStore) { + logger.verbose("vector store is not initialized, returning empty string"); + return ""; + } + + const results = await vectorStore.similaritySearch(query, k); + + return results.join("\n"); + } +} + +export { AbstractKnowledgeBase }; diff --git a/mods/autopilot/src/knowledge/FilesKnowledgeBase.ts b/mods/autopilot/src/knowledge/FilesKnowledgeBase.ts new file mode 100644 index 000000000..3d5e44e85 --- /dev/null +++ b/mods/autopilot/src/knowledge/FilesKnowledgeBase.ts @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { PDFLoader } from "@langchain/community/document_loaders/fs/pdf"; +import { Embeddings } from "@langchain/core/embeddings"; +import { AbstractKnowledgeBase } from "./AbstractKnowledgeBase"; + +class FilesKnowledgeBase extends AbstractKnowledgeBase { + constructor(private params: { embeddings?: Embeddings; files: string[] }) { + super(params); + this.params = params; + } + + async getLoaders(): Promise { + const { files } = this.params; + + if (!files.every((file) => file.endsWith(".pdf"))) { + throw new Error("Only PDF files are supported"); + } + + return files.map( + (file: string) => new PDFLoader(file, { splitPages: false }) + ); + } +} + +export { FilesKnowledgeBase }; diff --git a/mods/autopilot/src/knowledge/S3KnowledgeBase.ts b/mods/autopilot/src/knowledge/S3KnowledgeBase.ts new file mode 100644 index 000000000..2378f0b8c --- /dev/null +++ b/mods/autopilot/src/knowledge/S3KnowledgeBase.ts @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { S3Loader } from "@langchain/community/document_loaders/web/s3"; +import { AbstractKnowledgeBase } from "./AbstractKnowledgeBase"; +import { S3KnowledgeBaseParams } from "./types"; + +class S3KnowledgeBase extends AbstractKnowledgeBase { + constructor(private params: S3KnowledgeBaseParams) { + super(params); + this.params = params; + } + + async getLoaders(): Promise { + const { documents } = this.params; + if (!documents.every((file) => file.endsWith(".pdf"))) { + throw new Error("Only PDF files are supported"); + } + + const { bucket, s3Config, unstructuredAPIURL, unstructuredAPIKey } = + this.params; + + return documents.map( + (document) => + new S3Loader({ + bucket, + key: document, + s3Config, + unstructuredAPIURL, + unstructuredAPIKey + }) + ); + } +} + +export { S3KnowledgeBase }; diff --git a/mods/autopilot/src/knowledge/index.ts b/mods/autopilot/src/knowledge/index.ts new file mode 100644 index 000000000..b7ea7404f --- /dev/null +++ b/mods/autopilot/src/knowledge/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./AbstractKnowledgeBase"; +export * from "./FilesKnowledgeBase"; +export * from "./S3KnowledgeBase"; +export * from "./types"; diff --git a/mods/autopilot/src/knowledge/types.ts b/mods/autopilot/src/knowledge/types.ts new file mode 100644 index 000000000..6269428c3 --- /dev/null +++ b/mods/autopilot/src/knowledge/types.ts @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Embeddings } from "@langchain/core/embeddings"; + +type KnowledgeBase = { + load: () => Promise; + queryKnowledgeBase: (query: string, k?: number) => Promise; +}; + +type S3KnowledgeBaseParams = { + embeddings?: Embeddings; + bucket: string; + documents: string[]; + s3Config: { + endpoint: string; + region: string; + credentials: { + accessKeyId: string; + secretAccessKey: string; + }; + forcePathStyle: boolean; + }; + unstructuredAPIURL: string; + unstructuredAPIKey: string; +}; + +export { KnowledgeBase, S3KnowledgeBaseParams }; diff --git a/mods/autopilot/src/loadAssistantConfigFromFile.ts b/mods/autopilot/src/loadAssistantConfigFromFile.ts new file mode 100644 index 000000000..2e6298cb1 --- /dev/null +++ b/mods/autopilot/src/loadAssistantConfigFromFile.ts @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as path from "path"; +import { AssistantConfig, loadAndValidateAssistant } from "."; +import { getLogger } from "@fonoster/logger"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +function loadAssistantConfigFromFile( + pathToAssistantConfig: string +): AssistantConfig { + try { + const assistantPath = path.resolve(process.cwd(), pathToAssistantConfig); + return loadAndValidateAssistant(assistantPath); + } catch (error) { + logger.error("Error loading assistant config from file", error); + throw error; + } +} + +export { loadAssistantConfigFromFile }; diff --git a/mods/autopilot/src/loadAssistantFromAPI.ts b/mods/autopilot/src/loadAssistantFromAPI.ts new file mode 100644 index 000000000..ac7ae8a85 --- /dev/null +++ b/mods/autopilot/src/loadAssistantFromAPI.ts @@ -0,0 +1,79 @@ +// @ts-nocheck - All inputs are validated by the APIServer +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { findIntegrationsCredentials, VoiceRequest } from "@fonoster/common"; +import * as SDK from "@fonoster/sdk"; +import { AssistantConfig } from "./assistants"; +import { APISERVER_ENDPOINT } from "./envs"; +import { getLogger } from "@fonoster/logger"; +import { assistantSchema } from "@fonoster/common"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +function loadAssistantFromAPI( + req: VoiceRequest, + // TODO: Add validation for integrations + integrations: { + productRef: string; + credentials: Record; + }[] +): Promise { + return new Promise((resolve, reject) => { + const clientConfig = { + accessKeyId: req.accessKeyId, + endpoint: APISERVER_ENDPOINT, + allowInsecure: true, + withoutInterceptors: true + }; + + const client = new SDK.Client(clientConfig); + client.setAccessToken(req.sessionToken); + const applications = new SDK.Applications(client); + + logger.verbose(`loading assistant config from api`, { + apiserver: APISERVER_ENDPOINT, + appRef: req.appRef + }); + + applications + .getApplication(req.appRef) + .then((app) => { + logger.verbose(`get credentials for assistant`, { + appRef: req.appRef, + productRef: app.intelligence?.productRef + }); + + const credentials = findIntegrationsCredentials( + integrations, + app.intelligence?.productRef + ); + + const assistantConfig = app.intelligence?.config as AssistantConfig; + + assistantConfig.languageModel.apiKey = credentials?.apiKey as string; + + resolve(assistantSchema.parse(assistantConfig)); + }) + .catch((err) => { + reject(new Error(`Failed to load assistant config from API: ${err}`)); + }); + }); +} + +export { loadAssistantFromAPI }; diff --git a/mods/autopilot/src/machine/actions/announceIdleTimeout.ts b/mods/autopilot/src/machine/actions/announceIdleTimeout.ts new file mode 100644 index 000000000..8c03656a4 --- /dev/null +++ b/mods/autopilot/src/machine/actions/announceIdleTimeout.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { AutopilotContext } from "../types"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const announceIdleTimeout = async ({ + context +}: { + context: AutopilotContext; +}) => { + logger.verbose("called the announceIdleTimeout action", { + idleMessage: context.idleMessage + }); + await context.voice.say(context.idleMessage); +}; diff --git a/mods/autopilot/src/machine/actions/announceSystemError.ts b/mods/autopilot/src/machine/actions/announceSystemError.ts new file mode 100644 index 000000000..4bd17d2ad --- /dev/null +++ b/mods/autopilot/src/machine/actions/announceSystemError.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { AutopilotContext } from "../types"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const announceSystemError = async ({ + context +}: { + context: AutopilotContext; +}) => { + logger.verbose("called the announceSystemError action", { + systemErrorMessage: context.systemErrorMessage + }); + await context.voice.say(context.systemErrorMessage); +}; diff --git a/mods/autopilot/src/machine/actions/appendSpeech.ts b/mods/autopilot/src/machine/actions/appendSpeech.ts new file mode 100644 index 000000000..911a87364 --- /dev/null +++ b/mods/autopilot/src/machine/actions/appendSpeech.ts @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { assign } from "xstate"; +import { getLogger } from "@fonoster/logger"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const appendSpeech = assign(({ context, event }) => { + const speech = (event as unknown as { speech: string }).speech; + + logger.verbose("called the appendSpeech action", { speech }); + + if (!speech) { + return context; + } + + context.speechBuffer = ( + (context.speechBuffer ?? "") + + " " + + speech + ).trimStart(); + + return context; +}); diff --git a/mods/autopilot/src/machine/actions/cleanSpeech.ts b/mods/autopilot/src/machine/actions/cleanSpeech.ts new file mode 100644 index 000000000..b494aa478 --- /dev/null +++ b/mods/autopilot/src/machine/actions/cleanSpeech.ts @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { assign } from "xstate"; + +export const cleanSpeech = assign({ speechBuffer: "" }); diff --git a/mods/autopilot/src/machine/actions/goodbye.ts b/mods/autopilot/src/machine/actions/goodbye.ts new file mode 100644 index 000000000..3c9b1bb1a --- /dev/null +++ b/mods/autopilot/src/machine/actions/goodbye.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { AutopilotContext } from "../types"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const goodbye = async ({ context }: { context: AutopilotContext }) => { + logger.verbose("called the goodbye action", { + goodbyeMessage: context.goodbyeMessage + }); + await context.voice.say(context.goodbyeMessage); + await context.voice.hangup(); +}; diff --git a/mods/autopilot/src/machine/actions/greetUser.ts b/mods/autopilot/src/machine/actions/greetUser.ts new file mode 100644 index 000000000..fe58a4d5a --- /dev/null +++ b/mods/autopilot/src/machine/actions/greetUser.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { AutopilotContext } from "../types"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const greetUser = async ({ + context +}: { + context: AutopilotContext; +}): Promise => { + logger.verbose("called the greetUser action", { + firstMessage: context.firstMessage + }); + + await context.voice.answer(); + + if (context.firstMessage) { + await context.voice.say(context.firstMessage); + } +}; diff --git a/mods/autopilot/src/machine/actions/increaseIdleTimeoutCount.ts b/mods/autopilot/src/machine/actions/increaseIdleTimeoutCount.ts new file mode 100644 index 000000000..f28a10cba --- /dev/null +++ b/mods/autopilot/src/machine/actions/increaseIdleTimeoutCount.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { assign } from "xstate"; +import { getLogger } from "@fonoster/logger"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const increaseIdleTimeoutCount = assign(({ context }) => { + logger.verbose("called the increaseIdleTimeoutCount action", { + idleTimeoutCount: context.idleTimeoutCount + 1 + }); + context.idleTimeoutCount++; + return context; +}); diff --git a/mods/autopilot/src/machine/actions/index.ts b/mods/autopilot/src/machine/actions/index.ts new file mode 100644 index 000000000..1240f7d2b --- /dev/null +++ b/mods/autopilot/src/machine/actions/index.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { greetUser } from "./greetUser"; +export { goodbye } from "./goodbye"; +export { announceSystemError } from "./announceSystemError"; +export { interruptPlayback } from "./interruptPlayback"; +export { announceIdleTimeout } from "./announceIdleTimeout"; +export { increaseIdleTimeoutCount } from "./increaseIdleTimeoutCount"; +export { cleanSpeech } from "./cleanSpeech"; +export { appendSpeech } from "./appendSpeech"; +export { resetIdleTimeoutCount } from "./resetIdleTimeoutCount"; +export { setSpeaking } from "./setSpeaking"; +export { setSpeakingDone } from "./setSpeakingDone"; +export { resetState } from "./resetState"; diff --git a/mods/autopilot/src/machine/actions/interruptPlayback.ts b/mods/autopilot/src/machine/actions/interruptPlayback.ts new file mode 100644 index 000000000..369f8c049 --- /dev/null +++ b/mods/autopilot/src/machine/actions/interruptPlayback.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { AutopilotContext } from "../types"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const interruptPlayback = async ({ + context +}: { + context: AutopilotContext; +}) => { + logger.verbose("called the interruptPlayback action", { + sessionRef: context.sessionRef + }); + await context.voice.stopSpeech(); +}; diff --git a/mods/autopilot/src/machine/actions/resetIdleTimeoutCount.ts b/mods/autopilot/src/machine/actions/resetIdleTimeoutCount.ts new file mode 100644 index 000000000..e70d9d0ba --- /dev/null +++ b/mods/autopilot/src/machine/actions/resetIdleTimeoutCount.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { assign } from "xstate"; +import { getLogger } from "@fonoster/logger"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const resetIdleTimeoutCount = assign(({ context }) => { + logger.verbose("called the resetIdleTimeoutCount action", { + idleTimeoutCount: 0 + }); + context.idleTimeoutCount = 0; + return context; +}); diff --git a/mods/autopilot/src/machine/actions/resetState.ts b/mods/autopilot/src/machine/actions/resetState.ts new file mode 100644 index 000000000..f1a10209d --- /dev/null +++ b/mods/autopilot/src/machine/actions/resetState.ts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { assign } from "xstate"; +import { getLogger } from "@fonoster/logger"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const resetState = assign(({ context }) => { + logger.verbose("called the resetState action"); + return { + ...context, + speechBuffer: "", + idleTimeoutCount: 0, + isSpeaking: false + }; +}); diff --git a/mods/autopilot/src/machine/actions/setSpeaking.ts b/mods/autopilot/src/machine/actions/setSpeaking.ts new file mode 100644 index 000000000..f4424dc97 --- /dev/null +++ b/mods/autopilot/src/machine/actions/setSpeaking.ts @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { assign } from "xstate"; +import { getLogger } from "@fonoster/logger"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const setSpeaking = assign(({ context }) => { + logger.verbose("called the setSpeaking action", { isSpeaking: true }); + context.isSpeaking = true; + return context; +}); diff --git a/mods/autopilot/src/machine/actions/setSpeakingDone.ts b/mods/autopilot/src/machine/actions/setSpeakingDone.ts new file mode 100644 index 000000000..a0a0a350d --- /dev/null +++ b/mods/autopilot/src/machine/actions/setSpeakingDone.ts @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { assign } from "xstate"; +import { getLogger } from "@fonoster/logger"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const setSpeakingDone = assign(({ context }) => { + logger.verbose("called the setSpeakingDone action", { isSpeaking: false }); + context.isSpeaking = false; + return context; +}); diff --git a/mods/autopilot/src/machine/actors/doProcessUserRequest.ts b/mods/autopilot/src/machine/actors/doProcessUserRequest.ts new file mode 100644 index 000000000..ef01902e8 --- /dev/null +++ b/mods/autopilot/src/machine/actors/doProcessUserRequest.ts @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { fromPromise } from "xstate"; +import { getLogger } from "@fonoster/logger"; +import { AutopilotContext } from "../types"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const doProcessUserRequest = fromPromise( + async ({ input }: { input: { context: AutopilotContext } }) => { + const { context } = input; + logger.verbose("called processUserRequest actor", { + speechBuffer: context.speechBuffer + }); + + // Stop any speech that might be playing + await context.voice.stopSpeech(); + + const languageModel = context.languageModel; + const speech = context.speechBuffer.trim(); + const response = await languageModel.invoke(speech); + + try { + if (response.type === "say" && !response.content) { + logger.verbose("call might already be hung up"); + return; + } else if (response.type === "hangup") { + const message = context.goodbyeMessage; + await context.voice.say(message); + await context.voice.hangup(); + return; + } else if (response.type === "transfer") { + logger.verbose("transferring call to a number in the PSTN", { + phoneNumber: context.transferPhoneNumber + }); + const message = context.transferMessage!; + await context.voice.say(message); + await context.voice.stopStreams(); + await context.voice.transfer(context.transferPhoneNumber!, { + record: true, + timeout: 30 + }); + return; + } + + await context.voice.say(response.content!); + } catch (error) { + logger.error("error processing user request", { error }); + await context.voice.say(context.systemErrorMessage); + } + } +); diff --git a/mods/autopilot/src/machine/actors/index.ts b/mods/autopilot/src/machine/actors/index.ts new file mode 100644 index 000000000..5048fe72b --- /dev/null +++ b/mods/autopilot/src/machine/actors/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./doProcessUserRequest"; diff --git a/mods/autopilot/src/machine/context.ts b/mods/autopilot/src/machine/context.ts new file mode 100644 index 000000000..b7ef72633 --- /dev/null +++ b/mods/autopilot/src/machine/context.ts @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const context = ({ input }) => ({ + sessionRef: input.voice.sessionRef, + voice: input.voice, + languageModel: input.languageModel, + speechBuffer: "", + firstMessage: input.conversationSettings.firstMessage, + goodbyeMessage: input.conversationSettings.goodbyeMessage, + transferMessage: input.conversationSettings.transferOptions?.message, + transferPhoneNumber: input.conversationSettings.transferOptions?.phoneNumber, + systemErrorMessage: input.conversationSettings.systemErrorMessage, + idleMessage: input.conversationSettings.idleOptions?.message || "", + idleTimeout: input.conversationSettings.idleOptions?.timeout || 10000, + maxIdleTimeoutCount: + input.conversationSettings.idleOptions?.maxTimeoutCount || 3, + idleTimeoutCount: 0, + maxSpeechWaitTimeout: input.conversationSettings.maxSpeechWaitTimeout, + isSpeaking: false, + sessionStartTime: Date.now(), + maxSessionDuration: input.conversationSettings.maxSessionDuration +}); + +export { context }; diff --git a/mods/autopilot/src/machine/delays.ts b/mods/autopilot/src/machine/delays.ts new file mode 100644 index 000000000..06bc5b312 --- /dev/null +++ b/mods/autopilot/src/machine/delays.ts @@ -0,0 +1,29 @@ +// @ts-nocheck - All inputs are validated by the APIServer +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const delays = { + IDLE_TIMEOUT: ({ context }) => context.idleTimeout, + MAX_SPEECH_WAIT_TIMEOUT: ({ context }) => context.maxSpeechWaitTimeout, + SESSION_TIMEOUT: ({ context }) => { + const elapsed = Date.now() - context.sessionStartTime; + return Math.max(0, context.maxSessionDuration - elapsed); + } +}; + +export { delays as default }; diff --git a/mods/autopilot/src/machine/guards/hasSpeechResult.ts b/mods/autopilot/src/machine/guards/hasSpeechResult.ts new file mode 100644 index 000000000..d8e682900 --- /dev/null +++ b/mods/autopilot/src/machine/guards/hasSpeechResult.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { AutopilotContext } from "../types"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const hasSpeechResult = ({ + context +}: { + context: AutopilotContext; +}): boolean => { + logger.verbose("called the hasSpeechResult guard", { + speechBuffer: context.speechBuffer + }); + return Boolean(context.speechBuffer); +}; diff --git a/mods/autopilot/src/machine/guards/idleTimeoutCountExceedsMax.ts b/mods/autopilot/src/machine/guards/idleTimeoutCountExceedsMax.ts new file mode 100644 index 000000000..55d9ab399 --- /dev/null +++ b/mods/autopilot/src/machine/guards/idleTimeoutCountExceedsMax.ts @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { AutopilotContext } from "../types"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const idleTimeoutCountExceedsMax = ({ + context +}: { + context: AutopilotContext; +}): boolean => { + logger.verbose("called the idleTimeoutCountExceedsMax guard", { + idleTimeoutCount: context.idleTimeoutCount + 1, + maxIdleTimeoutCount: context.maxIdleTimeoutCount + }); + return context.idleTimeoutCount + 1 > context.maxIdleTimeoutCount; +}; diff --git a/mods/autopilot/src/machine/guards/index.ts b/mods/autopilot/src/machine/guards/index.ts new file mode 100644 index 000000000..ee55208b4 --- /dev/null +++ b/mods/autopilot/src/machine/guards/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { idleTimeoutCountExceedsMax } from "./idleTimeoutCountExceedsMax"; +export { hasSpeechResult } from "./hasSpeechResult"; +export { isSpeaking } from "./isSpeaking"; diff --git a/mods/autopilot/src/machine/guards/isSpeaking.ts b/mods/autopilot/src/machine/guards/isSpeaking.ts new file mode 100644 index 000000000..2fa5588c8 --- /dev/null +++ b/mods/autopilot/src/machine/guards/isSpeaking.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { AutopilotContext } from "../types"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +export const isSpeaking = ({ + context +}: { + context: AutopilotContext; +}): boolean => { + logger.verbose("called the isSpeaking guard", { + isSpeaking: context.isSpeaking + }); + return context.isSpeaking; +}; diff --git a/mods/autopilot/src/machine/index.ts b/mods/autopilot/src/machine/index.ts new file mode 100644 index 000000000..5aed346a8 --- /dev/null +++ b/mods/autopilot/src/machine/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { machine } from "./machine"; diff --git a/mods/autopilot/src/machine/machine.ts b/mods/autopilot/src/machine/machine.ts new file mode 100644 index 000000000..600a2a965 --- /dev/null +++ b/mods/autopilot/src/machine/machine.ts @@ -0,0 +1,169 @@ +// @ts-nocheck - All inputs are validated by the APIServer +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { and, not } from "xstate"; +import { context } from "./context"; +import { machineSetup } from "./setup"; + +const machine = machineSetup.createMachine({ + /** @xstate-layout N4IgpgJg5mDOIC5QDMB2BBAkgOigJzDABcBLVKAYgG0AGAXUVAAcB7WE0l1RkAD0QCMADgHYAzAHYAnADYJYgExCaMmSJkAaEAE9EUsQFZsUiaoUGpAhQsMSAvna1os2EhAA2YCgGUACgFF-AGEACQB9bwAVdAAlSNoGJBBWdk5uJP4EAQMAFiFxHLkJbLEaAxkBCS1dLIEcnPFFZSkpHIklQwcnDBw3Tx8A4PCY-28AVQAZePoeFI4SLh5MyzFsBUrzHJMrAxtqxAkcoxyFHMqt0pbsrpBnXo8vXlgiAEMiMGwX5He8AApMAAiE38YUimAAsv4APJjSIASgod1cDwSszY80WGUQMgMRgEUhokgMYjyMlKAn2WQUJmwEnK23a5jEQhuSL6j2ebw+Xx+-yBILBkJh8MRPWRnioAkSzHRaSWgjqNGwQnkNAU0iEYi1VR0emy2Bk+iOpU1bRkrLFRDwL1QqQWqDIUEiLEwD2oMySczlWIQygUtOyORohX0uLJlKkBlE7WJNEqZJVKgtLncJGeYAd5GdY1gYDwA0CoTC-gAcgDUZ7Zfb5VkNdgDMUVAZTYGDJSxDjjMShLGJNI+wJzY5bmLU+nM06WDm8wWhsWy5Lpckq5jQJkBGVRKdTKozhZLO2o8qtQY44dynSysmcGP3hPs7n835C8NRpNpkuvdWfZUpPkGwIVjWJquQKBGg7GB2ZQ0CYYhSDY17YAA7i88zkAAYiweDeEwhAAMYABaRCQAC2YAsAArkQs5FlEsQfmidqrnwggduIzYKCopw0DQdLlJSuISNgbRBpY1LrKcOSIShaFQJh2G4WAhHEWRlHUc+c4jOMUwVjKTHpGuiBiHU9YqFs6y8SqFSUiI4jWJYBKamSJIGNJqGkBhWE4fhRGkeRVEUE8rzvJ83x5r84LoAAGhEgxFgA6lgkSghC0KwgiSIyR5cleYpyl+WpunLvpNZ5A0Hb1AmwaSZS5iiLsWpklYwg9hILLDpl7mOvJ3lKb5qkBUFXKhbykUxRpCVJSlQrpaKLhZd1uU+Sp-lEIujEYgZLEIKeeK4lsgFtW1pRtrqO0CKswZRsGZJBsIQ7dC4TB4CweFwOw5DTngMRgAAjhRcDURAXAfGQABuLAANYfEiz2ve9jpfT9-2Awg4OvW89oJEVX7MeuuwyNgarNpU8akqdNRWPUxg8TQQjrDI9lSR1Ypw29sAfVASN-QDzw0eEdFxDjK5beuPYNJqhyWGamp05SchGHIvEXUIhrGQIDjDqgLAQHAPB3Bt3qGQgAC0F2E8SphCH+GqHEolIm0YLTO-T1u5Gq9SIfghDZYb37GybQj-pIag2zbJxCBGCiE200ikko9TyIh7J+3jiANv6FSDtSFSJ4SUcx328HBoSdKdCzLhWja+mOs6rqeKnot6kY5JRpIzIkh2EZbMq8GM8ISjwQ2iG3hmtdTo+jc1tkEEcXBKzWzIvGUhIKjGNS0iAcyZ6uRXOALZ5CnLQVVFTz60fYC1JxFzxOL8Wd8+0qcViEtH8inIhBE2lAFFMGfxuARMiIP8eQ6Z00MJHM6F1rDCVMDBOkcCVAPRHE9F67NObcxRs8f+21rBHiOvBQcZwWianlgScQJho7kkULkXeDggA */ + context, + id: "fnAI", + initial: "greeting", + states: { + greeting: { + always: { + target: "idle", + description: "Transition to idle after the initial greeting." + }, + entry: { + type: "greetUser" + } + }, + + idle: { + entry: { type: "cleanSpeech" }, + on: { + SPEECH_START: { + target: "listeningToUser", + description: "Event from VAD system." + }, + SPEECH_RESULT: { + target: "listeningToUser", + description: "Detected speech before SPEECH_START event.", + actions: [{ type: "appendSpeech" }] + } + }, + after: { + IDLE_TIMEOUT: [ + { + target: "hangup", + actions: { type: "goodbye" }, + guard: and(["idleTimeoutCountExceedsMax", not("isSpeaking")]) + }, + { + target: "transitioningToIdle", + actions: [ + { type: "increaseIdleTimeoutCount" }, + { type: "announceIdleTimeout" } + ] + } + ] + } + }, + + transitioningToIdle: { + // This intermediate state is necessary to ensure the IDLE_TIMEOUT + // event is properly reset and retriggered when returning to idle. + // Without it, the timer would not restart correctly. + always: { + target: "idle" + } + }, + + listeningToUser: { + entry: [ + { type: "interruptPlayback" }, + { type: "resetIdleTimeoutCount" }, + { type: "setSpeaking" } + ], + on: { + SPEECH_END: [ + { + target: "processingUserRequest", + guard: "hasSpeechResult", + actions: [{ type: "setSpeakingDone" }], + description: + "Process the request immediately since we already speech." + }, + { + target: "waitingForSpeechTimeout", + guard: not("hasSpeechResult"), + actions: [{ type: "setSpeakingDone" }], + description: + "Wait for more speech since we don't have any speech yet." + } + ], + SPEECH_RESULT: [ + { + actions: { type: "appendSpeech" }, + guard: "isSpeaking", + description: + "The user is still speaking. With only want to append the speech." + } + ] + } + }, + + waitingForSpeechTimeout: { + on: { + SPEECH_START: { + target: "listeningToUser", + description: "User started speaking again." + }, + SPEECH_RESULT: { + target: "processingUserRequest", + actions: { + type: "appendSpeech" + }, + description: "Append final speech and process the request." + } + }, + after: { + MAX_SPEECH_WAIT_TIMEOUT: [ + { + target: "processingUserRequest", + description: + "Proceed to process the request as we have speech and the user is not speaking.", + guard: "hasSpeechResult" + }, + { + target: "idle", + description: + "We have no speech and the user is not speaking. Return to idle." + } + ] + } + }, + + hangup: { + type: "final" + }, + + processingUserRequest: { + on: { + SPEECH_START: { + target: "listeningToUser", + description: "Event from VAD or similar system.", + actions: [{ type: "cleanSpeech" }] + } + }, + invoke: { + src: "doProcessUserRequest", + description: "Process the user request", + input: ({ context }) => ({ context }), + onDone: { + target: "idle" + } + } + } + } +}); + +export { machine }; diff --git a/mods/autopilot/src/machine/setup.ts b/mods/autopilot/src/machine/setup.ts new file mode 100644 index 000000000..4c89582f0 --- /dev/null +++ b/mods/autopilot/src/machine/setup.ts @@ -0,0 +1,55 @@ +// @ts-nocheck - All inputs are validated by the APIServer +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { setup } from "xstate"; +import { AutopilotContext } from "./types"; +import { ConversationSettings } from "../assistants"; +import { LanguageModel } from "../models"; +import { Voice } from "../voice"; +import * as actors from "./actors"; +import * as guards from "./guards"; +import * as actions from "./actions"; +import delays from "./delays"; + +const machineSetup = setup({ + types: { + context: {} as AutopilotContext, + input: {} as { + conversationSettings: ConversationSettings; + languageModel: LanguageModel; + voice: Voice; + }, + events: {} as + | { type: "SPEECH_START" } + | { type: "SPEECH_END" } + | { type: "SPEECH_RESULT"; speech: string; responseTime: number } + }, + actions, + guards, + delays, + actors, + after: { + SESSION_TIMEOUT: { + target: "hangup", + actions: ["goodbye"] + } + } +}); + +export { machineSetup }; diff --git a/mods/autopilot/src/machine/types.ts b/mods/autopilot/src/machine/types.ts new file mode 100644 index 000000000..2e4489f2e --- /dev/null +++ b/mods/autopilot/src/machine/types.ts @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { LanguageModel } from "../models"; +import { Voice } from "../voice"; + +type AutopilotContext = { + sessionRef: string; + languageModel: LanguageModel; + voice: Voice; + firstMessage?: string; + goodbyeMessage: string; + transferMessage?: string; + transferPhoneNumber?: string; + systemErrorMessage: string; + idleMessage: string; + idleTimeout: number; + idleTimeoutCount: number; + maxIdleTimeoutCount: number; + maxSpeechWaitTimeout: number; + speechBuffer: string; + speechResponseTime: number; + isSpeaking: boolean; + knowledgeBaseSourceUrl?: string; +}; + +export { AutopilotContext }; diff --git a/mods/autopilot/src/models/AbstractLanguageModel.ts b/mods/autopilot/src/models/AbstractLanguageModel.ts new file mode 100644 index 000000000..18be28ef8 --- /dev/null +++ b/mods/autopilot/src/models/AbstractLanguageModel.ts @@ -0,0 +1,166 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { AIMessage } from "@langchain/core/messages"; +import { createChatHistory } from "./chatHistory"; +import { createChain } from "./createChain"; +import { createPromptTemplate } from "./createPromptTemplate"; +import { toolInvocation } from "./toolInvocation"; +import { + InvocationResult, + LanguageModel, + LanguageModelParams, + TelephonyContext +} from "./types"; +import { ToolsCatalog } from "../tools"; +import { Voice } from "../voice"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +abstract class AbstractLanguageModel implements LanguageModel { + private readonly chain: ReturnType; + private readonly chatHistory: ReturnType; + private readonly toolsCatalog: ToolsCatalog; + private readonly voice: Voice; + private readonly goodbyeMessage: string; + private readonly firstMessage: string; + private readonly transferOptions: { message: string }; + + constructor( + params: LanguageModelParams, + voice: Voice, + telephonyContext: TelephonyContext + ) { + const { + model, + firstMessage, + transferOptions, + systemPrompt, + goodbyeMessage, + knowledgeBase, + tools + } = params; + this.chatHistory = createChatHistory(); + this.toolsCatalog = new ToolsCatalog(tools); + this.voice = voice; + this.firstMessage = firstMessage!; + this.goodbyeMessage = goodbyeMessage!; + this.transferOptions = transferOptions!; + const promptTemplate = createPromptTemplate({ + systemPrompt, + telephonyContext + }); + this.chain = createChain( + model, + knowledgeBase, + promptTemplate, + this.chatHistory + ); + } + + async invoke(text: string): Promise { + const { chain, chatHistory, toolsCatalog } = this; + const response = (await chain.invoke({ text })) as AIMessage; + let isFirstTool = true; + + logger.verbose("invoke", { + text, + response: response.content, + hasTools: response.tool_calls?.length! > 0, + tools: response.tool_calls?.map((tool) => tool.name) + }); + + // Begin the conversation with the first message + if ((await chatHistory.getMessages()).length === 0 && this.firstMessage) { + await chatHistory.addAIMessage(this.firstMessage); + } + + if (response.tool_calls && response.tool_calls.length > 0) { + // eslint-disable-next-line no-loops/no-loops + for (const toolCall of response.tool_calls) { + const { args, name: toolName } = toolCall; + + logger.verbose( + `invoking tool: ${toolName} with args: ${JSON.stringify(args)}`, + { + isFirstTool + } + ); + + switch (toolName) { + case "hangup": + await chatHistory.addUserMessage(text); + await chatHistory.addAIMessage(this.goodbyeMessage); + return { + type: "hangup", + content: "tool_result: call hangup initiated", + toolCalls: response.tool_calls + }; + case "transfer": + await chatHistory.addUserMessage(text); + await chatHistory.addAIMessage(this.transferOptions.message); + return { + type: "transfer", + content: "tool_result: call transfer initiated", + toolCalls: response.tool_calls + }; + default: + if (isFirstTool) { + const tool = toolsCatalog.getTool(toolName); + await this.voice.say(tool?.requestStartMessage ?? ""); + } + + await toolInvocation({ + args, + chatHistory, + isFirstTool, + toolName, + toolsCatalog + }); + isFirstTool = false; + } + } + + const finalResponse = (await chain.invoke({ + text: "Write a quick message based on the tools results" + })) as AIMessage; + + logger.verbose("finalResponse by AI", { content: finalResponse.content }); + + response.content = finalResponse.content?.toString() ?? ""; + } + + await chatHistory.addUserMessage(text); + await chatHistory.addAIMessage(response.content?.toString() ?? ""); + + logger.verbose("system will say", { content: response.content }); + + return { + type: "say", + content: response.content.toString(), + toolCalls: response.tool_calls + }; + } + + async getChatHistoryMessages() { + return this.chatHistory.getMessages(); + } +} + +export { AbstractLanguageModel }; diff --git a/mods/autopilot/src/models/LanguageModelFactory.ts b/mods/autopilot/src/models/LanguageModelFactory.ts new file mode 100644 index 000000000..1ac1bbce4 --- /dev/null +++ b/mods/autopilot/src/models/LanguageModelFactory.ts @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { AbstractLanguageModel } from "./AbstractLanguageModel"; +import { LANGUAGE_MODEL_NAME as GROQ_LLM_NAME, Groq, GroqParams } from "./groq"; +import { + LANGUAGE_MODEL_NAME as OLLAMA_LLM_NAME, + Ollama, + OllamaParams +} from "./ollama"; +import { + LANGUAGE_MODEL_NAME as OPENAI_LLM_NAME, + OpenAI, + OpenAIParams +} from "./openai"; +import { BaseModelParams, TelephonyContext } from "./types"; +import { LanguageModelProvider } from "../types"; +import { Voice } from "../voice"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +type LanguageModelConstructor = + new ( + options: T, + voice: Voice, + telephonyContext: TelephonyContext + ) => AbstractLanguageModel; + +type LanguageModelConfigMap = { + [LanguageModelProvider.OPENAI]: OpenAIParams; + [LanguageModelProvider.GROQ]: GroqParams; + [LanguageModelProvider.OLLAMA]: OllamaParams; +}; + +class LanguageModelFactory { + private static readonly languageModels: Map< + string, + LanguageModelConstructor + > = new Map(); + + static registerLanguageModel( + name: string, + ctor: LanguageModelConstructor + ) { + logger.verbose("registering llm provider", { name }); + this.languageModels.set(name, ctor); + } + + static getLanguageModel( + languageModel: T, + config: LanguageModelConfigMap[T], + voice: Voice, + telephonyContext: TelephonyContext + ): AbstractLanguageModel { + const LanguageModelConstructor = this.languageModels.get( + `llm.${languageModel}` + ); + if (!LanguageModelConstructor) { + throw new Error(`Language model ${languageModel} not found`); + } + return new LanguageModelConstructor(config, voice, telephonyContext); + } +} + +// Register language models +LanguageModelFactory.registerLanguageModel(OPENAI_LLM_NAME, OpenAI); +LanguageModelFactory.registerLanguageModel(GROQ_LLM_NAME, Groq); +LanguageModelFactory.registerLanguageModel(OLLAMA_LLM_NAME, Ollama); + +export { LanguageModelFactory }; diff --git a/mods/autopilot/src/models/chatHistory.ts b/mods/autopilot/src/models/chatHistory.ts new file mode 100644 index 000000000..170863461 --- /dev/null +++ b/mods/autopilot/src/models/chatHistory.ts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { AIMessage, HumanMessage } from "@langchain/core/messages"; +import { ChatMessageHistory } from "langchain/stores/message/in_memory"; + +export function createChatHistory() { + const chatHistory = new ChatMessageHistory(); + + return { + getMessages: () => chatHistory.getMessages(), + addUserMessage: (text: string) => + chatHistory.addMessage(new HumanMessage(text)), + addAIMessage: (text: string) => chatHistory.addMessage(new AIMessage(text)), + clear: () => chatHistory.clear() + }; +} diff --git a/mods/autopilot/src/models/createChain.ts b/mods/autopilot/src/models/createChain.ts new file mode 100644 index 000000000..709a69bed --- /dev/null +++ b/mods/autopilot/src/models/createChain.ts @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseChatModel } from "@langchain/core/language_models/chat_models"; +import { RunnableSequence } from "@langchain/core/runnables"; +import { createChatHistory } from "./chatHistory"; +import { createPromptTemplate } from "./createPromptTemplate"; +import { KnowledgeBase } from "../knowledge"; + +function createChain( + model: BaseChatModel, + knowledgeBase: KnowledgeBase, + promptTemplate: ReturnType, + chatHistory: ReturnType +) { + return RunnableSequence.from([ + { + input: (input) => input.text, + context: async (input) => knowledgeBase?.queryKnowledgeBase(input.text), + history: async () => chatHistory.getMessages() + }, + promptTemplate, + model + ]); +} + +export { createChain }; diff --git a/mods/autopilot/src/models/createLanguageModel.ts b/mods/autopilot/src/models/createLanguageModel.ts new file mode 100644 index 000000000..21f679f51 --- /dev/null +++ b/mods/autopilot/src/models/createLanguageModel.ts @@ -0,0 +1,60 @@ +// @ts-nocheck - All inputs are validated by the APIServer +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + AssistantConfig, + KnowledgeBase, + LanguageModelFactory, + TelephonyContext, + Voice, + hangupToolDefinition, + transferToolDefinition +} from ".."; + +function createLanguageModel(params: { + voice: Voice; + assistantConfig: AssistantConfig; + knowledgeBase: KnowledgeBase; + telephonyContext: TelephonyContext; +}) { + const { voice, assistantConfig, knowledgeBase, telephonyContext } = params; + const { languageModel: languageModelSettings, conversationSettings } = + assistantConfig; + + // The transfer tool is only added if the transfer options exist + const tools = languageModelSettings.tools.concat( + assistantConfig.conversationSettings.transferOptions + ? [hangupToolDefinition, transferToolDefinition] + : [hangupToolDefinition] + ); + + return LanguageModelFactory.getLanguageModel( + languageModelSettings.provider, + { + ...languageModelSettings, + ...conversationSettings, + knowledgeBase, + tools + }, + voice, + telephonyContext + ); +} + +export { createLanguageModel }; diff --git a/mods/autopilot/src/models/createPromptTemplate.ts b/mods/autopilot/src/models/createPromptTemplate.ts new file mode 100644 index 000000000..db86d2904 --- /dev/null +++ b/mods/autopilot/src/models/createPromptTemplate.ts @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + ChatPromptTemplate, + HumanMessagePromptTemplate, + MessagesPlaceholder, + SystemMessagePromptTemplate +} from "@langchain/core/prompts"; +import { TelephonyContext } from "./types"; + +export function createPromptTemplate(params: { + firstMessage?: string; + systemPrompt: string; + telephonyContext: TelephonyContext; +}) { + const { firstMessage, systemPrompt, telephonyContext } = params; + + return ChatPromptTemplate.fromMessages([ + new MessagesPlaceholder("history"), + SystemMessagePromptTemplate.fromTemplate(`firstMessage: ${firstMessage}`), + SystemMessagePromptTemplate.fromTemplate(systemPrompt), + SystemMessagePromptTemplate.fromTemplate("{context}"), + SystemMessagePromptTemplate.fromTemplate( + `callReceivedAt:${new Date().toISOString()} + ingressNumber:${telephonyContext.ingressNumber} + callerNumber:${telephonyContext.callerNumber} + callDirection:${telephonyContext.callDirection}` + ), + HumanMessagePromptTemplate.fromTemplate("{input}") + ]); +} diff --git a/mods/autopilot/src/models/evaluations/createTestTextSimilarity.ts b/mods/autopilot/src/models/evaluations/createTestTextSimilarity.ts new file mode 100644 index 000000000..921c6716c --- /dev/null +++ b/mods/autopilot/src/models/evaluations/createTestTextSimilarity.ts @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { HumanMessage, SystemMessage } from "@langchain/core/messages"; +import { ChatOpenAI } from "@langchain/openai"; + +export function createTestTextSimilarity( + evalsLanguageModel: { + provider: any; + model: string; + baseUrl?: string; + apiKey?: string; + }, + systemPrompt: string +) { + if (!evalsLanguageModel.apiKey) { + throw new Error("API key is required for text similarity evaluation."); + } + + return async function testTextSimilarity( + text1: string, + text2: string + ): Promise { + const llm = new ChatOpenAI({ + modelName: evalsLanguageModel.model, + temperature: 0, + openAIApiKey: evalsLanguageModel.apiKey, + maxTokens: 10 + }); + + const messages = [ + new SystemMessage(systemPrompt), + new HumanMessage(`Text 1: ${text1}\nText 2: ${text2}`) + ]; + + const response = await llm.invoke(messages); + const reply = response.content?.toString().trim().toLowerCase(); + + return new Boolean(reply).valueOf(); + }; +} diff --git a/mods/autopilot/src/models/evaluations/evals.ts b/mods/autopilot/src/models/evaluations/evals.ts new file mode 100644 index 000000000..16f631a98 --- /dev/null +++ b/mods/autopilot/src/models/evaluations/evals.ts @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { AssistantConfig } from "../../assistants/types"; +import { Voice } from "../../voice"; +import { createLanguageModel } from "../createLanguageModel"; +import { TelephonyContext } from "../types"; +import { createTestTextSimilarity } from "./createTestTextSimilarity"; +import { evaluateScenario } from "./evaluateScenario"; +import { textSimilaryPrompt } from "./textSimilaryPrompt"; +import { ScenarioEvaluationReport } from "./types"; + +export async function evalTestCases( + assistantConfig: AssistantConfig +): Promise { + const { testCases } = assistantConfig; + const voice = { + say: async (_: string) => {} + } as Voice; + + const evaluationReports: ScenarioEvaluationReport[] = []; + + for (const scenario of testCases?.scenarios!) { + const languageModel = createLanguageModel({ + voice, + assistantConfig, + knowledgeBase: { + load: async () => {}, + queryKnowledgeBase: async (query: string, k?: number) => query + }, + telephonyContext: scenario.telephonyContext as TelephonyContext + }); + + const testTextSimilarity = createTestTextSimilarity( + { + provider: assistantConfig.testCases?.evalsLanguageModel?.provider, + model: assistantConfig.testCases?.evalsLanguageModel?.model!, + apiKey: assistantConfig.testCases?.evalsLanguageModel?.apiKey + }, + assistantConfig.testCases?.evalsSystemPrompt || textSimilaryPrompt + ); + + const evaluationReport = await evaluateScenario({ + assistantConfig, + scenario, + languageModel, + testTextSimilarity + }); + evaluationReports.push(evaluationReport); + } + + return evaluationReports; +} diff --git a/mods/autopilot/src/models/evaluations/evaluateScenario.ts b/mods/autopilot/src/models/evaluations/evaluateScenario.ts new file mode 100644 index 000000000..243eb8ebc --- /dev/null +++ b/mods/autopilot/src/models/evaluations/evaluateScenario.ts @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + ScenarioEvaluationConfig, + ScenarioEvaluationReport, + StepEvaluationReport +} from "./types"; +import { evaluateStep } from "./evaluateStep"; + +export async function evaluateScenario( + config: ScenarioEvaluationConfig +): Promise { + const { scenario, languageModel, testTextSimilarity, assistantConfig } = + config; + const results: StepEvaluationReport[] = []; + + for (const step of scenario.conversation) { + const stepResult = await evaluateStep({ + step, + languageModel, + testTextSimilarity, + assistantConfig + }); + results.push(stepResult); + } + + const overallPassed = results.every((step) => step.passed); + + return { + scenarioRef: scenario.ref, + overallPassed, + steps: results + }; +} diff --git a/mods/autopilot/src/models/evaluations/evaluateStep.ts b/mods/autopilot/src/models/evaluations/evaluateStep.ts new file mode 100644 index 000000000..ad5fe590e --- /dev/null +++ b/mods/autopilot/src/models/evaluations/evaluateStep.ts @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { EvaluateStepParams, StepEvaluationReport } from "./types"; +import { evaluateTextResponse } from "./evaluateTextResponse"; +import { evaluateToolCalls } from "./evaluateToolCalls"; + +export async function evaluateStep({ + step, + languageModel, + testTextSimilarity, + assistantConfig +}: EvaluateStepParams): Promise { + const stepResult: StepEvaluationReport = { + humanInput: step.userInput, + expectedResponse: step.expected.text.response, + aiResponse: "", // will be filled if invoke is successful + evaluationType: step.expected.text.type, + passed: true + }; + + try { + const response = await languageModel.invoke(step.userInput); + + // Hangup and transfer are special cases + if (response.toolCalls && response.toolCalls.length > 0) { + const topTool = response.toolCalls[0]; + if (topTool.name === "hangup") { + stepResult.aiResponse = + assistantConfig.conversationSettings?.goodbyeMessage!; + } else if (topTool.name === "transfer") { + stepResult.aiResponse = + assistantConfig.conversationSettings?.transferOptions?.message! ?? ""; + } else { + stepResult.aiResponse = response.content!; + } + } else { + stepResult.aiResponse = response.content!; + } + + const textEvaluation = await evaluateTextResponse( + step.expected.text, + stepResult.aiResponse, + testTextSimilarity + ); + + if (!textEvaluation.passed) { + stepResult.passed = false; + stepResult.errorMessage = textEvaluation.errorMessage; + } + + if (step.expected.tools && step.expected.tools.length > 0) { + const toolsEvaluation = evaluateToolCalls( + step.expected.tools, + response.toolCalls + ); + stepResult.toolEvaluations = toolsEvaluation.evaluations; + if (!toolsEvaluation.passed) { + stepResult.passed = false; + stepResult.errorMessage = stepResult.errorMessage + ? `${stepResult.errorMessage} ${toolsEvaluation.errorMessage}` + : toolsEvaluation.errorMessage; + } + } + } catch (error) { + stepResult.passed = false; + stepResult.errorMessage = `Language model error for input "${step.userInput}": ${error}`; + } + return stepResult; +} diff --git a/mods/autopilot/src/models/evaluations/evaluateTextResponse.ts b/mods/autopilot/src/models/evaluations/evaluateTextResponse.ts new file mode 100644 index 000000000..0d713ca96 --- /dev/null +++ b/mods/autopilot/src/models/evaluations/evaluateTextResponse.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * Licensed under the MIT License. + */ + +import { ExpectedTextType } from "./types"; + +export async function evaluateTextResponse( + expected: { type: ExpectedTextType; response: string }, + aiResponse: string, + testTextSimilarity: (text1: string, text2: string) => Promise +): Promise<{ passed: boolean; errorMessage?: string }> { + if (expected.type === ExpectedTextType.EXACT) { + if (aiResponse !== expected.response) { + return { + passed: false, + errorMessage: `Expected exact response "${expected.response}", but got "${aiResponse}".` + }; + } + } else if (expected.type === ExpectedTextType.SIMILAR) { + const isSimilar = await testTextSimilarity(expected.response, aiResponse); + if (!isSimilar) { + return { + passed: false, + errorMessage: `Expected similar response to "${expected.response}", but got "${aiResponse}".` + }; + } + } + return { passed: true }; +} diff --git a/mods/autopilot/src/models/evaluations/evaluateToolCalls.ts b/mods/autopilot/src/models/evaluations/evaluateToolCalls.ts new file mode 100644 index 000000000..c20c196b0 --- /dev/null +++ b/mods/autopilot/src/models/evaluations/evaluateToolCalls.ts @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ToolEvaluationReport } from "./types"; + +export function evaluateToolCalls( + expectedTools: any[], + toolCalls: any[] | undefined +): { + evaluations: ToolEvaluationReport[]; + passed: boolean; + errorMessage?: string; +} { + const evaluations: ToolEvaluationReport[] = []; + let overallPassed = true; + + if (!toolCalls || toolCalls.length !== expectedTools.length) { + overallPassed = false; + evaluations.push({ + expectedTool: "", + actualTool: "", + passed: false, + expectedParameters: undefined, + actualParameters: undefined, + errorMessage: `Expected ${expectedTools.length} tool invocation(s), but got ${toolCalls ? toolCalls.length : 0}.` + }); + return { + evaluations, + passed: overallPassed, + errorMessage: `Tool invocation count mismatch.` + }; + } + + for (let i = 0; i < expectedTools.length; i++) { + const expectedTool = expectedTools[i]; + const actualCall = toolCalls[i]; + let toolPassed = true; + let errorMessage = ""; + + if (actualCall.name !== expectedTool.tool) { + toolPassed = false; + errorMessage = `Expected tool "${expectedTool.tool}" but got "${actualCall.name}".`; + } + + // Validate expected parameters against the actual ones + const expectedParams = expectedTool.parameters || {}; + const actualParams = actualCall.args || {}; + + for (const key of Object.keys(expectedParams)) { + if (actualParams[key] !== expectedParams[key]) { + toolPassed = false; + const paramMsg = `Expected parameter "${key}" to have value ${JSON.stringify(expectedParams[key])}, but got ${JSON.stringify(actualParams[key])}.`; + errorMessage = errorMessage ? errorMessage + " " + paramMsg : paramMsg; + } + } + + if (!toolPassed) { + overallPassed = false; + } + + evaluations.push({ + expectedTool: expectedTool.tool, + actualTool: actualCall.name, + passed: toolPassed, + expectedParameters: expectedTool.parameters, + actualParameters: actualCall.args, + errorMessage: errorMessage || undefined + }); + } + return { + evaluations, + passed: overallPassed, + errorMessage: overallPassed + ? undefined + : "One or more tool evaluations failed." + }; +} diff --git a/mods/autopilot/src/models/evaluations/index.ts b/mods/autopilot/src/models/evaluations/index.ts new file mode 100644 index 000000000..9fb6cb055 --- /dev/null +++ b/mods/autopilot/src/models/evaluations/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./evals"; +export * from "./printEval"; diff --git a/mods/autopilot/src/models/evaluations/printEval.ts b/mods/autopilot/src/models/evaluations/printEval.ts new file mode 100644 index 000000000..3ab54f002 --- /dev/null +++ b/mods/autopilot/src/models/evaluations/printEval.ts @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import Table from "cli-table3"; +import chalk from "chalk"; +import { ScenarioEvaluationReport } from "./types"; + +export function printEval(results: ScenarioEvaluationReport[]): void { + results.forEach((result) => { + console.log(chalk.bold.blue(`\nScenario: ${result.scenarioRef}`)); + console.log( + chalk.bold( + `Overall Passed: ${result.overallPassed ? chalk.green("✔") : chalk.red("✘")}` + ) + ); + + const table = new Table({ + head: [ + "Step", + "Human Input", + "Expected", + "AI Response", + "Tool Calls", + "Passed" + ], + colWidths: [8, 25, 25, 25, 25, 8], + wordWrap: true + }); + + result.steps.forEach((step, index) => { + // Format tool evaluations if they exist + let toolEvalText = ""; + if (step.toolEvaluations && step.toolEvaluations.length > 0) { + toolEvalText = step.toolEvaluations + .map((toolEval) => { + const params = JSON.stringify(toolEval.actualParameters || {}); + return `${toolEval.actualTool}(${params})`; + }) + .join("\n"); + } + + table.push([ + index + 1, + step.humanInput, + step.expectedResponse, + step.aiResponse, + toolEvalText, + step.passed ? chalk.green("✔") : chalk.red("✘") + ]); + + // Print error message if step failed + if (!step.passed && step.errorMessage) { + console.log(chalk.red(`\nError in step ${index + 1}:`)); + console.log(chalk.red(step.errorMessage)); + } + + // Print tool evaluation errors if any + if (step.toolEvaluations) { + step.toolEvaluations.forEach((toolEval) => { + if (!toolEval.passed && toolEval.errorMessage) { + console.log(chalk.red(`\nTool Error in step ${index + 1}:`)); + console.log(chalk.red(toolEval.errorMessage)); + } + }); + } + }); + + console.log(table.toString()); + }); +} diff --git a/mods/autopilot/src/models/evaluations/textSimilaryPrompt.ts b/mods/autopilot/src/models/evaluations/textSimilaryPrompt.ts new file mode 100644 index 000000000..b0448c91c --- /dev/null +++ b/mods/autopilot/src/models/evaluations/textSimilaryPrompt.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export const textSimilaryPrompt = ` +You are a text similarity evaluator for a Voice Assistant application. + +Give Text1 and Text2, you use the following process to evaluate the similarity between the two texts: + +- Take the first text and determmine the intent of the text. +- Take the second text and determine the intent of the text. +- Compare the intents of the two texts ignoring the actual text content, the entities, and length of the text. + +## Example 1 + +Text1: "You're welcome. Have a great day!" +Text2: "You're welcome [name]. Your appointment is confirmed. Goodbye!" + +Answer: true + +=== + +Are the intents of the two texts the same? Respond with true. +`; diff --git a/mods/autopilot/src/models/evaluations/types.ts b/mods/autopilot/src/models/evaluations/types.ts new file mode 100644 index 000000000..199e51220 --- /dev/null +++ b/mods/autopilot/src/models/evaluations/types.ts @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { AssistantConfig } from "../../assistants"; +import { LanguageModel } from "../types"; + +enum ExpectedTextType { + EXACT = "exact", + SIMILAR = "similar" +} + +type ScenarioEvaluationReport = { + scenarioRef: string; + overallPassed: boolean; + steps: StepEvaluationReport[]; +}; + +type StepEvaluationReport = { + humanInput: string; + expectedResponse: string; + aiResponse: string; + evaluationType: ExpectedTextType; + passed: boolean; + errorMessage?: string; + toolEvaluations?: ToolEvaluationReport[]; +}; + +type EvaluateStepParams = { + step: any; + languageModel: LanguageModel; + testTextSimilarity: (text1: string, text2: string) => Promise; + assistantConfig: AssistantConfig; +}; + +type ToolEvaluationReport = { + expectedTool: string; + actualTool: string; + passed: boolean; + expectedParameters?: Record; + actualParameters?: Record; + errorMessage?: string; +}; + +type ScenarioEvaluationConfig = { + assistantConfig: AssistantConfig; + scenario: any; + languageModel: LanguageModel; + testTextSimilarity: (text1: string, text2: string) => Promise; +}; + +export { + ExpectedTextType, + ScenarioEvaluationReport, + StepEvaluationReport, + ToolEvaluationReport, + ScenarioEvaluationConfig, + EvaluateStepParams +}; diff --git a/mods/autopilot/src/models/groq/Groq.ts b/mods/autopilot/src/models/groq/Groq.ts new file mode 100644 index 000000000..29bf53612 --- /dev/null +++ b/mods/autopilot/src/models/groq/Groq.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseChatModel } from "@langchain/core/language_models/chat_models"; +import { ChatGroq } from "@langchain/groq"; +import { GroqParams } from "./types"; +import { convertToolToOpenAITool } from "../../tools"; +import { Voice } from "../../voice"; +import { AbstractLanguageModel } from "../AbstractLanguageModel"; +import { TelephonyContext } from "../types"; + +const LANGUAGE_MODEL_NAME = "llm.groq"; + +class Groq extends AbstractLanguageModel { + constructor( + params: GroqParams, + voice: Voice, + telephonyContext: TelephonyContext + ) { + const model = new ChatGroq({ + ...params + }).bind({ + tools: params.tools.map(convertToolToOpenAITool) + }) as unknown as BaseChatModel; + + super( + { + ...params, + model + }, + voice, + telephonyContext + ); + } +} + +export { Groq, LANGUAGE_MODEL_NAME }; diff --git a/mods/autopilot/src/models/groq/index.ts b/mods/autopilot/src/models/groq/index.ts new file mode 100644 index 000000000..65d92a2dd --- /dev/null +++ b/mods/autopilot/src/models/groq/index.ts @@ -0,0 +1,20 @@ +export * from "./Groq"; +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./types"; diff --git a/mods/autopilot/src/models/groq/types.ts b/mods/autopilot/src/models/groq/types.ts new file mode 100644 index 000000000..3a700f054 --- /dev/null +++ b/mods/autopilot/src/models/groq/types.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseModelParams } from "../types"; + +enum GroqModel { + LLAMA3_1_8B_INSTANT = "llama-3.1-8b-instant", + LLAMA3_3_3_70B_SPECDEC = "llama-3.3-70b-specdec" +} + +type GroqParams = BaseModelParams & { + model: GroqModel; + apiKey: string; + maxTokens: number; + temperature: number; +}; + +export { GroqModel, GroqParams }; diff --git a/mods/autopilot/src/models/index.ts b/mods/autopilot/src/models/index.ts new file mode 100644 index 000000000..ff6e4233f --- /dev/null +++ b/mods/autopilot/src/models/index.ts @@ -0,0 +1,21 @@ +export * from "./LanguageModelFactory"; +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./types"; +export * from "./evaluations"; diff --git a/mods/autopilot/src/models/ollama/Ollama.ts b/mods/autopilot/src/models/ollama/Ollama.ts new file mode 100644 index 000000000..6c9cd6932 --- /dev/null +++ b/mods/autopilot/src/models/ollama/Ollama.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseChatModel } from "@langchain/core/language_models/chat_models"; +import { ChatOllama } from "@langchain/ollama"; +import { OllamaParams } from "./types"; +import { convertToolToOpenAITool } from "../../tools"; +import { Voice } from "../../voice"; +import { AbstractLanguageModel } from "../AbstractLanguageModel"; +import { TelephonyContext } from "../types"; + +const LANGUAGE_MODEL_NAME = "llm.ollama"; + +class Ollama extends AbstractLanguageModel { + constructor( + params: OllamaParams, + voice: Voice, + telephonyContext: TelephonyContext + ) { + const model = new ChatOllama({ + ...params + }).bind({ + tools: params.tools.map(convertToolToOpenAITool) + }) as unknown as BaseChatModel; + + super( + { + ...params, + model + }, + voice, + telephonyContext + ); + } +} + +export { LANGUAGE_MODEL_NAME, Ollama }; diff --git a/mods/autopilot/src/models/ollama/index.ts b/mods/autopilot/src/models/ollama/index.ts new file mode 100644 index 000000000..f00f4a2e0 --- /dev/null +++ b/mods/autopilot/src/models/ollama/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./Ollama"; +export * from "./types"; diff --git a/mods/autopilot/src/models/ollama/types.ts b/mods/autopilot/src/models/ollama/types.ts new file mode 100644 index 000000000..84339e771 --- /dev/null +++ b/mods/autopilot/src/models/ollama/types.ts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseModelParams } from "../types"; + +enum OllamaModel { + LLAMA_3_GROQ_TOOL_USE = "llama3-groq-tool-use" +} + +type OllamaParams = BaseModelParams & { + model: OllamaModel; + baseUrl?: string; + maxTokens: number; + temperature: number; +}; + +export { OllamaModel, OllamaParams }; diff --git a/mods/autopilot/src/models/openai/OpenAI.ts b/mods/autopilot/src/models/openai/OpenAI.ts new file mode 100644 index 000000000..f2616995f --- /dev/null +++ b/mods/autopilot/src/models/openai/OpenAI.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseChatModel } from "@langchain/core/language_models/chat_models"; +import { ChatOpenAI } from "@langchain/openai"; +import { OpenAIParams } from "./types"; +import { convertToolToOpenAITool } from "../../tools"; +import { Voice } from "../../voice"; +import { AbstractLanguageModel } from "../AbstractLanguageModel"; +import { TelephonyContext } from "../types"; + +const LANGUAGE_MODEL_NAME = "llm.openai"; + +class OpenAI extends AbstractLanguageModel { + constructor( + params: OpenAIParams, + voice: Voice, + telephonyContext: TelephonyContext + ) { + const model = new ChatOpenAI({ + ...params + }).bind({ + tools: params.tools.map(convertToolToOpenAITool) + }) as unknown as BaseChatModel; + + super( + { + ...params, + model + }, + voice, + telephonyContext + ); + } +} + +export { LANGUAGE_MODEL_NAME, OpenAI }; diff --git a/mods/autopilot/src/models/openai/index.ts b/mods/autopilot/src/models/openai/index.ts new file mode 100644 index 000000000..5dc50dff8 --- /dev/null +++ b/mods/autopilot/src/models/openai/index.ts @@ -0,0 +1,20 @@ +export * from "./OpenAI"; +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./types"; diff --git a/mods/autopilot/src/models/openai/types.ts b/mods/autopilot/src/models/openai/types.ts new file mode 100644 index 000000000..a2ec96c0f --- /dev/null +++ b/mods/autopilot/src/models/openai/types.ts @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseModelParams } from "../types"; + +enum OpenAIModel { + GPT_4O = "gpt-4o", + GPT_4O_MINI = "gpt-4o-mini", + GPT_3_5_TURBO = "gpt-3.5-turbo", + GPT_4_TURBO = "gpt-4-turbo" +} + +type OpenAIParams = BaseModelParams & { + model: OpenAIModel; + apiKey: string; + maxTokens: number; + temperature: number; +}; + +export { OpenAIModel, OpenAIParams }; diff --git a/mods/autopilot/src/models/toolInvocation.ts b/mods/autopilot/src/models/toolInvocation.ts new file mode 100644 index 000000000..6fb3a9efd --- /dev/null +++ b/mods/autopilot/src/models/toolInvocation.ts @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { createChatHistory } from "./chatHistory"; +import { ToolsCatalog } from "../tools"; +import { Voice } from "../voice"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +async function toolInvocation(params: { + toolName: string; + chatHistory: ReturnType; + toolsCatalog: ToolsCatalog; + isFirstTool: boolean; + args: Record; +}): Promise { + const { isFirstTool, args, toolName, chatHistory, toolsCatalog } = params; + + try { + if (isFirstTool) { + const tool = toolsCatalog.getTool(toolName); + const message = tool?.requestStartMessage ?? ""; + if (message) { + await chatHistory.addAIMessage(message); + } + } + + const toolResult = await toolsCatalog.invokeTool(toolName, args); + + logger.verbose(`tool result (${toolName}):`, { result: toolResult.result }); + + await chatHistory.addAIMessage( + `tool result (${toolName}): ${toolResult.result}` + ); + + return toolResult.result; + } catch (error) { + logger.error(`tool error: ${error.message}`); + + await chatHistory.addAIMessage(`tool error: ${error.message}`); + + return ""; + } +} + +export { toolInvocation }; diff --git a/mods/autopilot/src/models/types.ts b/mods/autopilot/src/models/types.ts new file mode 100644 index 000000000..961a914bd --- /dev/null +++ b/mods/autopilot/src/models/types.ts @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { CallDirection } from "@fonoster/types"; +import { BaseChatModel } from "@langchain/core/language_models/chat_models"; +import { Tool } from "../tools/type"; +import { ToolCall } from "@langchain/core/messages/tool"; +import { KnowledgeBase } from "../knowledge"; + +type LanguageModel = { + invoke: (text: string) => Promise; +}; + +type BaseModelParams = { + firstMessage?: string; + goodbyeMessage?: string; + transferOptions: { message: string }; + systemPrompt: string; + knowledgeBase: KnowledgeBase; + tools: Tool[]; + telephonyContext: TelephonyContext; +}; + +type LanguageModelParams = BaseModelParams & { + model: BaseChatModel; +}; + +type InvocationResult = { + type: "say" | "hangup" | "transfer"; + content?: string; + toolCalls?: ToolCall[]; +}; + +type TelephonyContext = { + callDirection: CallDirection; + ingressNumber: string; + callerNumber: string; +}; + +export { + BaseModelParams, + InvocationResult, + LanguageModel, + LanguageModelParams, + TelephonyContext +}; diff --git a/mods/autopilot/src/sendConversationEndedEvent.ts b/mods/autopilot/src/sendConversationEndedEvent.ts new file mode 100644 index 000000000..c07dce3d8 --- /dev/null +++ b/mods/autopilot/src/sendConversationEndedEvent.ts @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + AllowedHttpMethod, + eventsHookSchema, + sendHttpRequest, + EventsHookAllowedEvents +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +type EventsHook = { + url: string; + events: EventsHookAllowedEvents[]; + headers?: Record; +}; + +export async function sendConversationEndedEvent( + eventsHook: EventsHook, + chatHistory: Record[] +) { + if ( + !eventsHook?.events.includes(EventsHookAllowedEvents.CONVERSATION_ENDED) && + !eventsHook?.events.includes(EventsHookAllowedEvents.ALL) + ) { + return; + } + + const parsedEventsHook = eventsHookSchema.parse(eventsHook); + const body = { + eventType: EventsHookAllowedEvents.CONVERSATION_ENDED, + chatHistory + }; + + try { + await sendHttpRequest({ + url: parsedEventsHook.url!, + method: AllowedHttpMethod.POST, + headers: parsedEventsHook.headers, + waitForResponse: false, + body + }); + } catch (e) { + logger.error("error sending event", e); + } +} diff --git a/mods/autopilot/src/server.ts b/mods/autopilot/src/server.ts new file mode 100644 index 000000000..3c2a981ba --- /dev/null +++ b/mods/autopilot/src/server.ts @@ -0,0 +1,25 @@ +#!/usr/bin/env node +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { NODE_ENV, SKIP_IDENTITY } from "./envs"; +import { startVoiceServer } from "./voiceServerSetup"; + +const skipIdentity = NODE_ENV === "dev" || SKIP_IDENTITY; + +startVoiceServer(skipIdentity); diff --git a/mods/autopilot/src/tools/ToolsCatalog.ts b/mods/autopilot/src/tools/ToolsCatalog.ts new file mode 100644 index 000000000..e3adc32c9 --- /dev/null +++ b/mods/autopilot/src/tools/ToolsCatalog.ts @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { sendHttpRequest, toolSchema } from "@fonoster/common"; +import { Tool } from "./type"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +class ToolsCatalog { + private readonly tools: Map; + + constructor(tools: Tool[]) { + this.tools = new Map(); + + tools.forEach((tool) => { + logger.verbose(`adding the '${tool.name}' tool to the catalog`); + this.addTool(tool); + }); + } + + async invokeTool(toolName: string, args: Record) { + const tool = this.tools.get(toolName); + + if (!tool) { + throw new Error(`Tool '${toolName}' not found in the catalog`); + } + + const parsedTool = toolSchema.parse(tool); + + // FIXME: We shouldn't have to check the nullability of the operation + return await sendHttpRequest({ + method: parsedTool.operation?.method!, + url: parsedTool.operation?.url!, + waitForResponse: parsedTool.operation?.waitForResponse!, + headers: parsedTool.operation?.headers, + body: args + }); + } + + getTool(toolName: string): Tool | undefined { + return this.tools.get(toolName); + } + + addTool(toolDef: Tool) { + this.tools.set(toolDef.name!, toolDef); + } + + listTools(): Tool[] { + return Array.from(this.tools.values()); + } +} + +export { ToolsCatalog }; diff --git a/mods/autopilot/src/tools/builtin/hangupToolDefinition.ts b/mods/autopilot/src/tools/builtin/hangupToolDefinition.ts new file mode 100644 index 000000000..43d2d27f0 --- /dev/null +++ b/mods/autopilot/src/tools/builtin/hangupToolDefinition.ts @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BuiltInTool } from "../type"; + +const hangupToolDefinition: BuiltInTool = { + name: "hangup", + description: "Hangup the call and end the conversation", + parameters: { + type: "object", + properties: {}, + required: [] + } +}; + +export { hangupToolDefinition }; diff --git a/mods/autopilot/src/tools/builtin/transferToolDefinition.ts b/mods/autopilot/src/tools/builtin/transferToolDefinition.ts new file mode 100644 index 000000000..d0d3ec87e --- /dev/null +++ b/mods/autopilot/src/tools/builtin/transferToolDefinition.ts @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BuiltInTool } from "../type"; + +const transferToolDefinition: BuiltInTool = { + name: "transfer", + description: "Transfer the call to a live agent", + parameters: { + type: "object", + properties: {}, + required: [] + } +}; + +export { transferToolDefinition }; diff --git a/mods/autopilot/src/tools/convertToolToOpenAITool.ts b/mods/autopilot/src/tools/convertToolToOpenAITool.ts new file mode 100644 index 000000000..4b195d881 --- /dev/null +++ b/mods/autopilot/src/tools/convertToolToOpenAITool.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { OpenAITool, Tool } from "./type"; + +function convertToolToOpenAITool(tool: Tool): OpenAITool { + return { + type: "function", + function: { + ...tool + } + }; +} + +export { convertToolToOpenAITool }; diff --git a/mods/autopilot/src/tools/index.ts b/mods/autopilot/src/tools/index.ts new file mode 100644 index 000000000..65273d218 --- /dev/null +++ b/mods/autopilot/src/tools/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./ToolsCatalog"; +export * from "./builtin/hangupToolDefinition"; +export * from "./builtin/transferToolDefinition"; +export * from "./convertToolToOpenAITool"; diff --git a/mods/autopilot/src/tools/type.ts b/mods/autopilot/src/tools/type.ts new file mode 100644 index 000000000..2d2ed5b39 --- /dev/null +++ b/mods/autopilot/src/tools/type.ts @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { toolSchema } from "@fonoster/common"; + +type Tool = z.infer; + +type BuiltInTool = Omit; + +type OpenAITool = { + type: "function"; + function: Omit; +}; + +export { OpenAITool, Tool, BuiltInTool }; diff --git a/mods/autopilot/src/types.ts b/mods/autopilot/src/types.ts new file mode 100644 index 000000000..cd88f2748 --- /dev/null +++ b/mods/autopilot/src/types.ts @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ConversationSettings } from "./assistants"; +import { LanguageModel } from "./models"; +import { Voice } from "./voice"; + +enum LanguageModelProvider { + OPENAI = "openai", + GROQ = "groq", + OLLAMA = "ollama" +} + +enum ConversationProvider { + FILE = "file", + API = "api" +} + +type AutopilotParams = { + voice: Voice; + conversationSettings: ConversationSettings; + languageModel: LanguageModel; +}; + +export { AutopilotParams, LanguageModelProvider, ConversationProvider }; diff --git a/mods/autopilot/src/vad/SileroVad.ts b/mods/autopilot/src/vad/SileroVad.ts new file mode 100644 index 000000000..2a9eb911a --- /dev/null +++ b/mods/autopilot/src/vad/SileroVad.ts @@ -0,0 +1,65 @@ +/* eslint-disable no-loops/no-loops */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { createVad } from "./createVad"; +import { Vad } from "./types"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +class SileroVad implements Vad { + private vad: (data: Uint8Array, callback: (event: string) => void) => void; + private params: { + pathToModel?: string; + activationThreshold: number; + deactivationThreshold: number; + debounceFrames: number; + }; + + constructor(params: { + pathToModel?: string; + activationThreshold: number; + deactivationThreshold: number; + debounceFrames: number; + }) { + logger.verbose("starting instance of silero vad v4", { ...params }); + this.params = params; + } + + pathToModel?: string; + activationThreshold: number; + deactivationThreshold: number; + debounceFrames: number; + + async init() { + this.vad = await createVad(this.params); + } + + processChunk( + data: Uint8Array, + callback: (event: "SPEECH_START" | "SPEECH_END") => void + ) { + if (!this.vad) { + throw new Error("VAD not initialized)"); + } + this.vad(data, callback); + } +} + +export { SileroVad }; diff --git a/mods/autopilot/src/vad/SileroVadModel.ts b/mods/autopilot/src/vad/SileroVadModel.ts new file mode 100644 index 000000000..7a56033f5 --- /dev/null +++ b/mods/autopilot/src/vad/SileroVadModel.ts @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { readFileSync } from "fs"; +import { ONNXRuntimeAPI, SpeechProbabilities } from "./types"; + +class SileroVadModel { + _session; + _h: unknown; + _c: unknown; + _sr: unknown; + + constructor( + private ort: ONNXRuntimeAPI, + private pathToModel: string + ) {} + + static new = async (ort: ONNXRuntimeAPI, pathToModel: string) => { + const model = new SileroVadModel(ort, pathToModel); + await model.init(); + return model; + }; + + async init() { + const modelArrayBuffer = readFileSync(this.pathToModel).buffer; + this._session = await this.ort.InferenceSession.create(modelArrayBuffer); + this._sr = new this.ort.Tensor("int64", [16000n]); + this.resetState(); + } + + async process(audioFrame: Float32Array): Promise { + const t = new this.ort.Tensor("float32", audioFrame, [ + 1, + audioFrame.length + ]); + const inputs = { + input: t, + h: this._h, + c: this._c, + sr: this._sr + }; + const out = await this._session.run(inputs); + this._h = out.hn; + this._c = out.cn; + const [isSpeech] = out.output.data; + const notSpeech = 1 - isSpeech; + + return { notSpeech, isSpeech }; + } + + resetState() { + const zeroes = Array(2 * 64).fill(0); + this._h = new this.ort.Tensor("float32", zeroes, [2, 1, 64]); + this._c = new this.ort.Tensor("float32", zeroes, [2, 1, 64]); + } +} + +export { SileroVadModel }; diff --git a/mods/autopilot/src/vad/chunkToFloat32Array.ts b/mods/autopilot/src/vad/chunkToFloat32Array.ts new file mode 100644 index 000000000..4df4d5791 --- /dev/null +++ b/mods/autopilot/src/vad/chunkToFloat32Array.ts @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// This version of the chunkToFloat32Array accounts for the case where +// the byteOffset is misaligned. +// +// Q. Would it be the same if we just created a new Uint8Array from the chunk? +function chunkToFloat32Array(chunk: Uint8Array): Float32Array { + // Create a DataView to handle endianness explicitly + const dataView = new DataView( + chunk.buffer, + chunk.byteOffset, + chunk.byteLength + ); + const floatArray = new Float32Array(chunk.byteLength / 2); + + // Convert each 16-bit sample to float32, explicitly handling little-endian + for (let i = 0; i < floatArray.length; i++) { + // Read 16-bit value with explicit little-endian + const int16Value = dataView.getInt16(i * 2, true); // true = little-endian + // Normalize to [-1, 1] + floatArray[i] = int16Value / 32768.0; + } + + return floatArray; +} + +export { chunkToFloat32Array }; diff --git a/mods/autopilot/src/vad/createVad.ts b/mods/autopilot/src/vad/createVad.ts new file mode 100644 index 000000000..76a8e1470 --- /dev/null +++ b/mods/autopilot/src/vad/createVad.ts @@ -0,0 +1,112 @@ +/* eslint-disable no-loops/no-loops */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { join } from "path"; +import { getLogger } from "@fonoster/logger"; +import * as ort from "onnxruntime-node"; +import { chunkToFloat32Array } from "./chunkToFloat32Array"; +import { SileroVadModel } from "./SileroVadModel"; +import { VadParams } from "./types"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +const FULL_FRAME_SIZE = 1600; // Equivalent to 100ms @ 16kHz +const FRAME_SIZE = 480; // Use last 30ms from the full frame for VAD processing + +async function createVad(params: VadParams) { + const { + pathToModel, + activationThreshold, + deactivationThreshold, + debounceFrames + } = params; + + const effectivePath = + pathToModel || join(__dirname, "..", "..", "silero_vad.onnx"); + const silero = await SileroVadModel.new(ort, effectivePath); + + let audioBuffer: number[] = []; + let isSpeechActive = false; + let framesSinceStateChange = 0; + + // Helper to reset internal state after a state change. + const resetState = () => { + isSpeechActive = false; + framesSinceStateChange = 0; + audioBuffer = []; + silero.resetState(); + logger.silly("State reset -- audioBuffer cleared"); + }; + + return async function process( + chunk: Uint8Array, + callback: (event: "SPEECH_START" | "SPEECH_END") => void + ) { + const float32Array = chunkToFloat32Array(chunk); + audioBuffer.push(...float32Array); + + // Process full frames from the buffer + while (audioBuffer.length >= FULL_FRAME_SIZE) { + // Extract one full frame worth of samples + const fullFrame = audioBuffer.slice(0, FULL_FRAME_SIZE); + audioBuffer = audioBuffer.slice(FULL_FRAME_SIZE); + + // Use the last FRAME_SIZE samples from the full frame for VAD processing + const frame = fullFrame.slice(fullFrame.length - FRAME_SIZE); + const result = await silero.process(new Float32Array(frame)); + const rawScore = result.isSpeech; + + logger.silly("Frame processing", { + rawScore, + isSpeechActive, + framesSinceStateChange, + pendingSamples: audioBuffer.length + }); + + framesSinceStateChange++; + + if (isSpeechActive) { + // If currently in speech, check if the score has dropped below the deactivation threshold + if ( + rawScore < deactivationThreshold && + framesSinceStateChange >= debounceFrames + ) { + isSpeechActive = false; + callback("SPEECH_END"); + silero.resetState(); // Reset VAD state after speech ends + framesSinceStateChange = 0; + logger.silly("Speech end detected", { rawScore }); + } + } else { + // If not currently in speech, check if the score exceeds the activation threshold + if ( + rawScore > activationThreshold && + framesSinceStateChange >= debounceFrames + ) { + isSpeechActive = true; + framesSinceStateChange = 0; + callback("SPEECH_START"); + logger.silly("Speech start detected", { rawScore }); + } + } + } + }; +} + +export { createVad }; diff --git a/mods/autopilot/src/vad/index.ts b/mods/autopilot/src/vad/index.ts new file mode 100644 index 000000000..41b8c5695 --- /dev/null +++ b/mods/autopilot/src/vad/index.ts @@ -0,0 +1,21 @@ +/* eslint-disable no-loops/no-loops */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./SileroVad"; +export * from "./types"; diff --git a/mods/autopilot/src/vad/types.ts b/mods/autopilot/src/vad/types.ts new file mode 100644 index 000000000..292a65223 --- /dev/null +++ b/mods/autopilot/src/vad/types.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type VadEvent = "SPEECH_START" | "SPEECH_END"; + +type Vad = { + processChunk: ( + chunk: Uint8Array, + callback: (event: VadEvent) => void + ) => void; +}; + +type VadParams = { + pathToModel?: string; + activationThreshold: number; + deactivationThreshold: number; + debounceFrames: number; +}; + +type SpeechProbabilities = { + notSpeech: number; + isSpeech: number; +}; + +type ONNXRuntimeAPI = { + InferenceSession: { + create(modelArrayBuffer: ArrayBuffer): Promise; + }; + Tensor: { + new (type: "int64", dims: [16000n]): unknown; + new (type: "float32", data: number[], dims: [2, 1, 64]): unknown; + new (type: "float32", data: Float32Array, dims: [1, number]): unknown; + new (type: "float32", data: Float32Array, dims: [1, number]): unknown; + }; +}; + +export { ONNXRuntimeAPI, SpeechProbabilities, Vad, VadParams, VadEvent }; diff --git a/mods/autopilot/src/vadWorker.ts b/mods/autopilot/src/vadWorker.ts new file mode 100644 index 000000000..e9d4ba862 --- /dev/null +++ b/mods/autopilot/src/vadWorker.ts @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { parentPort, workerData } from "worker_threads"; +import { SileroVad } from "./vad/SileroVad"; +import { SileroVad as SileroVadV5 } from "./vadv5/SileroVad"; +import { SILERO_VAD_VERSION } from "./envs"; +import { join } from "path"; + +const vad = + SILERO_VAD_VERSION === "v4" + ? new SileroVad({ + ...workerData, + pathToModel: join(__dirname, "..", "silero_vad.onnx") + }) + : new SileroVadV5({ + ...workerData, + pathToModel: join(__dirname, "..", "silero_vad_v5.onnx") + }); + +vad.init().then(() => { + parentPort?.on("message", (chunk) => { + vad.processChunk(chunk, (voiceActivity) => { + parentPort?.postMessage(voiceActivity); + }); + }); +}); diff --git a/mods/autopilot/src/vadv5/SileroVad.ts b/mods/autopilot/src/vadv5/SileroVad.ts new file mode 100644 index 000000000..b50048adc --- /dev/null +++ b/mods/autopilot/src/vadv5/SileroVad.ts @@ -0,0 +1,65 @@ +/* eslint-disable no-loops/no-loops */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { createVad } from "./createVad"; +import { Vad } from "./types"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +class SileroVad implements Vad { + private vad: (data: Uint8Array, callback: (event: string) => void) => void; + private readonly params: { + pathToModel: string; + activationThreshold: number; + deactivationThreshold: number; + debounceFrames: number; + }; + + constructor(params: { + pathToModel: string; + activationThreshold: number; + deactivationThreshold: number; + debounceFrames: number; + }) { + logger.verbose("starting instance of silero vad v5", { ...params }); + this.params = params; + } + + pathToModel: string; + activationThreshold: number; + deactivationThreshold: number; + debounceFrames: number; + + async init() { + this.vad = await createVad(this.params); + } + + processChunk( + data: Uint8Array, + callback: (event: "SPEECH_START" | "SPEECH_END") => void + ) { + if (!this.vad) { + throw new Error("VAD not initialized"); + } + this.vad(data, callback); + } +} + +export { SileroVad }; diff --git a/mods/autopilot/src/vadv5/SileroVadModel.ts b/mods/autopilot/src/vadv5/SileroVadModel.ts new file mode 100644 index 000000000..f1e5ec6fa --- /dev/null +++ b/mods/autopilot/src/vadv5/SileroVadModel.ts @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { readFileSync } from "fs"; +import { + ONNXRuntimeAPI, + ONNXSession, + ONNXTensor, + SpeechProbabilities +} from "./types"; + +const SAMPLE_RATE = 16000; + +function getNewState(ortInstance: ONNXRuntimeAPI) { + return new ortInstance.Tensor( + "float32", + new Float32Array(2 * 1 * 128), // Use Float32Array for consistency + [2, 1, 128] + ); +} + +class SileroVadModel { + private _session: ONNXSession; + private _state: ONNXTensor; + private _sr: ONNXTensor; + + constructor( + private readonly ort: ONNXRuntimeAPI, + private readonly pathToModel: string + ) {} + + static readonly new = async (ort: ONNXRuntimeAPI, pathToModel: string) => { + const model = new SileroVadModel(ort, pathToModel); + await model.init(); + return model; + }; + + async init() { + const modelArrayBuffer = readFileSync(this.pathToModel).buffer; + const sessionOption = { interOpNumThreads: 1, intraOpNumThreads: 1 }; + this._session = await this.ort.InferenceSession.create( + modelArrayBuffer, + sessionOption + ); + + // Validate model inputs/outputs + const requiredInputs = ["input", "state", "sr"]; + for (const name of requiredInputs) { + if (!this._session.inputNames.includes(name)) { + throw new Error(`Model is missing expected input "${name}"`); + } + } + if ( + !this._session.outputNames.includes("output") || + !this._session.outputNames.includes("stateN") + ) { + throw new Error("Model is missing expected outputs"); + } + + // Use BigInt for sample rate tensor + this._sr = new this.ort.Tensor("int64", [BigInt(SAMPLE_RATE)], []); + this._state = getNewState(this.ort); + } + + resetState = () => { + this._state = getNewState(this.ort); + }; + + async process(audioFrame: Float32Array): Promise { + const inputTensor = new this.ort.Tensor("float32", audioFrame, [ + 1, + audioFrame.length + ]); + + const feeds = { + input: inputTensor, + state: this._state, + sr: this._sr + }; + + const out = await this._session.run(feeds); + this._state = out.stateN; + + const [isSpeech] = out.output.data; + const notSpeech = 1 - isSpeech; + + return { notSpeech, isSpeech }; + } +} + +export { SileroVadModel }; diff --git a/mods/autopilot/src/vadv5/createVad.ts b/mods/autopilot/src/vadv5/createVad.ts new file mode 100644 index 000000000..00110be31 --- /dev/null +++ b/mods/autopilot/src/vadv5/createVad.ts @@ -0,0 +1,113 @@ +/* eslint-disable no-loops/no-loops */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as ort from "onnxruntime-node"; +import { chunkToFloat32Array } from "../vad/chunkToFloat32Array"; +import { SileroVadModel } from "./SileroVadModel"; +import { getLogger } from "@fonoster/logger"; +import { VadParams } from "../vad/types"; +import { join } from "path"; + +const logger = getLogger({ service: "autopilot", filePath: __filename }); + +const FULL_FRAME_SIZE = 1024; // 64ms @ 16kHz +const BUFFER_SIZE = 512; // 32ms @ 16kHz + +async function createVad(params: VadParams) { + const { + pathToModel, + activationThreshold, + deactivationThreshold, + debounceFrames + } = params; + + const effectivePath = + pathToModel || join(__dirname, "..", "..", "silero_vad_v5.onnx"); + const silero = await SileroVadModel.new(ort, effectivePath); + + let sampleBuffer: number[] = []; + let isSpeechActive = false; + let framesSinceStateChange = 0; + + // Reset internal state after a state change. + const resetState = () => { + isSpeechActive = false; + framesSinceStateChange = 0; + // Clear any pending audio samples to avoid using outdated values. + sampleBuffer = []; + silero.resetState(); + + logger.silly("State reset -- sampleBuffer cleared"); + }; + + return async function process( + chunk: Uint8Array, + callback: (event: "SPEECH_START" | "SPEECH_END") => void + ) { + // Convert the incoming chunk to normalized Float32 samples (using chunkToFloat32Array) + const float32Array = chunkToFloat32Array(chunk); + sampleBuffer.push(...float32Array); + + // Wait until we've collected a full frame worth of samples. + while (sampleBuffer.length >= FULL_FRAME_SIZE) { + const fullFrame = sampleBuffer.slice(0, FULL_FRAME_SIZE); + sampleBuffer = sampleBuffer.slice(FULL_FRAME_SIZE); + + // Use the last BUFFER_SIZE samples from the full frame. + const frame = fullFrame.slice(fullFrame.length - BUFFER_SIZE); + const result = await silero.process(new Float32Array(frame)); + const rawScore = result.isSpeech; + + logger.silly("Frame processing", { + rawScore, + isSpeechActive, + framesSinceStateChange, + pendingSamples: sampleBuffer.length + }); + + framesSinceStateChange++; + + if (isSpeechActive) { + // If already in speech, check if the score has dropped below deactivationThreshold + if ( + rawScore < deactivationThreshold && + framesSinceStateChange >= debounceFrames + ) { + callback("SPEECH_END"); + resetState(); + logger.silly("Speech end detected", { rawScore }); + continue; + } + } else { + // If currently not speaking, check if the score is above activationThreshold + if ( + rawScore > activationThreshold && + framesSinceStateChange >= debounceFrames + ) { + isSpeechActive = true; + framesSinceStateChange = 0; + callback("SPEECH_START"); + logger.silly("Speech start detected", { rawScore }); + } + } + } + }; +} + +export { createVad, VadParams }; diff --git a/mods/autopilot/src/vadv5/index.ts b/mods/autopilot/src/vadv5/index.ts new file mode 100644 index 000000000..41b8c5695 --- /dev/null +++ b/mods/autopilot/src/vadv5/index.ts @@ -0,0 +1,21 @@ +/* eslint-disable no-loops/no-loops */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./SileroVad"; +export * from "./types"; diff --git a/mods/autopilot/src/vadv5/types.ts b/mods/autopilot/src/vadv5/types.ts new file mode 100644 index 000000000..58d75def7 --- /dev/null +++ b/mods/autopilot/src/vadv5/types.ts @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type VadEvent = "SPEECH_START" | "SPEECH_END"; + +type Vad = { + processChunk: ( + chunk: Uint8Array, + callback: (event: VadEvent) => void + ) => void; +}; + +export interface SpeechProbabilities { + notSpeech: number; + isSpeech: number; +} + +export interface ONNXRuntimeAPI { + InferenceSession: { + create: ( + modelPath: ArrayBuffer | string, + options?: { interOpNumThreads: number; intraOpNumThreads: number } + ) => Promise; + }; + Tensor: new ( + type: string, + data: Float32Array | bigint[], + dims: number[] + ) => ONNXTensor; +} + +export interface ONNXSession { + run: (feeds: { [key: string]: ONNXTensor }) => Promise<{ + output: { data: Float32Array }; + stateN: ONNXTensor; + }>; + inputNames: string[]; + outputNames: string[]; +} + +export interface ONNXTensor { + data: Float32Array | bigint[]; + dims: number[]; + type: string; +} + +export { Vad, VadEvent }; diff --git a/mods/autopilot/src/voice/Voice.ts b/mods/autopilot/src/voice/Voice.ts new file mode 100644 index 000000000..66a8be9b8 --- /dev/null +++ b/mods/autopilot/src/voice/Voice.ts @@ -0,0 +1,133 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + DialRecordDirection, + PlaybackControlAction, + StreamGatherPayload, + StreamGatherSource, + StreamPayload +} from "@fonoster/common"; +import { VoiceResponse } from "@fonoster/voice"; +import { v4 as uuidv4 } from "uuid"; +import { Voice } from "./types"; + +class VoiceImpl implements Voice { + private readonly playbackRef: string; + sessionRef: string; + sgatherStream: { + stop: () => Promise; + onData: ( + cb: (payload: { speech: string; responseTime: number }) => void + ) => void; + }; + vadStream: { + stop: () => Promise; + onData: (cb: (chunk: Uint8Array) => void) => void; + }; + + constructor( + sessionRef: string, + private readonly voice: VoiceResponse + ) { + this.sessionRef = sessionRef; + this.playbackRef = uuidv4(); + } + + async answer() { + await this.voice.answer(); + } + + async hangup() { + await this.voice.hangup(); + } + + async say(text: string) { + await this.voice.say(text, { playbackRef: this.playbackRef }); + } + + async sgather() { + const stream = await this.voice.sgather({ + source: StreamGatherSource.SPEECH + }); + + this.sgatherStream = { + stop: async () => { + stream.close(); + stream.cleanup(() => {}); + }, + onData: ( + cb: (payload: { speech: string; responseTime: number }) => void + ) => { + stream.onPayload( + (payload: { speech?: string; responseTime: number }) => { + cb({ + speech: payload.speech!, + responseTime: payload.responseTime + }); + } + ); + } + }; + + return this.sgatherStream; + } + + async stream() { + const stream = await this.voice.stream(); + + this.vadStream = { + stop: async () => { + stream.close(); + stream.cleanup(() => {}); + }, + onData: (cb: (chunk: Uint8Array) => void) => { + stream.onPayload((payload: StreamPayload) => { + cb(payload.data!); + }); + } + }; + + return this.vadStream; + } + + async transfer(to: string, options: { record: boolean; timeout: number }) { + const { record, timeout } = options; + + const effectiveOptions = { + recordDirection: record ? DialRecordDirection.BOTH : undefined, + timeout + }; + + await this.voice.dial(to, effectiveOptions); + } + + async stopSpeech() { + await this.voice.playbackControl( + this.playbackRef, + PlaybackControlAction.STOP + ); + } + + async stopStreams() { + await this.vadStream.stop(); + await this.sgatherStream.stop(); + } +} + +export { VoiceImpl }; diff --git a/mods/autopilot/src/voice/index.ts b/mods/autopilot/src/voice/index.ts new file mode 100644 index 000000000..2681f99a5 --- /dev/null +++ b/mods/autopilot/src/voice/index.ts @@ -0,0 +1,20 @@ +export * from "./Voice"; +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./types"; diff --git a/mods/autopilot/src/voice/types.ts b/mods/autopilot/src/voice/types.ts new file mode 100644 index 000000000..78f6133f3 --- /dev/null +++ b/mods/autopilot/src/voice/types.ts @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type GatherStream = { + stop: () => Promise; + onData: ( + cb: (payload: { speech: string; responseTime: number }) => void + ) => void; +}; + +type Stream = { + stop: () => Promise; + onData: (cb: (chunk: Uint8Array) => void) => void; +}; + +type TransferOptions = { + timeout?: number; + record?: boolean; +}; + +type Voice = { + sessionRef: string; + answer: () => Promise; + hangup: () => Promise; + say: (text: string) => Promise; + sgather: () => Promise; + transfer: (destination: string, options?: TransferOptions) => Promise; + stream: () => Promise; + stopSpeech: () => Promise; + stopStreams: () => Promise; +}; + +export { TransferOptions, Voice }; diff --git a/mods/autopilot/src/voiceServerSetup.ts b/mods/autopilot/src/voiceServerSetup.ts new file mode 100644 index 000000000..8145b4bfd --- /dev/null +++ b/mods/autopilot/src/voiceServerSetup.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import VoiceServer from "@fonoster/voice"; +import { handleVoiceRequest } from "./handleVoiceRequest"; + +function startVoiceServer(skipIdentity: boolean) { + new VoiceServer({ skipIdentity }).listen(handleVoiceRequest); +} + +export { startVoiceServer }; diff --git a/mods/autopilot/test/machine.test.ts b/mods/autopilot/test/machine.test.ts new file mode 100644 index 000000000..7d3c2bee0 --- /dev/null +++ b/mods/autopilot/test/machine.test.ts @@ -0,0 +1,244 @@ +/* eslint-disable no-invalid-this */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { createActor } from "xstate"; +import { LanguageModel } from "../src/models"; +import { Voice } from "../src/voice"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const waitFor = async (time: number) => new Promise((r) => setTimeout(r, time)); + +const FIRST_MESSAGE = "Welcome message"; +const GOODBYE_MESSAGE = "Goodbye message"; +const SYSTEM_ERROR_MESSAGE = "System error message"; +const IDLE_MESSAGE = "Idle message"; +const ASSISTANT_RESPONSE = "Assistant response"; + +const getActorInput = () => ({ + languageModel: { + invoke: sandbox.stub().resolves({ + type: "say", + content: ASSISTANT_RESPONSE + }) + } as unknown as LanguageModel, + voice: { + sessionRef: "sessionRef", + answer: sandbox.stub().resolves(), + sgather: sandbox.stub().resolves({ + stop: sandbox.stub().resolves(), + onData: sandbox.stub() + }), + stream: sandbox.stub().resolves({ + stop: sandbox.stub().resolves(), + onData: sandbox.stub() + }), + stopSpeech: sandbox.stub().resolves(), + say: sandbox.stub().resolves(), + hangup: sandbox.stub().resolves() + } as unknown as Voice, + conversationSettings: { + firstMessage: FIRST_MESSAGE, + goodbyeMessage: GOODBYE_MESSAGE, + systemPrompt: "System template", + systemErrorMessage: SYSTEM_ERROR_MESSAGE, + maxSpeechWaitTimeout: 5000, + initialDtmf: "1", + idleOptions: { + message: IDLE_MESSAGE, + timeout: 3000, + maxTimeoutCount: 3 + }, + transferOptions: { + phoneNumber: "+1234567890", + message: "Transferring call" + }, + vad: { + activationThreshold: 0.3, + deactivationThreshold: 0.2, + debounceFrames: 3 + } + } +}); + +describe("@autopilot/machine", function () { + this.slow(30000); + + afterEach(() => sandbox.restore()); + + it("should say the first message then set the state to 'idle'", async function () { + // Arrange + const { machine } = await import("../src/machine"); + + const input = getActorInput(); + const actor = createActor(machine, { + input + }); + + // Act + actor.start(); + + await waitFor(500); + + // Assert + const { context, value: state } = actor.getSnapshot(); + expect(state).to.equal("idle"); + expect(input.voice.answer).to.have.been.calledOnce; + expect(input.voice.say).to.have.been.calledOnceWith(FIRST_MESSAGE); + expect(input.voice.hangup).to.not.have.been.called; + expect(context.firstMessage).to.equal(FIRST_MESSAGE); + expect(context.goodbyeMessage).to.equal(GOODBYE_MESSAGE); + expect(context.systemErrorMessage).to.equal(SYSTEM_ERROR_MESSAGE); + expect(context.idleMessage).to.equal(IDLE_MESSAGE); + expect(context.idleTimeout).to.equal(3000); + expect(context.maxSpeechWaitTimeout).to.equal(5000); + expect(context.transferMessage).to.equal("Transferring call"); + expect(context.transferPhoneNumber).to.equal("+1234567890"); + expect(context.maxIdleTimeoutCount).to.equal(3); + expect(context.idleMessage).to.equal(IDLE_MESSAGE); + expect(context.idleTimeout).to.equal(3000); + expect(context.idleTimeoutCount).to.equal(0); + expect(context.speechBuffer).to.equal(""); + expect(context.isSpeaking).to.equal(false); + + // Cleanup + actor.stop(); + }).timeout(20000); + + it("should set the state to 'idle' and then 'listeningToUser'", async function () { + // Arrange + const { machine } = await import("../src/machine"); + + const input = getActorInput(); + const actor = createActor(machine, { + input + }); + + // Act + actor.start(); + actor.send({ type: "SPEECH_START" }); + + // Assert + const { context, value: state } = actor.getSnapshot(); + expect(state).to.equal("listeningToUser"); + expect(context.speechBuffer).to.equal(""); + expect(context.idleTimeoutCount).to.equal(0); + expect(context.isSpeaking).to.equal(true); + expect(input.voice.stopSpeech).to.have.been.calledOnce; + + // Cleanup + actor.stop(); + }).timeout(20000); + + it.skip("should append the speech to the buffer and set the state to 'listeningToUser'", async function () { + // Arrange + const { machine } = await import("../src/machine"); + + const input = getActorInput(); + const actor = createActor(machine, { + input + }); + + // Act + actor.start(); + + actor.send({ type: "SPEECH_START" }); + actor.send({ type: "SPEECH_RESULT", speech: "Well, I personally think that the best way to learn is by doing" }); + actor.send({ type: "SPEECH_END" }); + actor.send({ type: "SPEECH_RESULT", speech: "No." }); + actor.send({ type: "SPEECH_RESULT", speech: "I meant in the practical sense." }); + + await waitFor(50); + + const { context, value: state } = actor.getSnapshot(); + expect(state).to.equal("updatingSpeech"); + expect(context.speechBuffer).to.equal("No. I meant in the practical sense."); + expect(context.idleTimeoutCount).to.equal(0); + expect(context.isSpeaking).to.equal(true); + expect(input.voice.say).to.have.been.calledTwice; + expect(input.voice.say).to.have.been.calledWith(ASSISTANT_RESPONSE); + + // Cleanup + actor.stop(); + }).timeout(20000); + + it("from 'listeningToUser' call SPEECH_RESULT and wait to move to 'idle'", async function () { + // Arrange + const { machine } = await import("../src/machine"); + + const input = getActorInput(); + const actor = createActor(machine, { + input + }); + + // Act + actor.start(); + actor.send({ type: "SPEECH_START" }); + actor.send({ type: "SPEECH_RESULT", speech: "Hello" }); + actor.send({ type: "SPEECH_END" }); + + // Goes to "processingUserRequest" then to "idle" because of MAX_SPEECH_WAIT_TIMEOUT + await waitFor(6000); + + // // Assert + const { context, value: state } = actor.getSnapshot(); + expect(state).to.equal("idle"); + expect(context.speechBuffer).to.equal(""); + expect(context.isSpeaking).to.equal(false); + expect(input.voice.say).to.have.been.calledWith(ASSISTANT_RESPONSE); + + // Cleanup + actor.stop(); + }).timeout(20000); + + it("should timeout three times and then hangup", async function () { + // Arrange + const { machine } = await import("../src/machine"); + + const input = getActorInput(); + const actor = createActor(machine, { + input + }); + + // Act + actor.start(); + + await waitFor(13000); + + // Assert + const { context, value: state } = actor.getSnapshot(); + expect(state).to.equal("hangup"); + expect(context.idleTimeoutCount).to.equal(3); + expect(input.voice.say).to.have.been.callCount(5); + expect(input.voice.say).to.have.been.calledWith(FIRST_MESSAGE); + expect(input.voice.say).to.have.been.calledWith(IDLE_MESSAGE); + expect(input.voice.say).to.have.been.calledWith(GOODBYE_MESSAGE); + expect(input.voice.hangup).to.have.been.calledOnce; + + // Cleanup + actor.stop(); + }).timeout(20000); +}); diff --git a/mods/autopilot/tsconfig.json b/mods/autopilot/tsconfig.json new file mode 100644 index 000000000..5065973ac --- /dev/null +++ b/mods/autopilot/tsconfig.json @@ -0,0 +1,25 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src", + "skipLibCheck": true, + "strictNullChecks": true, + "target": "es2020", + }, + "exclude": ["node_modules", "dist", "test"], + "references": [ + { + "path": "../common", + }, + { + "path": "../voice", + }, + { + "path": "../logger", + }, + { + "path": "../sdk", + } + ], +} diff --git a/mods/callmanager/.dockerignore b/mods/callmanager/.dockerignore deleted file mode 100644 index b512c09d4..000000000 --- a/mods/callmanager/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/mods/callmanager/.npmignore b/mods/callmanager/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/callmanager/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/callmanager/Dockerfile b/mods/callmanager/Dockerfile deleted file mode 100644 index e288f1e37..000000000 --- a/mods/callmanager/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs \ - && npm install -g fonoster-*.tgz \ - && apk del npm git - -USER fonoster - -CMD ["run_callmanager"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_callmanager" ] \ No newline at end of file diff --git a/mods/callmanager/package-lock.json b/mods/callmanager/package-lock.json deleted file mode 100644 index 8d78d8c48..000000000 --- a/mods/callmanager/package-lock.json +++ /dev/null @@ -1,1676 +0,0 @@ -{ - "name": "@fonoster/callmanager", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/callmanager", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "ari-client": "^2.2.0", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "bin": { - "healthcheck_callmanager": "dist/service/healthcheck.js", - "run_callmanager": "dist/service/runner.js" - }, - "devDependencies": {} - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - }, - "devDependencies": { - "minipass": "3.3.4" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.3.18", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "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/ari-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ari-client/-/ari-client-2.2.0.tgz", - "integrity": "sha512-DPz+vC/dZyvy5HqBrEzYpNH6X2hDb+AIyRith6f8IVLHyveRWaHPO0S7rF1Q91qry/U8G+504KUZfeaBPwzIVQ==", - "dependencies": { - "backoff-func": "^0.1.2", - "bluebird": "^3.5.2", - "lodash": "^4.17.10", - "request": "^2.34.0", - "swagger-client": "2.0.26", - "uuid": "^3.0.0", - "ws": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/ax": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/ax/-/ax-0.1.8.tgz", - "integrity": "sha1-J8qac/pMeKR41i2CfK2GCiT91Jc=" - }, - "node_modules/backoff-func": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/backoff-func/-/backoff-func-0.1.2.tgz", - "integrity": "sha1-VMP64rreWHI0utXbh+NBLJ+ph4M=" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/btoa": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.1.1.tgz", - "integrity": "sha1-J8gQYmMQjp3UH/L6qtKhcEXjXro=", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "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/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/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/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/cookiejar": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-1.3.1.tgz", - "integrity": "sha1-wEsEj2iPgBYjrNkM1YSMK/iJGhc=" - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "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/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/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "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/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "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/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "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-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "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.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/phone": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/phone/-/phone-2.4.22.tgz", - "integrity": "sha512-k2f9qkIgcgbbeyFFMHDcCaYdPxq7u71EjmMvD998PEquwDvIT7zmUFe00S4hH9WPjk+IQlw9W/FlHOu1O17Tbw==", - "engines": { - "node": ">=6.10.0" - } - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/shred": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/shred/-/shred-0.8.10.tgz", - "integrity": "sha1-zxz+gPeb9TE9Ltw7kSJ4/RB6hxc=", - "dependencies": { - "ax": "0.1.8", - "cookiejar": "1.3.1", - "iconv-lite": ">= 0.1.2", - "sprintf": "0.1.1" - } - }, - "node_modules/sprintf": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/sprintf/-/sprintf-0.1.1.tgz", - "integrity": "sha1-6JJfyYlOGqaJnpCRx/KhITC3DeU=", - "deprecated": "The sprintf package is deprecated in favor of sprintf-js.", - "engines": { - "node": ">=0.2.4" - } - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.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/swagger-client": { - "version": "2.0.26", - "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-2.0.26.tgz", - "integrity": "sha1-c/FQk/be82nzG5ZwxtlkWzMWPk0=", - "deprecated": "No longer maintained, please upgrade to swagger-client@3.", - "dependencies": { - "btoa": "1.1.1", - "shred": "0.8.10" - }, - "engines": { - "node": ">= 0.6.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "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/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "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/ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "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/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/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" - } - } - }, - "dependencies": { - "@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - } - }, - "@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "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" - } - }, - "ari-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ari-client/-/ari-client-2.2.0.tgz", - "integrity": "sha512-DPz+vC/dZyvy5HqBrEzYpNH6X2hDb+AIyRith6f8IVLHyveRWaHPO0S7rF1Q91qry/U8G+504KUZfeaBPwzIVQ==", - "requires": { - "backoff-func": "^0.1.2", - "bluebird": "^3.5.2", - "lodash": "^4.17.10", - "request": "^2.34.0", - "swagger-client": "2.0.26", - "uuid": "^3.0.0", - "ws": "^6.0.0" - } - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "ax": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/ax/-/ax-0.1.8.tgz", - "integrity": "sha1-J8qac/pMeKR41i2CfK2GCiT91Jc=" - }, - "backoff-func": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/backoff-func/-/backoff-func-0.1.2.tgz", - "integrity": "sha1-VMP64rreWHI0utXbh+NBLJ+ph4M=" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "btoa": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.1.1.tgz", - "integrity": "sha1-J8gQYmMQjp3UH/L6qtKhcEXjXro=" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "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" - } - }, - "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==" - }, - "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" - } - }, - "cookiejar": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-1.3.1.tgz", - "integrity": "sha1-wEsEj2iPgBYjrNkM1YSMK/iJGhc=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "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==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "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==" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "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==" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "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-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "phone": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/phone/-/phone-2.4.22.tgz", - "integrity": "sha512-k2f9qkIgcgbbeyFFMHDcCaYdPxq7u71EjmMvD998PEquwDvIT7zmUFe00S4hH9WPjk+IQlw9W/FlHOu1O17Tbw==" - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "shred": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/shred/-/shred-0.8.10.tgz", - "integrity": "sha1-zxz+gPeb9TE9Ltw7kSJ4/RB6hxc=", - "requires": { - "ax": "0.1.8", - "cookiejar": "1.3.1", - "iconv-lite": ">= 0.1.2", - "sprintf": "0.1.1" - } - }, - "sprintf": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/sprintf/-/sprintf-0.1.1.tgz", - "integrity": "sha1-6JJfyYlOGqaJnpCRx/KhITC3DeU=" - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.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" - } - }, - "swagger-client": { - "version": "2.0.26", - "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-2.0.26.tgz", - "integrity": "sha1-c/FQk/be82nzG5ZwxtlkWzMWPk0=", - "requires": { - "btoa": "1.1.1", - "shred": "0.8.10" - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "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" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.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" - } - }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "requires": { - "async-limiter": "~1.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==" - } - } -} diff --git a/mods/callmanager/package.json b/mods/callmanager/package.json deleted file mode 100644 index 73fa52e32..000000000 --- a/mods/callmanager/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "@fonoster/callmanager", - "version": "0.3.22", - "description": "Call Manager", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/client/callmanager", - "types": "dist/client/callmanager", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "postbuild": "cp -a ./src/service/protos/ ./dist/service/protos", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/srv_runner" - }, - "bin": { - "run_callmanager": "dist/service/runner.js", - "healthcheck_callmanager": "dist/service/healthcheck.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/errors": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "ari-client": "^2.2.0", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/callmanager/src/client/callmanager.ts b/mods/callmanager/src/client/callmanager.ts deleted file mode 100644 index b4a504d1a..000000000 --- a/mods/callmanager/src/client/callmanager.ts +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { APIClient, ClientOptions } from "@fonoster/common"; -import { CallManagerClient } from "../service/protos/callmanager_grpc_pb"; -import CallManagerPB from "../service/protos/callmanager_pb"; -import { promisifyAll } from "grpc-promise"; -import { CallRequest, CallResponse, ICallManagerClient } from "./types"; - -/** - * @classdesc Use Fonoster CallManager, a capability of Fonoster CallManager, - * to initiate and monitor automated calls. Fonoster CallManager requires of a - * running Fonoster deployment. - * - * @extends APIClient - * @example - * - * const Fonoster = require("@fonoster/sdk") - * const callManager = new Fonoster.CallManager() - * - * callManager.call({ - * from: "9102104343", - * to: "17853178070", - * webhook: "https://https://071e-47-132-137-75.ngrok.io/voiceapp", - * }) - * .then(console.log) // successful response - * .catch(console.error) // an error occurred - */ -export default class CallManager - extends APIClient - implements ICallManagerClient -{ - /** - * Constructs a new CallManager Object. - * - * @see module:core:APIClient - */ - constructor(options?: ClientOptions) { - super(CallManagerClient, options); - super.init(); - promisifyAll(super.getService(), { metadata: super.getMeta() }); - } - - /** - * Call method. - * - * @param {CallRequest} request - Call request options - * @param {string} request.from - Number you are calling from. You must have this Number configured in your account - * @param {string} request.to - The callee - * @param {string} request.webhook - Url of the application that will handle the call - * If none is provided it will use the webook setup in the Number - * @param {object} request.metadata - Arbitrary payload to send to the Voice Application - * @return {Promise} - call results - * @throws if the from number doesn't exist - * @throws if could not connect to the underline services - * @example - * - * callManager.call({ - * from: "+19102104343", - * to: "+17853178070", - * webhook: "https://voiceapps.acme.com/myvoiceapp", - * metadata?: {} - * }) - * .then(console.log) // successful response - * .catch(console.error); // an error occurred - */ - async call(request: CallRequest): Promise { - const r = new CallManagerPB.CallRequest(); - const metadata = JSON.stringify(request.metadata); - r.setFrom(request.from); - r.setTo(request.to); - r.setWebhook(request.webhook); - r.setAppRef(request.appRef); - r.setMetadata(metadata); - - const p = await super.getService().call().sendMessage(r); - - return { - ref: p.getRef() - }; - } -} - -export { CallManagerPB, ICallManagerClient }; - -// WARNING: Workaround for support to commonjs clients -module.exports = CallManager; -module.exports.CallManagerPB = CallManagerPB; diff --git a/mods/callmanager/src/client/types.ts b/mods/callmanager/src/client/types.ts deleted file mode 100644 index d7fcd22ae..000000000 --- a/mods/callmanager/src/client/types.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface ICallManagerClient { - call(request: CallRequest): Promise; -} - -export interface CallRequest { - from: string; - to: string; - webhook?: string; - appRef?: string; - metadata?: Record; - ignoreE164Validation?: boolean; -} - -export interface CallResponse { - ref: string; -} -export interface EndpointInfo { - domain: string; - trunk: string; - context: string; - extension: string; -} diff --git a/mods/callmanager/src/protos/callmanager.proto b/mods/callmanager/src/protos/callmanager.proto deleted file mode 100644 index 69bd13495..000000000 --- a/mods/callmanager/src/protos/callmanager.proto +++ /dev/null @@ -1,51 +0,0 @@ -/** - * MIT License - * Copyright (c) 2021 Fonoster Inc - * - * The CallMananger proto contains the artificats for the call mananger - * such as creation and deployment. - */ -syntax = "proto3"; - -package fonoster.callmanager.v1beta1; - -option go_package = "github.com/fonoster/fonoster/mods/callmanager/fonoster/services/protos/callmanager"; - -import "protoc-gen-openapiv2/options/annotations.proto"; -import "google/api/annotations.proto"; - -service CallManager { - // Originates a call and pass channel to an application - rpc Call (CallRequest) returns (CallResponse) { - option (google.api.http) = { - post: "/v1beta1/call" - body: "*" - }; - }; -} - -message CallRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"from\": \"+17853178070\", \"to\": \"+17852268080\", \"webhook\": \"https://c5b6-172-220-243-215.ngrok.io\"}" - }; - // Origination number - string from = 1; - // Destination number - string to = 2; - // Optional webhook - string webhook = 3; - // If enabled it will accept any input in the from and to - /** - * @deprecated - */ - bool ignore_e164_validation = 4; - // Optional metadata for voice applications - string metadata = 5; - // Optional app reference - string app_ref = 6; -} - -message CallResponse { - // Call's reference - string ref = 1; -} diff --git a/mods/callmanager/src/service/assertions.ts b/mods/callmanager/src/service/assertions.ts deleted file mode 100644 index 78608c117..000000000 --- a/mods/callmanager/src/service/assertions.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { FonosterInvalidArgument } from "@fonoster/errors"; -import phone from "phone"; -import { CallManagerPB } from "../client/callmanager"; - -export const assertCompatibleParameters = ( - request: CallManagerPB.CallRequest -) => { - if (request.getWebhook() && request.getAppRef()) { - throw new FonosterInvalidArgument( - "webhook and appRef cannot be used together" - ); - } -}; - -const isValidURL = (value: string) => - /^(?:\w+:)?\/\/([^\s\.]+\.\S{2}|localhost[\:?\d]*)\S*$/.test(value); - -export const assertIsE164 = (number: string, field: string) => { - if (phone(number).length === 0) { - throw new FonosterInvalidArgument( - `field "${field}" must be a valid e164 value.` - ); - } -}; - -export const assertWebhookIsURL = (webhook: string) => { - if (webhook && !isValidURL(webhook)) { - throw new FonosterInvalidArgument("webhook field must be a valid URL."); - } -}; diff --git a/mods/callmanager/src/service/call.ts b/mods/callmanager/src/service/call.ts deleted file mode 100644 index 158389f4d..000000000 --- a/mods/callmanager/src/service/call.ts +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { CallRequest, CallResponse } from "./protos/callmanager_pb"; -import { nanoid } from "nanoid"; -import { EndpointInfo } from "../client/types"; -import { - assertCompatibleParameters, - assertIsE164, - assertWebhookIsURL -} from "./assertions"; - -export default async function ( - request: CallRequest, - channel: any, - endpointInfo: EndpointInfo -): Promise { - assertCompatibleParameters(request); - if (!request.getIgnoreE164Validation()) - assertIsE164(request.getFrom(), "from"); - if (!request.getIgnoreE164Validation()) assertIsE164(request.getFrom(), "to"); - if (request.getWebhook()) assertWebhookIsURL(request.getWebhook()); - - const response = new CallResponse(); - response.setRef(nanoid()); - - await channel.originate({ - context: endpointInfo.context, - extension: endpointInfo.extension, - endpoint: `PJSIP/${endpointInfo.trunk}/sip:${request.getTo()}@${ - endpointInfo.domain - }`, - variables: { - DID_INFO: request.getFrom(), - REF: response.getRef(), - METADATA: request.getMetadata(), - WEBHOOK: request.getWebhook(), - APP_REF: request.getAppRef() - } - }); - - return response; -} diff --git a/mods/callmanager/src/service/callmanager.ts b/mods/callmanager/src/service/callmanager.ts deleted file mode 100644 index 69c90ecd5..000000000 --- a/mods/callmanager/src/service/callmanager.ts +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { routr } from "@fonoster/core"; -import grpc from "@grpc/grpc-js"; -import client from "ari-client"; -import { CallRequest, CallResponse } from "./protos/callmanager_pb"; -import { EndpointInfo } from "../client/types"; -import originate from "./call"; -import { ICallManagerServer } from "./protos/callmanager_grpc_pb"; -import logger from "@fonoster/logger"; -import { FonosterError } from "@fonoster/errors"; - -const getDomainByNumber = async (e164Number: string) => { - await routr.connect(); - return await routr.getDomainUriFromNumber(e164Number); -}; - -const numberNotInList = (number) => - `the number '${number}' is not assigned to one of your domains. Make sure the number exist and is assigned to a Domain`; - -class CallManagerServer implements ICallManagerServer { - [name: string]: grpc.UntypedHandleCall; - async call( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - logger.verbose(`@core/callmanager call [from ${call.request.getFrom()}]`); - - const domain = await getDomainByNumber(call.request.getFrom()); - - if (!domain) { - callback( - new FonosterError(numberNotInList(call.request.getFrom())), - null - ); - return; - } - - logger.verbose(`@core/callmanager call [domain ${JSON.stringify(domain)}]`); - - const domainUri: string = domain.spec.context.domainUri; - const accessKeyId = call.metadata.get("access_key_id")[0]; - const accessKeyIdDomain = domain.metadata.accessKeyId; - - if (accessKeyIdDomain != accessKeyId) { - callback( - new FonosterError(numberNotInList(call.request.getFrom())), - null - ); - } - - logger.verbose( - `@core/callmanager call [ari url ${process.env.MS_ARI_INTERNAL_URL}]` - ); - - logger.verbose( - `@core/callmanager call [ari username ${process.env.MS_ARI_USERNAME}]` - ); - - logger.verbose( - `@core/callmanager call [endpoint ${process.env.MS_TRUNK}/${process.env.MS_CONTEXT}/${process.env.MS_EXTENSION}]` - ); - - try { - const epInfo: EndpointInfo = { - domain: domainUri, - trunk: process.env.MS_TRUNK, - context: process.env.MS_CONTEXT, - extension: process.env.MS_EXTENSION - }; - - const conn = await client.connect( - process.env.MS_ARI_INTERNAL_URL, - process.env.MS_ARI_USERNAME, - process.env.MS_ARI_SECRET - ); - const channel = conn.Channel(); - callback(null, await originate(call.request, channel, epInfo)); - } catch (e) { - callback(e, null); - } - } -} - -export { CallManagerServer as default, ICallManagerServer, CallManagerServer }; diff --git a/mods/callmanager/src/service/healthcheck.ts b/mods/callmanager/src/service/healthcheck.ts deleted file mode 100644 index a8988fbb7..000000000 --- a/mods/callmanager/src/service/healthcheck.ts +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonos - * - * This file is part of Project Fonos - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -healthcheck(); diff --git a/mods/callmanager/src/service/protos/callmanager_grpc_pb.d.ts b/mods/callmanager/src/service/protos/callmanager_grpc_pb.d.ts deleted file mode 100644 index e74d3f69f..000000000 --- a/mods/callmanager/src/service/protos/callmanager_grpc_pb.d.ts +++ /dev/null @@ -1,43 +0,0 @@ -// package: fonoster.callmanager.v1beta1 -// file: callmanager.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import {handleClientStreamingCall} from "@grpc/grpc-js/build/src/server-call"; -import * as callmanager_pb from "./callmanager_pb"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -interface ICallManagerService extends grpc.ServiceDefinition { - call: ICallManagerService_ICall; -} - -interface ICallManagerService_ICall extends grpc.MethodDefinition { - path: "/fonoster.callmanager.v1beta1.CallManager/Call"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const CallManagerService: ICallManagerService; - -export interface ICallManagerServer extends grpc.UntypedServiceImplementation { - call: grpc.handleUnaryCall; -} - -export interface ICallManagerClient { - call(request: callmanager_pb.CallRequest, callback: (error: grpc.ServiceError | null, response: callmanager_pb.CallResponse) => void): grpc.ClientUnaryCall; - call(request: callmanager_pb.CallRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: callmanager_pb.CallResponse) => void): grpc.ClientUnaryCall; - call(request: callmanager_pb.CallRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: callmanager_pb.CallResponse) => void): grpc.ClientUnaryCall; -} - -export class CallManagerClient extends grpc.Client implements ICallManagerClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public call(request: callmanager_pb.CallRequest, callback: (error: grpc.ServiceError | null, response: callmanager_pb.CallResponse) => void): grpc.ClientUnaryCall; - public call(request: callmanager_pb.CallRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: callmanager_pb.CallResponse) => void): grpc.ClientUnaryCall; - public call(request: callmanager_pb.CallRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: callmanager_pb.CallResponse) => void): grpc.ClientUnaryCall; -} diff --git a/mods/callmanager/src/service/protos/callmanager_grpc_pb.js b/mods/callmanager/src/service/protos/callmanager_grpc_pb.js deleted file mode 100644 index 52c99a315..000000000 --- a/mods/callmanager/src/service/protos/callmanager_grpc_pb.js +++ /dev/null @@ -1,54 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// * -// MIT License -// Copyright (c) 2021 Fonoster Inc -// -// The CallMananger proto contains the artificats for the call mananger -// such as creation and deployment. -'use strict'; -var grpc = require('@grpc/grpc-js'); -var callmanager_pb = require('./callmanager_pb.js'); -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); - -function serialize_fonoster_callmanager_v1beta1_CallRequest(arg) { - if (!(arg instanceof callmanager_pb.CallRequest)) { - throw new Error('Expected argument of type fonoster.callmanager.v1beta1.CallRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_callmanager_v1beta1_CallRequest(buffer_arg) { - return callmanager_pb.CallRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_callmanager_v1beta1_CallResponse(arg) { - if (!(arg instanceof callmanager_pb.CallResponse)) { - throw new Error('Expected argument of type fonoster.callmanager.v1beta1.CallResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_callmanager_v1beta1_CallResponse(buffer_arg) { - return callmanager_pb.CallResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var CallManagerService = exports.CallManagerService = { - // Originates a call and pass channel to an application -call: { - path: '/fonoster.callmanager.v1beta1.CallManager/Call', - requestStream: false, - responseStream: false, - requestType: callmanager_pb.CallRequest, - responseType: callmanager_pb.CallResponse, - requestSerialize: serialize_fonoster_callmanager_v1beta1_CallRequest, - requestDeserialize: deserialize_fonoster_callmanager_v1beta1_CallRequest, - responseSerialize: serialize_fonoster_callmanager_v1beta1_CallResponse, - responseDeserialize: deserialize_fonoster_callmanager_v1beta1_CallResponse, - }, -}; - -exports.CallManagerClient = grpc.makeGenericClientConstructor(CallManagerService); diff --git a/mods/callmanager/src/service/protos/callmanager_pb.d.ts b/mods/callmanager/src/service/protos/callmanager_pb.d.ts deleted file mode 100644 index ca689dbfc..000000000 --- a/mods/callmanager/src/service/protos/callmanager_pb.d.ts +++ /dev/null @@ -1,63 +0,0 @@ -// package: fonoster.callmanager.v1beta1 -// file: callmanager.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class CallRequest extends jspb.Message { - getFrom(): string; - setFrom(value: string): CallRequest; - getTo(): string; - setTo(value: string): CallRequest; - getWebhook(): string; - setWebhook(value: string): CallRequest; - getIgnoreE164Validation(): boolean; - setIgnoreE164Validation(value: boolean): CallRequest; - getMetadata(): string; - setMetadata(value: string): CallRequest; - getAppRef(): string; - setAppRef(value: string): CallRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CallRequest.AsObject; - static toObject(includeInstance: boolean, msg: CallRequest): CallRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CallRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CallRequest; - static deserializeBinaryFromReader(message: CallRequest, reader: jspb.BinaryReader): CallRequest; -} - -export namespace CallRequest { - export type AsObject = { - from: string, - to: string, - webhook: string, - ignoreE164Validation: boolean, - metadata: string, - appRef: string, - } -} - -export class CallResponse extends jspb.Message { - getRef(): string; - setRef(value: string): CallResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CallResponse.AsObject; - static toObject(includeInstance: boolean, msg: CallResponse): CallResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CallResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CallResponse; - static deserializeBinaryFromReader(message: CallResponse, reader: jspb.BinaryReader): CallResponse; -} - -export namespace CallResponse { - export type AsObject = { - ref: string, - } -} diff --git a/mods/callmanager/src/service/protos/callmanager_pb.js b/mods/callmanager/src/service/protos/callmanager_pb.js deleted file mode 100644 index d15a910dc..000000000 --- a/mods/callmanager/src/service/protos/callmanager_pb.js +++ /dev/null @@ -1,476 +0,0 @@ -// source: callmanager.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -goog.object.extend(proto, google_api_annotations_pb); -goog.exportSymbol('proto.fonoster.callmanager.v1beta1.CallRequest', null, global); -goog.exportSymbol('proto.fonoster.callmanager.v1beta1.CallResponse', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.callmanager.v1beta1.CallRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.callmanager.v1beta1.CallRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.callmanager.v1beta1.CallRequest.displayName = 'proto.fonoster.callmanager.v1beta1.CallRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.callmanager.v1beta1.CallResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.callmanager.v1beta1.CallResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.callmanager.v1beta1.CallResponse.displayName = 'proto.fonoster.callmanager.v1beta1.CallResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.callmanager.v1beta1.CallRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.callmanager.v1beta1.CallRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.callmanager.v1beta1.CallRequest.toObject = function(includeInstance, msg) { - var f, obj = { - from: jspb.Message.getFieldWithDefault(msg, 1, ""), - to: jspb.Message.getFieldWithDefault(msg, 2, ""), - webhook: jspb.Message.getFieldWithDefault(msg, 3, ""), - ignoreE164Validation: jspb.Message.getBooleanFieldWithDefault(msg, 4, false), - metadata: jspb.Message.getFieldWithDefault(msg, 5, ""), - appRef: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.callmanager.v1beta1.CallRequest} - */ -proto.fonoster.callmanager.v1beta1.CallRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.callmanager.v1beta1.CallRequest; - return proto.fonoster.callmanager.v1beta1.CallRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.callmanager.v1beta1.CallRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.callmanager.v1beta1.CallRequest} - */ -proto.fonoster.callmanager.v1beta1.CallRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setFrom(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setTo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setWebhook(value); - break; - case 4: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setIgnoreE164Validation(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setMetadata(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAppRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.callmanager.v1beta1.CallRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.callmanager.v1beta1.CallRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.callmanager.v1beta1.CallRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getFrom(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getTo(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getWebhook(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIgnoreE164Validation(); - if (f) { - writer.writeBool( - 4, - f - ); - } - f = message.getMetadata(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getAppRef(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional string from = 1; - * @return {string} - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.getFrom = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.callmanager.v1beta1.CallRequest} returns this - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.setFrom = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string to = 2; - * @return {string} - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.getTo = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.callmanager.v1beta1.CallRequest} returns this - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.setTo = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string webhook = 3; - * @return {string} - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.getWebhook = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.callmanager.v1beta1.CallRequest} returns this - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.setWebhook = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional bool ignore_e164_validation = 4; - * @return {boolean} - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.getIgnoreE164Validation = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.fonoster.callmanager.v1beta1.CallRequest} returns this - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.setIgnoreE164Validation = function(value) { - return jspb.Message.setProto3BooleanField(this, 4, value); -}; - - -/** - * optional string metadata = 5; - * @return {string} - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.getMetadata = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.callmanager.v1beta1.CallRequest} returns this - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.setMetadata = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string app_ref = 6; - * @return {string} - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.getAppRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.callmanager.v1beta1.CallRequest} returns this - */ -proto.fonoster.callmanager.v1beta1.CallRequest.prototype.setAppRef = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.callmanager.v1beta1.CallResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.callmanager.v1beta1.CallResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.callmanager.v1beta1.CallResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.callmanager.v1beta1.CallResponse.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.callmanager.v1beta1.CallResponse} - */ -proto.fonoster.callmanager.v1beta1.CallResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.callmanager.v1beta1.CallResponse; - return proto.fonoster.callmanager.v1beta1.CallResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.callmanager.v1beta1.CallResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.callmanager.v1beta1.CallResponse} - */ -proto.fonoster.callmanager.v1beta1.CallResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.callmanager.v1beta1.CallResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.callmanager.v1beta1.CallResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.callmanager.v1beta1.CallResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.callmanager.v1beta1.CallResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.callmanager.v1beta1.CallResponse.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.callmanager.v1beta1.CallResponse} returns this - */ -proto.fonoster.callmanager.v1beta1.CallResponse.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -goog.object.extend(exports, proto.fonoster.callmanager.v1beta1); diff --git a/mods/callmanager/src/service/protos/common_grpc_pb.js b/mods/callmanager/src/service/protos/common_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/callmanager/src/service/protos/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/callmanager/src/service/protos/common_pb.d.ts b/mods/callmanager/src/service/protos/common_pb.d.ts deleted file mode 100644 index f8b5fb810..000000000 --- a/mods/callmanager/src/service/protos/common_pb.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// package: fonoster.common.v1beta1 -// file: common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class Empty extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Empty.AsObject; - static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Empty; - static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; -} - -export namespace Empty { - export type AsObject = { - } -} - -export class ErrorResponse extends jspb.Message { - getStatus(): number; - setStatus(value: number): ErrorResponse; - getMessage(): string; - setMessage(value: string): ErrorResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ErrorResponse.AsObject; - static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ErrorResponse; - static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse; -} - -export namespace ErrorResponse { - export type AsObject = { - status: number, - message: string, - } -} - -export enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2, -} diff --git a/mods/callmanager/src/service/protos/common_pb.js b/mods/callmanager/src/service/protos/common_pb.js deleted file mode 100644 index b7f99c7ea..000000000 --- a/mods/callmanager/src/service/protos/common_pb.js +++ /dev/null @@ -1,335 +0,0 @@ -// source: common.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -goog.exportSymbol('proto.fonoster.common.v1beta1.Empty', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.ErrorResponse', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.View', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.Empty = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.Empty, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.Empty.displayName = 'proto.fonoster.common.v1beta1.Empty'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.ErrorResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.ErrorResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.ErrorResponse.displayName = 'proto.fonoster.common.v1beta1.ErrorResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.Empty.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.Empty.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.Empty} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.Empty; - return proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.Empty} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.Empty.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.Empty} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.ErrorResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.toObject = function(includeInstance, msg) { - var f, obj = { - status: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.ErrorResponse; - return proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setStatus(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getStatus(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional int32 status = 1; - * @return {number} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getStatus = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setStatus = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * @enum {number} - */ -proto.fonoster.common.v1beta1.View = { - BASIC: 0, - STANDARD: 1, - FULL: 2 -}; - -goog.object.extend(exports, proto.fonoster.common.v1beta1); diff --git a/mods/callmanager/src/service/protos/google/api/annotations_grpc_pb.js b/mods/callmanager/src/service/protos/google/api/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/callmanager/src/service/protos/google/api/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/callmanager/src/service/protos/google/api/annotations_pb.d.ts b/mods/callmanager/src/service/protos/google/api/annotations_pb.d.ts deleted file mode 100644 index 06072f3bd..000000000 --- a/mods/callmanager/src/service/protos/google/api/annotations_pb.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// package: google.api -// file: google/api/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_api_http_pb from "../../google/api/http_pb"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const http: jspb.ExtensionFieldInfo; diff --git a/mods/callmanager/src/service/protos/google/api/annotations_pb.js b/mods/callmanager/src/service/protos/google/api/annotations_pb.js deleted file mode 100644 index 99e4c1824..000000000 --- a/mods/callmanager/src/service/protos/google/api/annotations_pb.js +++ /dev/null @@ -1,48 +0,0 @@ -// source: google/api/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_http_pb = require('../../google/api/http_pb.js'); -goog.object.extend(proto, google_api_http_pb); -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.http', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `http`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.google.api.http = new jspb.ExtensionFieldInfo( - 72295728, - {http: 0}, - google_api_http_pb.HttpRule, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - google_api_http_pb.HttpRule.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[72295728] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.http, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - google_api_http_pb.HttpRule.serializeBinaryToWriter, - google_api_http_pb.HttpRule.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[72295728] = proto.google.api.http; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/callmanager/src/service/protos/google/api/field_behavior_grpc_pb.js b/mods/callmanager/src/service/protos/google/api/field_behavior_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/callmanager/src/service/protos/google/api/field_behavior_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/callmanager/src/service/protos/google/api/field_behavior_pb.d.ts b/mods/callmanager/src/service/protos/google/api/field_behavior_pb.d.ts deleted file mode 100644 index 9b853705f..000000000 --- a/mods/callmanager/src/service/protos/google/api/field_behavior_pb.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -// package: google.api -// file: google/api/field_behavior.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const fieldBehavior: jspb.ExtensionFieldInfo; - -export enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, -} diff --git a/mods/callmanager/src/service/protos/google/api/field_behavior_pb.js b/mods/callmanager/src/service/protos/google/api/field_behavior_pb.js deleted file mode 100644 index 44160cc41..000000000 --- a/mods/callmanager/src/service/protos/google/api/field_behavior_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// source: google/api/field_behavior.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.FieldBehavior', null, global); -goog.exportSymbol('proto.google.api.fieldBehaviorList', null, global); -/** - * @enum {number} - */ -proto.google.api.FieldBehavior = { - FIELD_BEHAVIOR_UNSPECIFIED: 0, - OPTIONAL: 1, - REQUIRED: 2, - OUTPUT_ONLY: 3, - INPUT_ONLY: 4, - IMMUTABLE: 5, - UNORDERED_LIST: 6, - NON_EMPTY_DEFAULT: 7 -}; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `fieldBehaviorList`. - * @type {!jspb.ExtensionFieldInfo>} - */ -proto.google.api.fieldBehaviorList = new jspb.ExtensionFieldInfo( - 1052, - {fieldBehaviorList: 0}, - null, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - null), - 1); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1052] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.fieldBehaviorList, - jspb.BinaryReader.prototype.readPackedEnum, - jspb.BinaryWriter.prototype.writePackedEnum, - undefined, - undefined, - true); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1052] = proto.google.api.fieldBehaviorList; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/callmanager/src/service/protos/google/api/http_grpc_pb.js b/mods/callmanager/src/service/protos/google/api/http_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/callmanager/src/service/protos/google/api/http_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/callmanager/src/service/protos/google/api/http_pb.d.ts b/mods/callmanager/src/service/protos/google/api/http_pb.d.ts deleted file mode 100644 index 02c3b1ece..000000000 --- a/mods/callmanager/src/service/protos/google/api/http_pb.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -// package: google.api -// file: google/api/http.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Http extends jspb.Message { - clearRulesList(): void; - getRulesList(): Array; - setRulesList(value: Array): Http; - addRules(value?: HttpRule, index?: number): HttpRule; - getFullyDecodeReservedExpansion(): boolean; - setFullyDecodeReservedExpansion(value: boolean): Http; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Http.AsObject; - static toObject(includeInstance: boolean, msg: Http): Http.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Http; - static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http; -} - -export namespace Http { - export type AsObject = { - rulesList: Array, - fullyDecodeReservedExpansion: boolean, - } -} - -export class HttpRule extends jspb.Message { - getSelector(): string; - setSelector(value: string): HttpRule; - - hasGet(): boolean; - clearGet(): void; - getGet(): string; - setGet(value: string): HttpRule; - - hasPut(): boolean; - clearPut(): void; - getPut(): string; - setPut(value: string): HttpRule; - - hasPost(): boolean; - clearPost(): void; - getPost(): string; - setPost(value: string): HttpRule; - - hasDelete(): boolean; - clearDelete(): void; - getDelete(): string; - setDelete(value: string): HttpRule; - - hasPatch(): boolean; - clearPatch(): void; - getPatch(): string; - setPatch(value: string): HttpRule; - - hasCustom(): boolean; - clearCustom(): void; - getCustom(): CustomHttpPattern | undefined; - setCustom(value?: CustomHttpPattern): HttpRule; - getBody(): string; - setBody(value: string): HttpRule; - getResponseBody(): string; - setResponseBody(value: string): HttpRule; - clearAdditionalBindingsList(): void; - getAdditionalBindingsList(): Array; - setAdditionalBindingsList(value: Array): HttpRule; - addAdditionalBindings(value?: HttpRule, index?: number): HttpRule; - - getPatternCase(): HttpRule.PatternCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpRule.AsObject; - static toObject(includeInstance: boolean, msg: HttpRule): HttpRule.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpRule, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpRule; - static deserializeBinaryFromReader(message: HttpRule, reader: jspb.BinaryReader): HttpRule; -} - -export namespace HttpRule { - export type AsObject = { - selector: string, - get: string, - put: string, - post: string, - pb_delete: string, - patch: string, - custom?: CustomHttpPattern.AsObject, - body: string, - responseBody: string, - additionalBindingsList: Array, - } - - export enum PatternCase { - PATTERN_NOT_SET = 0, - GET = 2, - PUT = 3, - POST = 4, - DELETE = 5, - PATCH = 6, - CUSTOM = 8, - } - -} - -export class CustomHttpPattern extends jspb.Message { - getKind(): string; - setKind(value: string): CustomHttpPattern; - getPath(): string; - setPath(value: string): CustomHttpPattern; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CustomHttpPattern.AsObject; - static toObject(includeInstance: boolean, msg: CustomHttpPattern): CustomHttpPattern.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CustomHttpPattern, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CustomHttpPattern; - static deserializeBinaryFromReader(message: CustomHttpPattern, reader: jspb.BinaryReader): CustomHttpPattern; -} - -export namespace CustomHttpPattern { - export type AsObject = { - kind: string, - path: string, - } -} diff --git a/mods/callmanager/src/service/protos/google/api/http_pb.js b/mods/callmanager/src/service/protos/google/api/http_pb.js deleted file mode 100644 index 0359c5eec..000000000 --- a/mods/callmanager/src/service/protos/google/api/http_pb.js +++ /dev/null @@ -1,1006 +0,0 @@ -// source: google/api/http.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.google.api.CustomHttpPattern', null, global); -goog.exportSymbol('proto.google.api.Http', null, global); -goog.exportSymbol('proto.google.api.HttpRule', null, global); -goog.exportSymbol('proto.google.api.HttpRule.PatternCase', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.Http = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Http.repeatedFields_, null); -}; -goog.inherits(proto.google.api.Http, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.Http.displayName = 'proto.google.api.Http'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpRule = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpRule.repeatedFields_, proto.google.api.HttpRule.oneofGroups_); -}; -goog.inherits(proto.google.api.HttpRule, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpRule.displayName = 'proto.google.api.HttpRule'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.CustomHttpPattern = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.google.api.CustomHttpPattern, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.CustomHttpPattern.displayName = 'proto.google.api.CustomHttpPattern'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.Http.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.Http.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.Http.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.Http} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.toObject = function(includeInstance, msg) { - var f, obj = { - rulesList: jspb.Message.toObjectList(msg.getRulesList(), - proto.google.api.HttpRule.toObject, includeInstance), - fullyDecodeReservedExpansion: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.Http; - return proto.google.api.Http.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.Http} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addRules(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFullyDecodeReservedExpansion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.Http.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.Http.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.Http} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRulesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } - f = message.getFullyDecodeReservedExpansion(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * repeated HttpRule rules = 1; - * @return {!Array} - */ -proto.google.api.Http.prototype.getRulesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.Http} returns this -*/ -proto.google.api.Http.prototype.setRulesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.Http.prototype.addRules = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.clearRulesList = function() { - return this.setRulesList([]); -}; - - -/** - * optional bool fully_decode_reserved_expansion = 2; - * @return {boolean} - */ -proto.google.api.Http.prototype.getFullyDecodeReservedExpansion = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.setFullyDecodeReservedExpansion = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpRule.repeatedFields_ = [11]; - -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.google.api.HttpRule.oneofGroups_ = [[2,3,4,5,6,8]]; - -/** - * @enum {number} - */ -proto.google.api.HttpRule.PatternCase = { - PATTERN_NOT_SET: 0, - GET: 2, - PUT: 3, - POST: 4, - DELETE: 5, - PATCH: 6, - CUSTOM: 8 -}; - -/** - * @return {proto.google.api.HttpRule.PatternCase} - */ -proto.google.api.HttpRule.prototype.getPatternCase = function() { - return /** @type {proto.google.api.HttpRule.PatternCase} */(jspb.Message.computeOneofCase(this, proto.google.api.HttpRule.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpRule.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpRule.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpRule} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.toObject = function(includeInstance, msg) { - var f, obj = { - selector: jspb.Message.getFieldWithDefault(msg, 1, ""), - get: jspb.Message.getFieldWithDefault(msg, 2, ""), - put: jspb.Message.getFieldWithDefault(msg, 3, ""), - post: jspb.Message.getFieldWithDefault(msg, 4, ""), - pb_delete: jspb.Message.getFieldWithDefault(msg, 5, ""), - patch: jspb.Message.getFieldWithDefault(msg, 6, ""), - custom: (f = msg.getCustom()) && proto.google.api.CustomHttpPattern.toObject(includeInstance, f), - body: jspb.Message.getFieldWithDefault(msg, 7, ""), - responseBody: jspb.Message.getFieldWithDefault(msg, 12, ""), - additionalBindingsList: jspb.Message.toObjectList(msg.getAdditionalBindingsList(), - proto.google.api.HttpRule.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpRule; - return proto.google.api.HttpRule.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpRule} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSelector(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setGet(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPut(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPost(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDelete(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPatch(value); - break; - case 8: - var value = new proto.google.api.CustomHttpPattern; - reader.readMessage(value,proto.google.api.CustomHttpPattern.deserializeBinaryFromReader); - msg.setCustom(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBody(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setResponseBody(value); - break; - case 11: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addAdditionalBindings(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpRule.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpRule.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpRule} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSelector(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeString( - 3, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeString( - 4, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 5)); - if (f != null) { - writer.writeString( - 5, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 6)); - if (f != null) { - writer.writeString( - 6, - f - ); - } - f = message.getCustom(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.google.api.CustomHttpPattern.serializeBinaryToWriter - ); - } - f = message.getBody(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getResponseBody(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getAdditionalBindingsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 11, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string selector = 1; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getSelector = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setSelector = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string get = 2; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getGet = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setGet = function(value) { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearGet = function() { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasGet = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string put = 3; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPut = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPut = function(value) { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPut = function() { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPut = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional string post = 4; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPost = function(value) { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPost = function() { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPost = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string delete = 5; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getDelete = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setDelete = function(value) { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearDelete = function() { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasDelete = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string patch = 6; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPatch = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPatch = function(value) { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPatch = function() { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPatch = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional CustomHttpPattern custom = 8; - * @return {?proto.google.api.CustomHttpPattern} - */ -proto.google.api.HttpRule.prototype.getCustom = function() { - return /** @type{?proto.google.api.CustomHttpPattern} */ ( - jspb.Message.getWrapperField(this, proto.google.api.CustomHttpPattern, 8)); -}; - - -/** - * @param {?proto.google.api.CustomHttpPattern|undefined} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setCustom = function(value) { - return jspb.Message.setOneofWrapperField(this, 8, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearCustom = function() { - return this.setCustom(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasCustom = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional string body = 7; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setBody = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string response_body = 12; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getResponseBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setResponseBody = function(value) { - return jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * repeated HttpRule additional_bindings = 11; - * @return {!Array} - */ -proto.google.api.HttpRule.prototype.getAdditionalBindingsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 11)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setAdditionalBindingsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 11, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.prototype.addAdditionalBindings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearAdditionalBindingsList = function() { - return this.setAdditionalBindingsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.CustomHttpPattern.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.CustomHttpPattern.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.CustomHttpPattern} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.toObject = function(includeInstance, msg) { - var f, obj = { - kind: jspb.Message.getFieldWithDefault(msg, 1, ""), - path: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.CustomHttpPattern; - return proto.google.api.CustomHttpPattern.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.CustomHttpPattern} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKind(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.CustomHttpPattern.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.CustomHttpPattern.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.CustomHttpPattern} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKind(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string kind = 1; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getKind = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setKind = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string path = 2; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/callmanager/src/service/protos/google/api/httpbody_grpc_pb.js b/mods/callmanager/src/service/protos/google/api/httpbody_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/callmanager/src/service/protos/google/api/httpbody_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/callmanager/src/service/protos/google/api/httpbody_pb.d.ts b/mods/callmanager/src/service/protos/google/api/httpbody_pb.d.ts deleted file mode 100644 index 98d973068..000000000 --- a/mods/callmanager/src/service/protos/google/api/httpbody_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// package: google.api -// file: google/api/httpbody.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb"; - -export class HttpBody extends jspb.Message { - getContentType(): string; - setContentType(value: string): HttpBody; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): HttpBody; - clearExtensionsList(): void; - getExtensionsList(): Array; - setExtensionsList(value: Array): HttpBody; - addExtensions(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpBody.AsObject; - static toObject(includeInstance: boolean, msg: HttpBody): HttpBody.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpBody, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpBody; - static deserializeBinaryFromReader(message: HttpBody, reader: jspb.BinaryReader): HttpBody; -} - -export namespace HttpBody { - export type AsObject = { - contentType: string, - data: Uint8Array | string, - extensionsList: Array, - } -} diff --git a/mods/callmanager/src/service/protos/google/api/httpbody_pb.js b/mods/callmanager/src/service/protos/google/api/httpbody_pb.js deleted file mode 100644 index 5539f5936..000000000 --- a/mods/callmanager/src/service/protos/google/api/httpbody_pb.js +++ /dev/null @@ -1,286 +0,0 @@ -// source: google/api/httpbody.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js'); -goog.object.extend(proto, google_protobuf_any_pb); -goog.exportSymbol('proto.google.api.HttpBody', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpBody = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpBody.repeatedFields_, null); -}; -goog.inherits(proto.google.api.HttpBody, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpBody.displayName = 'proto.google.api.HttpBody'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpBody.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpBody.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpBody.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpBody} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.toObject = function(includeInstance, msg) { - var f, obj = { - contentType: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64(), - extensionsList: jspb.Message.toObjectList(msg.getExtensionsList(), - google_protobuf_any_pb.Any.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpBody; - return proto.google.api.HttpBody.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpBody} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setContentType(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 3: - var value = new google_protobuf_any_pb.Any; - reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader); - msg.addExtensions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpBody.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpBody} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContentType(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getExtensionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - google_protobuf_any_pb.Any.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string content_type = 1; - * @return {string} - */ -proto.google.api.HttpBody.prototype.getContentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setContentType = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.google.api.HttpBody.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.google.api.HttpBody.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setData = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * repeated google.protobuf.Any extensions = 3; - * @return {!Array} - */ -proto.google.api.HttpBody.prototype.getExtensionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpBody} returns this -*/ -proto.google.api.HttpBody.prototype.setExtensionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.google.protobuf.Any=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.Any} - */ -proto.google.api.HttpBody.prototype.addExtensions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.clearExtensionsList = function() { - return this.setExtensionsList([]); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js b/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts b/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts deleted file mode 100644 index 8e3a35012..000000000 --- a/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; -import * as protoc_gen_openapiv2_options_openapiv2_pb from "../../protoc-gen-openapiv2/options/openapiv2_pb"; - -export const openapiv2Swagger: jspb.ExtensionFieldInfo; - -export const openapiv2Operation: jspb.ExtensionFieldInfo; - -export const openapiv2Schema: jspb.ExtensionFieldInfo; - -export const openapiv2Tag: jspb.ExtensionFieldInfo; - -export const openapiv2Field: jspb.ExtensionFieldInfo; diff --git a/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js b/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js deleted file mode 100644 index e92ccec18..000000000 --- a/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js +++ /dev/null @@ -1,152 +0,0 @@ -// source: protoc-gen-openapiv2/options/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -var protoc$gen$openapiv2_options_openapiv2_pb = require('../../protoc-gen-openapiv2/options/openapiv2_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_openapiv2_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Swagger`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Swagger: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.toObject), - 0); - -google_protobuf_descriptor_pb.FileOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FileOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Operation`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Operation: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Operation, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Operation.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Schema`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Schema: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Schema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Schema.toObject), - 0); - -google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MessageOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Tag`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Tag: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Tag, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Tag.toObject), - 0); - -google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.ServiceOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Field`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Field: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.toObject), - 0); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js b/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts b/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts deleted file mode 100644 index 3c3972ea9..000000000 --- a/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +++ /dev/null @@ -1,685 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/openapiv2.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class Swagger extends jspb.Message { - getSwagger(): string; - setSwagger(value: string): Swagger; - - hasInfo(): boolean; - clearInfo(): void; - getInfo(): Info | undefined; - setInfo(value?: Info): Swagger; - getHost(): string; - setHost(value: string): Swagger; - getBasePath(): string; - setBasePath(value: string): Swagger; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Swagger; - addSchemes(value: Scheme, index?: number): Scheme; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Swagger; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Swagger; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - - hasSecurityDefinitions(): boolean; - clearSecurityDefinitions(): void; - getSecurityDefinitions(): SecurityDefinitions | undefined; - setSecurityDefinitions(value?: SecurityDefinitions): Swagger; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Swagger; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Swagger; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Swagger.AsObject; - static toObject(includeInstance: boolean, msg: Swagger): Swagger.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Swagger, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Swagger; - static deserializeBinaryFromReader(message: Swagger, reader: jspb.BinaryReader): Swagger; -} - -export namespace Swagger { - export type AsObject = { - swagger: string, - info?: Info.AsObject, - host: string, - basePath: string, - schemesList: Array, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - securityDefinitions?: SecurityDefinitions.AsObject, - securityList: Array, - externalDocs?: ExternalDocumentation.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Operation extends jspb.Message { - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): Operation; - addTags(value: string, index?: number): string; - getSummary(): string; - setSummary(value: string): Operation; - getDescription(): string; - setDescription(value: string): Operation; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Operation; - getOperationId(): string; - setOperationId(value: string): Operation; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Operation; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Operation; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Operation; - addSchemes(value: Scheme, index?: number): Scheme; - getDeprecated(): boolean; - setDeprecated(value: boolean): Operation; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Operation; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Operation.AsObject; - static toObject(includeInstance: boolean, msg: Operation): Operation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Operation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Operation; - static deserializeBinaryFromReader(message: Operation, reader: jspb.BinaryReader): Operation; -} - -export namespace Operation { - export type AsObject = { - tagsList: Array, - summary: string, - description: string, - externalDocs?: ExternalDocumentation.AsObject, - operationId: string, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - schemesList: Array, - deprecated: boolean, - securityList: Array, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Header extends jspb.Message { - getDescription(): string; - setDescription(value: string): Header; - getType(): string; - setType(value: string): Header; - getFormat(): string; - setFormat(value: string): Header; - getDefault(): string; - setDefault(value: string): Header; - getPattern(): string; - setPattern(value: string): Header; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Header.AsObject; - static toObject(includeInstance: boolean, msg: Header): Header.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Header, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Header; - static deserializeBinaryFromReader(message: Header, reader: jspb.BinaryReader): Header; -} - -export namespace Header { - export type AsObject = { - description: string, - type: string, - format: string, - pb_default: string, - pattern: string, - } -} - -export class Response extends jspb.Message { - getDescription(): string; - setDescription(value: string): Response; - - hasSchema(): boolean; - clearSchema(): void; - getSchema(): Schema | undefined; - setSchema(value?: Schema): Response; - - getHeadersMap(): jspb.Map; - clearHeadersMap(): void; - - getExamplesMap(): jspb.Map; - clearExamplesMap(): void; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Response.AsObject; - static toObject(includeInstance: boolean, msg: Response): Response.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Response, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Response; - static deserializeBinaryFromReader(message: Response, reader: jspb.BinaryReader): Response; -} - -export namespace Response { - export type AsObject = { - description: string, - schema?: Schema.AsObject, - - headersMap: Array<[string, Header.AsObject]>, - - examplesMap: Array<[string, string]>, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Info extends jspb.Message { - getTitle(): string; - setTitle(value: string): Info; - getDescription(): string; - setDescription(value: string): Info; - getTermsOfService(): string; - setTermsOfService(value: string): Info; - - hasContact(): boolean; - clearContact(): void; - getContact(): Contact | undefined; - setContact(value?: Contact): Info; - - hasLicense(): boolean; - clearLicense(): void; - getLicense(): License | undefined; - setLicense(value?: License): Info; - getVersion(): string; - setVersion(value: string): Info; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Info.AsObject; - static toObject(includeInstance: boolean, msg: Info): Info.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Info, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Info; - static deserializeBinaryFromReader(message: Info, reader: jspb.BinaryReader): Info; -} - -export namespace Info { - export type AsObject = { - title: string, - description: string, - termsOfService: string, - contact?: Contact.AsObject, - license?: License.AsObject, - version: string, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Contact extends jspb.Message { - getName(): string; - setName(value: string): Contact; - getUrl(): string; - setUrl(value: string): Contact; - getEmail(): string; - setEmail(value: string): Contact; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contact.AsObject; - static toObject(includeInstance: boolean, msg: Contact): Contact.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contact, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contact; - static deserializeBinaryFromReader(message: Contact, reader: jspb.BinaryReader): Contact; -} - -export namespace Contact { - export type AsObject = { - name: string, - url: string, - email: string, - } -} - -export class License extends jspb.Message { - getName(): string; - setName(value: string): License; - getUrl(): string; - setUrl(value: string): License; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): License.AsObject; - static toObject(includeInstance: boolean, msg: License): License.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: License, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): License; - static deserializeBinaryFromReader(message: License, reader: jspb.BinaryReader): License; -} - -export namespace License { - export type AsObject = { - name: string, - url: string, - } -} - -export class ExternalDocumentation extends jspb.Message { - getDescription(): string; - setDescription(value: string): ExternalDocumentation; - getUrl(): string; - setUrl(value: string): ExternalDocumentation; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ExternalDocumentation.AsObject; - static toObject(includeInstance: boolean, msg: ExternalDocumentation): ExternalDocumentation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ExternalDocumentation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ExternalDocumentation; - static deserializeBinaryFromReader(message: ExternalDocumentation, reader: jspb.BinaryReader): ExternalDocumentation; -} - -export namespace ExternalDocumentation { - export type AsObject = { - description: string, - url: string, - } -} - -export class Schema extends jspb.Message { - - hasJsonSchema(): boolean; - clearJsonSchema(): void; - getJsonSchema(): JSONSchema | undefined; - setJsonSchema(value?: JSONSchema): Schema; - getDiscriminator(): string; - setDiscriminator(value: string): Schema; - getReadOnly(): boolean; - setReadOnly(value: boolean): Schema; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Schema; - getExample(): string; - setExample(value: string): Schema; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Schema.AsObject; - static toObject(includeInstance: boolean, msg: Schema): Schema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Schema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Schema; - static deserializeBinaryFromReader(message: Schema, reader: jspb.BinaryReader): Schema; -} - -export namespace Schema { - export type AsObject = { - jsonSchema?: JSONSchema.AsObject, - discriminator: string, - readOnly: boolean, - externalDocs?: ExternalDocumentation.AsObject, - example: string, - } -} - -export class JSONSchema extends jspb.Message { - getRef(): string; - setRef(value: string): JSONSchema; - getTitle(): string; - setTitle(value: string): JSONSchema; - getDescription(): string; - setDescription(value: string): JSONSchema; - getDefault(): string; - setDefault(value: string): JSONSchema; - getReadOnly(): boolean; - setReadOnly(value: boolean): JSONSchema; - getExample(): string; - setExample(value: string): JSONSchema; - getMultipleOf(): number; - setMultipleOf(value: number): JSONSchema; - getMaximum(): number; - setMaximum(value: number): JSONSchema; - getExclusiveMaximum(): boolean; - setExclusiveMaximum(value: boolean): JSONSchema; - getMinimum(): number; - setMinimum(value: number): JSONSchema; - getExclusiveMinimum(): boolean; - setExclusiveMinimum(value: boolean): JSONSchema; - getMaxLength(): number; - setMaxLength(value: number): JSONSchema; - getMinLength(): number; - setMinLength(value: number): JSONSchema; - getPattern(): string; - setPattern(value: string): JSONSchema; - getMaxItems(): number; - setMaxItems(value: number): JSONSchema; - getMinItems(): number; - setMinItems(value: number): JSONSchema; - getUniqueItems(): boolean; - setUniqueItems(value: boolean): JSONSchema; - getMaxProperties(): number; - setMaxProperties(value: number): JSONSchema; - getMinProperties(): number; - setMinProperties(value: number): JSONSchema; - clearRequiredList(): void; - getRequiredList(): Array; - setRequiredList(value: Array): JSONSchema; - addRequired(value: string, index?: number): string; - clearArrayList(): void; - getArrayList(): Array; - setArrayList(value: Array): JSONSchema; - addArray(value: string, index?: number): string; - clearTypeList(): void; - getTypeList(): Array; - setTypeList(value: Array): JSONSchema; - addType(value: JSONSchema.JSONSchemaSimpleTypes, index?: number): JSONSchema.JSONSchemaSimpleTypes; - getFormat(): string; - setFormat(value: string): JSONSchema; - clearEnumList(): void; - getEnumList(): Array; - setEnumList(value: Array): JSONSchema; - addEnum(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): JSONSchema.AsObject; - static toObject(includeInstance: boolean, msg: JSONSchema): JSONSchema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: JSONSchema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): JSONSchema; - static deserializeBinaryFromReader(message: JSONSchema, reader: jspb.BinaryReader): JSONSchema; -} - -export namespace JSONSchema { - export type AsObject = { - ref: string, - title: string, - description: string, - pb_default: string, - readOnly: boolean, - example: string, - multipleOf: number, - maximum: number, - exclusiveMaximum: boolean, - minimum: number, - exclusiveMinimum: boolean, - maxLength: number, - minLength: number, - pattern: string, - maxItems: number, - minItems: number, - uniqueItems: boolean, - maxProperties: number, - minProperties: number, - requiredList: Array, - arrayList: Array, - typeList: Array, - format: string, - pb_enumList: Array, - } - - export enum JSONSchemaSimpleTypes { - UNKNOWN = 0, - ARRAY = 1, - BOOLEAN = 2, - INTEGER = 3, - NULL = 4, - NUMBER = 5, - OBJECT = 6, - STRING = 7, - } - -} - -export class Tag extends jspb.Message { - getDescription(): string; - setDescription(value: string): Tag; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Tag; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Tag.AsObject; - static toObject(includeInstance: boolean, msg: Tag): Tag.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Tag, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Tag; - static deserializeBinaryFromReader(message: Tag, reader: jspb.BinaryReader): Tag; -} - -export namespace Tag { - export type AsObject = { - description: string, - externalDocs?: ExternalDocumentation.AsObject, - } -} - -export class SecurityDefinitions extends jspb.Message { - - getSecurityMap(): jspb.Map; - clearSecurityMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityDefinitions.AsObject; - static toObject(includeInstance: boolean, msg: SecurityDefinitions): SecurityDefinitions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityDefinitions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityDefinitions; - static deserializeBinaryFromReader(message: SecurityDefinitions, reader: jspb.BinaryReader): SecurityDefinitions; -} - -export namespace SecurityDefinitions { - export type AsObject = { - - securityMap: Array<[string, SecurityScheme.AsObject]>, - } -} - -export class SecurityScheme extends jspb.Message { - getType(): SecurityScheme.Type; - setType(value: SecurityScheme.Type): SecurityScheme; - getDescription(): string; - setDescription(value: string): SecurityScheme; - getName(): string; - setName(value: string): SecurityScheme; - getIn(): SecurityScheme.In; - setIn(value: SecurityScheme.In): SecurityScheme; - getFlow(): SecurityScheme.Flow; - setFlow(value: SecurityScheme.Flow): SecurityScheme; - getAuthorizationUrl(): string; - setAuthorizationUrl(value: string): SecurityScheme; - getTokenUrl(): string; - setTokenUrl(value: string): SecurityScheme; - - hasScopes(): boolean; - clearScopes(): void; - getScopes(): Scopes | undefined; - setScopes(value?: Scopes): SecurityScheme; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityScheme.AsObject; - static toObject(includeInstance: boolean, msg: SecurityScheme): SecurityScheme.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityScheme, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityScheme; - static deserializeBinaryFromReader(message: SecurityScheme, reader: jspb.BinaryReader): SecurityScheme; -} - -export namespace SecurityScheme { - export type AsObject = { - type: SecurityScheme.Type, - description: string, - name: string, - pb_in: SecurityScheme.In, - flow: SecurityScheme.Flow, - authorizationUrl: string, - tokenUrl: string, - scopes?: Scopes.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } - - export enum Type { - TYPE_INVALID = 0, - TYPE_BASIC = 1, - TYPE_API_KEY = 2, - TYPE_OAUTH2 = 3, - } - - export enum In { - IN_INVALID = 0, - IN_QUERY = 1, - IN_HEADER = 2, - } - - export enum Flow { - FLOW_INVALID = 0, - FLOW_IMPLICIT = 1, - FLOW_PASSWORD = 2, - FLOW_APPLICATION = 3, - FLOW_ACCESS_CODE = 4, - } - -} - -export class SecurityRequirement extends jspb.Message { - - getSecurityRequirementMap(): jspb.Map; - clearSecurityRequirementMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirement.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirement): SecurityRequirement.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirement, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirement; - static deserializeBinaryFromReader(message: SecurityRequirement, reader: jspb.BinaryReader): SecurityRequirement; -} - -export namespace SecurityRequirement { - export type AsObject = { - - securityRequirementMap: Array<[string, SecurityRequirement.SecurityRequirementValue.AsObject]>, - } - - - export class SecurityRequirementValue extends jspb.Message { - clearScopeList(): void; - getScopeList(): Array; - setScopeList(value: Array): SecurityRequirementValue; - addScope(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirementValue.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirementValue): SecurityRequirementValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirementValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirementValue; - static deserializeBinaryFromReader(message: SecurityRequirementValue, reader: jspb.BinaryReader): SecurityRequirementValue; - } - - export namespace SecurityRequirementValue { - export type AsObject = { - scopeList: Array, - } - } - -} - -export class Scopes extends jspb.Message { - - getScopeMap(): jspb.Map; - clearScopeMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Scopes.AsObject; - static toObject(includeInstance: boolean, msg: Scopes): Scopes.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Scopes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Scopes; - static deserializeBinaryFromReader(message: Scopes, reader: jspb.BinaryReader): Scopes; -} - -export namespace Scopes { - export type AsObject = { - - scopeMap: Array<[string, string]>, - } -} - -export enum Scheme { - UNKNOWN = 0, - HTTP = 1, - HTTPS = 2, - WS = 3, - WSS = 4, -} diff --git a/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js b/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js deleted file mode 100644 index be8a6bfd2..000000000 --- a/mods/callmanager/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js +++ /dev/null @@ -1,5367 +0,0 @@ -// source: protoc-gen-openapiv2/options/openapiv2.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Contact', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Header', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Info', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.License', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Response', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Tag', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Operation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Operation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Header, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Header'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Response, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Response'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Info, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Info'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Contact'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.License, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.License.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.License'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Schema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Tag, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Tag'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_ = [5,6,7,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject = function(includeInstance, msg) { - var f, obj = { - swagger: jspb.Message.getFieldWithDefault(msg, 1, ""), - info: (f = msg.getInfo()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(includeInstance, f), - host: jspb.Message.getFieldWithDefault(msg, 3, ""), - basePath: jspb.Message.getFieldWithDefault(msg, 4, ""), - schemesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - securityDefinitions: (f = msg.getSecurityDefinitions()) && proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(includeInstance, f), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSwagger(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader); - msg.setInfo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setBasePath(value); - break; - case 5: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 10: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 11: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader); - msg.setSecurityDefinitions(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 14: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 15: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSwagger(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInfo(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBasePath(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSecurityDefinitions(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 14, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string swagger = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSwagger = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSwagger = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Info info = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getInfo = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Info, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearInfo = function() { - return this.setInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasInfo = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string host = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string base_path = 4; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getBasePath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setBasePath = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated Scheme schemes = 5; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 10; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 10, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * optional SecurityDefinitions security_definitions = 11; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityDefinitions = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, 11)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityDefinitions = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityDefinitions = function() { - return this.setSecurityDefinitions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasSecurityDefinitions = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * optional ExternalDocumentation external_docs = 14; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 14)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 14, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 14) != null; -}; - - -/** - * map extensions = 15; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 15, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_ = [1,6,7,10,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject = function(includeInstance, msg) { - var f, obj = { - tagsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - summary: jspb.Message.getFieldWithDefault(msg, 2, ""), - description: jspb.Message.getFieldWithDefault(msg, 3, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - operationId: jspb.Message.getFieldWithDefault(msg, 5, ""), - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - schemesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f, - deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 11, false), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Operation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSummary(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setOperationId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 9: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 10: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDeprecated(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 13: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getSummary(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getOperationId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 10, - f - ); - } - f = message.getDeprecated(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * repeated string tags = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getTagsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setTagsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addTags = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearTagsList = function() { - return this.setTagsList([]); -}; - - -/** - * optional string summary = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSummary = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSummary = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string description = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string operation_id = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getOperationId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setOperationId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * repeated Scheme schemes = 10; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 10, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 10, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * optional bool deprecated = 11; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDeprecated = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDeprecated = function(value) { - return jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * map extensions = 13; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 13, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, ""), - format: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 6, ""), - pattern: jspb.Message.getFieldWithDefault(msg, 13, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Header; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string type = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string format = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string default = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string pattern = 13; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 13, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - schema: (f = msg.getSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(includeInstance, f), - headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject) : [], - examplesMap: (f = msg.getExamplesMap()) ? f.toObject(includeInstance, undefined) : [], - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Response; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader); - msg.setSchema(value); - break; - case 3: - var value = msg.getHeadersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Header()); - }); - break; - case 4: - var value = msg.getExamplesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - case 5: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchema(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter - ); - } - f = message.getHeadersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter); - } - f = message.getExamplesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Schema schema = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setSchema = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearSchema = function() { - return this.setSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.hasSchema = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * map headers = 3; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getHeadersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 3, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Header)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearHeadersMap = function() { - this.getHeadersMap().clear(); - return this;}; - - -/** - * map examples = 4; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExamplesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 4, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExamplesMap = function() { - this.getExamplesMap().clear(); - return this;}; - - -/** - * map extensions = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject = function(includeInstance, msg) { - var f, obj = { - title: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - termsOfService: jspb.Message.getFieldWithDefault(msg, 3, ""), - contact: (f = msg.getContact()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(includeInstance, f), - license: (f = msg.getLicense()) && proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(includeInstance, f), - version: jspb.Message.getFieldWithDefault(msg, 6, ""), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTermsOfService(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader); - msg.setContact(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader); - msg.setLicense(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 7: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTermsOfService(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getContact(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter - ); - } - f = message.getLicense(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string title = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string terms_of_service = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTermsOfService = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTermsOfService = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional Contact contact = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getContact = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setContact = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearContact = function() { - return this.setContact(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasContact = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional License license = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getLicense = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.License} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.License, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.License|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setLicense = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearLicense = function() { - return this.setLicense(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasLicense = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string version = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setVersion = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * map extensions = 7; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 7, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject = function(includeInstance, msg) { - var f, obj = { - jsonSchema: (f = msg.getJsonSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(includeInstance, f), - discriminator: jspb.Message.getFieldWithDefault(msg, 2, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - example: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader); - msg.setJsonSchema(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDiscriminator(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsonSchema(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter - ); - } - f = message.getDiscriminator(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional JSONSchema json_schema = 1; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getJsonSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, 1)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setJsonSchema = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearJsonSchema = function() { - return this.setJsonSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasJsonSchema = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string discriminator = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getDiscriminator = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setDiscriminator = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool read_only = 3; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string example = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_ = [26,34,35,46]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 3, ""), - title: jspb.Message.getFieldWithDefault(msg, 5, ""), - description: jspb.Message.getFieldWithDefault(msg, 6, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 7, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - example: jspb.Message.getFieldWithDefault(msg, 9, ""), - multipleOf: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0), - maximum: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0), - exclusiveMaximum: jspb.Message.getBooleanFieldWithDefault(msg, 12, false), - minimum: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), - exclusiveMinimum: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - maxLength: jspb.Message.getFieldWithDefault(msg, 15, 0), - minLength: jspb.Message.getFieldWithDefault(msg, 16, 0), - pattern: jspb.Message.getFieldWithDefault(msg, 17, ""), - maxItems: jspb.Message.getFieldWithDefault(msg, 20, 0), - minItems: jspb.Message.getFieldWithDefault(msg, 21, 0), - uniqueItems: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), - maxProperties: jspb.Message.getFieldWithDefault(msg, 24, 0), - minProperties: jspb.Message.getFieldWithDefault(msg, 25, 0), - requiredList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, - arrayList: (f = jspb.Message.getRepeatedField(msg, 34)) == null ? undefined : f, - typeList: (f = jspb.Message.getRepeatedField(msg, 35)) == null ? undefined : f, - format: jspb.Message.getFieldWithDefault(msg, 36, ""), - enumList: (f = jspb.Message.getRepeatedField(msg, 46)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - case 10: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMultipleOf(value); - break; - case 11: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMaximum(value); - break; - case 12: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMaximum(value); - break; - case 13: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMinimum(value); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMinimum(value); - break; - case 15: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxLength(value); - break; - case 16: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinLength(value); - break; - case 17: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - case 20: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxItems(value); - break; - case 21: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinItems(value); - break; - case 22: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUniqueItems(value); - break; - case 24: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxProperties(value); - break; - case 25: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinProperties(value); - break; - case 26: - var value = /** @type {string} */ (reader.readString()); - msg.addRequired(value); - break; - case 34: - var value = /** @type {string} */ (reader.readString()); - msg.addArray(value); - break; - case 35: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addType(values[i]); - } - break; - case 36: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 46: - var value = /** @type {string} */ (reader.readString()); - msg.addEnum(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getMultipleOf(); - if (f !== 0.0) { - writer.writeDouble( - 10, - f - ); - } - f = message.getMaximum(); - if (f !== 0.0) { - writer.writeDouble( - 11, - f - ); - } - f = message.getExclusiveMaximum(); - if (f) { - writer.writeBool( - 12, - f - ); - } - f = message.getMinimum(); - if (f !== 0.0) { - writer.writeDouble( - 13, - f - ); - } - f = message.getExclusiveMinimum(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getMaxLength(); - if (f !== 0) { - writer.writeUint64( - 15, - f - ); - } - f = message.getMinLength(); - if (f !== 0) { - writer.writeUint64( - 16, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 17, - f - ); - } - f = message.getMaxItems(); - if (f !== 0) { - writer.writeUint64( - 20, - f - ); - } - f = message.getMinItems(); - if (f !== 0) { - writer.writeUint64( - 21, - f - ); - } - f = message.getUniqueItems(); - if (f) { - writer.writeBool( - 22, - f - ); - } - f = message.getMaxProperties(); - if (f !== 0) { - writer.writeUint64( - 24, - f - ); - } - f = message.getMinProperties(); - if (f !== 0) { - writer.writeUint64( - 25, - f - ); - } - f = message.getRequiredList(); - if (f.length > 0) { - writer.writeRepeatedString( - 26, - f - ); - } - f = message.getArrayList(); - if (f.length > 0) { - writer.writeRepeatedString( - 34, - f - ); - } - f = message.getTypeList(); - if (f.length > 0) { - writer.writePackedEnum( - 35, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 36, - f - ); - } - f = message.getEnumList(); - if (f.length > 0) { - writer.writeRepeatedString( - 46, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes = { - UNKNOWN: 0, - ARRAY: 1, - BOOLEAN: 2, - INTEGER: 3, - NULL: 4, - NUMBER: 5, - OBJECT: 6, - STRING: 7 -}; - -/** - * optional string ref = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string title = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string description = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string default = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional bool read_only = 8; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - -/** - * optional string example = 9; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional double multiple_of = 10; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMultipleOf = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMultipleOf = function(value) { - return jspb.Message.setProto3FloatField(this, 10, value); -}; - - -/** - * optional double maximum = 11; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaximum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaximum = function(value) { - return jspb.Message.setProto3FloatField(this, 11, value); -}; - - -/** - * optional bool exclusive_maximum = 12; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMaximum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMaximum = function(value) { - return jspb.Message.setProto3BooleanField(this, 12, value); -}; - - -/** - * optional double minimum = 13; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinimum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinimum = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); -}; - - -/** - * optional bool exclusive_minimum = 14; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMinimum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMinimum = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * optional uint64 max_length = 15; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxLength = function(value) { - return jspb.Message.setProto3IntField(this, 15, value); -}; - - -/** - * optional uint64 min_length = 16; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinLength = function(value) { - return jspb.Message.setProto3IntField(this, 16, value); -}; - - -/** - * optional string pattern = 17; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 17, value); -}; - - -/** - * optional uint64 max_items = 20; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxItems = function(value) { - return jspb.Message.setProto3IntField(this, 20, value); -}; - - -/** - * optional uint64 min_items = 21; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinItems = function(value) { - return jspb.Message.setProto3IntField(this, 21, value); -}; - - -/** - * optional bool unique_items = 22; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getUniqueItems = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setUniqueItems = function(value) { - return jspb.Message.setProto3BooleanField(this, 22, value); -}; - - -/** - * optional uint64 max_properties = 24; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxProperties = function(value) { - return jspb.Message.setProto3IntField(this, 24, value); -}; - - -/** - * optional uint64 min_properties = 25; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinProperties = function(value) { - return jspb.Message.setProto3IntField(this, 25, value); -}; - - -/** - * repeated string required = 26; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRequiredList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 26)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRequiredList = function(value) { - return jspb.Message.setField(this, 26, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addRequired = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 26, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearRequiredList = function() { - return this.setRequiredList([]); -}; - - -/** - * repeated string array = 34; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getArrayList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 34)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setArrayList = function(value) { - return jspb.Message.setField(this, 34, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addArray = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 34, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearArrayList = function() { - return this.setArrayList([]); -}; - - -/** - * repeated JSONSchemaSimpleTypes type = 35; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTypeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 35)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTypeList = function(value) { - return jspb.Message.setField(this, 35, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addType = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 35, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearTypeList = function() { - return this.setTypeList([]); -}; - - -/** - * optional string format = 36; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 36, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 36, value); -}; - - -/** - * repeated string enum = 46; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getEnumList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 46)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setEnumList = function(value) { - return jspb.Message.setField(this, 46, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addEnum = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 46, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearEnumList = function() { - return this.setEnumList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Tag; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 3; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 3)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject = function(includeInstance, msg) { - var f, obj = { - securityMap: (f = msg.getSecurityMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter); - } -}; - - -/** - * map security = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.getSecurityMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.clearSecurityMap = function() { - this.getSecurityMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject = function(includeInstance, msg) { - var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_in: jspb.Message.getFieldWithDefault(msg, 4, 0), - flow: jspb.Message.getFieldWithDefault(msg, 5, 0), - authorizationUrl: jspb.Message.getFieldWithDefault(msg, 6, ""), - tokenUrl: jspb.Message.getFieldWithDefault(msg, 7, ""), - scopes: (f = msg.getScopes()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (reader.readEnum()); - msg.setIn(value); - break; - case 5: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (reader.readEnum()); - msg.setFlow(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthorizationUrl(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setTokenUrl(value); - break; - case 8: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader); - msg.setScopes(value); - break; - case 9: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIn(); - if (f !== 0.0) { - writer.writeEnum( - 4, - f - ); - } - f = message.getFlow(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } - f = message.getAuthorizationUrl(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getTokenUrl(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getScopes(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type = { - TYPE_INVALID: 0, - TYPE_BASIC: 1, - TYPE_API_KEY: 2, - TYPE_OAUTH2: 3 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In = { - IN_INVALID: 0, - IN_QUERY: 1, - IN_HEADER: 2 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow = { - FLOW_INVALID: 0, - FLOW_IMPLICIT: 1, - FLOW_PASSWORD: 2, - FLOW_APPLICATION: 3, - FLOW_ACCESS_CODE: 4 -}; - -/** - * optional Type type = 1; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getType = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional In in = 4; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getIn = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setIn = function(value) { - return jspb.Message.setProto3EnumField(this, 4, value); -}; - - -/** - * optional Flow flow = 5; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getFlow = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setFlow = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); -}; - - -/** - * optional string authorization_url = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getAuthorizationUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setAuthorizationUrl = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string token_url = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getTokenUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setTokenUrl = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional Scopes scopes = 8; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getScopes = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, 8)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setScopes = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearScopes = function() { - return this.setScopes(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.hasScopes = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * map extensions = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject = function(includeInstance, msg) { - var f, obj = { - securityRequirementMap: (f = msg.getSecurityRequirementMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityRequirementMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityRequirementMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject = function(includeInstance, msg) { - var f, obj = { - scopeList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addScope(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } -}; - - -/** - * repeated string scope = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.getScopeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.setScopeList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.addScope = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.clearScopeList = function() { - return this.setScopeList([]); -}; - - -/** - * map security_requirement = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.getSecurityRequirementMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.clearSecurityRequirementMap = function() { - this.getSecurityRequirementMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject = function(includeInstance, msg) { - var f, obj = { - scopeMap: (f = msg.getScopeMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getScopeMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map scope = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.getScopeMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.clearScopeMap = function() { - this.getScopeMap().clear(); - return this;}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme = { - UNKNOWN: 0, - HTTP: 1, - HTTPS: 2, - WS: 3, - WSS: 4 -}; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/callmanager/src/service/runner.ts b/mods/callmanager/src/service/runner.ts deleted file mode 100644 index f827511ec..000000000 --- a/mods/callmanager/src/service/runner.ts +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env node -import { Tracer as T } from "@fonoster/common"; -T.init("callmanager-service"); - -import CallManagerServer from "./callmanager"; -import { CallManagerService } from "./protos/callmanager_grpc_pb"; -import { AuthMiddleware } from "@fonoster/auth"; -import { getSalt } from "@fonoster/certs"; -import { runServices } from "@fonoster/common"; - -const services = [ - { - name: "callmanager", - version: "v1beta1", - service: CallManagerService, - server: new CallManagerServer() - } -]; - -const middleware = { - name: "authentication", - middlewareObj: new AuthMiddleware(getSalt()).middleware -}; - -runServices(services, [middleware]); diff --git a/mods/callmanager/test/callmanager.unit.test.ts b/mods/callmanager/test/callmanager.unit.test.ts deleted file mode 100644 index eba58943d..000000000 --- a/mods/callmanager/test/callmanager.unit.test.ts +++ /dev/null @@ -1,140 +0,0 @@ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { APIClient } from "@fonoster/common"; -import CallManager from "../src/client/callmanager"; -import CallManagerPB from "../src/service/protos/callmanager_pb"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/callmanager", () => { - afterEach(() => sandbox.restore()); - - it("checks the requests parameters", async () => { - const setFromStub = sandbox.stub( - CallManagerPB.CallRequest.prototype, - "setFrom" - ); - const setToStub = sandbox.stub( - CallManagerPB.CallRequest.prototype, - "setTo" - ); - const setWebhookStub = sandbox.stub( - CallManagerPB.CallRequest.prototype, - "setWebhook" - ); - - const initStub = sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - call: () => { - return { - sendMessage: () => - Promise.resolve({ - getRef: () => "ramdonref" - }) - }; - } - }); - - const callStub = sandbox.spy(CallManager.prototype, "call"); - const callManager = new CallManager(); - const result = await callManager.call({ - from: "9102104343", - to: "17853178070", - webhook: "http://voiceaps.acme.com/myvoiceapp" - }); - - expect(setFromStub).to.be.calledOnceWith("9102104343"); - expect(setToStub).to.be.calledOnceWith("17853178070"); - expect(setWebhookStub).to.be.calledOnceWith( - "http://voiceaps.acme.com/myvoiceapp" - ); - expect(initStub).to.be.calledOnce; - // Once in the constructor and one in the call function - expect(serviceStub).to.be.calledTwice; - expect(callStub).to.be.calledOnce; - expect(result).to.have.property("ref").not.to.be.null; - }); - /* - - it("checks all parameters", async () => { - const callInfo: EndpointInfo = { - domain: "test.com", - context: "test", - extension: "test", - trunk: "test" - }; - - const channel = { - originate: async () => {} - }; - - const request1 = new CallRequest(); - request1.setFrom(""); - request1.setTo(""); - request1.setApp(""); - - const request2 = new CallRequest(); - request2.setFrom("78a3178070"); - request2.setTo("91x3178070"); - request2.setApp("default"); - - const request3 = new CallRequest(); - request3.setFrom("7853178070"); - request3.setTo("9193178070"); - request3.setApp(""); - - const request4 = new CallRequest(); - request4.setFrom("7853178070"); - request4.setTo("9193178070"); - request4.setApp("default"); - - expect(call(request1, channel, callInfo)).to.eventually.be.rejectedWith( - "invalid e164 number" - ); - expect(call(request2, channel, callInfo)).to.eventually.be.rejectedWith( - "invalid e164 number" - ); - expect(call(request3, channel, callInfo)).to.eventually.be.rejectedWith( - "invalid app reference" - ); - expect(call(request4, channel, callInfo)).to.eventually.be.fulfilled; - }); - - it("calls a number", async () => { - const callInfo: EndpointInfo = { - domain: "acme.com", - context: "context", - extension: "extension", - trunk: "trunk" - }; - - const channel = { - originate: async (r: any) => { - expect(r.context).to.be.equal("context"); - expect(r.extension).to.be.equal("extension"); - expect(r.endpoint).to.be.equal(`PJSIP/trunk/sip:17853178070@acme.com`); - expect(r.variables["DID_INFO"]).to.be.equal("+19193178070"); - } - }; - const channelStub = sandbox.spy(channel, "originate"); - - const request = new CallRequest(); - request.setFrom("9193178070"); - request.setTo("7853178070"); - request.setApp("default"); - - const response = await call(request, channel, callInfo); - - expect(response.getFrom()).to.be.equal("+19193178070"); - expect(response.getTo()).to.be.equal("+17853178070"); - expect(response.getApp()).to.be.equal("default"); - expect(channelStub).to.have.been.calledOnce; - });*/ -}); diff --git a/mods/callmanager/tsconfig.json b/mods/callmanager/tsconfig.json deleted file mode 100644 index dd5736ff0..000000000 --- a/mods/callmanager/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../auth" }, - { "path": "../certs" }, - { "path": "../common" }, - { "path": "../core" }, - { "path": "../errors" }, - { "path": "../logger" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/certs/.npmignore b/mods/certs/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/certs/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/certs/package-lock.json b/mods/certs/package-lock.json deleted file mode 100644 index 31410dfca..000000000 --- a/mods/certs/package-lock.json +++ /dev/null @@ -1,442 +0,0 @@ -{ - "name": "@fonoster/certs", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/certs", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - }, - "devDependencies": { - "minipass": "3.3.4" - } - }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", - "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "node_modules/acme-client": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/acme-client/-/acme-client-4.2.3.tgz", - "integrity": "sha512-fzNysQ7OdBWPlELQbjjjLo2eqrmMpdd6DZ9/d4jxHJItpKC4GKYLTxA3UIYca9BcY4Zr8un/axyEGnyRHKLGbw==", - "dependencies": { - "axios": "0.21.4", - "backo2": "^1.0.0", - "bluebird": "^3.5.0", - "debug": "^4.1.1", - "node-forge": "^1.2.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "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": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "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/follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "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/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/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "node_modules/minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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/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/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/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - }, - "dependencies": { - "@types/jsonwebtoken": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", - "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "acme-client": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/acme-client/-/acme-client-4.2.3.tgz", - "integrity": "sha512-fzNysQ7OdBWPlELQbjjjLo2eqrmMpdd6DZ9/d4jxHJItpKC4GKYLTxA3UIYca9BcY4Zr8un/axyEGnyRHKLGbw==", - "requires": { - "axios": "0.21.4", - "backo2": "^1.0.0", - "bluebird": "^3.5.0", - "debug": "^4.1.1", - "node-forge": "^1.2.0" - } - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" - }, - "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": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "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" - } - }, - "follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - } - }, - "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" - } - }, - "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" - } - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" - }, - "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==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } -} diff --git a/mods/certs/package.json b/mods/certs/package.json deleted file mode 100644 index d7b980b3e..000000000 --- a/mods/certs/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "@fonoster/certs", - "version": "0.3.22", - "description": "Handles Fonoster certificates", - "homepage": "https://github.com/fonoster/fonoster#readme", - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "license": "MIT", - "author": "Pedro Sanders ", - "main": "dist/certs", - "types": "dist/certs", - "directories": { - "test": "test", - "src": "src" - }, - "files": [ - "dist" - ], - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json" - }, - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - }, - "devDependencies": { - "minipass": "3.3.4" - }, - "publishConfig": { - "access": "public" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/certs/src/certs.ts b/mods/certs/src/certs.ts deleted file mode 100644 index cebc9352a..000000000 --- a/mods/certs/src/certs.ts +++ /dev/null @@ -1,81 +0,0 @@ -import fs from "fs"; -import jwt from "jsonwebtoken"; -import { forge } from "acme-client"; -import { join } from "path"; -import { homedir } from "os"; -import btoa from "btoa"; - -const BASE_DIR = join(homedir(), ".fonoster"); -const PATH_TO_SALT = join(BASE_DIR, "private_key"); -const PATH_TO_CONFIG = join(BASE_DIR, "config"); -const ACCESS_KEY_ID = process.env.ACCESS_KEY_ID || "fonoster"; -const AUTH_ISS = process.env.AUTH_ISS || "fonoster"; - -const getContent = (workdir: string, file: string) => - btoa(fs.readFileSync(`${workdir}/${file}`).toString("utf-8")); - -if (!fs.existsSync(BASE_DIR)) fs.mkdirSync(BASE_DIR); - -const getSalt = () => fs.readFileSync(PATH_TO_SALT).toString().trim(); -const configExist = () => fs.existsSync(PATH_TO_CONFIG); -const saltExist = () => fs.existsSync(PATH_TO_SALT); - -async function createAccessFile() { - if (!saltExist()) { - fs.writeFileSync(PATH_TO_SALT, await forge.createPrivateKey()); - } - - const salt = getSalt(); - const claims = { AUTH_ISS, sub: ACCESS_KEY_ID }; - const config = { - accessKeyId: ACCESS_KEY_ID, - accessKeySecret: jwt.sign(claims, salt) - }; - fs.writeFileSync(PATH_TO_CONFIG, JSON.stringify(config, null, " ")); - return config; -} - -const writeConfig = (config: string, pathToConfig: string, workdir: string) => { - const content = JSON.stringify(config, null, ""); - if (!fs.existsSync(workdir)) fs.mkdirSync(workdir, { recursive: true }); - fs.writeFileSync(pathToConfig, content); -}; - -function createServerConfig(workdir: string) { - try { - const pathToConfig = join(workdir, "config"); - const config = JSON.parse(fs.readFileSync(pathToConfig).toString("utf-8")); - config.caCertificate = getContent(workdir, "ca.crt"); - config.serverCertificate = getContent(workdir, "server.crt"); - config.serverKey = getContent(workdir, "server.key"); - writeConfig(config, pathToConfig, workdir); - } catch (e) { - console.error(e); - } -} - -function createClientConfig(workdir: string) { - try { - const pathToConfig = join(workdir, "config"); - const config = JSON.parse(fs.readFileSync(pathToConfig).toString("utf-8")); - config.caCertificate = getContent(workdir, "ca.crt"); - config.clientCertificate = getContent(workdir, "client.crt"); - config.clientKey = getContent(workdir, "client.key"); - writeConfig(config, pathToConfig, workdir); - } catch (e) { - console.error(e); - } -} - -export { - createAccessFile as default, - createServerConfig, - createClientConfig, - getSalt, - configExist, - saltExist, - PATH_TO_SALT, - PATH_TO_CONFIG, - ACCESS_KEY_ID, - AUTH_ISS -}; diff --git a/mods/certs/src/run.ts b/mods/certs/src/run.ts deleted file mode 100644 index aa8190337..000000000 --- a/mods/certs/src/run.ts +++ /dev/null @@ -1,3 +0,0 @@ -import createAccessFile from "./certs"; - -createAccessFile(); diff --git a/mods/certs/test/certs.unit.test.ts b/mods/certs/test/certs.unit.test.ts deleted file mode 100644 index b382486cb..000000000 --- a/mods/certs/test/certs.unit.test.ts +++ /dev/null @@ -1,38 +0,0 @@ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import createConfigFile from "../src/certs"; -import jwt from "jsonwebtoken"; -import fs from "fs"; -import { join } from "path"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -if (process.env.NODE_ENV === "dev") { - require("dotenv").config({ path: join(__dirname, "..", "..", ".env") }); -} - -describe("@fonoster/certs", () => { - afterEach(() => sandbox.restore()); - - it("creates an salt if it does not exist", async () => { - const existsSync = sandbox.stub(fs, "existsSync").returns(false); - const writeFileSync = sandbox.stub(fs, "writeFileSync"); - const readFileSync = sandbox - .stub(fs, "readFileSync") - .returns("secret salt"); - const sign = sandbox.spy(jwt, "sign"); - const result = await createConfigFile(); - - expect(result).to.have.property("accessKeyId").to.be.equal("fonoster"); - expect(result).to.have.property("accessKeySecret").to.be.not.null; - expect(existsSync).to.have.been.calledOnce; - expect(sign).to.have.been.calledOnce; - expect(writeFileSync).to.have.been.calledTwice; - expect(readFileSync).to.have.been.calledOnce; - }); -}); diff --git a/mods/certs/tsconfig.json b/mods/certs/tsconfig.json deleted file mode 100644 index 7104bf4cd..000000000 --- a/mods/certs/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/callmanager/.lerna-changed-buster-192 b/mods/common/.lerna-changed-buster-5577 similarity index 100% rename from mods/callmanager/.lerna-changed-buster-192 rename to mods/common/.lerna-changed-buster-5577 diff --git a/mods/common/.npmignore b/mods/common/.npmignore new file mode 100644 index 000000000..51256b514 --- /dev/null +++ b/mods/common/.npmignore @@ -0,0 +1,6 @@ +.nyc_output +coverage +src +test +*.log +.ts \ No newline at end of file diff --git a/mods/common/README.md b/mods/common/README.md new file mode 100644 index 000000000..7669fdd1a --- /dev/null +++ b/mods/common/README.md @@ -0,0 +1,3 @@ +[![Discord](https://img.shields.io/discord/1016419835455996076?color=5865F2&label=Discord&logo=discord&logoColor=white)](https://discord.gg/4QWgSz4hTC) ![GitHub](https://img.shields.io/github/license/fonoster/fonoster?color=%2347b96d) ![Twitter Follow](https://img.shields.io/twitter/follow/fonoster?style=social) + +This module is part of the [Fonoster](https://fonoster.com) open-source. By itself, it does not do much. It is intended to be used as a dependency for other modules. For more information about the project, please visit [https://github.com/fonoster/fonoster](https://github.com/fonoster/fonoster). \ No newline at end of file diff --git a/mods/common/package-lock.json b/mods/common/package-lock.json deleted file mode 100644 index 7c2314b15..000000000 --- a/mods/common/package-lock.json +++ /dev/null @@ -1,1955 +0,0 @@ -{ - "name": "@fonoster/common", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/common", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@fonoster/grpc-health-check": "^3.1.1", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "node_modules/@fonoster/grpc-health-check": { - "version": "3.1.1", - "resolved": "git+ssh://git@github.com/fonoster/grpc-health-check.git#aa7ece33d5ef390421e688494cf458b853366df1", - "integrity": "sha512-05csAwrEE8LEcaiK9g+vQv0Uvt/YzuWeqKN0CUlEeL4UGw54TTCG6M4xRIOcHgHqof4CLgorSd+2xHwS6LMxoA==", - "license": "MIT", - "dependencies": { - "google-protobuf": "^3.21.0", - "grpc-boom": "^3.0.11" - }, - "peerDependencies": { - "@grpc/grpc-js": "^1.6.10", - "@grpc/proto-loader": "^0.7.2" - } - }, - "node_modules/@fonoster/grpc-health-check/node_modules/google-protobuf": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.0.tgz", - "integrity": "sha512-byR7MBTK4tZ5PZEb+u5ZTzpt4SfrTxv5682MjPlHN16XeqgZE2/8HOIWeiXe8JKnT9OVbtBGhbq8mtvkK8cd5g==" - }, - "node_modules/@fonoster/grpc-health-check/node_modules/grpc-boom": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/grpc-boom/-/grpc-boom-3.0.11.tgz", - "integrity": "sha512-bdGLCww+w+CWHdT0Fm2AzoRToJJHzlIEfTggkquUO9JG5d2TU+yUIuk4ksWQ2B+LFQpxLaB7ZbZXKBPkErtW5w==", - "peerDependencies": { - "@types/node": "^16.11.35" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/api-metrics": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.27.0.tgz", - "integrity": "sha512-tB79288bwjkdhPNpw4UdOEy3bacVwtol6Que7cAu8KEJ9ULjRfSiwpYEwJY/oER3xZ7zNFz0uiJ7N1jSiotpVA==", - "deprecated": "Please use @opentelemetry/api >= 1.3.0", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", - "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==", - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/exporter-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.8.0.tgz", - "integrity": "sha512-3h16Sb1T/G33S+RM3yjt1t2xRuu/mi9iB172faS6qFQEclTTJru1pTK4wuWG+9GyI7uyBLfbQoXVA5/BA6gvHw==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0", - "jaeger-client": "^3.15.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/exporter-zipkin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.8.0.tgz", - "integrity": "sha512-Y3WqNCZjfWKnHiRzb35sXpDfGL4Gx2qajFAv059s/VFayIPytLHUOrZMiQqrpfzU/TSIKPG4OHJaypFtUtNlQQ==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.27.0.tgz", - "integrity": "sha512-dUwY/VoDptdK8AYigwS3IKblG+unV5xIdV4VQKy+nX5aT3f7vd5PMYs4arCQSYLbLRe0s7GxK6S9dtjai/TsHQ==", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.27.1.tgz", - "integrity": "sha512-EbpmTyem70Rg56+A0w8ndSmeyVYj7gFV9yk2IGgVVc9n/hs2mTgsBI2evaUtWbpB51pb1u/h+DhICKxgg/8Hew==", - "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/express": "4.17.13" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.2" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.27.0.tgz", - "integrity": "sha512-aFHcAeeLfqoH8PMjmdqEwZwXDJtFSkWmGDBZeH2yrx3KzFMVBB/UJEr1n/ZC6AqfqahL/qqB1N8EnoCoOcs5ig==", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.27.0.tgz", - "integrity": "sha512-Q1dxUt+5d70rbY6jJAC8nwpIQJontmJW94eIS5CsGngvCRYw6tgjLZp2fpVL1o7Lj7uiLpGigeE4EN5Lr2YDFA==", - "dependencies": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/propagator-b3": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.8.0.tgz", - "integrity": "sha512-ffP6AVHyISqK1kiUY1MoVKt43Wp3FJXI8NOePqxBrAU7bRDJ13276VbSl4ugCZbZLTPrPhhSmvQh1WqlfUgcAg==", - "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/propagator-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.8.0.tgz", - "integrity": "sha512-v6GA38k2cqeGAh3368prLW5MsuG2/KxpfWI/PxTPjCa9tThDPq0cvhKpk7cEma3y+F6rieMhwmzZhKQL5QVBzQ==", - "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/resources": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.8.0.tgz", - "integrity": "sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.27.0.tgz", - "integrity": "sha512-HpiWI4sVNsjp3FGyUlc24KvUY2Whl4PQVwcbA/gWv2kHaLQrDJrWC+3rjUR+87Mrd0nsiqJ85xhGFU6IK8h7gg==", - "deprecated": "Please use @opentelemetry/sdk-metrics", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/core": "1.0.1", - "@opentelemetry/resources": "1.0.1", - "lodash.merge": "^4.6.2" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/resources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.1.tgz", - "integrity": "sha512-p8DevOaAEepPucUtImR4cZKHOE2L1jgQAtkdZporV+XnxPA/HqCHPEESyUVuo4f5M0NUlL6k5Pba75KwNJlTRg==", - "dependencies": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz", - "integrity": "sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-node": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.8.0.tgz", - "integrity": "sha512-6FqhJEgW9Nke5SO4Ul9+5EWOfms/JeLg5LRqILMPMK4UMBWcOtk7jldvGGyfVpraJ16/WPo/R5NSnMwlupN5zQ==", - "dependencies": { - "@opentelemetry/context-async-hooks": "1.8.0", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/propagator-b3": "1.8.0", - "@opentelemetry/propagator-jaeger": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz", - "integrity": "sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "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.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "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": "16.18.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.4.tgz", - "integrity": "sha512-9qGjJ5GyShZjUfx2ArBIGM+xExdfLvvaCyQR0t6yRXKPcWCVYF/WemtX/uIU3r7FYECXRXkIiw2Vnhn6y8d+pw==" - }, - "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/ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==", - "engines": { - "node": "*" - } - }, - "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/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bufrw": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", - "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", - "dependencies": { - "ansi-color": "^0.2.1", - "error": "^7.0.0", - "hexer": "^1.5.0", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "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/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/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/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/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "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/error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", - "dependencies": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "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/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/grpc-interceptors": { - "version": "0.2.5", - "resolved": "git+ssh://git@github.com/fonoster/node-grpc-interceptors.git#3ccc1d222f8a66e319a0e1e93bd18095aeaeb141", - "license": "ISC", - "dependencies": { - "zipkin": "^0.12.0", - "zipkin-transport-http": "^0.22.0" - }, - "peerDependencies": { - "@grpc/grpc-js": "^1.3.7" - } - }, - "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/hexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", - "dependencies": { - "ansi-color": "^0.2.1", - "minimist": "^1.1.0", - "process": "^0.10.0", - "xtend": "^4.0.0" - }, - "bin": { - "hexer": "cli.js" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "node_modules/jaeger-client": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", - "dependencies": { - "node-int64": "^0.4.0", - "opentracing": "^0.14.4", - "thriftrw": "^3.5.0", - "uuid": "^8.3.2", - "xorshift": "^1.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, - "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/network-address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", - "integrity": "sha512-Q6878fmvItA1mE7H9Il46lONgFgTzX2f98zkS0c2YlkCACzNjwvum/8Kq693IQpxe9zy+w+Zm/4p0wQreLEtZw==", - "bin": { - "network-address": "cli.js" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "node_modules/opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/process": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/protobufjs/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "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-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "dependencies": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "node_modules/string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==" - }, - "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/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/thriftrw": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.12.0.tgz", - "integrity": "sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw==", - "dependencies": { - "bufrw": "^1.3.0", - "error": "7.0.2", - "long": "^2.4.0" - }, - "bin": { - "thrift2json": "thrift2json.js" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/thriftrw/node_modules/long": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "peer": true - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "peer": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "peer": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "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/xorshift": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "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/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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/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/zipkin": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.12.0.tgz", - "integrity": "sha512-QguH/UQt/ofUVcTJLW7qdyi7iEo71MJJbKg/6d/m3ptvxhm5gDVf/KVuCEfzxxzzWGSKtX+c+qACvowsPkNjuQ==", - "dependencies": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0", - "network-address": "^1.1.0" - } - }, - "node_modules/zipkin-transport-http": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin-transport-http/-/zipkin-transport-http-0.22.0.tgz", - "integrity": "sha512-bjM2fm/hurseBuvpyB8mYCBBGOz3gc2f9KUSQl71LGxmgYcUeXvDHJyE9MgzWMhl+3HcD8l5nNn6OmdX63he+g==", - "dependencies": { - "zipkin": "^0.22.0" - }, - "peerDependencies": { - "node-fetch": ">=1.4.0 <3.0.0" - } - }, - "node_modules/zipkin-transport-http/node_modules/zipkin": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.22.0.tgz", - "integrity": "sha512-SZgorBAvywnj5R26mqsFP+2MRUsBXGg0B8GLRLw9R0FeE4alMUAfhXYvzeAt2+MvkXne9QdQyziuqO5oXNQ0Sg==", - "dependencies": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0" - } - } - }, - "dependencies": { - "@fonoster/grpc-health-check": { - "version": "git+ssh://git@github.com/fonoster/grpc-health-check.git#aa7ece33d5ef390421e688494cf458b853366df1", - "integrity": "sha512-05csAwrEE8LEcaiK9g+vQv0Uvt/YzuWeqKN0CUlEeL4UGw54TTCG6M4xRIOcHgHqof4CLgorSd+2xHwS6LMxoA==", - "from": "@fonoster/grpc-health-check@^3.1.1", - "requires": { - "google-protobuf": "^3.21.0", - "grpc-boom": "^3.0.11" - }, - "dependencies": { - "google-protobuf": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.0.tgz", - "integrity": "sha512-byR7MBTK4tZ5PZEb+u5ZTzpt4SfrTxv5682MjPlHN16XeqgZE2/8HOIWeiXe8JKnT9OVbtBGhbq8mtvkK8cd5g==" - }, - "grpc-boom": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/grpc-boom/-/grpc-boom-3.0.11.tgz", - "integrity": "sha512-bdGLCww+w+CWHdT0Fm2AzoRToJJHzlIEfTggkquUO9JG5d2TU+yUIuk4ksWQ2B+LFQpxLaB7ZbZXKBPkErtW5w==", - "requires": {} - } - } - }, - "@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "requires": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - } - }, - "@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==" - }, - "@opentelemetry/api-metrics": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.27.0.tgz", - "integrity": "sha512-tB79288bwjkdhPNpw4UdOEy3bacVwtol6Que7cAu8KEJ9ULjRfSiwpYEwJY/oER3xZ7zNFz0uiJ7N1jSiotpVA==" - }, - "@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", - "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==", - "requires": {} - }, - "@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "requires": { - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/exporter-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.8.0.tgz", - "integrity": "sha512-3h16Sb1T/G33S+RM3yjt1t2xRuu/mi9iB172faS6qFQEclTTJru1pTK4wuWG+9GyI7uyBLfbQoXVA5/BA6gvHw==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0", - "jaeger-client": "^3.15.0" - } - }, - "@opentelemetry/exporter-zipkin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.8.0.tgz", - "integrity": "sha512-Y3WqNCZjfWKnHiRzb35sXpDfGL4Gx2qajFAv059s/VFayIPytLHUOrZMiQqrpfzU/TSIKPG4OHJaypFtUtNlQQ==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/instrumentation": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.27.0.tgz", - "integrity": "sha512-dUwY/VoDptdK8AYigwS3IKblG+unV5xIdV4VQKy+nX5aT3f7vd5PMYs4arCQSYLbLRe0s7GxK6S9dtjai/TsHQ==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "@opentelemetry/instrumentation-express": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.27.1.tgz", - "integrity": "sha512-EbpmTyem70Rg56+A0w8ndSmeyVYj7gFV9yk2IGgVVc9n/hs2mTgsBI2evaUtWbpB51pb1u/h+DhICKxgg/8Hew==", - "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/express": "4.17.13" - } - }, - "@opentelemetry/instrumentation-grpc": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.27.0.tgz", - "integrity": "sha512-aFHcAeeLfqoH8PMjmdqEwZwXDJtFSkWmGDBZeH2yrx3KzFMVBB/UJEr1n/ZC6AqfqahL/qqB1N8EnoCoOcs5ig==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "dependencies": { - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/instrumentation-http": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.27.0.tgz", - "integrity": "sha512-Q1dxUt+5d70rbY6jJAC8nwpIQJontmJW94eIS5CsGngvCRYw6tgjLZp2fpVL1o7Lj7uiLpGigeE4EN5Lr2YDFA==", - "requires": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1", - "semver": "^7.3.5" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "requires": { - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/propagator-b3": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.8.0.tgz", - "integrity": "sha512-ffP6AVHyISqK1kiUY1MoVKt43Wp3FJXI8NOePqxBrAU7bRDJ13276VbSl4ugCZbZLTPrPhhSmvQh1WqlfUgcAg==", - "requires": { - "@opentelemetry/core": "1.8.0" - } - }, - "@opentelemetry/propagator-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.8.0.tgz", - "integrity": "sha512-v6GA38k2cqeGAh3368prLW5MsuG2/KxpfWI/PxTPjCa9tThDPq0cvhKpk7cEma3y+F6rieMhwmzZhKQL5QVBzQ==", - "requires": { - "@opentelemetry/core": "1.8.0" - } - }, - "@opentelemetry/resources": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.8.0.tgz", - "integrity": "sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/sdk-metrics-base": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.27.0.tgz", - "integrity": "sha512-HpiWI4sVNsjp3FGyUlc24KvUY2Whl4PQVwcbA/gWv2kHaLQrDJrWC+3rjUR+87Mrd0nsiqJ85xhGFU6IK8h7gg==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/core": "1.0.1", - "@opentelemetry/resources": "1.0.1", - "lodash.merge": "^4.6.2" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "requires": { - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/resources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.1.tgz", - "integrity": "sha512-p8DevOaAEepPucUtImR4cZKHOE2L1jgQAtkdZporV+XnxPA/HqCHPEESyUVuo4f5M0NUlL6k5Pba75KwNJlTRg==", - "requires": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/sdk-trace-base": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz", - "integrity": "sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/sdk-trace-node": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.8.0.tgz", - "integrity": "sha512-6FqhJEgW9Nke5SO4Ul9+5EWOfms/JeLg5LRqILMPMK4UMBWcOtk7jldvGGyfVpraJ16/WPo/R5NSnMwlupN5zQ==", - "requires": { - "@opentelemetry/context-async-hooks": "1.8.0", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/propagator-b3": "1.8.0", - "@opentelemetry/propagator-jaeger": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "semver": "^7.3.5" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz", - "integrity": "sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "@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.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "@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": "16.18.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.4.tgz", - "integrity": "sha512-9qGjJ5GyShZjUfx2ArBIGM+xExdfLvvaCyQR0t6yRXKPcWCVYF/WemtX/uIU3r7FYECXRXkIiw2Vnhn6y8d+pw==" - }, - "@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": "*" - } - }, - "ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==" - }, - "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" - } - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bufrw": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", - "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", - "requires": { - "ansi-color": "^0.2.1", - "error": "^7.0.0", - "hexer": "^1.5.0", - "xtend": "^4.0.0" - } - }, - "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" - } - }, - "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==" - }, - "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" - } - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "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==" - }, - "error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", - "requires": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "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==" - }, - "grpc-interceptors": { - "version": "git+ssh://git@github.com/fonoster/node-grpc-interceptors.git#3ccc1d222f8a66e319a0e1e93bd18095aeaeb141", - "from": "grpc-interceptors@github:fonoster/node-grpc-interceptors", - "requires": { - "zipkin": "^0.12.0", - "zipkin-transport-http": "^0.22.0" - } - }, - "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" - } - }, - "hexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", - "requires": { - "ansi-color": "^0.2.1", - "minimist": "^1.1.0", - "process": "^0.10.0", - "xtend": "^4.0.0" - } - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "requires": { - "has": "^1.0.3" - } - }, - "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-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "jaeger-client": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", - "requires": { - "node-int64": "^0.4.0", - "opentracing": "^0.14.4", - "thriftrw": "^3.5.0", - "uuid": "^8.3.2", - "xorshift": "^1.1.1" - } - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" - }, - "module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "network-address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", - "integrity": "sha512-Q6878fmvItA1mE7H9Il46lONgFgTzX2f98zkS0c2YlkCACzNjwvum/8Kq693IQpxe9zy+w+Zm/4p0wQreLEtZw==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "peer": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "process": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==" - }, - "protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - } - } - }, - "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-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "requires": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - } - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "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" - } - }, - "shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==" - }, - "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" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "thriftrw": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.12.0.tgz", - "integrity": "sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw==", - "requires": { - "bufrw": "^1.3.0", - "error": "7.0.2", - "long": "^2.4.0" - }, - "dependencies": { - "long": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==" - } - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "peer": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "peer": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "peer": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.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" - } - }, - "xorshift": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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==" - }, - "zipkin": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.12.0.tgz", - "integrity": "sha512-QguH/UQt/ofUVcTJLW7qdyi7iEo71MJJbKg/6d/m3ptvxhm5gDVf/KVuCEfzxxzzWGSKtX+c+qACvowsPkNjuQ==", - "requires": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0", - "network-address": "^1.1.0" - } - }, - "zipkin-transport-http": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin-transport-http/-/zipkin-transport-http-0.22.0.tgz", - "integrity": "sha512-bjM2fm/hurseBuvpyB8mYCBBGOz3gc2f9KUSQl71LGxmgYcUeXvDHJyE9MgzWMhl+3HcD8l5nNn6OmdX63he+g==", - "requires": { - "zipkin": "^0.22.0" - }, - "dependencies": { - "zipkin": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.22.0.tgz", - "integrity": "sha512-SZgorBAvywnj5R26mqsFP+2MRUsBXGg0B8GLRLw9R0FeE4alMUAfhXYvzeAt2+MvkXne9QdQyziuqO5oXNQ0Sg==", - "requires": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0" - } - } - } - } - } -} diff --git a/mods/common/package.json b/mods/common/package.json index 0334730fe..f17122f3d 100644 --- a/mods/common/package.json +++ b/mods/common/package.json @@ -1,54 +1,52 @@ { "name": "@fonoster/common", - "version": "0.3.22", - "description": "Common artifacts", + "version": "0.9.0", + "description": "Common library for Fonoster projects", + "author": "Pedro Sanders ", "homepage": "https://github.com/fonoster/fonoster#readme", - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, "license": "MIT", - "author": "Pedro Sanders ", "main": "dist/index", "types": "dist/index", "directories": { - "test": "test", - "src": "src" + "src": "src", + "test": "test" }, - "files": [ - "dist" - ], "scripts": { "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json" + "build": "tsc -b tsconfig.json", + "postbuild": "cp -a src/protos dist", + "clean": "rimraf ./dist node_modules tsconfig.tsbuildinfo" }, "dependencies": { - "@fonoster/certs": "^0.3.22", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" + "@fonoster/logger": "^0.9.0", + "@grpc/grpc-js": "~1.10.6", + "@grpc/proto-loader": "^0.7.12", + "@influxdata/influxdb-client": "^1.35.0", + "dotenv": "^16.4.7", + "grpc-health-check": "^2.0.2", + "handlebars": "^4.7.8", + "jsonwebtoken": "^9.0.2", + "jwt-decode": "^4.0.0", + "nodemailer": "^6.9.13", + "twilio": "^5.3.4", + "validator": "^13.12.0", + "zod-validation-error": "^3.3.0" }, + "files": [ + "dist" + ], "publishConfig": { "access": "public" }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" + "repository": { + "type": "git", + "url": "git+https://github.com/fonoster/fonoster.git" + }, + "bugs": { + "url": "https://github.com/fonoster/fonoster/issues" + }, + "devDependencies": { + "@types/nodemailer": "^6.4.14" + }, + "gitHead": "d4aa82f7926c0f451d2f580c59ab812c74a7f579" } diff --git a/mods/common/src/GrpcError.ts b/mods/common/src/GrpcError.ts new file mode 100644 index 000000000..0313aa30f --- /dev/null +++ b/mods/common/src/GrpcError.ts @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +class GrpcError extends Error { + code: number; + + constructor(code: number, message: string) { + super(message); + this.code = code; + Object.setPrototypeOf(this, GrpcError.prototype); + } +} + +export { GrpcError }; diff --git a/mods/common/src/api_client.ts b/mods/common/src/api_client.ts deleted file mode 100644 index c0ef5dcfc..000000000 --- a/mods/common/src/api_client.ts +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { getClientCredentials } from "./trust_util"; -import { ClientOptions } from "./types"; -import * as fs from "fs"; -import * as path from "path"; -import { Metadata } from "@grpc/grpc-js"; - -const CONFIG_FILE = - process.env.API_CONFIG_FILE || - path.join(require("os").homedir(), ".fonoster", "config"); -const configFileExit = () => fs.existsSync(CONFIG_FILE); -const getConfigFile = () => JSON.parse(fs.readFileSync(CONFIG_FILE).toString()); - -const defaultOptions: ClientOptions = { - endpoint: process.env.APISERVER_ENDPOINT || "api.fonoster.io", - accessKeyId: process.env.ACCESS_KEY_ID, - accessKeySecret: process.env.ACCESS_KEY_SECRET -}; - -export default class { - options: ClientOptions; - metadata: Metadata; - ServiceClient: any; - service: any; - - /** - * Use the Options object to overwrite the service default configuration. - * @typedef {ClientOptions} Options - * @property {string} endpoint - The endpoint URI to send requests to. - * The endpoint should be a string like '{serviceHost}:{servicePort}'. - * @property {string} accessKeyId - your Fonoster access key ID. - * @property {string} accessKeySecret - your Fonoster secret access key. - * @property {string} bucket - The bucket to upload apps and media files. - */ - - /** - * Constructs a service object. - * - * @param {Options} options - Overwrite for the service's defaults configuration. - */ - constructor(ServiceClient: any, options: ClientOptions) { - this.ServiceClient = ServiceClient; - this.options = options; - } - - init(): void { - try { - if (!this.options && configFileExit()) { - this.options = getConfigFile(); - } - } catch (err) { - throw new Error(`Malformed config file found at: ${CONFIG_FILE}`); - } - - if (!this.options) { - this.options = defaultOptions; - } - - if (!this.options.accessKeyId || !this.options.accessKeySecret) { - throw new Error("Not valid credentials found"); - } - - this.metadata = new Metadata(); - this.metadata.add("access_key_id", this.options.accessKeyId); - this.metadata.add("access_key_secret", this.options.accessKeySecret); - - this.service = new this.ServiceClient( - this.options.endpoint || defaultOptions.endpoint, - getClientCredentials() - ); - } - - getOptions(): ClientOptions { - return this.options; - } - - getService(): any { - return this.service; - } - - getMeta(): Metadata { - return this.metadata; - } -} diff --git a/mods/common/src/assistants/LanguageModelProvider.ts b/mods/common/src/assistants/LanguageModelProvider.ts new file mode 100644 index 000000000..417879077 --- /dev/null +++ b/mods/common/src/assistants/LanguageModelProvider.ts @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +enum LanguageModelProvider { + OPENAI = "openai", + GROQ = "groq", + OLLAMA = "ollama" +} + +export { LanguageModelProvider }; diff --git a/mods/common/src/assistants/assistantSchema.ts b/mods/common/src/assistants/assistantSchema.ts new file mode 100644 index 000000000..0cf275ccf --- /dev/null +++ b/mods/common/src/assistants/assistantSchema.ts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { conversationSettingsSchema } from "./conversationSettingsSchema"; +import { languageModelConfigSchema } from "./languageModelConfigSchema"; +import { testCasesSchema } from "./testCasesSchema"; +import { eventsHookSchema } from "./eventsHookSchema"; + +const assistantSchema = z.object({ + conversationSettings: conversationSettingsSchema, + languageModel: languageModelConfigSchema, + eventsHook: eventsHookSchema.optional(), + testCases: testCasesSchema.optional() +}); + +export { assistantSchema }; diff --git a/mods/common/src/assistants/conversationSettingsSchema.ts b/mods/common/src/assistants/conversationSettingsSchema.ts new file mode 100644 index 000000000..a3882f771 --- /dev/null +++ b/mods/common/src/assistants/conversationSettingsSchema.ts @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import * as Messages from "../messages"; + +const NUMBER_BETWEEN_0_AND_1 = "Must be a number between 0 and 1"; +const MAX_SPEECH_WAIT_TIMEOUT = 5000; +const IDLE_OPTIONS_TIMEOUT = 10000; +const IDLE_OPTIONS_MAX_TIMEOUT_COUNT = 3; +const VAD_ACTIVATION_THRESHOLD = 0.3; +const VAD_DEACTIVATION_THRESHOLD = 0.25; +const VAD_DEBOUNCE_FRAMES = 2; + +const conversationSettingsSchema = z.object({ + firstMessage: z.string().optional(), + systemPrompt: z.string(), + goodbyeMessage: z.string(), + systemErrorMessage: z.string(), + initialDtmf: z + .string() + .regex(/^[0-9*#]+$/, { message: Messages.VALID_DTMF }) + .optional(), + maxSessionDuration: z + .number() + .int() + .positive() + .default(30 * 60 * 1000), // 30 minutes + maxSpeechWaitTimeout: z + .number() + .int({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .positive({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .default(MAX_SPEECH_WAIT_TIMEOUT), + transferOptions: z + .object({ + phoneNumber: z.string(), + message: z.string(), + timeout: z + .number() + .int({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .positive({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .default(30000) + }) + .optional(), + idleOptions: z.object({ + message: z.string(), + timeout: z + .number() + .int({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .positive({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .default(IDLE_OPTIONS_TIMEOUT), + maxTimeoutCount: z + .number() + .int({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .positive({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .default(IDLE_OPTIONS_MAX_TIMEOUT_COUNT) + }), + vad: z + .object({ + pathToModel: z.string().optional(), + activationThreshold: z + .number() + .max(1) + .min(0) + .positive({ message: NUMBER_BETWEEN_0_AND_1 }), + deactivationThreshold: z + .number() + .max(1) + .min(0) + .positive({ message: NUMBER_BETWEEN_0_AND_1 }), + debounceFrames: z + .number() + .int({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .positive({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + }) + .default({ + activationThreshold: VAD_ACTIVATION_THRESHOLD, + deactivationThreshold: VAD_DEACTIVATION_THRESHOLD, + debounceFrames: VAD_DEBOUNCE_FRAMES + }) +}); + +export { conversationSettingsSchema }; diff --git a/mods/common/src/assistants/eventsHookSchema.ts b/mods/common/src/assistants/eventsHookSchema.ts new file mode 100644 index 000000000..354959a6a --- /dev/null +++ b/mods/common/src/assistants/eventsHookSchema.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { AllowedHttpMethod } from "../utils/sendHttpRequest"; +import * as Messages from "../messages"; + +enum EventsHookAllowedEvents { + ALL = "all", + CONVERSATION_STARTED = "conversation.started", + CONVERSATION_ENDED = "conversation.ended" +} + +const eventsHookSchema = z.object({ + url: z.string().url({ message: Messages.VALID_URL }), + headers: z.record(z.string()).optional(), + events: z + .array(z.nativeEnum(EventsHookAllowedEvents)) + .min(1) + .default([EventsHookAllowedEvents.ALL]) +}); + +export { eventsHookSchema, EventsHookAllowedEvents }; diff --git a/mods/common/src/assistants/index.ts b/mods/common/src/assistants/index.ts new file mode 100644 index 000000000..c850940d0 --- /dev/null +++ b/mods/common/src/assistants/index.ts @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./tools"; +export * from "./assistantSchema"; +export * from "./LanguageModelProvider"; +export * from "./conversationSettingsSchema"; +export * from "./languageModelConfigSchema"; +export * from "./eventsHookSchema"; diff --git a/mods/common/src/assistants/languageModelConfigSchema.ts b/mods/common/src/assistants/languageModelConfigSchema.ts new file mode 100644 index 000000000..44d750bf8 --- /dev/null +++ b/mods/common/src/assistants/languageModelConfigSchema.ts @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { toolSchema } from "./tools"; +import { LanguageModelProvider } from "./LanguageModelProvider"; +import * as Messages from "../messages"; + +const NUMBER_BETWEEN_0_AND_2 = "Must be a number between 0 and 2"; + +const languageModelConfigSchema = z.object({ + provider: z.nativeEnum(LanguageModelProvider, { + message: "Invalid language model provider." + }), + apiKey: z.string().optional(), + model: z.string(), + temperature: z + .number() + .max(2, { message: NUMBER_BETWEEN_0_AND_2 }) + .min(0, { message: NUMBER_BETWEEN_0_AND_2 }), + maxTokens: z + .number() + .int({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .positive({ message: Messages.POSITIVE_INTEGER_MESSAGE }), + baseUrl: z + .string() + .url({ + message: Messages.VALID_URL + }) + .optional(), + knowledgeBase: z + .array( + z.object({ + type: z.enum(["s3"]), + title: z.string(), + document: z.string().regex(/\.pdf$/, { + message: "Document must be a pdf file" + }) + }) + ) + .default([]), + tools: z.array(toolSchema).default([]) +}); + +export { languageModelConfigSchema }; diff --git a/mods/common/src/assistants/testCasesSchema.ts b/mods/common/src/assistants/testCasesSchema.ts new file mode 100644 index 000000000..496533248 --- /dev/null +++ b/mods/common/src/assistants/testCasesSchema.ts @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { CallDirection } from "@fonoster/types"; + +const testCasesSchema = z.object({ + evalsLanguageModel: z.object({ + provider: z.enum(["openai"], { + message: + "Invalid language model provider. Only OpenAI is supported for evals." + }), + model: z.string(), + apiKey: z.string() + }), + evalsSystemPrompt: z.string().optional(), + scenarios: z.array( + z.object({ + ref: z.string(), + description: z.string(), + telephonyContext: z.object({ + callDirection: z.nativeEnum(CallDirection), + ingressNumber: z.string(), + callerNumber: z.string() + }), + conversation: z.array( + z.object({ + userInput: z.string(), + expected: z.object({ + text: z.object({ + type: z.enum(["exact", "similar"]), + response: z.string() + }), + tools: z + .array( + z.object({ + tool: z.string(), + parameters: z.record(z.string(), z.any()) + }) + ) + .optional() + }) + }) + ) + }) + ) +}); + +export { testCasesSchema }; diff --git a/mods/common/src/assistants/tools/index.ts b/mods/common/src/assistants/tools/index.ts new file mode 100644 index 000000000..a6587f022 --- /dev/null +++ b/mods/common/src/assistants/tools/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./toolSchema"; diff --git a/mods/common/src/assistants/tools/propertySchema.ts b/mods/common/src/assistants/tools/propertySchema.ts new file mode 100644 index 000000000..cf44e3ba7 --- /dev/null +++ b/mods/common/src/assistants/tools/propertySchema.ts @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; + +const propertySchema = z + .object({ + type: z.string(), + format: z.string().optional(), + pattern: z.string().optional() + }) + .refine( + (data) => { + return !("format" in data && "pattern" in data); + }, + { + message: "Property can only have either 'format' or 'pattern', not both." + } + ); + +export { propertySchema }; diff --git a/mods/common/src/assistants/tools/toolSchema.ts b/mods/common/src/assistants/tools/toolSchema.ts new file mode 100644 index 000000000..03c432969 --- /dev/null +++ b/mods/common/src/assistants/tools/toolSchema.ts @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { propertySchema } from "./propertySchema"; +import * as Messages from "../../messages"; +import { AllowedHttpMethod } from "../../utils/sendHttpRequest"; + +const toolSchema = z.object({ + name: z.string(), + description: z.string(), + parameters: z.object({ + type: z.enum(["object", "array"]), + properties: z.record(propertySchema), + required: z.array(z.string()).optional() + }), + requestStartMessage: z.string().optional(), + operation: z.object({ + method: z + .nativeEnum(AllowedHttpMethod, { + message: "Invalid method" + }) + .default(AllowedHttpMethod.GET), + url: z.string().url({ message: Messages.VALID_URL }), + waitForResponse: z.boolean().default(true), + headers: z.record(z.string()).optional() + }) +}); + +export { toolSchema }; diff --git a/mods/common/src/constants.ts b/mods/common/src/constants.ts new file mode 100644 index 000000000..4e42065a9 --- /dev/null +++ b/mods/common/src/constants.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ServingStatus } from "grpc-health-check"; + +export const GRPC_NOT_SERVING_STATUS = "NOT_SERVING" as ServingStatus; +export const GRPC_SERVING_STATUS = "SERVING" as ServingStatus; +export const STASIS_APP_NAME = "mediacontroller"; +export const CALL_DETAIL_RECORD_MEASUREMENT = "cdr"; +export const INFLUXDB_CALLS_BUCKET = "calls"; +export const APP_REF_HEADER = "x-app-ref"; +export const ROUTR_DEFAULT_PEER_AOR = "sip:voice@default"; +export const AUTOPILOT_SPECIAL_LOCAL_ADDRESS = "autopilot.fonoster.local"; +export const AUTOPILOT_INTERNAL_ADDRESS = "autopilot:50061"; +export const WELCOME_DEMO_SPECIAL_LOCAL_ADDRESS = "welcome.demo.fonoster.local"; diff --git a/mods/common/src/countryIsoCodes.ts b/mods/common/src/countryIsoCodes.ts new file mode 100644 index 000000000..e39cf8368 --- /dev/null +++ b/mods/common/src/countryIsoCodes.ts @@ -0,0 +1,215 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const countryIsoCodes = [ + { name: "Afghanistan", value: "AF" }, + { name: "Albania", value: "AL" }, + { name: "Algeria", value: "DZ" }, + { name: "Andorra", value: "AD" }, + { name: "Angola", value: "AO" }, + { name: "Antigua and Barbuda", value: "AG" }, + { name: "Argentina", value: "AR" }, + { name: "Armenia", value: "AM" }, + { name: "Australia", value: "AU" }, + { name: "Austria", value: "AT" }, + { name: "Azerbaijan", value: "AZ" }, + { name: "Bahamas", value: "BS" }, + { name: "Bahrain", value: "BH" }, + { name: "Bangladesh", value: "BD" }, + { name: "Barbados", value: "BB" }, + { name: "Belarus", value: "BY" }, + { name: "Belgium", value: "BE" }, + { name: "Belize", value: "BZ" }, + { name: "Benin", value: "BJ" }, + { name: "Bhutan", value: "BT" }, + { name: "Bolivia", value: "BO" }, + { name: "Bosnia and Herzegovina", value: "BA" }, + { name: "Botswana", value: "BW" }, + { name: "Brazil", value: "BR" }, + { name: "Brunei", value: "BN" }, + { name: "Bulgaria", value: "BG" }, + { name: "Burkina Faso", value: "BF" }, + { name: "Burundi", value: "BI" }, + { name: "Cabo Verde", value: "CV" }, + { name: "Cambodia", value: "KH" }, + { name: "Cameroon", value: "CM" }, + { name: "Canada", value: "CA" }, + { name: "Central African Republic", value: "CF" }, + { name: "Chad", value: "TD" }, + { name: "Chile", value: "CL" }, + { name: "China", value: "CN" }, + { name: "Colombia", value: "CO" }, + { name: "Comoros", value: "KM" }, + { name: "Congo (Congo-Brazzaville)", value: "CG" }, + { name: "Costa Rica", value: "CR" }, + { name: "Croatia", value: "HR" }, + { name: "Cuba", value: "CU" }, + { name: "Cyprus", value: "CY" }, + { name: "Czechia (Czech Republic)", value: "CZ" }, + { name: "Denmark", value: "DK" }, + { name: "Djibouti", value: "DJ" }, + { name: "Dominica", value: "DM" }, + { name: "Dominican Republic", value: "DO" }, + { name: "Ecuador", value: "EC" }, + { name: "Egypt", value: "EG" }, + { name: "El Salvador", value: "SV" }, + { name: "Equatorial Guinea", value: "GQ" }, + { name: "Eritrea", value: "ER" }, + { name: "Estonia", value: "EE" }, + { name: "Eswatini (fmr. 'Swaziland')", value: "SZ" }, + { name: "Ethiopia", value: "ET" }, + { name: "Fiji", value: "FJ" }, + { name: "Finland", value: "FI" }, + { name: "France", value: "FR" }, + { name: "Gabon", value: "GA" }, + { name: "Gambia", value: "GM" }, + { name: "Georgia", value: "GE" }, + { name: "Germany", value: "DE" }, + { name: "Ghana", value: "GH" }, + { name: "Greece", value: "GR" }, + { name: "Grenada", value: "GD" }, + { name: "Guatemala", value: "GT" }, + { name: "Guinea", value: "GN" }, + { name: "Guinea-Bissau", value: "GW" }, + { name: "Guyana", value: "GY" }, + { name: "Haiti", value: "HT" }, + { name: "Honduras", value: "HN" }, + { name: "Hungary", value: "HU" }, + { name: "Iceland", value: "IS" }, + { name: "India", value: "IN" }, + { name: "Indonesia", value: "ID" }, + { name: "Iran", value: "IR" }, + { name: "Iraq", value: "IQ" }, + { name: "Ireland", value: "IE" }, + { name: "Israel", value: "IL" }, + { name: "Italy", value: "IT" }, + { name: "Jamaica", value: "JM" }, + { name: "Japan", value: "JP" }, + { name: "Jordan", value: "JO" }, + { name: "Kazakhstan", value: "KZ" }, + { name: "Kenya", value: "KE" }, + { name: "Kiribati", value: "KI" }, + { name: "Kuwait", value: "KW" }, + { name: "Kyrgyzstan", value: "KG" }, + { name: "Laos", value: "LA" }, + { name: "Latvia", value: "LV" }, + { name: "Lebanon", value: "LB" }, + { name: "Lesotho", value: "LS" }, + { name: "Liberia", value: "LR" }, + { name: "Libya", value: "LY" }, + { name: "Liechtenstein", value: "LI" }, + { name: "Lithuania", value: "LT" }, + { name: "Luxembourg", value: "LU" }, + { name: "Madagascar", value: "MG" }, + { name: "Malawi", value: "MW" }, + { name: "Malaysia", value: "MY" }, + { name: "Maldives", value: "MV" }, + { name: "Mali", value: "ML" }, + { name: "Malta", value: "MT" }, + { name: "Marshall Islands", value: "MH" }, + { name: "Mauritania", value: "MR" }, + { name: "Mauritius", value: "MU" }, + { name: "Mexico", value: "MX" }, + { name: "Micronesia", value: "FM" }, + { name: "Moldova", value: "MD" }, + { name: "Monaco", value: "MC" }, + { name: "Mongolia", value: "MN" }, + { name: "Montenegro", value: "ME" }, + { name: "Morocco", value: "MA" }, + { name: "Mozambique", value: "MZ" }, + { name: "Myanmar (formerly Burma)", value: "MM" }, + { name: "Namibia", value: "NA" }, + { name: "Nauru", value: "NR" }, + { name: "Nepal", value: "NP" }, + { name: "Netherlands", value: "NL" }, + { name: "New Zealand", value: "NZ" }, + { name: "Nicaragua", value: "NI" }, + { name: "Niger", value: "NE" }, + { name: "Nigeria", value: "NG" }, + { name: "North Korea", value: "KP" }, + { name: "North Macedonia", value: "MK" }, + { name: "Norway", value: "NO" }, + { name: "Oman", value: "OM" }, + { name: "Pakistan", value: "PK" }, + { name: "Palau", value: "PW" }, + { name: "Palestine State", value: "PS" }, + { name: "Panama", value: "PA" }, + { name: "Papua New Guinea", value: "PG" }, + { name: "Paraguay", value: "PY" }, + { name: "Peru", value: "PE" }, + { name: "Philippines", value: "PH" }, + { name: "Poland", value: "PL" }, + { name: "Portugal", value: "PT" }, + { name: "Qatar", value: "QA" }, + { name: "Romania", value: "RO" }, + { name: "Russia", value: "RU" }, + { name: "Rwanda", value: "RW" }, + { name: "Saint Kitts and Nevis", value: "KN" }, + { name: "Saint Lucia", value: "LC" }, + { name: "Saint Vincent and the Grenadines", value: "VC" }, + { name: "Samoa", value: "WS" }, + { name: "San Marino", value: "SM" }, + { name: "Sao Tome and Principe", value: "ST" }, + { name: "Saudi Arabia", value: "SA" }, + { name: "Senegal", value: "SN" }, + { name: "Serbia", value: "RS" }, + { name: "Seychelles", value: "SC" }, + { name: "Sierra Leone", value: "SL" }, + { name: "Singapore", value: "SG" }, + { name: "Slovakia", value: "SK" }, + { name: "Slovenia", value: "SI" }, + { name: "Solomon Islands", value: "SB" }, + { name: "Somalia", value: "SO" }, + { name: "South Africa", value: "ZA" }, + { name: "South Korea", value: "KR" }, + { name: "South Sudan", value: "SS" }, + { name: "Spain", value: "ES" }, + { name: "Sri Lanka", value: "LK" }, + { name: "Sudan", value: "SD" }, + { name: "Suriname", value: "SR" }, + { name: "Sweden", value: "SE" }, + { name: "Switzerland", value: "CH" }, + { name: "Syria", value: "SY" }, + { name: "Tajikistan", value: "TJ" }, + { name: "Tanzania", value: "TZ" }, + { name: "Thailand", value: "TH" }, + { name: "Timor-Leste", value: "TL" }, + { name: "Togo", value: "TG" }, + { name: "Tonga", value: "TO" }, + { name: "Trinidad and Tobago", value: "TT" }, + { name: "Tunisia", value: "TN" }, + { name: "Turkey", value: "TR" }, + { name: "Turkmenistan", value: "TM" }, + { name: "Tuvalu", value: "TV" }, + { name: "Uganda", value: "UG" }, + { name: "Ukraine", value: "UA" }, + { name: "United Arab Emirates", value: "AE" }, + { name: "United Kingdom", value: "GB" }, + { name: "United States", value: "US" }, + { name: "Uruguay", value: "UY" }, + { name: "Uzbekistan", value: "UZ" }, + { name: "Vanuatu", value: "VU" }, + { name: "Vatican City", value: "VA" }, + { name: "Venezuela", value: "VE" }, + { name: "Vietnam", value: "VN" }, + { name: "Yemen", value: "YE" }, + { name: "Zambia", value: "ZM" }, + { name: "Zimbabwe", value: "ZW" } +]; + +export { countryIsoCodes }; diff --git a/mods/common/src/env_is_set.ts b/mods/common/src/env_is_set.ts deleted file mode 100644 index 72af6a98d..000000000 --- a/mods/common/src/env_is_set.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import logger from "@fonoster/logger"; - -export default function assertEnvIsSet(name: string) { - const register = require(process.env.SERVICES_ENVS || - "/home/fonoster/service_envs.json"); - const services = register.filter((service: any) => service.module === name); - for (const value of services) { - value.env.forEach(function (variable: string) { - if (!(variable in process.env)) { - logger.error( - `The environment variable ${variable} is required but was not found` - ); - process.exit(1); - } - }); - } -} diff --git a/mods/common/src/envs.ts b/mods/common/src/envs.ts new file mode 100644 index 000000000..49a7e88a9 --- /dev/null +++ b/mods/common/src/envs.ts @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { join } from "path"; +import dotenv from "dotenv"; + +if (process.env.NODE_ENV === "dev") { + dotenv.config({ path: join(__dirname, "..", "..", "..", ".env") }); +} + +const e = process.env; + +export const ROOT_DOMAIN = e.ROOT_DOMAIN || "fonoster.local"; diff --git a/mods/common/src/errors/PrismaErrorEnum.ts b/mods/common/src/errors/PrismaErrorEnum.ts new file mode 100644 index 000000000..7d672b17d --- /dev/null +++ b/mods/common/src/errors/PrismaErrorEnum.ts @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +enum PrismaErrorEnum { + RECORD_ALREADY_EXISTS = "P2002", + RECORD_NOT_FOUND = "P2025" +} + +export { PrismaErrorEnum }; diff --git a/mods/common/src/errors/handleError.ts b/mods/common/src/errors/handleError.ts new file mode 100644 index 000000000..c04b6868c --- /dev/null +++ b/mods/common/src/errors/handleError.ts @@ -0,0 +1,101 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import * as grpc from "@grpc/grpc-js"; +import { status } from "@grpc/grpc-js"; +import { z } from "zod"; +import { handleZodError } from "./handleZodError"; +import { PrismaErrorEnum } from "./PrismaErrorEnum"; +import { GrpcErrorMessage } from "./types"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function handleError( + error: Error | { code: string; message: string }, + callback: (error: GrpcErrorMessage) => void +) { + if (error instanceof z.ZodError) { + handleZodError(error, callback); + return; + } + + const { code, message } = error as { code: string | number; message: string }; + + const logAndCallback = ( + errorCode: number, + errorMessage: string, + logMessage: string + ) => { + logger.error(logMessage, { message: errorMessage }); + + const messageParts = errorMessage.split(":"); + let effectiveErrorMessage = errorMessage; + + if (errorCode === status.NOT_FOUND && messageParts.length > 1) { + effectiveErrorMessage = `Resource not found: ${messageParts[messageParts.length - 1].trim()}`; + } + + callback({ code: errorCode, message: effectiveErrorMessage }); + }; + + switch (code) { + case PrismaErrorEnum.RECORD_ALREADY_EXISTS: + case grpc.status.ALREADY_EXISTS: + logAndCallback( + status.ALREADY_EXISTS, + "The resource already exists", + "duplicated entity error" + ); + break; + case PrismaErrorEnum.RECORD_NOT_FOUND: + case grpc.status.NOT_FOUND: + logAndCallback( + status.NOT_FOUND, + "The requested resource was not found", + "not found error" + ); + break; + case grpc.status.PERMISSION_DENIED: + logAndCallback( + status.PERMISSION_DENIED, + "You don't have permission to perform this action", + "permission denied error" + ); + break; + case grpc.status.UNAUTHENTICATED: + logAndCallback( + status.UNAUTHENTICATED, + "You need to be authenticated to perform this action", + "unauthenticated error" + ); + break; + case grpc.status.INVALID_ARGUMENT: + logAndCallback( + status.INVALID_ARGUMENT, + message ?? "Your request has one or more invalid arguments", + "invalid argument error" + ); + break; + default: + logger.error("internal server error:", error); + callback({ code: status.INTERNAL, message: "Internal server error" }); + } +} + +export { handleError }; diff --git a/mods/common/src/errors/handleZodError.ts b/mods/common/src/errors/handleZodError.ts new file mode 100644 index 000000000..c967f1e02 --- /dev/null +++ b/mods/common/src/errors/handleZodError.ts @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { status } from "@grpc/grpc-js"; +import { z } from "zod"; +import { fromError } from "zod-validation-error"; +import { GrpcErrorMessage } from "../errors"; + +const logger = getLogger({ service: "apiserver", filePath: __filename }); + +function handleZodError( + error: z.ZodError, + callback: (error: GrpcErrorMessage) => void +) { + if (error?.issues[0].code === "custom") { + const message = error?.issues[0].message; + logger.error("custom validation error", { message }); + callback({ code: status.INVALID_ARGUMENT, message }); + } else { + const validationError = fromError(error, { + prefix: null + }); + logger.error("Error:", { message: validationError.toString() }); + callback({ + code: status.INVALID_ARGUMENT, + message: validationError.toString() + }); + } +} + +export { handleZodError }; diff --git a/mods/common/src/errors/index.ts b/mods/common/src/errors/index.ts new file mode 100644 index 000000000..333cd91f2 --- /dev/null +++ b/mods/common/src/errors/index.ts @@ -0,0 +1,22 @@ +export * from "./PrismaErrorEnum"; +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./handleError"; +export * from "./handleZodError"; +export * from "./types"; diff --git a/mods/common/src/errors/types.ts b/mods/common/src/errors/types.ts new file mode 100644 index 000000000..36b9610c5 --- /dev/null +++ b/mods/common/src/errors/types.ts @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type GrpcErrorMessage = { + code: number; + message: string; +}; + +export { GrpcErrorMessage }; diff --git a/mods/common/src/grpcStatusMap.ts b/mods/common/src/grpcStatusMap.ts new file mode 100644 index 000000000..f6858b96e --- /dev/null +++ b/mods/common/src/grpcStatusMap.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { GRPC_NOT_SERVING_STATUS } from "./constants"; + +const statusMap = { + // By convention, the empty string represents the entire server + "": GRPC_NOT_SERVING_STATUS +}; + +export { statusMap }; diff --git a/mods/common/src/healthcheck.ts b/mods/common/src/healthcheck.ts deleted file mode 100644 index a914b4bf1..000000000 --- a/mods/common/src/healthcheck.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* eslint-disable require-jsdoc */ -import { checker } from "@fonoster/grpc-health-check"; - -const host = process.env.SERVICE_ADDRESS || "localhost"; -const port = parseInt(process.env.SERVICE_PORT) || 50052; -const service = process.env.SERVICE_NAME || ""; - -export default async () => checker(service, `${host}:${port}`); diff --git a/mods/common/src/identity/createAuthInterceptor.ts b/mods/common/src/identity/createAuthInterceptor.ts new file mode 100644 index 000000000..bf686c4e0 --- /dev/null +++ b/mods/common/src/identity/createAuthInterceptor.ts @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { workspaceAccess } from "./roles"; +import { getAccessKeyIdFromCall } from "./getAccessKeyIdFromCall"; +import { getTokenFromCall } from "./getTokenFromCall"; +import { isValidToken } from "./isValidToken"; +import { decodeToken } from "./decodeToken"; +import { hasAccess } from "./hasAccess"; +import { Access, TokenUseEnum } from "./types"; +import { tokenHasAccessKeyId } from "./tokenHasAccessKeyId"; +import { permissionDeniedError, unauthenticatedError } from "./errors"; + +const logger = getLogger({ service: "common", filePath: __filename }); + +/** + * This function is a gRPC interceptor that checks if the request is valid + * and if the user has the right permissions to access the resource. When + * validating the request, the function will check if the request is in the + * skip list, if the token is valid and if the role is allowed by the RBAC. + * + * @param {string} identityPublicKey - The public key to validate the token + * @param {string[]} publicPath - The list of public paths + * @return {Function} - The gRPC interceptor + */ +function createAuthInterceptor( + identityPublicKey: string, + publicPath: string[] +) { + /** + * Inner function that will be called by the gRPC server. + * + * @param {object} methodDefinition - The method definition + * @param {string} methodDefinition.path - The path of the gRPC method + * @param {ServerInterceptingCall} call - The call object + * @return {ServerInterceptingCall} - The modified call object + */ + return (methodDefinition: { path: string }, call: ServerInterceptingCall) => { + const { path } = methodDefinition; + + const accessKeyId = getAccessKeyIdFromCall(call); + + logger.verbose("intercepting api call to path", { accessKeyId, path }); + + if (publicPath.includes(methodDefinition.path)) { + logger.verbose("passing auth control to edge function", { path }); + return call; + } + + const token = getTokenFromCall(call); + + logger.verbose("validating token", { accessKeyId, path }); + + if (!isValidToken(token, identityPublicKey)) { + return unauthenticatedError(call); + } + + const decodedToken = decodeToken(token) as { + access: Access[]; + accessKeyId: string; + }; + + logger.verbose("checking access for accessKeyId", { + accessKeyId, + path, + hasAccess: hasAccess(decodedToken.access, path), + pathIsWorkspacePath: workspaceAccess.includes(path), + tokenHasAccessKeyId: tokenHasAccessKeyId(token, accessKeyId) + }); + + if ( + !hasAccess(decodedToken.access, path) || + (workspaceAccess.includes(path) && + !tokenHasAccessKeyId(token, accessKeyId)) + ) { + return permissionDeniedError(call); + } + + return call; + }; +} + +export { createAuthInterceptor }; diff --git a/mods/common/src/identity/decodeToken.ts b/mods/common/src/identity/decodeToken.ts new file mode 100644 index 000000000..912e14e13 --- /dev/null +++ b/mods/common/src/identity/decodeToken.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { jwtDecode } from "jwt-decode"; +import { TokenUseEnum, DecodedToken } from "./types"; + +function decodeToken(token: string): DecodedToken { + return jwtDecode(token); +} + +export { decodeToken }; diff --git a/mods/common/src/identity/errors.ts b/mods/common/src/identity/errors.ts new file mode 100644 index 000000000..05ebeb43a --- /dev/null +++ b/mods/common/src/identity/errors.ts @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ServerInterceptingCall, status } from "@grpc/grpc-js"; +import { createInterceptingCall } from "../utils"; + +const unauthenticatedError = (call: ServerInterceptingCall) => + createInterceptingCall({ + call, + code: status.UNAUTHENTICATED, + details: "Invalid or expired token" + }); + +const permissionDeniedError = (call: ServerInterceptingCall) => + createInterceptingCall({ + call, + code: status.PERMISSION_DENIED, + details: "Permission denied" + }); + +export { permissionDeniedError, unauthenticatedError }; diff --git a/mods/common/src/identity/getAccessKeyIdFromCall.ts b/mods/common/src/identity/getAccessKeyIdFromCall.ts new file mode 100644 index 000000000..973786690 --- /dev/null +++ b/mods/common/src/identity/getAccessKeyIdFromCall.ts @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Metadata, ServerInterceptingCall } from "@grpc/grpc-js"; + +function getAccessKeyIdFromCall(call: ServerInterceptingCall) { + const metadata = ( + call as unknown as { metadata: Metadata } + ).metadata.getMap(); + + return metadata["accesskeyid"]?.toString(); +} + +export { getAccessKeyIdFromCall }; diff --git a/mods/common/src/identity/getPublicKey.ts b/mods/common/src/identity/getPublicKey.ts new file mode 100644 index 000000000..0410f3db8 --- /dev/null +++ b/mods/common/src/identity/getPublicKey.ts @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import { createServiceDefinition } from "../utils"; + +type GetPublicKeyResponse = { + publicKey: string; +}; + +const IdentityServiceClient = grpc.makeGenericClientConstructor( + createServiceDefinition({ + serviceName: "Identity", + pckg: "identity", + proto: "identity.proto", + version: "v1beta2" + }), + "", + {} +); + +function getPublicKey(endpoint: string, allowInsecure: boolean = false) { + return new Promise((resolve, reject) => { + const client = new IdentityServiceClient( + endpoint, + allowInsecure + ? grpc.credentials.createInsecure() + : grpc.credentials.createSsl() + ); + + client.getPublicKey( + {}, + (error: grpc.ServiceError, response: GetPublicKeyResponse) => { + if (error) { + reject(error); + } else { + resolve(response); + } + } + ); + }); +} + +export { getPublicKey }; diff --git a/mods/common/src/identity/getTokenFromCall.ts b/mods/common/src/identity/getTokenFromCall.ts new file mode 100644 index 000000000..b60edba91 --- /dev/null +++ b/mods/common/src/identity/getTokenFromCall.ts @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Metadata, ServerInterceptingCall } from "@grpc/grpc-js"; + +function getTokenFromCall(call: ServerInterceptingCall) { + const metadata = ( + call as unknown as { metadata: Metadata } + ).metadata.getMap(); + + return metadata["token"]?.toString(); +} + +export { getTokenFromCall }; diff --git a/mods/common/src/identity/hasAccess.ts b/mods/common/src/identity/hasAccess.ts new file mode 100644 index 000000000..3e1523a93 --- /dev/null +++ b/mods/common/src/identity/hasAccess.ts @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Access, Role } from "./types"; +import { roles } from "./roles"; + +// This function only checks if the role has access to the grpc method +function hasAccess(access: Access[], method: string) { + const roleList = access.map((a: Access) => a.role); + + return roleList.some((r: string) => + roles.find((role: Role) => role.name === r && role.access.includes(method)) + ); +} + +export { hasAccess }; diff --git a/mods/common/src/identity/index.ts b/mods/common/src/identity/index.ts new file mode 100644 index 000000000..75b1ab4f5 --- /dev/null +++ b/mods/common/src/identity/index.ts @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./createAuthInterceptor"; +export * from "./decodeToken"; +export * from "./getPublicKey"; +export * from "./getAccessKeyIdFromCall"; +export * from "./getTokenFromCall"; +export * from "./hasAccess"; +export * from "./isValidToken"; +export * from "./types"; +export * from "./roles"; diff --git a/mods/common/src/identity/isValidToken.ts b/mods/common/src/identity/isValidToken.ts new file mode 100644 index 000000000..56e4dc2ee --- /dev/null +++ b/mods/common/src/identity/isValidToken.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import jwt from "jsonwebtoken"; +import { JsonWebErrorEnum } from "./types"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function isValidToken(token: string, secret: string): boolean { + try { + const decoded = jwt.verify(token, secret) as { exp: number }; + const currentTime = Math.floor(Date.now() / 1000); + + if (decoded.exp <= currentTime) { + logger.verbose("token expired", { exp: decoded.exp, currentTime }); + return false; + } + + return true; + } catch (error) { + if (error.name === JsonWebErrorEnum.JsonWebTokenError) { + logger.verbose("invalid JWT token", { token }); + } else if (error.name === JsonWebErrorEnum.TokenExpiredError) { + logger.verbose("token expired", { token }); + } else { + logger.verbose("unexpected JWT error:", error); + } + + return false; + } +} + +export { isValidToken }; diff --git a/mods/common/src/identity/roles.ts b/mods/common/src/identity/roles.ts new file mode 100644 index 000000000..6f7d3ac08 --- /dev/null +++ b/mods/common/src/identity/roles.ts @@ -0,0 +1,133 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ApiRoleEnum, WorkspaceRoleEnum } from "@fonoster/types"; +import { Role } from "./types"; + +const VOICE_SERVICE_ROLE = "VOICE_SERVICE"; + +const workspaceAccess = [ + "/fonoster.applications.v1beta2.Applications/CreateApplication", + "/fonoster.applications.v1beta2.Applications/UpdateApplication", + "/fonoster.applications.v1beta2.Applications/GetApplication", + "/fonoster.applications.v1beta2.Applications/DeleteApplication", + "/fonoster.applications.v1beta2.Applications/ListApplications", + "/fonoster.agents.v1beta2.Agents/CreateAgent", + "/fonoster.agents.v1beta2.Agents/UpdateAgent", + "/fonoster.agents.v1beta2.Agents/GetAgent", + "/fonoster.agents.v1beta2.Agents/DeleteAgent", + "/fonoster.agents.v1beta2.Agents/ListAgents", + "/fonoster.acls.v1beta2.Acls/CreateAcl", + "/fonoster.acls.v1beta2.Acls/UpdateAcl", + "/fonoster.acls.v1beta2.Acls/ListAcls", + "/fonoster.acls.v1beta2.Acls/GetAcl", + "/fonoster.acls.v1beta2.Acls/DeleteAcl", + "/fonoster.credentials.v1beta2.CredentialsService/CreateCredentials", + "/fonoster.credentials.v1beta2.CredentialsService/UpdateCredentials", + "/fonoster.credentials.v1beta2.CredentialsService/GetCredentials", + "/fonoster.credentials.v1beta2.CredentialsService/DeleteCredentials", + "/fonoster.credentials.v1beta2.CredentialsService/ListCredentials", + "/fonoster.domains.v1beta2.Domains/CreateDomain", + "/fonoster.domains.v1beta2.Domains/UpdateDomain", + "/fonoster.domains.v1beta2.Domains/GetDomain", + "/fonoster.domains.v1beta2.Domains/DeleteDomain", + "/fonoster.domains.v1beta2.Domains/ListDomains", + "/fonoster.trunks.v1beta2.Trunks/CreateTrunk", + "/fonoster.trunks.v1beta2.Trunks/UpdateTrunk", + "/fonoster.trunks.v1beta2.Trunks/GetTrunk", + "/fonoster.trunks.v1beta2.Trunks/DeleteTrunk", + "/fonoster.trunks.v1beta2.Trunks/ListTrunks", + "/fonoster.numbers.v1beta2.Numbers/CreateNumber", + "/fonoster.numbers.v1beta2.Numbers/UpdateNumber", + "/fonoster.numbers.v1beta2.Numbers/GetNumber", + "/fonoster.numbers.v1beta2.Numbers/DeleteNumber", + "/fonoster.numbers.v1beta2.Numbers/ListNumbers", + "/fonoster.secrets.v1beta2.Secrets/CreateSecret", + "/fonoster.secrets.v1beta2.Secrets/UpdateSecret", + "/fonoster.secrets.v1beta2.Secrets/GetSecret", + "/fonoster.secrets.v1beta2.Secrets/DeleteSecret", + "/fonoster.secrets.v1beta2.Secrets/ListSecrets", + "/fonoster.calls.v1beta2.Calls/CreateCall", + "/fonoster.calls.v1beta2.Calls/ListCalls", + "/fonoster.calls.v1beta2.Calls/GetCall", + "/fonoster.calls.v1beta2.Calls/TrackCall", + "/fonoster.voice.v1beta2.Voice/CreateSession" +]; + +const fullIdentityAccess = [ + "/fonoster.identity.v1beta2.Identity/GetUser", + "/fonoster.identity.v1beta2.Identity/UpdateUser", + "/fonoster.identity.v1beta2.Identity/DeleteUser", + "/fonoster.identity.v1beta2.Identity/CreateWorkspace", + "/fonoster.identity.v1beta2.Identity/GetWorkspace", + "/fonoster.identity.v1beta2.Identity/UpdateWorkspace", + "/fonoster.identity.v1beta2.Identity/ListWorkspaces", + "/fonoster.identity.v1beta2.Identity/DeleteWorkspace", + "/fonoster.identity.v1beta2.Identity/InviteUserToWorkspace", + "/fonoster.identity.v1beta2.Identity/RemoveUserFromWorkspace", + "/fonoster.identity.v1beta2.Identity/ResendWorkspaceMembershipInvitation", + "/fonoster.identity.v1beta2.Identity/RefreshToken", + "/fonoster.identity.v1beta2.Identity/CreateApiKey", + "/fonoster.identity.v1beta2.Identity/DeleteApiKey", + "/fonoster.identity.v1beta2.Identity/ListApiKeys", + "/fonoster.identity.v1beta2.Identity/RegenerateApiKey" +]; + +const roles = [ + { + name: WorkspaceRoleEnum.OWNER, + description: "Access to all endpoints", + access: [...fullIdentityAccess, ...workspaceAccess] + }, + { + name: WorkspaceRoleEnum.ADMIN, + description: "Access to all endpoints", + access: [...fullIdentityAccess, ...workspaceAccess] + }, + { + name: WorkspaceRoleEnum.USER, + description: "Access to User and Workspace endpoints", + access: [ + "/fonoster.identity.v1beta2.Identity/GetUser", + "/fonoster.identity.v1beta2.Identity/UpdateUser", + "/fonoster.identity.v1beta2.Identity/DeleteUser", + "/fonoster.identity.v1beta2.Identity/CreateWorkspace", + "/fonoster.identity.v1beta2.Identity/GetWorkspace", + "/fonoster.identity.v1beta2.Identity/UpdateWorkspace", + "/fonoster.identity.v1beta2.Identity/ListWorkspaces", + "/fonoster.identity.v1beta2.Identity/RefreshToken", + ...workspaceAccess + ] + }, + { + name: ApiRoleEnum.WORKSPACE_ADMIN, + description: "Access to all endpoints", + access: [...fullIdentityAccess, ...workspaceAccess] + }, + { + name: VOICE_SERVICE_ROLE, + description: "Role with access only to the Voice service endpoint", + access: [ + "/fonoster.voice.v1beta2.Voice/CreateSession", + "/fonoster.applications.v1beta2.Applications/GetApplication" + ] + } +] as Role[]; + +export { VOICE_SERVICE_ROLE, roles, workspaceAccess }; diff --git a/mods/common/src/identity/tokenHasAccessKeyId.ts b/mods/common/src/identity/tokenHasAccessKeyId.ts new file mode 100644 index 000000000..a270de15a --- /dev/null +++ b/mods/common/src/identity/tokenHasAccessKeyId.ts @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Access, decodeToken, TokenUseEnum } from "."; + +function tokenHasAccessKeyId(token: string, accessKeyId: string) { + const decodedToken = decodeToken(token); + const accessKeyIds = decodedToken.access?.map((a: Access) => a.accessKeyId); + return accessKeyIds.includes(accessKeyId); +} + +export { tokenHasAccessKeyId }; diff --git a/mods/common/src/identity/types.ts b/mods/common/src/identity/types.ts new file mode 100644 index 000000000..901160a84 --- /dev/null +++ b/mods/common/src/identity/types.ts @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { WorkspaceRoleEnum } from "@fonoster/types"; + +enum TokenUseEnum { + ID = "id", + ACCESS = "access", + REFRESH = "refresh" +} + +enum JsonWebErrorEnum { + JsonWebTokenError = "JsonWebTokenError", + TokenExpiredError = "TokenExpiredError" +} + +type Role = { + name: string; + description: string; + access: string[]; +}; + +type Access = { + accessKeyId: string; + role: WorkspaceRoleEnum; +}; + +type BaseToken = { + iss: string; + sub: string; + aud: string; + exp: number; + iat: number; + tokenUse: TokenUseEnum; + accessKeyId: string; +}; + +type IdToken = BaseToken & { + emailVerified: boolean; + phoneNumberVerified: boolean; + phoneNumber: string; + email: string; + tokenUse: TokenUseEnum.ID; +}; + +type AccessToken = BaseToken & { + access: Access[]; + tokenUse: TokenUseEnum.ACCESS; +}; + +type RefreshToken = BaseToken & { + tokenUse: TokenUseEnum.REFRESH; +}; + +type DecodedToken = T extends TokenUseEnum.ID + ? IdToken + : T extends TokenUseEnum.ACCESS + ? AccessToken + : T extends TokenUseEnum.REFRESH + ? TokenUseEnum + : never; + +export { + Access, + AccessToken, + DecodedToken, + IdToken, + RefreshToken, + Role, + TokenUseEnum, + JsonWebErrorEnum +}; diff --git a/mods/common/src/index.ts b/mods/common/src/index.ts index ba0e4518f..6379ebc13 100644 --- a/mods/common/src/index.ts +++ b/mods/common/src/index.ts @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) * http://github.com/fonoster/fonoster * * This file is part of Fonoster @@ -16,33 +16,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import APIClient from "./api_client"; -import WebAPIClient from "./web_client"; -import { ClientOptions, WebClientOptions } from "./types"; -import { getClientCredentials, getServerCredentials } from "./trust_util"; -import healthcheck from "./healthcheck"; -import runServices from "./service_runner"; -import { Plugin } from "./speech/plugin"; -import { - SpeechProvider, - SpeechTracker, - SpeechResult, - StreamSpeechResult -} from "./speech/types"; -export * as Tracer from "./tracer"; - -export { - APIClient, - WebAPIClient, - WebClientOptions, - ClientOptions, - Plugin, - SpeechTracker, - SpeechResult, - SpeechProvider, - StreamSpeechResult, - getClientCredentials, - getServerCredentials, - runServices, - healthcheck -}; +export * from "./assistants"; +export * from "./GrpcError"; +export * from "./constants"; +export * from "./errors"; +export * from "./grpcStatusMap"; +export * as Messages from "./messages"; +export * from "./messages"; +export * from "./notifications"; +export * from "./tts"; +export * from "./types"; +export * from "./utils"; +export * as Validators from "./validators"; +export * from "./validators"; +export * from "./voice"; +export * from "./countryIsoCodes"; +export * from "./identity"; diff --git a/mods/common/src/messages.ts b/mods/common/src/messages.ts new file mode 100644 index 000000000..a92113eb4 --- /dev/null +++ b/mods/common/src/messages.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export const MUST_BE_A_SINGLE_CHARACTER = "Must be a single character"; +export const MUST_BE_A_STRING = "Must be a string"; +export const POSITIVE_INTEGER_MESSAGE = "Must be a positive number"; +export const VALID_DATE = "The date must be a valid ISO 8601"; +export const VALID_DTMF = "Must be a valid DTMF"; +export const VALID_LANGUAGE_CODE = "Must be a valid language code"; +export const VALID_URL = "Must be a valid URL"; +export const VALID_UUID = "Must be a valid UUID"; diff --git a/mods/common/src/notifications/compileTemplate.ts b/mods/common/src/notifications/compileTemplate.ts new file mode 100644 index 000000000..19c4a1854 --- /dev/null +++ b/mods/common/src/notifications/compileTemplate.ts @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fs from "fs"; +import handlebars from "handlebars"; + +type CompileTemplateParams = { + filePath: string; + data: Record; +}; + +function compileTemplate(params: CompileTemplateParams) { + const { filePath, data } = params; + + if (!fs.existsSync(filePath)) { + throw new Error(`Template file not found: ${filePath}`); + } + + const source = fs.readFileSync(filePath, "utf-8").toString(); + const template = handlebars.compile(source); + return template(data); +} + +export { CompileTemplateParams, compileTemplate }; diff --git a/mods/common/src/notifications/createSendEmail.ts b/mods/common/src/notifications/createSendEmail.ts new file mode 100644 index 000000000..503bd8bd8 --- /dev/null +++ b/mods/common/src/notifications/createSendEmail.ts @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { createTransport } from "nodemailer"; +import { EmailParams, EmailSenderConfig } from "./types"; + +const logger = getLogger({ service: "common", filePath: __filename }); + +function createSendEmail(config: EmailSenderConfig) { + const { sender, host, port, secure, auth } = config; + const transporter = createTransport({ + host, + port, + secure, + auth + }); + + return async function sendEmail(params: EmailParams): Promise { + const { to, subject, html } = params; + + const info = await transporter.sendMail({ + from: sender, + to, + subject, + html + }); + + logger.verbose(`message sent: ${info.messageId}`); + }; +} + +export { createSendEmail }; diff --git a/mods/common/src/notifications/createSendSmsTwilioImpl.ts b/mods/common/src/notifications/createSendSmsTwilioImpl.ts new file mode 100644 index 000000000..e3eca78b5 --- /dev/null +++ b/mods/common/src/notifications/createSendSmsTwilioImpl.ts @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import twilio from "twilio"; +import { SmsParams, TwilioSmsSenderConfig } from "./types"; + +const logger = getLogger({ service: "common", filePath: __filename }); + +function createSendSmsTwilioImpl(config: TwilioSmsSenderConfig) { + const { sender: from, accountSid, authToken } = config; + const client = twilio(accountSid, authToken); + + return async function sendSms(params: SmsParams): Promise { + const { to, body } = params; + + const result = await client.messages.create({ + body, + from, + to + }); + + logger.verbose("message sent", { + status: result.status, + messageId: result.sid + }); + }; +} + +export { createSendSmsTwilioImpl }; diff --git a/mods/common/src/notifications/index.ts b/mods/common/src/notifications/index.ts new file mode 100644 index 000000000..47f7297db --- /dev/null +++ b/mods/common/src/notifications/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./compileTemplate"; +export * from "./createSendEmail"; +export * from "./createSendSmsTwilioImpl"; +export * from "./types"; diff --git a/mods/common/src/notifications/types.ts b/mods/common/src/notifications/types.ts new file mode 100644 index 000000000..c99658c66 --- /dev/null +++ b/mods/common/src/notifications/types.ts @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type EmailSenderConfig = { + sender: string; + host: string; + port: number; + secure: boolean; + auth: { + user: string; + pass: string; + }; +}; + +type EmailParams = { + to: string; + subject: string; + html: string; +}; + +type SmsSenderConfig = { + sender: string; +}; + +type TwilioSmsSenderConfig = SmsSenderConfig & { + accountSid: string; + authToken: string; +}; + +type SmsParams = { + to: string; + body: string; +}; + +export { + EmailParams, + EmailSenderConfig, + SmsParams, + SmsSenderConfig, + TwilioSmsSenderConfig +}; diff --git a/mods/common/src/protos/acls.proto b/mods/common/src/protos/acls.proto new file mode 100644 index 000000000..081c4133b --- /dev/null +++ b/mods/common/src/protos/acls.proto @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +syntax = "proto3"; + +package fonoster.acls.v1beta2; + +// AccessControlList(Acl) service definition +service Acls { + // Create a new Acl + rpc CreateAcl (CreateAclRequest) returns (CreateAclResponse) {} + // Update an existing Acl + rpc UpdateAcl (UpdateAclRequest) returns (UpdateAclResponse) {} + // Get an existing Acl + rpc GetAcl (GetAclRequest) returns (Acl) {} + // Delete an existing Acl + rpc DeleteAcl (DeleteAclRequest) returns (DeleteAclResponse) {} + // Get a list of Acls + rpc ListAcls (ListAclsRequest) returns (ListAclsResponse) {} +} + +// The message for Acl resource +message Acl { + // The Acl reference + string ref = 1; + // A friendly name for the Acl + string name = 2; + // The list of allowed IP addresses + repeated string allow = 3; + // The date the Acl was created + int32 created_at = 4; + // The date the Acl was last updated + int32 updated_at = 5; +} + +// The request message for the Acl.CreateAcl method +message CreateAclRequest { + // A friendly name for the Acl + string name = 1; + // The list of allowed IP addresses + repeated string allow = 2; +} + +// The response message for the Acl.CreateAcl method +message CreateAclResponse { + // The Acl reference + string ref = 1; +} + +// The request message for the Acl.UpdateAcl method +message UpdateAclRequest { + // The Acl reference + string ref = 1; + // A friendly name for the Acl + string name = 2; + // The list of allowed IP addresses + repeated string allow = 3; +} + +// The response message for the Acl.UpdateAcl method +message UpdateAclResponse { + // The Acl reference + string ref = 1; +} + +// The request message for the Acl.GetAcl method +message GetAclRequest { + // The Acl reference + string ref = 1; +} + +// The request message for the Acl.DeleteAcl method +message DeleteAclRequest { + // The Acl reference + string ref = 1; +} + +// The response message for the Acl.DeleteAcl method +message DeleteAclResponse { + // The Acl reference + string ref = 1; +} + +// The request message for the Acl.ListAcl method +message ListAclsRequest { + // The maximum number of items in the list + int32 page_size = 1; + // The next_page_token value returned from the previous request, if any + string page_token = 2; +} + +// The response message for the Acl.ListAcl method +message ListAclsResponse { + // List of items + repeated Acl items = 1; + // Token to retrieve the next page of results, or empty if there are no more results in the list + string next_page_token = 2; +} \ No newline at end of file diff --git a/mods/common/src/protos/agents.proto b/mods/common/src/protos/agents.proto new file mode 100644 index 000000000..705caca92 --- /dev/null +++ b/mods/common/src/protos/agents.proto @@ -0,0 +1,168 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +syntax = "proto3"; + +package fonoster.agents.v1beta2; + +// The Agents service definition +service Agents { + // Create a new Agent + rpc CreateAgent (CreateAgentRequest) returns (CreateAgentResponse) {} + // Update an existing Agent + rpc UpdateAgent (UpdateAgentRequest) returns (UpdateAgentResponse) {} + // Get an existing Agent + rpc GetAgent (GetAgentRequest) returns (Agent) {} + // Delete an existing Agent + rpc DeleteAgent (DeleteAgentRequest) returns (DeleteAgentResponse) {} + // List all Agents + rpc ListAgents (ListAgentsRequest) returns (ListAgentsResponse) {} +} + +// The message for a new Agent +message Agent { + message Domain { + // The unique identifier of the Domain + string ref = 1; + // The name of the Domain + string name = 2; + // The domain of the Domain + string domain_uri = 3; + } + message Credentials { + // The unique identifier of the Credentials + string ref = 1; + // The friendly name of the Credentials + string name = 2; + // The username of the Credentials + string username = 3; + } + // The unique identifier of the Agent + string ref = 1; + // The name of the Agent + string name = 2; + // The username of the Agent + string username = 3; + // The privacy settings of the Agent + Privacy privacy = 4; + // The enabled status of the Agent + bool enabled = 5; + // The created_at timestamp of the Agent + int32 created_at = 6; + // The updated_at timestamp of the Agent + int32 updated_at = 7; + // The maximum number of contacts that can be created for this Agent + int32 max_contacts = 8; + // Value to override the expires requested by the Agent + int32 expires = 9; + // The domain of the Agent + Domain domain = 10; + // The credentials of the Agent + Credentials credentials = 11; +} + +// The request message for Agents.CreateAgent +message CreateAgentRequest { + // The name of the Agent + string name = 1; + // The username of the Agent + string username = 2; + // The privacy settings of the Agent + Privacy privacy = 3; + // The enabled status of the Agent + bool enabled = 4; + // Reference to the Domain of the Agent + string domain_ref = 5; + // Reference to the Credentials of the Agent + string credentials_ref = 6; + // The maximum number of contacts that can be created for this Agent + int32 max_contacts = 7; + // Value to override the expires requested by the Agent + int32 expires = 8; +} + +// The response message for Agents.CreateAgent +message CreateAgentResponse { + // The unique identifier of the Agent + string ref = 1; +} + +// The request message for Agents.UpdateAgent +message UpdateAgentRequest { + // The unique identifier of the Agent + string ref = 1; + // The name of the Agent + string name = 2; + // The privacy settings of the Agent + Privacy privacy = 3; + // The enabled status of the Agent + bool enabled = 4; + // Reference to the Domain of the Agent + string domain_ref = 5; + // Reference to the Credentials of the Agent + string credentials_ref = 6; + // The maximum number of contacts that can be created for this Agent + int32 max_contacts = 7; + // Value to override the expires requested by the Agent + int32 expires = 8; +} + +// The response message for Agents.UpdateAgent +message UpdateAgentResponse { + // The id of the updated Agent + string ref = 1; +} + +// The request message for Agents.GetAgent +message GetAgentRequest { + // The unique identifier of the Agent + string ref = 1; +} + +// The request message for Agents.DeleteAgent +message DeleteAgentRequest { + // The unique identifier of the Agent + string ref = 1; +} + +// The response message for Agents.DeleteAgent +message DeleteAgentResponse { + // Echo back the id of the deleted Agent + string ref = 1; +} + +// The request message for Agents.ListAgents +message ListAgentsRequest { + // The maximum number of items in the list + int32 page_size = 1; + // The next_page_token value returned from the previous request, if any + string page_token = 2; +} + +// The response message for Agents.ListAgents +message ListAgentsResponse { + // List of Agents + repeated Agent items = 1; + // Token to retrieve the next page of results, or empty if there are no more results in the list + string next_page_token = 2; +} + +enum Privacy { + NONE = 0; + PRIVATE = 1; +} \ No newline at end of file diff --git a/mods/common/src/protos/applications.proto b/mods/common/src/protos/applications.proto new file mode 100644 index 000000000..32427b760 --- /dev/null +++ b/mods/common/src/protos/applications.proto @@ -0,0 +1,156 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +syntax = "proto3"; + +package fonoster.applications.v1beta2; + +import "google/protobuf/struct.proto"; + +// Applications service definition +service Applications { + // Create a new application + rpc CreateApplication(CreateApplicationRequest) returns (CreateApplicationResponse) {} + // Get an application + rpc GetApplication(GetApplicationRequest) returns (Application) {} + // List applications + rpc ListApplications(ListApplicationsRequest) returns (ListApplicationsResponse) {} + // Update an application + rpc UpdateApplication(UpdateApplicationRequest) returns (UpdateApplicationResponse) {} + // Delete an application + rpc DeleteApplication(DeleteApplicationRequest) returns (DeleteApplicationResponse) {} +} + +// The type of application +enum ApplicationType { + // Programmable Voice + EXTERNAL = 0; + // Internal LLM based applications + AUTOPILOT = 1; +} + +message ProductContainer { + // Product reference + string product_ref = 1; + // Product configuration + google.protobuf.Struct config = 2; + // Product credentials + google.protobuf.Struct credentials = 3; +} + +// Application definition +message Application { + // Reference to the application + string ref = 1; + // The application's resource name + string name = 2; + // Application type + ApplicationType type = 3; + // Endpoint for programmable voice + string endpoint = 4; + // Text to speech product + ProductContainer text_to_speech = 5; + // Speech to text product + ProductContainer speech_to_text = 6; + // Intelligence product + ProductContainer intelligence = 7; + // Creation time + int32 created_at = 8; + // Update time + int32 updated_at = 9; +} + +// Request to create a new application +message CreateApplicationRequest { + // Name of the application + string name = 1; + // Application type + ApplicationType type = 2; + // App URL for programmable voice + string endpoint = 3; + // Text to speech product + ProductContainer text_to_speech = 4; + // Speech to text product + ProductContainer speech_to_text = 5; + // Inference engine + ProductContainer intelligence = 6; +} + +// Response for create application +message CreateApplicationResponse { + // Echo the reference of the application + string ref = 1; +} + +// Request to get an application +message GetApplicationRequest { + // The reference to the application + string ref = 1; +} + +// Request to list applications +message ListApplicationsRequest { + // The number of items to list + int32 page_size = 1; + // The page token + string page_token = 2; +} + +// Response for list applications +message ListApplicationsResponse { + // List of applications + repeated Application items = 1; + // The page token + string next_page_token = 2; +} + +// Request to update an application +message UpdateApplicationRequest { + // Reference to the application + string ref = 1; + // Name of the application + string name = 2; + // Application type + ApplicationType type = 3; + // App URL for programmable voice + string endpoint = 4; + // Text to speech product + ProductContainer text_to_speech = 5; + // Speech to text product + ProductContainer speech_to_text = 6; + // Intelligence product + ProductContainer intelligence = 7; +} + +// Response for update application +message UpdateApplicationResponse { + // Echo the reference of the application + string ref = 1; +} + +// Request to delete an application +message DeleteApplicationRequest { + // The reference to the application + string ref = 1; +} + +// Response for delete application +message DeleteApplicationResponse { + // Echo the reference of the application + string ref = 1; +} diff --git a/mods/common/src/protos/authz.proto b/mods/common/src/protos/authz.proto new file mode 100644 index 000000000..189102a15 --- /dev/null +++ b/mods/common/src/protos/authz.proto @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +syntax = "proto3"; + +package fonoster.authz.v1beta2; + +import "google/protobuf/struct.proto"; +import "google/protobuf/empty.proto"; + +import "voice.proto"; + +// Authentication service definition +service Authz { + // Check if a user has permission to perform an action + rpc CheckSessionAuthorized (fonoster.voice.v1beta2.CreateSessionRequest) returns (CheckSessionAuthorizedResponse) {} + // Check if a given accessKeyId has permission to access a method + rpc CheckMethodAuthorized (CheckMethodAuthorizedRequest) returns (CheckMethodAuthorizedResponse) {} + // Add billing meter event to an account + rpc AddBillingMeterEvent (AddBillingMeterEventRequest) returns (google.protobuf.Empty) {} +} + +// Response message for the CheckVoiceRequestAuthorized method +message CheckSessionAuthorizedResponse { + // The authorization server will look for one or more parameters in the request + // to determine if the request is authorized. If the request is authorized, the + // response will have the value true. + bool authorized = 1; +} + +// Request message for the CheckMethodAuthorized method +message CheckMethodAuthorizedRequest { + // The accessKeyId to check + string accessKeyId = 1; + // The method to check + string method = 2; +} + +// Response message for the CheckMethodAuthorized method +message CheckMethodAuthorizedResponse { + // The authorization server will check the accessKeyId and method to determine if + // the request is authorized. If the request is authorized, the response will have + // the value true. + bool authorized = 1; +} + +// Request message for the ChargeAccount method +message AddBillingMeterEventRequest { + // The accessKeyId to charge + string accessKeyId = 1; + // The payload for the event + google.protobuf.Struct payload = 2; +} diff --git a/mods/common/src/protos/calls.proto b/mods/common/src/protos/calls.proto new file mode 100644 index 000000000..10ce5d7a7 --- /dev/null +++ b/mods/common/src/protos/calls.proto @@ -0,0 +1,156 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +syntax = "proto3"; + +package fonoster.calls.v1beta2; + +// Calls service definition +service Calls { + // Call a number and returns the call status + rpc CreateCall (CreateCallRequest) returns (CreateCallResponse) {} + // Get a list of Call Detail Records + rpc ListCalls (ListCallsRequest) returns (ListCallsResponse) {} + // Get a Call Detail Record + rpc GetCall (GetCallRequest) returns (CallDetailRecord) {} + // Stream call status + rpc TrackCall (TrackCallRequest) returns (stream TrackCallResponse) {} +} + +enum CallType { + SIP_ORIGINATED = 0; + API_ORIGINATED = 1; +} + +enum CallStatus { + UNKNOWN = 0; + NORMAL_CLEARING = 1; + CALL_REJECTED = 2; + UNALLOCATED = 3; + NO_USER_RESPONSE = 4; + NO_ROUTE_DESTINATION = 5; + NO_ANSWER = 6; + USER_BUSY = 7; + NOT_ACCEPTABLE_HERE = 8; + SERVICE_UNAVAILABLE = 9; + INVALID_NUMBER_FORMAT = 10; +} + +enum CallDirection { + FROM_PSTN = 0; + TO_PSTN = 1; + INTRA_NETWORK = 2; +} + +// Message for a Call Detail Record +message CallDetailRecord { + // The unique identifier of the Call + string ref = 1; + // Call identifier from the SIP stack + string call_id = 2; + // The call type + CallType type = 3; + // The call status + CallStatus status = 4; + // Start time of the call + int32 started_at = 5; + // End time of the call + int32 ended_at = 6; + // The from number (E.164 format or SIP URI) + string from = 7; + // The to number (E.164 format or SIP URI) + string to = 8; + // The call duration in seconds + int32 duration = 9; + // The call direction + CallDirection direction = 10; +} + +// The request message for Calls.Call +message CreateCallRequest { + // The from number (E.164 format or SIP URI) + string from = 1; + // The to number (E.164 format or SIP URI) + string to = 2; + // Optional application reference + string app_ref = 3; + // Optional timeout in seconds + int32 timeout = 4; +} + +// The response message for Calls.Call +message CreateCallResponse { + // The reference of the call + string ref = 1; +} + +// The request message for Calls.ListCalls +message ListCallsRequest { + // Optional start date in RFC3339 format + string after = 1; + // Optional end date in RFC3339 format + string before = 2; + // Optional call type + CallType type = 3; + // Optional call status + CallStatus status = 4; + // Optional from number (E.164 format or SIP URI) + string from = 5; + // Optional to number (E.164 format or SIP URI) + string to = 6; + // The page size + int32 page_size = 7; + // The page token + string page_token = 8; +} + +// The response message for Calls.ListCalls +message ListCallsResponse { + // The list of Call Detail Records + repeated CallDetailRecord items = 1; + // The token to retrieve the next page of results + string next_page_token = 2; +} + +// The request message for Calls.GetCall +message GetCallRequest { + // The unique identifier of the Call + string ref = 1; +} + +// The request message for Calls.TrackCall +message TrackCallRequest { + // The unique identifier of the Call + string ref = 1; +} + +// The response message for Calls.TrackCall +message TrackCallResponse { + // The status of the dial + enum Status { + TRYING = 0; + CANCEL = 1; + ANSWER = 2; + BUSY = 3; + PROGRESS = 4; + NOANSWER = 5; + // Maps from Asterisk's CHANUNAVAIL and CONGESTION + FAILED = 6; + } + Status status = 1; +} \ No newline at end of file diff --git a/mods/common/src/protos/credentials.proto b/mods/common/src/protos/credentials.proto new file mode 100644 index 000000000..922ea9769 --- /dev/null +++ b/mods/common/src/protos/credentials.proto @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +syntax = "proto3"; + +package fonoster.credentials.v1beta2; + +// The Credentials service definition +service CredentialsService { + // Creates a new set of Credentials + rpc CreateCredentials (CreateCredentialsRequest) returns (CreateCredentialsResponse) {} + // Updates an existing set of Credentials + rpc UpdateCredentials (UpdateCredentialsRequest) returns (UpdateCredentialsResponse) {} + // Gets the details of a given set of Credentials + rpc GetCredentials (GetCredentialsRequest) returns (Credentials) {} + // Deletes an existing set of Credentials + rpc DeleteCredentials (DeleteCredentialsRequest) returns (DeleteCredentialsResponse) {} + // Lists all Credentials + rpc ListCredentials (ListCredentialsRequest) returns (ListCredentialsResponse) {} +} + +// The message for the Credentials resource +message Credentials { + // The reference of the Credentials + string ref = 1; + // The name of the Credentials + string name = 2; + // The username of the Credentials + string username = 3; + // The time the Credentials was created + int32 created_at = 4; + // The time the Credentials was updated + int32 updated_at = 5; +} + +// The request message for the Credentials.CreateCredentials method +message CreateCredentialsRequest { + // The name of the Credentials + string name = 1; + // The username of the Credentials + string username = 2; + // The password of the Credentials + string password = 3; +} + +// The response message for the Credentials.CreateCredentials method +message CreateCredentialsResponse { + // The reference of the created Credentials + string ref = 1; +} + +// The request message for the Credentials.UpdateCredentials method +message UpdateCredentialsRequest { + // The reference of the Credentials to update + string ref = 1; + // The new name of the Credentials + string name = 2; + // The new username of the Credentials + string username = 3; + // The new password of the Credentials + string password = 4; +} + +// The response message for the Credentials.UpdateCredentials method +message UpdateCredentialsResponse { + // The reference of the updated Credentials + string ref = 1; +} + +// The request message for the Credentials.GetCredentials method +message GetCredentialsRequest { + // The reference of the Credentials to retrieve + string ref = 1; +} + +// The request message for the Credentials.DeleteCredentials method +message DeleteCredentialsRequest { + // The reference of the Credentials to delete + string ref = 1; +} + +// The response message for the Credentials.DeleteCredentials method +message DeleteCredentialsResponse { + // The reference of the deleted Credentials + string ref = 1; +} + +// The request message for the Credentials.ListCredentials method +message ListCredentialsRequest { + // The maximum number of items in the list + int32 page_size = 1; + // The next_page_token value returned from the previous request, if any + string page_token = 2; +} + +// The response message for the Credentials.ListCredentials method +message ListCredentialsResponse { + // List of Credentials + repeated Credentials items = 1; + // Token to retrieve the next page of results, or empty if there are no more results in the list + string next_page_token = 2; +} \ No newline at end of file diff --git a/mods/common/src/protos/domains.proto b/mods/common/src/protos/domains.proto new file mode 100644 index 000000000..008a23b81 --- /dev/null +++ b/mods/common/src/protos/domains.proto @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +syntax = "proto3"; + +package fonoster.domains.v1beta2; + +// The Domains service definition +service Domains { + // Create a new Domain + rpc CreateDomain (CreateDomainRequest) returns (CreateDomainResponse) {} + // Update an existing Domain + rpc UpdateDomain (UpdateDomainRequest) returns (UpdateDomainResponse) {} + // Get an existing Domain + rpc GetDomain (GetDomainRequest) returns (Domain) {} + // List all Domains + rpc ListDomains (ListDomainsRequest) returns (ListDomainsResponse) {} + // Delete an existing Domain + rpc DeleteDomain (DeleteDomainRequest) returns (DeleteDomainResponse) {} +} + +// The message for the Domain resource +message Domain { + // The unique identifier of the Domain + string ref = 1; + // The name of the Domain + string name = 2; + // The URI of the Domain + string domain_uri = 3; + // The date of creation of the Domain + int32 created_at = 4; + // The date of the last update + int32 updated_at = 5; +} + +// EgressPolicy defines the policy for egress traffic +message EgressPolicy { + // The pattern to match + string rule = 1; + // Reference to the number to use for egress + string number_ref = 2; +} + +// The request message for Domains.CreateDomain +message CreateDomainRequest { + // The name of the Domain + string name = 1; + // The domain_uri of the Domain + string domain_uri = 2; + // Reference to the Access Control List + string access_control_list_ref = 3; + // Optional list of egress policies + repeated EgressPolicy egress_policies = 4; +} + +// The response message for Domains.CreateDomain +message CreateDomainResponse { + // The id of the new Domain + string ref = 1; +} + +// The request message for Domains.UpdateDomain +message UpdateDomainRequest { + // The id of the Domain + string ref = 1; + // The name of the Domain + string name = 2; + // Reference to the Access Control List + string access_control_list_ref = 3; + // Optional list of egress policies + repeated EgressPolicy egress_policies = 4; +} + +// The response message for Domains.UpdateDomain +message UpdateDomainResponse { + // The id of the updated Domain + string ref = 1; +} + +// The request message for Domains.GetDomain +message GetDomainRequest { + // // The unique identifier of the Domain + string ref = 1; +} + +// The request message for Domains.DeleteDomain +message DeleteDomainRequest { + // The unique identifier of the Domain + string ref = 1; +} + +// The response message for Domains.DeleteDomain +message DeleteDomainResponse { + // Echo back the id of the deleted Domain + string ref = 1; +} + +// The request message for Domains.ListDomains +message ListDomainsRequest { + // The maximum number of items in the list + int32 page_size = 1; + // The next_page_token value returned from the previous request, if any + string page_token = 2; +} + +// The response message for Domains.ListDomains +message ListDomainsResponse { + // List of Domains + repeated Domain items = 1; + // Token to retrieve the next page of results, or empty if there are no more results in the list + string next_page_token = 2; +} \ No newline at end of file diff --git a/mods/common/src/protos/identity.proto b/mods/common/src/protos/identity.proto new file mode 100644 index 000000000..745b0b86f --- /dev/null +++ b/mods/common/src/protos/identity.proto @@ -0,0 +1,310 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +syntax = "proto3"; + +package fonoster.identity.v1beta2; + +import "google/protobuf/empty.proto"; + +service Identity { + // Workspace actions + rpc CreateWorkspace (CreateWorkspaceRequest) returns (CreateWorkspaceResponse) {} + rpc DeleteWorkspace (DeleteWorkspaceRequest) returns (DeleteWorkspaceResponse) {} + rpc GetWorkspace (GetWorkspaceRequest) returns (Workspace) {} + rpc ListWorkspaces (ListWorkspacesRequest) returns (ListWorkspacesResponse) {} + rpc UpdateWorkspace (UpdateWorkspaceRequest) returns (UpdateWorkspaceResponse) {} + rpc InviteUserToWorkspace (InviteUserToWorkspaceRequest) returns (InviteUserToWorkspaceResponse) {} + rpc RemoveUserFromWorkspace (RemoveUserFromWorkspaceRequest) returns (RemoveUserFromWorkspaceResponse) {} + rpc ResendWorkspaceMembershipInvitation (ResendWorkspaceMembershipInvitationRequest) returns (ResendWorkspaceMembershipInvitationResponse) {} + + // User specific actions + rpc CreateUser (CreateUserRequest) returns (CreateUserResponse) {} + rpc GetUser (GetUserRequest) returns (User) {} + rpc UpdateUser (UpdateUserRequest) returns (UpdateUserResponse) {} + rpc DeleteUser (DeleteUserRequest) returns (DeleteUserResponse) {} + rpc SendVerificationCode (SendVerificationCodeRequest) returns (google.protobuf.Empty) {} + rpc VerifyCode (VerifyCodeRequest) returns (google.protobuf.Empty) {} + + // ApiKey actions + rpc CreateApiKey (CreateApiKeyRequest) returns (CreateApiKeyResponse) {} + rpc DeleteApiKey (DeleteApiKeyRequest) returns (DeleteApiKeyResponse) {} + rpc ListApiKeys (ListApiKeysRequest) returns (ListApiKeysResponse) {} + rpc RegenerateApiKey (RegenerateApiKeyRequest) returns (RegenerateApiKeyResponse) {} + + // Token exchange actions + rpc ExchangeCredentials (ExchangeCredentialsRequest) returns (ExchangeCredentialsResponse) {} + rpc ExchangeApiKey (ExchangeApiKeyRequest) returns (ExchangeApiKeyResponse) {} + rpc ExchangeOauth2Code (ExchangeOauth2CodeRequest) returns (ExchangeOauth2CodeResponse) {} + rpc ExchangeRefreshToken (ExchangeRefreshTokenRequest) returns (ExchangeRefreshTokenResponse) {} + rpc RevokeToken (RevokeTokenRequest) returns (RevokeTokenResponse) {} + + // Get the public key for verifying JWTs + rpc GetPublicKey (google.protobuf.Empty) returns (GetPublicKeyResponse) {} +} + +// Workspace Resources + +message Workspace { + string ref = 1; + string name = 2; + string owner_ref = 3; + string access_key_id = 4; + int32 created_at = 5; + int32 updated_at = 6; +} + +message CreateWorkspaceRequest { + string name = 1; +} + +message CreateWorkspaceResponse { + string ref = 1; +} + +message DeleteWorkspaceRequest { + string ref = 1; +} + +message DeleteWorkspaceResponse { + string ref = 1; +} + +message GetWorkspaceRequest { + string ref = 1; +} + +message ListWorkspacesRequest { + string page_token = 1; + int32 page_size = 2; +} + +message ListWorkspacesResponse { + repeated Workspace items = 1; + string next_page_token = 2; +} + +message UpdateWorkspaceRequest { + string ref = 1; + string name = 2; +} + +message UpdateWorkspaceResponse { + string ref = 1; +} + +message InviteUserToWorkspaceRequest { + string email = 1; + string role = 2; + string name = 3; +} + +message InviteUserToWorkspaceResponse { + string user_ref = 1; +} + +message RemoveUserFromWorkspaceRequest { + string user_ref = 1; +} + +message RemoveUserFromWorkspaceResponse { + string user_ref = 1; +} + +message ResendWorkspaceMembershipInvitationRequest { + string user_ref = 1; +} + +message ResendWorkspaceMembershipInvitationResponse { + string user_ref = 1; +} + +// User Resources +enum ContactType { + EMAIL = 0; + PHONE = 1; +} + +message CreateUserRequest { + string email = 1; + string password = 2; + string name = 3; + string avatar = 4; +} + +message CreateUserResponse { + string ref = 1; +} + +message GetUserRequest { + string ref = 1; +} + +message User { + string ref = 1; + string email = 2; + string name = 3; + string avatar = 4; + int32 created_at = 5; + int32 updated_at = 6; +} + +message UpdateUserRequest { + string ref = 1; + string password = 2; + string name = 3; + string avatar = 4; +} + +message UpdateUserResponse { + string ref = 1; +} + +message DeleteUserRequest { + string ref = 1; +} + +message DeleteUserResponse { + string ref = 1; +} + +message SendVerificationCodeRequest { + ContactType contact_type = 1; + string value = 2; +} + +message VerifyCodeRequest { + string username = 1; + ContactType contact_type = 2; + string value = 3; + string verification_code = 4; +} + +// ApiKey Resources + +message CreateApiKeyRequest { + string role = 1; + int32 expires_at = 2; +} + +message CreateApiKeyResponse { + string ref = 1; + string access_key_id = 2; + string access_key_secret = 3; +} + +message DeleteApiKeyRequest { + string ref = 1; +} + +message DeleteApiKeyResponse { + string ref = 1; +} + +message ListApiKeysRequest { + int32 page_size = 3; + string page_token = 2; +} + +message ListApiKeysResponse { + repeated ApiKey items = 1; + string next_page_token = 2; +} + +message RegenerateApiKeyRequest { + string ref = 1; +} + +message RegenerateApiKeyResponse { + string ref = 1; + string access_key_id = 2; + string access_key_secret = 3; +} + +message ApiKey { + string ref = 1; + string access_key_id = 2; + string role = 3; + int32 expires_at = 4; + int32 created_at = 5; + int32 updated_at = 6; +} + +// Token Exchange Resources + +message ExchangeCredentialsRequest { + string username = 1; + string password = 2; + // Optional code for multi-factor authentication + string verification_code = 3; +} + +message ExchangeCredentialsResponse { + string id_token = 1; + string access_token = 2; + string refresh_token = 3; +} + +message ExchangeApiKeyRequest { + string access_key_id = 1; + string access_key_secret = 2; +} + +message ExchangeApiKeyResponse { + string id_token = 1; + string access_token = 2; + string refresh_token = 3; +} + +message ExchangeOauth2CodeRequest { + enum Oauth2Provider { + GITHUB = 0; + } + Oauth2Provider provider = 1; + string username = 2; + string code = 3; +} + +message ExchangeOauth2CodeResponse { + string id_token = 1; + string access_token = 2; + string refresh_token = 3; +} + +message ExchangeRefreshTokenRequest { + string refresh_token = 1; +} + +message ExchangeRefreshTokenResponse { + string id_token = 1; + string access_token = 2; + string refresh_token = 3; +} + +message RevokeTokenRequest { + string token = 1; +} + +message RevokeTokenResponse { + string token = 1; +} + +// Message with response with the public key +message GetPublicKeyResponse { + string public_key = 1; +} \ No newline at end of file diff --git a/mods/common/src/protos/numbers.proto b/mods/common/src/protos/numbers.proto new file mode 100644 index 000000000..2908fc4f7 --- /dev/null +++ b/mods/common/src/protos/numbers.proto @@ -0,0 +1,156 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +syntax = "proto3"; + +package fonoster.numbers.v1beta2; + +// The Numbers service definition +service Numbers { + // Create a new Number + rpc CreateNumber (CreateNumberRequest) returns (CreateNumberResponse) {} + // Update an existing Number + rpc UpdateNumber (UpdateNumberRequest) returns (UpdateNumberResponse) {} + // Get an existing Number + rpc GetNumber (GetNumberRequest) returns (Number) {} + // Delete an existing Number + rpc DeleteNumber (DeleteNumberRequest) returns (DeleteNumberResponse) {} + // List Numbers + rpc ListNumbers (ListNumbersRequest) returns (ListNumbersResponse) {} +} + +// The message for the Number resource +message Number { + message Trunk { + // The unique identifier of the Trunk + string ref = 1; + // The name of the Trunk + string name = 2; + } + // The unique identifier of the Number + string ref = 1; + // The name of the Number + string name = 2; + // The tel_url of the Number + string tel_url = 3; + // The city of the Number + string city = 4; + // The country of the Number + string country = 5; + // The country_iso_code of the Number + string country_iso_code = 6; + // The date when the Number was created + int32 created_at = 7; + // The date when the Number was last updated + int32 updated_at = 8; + // The trunk this number is associated with + Trunk trunk = 9; + // This dictates how the number will handle incoming calls + oneof ingress_handler { + // The call will be forwarded to this agent + string agent_aor = 10; + // The call will be forward to this application + string app_ref = 11; + } +} + +// The request message for Numbers.CreateNumber +message CreateNumberRequest { + // The name of the Number + string name = 1; + // The tel_url of the Number + string tel_url = 2; + // The city of the Number + string city = 3; + // The country of the Number + string country = 4; + // The country_iso_code of the Number + string country_iso_code = 5; + // Reference to the trunk this number is associated with + string trunk_ref = 6; + // This dictates how the number will handle incoming calls + oneof ingress_handler { + // The call will be forwarded to this agent + string agent_aor = 7; + // The call will be forward to this application + string app_ref = 8; + } +} + +// The response message for Numbers.CreateNumber +message CreateNumberResponse { + // The reference of the Number + string ref = 1; +} + +// The request message for Numbers.UpdateNumber +message UpdateNumberRequest { + // The unique identifier of the Number + string ref = 1; + // The name of the Number + string name = 2; + // Reference to the trunk this number is associated with + string trunk_ref = 3; + // This dictates how the number will handle incoming calls + oneof ingress_handler { + // The call will be forwarded to this agent + string agent_aor = 4; + // The call will be forward to this application + string app_ref = 5; + } +} + +// The response message for Numbers.UpdateNumber +message UpdateNumberResponse { + // The reference of the Number + string ref = 1; +} + +// The request message for Numbers.GetNumber +message GetNumberRequest { + // The unique identifier of the Number + string ref = 1; +} + +// The request message for Numbers.DeleteNumber +message DeleteNumberRequest { + // The unique identifier of the Number + string ref = 1; +} + +// The response message for Numbers.DeleteNumber +message DeleteNumberResponse { + // The reference of the Number + string ref = 1; +} + +// The request message for Numbers.ListNumbers +message ListNumbersRequest { + // The maximum number of items in the list + int32 page_size = 1; + // The next_page_token value returned from the previous request, if any + string page_token = 2; +} + +// The response message for Numbers.ListNumbers +message ListNumbersResponse { + // List of Numbers + repeated Number items = 1; + // Token to retrieve the next page of results, or empty if there are no more results in the list + string next_page_token = 2; +} diff --git a/mods/common/src/protos/secrets.proto b/mods/common/src/protos/secrets.proto new file mode 100644 index 000000000..f2237b8f1 --- /dev/null +++ b/mods/common/src/protos/secrets.proto @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +syntax = "proto3"; + +package fonoster.secrets.v1beta2; + +// The Secrets service definition +service Secrets { + // Creates a new Secret + rpc CreateSecret (CreateSecretRequest) returns (CreateSecretResponse) {} + // Updates an existing set of Secret + rpc UpdateSecret (UpdateSecretRequest) returns (UpdateSecretResponse) {} + // Gets the details of a given set of Secret + rpc GetSecret (GetSecretRequest) returns (Secret) {} + // Deletes an existing Secret + rpc DeleteSecret (DeleteSecretRequest) returns (DeleteSecretResponse) {} + // Lists all Secrets + rpc ListSecrets (ListSecretsRequest) returns (ListSecretsResponse) {} +} + +// The message for the Secret resource +message Secret { + // The reference of the Secret + string ref = 1; + // Friendly name of the Secret + string name = 2; + // The actual secret + string secret = 3; + // The time the Secret was created + int32 created_at = 4; + // The time the Secret was updated + int32 updated_at = 5; +} + +// The request message for the Secrets.CreateSecret method +message CreateSecretRequest { + // Friendly name of the Secret + string name = 1; + // The actual secret + string secret = 2; +} + +// The response message for the Secrets.CreateSecret method +message CreateSecretResponse { + // The reference of the created Secret + string ref = 1; +} + +// The request message for the Secrets.UpdateSecret method +message UpdateSecretRequest { + // The reference of the Secret to update + string ref = 1; + // The new name of the Secret + string name = 2; + // Updated secret + string secret = 3; +} + +// The response message for the Secrets.UpdateSecret method +message UpdateSecretResponse { + // The reference of the updated Secret + string ref = 1; +} + +// The request message for the Secrets.GetSecret method +message GetSecretRequest { + // The reference of the Secret to retrieve + string ref = 1; +} + +// The request message for the Secrets.DeleteSecret method +message DeleteSecretRequest { + // The reference of the Secret to delete + string ref = 1; +} + +// The response message for the Secrets.DeleteSecret method +message DeleteSecretResponse { + // The reference of the deleted Secret + string ref = 1; +} + +// The request message for the Secrets.ListSecret method +message ListSecretsRequest { + // The maximum number of items in the list + int32 page_size = 1; + // The next_page_token value returned from the previous request, if any + string page_token = 2; +} + +// The response message for the Secrets.ListSecret method +message ListSecretsResponse { + // List of Secret + repeated Secret items = 1; + // Token to retrieve the next page of results, or empty if there are no more results in the list + string next_page_token = 2; +} \ No newline at end of file diff --git a/mods/common/src/protos/trunks.proto b/mods/common/src/protos/trunks.proto new file mode 100644 index 000000000..379748a35 --- /dev/null +++ b/mods/common/src/protos/trunks.proto @@ -0,0 +1,179 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +syntax = "proto3"; + +package fonoster.trunks.v1beta2; + +// The Trunks service definition +service Trunks { + // Create a new Trunk + rpc CreateTrunk (CreateTrunkRequest) returns (CreateTrunkResponse) {} + // UpdateTrunk an existing Trunk + rpc UpdateTrunk (UpdateTrunkRequest) returns (UpdateTrunkResponse) {} + // Get a Trunk by reference + rpc GetTrunk (GetTrunkRequest) returns (Trunk) {} + // Delete a Trunk by reference + rpc DeleteTrunk (DeleteTrunkRequest) returns (DeleteTrunkResponse) {} + // List all Trunks + rpc ListTrunks (ListTrunksRequest) returns (ListTrunksResponse) {} +} + +// The message for the Trunk URIs +message TrunkURI { + // The host name or IP address of the Trunk + string host = 1; + // The port number of the Trunk + int32 port = 2; + // The transport protocol of the Trunk + string transport = 3; + // The username to use when authenticating with the Trunk + string user = 4; + // The weight of the Trunk + int32 weight = 5; + // The priority of the Trunk + int32 priority = 6; + // The flag to enable or disable the Trunk + bool enabled = 7; +} + +// The message for the Trunk resource +message Trunk { + message Acl { + // The reference of the AccessControlList + string ref = 1; + // The name of the AccessControlList + string name = 2; + // The list of IP addresses that are allowed to access the Trunks + repeated string allow = 3; + // The list of IP addresses that are denied to access the Trunks + repeated string deny = 4; + } + message Credentials { + // The reference of the Credentials + string ref = 1; + // The name of the Credentials + string name = 2; + // The username of the Credentials + string username = 3; + } + // The reference of the Trunk + string ref = 1; + // The name of the Trunk + string name = 2; + // A flag to indicate if we should send a REGISTER request to the Trunk + bool send_register = 3; + // The URI for inbound requests + string inbound_uri = 4; + // The date and time when the Trunk was created + int32 created_at = 5; + // The date and time when the Trunk was last updated + int32 updated_at = 6; + // The list of IP addresses that are allowed to access the Trunks + Acl access_control_list = 7; + // The credentials to use when authenticating with the Trunk + Credentials inbound_credentials = 8; + // The credentials to use when authenticating with the Provider + Credentials outbound_credentials = 9; + // The list of URIs for the Trunk + repeated TrunkURI uris = 10; +} + +// The message for the Trunk.Create +message CreateTrunkRequest { + // The name of the Trunk + string name = 1; + // A flag to indicate if we should send a REGISTER request to the Trunk + bool send_register = 2; + // The URI for inbound requests + string inbound_uri = 3; + // Reference to the AccessControlList + string access_control_list_ref = 4; + // Reference to the inbound Credentials + string inbound_credentials_ref = 5; + // Reference to the outbound Credentials + string outbound_credentials_ref = 6; + // The list of URIs for the Trunk + repeated TrunkURI uris = 7; +} + +// The message for the Trunk.CreateTrunk response +message CreateTrunkResponse { + // The reference of the Trunk + string ref = 1; +} + +// The message for the Trunk.UpdateTrunk +message UpdateTrunkRequest { + // The reference of the Trunk + string ref = 1; + // The name of the Trunk + string name = 2; + // A flag to indicate if we should send a REGISTER request to the Trunk + bool send_register = 3; + // The URI for inbound requests + string inbound_uri = 4; + // Reference to the AccessControlList + string access_control_list_ref = 5; + // Reference to the inbound Credentials + string inbound_credentials_ref = 6; + // Reference to the outbound Credentials + string outbound_credentials_ref = 7; + // The list of URIs for the Trunk + repeated TrunkURI uris = 8; +} + +// The message for the Trunk.UpdateTrunk response +message UpdateTrunkResponse { + // The reference of the Trunk + string ref = 1; +} + +// The message for the Trunk.GetTrunk +message GetTrunkRequest { + // The reference of the Trunk + string ref = 1; +} + +// The message for the Trunk.DeleteTrunk +message DeleteTrunkRequest { + // The reference of the Trunk + string ref = 1; +} + +// The message for the Trunk.DeleteTrunk response +message DeleteTrunkResponse { + // The reference of the Trunk + string ref = 1; +} + +// The message for the Trunk.ListTrunk request +message ListTrunksRequest { + // The maximum number of items in the list + int32 page_size = 1; + // The next_page_token value returned from the previous request, if any + string page_token = 2; +} + +// The message for the Trunk.ListTrunk response +message ListTrunksResponse { + // List of Trunks + repeated Trunk items = 1; + // Token to retrieve the next page of results, or empty if there are no more results in the list + string next_page_token = 2; +} \ No newline at end of file diff --git a/mods/common/src/protos/voice.proto b/mods/common/src/protos/voice.proto new file mode 100644 index 000000000..f3c6e7158 --- /dev/null +++ b/mods/common/src/protos/voice.proto @@ -0,0 +1,473 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +syntax = "proto3"; + +package fonoster.voice.v1beta2; + +import "google/protobuf/struct.proto"; + +// The voice service definition +service Voice { + rpc CreateSession(stream VoiceInStream) returns (stream VoiceOutStream) {} +} + +// CreateSessionRequest is the request message for the CreateSession method +message CreateSessionRequest { + // The account making the request on behalf of the caller + string access_key_id = 1; + + // Reference to an application living in the platform + string app_ref = 2; + + // gRPC endpoint for the voice service + string endpoint = 3; + + // PSTN number or SIP URI associated with the session + string ingress_number = 4; + + // The name of the caller + string caller_name = 5; + + // The caller number for the phone calling from the + string caller_number = 6; + + // The session ID generated by the Media Server + string session_ref = 7; + + // Use this token to validate the provenance of the request + // If the app_ref is provided, the token must include the app_ref as a claim + string session_token = 8; + + // The direction of the call + enum CallDirection { + FROM_PSTN = 0; + TO_PSTN = 1; + INTRA_NETWORK = 2; + } + CallDirection call_direction = 9; + + // Metadata associated with the session + map metadata = 10; +} + +// Common request for verbs +message VerbRequest { + string session_ref = 1; +} + +// Common response for verbs +message VerbResponse { + string session_ref = 1; +} + +// Request to play a sound +message PlayRequest { + // The session reference generated by the Media Server + string session_ref = 1; + + // The URL of the sound to play + string url = 2; +} + +// Request to play a sound +message PlayResponse { + // The session reference generated by the Media Server + string session_ref = 1; + + // The playback reference generated by the Media Server + string playback_ref = 2; +} + +// The request message for the PlaybackControl method +message PlaybackControlRequest { + // The session reference generated by the Media Server + string session_ref = 1; + + // The playback reference generated by the Media Server + string playback_ref = 2; + + // The action to take + enum Action { + STOP = 0; + RESTART = 1; + PAUSE = 2; + UNPAUSE = 3; + FORWARD = 4; + } + Action action = 3; +} + +// PlayDtmfRequest is the request message for the PlayDtmf method +message PlayDtmfRequest { + // The session reference generated by the Media Server + string session_ref = 1; + + // The digits to play + string digits = 2; +} + +// Request to mute or unmute the call +message MuteRequest { + // The session reference generated by the Media Server + string session_ref = 1; + + // The direction to mute + enum MuteDirection { + IN = 0; + OUT = 1; + BOTH = 2; + } + MuteDirection direction = 2; +} + +// Request to gather speech or DTMF +message GatherRequest { + // The session reference generated by the Media Server + string session_ref = 1; + + // The source of the gather + enum GatherSource { + SPEECH = 0; + DTMF = 1; + SPEECH_AND_DTMF = 2; + } + GatherSource source = 2; + + // Optional key to finish the gather + string finish_on_key = 3; + + // Optional timeout in seconds + int32 timeout = 4; + + // Optional number of digits to gather + int32 max_digits = 5; +} + +// Response to a gather request +message GatherResponse { + // The session reference generated by the Media Server + string session_ref = 1; + + // The gathered speech or digits + oneof content { + string speech = 2; + string digits = 3; + } + int32 response_time = 4; +} + +// RecordRequest is the request message to initiate a recording +message RecordRequest { + // The session reference generated by the Media Server + string session_ref = 1; + + // The maximum duration of the recording in seconds + int32 max_duration = 2; + + // The maximum silence before ending the recording in seconds + int32 max_silence = 3; + + // Play a beep before recording + bool beep = 4; + + // Finish recording on this key + string finish_on_key = 5; +} + +// Response to a record request +message RecordResponse { + // The session reference generated by the Media Server + string session_ref = 1; + + // The name of the recording + string name = 2; + + // The duration of the recording + int32 duration = 3; + + // The format of the recording + enum RecordFormat { + WAV = 0; + } + RecordFormat format = 4; +} + +// Request to say a text +message SayRequest { + // The session reference generated by the Media Server + string session_ref = 1; + + // The text to say + string text = 2; + + // Assign a playback reference to the request + string playback_ref = 3; + + // TTS options + google.protobuf.Struct options = 4; +} + +// Dial request message +message DialRequest { + // The session reference generated by the Media Server + string session_ref = 1; + + // The number to dial + string destination = 2; + + // The caller ID to use (reserved for future use) + string caller_id = 3; + + // The timeout in seconds + int32 timeout = 4; + + // Record direction + enum RecordDirection { + IN = 0; + OUT = 1; + BOTH = 2; + } + RecordDirection record_direction = 5; +} + +// Dial status message +message DialStatus { + // The session reference generated by the Media Server + string session_ref = 1; + + // The status of the dial + enum Status { + TRYING = 0; + CANCEL = 1; + ANSWER = 2; + BUSY = 3; + PROGRESS = 4; + NOANSWER = 5; + // Maps from Asterisk's CHANUNAVAIL and CONGESTION + FAILED = 6; + } + Status status = 2; +} + +// Request to start an audio stream +message StartStreamRequest { + // The session reference generated by the Media Server + string session_ref = 1; + + // The direction of the stream + enum StreamDirection { + IN = 0; + OUT = 1; + BOTH = 2; + } + StreamDirection direction = 2; + + // Output format + enum StreamAudioFormat { + WAV = 0; + } + StreamAudioFormat format = 3; +} + +// Response to a start stream request +message StartStreamResponse { + // The session reference generated by the Media Server + string session_ref = 1; + + // The stream reference generated by the Media Server + string stream_ref = 2; +} + +// Request to stop an audio stream +message StopStreamRequest { + // The session reference generated by the Media Server + string session_ref = 1; + + // The stream reference generated by the Media Server + string stream_ref = 2; +} + +// Message for the bidirectional streams +message StreamPayload { + // The session reference generated by the Media Server + string session_ref = 1; + + // The stream reference generated by the Media Server + string stream_ref = 2; + + // The message type + enum StreamMessageType { + AUDIO_IN = 0; + AUDIO_OUT = 1; + ERROR = 2; + } + StreamMessageType type = 3; + + // The audio data + bytes data = 4; + + // (Q. should we use the same error codes as gRPC?) + // Error code if any + string code = 5; + + // Error message if any + string message = 6; +} + +// Request for Stream Gather +message StartStreamGatherRequest { + // The session reference generated by the Media Server + string session_ref = 1; + + // The source of the gather + enum StreamGatherSource { + SPEECH = 0; + DTMF = 1; + SPEECH_AND_DTMF = 2; + } + StreamGatherSource source = 2; +} + +// Request to stop a Stream Gather +message StopStreamGatherRequest { + // The session reference generated by the Media Server + string session_ref = 1; +} + +// Response to Stream Gather request +message StreamGatherPayload { + // The session reference generated by the Media Server + string session_ref = 1; + + // The gathered speech or a single digit + oneof content { + string speech = 2; + string digit = 3; + } + int32 response_time = 4; +} + +// VoiceInStream is the input stream for the voice service +message VoiceInStream { + oneof content { + // Initial request to create a new session + CreateSessionRequest request = 1; + + // Command to accept the call + VerbResponse answer_response = 2; + + // Response to a play request + PlayResponse play_response = 3; + + // Response to a hangup request + VerbResponse hangup_response = 4; + + // Response to a mute request + VerbResponse mute_response = 5; + + // Response to a unmute request + VerbResponse unmute_response = 6; + + // Response to a play dtmf request + VerbResponse play_dtmf_response = 7; + + // Response to a gather request + GatherResponse gather_response = 8; + + // Response to a playback control request + VerbResponse playback_control_response = 9; + + // Response to a say request (It shares the same response as play) + PlayResponse say_response = 10; + + // Response to a record request + RecordResponse record_response = 11; + + // Status of a dial request progress + DialStatus dial_status = 12; + + // Response to a start stream request + StartStreamResponse start_stream_response = 13; + + // Message for the bidirectional streams + StreamPayload stream_payload = 14; + + // Response to start a stream gather + VerbResponse start_stream_gather_response = 15; + + // Response to stop a stream gather + VerbResponse stop_stream_gather_response = 16; + + // Message with payload for the stream gather + StreamGatherPayload stream_gather_payload = 17; + } +} + +// VoiceOutStream is the output stream for the voice service +message VoiceOutStream { + oneof content { + // Request to accept the call + VerbRequest answer_request = 1; + + // Request to play a sound + PlayRequest play_request = 2; + + // Request to hangup the call + VerbRequest hangup_request = 3; + + // Request to mute the call + MuteRequest mute_request = 4; + + // Request to unmute the call + MuteRequest unmute_request = 5; + + // Request to play dtmf + PlayDtmfRequest play_dtmf_request = 6; + + // Request to gather speech or DTMF + GatherRequest gather_request = 7; + + // Request to control a playback + PlaybackControlRequest playback_control_request = 9; + + // Request to say a text + SayRequest say_request = 10; + + // Request to record + RecordRequest record_request = 11; + + // Request to dial a number + DialRequest dial_request = 12; + + // Request to start an audio stream + StartStreamRequest start_stream_request = 14; + + // Request to stop an audio stream + StopStreamRequest stop_stream_request = 15; + + // Message for the bidirectional streams + StreamPayload stream_payload = 16; + + // Request to start a stream gather + StartStreamGatherRequest start_stream_gather_request = 17; + + // Request to stop a stream gather + StopStreamGatherRequest stop_stream_gather_request = 18; + } +} diff --git a/mods/common/src/service_runner.ts b/mods/common/src/service_runner.ts deleted file mode 100644 index 0fd0af471..000000000 --- a/mods/common/src/service_runner.ts +++ /dev/null @@ -1,74 +0,0 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable require-jsdoc */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import logger from "@fonoster/logger"; -import assertEnvIsSet from "./env_is_set"; -import * as grpc from "@grpc/grpc-js"; -import { getServerCredentials } from "./trust_util"; -import { useHealth } from "@fonoster/grpc-health-check"; - -const interceptor = require("grpc-interceptors"); -const ENDPOINT = process.env.BINDADDR || "0.0.0.0:50052"; - -interface ServiceInf { - name: string; - version: string; - service: any; - server: any; -} - -interface Middleware { - name: string; - description?: string; - middlewareObj; -} - -export default function run( - srvInfList: ServiceInf[], - middlewareList?: Middleware[] -) { - const grpcServer = new grpc.Server(); - // Wrapped server - const server = interceptor.serverProxy(useHealth(grpcServer)); - - logger.info( - `@fonoster/common service runner [starting @ ${ENDPOINT}, api = ${srvInfList[0].version}]` - ); - - middlewareList?.forEach((middleware) => { - server.use(middleware.middlewareObj); - logger.info( - `@fonoster/common service runner [added ${middleware.name} middleware]` - ); - }); - - srvInfList.forEach((srvInf: ServiceInf) => { - assertEnvIsSet(srvInf.name); - server.addService(srvInf.service, srvInf.server); - logger.info( - `@fonoster/common service runner [added ${srvInf.name} service]` - ); - }); - - server.bindAsync(ENDPOINT, getServerCredentials(), () => { - server.start(); - }); - logger.info("@fonoster/common service runner [runner is online]"); -} diff --git a/mods/common/src/speech/plugin.ts b/mods/common/src/speech/plugin.ts deleted file mode 100644 index 3caa57d41..000000000 --- a/mods/common/src/speech/plugin.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export abstract class Plugin { - type: string; - name: string; - constructor(type: string, name: string) { - this.name = name; - this.type = type; - } - - getType() { - return this.type; - } -} diff --git a/mods/common/src/speech/types.ts b/mods/common/src/speech/types.ts deleted file mode 100644 index 2983612cd..000000000 --- a/mods/common/src/speech/types.ts +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Stream } from "stream"; - -export interface SpeechProvider { - createSpeechTracker(options: unknown): SpeechTracker; -} - -export interface SpeechTracker { - transcribe(stream: Stream): Promise; - streamTranscribe(stream: Stream): StreamSpeechResult; -} - -export interface SpeechResult { - transcript: string; - isFinal: boolean; -} - -export interface StreamSpeechResult { - on(events: string, callback: Function): void; - close: Function; -} diff --git a/mods/common/src/tracer.ts b/mods/common/src/tracer.ts deleted file mode 100644 index 1c6157922..000000000 --- a/mods/common/src/tracer.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { diag, DiagConsoleLogger, DiagLogLevel } from "@opentelemetry/api"; -diag.setLogger(new DiagConsoleLogger(), getLogLevel()); - -import opentelemetry from "@opentelemetry/api"; -import { registerInstrumentations } from "@opentelemetry/instrumentation"; -import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node"; -import { Resource } from "@opentelemetry/resources"; -import { SemanticResourceAttributes } from "@opentelemetry/semantic-conventions"; -import { SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base"; -import { JaegerExporter } from "@opentelemetry/exporter-jaeger"; -import { GrpcInstrumentation } from "@opentelemetry/instrumentation-grpc"; - -function getLogLevel() { - switch (process.env.LOGS_LEVEL?.toLowerCase()) { - case "debug": - return DiagLogLevel.DEBUG; - case "info": - return DiagLogLevel.INFO; - case "warn": - return DiagLogLevel.WARN; - case "error": - return DiagLogLevel.ERROR; - default: - return DiagLogLevel.NONE; - } -} - -export const init = (serviceName: string) => { - const provider = new NodeTracerProvider({ - resource: new Resource({ - [SemanticResourceAttributes.SERVICE_NAME]: serviceName - }) - }); - - const exporter = new JaegerExporter({ - endpoint: - process.env.TRACING_ENDPOINT || "http://localhost:14268/api/traces" - }); - - provider.addSpanProcessor(new SimpleSpanProcessor(exporter)); - provider.register(); - - registerInstrumentations({ - instrumentations: [new GrpcInstrumentation()] - }); - - return opentelemetry.trace.getTracer("fonoster-tracer"); -}; diff --git a/mods/common/src/trust_util.ts b/mods/common/src/trust_util.ts deleted file mode 100644 index 0c9000602..000000000 --- a/mods/common/src/trust_util.ts +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import logger from "@fonoster/logger"; -import path from "path"; -import * as os from "os"; -import * as fs from "fs"; -import atob from "atob"; -const grpc = require("@grpc/grpc-js"); - -const prepCert = (cert: string) => Buffer.from(atob(cert), "utf-8"); - -let config: { - caCertificate?: string; - serverCertificate?: string; - serverKey?: string; - clientCertificate?: string; - clientKey?: string; -} = {}; - -try { - config = JSON.parse( - fs - .readFileSync(path.join(os.homedir(), ".fonoster", "config")) - .toString("utf-8") - ); -} catch (e) { - logger.verbose("@fonoster/common no config found"); -} - -const getServerCredentials = () => { - try { - return grpc.ServerCredentials.createSsl( - prepCert(config.caCertificate), - [ - { - cert_chain: prepCert(config.serverCertificate), - private_key: prepCert(config.serverKey) - } - ], - true - ); - } catch (e) { - logger.info( - "@fonoster/common trust util [unable to load security certificates]" - ); - logger.info( - "@fonoster/common trust util [starting server in insecure mode]" - ); - return grpc.ServerCredentials.createInsecure(); - } -}; - -const getClientCredentials = () => - process.env.ALLOW_INSECURE === "true" - ? grpc.credentials.createInsecure() - : grpc.credentials.createSsl(); - -export { getClientCredentials, getServerCredentials }; diff --git a/mods/common/src/tts/AzureVoices.ts b/mods/common/src/tts/AzureVoices.ts new file mode 100644 index 000000000..1197635d6 --- /dev/null +++ b/mods/common/src/tts/AzureVoices.ts @@ -0,0 +1,3621 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VoiceGender, VoiceLanguage } from "./types"; + +enum AzureVoice { + AF_ZA_ADRI_NEURAL = "af-ZA-AdriNeural", + AF_ZA_WILLEM_NEURAL = "af-ZA-WillemNeural", + AM_ET_MEKDES_NEURAL = "am-ET-MekdesNeural", + AM_ET_AMEHA_NEURAL = "am-ET-AmehaNeural", + AR_AE_FATIMA_NEURAL = "ar-AE-FatimaNeural", + AR_AE_HAMDAN_NEURAL = "ar-AE-HamdanNeural", + AR_BH_LAILA_NEURAL = "ar-BH-LailaNeural", + AR_BH_ALI_NEURAL = "ar-BH-AliNeural", + AR_DZ_AMINA_NEURAL = "ar-DZ-AminaNeural", + AR_DZ_ISMAEL_NEURAL = "ar-DZ-IsmaelNeural", + AR_EG_SALMA_NEURAL = "ar-EG-SalmaNeural", + AR_EG_SHAKIR_NEURAL = "ar-EG-ShakirNeural", + AR_IQ_RANA_NEURAL = "ar-IQ-RanaNeural", + AR_IQ_BASSEL_NEURAL = "ar-IQ-BasselNeural", + AR_JO_SANA_NEURAL = "ar-JO-SanaNeural", + AR_JO_TAIM_NEURAL = "ar-JO-TaimNeural", + AR_KW_NOURA_NEURAL = "ar-KW-NouraNeural", + AR_KW_FAHED_NEURAL = "ar-KW-FahedNeural", + AR_LB_LAYLA_NEURAL = "ar-LB-LaylaNeural", + AR_LB_RAMI_NEURAL = "ar-LB-RamiNeural", + AR_LY_IMAN_NEURAL = "ar-LY-ImanNeural", + AR_LY_OMAR_NEURAL = "ar-LY-OmarNeural", + AR_MA_MOUNA_NEURAL = "ar-MA-MounaNeural", + AR_MA_JAMAL_NEURAL = "ar-MA-JamalNeural", + AR_OM_AYSHA_NEURAL = "ar-OM-AyshaNeural", + AR_OM_ABDULLAH_NEURAL = "ar-OM-AbdullahNeural", + AR_QA_AMAL_NEURAL = "ar-QA-AmalNeural", + AR_QA_MOAZ_NEURAL = "ar-QA-MoazNeural", + AR_SA_ZARIYAH_NEURAL = "ar-SA-ZariyahNeural", + AR_SA_HAMED_NEURAL = "ar-SA-HamedNeural", + AR_SY_AMANY_NEURAL = "ar-SY-AmanyNeural", + AR_SY_LAITH_NEURAL = "ar-SY-LaithNeural", + AR_TN_REEM_NEURAL = "ar-TN-ReemNeural", + AR_TN_HEDI_NEURAL = "ar-TN-HediNeural", + AR_YE_MARYAM_NEURAL = "ar-YE-MaryamNeural", + AR_YE_SALEH_NEURAL = "ar-YE-SalehNeural", + AS_IN_PRIYOM_NEURAL = "as-IN-PriyomNeural", + AS_IN_YASHICA_NEURAL = "as-IN-YashicaNeural", + AZ_AZ_BANU_NEURAL = "az-AZ-BanuNeural", + AZ_AZ_BABEK_NEURAL = "az-AZ-BabekNeural", + BG_BG_KALINA_NEURAL = "bg-BG-KalinaNeural", + BG_BG_BORISLAV_NEURAL = "bg-BG-BorislavNeural", + BN_BD_NABANITA_NEURAL = "bn-BD-NabanitaNeural", + BN_BD_PRADEEP_NEURAL = "bn-BD-PradeepNeural", + BN_IN_TANISHAA_NEURAL = "bn-IN-TanishaaNeural", + BN_IN_BASHKAR_NEURAL = "bn-IN-BashkarNeural", + BS_BA_VESNA_NEURAL = "bs-BA-VesnaNeural", + BS_BA_GORAN_NEURAL = "bs-BA-GoranNeural", + CA_ES_JOANA_NEURAL = "ca-ES-JoanaNeural", + CA_ES_ENRIC_NEURAL = "ca-ES-EnricNeural", + CA_ES_ALBA_NEURAL = "ca-ES-AlbaNeural", + CS_CZ_VLASTA_NEURAL = "cs-CZ-VlastaNeural", + CS_CZ_ANTONIN_NEURAL = "cs-CZ-AntoninNeural", + CY_GB_NIA_NEURAL = "cy-GB-NiaNeural", + CY_GB_ALED_NEURAL = "cy-GB-AledNeural", + DA_DK_CHRISTEL_NEURAL = "da-DK-ChristelNeural", + DA_DK_JEPPE_NEURAL = "da-DK-JeppeNeural", + DE_AT_INGRID_NEURAL = "de-AT-IngridNeural", + DE_AT_JONAS_NEURAL = "de-AT-JonasNeural", + DE_CH_LENI_NEURAL = "de-CH-LeniNeural", + DE_CH_JAN_NEURAL = "de-CH-JanNeural", + DE_DE_KATJA_NEURAL = "de-DE-KatjaNeural", + DE_DE_CONRAD_NEURAL = "de-DE-ConradNeural", + DE_DE_AMALA_NEURAL = "de-DE-AmalaNeural", + DE_DE_BERND_NEURAL = "de-DE-BerndNeural", + DE_DE_CHRISTOPH_NEURAL = "de-DE-ChristophNeural", + DE_DE_ELKE_NEURAL = "de-DE-ElkeNeural", + DE_DE_FLORIANMULTILINGUAL_NEURAL = "de-DE-FlorianMultilingualNeural", + DE_DE_GISELA_NEURAL = "de-DE-GiselaNeural", + DE_DE_KASPER_NEURAL = "de-DE-KasperNeural", + DE_DE_KILLIAN_NEURAL = "de-DE-KillianNeural", + DE_DE_KLARISSA_NEURAL = "de-DE-KlarissaNeural", + DE_DE_KLAUS_NEURAL = "de-DE-KlausNeural", + DE_DE_LOUISA_NEURAL = "de-DE-LouisaNeural", + DE_DE_MAJA_NEURAL = "de-DE-MajaNeural", + DE_DE_RALF_NEURAL = "de-DE-RalfNeural", + DE_DE_SERAPHINAMULTILINGUAL_NEURAL = "de-DE-SeraphinaMultilingualNeural", + DE_DE_TANJA_NEURAL = "de-DE-TanjaNeural", + EL_GR_ATHINA_NEURAL = "el-GR-AthinaNeural", + EL_GR_NESTORAS_NEURAL = "el-GR-NestorasNeural", + EN_AU_NATASHA_NEURAL = "en-AU-NatashaNeural", + EN_AU_WILLIAM_NEURAL = "en-AU-WilliamNeural", + EN_AU_ANNETTE_NEURAL = "en-AU-AnnetteNeural", + EN_AU_CARLY_NEURAL = "en-AU-CarlyNeural", + EN_AU_DARREN_NEURAL = "en-AU-DarrenNeural", + EN_AU_DUNCAN_NEURAL = "en-AU-DuncanNeural", + EN_AU_ELSIE_NEURAL = "en-AU-ElsieNeural", + EN_AU_FREYA_NEURAL = "en-AU-FreyaNeural", + EN_AU_JOANNE_NEURAL = "en-AU-JoanneNeural", + EN_AU_KEN_NEURAL = "en-AU-KenNeural", + EN_AU_KIM_NEURAL = "en-AU-KimNeural", + EN_AU_NEIL_NEURAL = "en-AU-NeilNeural", + EN_AU_TIM_NEURAL = "en-AU-TimNeural", + EN_AU_TINA_NEURAL = "en-AU-TinaNeural", + EN_CA_CLARA_NEURAL = "en-CA-ClaraNeural", + EN_CA_LIAM_NEURAL = "en-CA-LiamNeural", + EN_GB_SONIA_NEURAL = "en-GB-SoniaNeural", + EN_GB_RYAN_NEURAL = "en-GB-RyanNeural", + EN_GB_LIBBY_NEURAL = "en-GB-LibbyNeural", + EN_GB_ABBI_NEURAL = "en-GB-AbbiNeural", + EN_GB_ADAMULTILINGUAL_NEURAL = "en-GB-AdaMultilingualNeural", + EN_GB_ALFIE_NEURAL = "en-GB-AlfieNeural", + EN_GB_BELLA_NEURAL = "en-GB-BellaNeural", + EN_GB_ELLIOT_NEURAL = "en-GB-ElliotNeural", + EN_GB_ETHAN_NEURAL = "en-GB-EthanNeural", + EN_GB_HOLLIE_NEURAL = "en-GB-HollieNeural", + EN_GB_MAISIE_NEURAL = "en-GB-MaisieNeural", + EN_GB_NOAH_NEURAL = "en-GB-NoahNeural", + EN_GB_OLIVER_NEURAL = "en-GB-OliverNeural", + EN_GB_OLIVIA_NEURAL = "en-GB-OliviaNeural", + EN_GB_THOMAS_NEURAL = "en-GB-ThomasNeural", + EN_GB_OLLIEMULTILINGUAL_NEURAL = "en-GB-OllieMultilingualNeural", + EN_GB_MIA_NEURAL = "en-GB-MiaNeural", + EN_HK_YAN_NEURAL = "en-HK-YanNeural", + EN_HK_SAM_NEURAL = "en-HK-SamNeural", + EN_IE_EMILY_NEURAL = "en-IE-EmilyNeural", + EN_IE_CONNOR_NEURAL = "en-IE-ConnorNeural", + EN_IN_NEERJA_NEURAL = "en-IN-NeerjaNeural", + EN_IN_PRABHAT_NEURAL = "en-IN-PrabhatNeural", + EN_IN_AARAV_NEURAL = "en-IN-AaravNeural", + EN_IN_AASHI_NEURAL = "en-IN-AashiNeural", + EN_IN_ANANYA_NEURAL = "en-IN-AnanyaNeural", + EN_IN_KAVYA_NEURAL = "en-IN-KavyaNeural", + EN_IN_KUNAL_NEURAL = "en-IN-KunalNeural", + EN_IN_REHAAN_NEURAL = "en-IN-RehaanNeural", + EN_KE_ASILIA_NEURAL = "en-KE-AsiliaNeural", + EN_KE_CHILEMBA_NEURAL = "en-KE-ChilembaNeural", + EN_NG_EZINNE_NEURAL = "en-NG-EzinneNeural", + EN_NG_ABEO_NEURAL = "en-NG-AbeoNeural", + EN_NZ_MOLLY_NEURAL = "en-NZ-MollyNeural", + EN_NZ_MITCHELL_NEURAL = "en-NZ-MitchellNeural", + EN_PH_ROSA_NEURAL = "en-PH-RosaNeural", + EN_PH_JAMES_NEURAL = "en-PH-JamesNeural", + EN_SG_LUNA_NEURAL = "en-SG-LunaNeural", + EN_SG_WAYNE_NEURAL = "en-SG-WayneNeural", + EN_TZ_IMANI_NEURAL = "en-TZ-ImaniNeural", + EN_TZ_ELIMU_NEURAL = "en-TZ-ElimuNeural", + EN_US_AVAMULTILINGUAL_NEURAL = "en-US-AvaMultilingualNeural", + EN_US_ANDREWMULTILINGUAL_NEURAL = "en-US-AndrewMultilingualNeural", + EN_US_EMMAMULTILINGUAL_NEURAL = "en-US-EmmaMultilingualNeural", + EN_US_BRIANMULTILINGUAL_NEURAL = "en-US-BrianMultilingualNeural", + EN_US_AVA_NEURAL = "en-US-AvaNeural", + EN_US_ANDREW_NEURAL = "en-US-AndrewNeural", + EN_US_EMMA_NEURAL = "en-US-EmmaNeural", + EN_US_BRIAN_NEURAL = "en-US-BrianNeural", + EN_US_JENNY_NEURAL = "en-US-JennyNeural", + EN_US_GUY_NEURAL = "en-US-GuyNeural", + EN_US_ARIA_NEURAL = "en-US-AriaNeural", + EN_US_DAVIS_NEURAL = "en-US-DavisNeural", + EN_US_JANE_NEURAL = "en-US-JaneNeural", + EN_US_JASON_NEURAL = "en-US-JasonNeural", + EN_US_SARA_NEURAL = "en-US-SaraNeural", + EN_US_TONY_NEURAL = "en-US-TonyNeural", + EN_US_NANCY_NEURAL = "en-US-NancyNeural", + EN_US_AMBER_NEURAL = "en-US-AmberNeural", + EN_US_ANA_NEURAL = "en-US-AnaNeural", + EN_US_ASHLEY_NEURAL = "en-US-AshleyNeural", + EN_US_BRANDON_NEURAL = "en-US-BrandonNeural", + EN_US_CHRISTOPHER_NEURAL = "en-US-ChristopherNeural", + EN_US_CORA_NEURAL = "en-US-CoraNeural", + EN_US_ELIZABETH_NEURAL = "en-US-ElizabethNeural", + EN_US_ERIC_NEURAL = "en-US-EricNeural", + EN_US_JACOB_NEURAL = "en-US-JacobNeural", + EN_US_JENNYMULTILINGUAL_NEURAL = "en-US-JennyMultilingualNeural", + EN_US_MICHELLE_NEURAL = "en-US-MichelleNeural", + EN_US_MONICA_NEURAL = "en-US-MonicaNeural", + EN_US_ROGER_NEURAL = "en-US-RogerNeural", + EN_US_RYANMULTILINGUAL_NEURAL = "en-US-RyanMultilingualNeural", + EN_US_STEFFAN_NEURAL = "en-US-SteffanNeural", + EN_US_AIGENERATE1_NEURAL = "en-US-AIGenerate1Neural", + EN_US_AIGENERATE2_NEURAL = "en-US-AIGenerate2Neural", + EN_US_BLUE_NEURAL = "en-US-BlueNeural", + EN_US_KAI_NEURAL = "en-US-KaiNeural", + EN_US_LUNA_NEURAL = "en-US-LunaNeural", + EN_ZA_LEAH_NEURAL = "en-ZA-LeahNeural", + EN_ZA_LUKE_NEURAL = "en-ZA-LukeNeural", + ES_AR_ELENA_NEURAL = "es-AR-ElenaNeural", + ES_AR_TOMAS_NEURAL = "es-AR-TomasNeural", + ES_BO_SOFIA_NEURAL = "es-BO-SofiaNeural", + ES_BO_MARCELO_NEURAL = "es-BO-MarceloNeural", + ES_CL_CATALINA_NEURAL = "es-CL-CatalinaNeural", + ES_CL_LORENZO_NEURAL = "es-CL-LorenzoNeural", + ES_CO_SALOME_NEURAL = "es-CO-SalomeNeural", + ES_CO_GONZALO_NEURAL = "es-CO-GonzaloNeural", + ES_CR_MARIA_NEURAL = "es-CR-MariaNeural", + ES_CR_JUAN_NEURAL = "es-CR-JuanNeural", + ES_CU_BELKYS_NEURAL = "es-CU-BelkysNeural", + ES_CU_MANUEL_NEURAL = "es-CU-ManuelNeural", + ES_DO_RAMONA_NEURAL = "es-DO-RamonaNeural", + ES_DO_EMILIO_NEURAL = "es-DO-EmilioNeural", + ES_EC_ANDREA_NEURAL = "es-EC-AndreaNeural", + ES_EC_LUIS_NEURAL = "es-EC-LuisNeural", + ES_ES_ELVIRA_NEURAL = "es-ES-ElviraNeural", + ES_ES_ALVARO_NEURAL = "es-ES-AlvaroNeural", + ES_ES_ABRIL_NEURAL = "es-ES-AbrilNeural", + ES_ES_ARNAU_NEURAL = "es-ES-ArnauNeural", + ES_ES_DARIO_NEURAL = "es-ES-DarioNeural", + ES_ES_ELIAS_NEURAL = "es-ES-EliasNeural", + ES_ES_ESTRELLA_NEURAL = "es-ES-EstrellaNeural", + ES_ES_IRENE_NEURAL = "es-ES-IreneNeural", + ES_ES_LAIA_NEURAL = "es-ES-LaiaNeural", + ES_ES_LIA_NEURAL = "es-ES-LiaNeural", + ES_ES_NIL_NEURAL = "es-ES-NilNeural", + ES_ES_SAUL_NEURAL = "es-ES-SaulNeural", + ES_ES_TEO_NEURAL = "es-ES-TeoNeural", + ES_ES_TRIANA_NEURAL = "es-ES-TrianaNeural", + ES_ES_VERA_NEURAL = "es-ES-VeraNeural", + ES_ES_XIMENA_NEURAL = "es-ES-XimenaNeural", + ES_ES_ARABELLAMULTILINGUAL_NEURAL = "es-ES-ArabellaMultilingualNeural", + ES_ES_ISIDORAMULTILINGUAL_NEURAL = "es-ES-IsidoraMultilingualNeural", + ES_GQ_TERESA_NEURAL = "es-GQ-TeresaNeural", + ES_GQ_JAVIER_NEURAL = "es-GQ-JavierNeural", + ES_GT_MARTA_NEURAL = "es-GT-MartaNeural", + ES_GT_ANDRES_NEURAL = "es-GT-AndresNeural", + ES_HN_KARLA_NEURAL = "es-HN-KarlaNeural", + ES_HN_CARLOS_NEURAL = "es-HN-CarlosNeural", + ES_MX_DALIA_NEURAL = "es-MX-DaliaNeural", + ES_MX_JORGE_NEURAL = "es-MX-JorgeNeural", + ES_MX_BEATRIZ_NEURAL = "es-MX-BeatrizNeural", + ES_MX_CANDELA_NEURAL = "es-MX-CandelaNeural", + ES_MX_CARLOTA_NEURAL = "es-MX-CarlotaNeural", + ES_MX_CECILIO_NEURAL = "es-MX-CecilioNeural", + ES_MX_GERARDO_NEURAL = "es-MX-GerardoNeural", + ES_MX_LARISSA_NEURAL = "es-MX-LarissaNeural", + ES_MX_LIBERTO_NEURAL = "es-MX-LibertoNeural", + ES_MX_LUCIANO_NEURAL = "es-MX-LucianoNeural", + ES_MX_MARINA_NEURAL = "es-MX-MarinaNeural", + ES_MX_NURIA_NEURAL = "es-MX-NuriaNeural", + ES_MX_PELAYO_NEURAL = "es-MX-PelayoNeural", + ES_MX_RENATA_NEURAL = "es-MX-RenataNeural", + ES_MX_YAGO_NEURAL = "es-MX-YagoNeural", + ES_NI_YOLANDA_NEURAL = "es-NI-YolandaNeural", + ES_NI_FEDERICO_NEURAL = "es-NI-FedericoNeural", + ES_PA_MARGARITA_NEURAL = "es-PA-MargaritaNeural", + ES_PA_ROBERTO_NEURAL = "es-PA-RobertoNeural", + ES_PE_CAMILA_NEURAL = "es-PE-CamilaNeural", + ES_PE_ALEX_NEURAL = "es-PE-AlexNeural", + ES_PR_KARINA_NEURAL = "es-PR-KarinaNeural", + ES_PR_VICTOR_NEURAL = "es-PR-VictorNeural", + ES_PY_TANIA_NEURAL = "es-PY-TaniaNeural", + ES_PY_MARIO_NEURAL = "es-PY-MarioNeural", + ES_SV_LORENA_NEURAL = "es-SV-LorenaNeural", + ES_SV_RODRIGO_NEURAL = "es-SV-RodrigoNeural", + ES_US_PALOMA_NEURAL = "es-US-PalomaNeural", + ES_US_ALONSO_NEURAL = "es-US-AlonsoNeural", + ES_UY_VALENTINA_NEURAL = "es-UY-ValentinaNeural", + ES_UY_MATEO_NEURAL = "es-UY-MateoNeural", + ES_VE_PAOLA_NEURAL = "es-VE-PaolaNeural", + ES_VE_SEBASTIAN_NEURAL = "es-VE-SebastianNeural", + ET_EE_ANU_NEURAL = "et-EE-AnuNeural", + ET_EE_KERT_NEURAL = "et-EE-KertNeural", + EU_ES_AINHOA_NEURAL = "eu-ES-AinhoaNeural", + EU_ES_ANDER_NEURAL = "eu-ES-AnderNeural", + FA_IR_DILARA_NEURAL = "fa-IR-DilaraNeural", + FA_IR_FARID_NEURAL = "fa-IR-FaridNeural", + FI_FI_SELMA_NEURAL = "fi-FI-SelmaNeural", + FI_FI_HARRI_NEURAL = "fi-FI-HarriNeural", + FI_FI_NOORA_NEURAL = "fi-FI-NooraNeural", + FIL_PH_BLESSICA_NEURAL = "fil-PH-BlessicaNeural", + FIL_PH_ANGELO_NEURAL = "fil-PH-AngeloNeural", + FR_BE_CHARLINE_NEURAL = "fr-BE-CharlineNeural", + FR_BE_GERARD_NEURAL = "fr-BE-GerardNeural", + FR_CA_SYLVIE_NEURAL = "fr-CA-SylvieNeural", + FR_CA_JEAN_NEURAL = "fr-CA-JeanNeural", + FR_CA_ANTOINE_NEURAL = "fr-CA-AntoineNeural", + FR_CA_THIERRY_NEURAL = "fr-CA-ThierryNeural", + FR_CH_ARIANE_NEURAL = "fr-CH-ArianeNeural", + FR_CH_FABRICE_NEURAL = "fr-CH-FabriceNeural", + FR_FR_DENISE_NEURAL = "fr-FR-DeniseNeural", + FR_FR_HENRI_NEURAL = "fr-FR-HenriNeural", + FR_FR_ALAIN_NEURAL = "fr-FR-AlainNeural", + FR_FR_BRIGITTE_NEURAL = "fr-FR-BrigitteNeural", + FR_FR_CELESTE_NEURAL = "fr-FR-CelesteNeural", + FR_FR_CLAUDE_NEURAL = "fr-FR-ClaudeNeural", + FR_FR_CORALIE_NEURAL = "fr-FR-CoralieNeural", + FR_FR_ELOISE_NEURAL = "fr-FR-EloiseNeural", + FR_FR_JACQUELINE_NEURAL = "fr-FR-JacquelineNeural", + FR_FR_JEROME_NEURAL = "fr-FR-JeromeNeural", + FR_FR_JOSEPHINE_NEURAL = "fr-FR-JosephineNeural", + FR_FR_MAURICE_NEURAL = "fr-FR-MauriceNeural", + FR_FR_REMYMULTILINGUAL_NEURAL = "fr-FR-RemyMultilingualNeural", + FR_FR_VIVIENNEMULTILINGUAL_NEURAL = "fr-FR-VivienneMultilingualNeural", + FR_FR_YVES_NEURAL = "fr-FR-YvesNeural", + FR_FR_YVETTE_NEURAL = "fr-FR-YvetteNeural", + GA_IE_ORLA_NEURAL = "ga-IE-OrlaNeural", + GA_IE_COLM_NEURAL = "ga-IE-ColmNeural", + GL_ES_SABELA_NEURAL = "gl-ES-SabelaNeural", + GL_ES_ROI_NEURAL = "gl-ES-RoiNeural", + GU_IN_DHWANI_NEURAL = "gu-IN-DhwaniNeural", + GU_IN_NIRANJAN_NEURAL = "gu-IN-NiranjanNeural", + HE_IL_HILA_NEURAL = "he-IL-HilaNeural", + HE_IL_AVRI_NEURAL = "he-IL-AvriNeural", + HI_IN_SWARA_NEURAL = "hi-IN-SwaraNeural", + HI_IN_MADHUR_NEURAL = "hi-IN-MadhurNeural", + HI_IN_AARAV_NEURAL = "hi-IN-AaravNeural", + HI_IN_ANANYA_NEURAL = "hi-IN-AnanyaNeural", + HI_IN_KAVYA_NEURAL = "hi-IN-KavyaNeural", + HI_IN_KUNAL_NEURAL = "hi-IN-KunalNeural", + HI_IN_REHAAN_NEURAL = "hi-IN-RehaanNeural", + HR_HR_GABRIJELA_NEURAL = "hr-HR-GabrijelaNeural", + HR_HR_SRECKO_NEURAL = "hr-HR-SreckoNeural", + HU_HU_NOEMI_NEURAL = "hu-HU-NoemiNeural", + HU_HU_TAMAS_NEURAL = "hu-HU-TamasNeural", + HY_AM_ANAHIT_NEURAL = "hy-AM-AnahitNeural", + HY_AM_HAYK_NEURAL = "hy-AM-HaykNeural", + ID_ID_GADIS_NEURAL = "id-ID-GadisNeural", + ID_ID_ARDI_NEURAL = "id-ID-ArdiNeural", + IS_IS_GUDRUN_NEURAL = "is-IS-GudrunNeural", + IS_IS_GUNNAR_NEURAL = "is-IS-GunnarNeural", + IT_IT_ELSA_NEURAL = "it-IT-ElsaNeural", + IT_IT_ISABELLA_NEURAL = "it-IT-IsabellaNeural", + IT_IT_DIEGO_NEURAL = "it-IT-DiegoNeural", + IT_IT_BENIGNO_NEURAL = "it-IT-BenignoNeural", + IT_IT_CALIMERO_NEURAL = "it-IT-CalimeroNeural", + IT_IT_CATALDO_NEURAL = "it-IT-CataldoNeural", + IT_IT_FABIOLA_NEURAL = "it-IT-FabiolaNeural", + IT_IT_FIAMMA_NEURAL = "it-IT-FiammaNeural", + IT_IT_GIANNI_NEURAL = "it-IT-GianniNeural", + IT_IT_GIUSEPPE_NEURAL = "it-IT-GiuseppeNeural", + IT_IT_IMELDA_NEURAL = "it-IT-ImeldaNeural", + IT_IT_IRMA_NEURAL = "it-IT-IrmaNeural", + IT_IT_LISANDRO_NEURAL = "it-IT-LisandroNeural", + IT_IT_PALMIRA_NEURAL = "it-IT-PalmiraNeural", + IT_IT_PIERINA_NEURAL = "it-IT-PierinaNeural", + IT_IT_RINALDO_NEURAL = "it-IT-RinaldoNeural", + IT_IT_ALESSIOMULTILINGUAL_NEURAL = "it-IT-AlessioMultilingualNeural", + IT_IT_ISABELLAMULTILINGUAL_NEURAL = "it-IT-IsabellaMultilingualNeural", + IT_IT_MARCELLOMULTILINGUAL_NEURAL = "it-IT-MarcelloMultilingualNeural", + JA_JP_NANAMI_NEURAL = "ja-JP-NanamiNeural", + JA_JP_KEITA_NEURAL = "ja-JP-KeitaNeural", + JA_JP_AOI_NEURAL = "ja-JP-AoiNeural", + JA_JP_DAICHI_NEURAL = "ja-JP-DaichiNeural", + JA_JP_MAYU_NEURAL = "ja-JP-MayuNeural", + JA_JP_NAOKI_NEURAL = "ja-JP-NaokiNeural", + JA_JP_SHIORI_NEURAL = "ja-JP-ShioriNeural", + JA_JP_MASARUMULTILINGUAL_NEURAL = "ja-JP-MasaruMultilingualNeural", + JV_ID_SITI_NEURAL = "jv-ID-SitiNeural", + JV_ID_DIMAS_NEURAL = "jv-ID-DimasNeural", + KA_GE_EKA_NEURAL = "ka-GE-EkaNeural", + KA_GE_GIORGI_NEURAL = "ka-GE-GiorgiNeural", + KK_KZ_AIGUL_NEURAL = "kk-KZ-AigulNeural", + KK_KZ_DAULET_NEURAL = "kk-KZ-DauletNeural", + KM_KH_SREYMOM_NEURAL = "km-KH-SreymomNeural", + KM_KH_PISETH_NEURAL = "km-KH-PisethNeural", + KN_IN_SAPNA_NEURAL = "kn-IN-SapnaNeural", + KN_IN_GAGAN_NEURAL = "kn-IN-GaganNeural", + KO_KR_SUNHI_NEURAL = "ko-KR-SunHiNeural", + KO_KR_INJOON_NEURAL = "ko-KR-InJoonNeural", + KO_KR_BONGJIN_NEURAL = "ko-KR-BongJinNeural", + KO_KR_GOOKMIN_NEURAL = "ko-KR-GookMinNeural", + KO_KR_HYUNSU_NEURAL = "ko-KR-HyunsuNeural", + KO_KR_JIMIN_NEURAL = "ko-KR-JiMinNeural", + KO_KR_SEOHYEON_NEURAL = "ko-KR-SeoHyeonNeural", + KO_KR_SOONBOK_NEURAL = "ko-KR-SoonBokNeural", + KO_KR_YUJIN_NEURAL = "ko-KR-YuJinNeural", + LO_LA_KEOMANY_NEURAL = "lo-LA-KeomanyNeural", + LO_LA_CHANTHAVONG_NEURAL = "lo-LA-ChanthavongNeural", + LT_LT_ONA_NEURAL = "lt-LT-OnaNeural", + LT_LT_LEONAS_NEURAL = "lt-LT-LeonasNeural", + LV_LV_EVERITA_NEURAL = "lv-LV-EveritaNeural", + LV_LV_NILS_NEURAL = "lv-LV-NilsNeural", + MK_MK_MARIJA_NEURAL = "mk-MK-MarijaNeural", + MK_MK_ALEKSANDAR_NEURAL = "mk-MK-AleksandarNeural", + ML_IN_SOBHANA_NEURAL = "ml-IN-SobhanaNeural", + ML_IN_MIDHUN_NEURAL = "ml-IN-MidhunNeural", + MN_MN_YESUI_NEURAL = "mn-MN-YesuiNeural", + MN_MN_BATAA_NEURAL = "mn-MN-BataaNeural", + MR_IN_AAROHI_NEURAL = "mr-IN-AarohiNeural", + MR_IN_MANOHAR_NEURAL = "mr-IN-ManoharNeural", + MS_MY_YASMIN_NEURAL = "ms-MY-YasminNeural", + MS_MY_OSMAN_NEURAL = "ms-MY-OsmanNeural", + MT_MT_GRACE_NEURAL = "mt-MT-GraceNeural", + MT_MT_JOSEPH_NEURAL = "mt-MT-JosephNeural", + MY_MM_NILAR_NEURAL = "my-MM-NilarNeural", + MY_MM_THIHA_NEURAL = "my-MM-ThihaNeural", + NB_NO_PERNILLE_NEURAL = "nb-NO-PernilleNeural", + NB_NO_FINN_NEURAL = "nb-NO-FinnNeural", + NB_NO_ISELIN_NEURAL = "nb-NO-IselinNeural", + NE_NP_HEMKALA_NEURAL = "ne-NP-HemkalaNeural", + NE_NP_SAGAR_NEURAL = "ne-NP-SagarNeural", + NL_BE_DENA_NEURAL = "nl-BE-DenaNeural", + NL_BE_ARNAUD_NEURAL = "nl-BE-ArnaudNeural", + NL_NL_FENNA_NEURAL = "nl-NL-FennaNeural", + NL_NL_MAARTEN_NEURAL = "nl-NL-MaartenNeural", + NL_NL_COLETTE_NEURAL = "nl-NL-ColetteNeural", + OR_IN_SUBHASINI_NEURAL = "or-IN-SubhasiniNeural", + OR_IN_SUKANT_NEURAL = "or-IN-SukantNeural", + PA_IN_OJAS_NEURAL = "pa-IN-OjasNeural", + PA_IN_VAANI_NEURAL = "pa-IN-VaaniNeural", + PL_PL_AGNIESZKA_NEURAL = "pl-PL-AgnieszkaNeural", + PL_PL_MAREK_NEURAL = "pl-PL-MarekNeural", + PL_PL_ZOFIA_NEURAL = "pl-PL-ZofiaNeural", + PS_AF_LATIFA_NEURAL = "ps-AF-LatifaNeural", + PS_AF_GULNAWAZ_NEURAL = "ps-AF-GulNawazNeural", + PT_BR_FRANCISCA_NEURAL = "pt-BR-FranciscaNeural", + PT_BR_ANTONIO_NEURAL = "pt-BR-AntonioNeural", + PT_BR_BRENDA_NEURAL = "pt-BR-BrendaNeural", + PT_BR_DONATO_NEURAL = "pt-BR-DonatoNeural", + PT_BR_ELZA_NEURAL = "pt-BR-ElzaNeural", + PT_BR_FABIO_NEURAL = "pt-BR-FabioNeural", + PT_BR_GIOVANNA_NEURAL = "pt-BR-GiovannaNeural", + PT_BR_HUMBERTO_NEURAL = "pt-BR-HumbertoNeural", + PT_BR_JULIO_NEURAL = "pt-BR-JulioNeural", + PT_BR_LEILA_NEURAL = "pt-BR-LeilaNeural", + PT_BR_LETICIA_NEURAL = "pt-BR-LeticiaNeural", + PT_BR_MANUELA_NEURAL = "pt-BR-ManuelaNeural", + PT_BR_NICOLAU_NEURAL = "pt-BR-NicolauNeural", + PT_BR_THALITAMULTILINGUAL_NEURAL = "pt-BR-ThalitaMultilingualNeural", + PT_BR_THALITA_NEURAL = "pt-BR-ThalitaNeural", + PT_BR_VALERIO_NEURAL = "pt-BR-ValerioNeural", + PT_BR_YARA_NEURAL = "pt-BR-YaraNeural", + PT_PT_RAQUEL_NEURAL = "pt-PT-RaquelNeural", + PT_PT_DUARTE_NEURAL = "pt-PT-DuarteNeural", + PT_PT_FERNANDA_NEURAL = "pt-PT-FernandaNeural", + RO_RO_ALINA_NEURAL = "ro-RO-AlinaNeural", + RO_RO_EMIL_NEURAL = "ro-RO-EmilNeural", + RU_RU_SVETLANA_NEURAL = "ru-RU-SvetlanaNeural", + RU_RU_DMITRY_NEURAL = "ru-RU-DmitryNeural", + RU_RU_DARIYA_NEURAL = "ru-RU-DariyaNeural", + SI_LK_THILINI_NEURAL = "si-LK-ThiliniNeural", + SI_LK_SAMEERA_NEURAL = "si-LK-SameeraNeural", + SK_SK_VIKTORIA_NEURAL = "sk-SK-ViktoriaNeural", + SK_SK_LUKAS_NEURAL = "sk-SK-LukasNeural", + SL_SI_PETRA_NEURAL = "sl-SI-PetraNeural", + SL_SI_ROK_NEURAL = "sl-SI-RokNeural", + SO_SO_UBAX_NEURAL = "so-SO-UbaxNeural", + SO_SO_MUUSE_NEURAL = "so-SO-MuuseNeural", + SQ_AL_ANILA_NEURAL = "sq-AL-AnilaNeural", + SQ_AL_ILIR_NEURAL = "sq-AL-IlirNeural", + SR_LATN_RS_NICHOLAS_NEURAL = "sr-Latn-RS-NicholasNeural", + SR_LATN_RS_SOPHIE_NEURAL = "sr-Latn-RS-SophieNeural", + SR_RS_SOPHIE_NEURAL = "sr-RS-SophieNeural", + SR_RS_NICHOLAS_NEURAL = "sr-RS-NicholasNeural", + SU_ID_TUTI_NEURAL = "su-ID-TutiNeural", + SU_ID_JAJANG_NEURAL = "su-ID-JajangNeural", + SV_SE_SOFIE_NEURAL = "sv-SE-SofieNeural", + SV_SE_MATTIAS_NEURAL = "sv-SE-MattiasNeural", + SV_SE_HILLEVI_NEURAL = "sv-SE-HilleviNeural", + SW_KE_ZURI_NEURAL = "sw-KE-ZuriNeural", + SW_KE_RAFIKI_NEURAL = "sw-KE-RafikiNeural", + SW_TZ_REHEMA_NEURAL = "sw-TZ-RehemaNeural", + SW_TZ_DAUDI_NEURAL = "sw-TZ-DaudiNeural", + TA_IN_PALLAVI_NEURAL = "ta-IN-PallaviNeural", + TA_IN_VALLUVAR_NEURAL = "ta-IN-ValluvarNeural", + TA_LK_SARANYA_NEURAL = "ta-LK-SaranyaNeural", + TA_LK_KUMAR_NEURAL = "ta-LK-KumarNeural", + TA_MY_KANI_NEURAL = "ta-MY-KaniNeural", + TA_MY_SURYA_NEURAL = "ta-MY-SuryaNeural", + TA_SG_VENBA_NEURAL = "ta-SG-VenbaNeural", + TA_SG_ANBU_NEURAL = "ta-SG-AnbuNeural", + TE_IN_SHRUTI_NEURAL = "te-IN-ShrutiNeural", + TE_IN_MOHAN_NEURAL = "te-IN-MohanNeural", + TH_TH_PREMWADEE_NEURAL = "th-TH-PremwadeeNeural", + TH_TH_NIWAT_NEURAL = "th-TH-NiwatNeural", + TH_TH_ACHARA_NEURAL = "th-TH-AcharaNeural", + TR_TR_EMEL_NEURAL = "tr-TR-EmelNeural", + TR_TR_AHMET_NEURAL = "tr-TR-AhmetNeural", + UK_UA_POLINA_NEURAL = "uk-UA-PolinaNeural", + UK_UA_OSTAP_NEURAL = "uk-UA-OstapNeural", + UR_IN_GUL_NEURAL = "ur-IN-GulNeural", + UR_IN_SALMAN_NEURAL = "ur-IN-SalmanNeural", + UR_PK_UZMA_NEURAL = "ur-PK-UzmaNeural", + UR_PK_ASAD_NEURAL = "ur-PK-AsadNeural", + UZ_UZ_MADINA_NEURAL = "uz-UZ-MadinaNeural", + UZ_UZ_SARDOR_NEURAL = "uz-UZ-SardorNeural", + VI_VN_HOAIMY_NEURAL = "vi-VN-HoaiMyNeural", + VI_VN_NAMMINH_NEURAL = "vi-VN-NamMinhNeural", + WUU_CN_XIAOTONG_NEURAL = "wuu-CN-XiaotongNeural", + WUU_CN_YUNZHE_NEURAL = "wuu-CN-YunzheNeural", + YUE_CN_XIAOMIN_NEURAL = "yue-CN-XiaoMinNeural", + YUE_CN_YUNSONG_NEURAL = "yue-CN-YunSongNeural", + ZH_CN_XIAOXIAO_NEURAL = "zh-CN-XiaoxiaoNeural", + ZH_CN_YUNXI_NEURAL = "zh-CN-YunxiNeural", + ZH_CN_YUNJIAN_NEURAL = "zh-CN-YunjianNeural", + ZH_CN_XIAOYI_NEURAL = "zh-CN-XiaoyiNeural", + ZH_CN_YUNYANG_NEURAL = "zh-CN-YunyangNeural", + ZH_CN_XIAOCHEN_NEURAL = "zh-CN-XiaochenNeural", + ZH_CN_XIAOCHENMULTILINGUAL_NEURAL = "zh-CN-XiaochenMultilingualNeural", + ZH_CN_XIAOHAN_NEURAL = "zh-CN-XiaohanNeural", + ZH_CN_XIAOMENG_NEURAL = "zh-CN-XiaomengNeural", + ZH_CN_XIAOMO_NEURAL = "zh-CN-XiaomoNeural", + ZH_CN_XIAOQIU_NEURAL = "zh-CN-XiaoqiuNeural", + ZH_CN_XIAOROU_NEURAL = "zh-CN-XiaorouNeural", + ZH_CN_XIAORUI_NEURAL = "zh-CN-XiaoruiNeural", + ZH_CN_XIAOSHUANG_NEURAL = "zh-CN-XiaoshuangNeural", + ZH_CN_XIAOXIAODIALECTS_NEURAL = "zh-CN-XiaoxiaoDialectsNeural", + ZH_CN_XIAOXIAOMULTILINGUAL_NEURAL = "zh-CN-XiaoxiaoMultilingualNeural", + ZH_CN_XIAOYAN_NEURAL = "zh-CN-XiaoyanNeural", + ZH_CN_XIAOYOU_NEURAL = "zh-CN-XiaoyouNeural", + ZH_CN_XIAOYUMULTILINGUAL_NEURAL = "zh-CN-XiaoyuMultilingualNeural", + ZH_CN_XIAOZHEN_NEURAL = "zh-CN-XiaozhenNeural", + ZH_CN_YUNFENG_NEURAL = "zh-CN-YunfengNeural", + ZH_CN_YUNHAO_NEURAL = "zh-CN-YunhaoNeural", + ZH_CN_YUNJIE_NEURAL = "zh-CN-YunjieNeural", + ZH_CN_YUNXIA_NEURAL = "zh-CN-YunxiaNeural", + ZH_CN_YUNYE_NEURAL = "zh-CN-YunyeNeural", + ZH_CN_YUNYIMULTILINGUAL_NEURAL = "zh-CN-YunyiMultilingualNeural", + ZH_CN_YUNZE_NEURAL = "zh-CN-YunzeNeural", + ZH_CN_GUANGXI_YUNQI_NEURAL = "zh-CN-guangxi-YunqiNeural", + ZH_CN_HENAN_YUNDENG_NEURAL = "zh-CN-henan-YundengNeural", + ZH_CN_LIAONING_XIAOBEI_NEURAL = "zh-CN-liaoning-XiaobeiNeural", + ZH_CN_LIAONING_YUNBIAO_NEURAL = "zh-CN-liaoning-YunbiaoNeural", + ZH_CN_SHAANXI_XIAONI_NEURAL = "zh-CN-shaanxi-XiaoniNeural", + ZH_CN_SHANDONG_YUNXIANG_NEURAL = "zh-CN-shandong-YunxiangNeural", + ZH_CN_SICHUAN_YUNXI_NEURAL = "zh-CN-sichuan-YunxiNeural", + ZH_HK_HIUMAAN_NEURAL = "zh-HK-HiuMaanNeural", + ZH_HK_WANLUNG_NEURAL = "zh-HK-WanLungNeural", + ZH_HK_HIUGAAI_NEURAL = "zh-HK-HiuGaaiNeural", + ZH_TW_HSIAOCHEN_NEURAL = "zh-TW-HsiaoChenNeural", + ZH_TW_YUNJHE_NEURAL = "zh-TW-YunJheNeural", + ZH_TW_HSIAOYU_NEURAL = "zh-TW-HsiaoYuNeural", + ZU_ZA_THANDO_NEURAL = "zu-ZA-ThandoNeural", + ZU_ZA_THEMBA_NEURAL = "zu-ZA-ThembaNeural" +} + +const AzureVoiceDetails = [ + [ + { + name: AzureVoice.AF_ZA_ADRI_NEURAL, + displayName: "Adri", + languageCode: VoiceLanguage.AF_ZA, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AF_ZA_WILLEM_NEURAL, + displayName: "Willem", + languageCode: VoiceLanguage.AF_ZA, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AM_ET_MEKDES_NEURAL, + displayName: "Mekdes", + languageCode: VoiceLanguage.AM_ET, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AM_ET_AMEHA_NEURAL, + displayName: "Ameha", + languageCode: VoiceLanguage.AM_ET, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_AE_FATIMA_NEURAL, + displayName: "Fatima", + languageCode: VoiceLanguage.AR_AE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_AE_HAMDAN_NEURAL, + displayName: "Hamdan", + languageCode: VoiceLanguage.AR_AE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_BH_LAILA_NEURAL, + displayName: "Laila", + languageCode: VoiceLanguage.AR_BH, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_BH_ALI_NEURAL, + displayName: "Ali", + languageCode: VoiceLanguage.AR_BH, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_DZ_AMINA_NEURAL, + displayName: "Amina", + languageCode: VoiceLanguage.AR_DZ, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_DZ_ISMAEL_NEURAL, + displayName: "Ismael", + languageCode: VoiceLanguage.AR_DZ, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_EG_SALMA_NEURAL, + displayName: "Salma", + languageCode: VoiceLanguage.AR_EG, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_EG_SHAKIR_NEURAL, + displayName: "Shakir", + languageCode: VoiceLanguage.AR_EG, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_IQ_RANA_NEURAL, + displayName: "Rana", + languageCode: VoiceLanguage.AR_IQ, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_IQ_BASSEL_NEURAL, + displayName: "Bassel", + languageCode: VoiceLanguage.AR_IQ, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_JO_SANA_NEURAL, + displayName: "Sana", + languageCode: VoiceLanguage.AR_JO, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_JO_TAIM_NEURAL, + displayName: "Taim", + languageCode: VoiceLanguage.AR_JO, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_KW_NOURA_NEURAL, + displayName: "Noura", + languageCode: VoiceLanguage.AR_KW, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_KW_FAHED_NEURAL, + displayName: "Fahed", + languageCode: VoiceLanguage.AR_KW, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_LB_LAYLA_NEURAL, + displayName: "Layla", + languageCode: VoiceLanguage.AR_LB, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_LB_RAMI_NEURAL, + displayName: "Rami", + languageCode: VoiceLanguage.AR_LB, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_LY_IMAN_NEURAL, + displayName: "Iman", + languageCode: VoiceLanguage.AR_LY, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_LY_OMAR_NEURAL, + displayName: "Omar", + languageCode: VoiceLanguage.AR_LY, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_MA_MOUNA_NEURAL, + displayName: "Mouna", + languageCode: VoiceLanguage.AR_MA, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_MA_JAMAL_NEURAL, + displayName: "Jamal", + languageCode: VoiceLanguage.AR_MA, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_OM_AYSHA_NEURAL, + displayName: "Aysha", + languageCode: VoiceLanguage.AR_OM, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_OM_ABDULLAH_NEURAL, + displayName: "Abdullah", + languageCode: VoiceLanguage.AR_OM, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_QA_AMAL_NEURAL, + displayName: "Amal", + languageCode: VoiceLanguage.AR_QA, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_QA_MOAZ_NEURAL, + displayName: "Moaz", + languageCode: VoiceLanguage.AR_QA, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_SA_ZARIYAH_NEURAL, + displayName: "Zariyah", + languageCode: VoiceLanguage.AR_SA, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_SA_HAMED_NEURAL, + displayName: "Hamed", + languageCode: VoiceLanguage.AR_SA, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_SY_AMANY_NEURAL, + displayName: "Amany", + languageCode: VoiceLanguage.AR_SY, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_SY_LAITH_NEURAL, + displayName: "Laith", + languageCode: VoiceLanguage.AR_SY, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_TN_REEM_NEURAL, + displayName: "Reem", + languageCode: VoiceLanguage.AR_TN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_TN_HEDI_NEURAL, + displayName: "Hedi", + languageCode: VoiceLanguage.AR_TN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AR_YE_MARYAM_NEURAL, + displayName: "Maryam", + languageCode: VoiceLanguage.AR_YE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AR_YE_SALEH_NEURAL, + displayName: "Saleh", + languageCode: VoiceLanguage.AR_YE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AS_IN_PRIYOM_NEURAL, + displayName: "Priyom", + languageCode: VoiceLanguage.AS_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.AS_IN_YASHICA_NEURAL, + displayName: "Yashica", + languageCode: VoiceLanguage.AS_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AZ_AZ_BANU_NEURAL, + displayName: "Banu", + languageCode: VoiceLanguage.AZ_AZ, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.AZ_AZ_BABEK_NEURAL, + displayName: "Babek", + languageCode: VoiceLanguage.AZ_AZ, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.BG_BG_KALINA_NEURAL, + displayName: "Kalina", + languageCode: VoiceLanguage.BG_BG, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.BG_BG_BORISLAV_NEURAL, + displayName: "Borislav", + languageCode: VoiceLanguage.BG_BG, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.BN_BD_NABANITA_NEURAL, + displayName: "Nabanita", + languageCode: VoiceLanguage.BN_BD, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.BN_BD_PRADEEP_NEURAL, + displayName: "Pradeep", + languageCode: VoiceLanguage.BN_BD, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.BN_IN_TANISHAA_NEURAL, + displayName: "Tanishaa", + languageCode: VoiceLanguage.BN_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.BN_IN_BASHKAR_NEURAL, + displayName: "Bashkar", + languageCode: VoiceLanguage.BN_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.BS_BA_VESNA_NEURAL, + displayName: "Vesna", + languageCode: VoiceLanguage.BS_BA, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.BS_BA_GORAN_NEURAL, + displayName: "Goran", + languageCode: VoiceLanguage.BS_BA, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.CA_ES_JOANA_NEURAL, + displayName: "Joana", + languageCode: VoiceLanguage.CA_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.CA_ES_ENRIC_NEURAL, + displayName: "Enric", + languageCode: VoiceLanguage.CA_ES, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.CA_ES_ALBA_NEURAL, + displayName: "Alba", + languageCode: VoiceLanguage.CA_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.CS_CZ_VLASTA_NEURAL, + displayName: "Vlasta", + languageCode: VoiceLanguage.CS_CZ, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.CS_CZ_ANTONIN_NEURAL, + displayName: "Antonin", + languageCode: VoiceLanguage.CS_CZ, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.CY_GB_NIA_NEURAL, + displayName: "Nia", + languageCode: VoiceLanguage.CY_GB, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.CY_GB_ALED_NEURAL, + displayName: "Aled", + languageCode: VoiceLanguage.CY_GB, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.DA_DK_CHRISTEL_NEURAL, + displayName: "Christel", + languageCode: VoiceLanguage.DA_DK, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.DA_DK_JEPPE_NEURAL, + displayName: "Jeppe", + languageCode: VoiceLanguage.DA_DK, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.DE_AT_INGRID_NEURAL, + displayName: "Ingrid", + languageCode: VoiceLanguage.DE_AT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.DE_AT_JONAS_NEURAL, + displayName: "Jonas", + languageCode: VoiceLanguage.DE_AT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.DE_CH_LENI_NEURAL, + displayName: "Leni", + languageCode: VoiceLanguage.DE_CH, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.DE_CH_JAN_NEURAL, + displayName: "Jan", + languageCode: VoiceLanguage.DE_CH, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.DE_DE_KATJA_NEURAL, + displayName: "Katja", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.DE_DE_CONRAD_NEURAL, + displayName: "Conrad", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.DE_DE_AMALA_NEURAL, + displayName: "Amala", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.DE_DE_BERND_NEURAL, + displayName: "Bernd", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.DE_DE_CHRISTOPH_NEURAL, + displayName: "Christoph", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.DE_DE_ELKE_NEURAL, + displayName: "Elke", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.DE_DE_FLORIANMULTILINGUAL_NEURAL, + displayName: "Florian Multilingual", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.DE_DE_GISELA_NEURAL, + displayName: "Gisela", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.DE_DE_KASPER_NEURAL, + displayName: "Kasper", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.DE_DE_KILLIAN_NEURAL, + displayName: "Killian", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.DE_DE_KLARISSA_NEURAL, + displayName: "Klarissa", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.DE_DE_KLAUS_NEURAL, + displayName: "Klaus", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.DE_DE_LOUISA_NEURAL, + displayName: "Louisa", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.DE_DE_MAJA_NEURAL, + displayName: "Maja", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.DE_DE_RALF_NEURAL, + displayName: "Ralf", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.DE_DE_SERAPHINAMULTILINGUAL_NEURAL, + displayName: "Seraphina Multilingual", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.DE_DE_TANJA_NEURAL, + displayName: "Tanja", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EL_GR_ATHINA_NEURAL, + displayName: "Athina", + languageCode: VoiceLanguage.EL_GR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EL_GR_NESTORAS_NEURAL, + displayName: "Nestoras", + languageCode: VoiceLanguage.EL_GR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_AU_NATASHA_NEURAL, + displayName: "Natasha", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_AU_WILLIAM_NEURAL, + displayName: "William", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_AU_ANNETTE_NEURAL, + displayName: "Annette", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_AU_CARLY_NEURAL, + displayName: "Carly", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_AU_DARREN_NEURAL, + displayName: "Darren", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_AU_DUNCAN_NEURAL, + displayName: "Duncan", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_AU_ELSIE_NEURAL, + displayName: "Elsie", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_AU_FREYA_NEURAL, + displayName: "Freya", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_AU_JOANNE_NEURAL, + displayName: "Joanne", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_AU_KEN_NEURAL, + displayName: "Ken", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_AU_KIM_NEURAL, + displayName: "Kim", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_AU_NEIL_NEURAL, + displayName: "Neil", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_AU_TIM_NEURAL, + displayName: "Tim", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_AU_TINA_NEURAL, + displayName: "Tina", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_CA_CLARA_NEURAL, + displayName: "Clara", + languageCode: VoiceLanguage.EN_CA, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_CA_LIAM_NEURAL, + displayName: "Liam", + languageCode: VoiceLanguage.EN_CA, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_GB_SONIA_NEURAL, + displayName: "Sonia", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_GB_RYAN_NEURAL, + displayName: "Ryan", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_GB_LIBBY_NEURAL, + displayName: "Libby", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_GB_ABBI_NEURAL, + displayName: "Abbi", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_GB_ADAMULTILINGUAL_NEURAL, + displayName: "Ada Multilingual", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_GB_ALFIE_NEURAL, + displayName: "Alfie", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_GB_BELLA_NEURAL, + displayName: "Bella", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_GB_ELLIOT_NEURAL, + displayName: "Elliot", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_GB_ETHAN_NEURAL, + displayName: "Ethan", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_GB_HOLLIE_NEURAL, + displayName: "Hollie", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_GB_MAISIE_NEURAL, + displayName: "Maisie", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_GB_NOAH_NEURAL, + displayName: "Noah", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_GB_OLIVER_NEURAL, + displayName: "Oliver", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_GB_OLIVIA_NEURAL, + displayName: "Olivia", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_GB_THOMAS_NEURAL, + displayName: "Thomas", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_GB_OLLIEMULTILINGUAL_NEURAL, + displayName: "Ollie Multilingual", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_GB_MIA_NEURAL, + displayName: "Mia", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_HK_YAN_NEURAL, + displayName: "Yan", + languageCode: VoiceLanguage.EN_HK, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_HK_SAM_NEURAL, + displayName: "Sam", + languageCode: VoiceLanguage.EN_HK, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_IE_EMILY_NEURAL, + displayName: "Emily", + languageCode: VoiceLanguage.EN_IE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_IE_CONNOR_NEURAL, + displayName: "Connor", + languageCode: VoiceLanguage.EN_IE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_IN_NEERJA_NEURAL, + displayName: "Neerja", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_IN_PRABHAT_NEURAL, + displayName: "Prabhat", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_IN_AARAV_NEURAL, + displayName: "Aarav", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_IN_AASHI_NEURAL, + displayName: "Aashi", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_IN_ANANYA_NEURAL, + displayName: "Ananya", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_IN_KAVYA_NEURAL, + displayName: "Kavya", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_IN_KUNAL_NEURAL, + displayName: "Kunal", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_IN_REHAAN_NEURAL, + displayName: "Rehaan", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_KE_ASILIA_NEURAL, + displayName: "Asilia", + languageCode: VoiceLanguage.EN_KE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_KE_CHILEMBA_NEURAL, + displayName: "Chilemba", + languageCode: VoiceLanguage.EN_KE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_NG_EZINNE_NEURAL, + displayName: "Ezinne", + languageCode: VoiceLanguage.EN_NG, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_NG_ABEO_NEURAL, + displayName: "Abeo", + languageCode: VoiceLanguage.EN_NG, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_NZ_MOLLY_NEURAL, + displayName: "Molly", + languageCode: VoiceLanguage.EN_NZ, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_NZ_MITCHELL_NEURAL, + displayName: "Mitchell", + languageCode: VoiceLanguage.EN_NZ, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_PH_ROSA_NEURAL, + displayName: "Rosa", + languageCode: VoiceLanguage.EN_PH, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_PH_JAMES_NEURAL, + displayName: "James", + languageCode: VoiceLanguage.EN_PH, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_SG_LUNA_NEURAL, + displayName: "Luna", + languageCode: VoiceLanguage.EN_SG, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_SG_WAYNE_NEURAL, + displayName: "Wayne", + languageCode: VoiceLanguage.EN_SG, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_TZ_IMANI_NEURAL, + displayName: "Imani", + languageCode: VoiceLanguage.EN_TZ, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_TZ_ELIMU_NEURAL, + displayName: "Elimu", + languageCode: VoiceLanguage.EN_TZ, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_AVAMULTILINGUAL_NEURAL, + displayName: "Ava Multilingual", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_ANDREWMULTILINGUAL_NEURAL, + displayName: "Andrew Multilingual", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_EMMAMULTILINGUAL_NEURAL, + displayName: "Emma Multilingual", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_BRIANMULTILINGUAL_NEURAL, + displayName: "Brian Multilingual", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_AVA_NEURAL, + displayName: "Ava", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_ANDREW_NEURAL, + displayName: "Andrew", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_EMMA_NEURAL, + displayName: "Emma", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_BRIAN_NEURAL, + displayName: "Brian", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_JENNY_NEURAL, + displayName: "Jenny", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_GUY_NEURAL, + displayName: "Guy", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_ARIA_NEURAL, + displayName: "Aria", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_DAVIS_NEURAL, + displayName: "Davis", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_JANE_NEURAL, + displayName: "Jane", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_JASON_NEURAL, + displayName: "Jason", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_SARA_NEURAL, + displayName: "Sara", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_TONY_NEURAL, + displayName: "Tony", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_NANCY_NEURAL, + displayName: "Nancy", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_AMBER_NEURAL, + displayName: "Amber", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_ANA_NEURAL, + displayName: "Ana", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_ASHLEY_NEURAL, + displayName: "Ashley", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_BRANDON_NEURAL, + displayName: "Brandon", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_CHRISTOPHER_NEURAL, + displayName: "Christopher", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_CORA_NEURAL, + displayName: "Cora", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_ELIZABETH_NEURAL, + displayName: "Elizabeth", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_ERIC_NEURAL, + displayName: "Eric", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_JACOB_NEURAL, + displayName: "Jacob", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_JENNYMULTILINGUAL_NEURAL, + displayName: "Jenny Multilingual", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_MICHELLE_NEURAL, + displayName: "Michelle", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_MONICA_NEURAL, + displayName: "Monica", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_ROGER_NEURAL, + displayName: "Roger", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_RYANMULTILINGUAL_NEURAL, + displayName: "Ryan Multilingual", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_STEFFAN_NEURAL, + displayName: "Steffan", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_AIGENERATE1_NEURAL, + displayName: "AIGenerate1", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_AIGENERATE2_NEURAL, + displayName: "AIGenerate2", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_US_BLUE_NEURAL, + displayName: "Blue", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.NEUTRAL + }, + { + name: AzureVoice.EN_US_KAI_NEURAL, + displayName: "Kai", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EN_US_LUNA_NEURAL, + displayName: "Luna", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_ZA_LEAH_NEURAL, + displayName: "Leah", + languageCode: VoiceLanguage.EN_ZA, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EN_ZA_LUKE_NEURAL, + displayName: "Luke", + languageCode: VoiceLanguage.EN_ZA, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_AR_ELENA_NEURAL, + displayName: "Elena", + languageCode: VoiceLanguage.ES_AR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_AR_TOMAS_NEURAL, + displayName: "Tomas", + languageCode: VoiceLanguage.ES_AR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_BO_SOFIA_NEURAL, + displayName: "Sofia", + languageCode: VoiceLanguage.ES_BO, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_BO_MARCELO_NEURAL, + displayName: "Marcelo", + languageCode: VoiceLanguage.ES_BO, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_CL_CATALINA_NEURAL, + displayName: "Catalina", + languageCode: VoiceLanguage.ES_CL, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_CL_LORENZO_NEURAL, + displayName: "Lorenzo", + languageCode: VoiceLanguage.ES_CL, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_CO_SALOME_NEURAL, + displayName: "Salome", + languageCode: VoiceLanguage.ES_CO, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_CO_GONZALO_NEURAL, + displayName: "Gonzalo", + languageCode: VoiceLanguage.ES_CO, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_CR_MARIA_NEURAL, + displayName: "Maria", + languageCode: VoiceLanguage.ES_CR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_CR_JUAN_NEURAL, + displayName: "Juan", + languageCode: VoiceLanguage.ES_CR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_CU_BELKYS_NEURAL, + displayName: "Belkys", + languageCode: VoiceLanguage.ES_CU, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_CU_MANUEL_NEURAL, + displayName: "Manuel", + languageCode: VoiceLanguage.ES_CU, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_DO_RAMONA_NEURAL, + displayName: "Ramona", + languageCode: VoiceLanguage.ES_DO, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_DO_EMILIO_NEURAL, + displayName: "Emilio", + languageCode: VoiceLanguage.ES_DO, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_EC_ANDREA_NEURAL, + displayName: "Andrea", + languageCode: VoiceLanguage.ES_EC, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_EC_LUIS_NEURAL, + displayName: "Luis", + languageCode: VoiceLanguage.ES_EC, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_ES_ELVIRA_NEURAL, + displayName: "Elvira", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_ES_ALVARO_NEURAL, + displayName: "Alvaro", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_ES_ABRIL_NEURAL, + displayName: "Abril", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_ES_ARNAU_NEURAL, + displayName: "Arnau", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_ES_DARIO_NEURAL, + displayName: "Dario", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_ES_ELIAS_NEURAL, + displayName: "Elias", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_ES_ESTRELLA_NEURAL, + displayName: "Estrella", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_ES_IRENE_NEURAL, + displayName: "Irene", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_ES_LAIA_NEURAL, + displayName: "Laia", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_ES_LIA_NEURAL, + displayName: "Lia", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_ES_NIL_NEURAL, + displayName: "Nil", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_ES_SAUL_NEURAL, + displayName: "Saul", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_ES_TEO_NEURAL, + displayName: "Teo", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_ES_TRIANA_NEURAL, + displayName: "Triana", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_ES_VERA_NEURAL, + displayName: "Vera", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_ES_XIMENA_NEURAL, + displayName: "Ximena", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_ES_ARABELLAMULTILINGUAL_NEURAL, + displayName: "Arabella Multilingual", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_ES_ISIDORAMULTILINGUAL_NEURAL, + displayName: "Isidora Multilingual", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_GQ_TERESA_NEURAL, + displayName: "Teresa", + languageCode: VoiceLanguage.ES_GQ, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_GQ_JAVIER_NEURAL, + displayName: "Javier", + languageCode: VoiceLanguage.ES_GQ, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_GT_MARTA_NEURAL, + displayName: "Marta", + languageCode: VoiceLanguage.ES_GT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_GT_ANDRES_NEURAL, + displayName: "Andres", + languageCode: VoiceLanguage.ES_GT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_HN_KARLA_NEURAL, + displayName: "Karla", + languageCode: VoiceLanguage.ES_HN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_HN_CARLOS_NEURAL, + displayName: "Carlos", + languageCode: VoiceLanguage.ES_HN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_MX_DALIA_NEURAL, + displayName: "Dalia", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_MX_JORGE_NEURAL, + displayName: "Jorge", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_MX_BEATRIZ_NEURAL, + displayName: "Beatriz", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_MX_CANDELA_NEURAL, + displayName: "Candela", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_MX_CARLOTA_NEURAL, + displayName: "Carlota", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_MX_CECILIO_NEURAL, + displayName: "Cecilio", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_MX_GERARDO_NEURAL, + displayName: "Gerardo", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_MX_LARISSA_NEURAL, + displayName: "Larissa", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_MX_LIBERTO_NEURAL, + displayName: "Liberto", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_MX_LUCIANO_NEURAL, + displayName: "Luciano", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_MX_MARINA_NEURAL, + displayName: "Marina", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_MX_NURIA_NEURAL, + displayName: "Nuria", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_MX_PELAYO_NEURAL, + displayName: "Pelayo", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_MX_RENATA_NEURAL, + displayName: "Renata", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_MX_YAGO_NEURAL, + displayName: "Yago", + languageCode: VoiceLanguage.ES_MX, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_NI_YOLANDA_NEURAL, + displayName: "Yolanda", + languageCode: VoiceLanguage.ES_NI, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_NI_FEDERICO_NEURAL, + displayName: "Federico", + languageCode: VoiceLanguage.ES_NI, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_PA_MARGARITA_NEURAL, + displayName: "Margarita", + languageCode: VoiceLanguage.ES_PA, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_PA_ROBERTO_NEURAL, + displayName: "Roberto", + languageCode: VoiceLanguage.ES_PA, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_PE_CAMILA_NEURAL, + displayName: "Camila", + languageCode: VoiceLanguage.ES_PE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_PE_ALEX_NEURAL, + displayName: "Alex", + languageCode: VoiceLanguage.ES_PE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_PR_KARINA_NEURAL, + displayName: "Karina", + languageCode: VoiceLanguage.ES_PR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_PR_VICTOR_NEURAL, + displayName: "Victor", + languageCode: VoiceLanguage.ES_PR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_PY_TANIA_NEURAL, + displayName: "Tania", + languageCode: VoiceLanguage.ES_PY, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_PY_MARIO_NEURAL, + displayName: "Mario", + languageCode: VoiceLanguage.ES_PY, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_SV_LORENA_NEURAL, + displayName: "Lorena", + languageCode: VoiceLanguage.ES_SV, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_SV_RODRIGO_NEURAL, + displayName: "Rodrigo", + languageCode: VoiceLanguage.ES_SV, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_US_PALOMA_NEURAL, + displayName: "Paloma", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_US_ALONSO_NEURAL, + displayName: "Alonso", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_UY_VALENTINA_NEURAL, + displayName: "Valentina", + languageCode: VoiceLanguage.ES_UY, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_UY_MATEO_NEURAL, + displayName: "Mateo", + languageCode: VoiceLanguage.ES_UY, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ES_VE_PAOLA_NEURAL, + displayName: "Paola", + languageCode: VoiceLanguage.ES_VE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ES_VE_SEBASTIAN_NEURAL, + displayName: "Sebastian", + languageCode: VoiceLanguage.ES_VE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ET_EE_ANU_NEURAL, + displayName: "Anu", + languageCode: VoiceLanguage.ET_EE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ET_EE_KERT_NEURAL, + displayName: "Kert", + languageCode: VoiceLanguage.ET_EE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.EU_ES_AINHOA_NEURAL, + displayName: "Ainhoa", + languageCode: VoiceLanguage.EU_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.EU_ES_ANDER_NEURAL, + displayName: "Ander", + languageCode: VoiceLanguage.EU_ES, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FA_IR_DILARA_NEURAL, + displayName: "Dilara", + languageCode: VoiceLanguage.FA_IR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FA_IR_FARID_NEURAL, + displayName: "Farid", + languageCode: VoiceLanguage.FA_IR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FI_FI_SELMA_NEURAL, + displayName: "Selma", + languageCode: VoiceLanguage.FI_FI, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FI_FI_HARRI_NEURAL, + displayName: "Harri", + languageCode: VoiceLanguage.FI_FI, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FI_FI_NOORA_NEURAL, + displayName: "Noora", + languageCode: VoiceLanguage.FI_FI, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FIL_PH_BLESSICA_NEURAL, + displayName: "Blessica", + languageCode: VoiceLanguage.FIL_PH, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FIL_PH_ANGELO_NEURAL, + displayName: "Angelo", + languageCode: VoiceLanguage.FIL_PH, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FR_BE_CHARLINE_NEURAL, + displayName: "Charline", + languageCode: VoiceLanguage.FR_BE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FR_BE_GERARD_NEURAL, + displayName: "Gerard", + languageCode: VoiceLanguage.FR_BE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FR_CA_SYLVIE_NEURAL, + displayName: "Sylvie", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FR_CA_JEAN_NEURAL, + displayName: "Jean", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FR_CA_ANTOINE_NEURAL, + displayName: "Antoine", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FR_CA_THIERRY_NEURAL, + displayName: "Thierry", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FR_CH_ARIANE_NEURAL, + displayName: "Ariane", + languageCode: VoiceLanguage.FR_CH, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FR_CH_FABRICE_NEURAL, + displayName: "Fabrice", + languageCode: VoiceLanguage.FR_CH, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FR_FR_DENISE_NEURAL, + displayName: "Denise", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FR_FR_HENRI_NEURAL, + displayName: "Henri", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FR_FR_ALAIN_NEURAL, + displayName: "Alain", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FR_FR_BRIGITTE_NEURAL, + displayName: "Brigitte", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FR_FR_CELESTE_NEURAL, + displayName: "Celeste", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FR_FR_CLAUDE_NEURAL, + displayName: "Claude", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FR_FR_CORALIE_NEURAL, + displayName: "Coralie", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FR_FR_ELOISE_NEURAL, + displayName: "Eloise", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FR_FR_JACQUELINE_NEURAL, + displayName: "Jacqueline", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FR_FR_JEROME_NEURAL, + displayName: "Jerome", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FR_FR_JOSEPHINE_NEURAL, + displayName: "Josephine", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FR_FR_MAURICE_NEURAL, + displayName: "Maurice", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FR_FR_REMYMULTILINGUAL_NEURAL, + displayName: "Remy Multilingual", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FR_FR_VIVIENNEMULTILINGUAL_NEURAL, + displayName: "Vivienne Multilingual", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.FR_FR_YVES_NEURAL, + displayName: "Yves", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.FR_FR_YVETTE_NEURAL, + displayName: "Yvette", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.GA_IE_ORLA_NEURAL, + displayName: "Orla", + languageCode: VoiceLanguage.GA_IE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.GA_IE_COLM_NEURAL, + displayName: "Colm", + languageCode: VoiceLanguage.GA_IE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.GL_ES_SABELA_NEURAL, + displayName: "Sabela", + languageCode: VoiceLanguage.GL_ES, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.GL_ES_ROI_NEURAL, + displayName: "Roi", + languageCode: VoiceLanguage.GL_ES, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.GU_IN_DHWANI_NEURAL, + displayName: "Dhwani", + languageCode: VoiceLanguage.GU_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.GU_IN_NIRANJAN_NEURAL, + displayName: "Niranjan", + languageCode: VoiceLanguage.GU_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.HE_IL_HILA_NEURAL, + displayName: "Hila", + languageCode: VoiceLanguage.HE_IL, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.HE_IL_AVRI_NEURAL, + displayName: "Avri", + languageCode: VoiceLanguage.HE_IL, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.HI_IN_SWARA_NEURAL, + displayName: "Swara", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.HI_IN_MADHUR_NEURAL, + displayName: "Madhur", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.HI_IN_AARAV_NEURAL, + displayName: "Aarav", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.HI_IN_ANANYA_NEURAL, + displayName: "Ananya", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.HI_IN_KAVYA_NEURAL, + displayName: "Kavya", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.HI_IN_KUNAL_NEURAL, + displayName: "Kunal", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.HI_IN_REHAAN_NEURAL, + displayName: "Rehaan", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.HR_HR_GABRIJELA_NEURAL, + displayName: "Gabrijela", + languageCode: VoiceLanguage.HR_HR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.HR_HR_SRECKO_NEURAL, + displayName: "Srecko", + languageCode: VoiceLanguage.HR_HR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.HU_HU_NOEMI_NEURAL, + displayName: "Noemi", + languageCode: VoiceLanguage.HU_HU, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.HU_HU_TAMAS_NEURAL, + displayName: "Tamas", + languageCode: VoiceLanguage.HU_HU, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.HY_AM_ANAHIT_NEURAL, + displayName: "Anahit", + languageCode: VoiceLanguage.HY_AM, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.HY_AM_HAYK_NEURAL, + displayName: "Hayk", + languageCode: VoiceLanguage.HY_AM, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ID_ID_GADIS_NEURAL, + displayName: "Gadis", + languageCode: VoiceLanguage.ID_ID, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ID_ID_ARDI_NEURAL, + displayName: "Ardi", + languageCode: VoiceLanguage.ID_ID, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.IS_IS_GUDRUN_NEURAL, + displayName: "Gudrun", + languageCode: VoiceLanguage.IS_IS, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.IS_IS_GUNNAR_NEURAL, + displayName: "Gunnar", + languageCode: VoiceLanguage.IS_IS, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.IT_IT_ELSA_NEURAL, + displayName: "Elsa", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.IT_IT_ISABELLA_NEURAL, + displayName: "Isabella", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.IT_IT_DIEGO_NEURAL, + displayName: "Diego", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.IT_IT_BENIGNO_NEURAL, + displayName: "Benigno", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.IT_IT_CALIMERO_NEURAL, + displayName: "Calimero", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.IT_IT_CATALDO_NEURAL, + displayName: "Cataldo", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.IT_IT_FABIOLA_NEURAL, + displayName: "Fabiola", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.IT_IT_FIAMMA_NEURAL, + displayName: "Fiamma", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.IT_IT_GIANNI_NEURAL, + displayName: "Gianni", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.IT_IT_GIUSEPPE_NEURAL, + displayName: "Giuseppe", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.IT_IT_IMELDA_NEURAL, + displayName: "Imelda", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.IT_IT_IRMA_NEURAL, + displayName: "Irma", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.IT_IT_LISANDRO_NEURAL, + displayName: "Lisandro", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.IT_IT_PALMIRA_NEURAL, + displayName: "Palmira", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.IT_IT_PIERINA_NEURAL, + displayName: "Pierina", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.IT_IT_RINALDO_NEURAL, + displayName: "Rinaldo", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.IT_IT_ALESSIOMULTILINGUAL_NEURAL, + displayName: "Alessio Multilingual", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.IT_IT_ISABELLAMULTILINGUAL_NEURAL, + displayName: "Isabella Multilingual", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.IT_IT_MARCELLOMULTILINGUAL_NEURAL, + displayName: "Marcello Multilingual", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.JA_JP_NANAMI_NEURAL, + displayName: "Nanami", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.JA_JP_KEITA_NEURAL, + displayName: "Keita", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.JA_JP_AOI_NEURAL, + displayName: "Aoi", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.JA_JP_DAICHI_NEURAL, + displayName: "Daichi", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.JA_JP_MAYU_NEURAL, + displayName: "Mayu", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.JA_JP_NAOKI_NEURAL, + displayName: "Naoki", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.JA_JP_SHIORI_NEURAL, + displayName: "Shiori", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.JA_JP_MASARUMULTILINGUAL_NEURAL, + displayName: "Masaru Multilingual", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.JV_ID_SITI_NEURAL, + displayName: "Siti", + languageCode: VoiceLanguage.JV_ID, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.JV_ID_DIMAS_NEURAL, + displayName: "Dimas", + languageCode: VoiceLanguage.JV_ID, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.KA_GE_EKA_NEURAL, + displayName: "Eka", + languageCode: VoiceLanguage.KA_GE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.KA_GE_GIORGI_NEURAL, + displayName: "Giorgi", + languageCode: VoiceLanguage.KA_GE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.KK_KZ_AIGUL_NEURAL, + displayName: "Aigul", + languageCode: VoiceLanguage.KK_KZ, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.KK_KZ_DAULET_NEURAL, + displayName: "Daulet", + languageCode: VoiceLanguage.KK_KZ, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.KM_KH_SREYMOM_NEURAL, + displayName: "Sreymom", + languageCode: VoiceLanguage.KM_KH, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.KM_KH_PISETH_NEURAL, + displayName: "Piseth", + languageCode: VoiceLanguage.KM_KH, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.KN_IN_SAPNA_NEURAL, + displayName: "Sapna", + languageCode: VoiceLanguage.KN_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.KN_IN_GAGAN_NEURAL, + displayName: "Gagan", + languageCode: VoiceLanguage.KN_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.KO_KR_SUNHI_NEURAL, + displayName: "Sun-Hi", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.KO_KR_INJOON_NEURAL, + displayName: "InJoon", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.KO_KR_BONGJIN_NEURAL, + displayName: "BongJin", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.KO_KR_GOOKMIN_NEURAL, + displayName: "GookMin", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.KO_KR_HYUNSU_NEURAL, + displayName: "Hyunsu", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.KO_KR_JIMIN_NEURAL, + displayName: "JiMin", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.KO_KR_SEOHYEON_NEURAL, + displayName: "SeoHyeon", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.KO_KR_SOONBOK_NEURAL, + displayName: "SoonBok", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.KO_KR_YUJIN_NEURAL, + displayName: "YuJin", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.LO_LA_KEOMANY_NEURAL, + displayName: "Keomany", + languageCode: VoiceLanguage.LO_LA, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.LO_LA_CHANTHAVONG_NEURAL, + displayName: "Chanthavong", + languageCode: VoiceLanguage.LO_LA, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.LT_LT_ONA_NEURAL, + displayName: "Ona", + languageCode: VoiceLanguage.LT_LT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.LT_LT_LEONAS_NEURAL, + displayName: "Leonas", + languageCode: VoiceLanguage.LT_LT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.LV_LV_EVERITA_NEURAL, + displayName: "Everita", + languageCode: VoiceLanguage.LV_LV, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.LV_LV_NILS_NEURAL, + displayName: "Nils", + languageCode: VoiceLanguage.LV_LV, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.MK_MK_MARIJA_NEURAL, + displayName: "Marija", + languageCode: VoiceLanguage.MK_MK, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.MK_MK_ALEKSANDAR_NEURAL, + displayName: "Aleksandar", + languageCode: VoiceLanguage.MK_MK, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ML_IN_SOBHANA_NEURAL, + displayName: "Sobhana", + languageCode: VoiceLanguage.ML_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ML_IN_MIDHUN_NEURAL, + displayName: "Midhun", + languageCode: VoiceLanguage.ML_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.MN_MN_YESUI_NEURAL, + displayName: "Yesui", + languageCode: VoiceLanguage.MN_MN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.MN_MN_BATAA_NEURAL, + displayName: "Bataa", + languageCode: VoiceLanguage.MN_MN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.MR_IN_AAROHI_NEURAL, + displayName: "Aarohi", + languageCode: VoiceLanguage.MR_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.MR_IN_MANOHAR_NEURAL, + displayName: "Manohar", + languageCode: VoiceLanguage.MR_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.MS_MY_YASMIN_NEURAL, + displayName: "Yasmin", + languageCode: VoiceLanguage.MS_MY, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.MS_MY_OSMAN_NEURAL, + displayName: "Osman", + languageCode: VoiceLanguage.MS_MY, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.MT_MT_GRACE_NEURAL, + displayName: "Grace", + languageCode: VoiceLanguage.MT_MT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.MT_MT_JOSEPH_NEURAL, + displayName: "Joseph", + languageCode: VoiceLanguage.MT_MT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.MY_MM_NILAR_NEURAL, + displayName: "Nilar", + languageCode: VoiceLanguage.MY_MM, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.MY_MM_THIHA_NEURAL, + displayName: "Thiha", + languageCode: VoiceLanguage.MY_MM, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.NB_NO_PERNILLE_NEURAL, + displayName: "Pernille", + languageCode: VoiceLanguage.NB_NO, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.NB_NO_FINN_NEURAL, + displayName: "Finn", + languageCode: VoiceLanguage.NB_NO, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.NB_NO_ISELIN_NEURAL, + displayName: "Iselin", + languageCode: VoiceLanguage.NB_NO, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.NE_NP_HEMKALA_NEURAL, + displayName: "Hemkala", + languageCode: VoiceLanguage.NE_NP, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.NE_NP_SAGAR_NEURAL, + displayName: "Sagar", + languageCode: VoiceLanguage.NE_NP, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.NL_BE_DENA_NEURAL, + displayName: "Dena", + languageCode: VoiceLanguage.NL_BE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.NL_BE_ARNAUD_NEURAL, + displayName: "Arnaud", + languageCode: VoiceLanguage.NL_BE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.NL_NL_FENNA_NEURAL, + displayName: "Fenna", + languageCode: VoiceLanguage.NL_NL, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.NL_NL_MAARTEN_NEURAL, + displayName: "Maarten", + languageCode: VoiceLanguage.NL_NL, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.NL_NL_COLETTE_NEURAL, + displayName: "Colette", + languageCode: VoiceLanguage.NL_NL, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.OR_IN_SUBHASINI_NEURAL, + displayName: "Subhasini", + languageCode: VoiceLanguage.OR_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.OR_IN_SUKANT_NEURAL, + displayName: "Sukant", + languageCode: VoiceLanguage.OR_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.PA_IN_OJAS_NEURAL, + displayName: "Ojas", + languageCode: VoiceLanguage.PA_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.PA_IN_VAANI_NEURAL, + displayName: "Vaani", + languageCode: VoiceLanguage.PA_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PL_PL_AGNIESZKA_NEURAL, + displayName: "Agnieszka", + languageCode: VoiceLanguage.PL_PL, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PL_PL_MAREK_NEURAL, + displayName: "Marek", + languageCode: VoiceLanguage.PL_PL, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.PL_PL_ZOFIA_NEURAL, + displayName: "Zofia", + languageCode: VoiceLanguage.PL_PL, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PS_AF_LATIFA_NEURAL, + displayName: "Latifa", + languageCode: VoiceLanguage.PS_AF, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PS_AF_GULNAWAZ_NEURAL, + displayName: "Gul Nawaz", + languageCode: VoiceLanguage.PS_AF, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.PT_BR_FRANCISCA_NEURAL, + displayName: "Francisca", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PT_BR_ANTONIO_NEURAL, + displayName: "Antonio", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.PT_BR_BRENDA_NEURAL, + displayName: "Brenda", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PT_BR_DONATO_NEURAL, + displayName: "Donato", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.PT_BR_ELZA_NEURAL, + displayName: "Elza", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PT_BR_FABIO_NEURAL, + displayName: "Fabio", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.PT_BR_GIOVANNA_NEURAL, + displayName: "Giovanna", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PT_BR_HUMBERTO_NEURAL, + displayName: "Humberto", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.PT_BR_JULIO_NEURAL, + displayName: "Julio", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.PT_BR_LEILA_NEURAL, + displayName: "Leila", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PT_BR_LETICIA_NEURAL, + displayName: "Leticia", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PT_BR_MANUELA_NEURAL, + displayName: "Manuela", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PT_BR_NICOLAU_NEURAL, + displayName: "Nicolau", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.PT_BR_THALITAMULTILINGUAL_NEURAL, + displayName: "Thalita Multilingual", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PT_BR_THALITA_NEURAL, + displayName: "Thalita", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PT_BR_VALERIO_NEURAL, + displayName: "Valerio", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.PT_BR_YARA_NEURAL, + displayName: "Yara", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PT_PT_RAQUEL_NEURAL, + displayName: "Raquel", + languageCode: VoiceLanguage.PT_PT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.PT_PT_DUARTE_NEURAL, + displayName: "Duarte", + languageCode: VoiceLanguage.PT_PT, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.PT_PT_FERNANDA_NEURAL, + displayName: "Fernanda", + languageCode: VoiceLanguage.PT_PT, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.RO_RO_ALINA_NEURAL, + displayName: "Alina", + languageCode: VoiceLanguage.RO_RO, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.RO_RO_EMIL_NEURAL, + displayName: "Emil", + languageCode: VoiceLanguage.RO_RO, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.RU_RU_SVETLANA_NEURAL, + displayName: "Svetlana", + languageCode: VoiceLanguage.RU_RU, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.RU_RU_DMITRY_NEURAL, + displayName: "Dmitry", + languageCode: VoiceLanguage.RU_RU, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.RU_RU_DARIYA_NEURAL, + displayName: "Dariya", + languageCode: VoiceLanguage.RU_RU, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.SI_LK_THILINI_NEURAL, + displayName: "Thilini", + languageCode: VoiceLanguage.SI_LK, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.SI_LK_SAMEERA_NEURAL, + displayName: "Sameera", + languageCode: VoiceLanguage.SI_LK, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.SK_SK_VIKTORIA_NEURAL, + displayName: "Viktoria", + languageCode: VoiceLanguage.SK_SK, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.SK_SK_LUKAS_NEURAL, + displayName: "Lukas", + languageCode: VoiceLanguage.SK_SK, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.SL_SI_PETRA_NEURAL, + displayName: "Petra", + languageCode: VoiceLanguage.SL_SI, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.SL_SI_ROK_NEURAL, + displayName: "Rok", + languageCode: VoiceLanguage.SL_SI, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.SO_SO_UBAX_NEURAL, + displayName: "Ubax", + languageCode: VoiceLanguage.SO_SO, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.SO_SO_MUUSE_NEURAL, + displayName: "Muuse", + languageCode: VoiceLanguage.SO_SO, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.SQ_AL_ANILA_NEURAL, + displayName: "Anila", + languageCode: VoiceLanguage.SQ_AL, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.SQ_AL_ILIR_NEURAL, + displayName: "Ilir", + languageCode: VoiceLanguage.SQ_AL, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.SR_LATN_RS_NICHOLAS_NEURAL, + displayName: "Nicholas", + languageCode: VoiceLanguage.SR_LATN_RS, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.SR_LATN_RS_SOPHIE_NEURAL, + displayName: "Sophie", + languageCode: VoiceLanguage.SR_LATN_RS, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.SR_RS_SOPHIE_NEURAL, + displayName: "Sophie", + languageCode: VoiceLanguage.SR_RS, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.SR_RS_NICHOLAS_NEURAL, + displayName: "Nicholas", + languageCode: VoiceLanguage.SR_RS, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.SU_ID_TUTI_NEURAL, + displayName: "Tuti", + languageCode: VoiceLanguage.SU_ID, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.SU_ID_JAJANG_NEURAL, + displayName: "Jajang", + languageCode: VoiceLanguage.SU_ID, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.SV_SE_SOFIE_NEURAL, + displayName: "Sofie", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.SV_SE_MATTIAS_NEURAL, + displayName: "Mattias", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.SV_SE_HILLEVI_NEURAL, + displayName: "Hillevi", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.SW_KE_ZURI_NEURAL, + displayName: "Zuri", + languageCode: VoiceLanguage.SW_KE, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.SW_KE_RAFIKI_NEURAL, + displayName: "Rafiki", + languageCode: VoiceLanguage.SW_KE, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.SW_TZ_REHEMA_NEURAL, + displayName: "Rehema", + languageCode: VoiceLanguage.SW_TZ, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.SW_TZ_DAUDI_NEURAL, + displayName: "Daudi", + languageCode: VoiceLanguage.SW_TZ, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.TA_IN_PALLAVI_NEURAL, + displayName: "Pallavi", + languageCode: VoiceLanguage.TA_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.TA_IN_VALLUVAR_NEURAL, + displayName: "Valluvar", + languageCode: VoiceLanguage.TA_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.TA_LK_SARANYA_NEURAL, + displayName: "Saranya", + languageCode: VoiceLanguage.TA_LK, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.TA_LK_KUMAR_NEURAL, + displayName: "Kumar", + languageCode: VoiceLanguage.TA_LK, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.TA_MY_KANI_NEURAL, + displayName: "Kani", + languageCode: VoiceLanguage.TA_MY, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.TA_MY_SURYA_NEURAL, + displayName: "Surya", + languageCode: VoiceLanguage.TA_MY, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.TA_SG_VENBA_NEURAL, + displayName: "Venba", + languageCode: VoiceLanguage.TA_SG, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.TA_SG_ANBU_NEURAL, + displayName: "Anbu", + languageCode: VoiceLanguage.TA_SG, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.TE_IN_SHRUTI_NEURAL, + displayName: "Shruti", + languageCode: VoiceLanguage.TE_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.TE_IN_MOHAN_NEURAL, + displayName: "Mohan", + languageCode: VoiceLanguage.TE_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.TH_TH_PREMWADEE_NEURAL, + displayName: "Premwadee", + languageCode: VoiceLanguage.TH_TH, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.TH_TH_NIWAT_NEURAL, + displayName: "Niwat", + languageCode: VoiceLanguage.TH_TH, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.TH_TH_ACHARA_NEURAL, + displayName: "Achara", + languageCode: VoiceLanguage.TH_TH, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.TR_TR_EMEL_NEURAL, + displayName: "Emel", + languageCode: VoiceLanguage.TR_TR, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.TR_TR_AHMET_NEURAL, + displayName: "Ahmet", + languageCode: VoiceLanguage.TR_TR, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.UK_UA_POLINA_NEURAL, + displayName: "Polina", + languageCode: VoiceLanguage.UK_UA, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.UK_UA_OSTAP_NEURAL, + displayName: "Ostap", + languageCode: VoiceLanguage.UK_UA, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.UR_IN_GUL_NEURAL, + displayName: "Gul", + languageCode: VoiceLanguage.UR_IN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.UR_IN_SALMAN_NEURAL, + displayName: "Salman", + languageCode: VoiceLanguage.UR_IN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.UR_PK_UZMA_NEURAL, + displayName: "Uzma", + languageCode: VoiceLanguage.UR_PK, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.UR_PK_ASAD_NEURAL, + displayName: "Asad", + languageCode: VoiceLanguage.UR_PK, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.UZ_UZ_MADINA_NEURAL, + displayName: "Madina", + languageCode: VoiceLanguage.UZ_UZ, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.UZ_UZ_SARDOR_NEURAL, + displayName: "Sardor", + languageCode: VoiceLanguage.UZ_UZ, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.VI_VN_HOAIMY_NEURAL, + displayName: "HoaiMy", + languageCode: VoiceLanguage.VI_VN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.VI_VN_NAMMINH_NEURAL, + displayName: "NamMinh", + languageCode: VoiceLanguage.VI_VN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.WUU_CN_XIAOTONG_NEURAL, + displayName: "Xiaotong", + languageCode: VoiceLanguage.WUU_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.WUU_CN_YUNZHE_NEURAL, + displayName: "Yunzhe", + languageCode: VoiceLanguage.WUU_CN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.YUE_CN_XIAOMIN_NEURAL, + displayName: "XiaoMin", + languageCode: VoiceLanguage.YUE_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.YUE_CN_YUNSONG_NEURAL, + displayName: "YunSong", + languageCode: VoiceLanguage.YUE_CN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_XIAOXIAO_NEURAL, + displayName: "Xiaoxiao", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_YUNXI_NEURAL, + displayName: "Yunxi", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_YUNJIAN_NEURAL, + displayName: "Yunjian", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_XIAOYI_NEURAL, + displayName: "Xiaoyi", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_YUNYANG_NEURAL, + displayName: "Yunyang", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_XIAOCHEN_NEURAL, + displayName: "Xiaochen", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAOCHENMULTILINGUAL_NEURAL, + displayName: "Xiaochen Multilingual", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAOHAN_NEURAL, + displayName: "Xiaohan", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAOMENG_NEURAL, + displayName: "Xiaomeng", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAOMO_NEURAL, + displayName: "Xiaomo", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAOQIU_NEURAL, + displayName: "Xiaoqiu", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAOROU_NEURAL, + displayName: "Xiaorou", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAORUI_NEURAL, + displayName: "Xiaorui", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAOSHUANG_NEURAL, + displayName: "Xiaoshuang", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAOXIAODIALECTS_NEURAL, + displayName: "Xiaoxiao Dialects", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAOXIAOMULTILINGUAL_NEURAL, + displayName: "Xiaoxiao Multilingual", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAOYAN_NEURAL, + displayName: "Xiaoyan", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAOYOU_NEURAL, + displayName: "Xiaoyou", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAOYUMULTILINGUAL_NEURAL, + displayName: "Xiaoyu Multilingual", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_XIAOZHEN_NEURAL, + displayName: "Xiaozhen", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_YUNFENG_NEURAL, + displayName: "Yunfeng", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_YUNHAO_NEURAL, + displayName: "Yunhao", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_YUNJIE_NEURAL, + displayName: "Yunjie", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_YUNXIA_NEURAL, + displayName: "Yunxia", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_YUNYE_NEURAL, + displayName: "Yunye", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_YUNYIMULTILINGUAL_NEURAL, + displayName: "Yunyi Multilingual", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_YUNZE_NEURAL, + displayName: "Yunze", + languageCode: VoiceLanguage.ZH_CN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_GUANGXI_YUNQI_NEURAL, + displayName: "Yunqi", + languageCode: VoiceLanguage.ZH_CN_GUANGXI, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_HENAN_YUNDENG_NEURAL, + displayName: "Yundeng", + languageCode: VoiceLanguage.ZH_CN_HENAN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_LIAONING_XIAOBEI_NEURAL, + displayName: "Xiaobei", + languageCode: VoiceLanguage.ZH_CN_LIAONING, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_LIAONING_YUNBIAO_NEURAL, + displayName: "Yunbiao", + languageCode: VoiceLanguage.ZH_CN_LIAONING, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_SHAANXI_XIAONI_NEURAL, + displayName: "Xiaoni", + languageCode: VoiceLanguage.ZH_CN_SHAANXI, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_CN_SHANDONG_YUNXIANG_NEURAL, + displayName: "Yunxiang", + languageCode: VoiceLanguage.ZH_CN_SHANDONG, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_CN_SICHUAN_YUNXI_NEURAL, + displayName: "Yunxi", + languageCode: VoiceLanguage.ZH_CN_SICHUAN, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_HK_HIUMAAN_NEURAL, + displayName: "HiuMaan", + languageCode: VoiceLanguage.ZH_HK, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_HK_WANLUNG_NEURAL, + displayName: "WanLung", + languageCode: VoiceLanguage.ZH_HK, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_HK_HIUGAAI_NEURAL, + displayName: "HiuGaai", + languageCode: VoiceLanguage.ZH_HK, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_TW_HSIAOCHEN_NEURAL, + displayName: "HsiaoChen", + languageCode: VoiceLanguage.ZH_TW, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZH_TW_YUNJHE_NEURAL, + displayName: "YunJhe", + languageCode: VoiceLanguage.ZH_TW, + gender: VoiceGender.MALE + }, + { + name: AzureVoice.ZH_TW_HSIAOYU_NEURAL, + displayName: "HsiaoYu", + languageCode: VoiceLanguage.ZH_TW, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZU_ZA_THANDO_NEURAL, + displayName: "Thando", + languageCode: VoiceLanguage.ZU_ZA, + gender: VoiceGender.FEMALE + }, + { + name: AzureVoice.ZU_ZA_THEMBA_NEURAL, + displayName: "Themba", + languageCode: VoiceLanguage.ZU_ZA, + gender: VoiceGender.MALE + } + ] +]; + +export { AzureVoice, AzureVoiceDetails }; diff --git a/mods/common/src/tts/DeepgramVoices.ts b/mods/common/src/tts/DeepgramVoices.ts new file mode 100644 index 000000000..c9a2905d7 --- /dev/null +++ b/mods/common/src/tts/DeepgramVoices.ts @@ -0,0 +1,112 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VoiceGender, VoiceLanguage } from "./types"; + +enum DeepgramVoice { + AURA_ASTERIA_EN = "aura-asteria-en", + AURA_LUNA_EN = "aura-luna-en", + AURA_STELLA_EN = "aura-stella-en", + AURA_ATHENA_EN = "aura-athena-en", + AURA_HERA_EN = "aura-hera-en", + AURA_ORION_EN = "aura-orion-en", + AURA_ARCAS_EN = "aura-arcas-en", + AURA_PERSEUS_EN = "aura-perseus-en", + AURA_ANGUS_EN = "aura-angus-en", + AURA_ORPHEUS_EN = "aura-orpheus-en", + AURA_HELIOS_EN = "aura-helios-en", + AURA_ZEUS_EN = "aura-zeus-en" +} + +const DeepgramVoiceDetails = [ + { + name: DeepgramVoice.AURA_ASTERIA_EN, + displayName: "Asteria", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: DeepgramVoice.AURA_LUNA_EN, + displayName: "Luna", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: DeepgramVoice.AURA_STELLA_EN, + displayName: "Stella", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: DeepgramVoice.AURA_ATHENA_EN, + displayName: "Athena", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: DeepgramVoice.AURA_HERA_EN, + displayName: "Hera", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: DeepgramVoice.AURA_ORION_EN, + displayName: "Orion", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: DeepgramVoice.AURA_ARCAS_EN, + displayName: "Arcas", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: DeepgramVoice.AURA_PERSEUS_EN, + displayName: "Perseus", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: DeepgramVoice.AURA_ANGUS_EN, + displayName: "Angus", + languageCode: VoiceLanguage.EN_IE, + gender: VoiceGender.MALE + }, + { + name: DeepgramVoice.AURA_ORPHEUS_EN, + displayName: "Orpheus", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: DeepgramVoice.AURA_HELIOS_EN, + displayName: "Helios", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: DeepgramVoice.AURA_ZEUS_EN, + displayName: "Zeus", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + } +]; + +export { DeepgramVoice, DeepgramVoiceDetails }; diff --git a/mods/common/src/tts/ElevenLabs.ts b/mods/common/src/tts/ElevenLabs.ts new file mode 100644 index 000000000..3b241aec0 --- /dev/null +++ b/mods/common/src/tts/ElevenLabs.ts @@ -0,0 +1,147 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VoiceGender, VoiceLanguage } from "./types"; + +enum ElevenLabsVoice { + SARAH = "Sarah", + LAURA = "Laura", + CHARLIE = "Charlie", + GEORGE = "George", + CALLUM = "Callum", + LIAM = "Liam", + CHARLOTTE = "Charlotte", + ALICE = "Alice", + MATILDA = "Matilda", + WILL = "Will", + JESSICA = "Jessica", + ERIC = "Eric", + CHRIS = "Chris", + BRIAN = "Brian", + DANIEL = "Daniel", + LILY = "Lily", + BILL = "Bill" +} + +const ElevenLabsVoiceDetails = [ + { + name: ElevenLabsVoice.SARAH, + displayName: "Sarah", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: ElevenLabsVoice.LAURA, + displayName: "Laura", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: ElevenLabsVoice.CHARLIE, + displayName: "Charlie", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: ElevenLabsVoice.GEORGE, + displayName: "George", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: ElevenLabsVoice.CALLUM, + displayName: "Callum", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: ElevenLabsVoice.LIAM, + displayName: "Liam", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: ElevenLabsVoice.CHARLOTTE, + displayName: "Charlotte", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.FEMALE + }, + { + name: ElevenLabsVoice.ALICE, + displayName: "Alice", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: ElevenLabsVoice.MATILDA, + displayName: "Matilda", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: ElevenLabsVoice.WILL, + displayName: "Will", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: ElevenLabsVoice.JESSICA, + displayName: "Jessica", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: ElevenLabsVoice.ERIC, + displayName: "Eric", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: ElevenLabsVoice.CHRIS, + displayName: "Chris", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: ElevenLabsVoice.BRIAN, + displayName: "Brian", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: ElevenLabsVoice.DANIEL, + displayName: "Daniel", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: ElevenLabsVoice.LILY, + displayName: "Lily", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: ElevenLabsVoice.BILL, + displayName: "Bill", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + } +]; + +export { ElevenLabsVoice, ElevenLabsVoiceDetails }; diff --git a/mods/common/src/tts/GoogleVoices.ts b/mods/common/src/tts/GoogleVoices.ts new file mode 100644 index 000000000..699d15f61 --- /dev/null +++ b/mods/common/src/tts/GoogleVoices.ts @@ -0,0 +1,3283 @@ +/* eslint-disable sonarjs/no-duplicate-string */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS"BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VoiceGender, VoiceLanguage } from "./types"; + +enum GoogleVoice { + AF_ZA_STANDARD_A = "af-ZA-Standard-A", + AM_ET_STANDARD_A = "am-ET-Standard-A", + AM_ET_STANDARD_B = "am-ET-Standard-B", + AM_ET_WAVENET_A = "am-ET-Wavenet-A", + AM_ET_WAVENET_B = "am-ET-Wavenet-B", + AR_XA_STANDARD_A = "ar-XA-Standard-A", + AR_XA_STANDARD_B = "ar-XA-Standard-B", + AR_XA_STANDARD_C = "ar-XA-Standard-C", + AR_XA_STANDARD_D = "ar-XA-Standard-D", + AR_XA_WAVENET_A = "ar-XA-Wavenet-A", + AR_XA_WAVENET_B = "ar-XA-Wavenet-B", + AR_XA_WAVENET_C = "ar-XA-Wavenet-C", + AR_XA_WAVENET_D = "ar-XA-Wavenet-D", + BG_BG_STANDARD_A = "bg-BG-Standard-A", + BN_IN_STANDARD_A = "bn-IN-Standard-A", + BN_IN_STANDARD_B = "bn-IN-Standard-B", + BN_IN_STANDARD_C = "bn-IN-Standard-C", + BN_IN_STANDARD_D = "bn-IN-Standard-D", + BN_IN_WAVENET_A = "bn-IN-Wavenet-A", + BN_IN_WAVENET_B = "bn-IN-Wavenet-B", + BN_IN_WAVENET_C = "bn-IN-Wavenet-C", + BN_IN_WAVENET_D = "bn-IN-Wavenet-D", + CA_ES_STANDARD_A = "ca-ES-Standard-A", + CMN_CN_STANDARD_A = "cmn-CN-Standard-A", + CMN_CN_STANDARD_B = "cmn-CN-Standard-B", + CMN_CN_STANDARD_C = "cmn-CN-Standard-C", + CMN_CN_STANDARD_D = "cmn-CN-Standard-D", + CMN_CN_WAVENET_A = "cmn-CN-Wavenet-A", + CMN_CN_WAVENET_B = "cmn-CN-Wavenet-B", + CMN_CN_WAVENET_C = "cmn-CN-Wavenet-C", + CMN_CN_WAVENET_D = "cmn-CN-Wavenet-D", + CMN_TW_STANDARD_A = "cmn-TW-Standard-A", + CMN_TW_STANDARD_B = "cmn-TW-Standard-B", + CMN_TW_STANDARD_C = "cmn-TW-Standard-C", + CMN_TW_WAVENET_A = "cmn-TW-Wavenet-A", + CMN_TW_WAVENET_B = "cmn-TW-Wavenet-B", + CMN_TW_WAVENET_C = "cmn-TW-Wavenet-C", + CS_CZ_STANDARD_A = "cs-CZ-Standard-A", + CS_CZ_WAVENET_A = "cs-CZ-Wavenet-A", + DA_DK_NEURAL2_D = "da-DK-Neural2-D", + DA_DK_STANDARD_A = "da-DK-Standard-A", + DA_DK_STANDARD_C = "da-DK-Standard-C", + DA_DK_STANDARD_D = "da-DK-Standard-D", + DA_DK_STANDARD_E = "da-DK-Standard-E", + DA_DK_WAVENET_A = "da-DK-Wavenet-A", + DA_DK_WAVENET_C = "da-DK-Wavenet-C", + DA_DK_WAVENET_D = "da-DK-Wavenet-D", + DA_DK_WAVENET_E = "da-DK-Wavenet-E", + DE_DE_NEURAL2_A = "de-DE-Neural2-A", + DE_DE_NEURAL2_B = "de-DE-Neural2-B", + DE_DE_NEURAL2_C = "de-DE-Neural2-C", + DE_DE_NEURAL2_D = "de-DE-Neural2-D", + DE_DE_NEURAL2_F = "de-DE-Neural2-F", + DE_DE_POLYGLOT_1 = "de-DE-Polyglot-1", + DE_DE_STANDARD_A = "de-DE-Standard-A", + DE_DE_STANDARD_B = "de-DE-Standard-B", + DE_DE_STANDARD_C = "de-DE-Standard-C", + DE_DE_STANDARD_D = "de-DE-Standard-D", + DE_DE_STANDARD_E = "de-DE-Standard-E", + DE_DE_STANDARD_F = "de-DE-Standard-F", + DE_DE_STUDIO_B = "de-DE-Studio-B", + DE_DE_STUDIO_C = "de-DE-Studio-C", + DE_DE_WAVENET_A = "de-DE-Wavenet-A", + DE_DE_WAVENET_B = "de-DE-Wavenet-B", + DE_DE_WAVENET_C = "de-DE-Wavenet-C", + DE_DE_WAVENET_D = "de-DE-Wavenet-D", + DE_DE_WAVENET_E = "de-DE-Wavenet-E", + DE_DE_WAVENET_F = "de-DE-Wavenet-F", + EL_GR_STANDARD_A = "el-GR-Standard-A", + EL_GR_WAVENET_A = "el-GR-Wavenet-A", + EN_AU_NEURAL2_A = "en-AU-Neural2-A", + EN_AU_NEURAL2_B = "en-AU-Neural2-B", + EN_AU_NEURAL2_C = "en-AU-Neural2-C", + EN_AU_NEURAL2_D = "en-AU-Neural2-D", + EN_AU_NEWS_E = "en-AU-News-E", + EN_AU_NEWS_F = "en-AU-News-F", + EN_AU_NEWS_G = "en-AU-News-G", + EN_AU_POLYGLOT_1 = "en-AU-Polyglot-1", + EN_AU_STANDARD_A = "en-AU-Standard-A", + EN_AU_STANDARD_B = "en-AU-Standard-B", + EN_AU_STANDARD_C = "en-AU-Standard-C", + EN_AU_STANDARD_D = "en-AU-Standard-D", + EN_AU_WAVENET_A = "en-AU-Wavenet-A", + EN_AU_WAVENET_B = "en-AU-Wavenet-B", + EN_AU_WAVENET_C = "en-AU-Wavenet-C", + EN_AU_WAVENET_D = "en-AU-Wavenet-D", + EN_GB_NEURAL2_A = "en-GB-Neural2-A", + EN_GB_NEURAL2_B = "en-GB-Neural2-B", + EN_GB_NEURAL2_C = "en-GB-Neural2-C", + EN_GB_NEURAL2_D = "en-GB-Neural2-D", + EN_GB_NEURAL2_F = "en-GB-Neural2-F", + EN_GB_NEWS_G = "en-GB-News-G", + EN_GB_NEWS_H = "en-GB-News-H", + EN_GB_NEWS_I = "en-GB-News-I", + EN_GB_NEWS_J = "en-GB-News-J", + EN_GB_NEWS_K = "en-GB-News-K", + EN_GB_NEWS_L = "en-GB-News-L", + EN_GB_NEWS_M = "en-GB-News-M", + EN_GB_STANDARD_A = "en-GB-Standard-A", + EN_GB_STANDARD_B = "en-GB-Standard-B", + EN_GB_STANDARD_C = "en-GB-Standard-C", + EN_GB_STANDARD_D = "en-GB-Standard-D", + EN_GB_STANDARD_F = "en-GB-Standard-F", + EN_GB_STUDIO_B = "en-GB-Studio-B", + EN_GB_STUDIO_C = "en-GB-Studio-C", + EN_GB_WAVENET_A = "en-GB-Wavenet-A", + EN_GB_WAVENET_B = "en-GB-Wavenet-B", + EN_GB_WAVENET_C = "en-GB-Wavenet-C", + EN_GB_WAVENET_D = "en-GB-Wavenet-D", + EN_GB_WAVENET_F = "en-GB-Wavenet-F", + EN_IN_NEURAL2_A = "en-IN-Neural2-A", + EN_IN_NEURAL2_B = "en-IN-Neural2-B", + EN_IN_NEURAL2_C = "en-IN-Neural2-C", + EN_IN_NEURAL2_D = "en-IN-Neural2-D", + EN_IN_STANDARD_A = "en-IN-Standard-A", + EN_IN_STANDARD_B = "en-IN-Standard-B", + EN_IN_STANDARD_C = "en-IN-Standard-C", + EN_IN_STANDARD_D = "en-IN-Standard-D", + EN_IN_WAVENET_A = "en-IN-Wavenet-A", + EN_IN_WAVENET_B = "en-IN-Wavenet-B", + EN_IN_WAVENET_C = "en-IN-Wavenet-C", + EN_IN_WAVENET_D = "en-IN-Wavenet-D", + EN_US_CASUAL_K = "en-US-Casual-K", + EN_US_JOURNEY_D = "en-US-Journey-D", + EN_US_JOURNEY_F = "en-US-Journey-F", + EN_US_JOURNEY_O = "en-US-Journey-O", + EN_US_NEURAL2_A = "en-US-Neural2-A", + EN_US_NEURAL2_C = "en-US-Neural2-C", + EN_US_NEURAL2_D = "en-US-Neural2-D", + EN_US_NEURAL2_E = "en-US-Neural2-E", + EN_US_NEURAL2_F = "en-US-Neural2-F", + EN_US_NEURAL2_G = "en-US-Neural2-G", + EN_US_NEURAL2_H = "en-US-Neural2-H", + EN_US_NEURAL2_I = "en-US-Neural2-I", + EN_US_NEURAL2_J = "en-US-Neural2-J", + EN_US_NEWS_K = "en-US-News-K", + EN_US_NEWS_L = "en-US-News-L", + EN_US_NEWS_N = "en-US-News-N", + EN_US_POLYGLOT_1 = "en-US-Polyglot-1", + EN_US_STANDARD_A = "en-US-Standard-A", + EN_US_STANDARD_B = "en-US-Standard-B", + EN_US_STANDARD_C = "en-US-Standard-C", + EN_US_STANDARD_D = "en-US-Standard-D", + EN_US_STANDARD_E = "en-US-Standard-E", + EN_US_STANDARD_F = "en-US-Standard-F", + EN_US_STANDARD_G = "en-US-Standard-G", + EN_US_STANDARD_H = "en-US-Standard-H", + EN_US_STANDARD_I = "en-US-Standard-I", + EN_US_STANDARD_J = "en-US-Standard-J", + EN_US_STUDIO_O = "en-US-Studio-O", + EN_US_STUDIO_Q = "en-US-Studio-Q", + EN_US_WAVENET_A = "en-US-Wavenet-A", + EN_US_WAVENET_B = "en-US-Wavenet-B", + EN_US_WAVENET_C = "en-US-Wavenet-C", + EN_US_WAVENET_D = "en-US-Wavenet-D", + EN_US_WAVENET_E = "en-US-Wavenet-E", + EN_US_WAVENET_F = "en-US-Wavenet-F", + EN_US_WAVENET_G = "en-US-Wavenet-G", + EN_US_WAVENET_H = "en-US-Wavenet-H", + EN_US_WAVENET_I = "en-US-Wavenet-I", + EN_US_WAVENET_J = "en-US-Wavenet-J", + ES_ES_NEURAL2_A = "es-ES-Neural2-A", + ES_ES_NEURAL2_B = "es-ES-Neural2-B", + ES_ES_NEURAL2_C = "es-ES-Neural2-C", + ES_ES_NEURAL2_D = "es-ES-Neural2-D", + ES_ES_NEURAL2_E = "es-ES-Neural2-E", + ES_ES_NEURAL2_F = "es-ES-Neural2-F", + ES_ES_POLYGLOT_1 = "es-ES-Polyglot-1", + ES_ES_STANDARD_A = "es-ES-Standard-A", + ES_ES_STANDARD_B = "es-ES-Standard-B", + ES_ES_STANDARD_C = "es-ES-Standard-C", + ES_ES_STANDARD_D = "es-ES-Standard-D", + ES_ES_STUDIO_C = "es-ES-Studio-C", + ES_ES_STUDIO_F = "es-ES-Studio-F", + ES_ES_WAVENET_B = "es-ES-Wavenet-B", + ES_ES_WAVENET_C = "es-ES-Wavenet-C", + ES_ES_WAVENET_D = "es-ES-Wavenet-D", + ES_US_NEURAL2_A = "es-US-Neural2-A", + ES_US_NEURAL2_B = "es-US-Neural2-B", + ES_US_NEURAL2_C = "es-US-Neural2-C", + ES_US_NEWS_D = "es-US-News-D", + ES_US_NEWS_E = "es-US-News-E", + ES_US_NEWS_F = "es-US-News-F", + ES_US_NEWS_G = "es-US-News-G", + ES_US_POLYGLOT_1 = "es-US-Polyglot-1", + ES_US_STANDARD_A = "es-US-Standard-A", + ES_US_STANDARD_B = "es-US-Standard-B", + ES_US_STANDARD_C = "es-US-Standard-C", + ES_US_STUDIO_B = "es-US-Studio-B", + ES_US_WAVENET_A = "es-US-Wavenet-A", + ES_US_WAVENET_B = "es-US-Wavenet-B", + ES_US_WAVENET_C = "es-US-Wavenet-C", + EU_ES_STANDARD_A = "eu-ES-Standard-A", + FI_FI_STANDARD_A = "fi-FI-Standard-A", + FI_FI_WAVENET_A = "fi-FI-Wavenet-A", + FIL_PH_STANDARD_A = "fil-PH-Standard-A", + FIL_PH_STANDARD_B = "fil-PH-Standard-B", + FIL_PH_STANDARD_C = "fil-PH-Standard-C", + FIL_PH_STANDARD_D = "fil-PH-Standard-D", + FIL_PH_WAVENET_A = "fil-PH-Wavenet-A", + FIL_PH_WAVENET_B = "fil-PH-Wavenet-B", + FIL_PH_WAVENET_C = "fil-PH-Wavenet-C", + FIL_PH_WAVENET_D = "fil-PH-Wavenet-D", + FIL_PH_NEURAL2_A = "fil-ph-Neural2-A", + FIL_PH_NEURAL2_D = "fil-ph-Neural2-D", + FR_CA_NEURAL2_A = "fr-CA-Neural2-A", + FR_CA_NEURAL2_B = "fr-CA-Neural2-B", + FR_CA_NEURAL2_C = "fr-CA-Neural2-C", + FR_CA_NEURAL2_D = "fr-CA-Neural2-D", + FR_CA_STANDARD_A = "fr-CA-Standard-A", + FR_CA_STANDARD_B = "fr-CA-Standard-B", + FR_CA_STANDARD_C = "fr-CA-Standard-C", + FR_CA_STANDARD_D = "fr-CA-Standard-D", + FR_CA_WAVENET_A = "fr-CA-Wavenet-A", + FR_CA_WAVENET_B = "fr-CA-Wavenet-B", + FR_CA_WAVENET_C = "fr-CA-Wavenet-C", + FR_CA_WAVENET_D = "fr-CA-Wavenet-D", + FR_FR_NEURAL2_A = "fr-FR-Neural2-A", + FR_FR_NEURAL2_B = "fr-FR-Neural2-B", + FR_FR_NEURAL2_C = "fr-FR-Neural2-C", + FR_FR_NEURAL2_D = "fr-FR-Neural2-D", + FR_FR_NEURAL2_E = "fr-FR-Neural2-E", + FR_FR_POLYGLOT_1 = "fr-FR-Polyglot-1", + FR_FR_STANDARD_A = "fr-FR-Standard-A", + FR_FR_STANDARD_B = "fr-FR-Standard-B", + FR_FR_STANDARD_C = "fr-FR-Standard-C", + FR_FR_STANDARD_D = "fr-FR-Standard-D", + FR_FR_STANDARD_E = "fr-FR-Standard-E", + FR_FR_STUDIO_A = "fr-FR-Studio-A", + FR_FR_STUDIO_D = "fr-FR-Studio-D", + FR_FR_WAVENET_A = "fr-FR-Wavenet-A", + FR_FR_WAVENET_B = "fr-FR-Wavenet-B", + FR_FR_WAVENET_C = "fr-FR-Wavenet-C", + FR_FR_WAVENET_D = "fr-FR-Wavenet-D", + FR_FR_WAVENET_E = "fr-FR-Wavenet-E", + GL_ES_STANDARD_A = "gl-ES-Standard-A", + GU_IN_STANDARD_A = "gu-IN-Standard-A", + GU_IN_STANDARD_B = "gu-IN-Standard-B", + GU_IN_STANDARD_C = "gu-IN-Standard-C", + GU_IN_STANDARD_D = "gu-IN-Standard-D", + GU_IN_WAVENET_A = "gu-IN-Wavenet-A", + GU_IN_WAVENET_B = "gu-IN-Wavenet-B", + GU_IN_WAVENET_C = "gu-IN-Wavenet-C", + GU_IN_WAVENET_D = "gu-IN-Wavenet-D", + HE_IL_STANDARD_A = "he-IL-Standard-A", + HE_IL_STANDARD_B = "he-IL-Standard-B", + HE_IL_STANDARD_C = "he-IL-Standard-C", + HE_IL_STANDARD_D = "he-IL-Standard-D", + HE_IL_WAVENET_A = "he-IL-Wavenet-A", + HE_IL_WAVENET_B = "he-IL-Wavenet-B", + HE_IL_WAVENET_C = "he-IL-Wavenet-C", + HE_IL_WAVENET_D = "he-IL-Wavenet-D", + HI_IN_NEURAL2_A = "hi-IN-Neural2-A", + HI_IN_NEURAL2_B = "hi-IN-Neural2-B", + HI_IN_NEURAL2_C = "hi-IN-Neural2-C", + HI_IN_NEURAL2_D = "hi-IN-Neural2-D", + HI_IN_STANDARD_A = "hi-IN-Standard-A", + HI_IN_STANDARD_B = "hi-IN-Standard-B", + HI_IN_STANDARD_C = "hi-IN-Standard-C", + HI_IN_STANDARD_D = "hi-IN-Standard-D", + HI_IN_WAVENET_A = "hi-IN-Wavenet-A", + HI_IN_WAVENET_B = "hi-IN-Wavenet-B", + HI_IN_WAVENET_C = "hi-IN-Wavenet-C", + HI_IN_WAVENET_D = "hi-IN-Wavenet-D", + HU_HU_STANDARD_A = "hu-HU-Standard-A", + HU_HU_WAVENET_A = "hu-HU-Wavenet-A", + ID_ID_STANDARD_A = "id-ID-Standard-A", + ID_ID_STANDARD_B = "id-ID-Standard-B", + ID_ID_STANDARD_C = "id-ID-Standard-C", + ID_ID_STANDARD_D = "id-ID-Standard-D", + ID_ID_WAVENET_A = "id-ID-Wavenet-A", + ID_ID_WAVENET_B = "id-ID-Wavenet-B", + ID_ID_WAVENET_C = "id-ID-Wavenet-C", + ID_ID_WAVENET_D = "id-ID-Wavenet-D", + IS_IS_STANDARD_A = "is-IS-Standard-A", + IT_IT_NEURAL2_A = "it-IT-Neural2-A", + IT_IT_NEURAL2_C = "it-IT-Neural2-C", + IT_IT_STANDARD_A = "it-IT-Standard-A", + IT_IT_STANDARD_B = "it-IT-Standard-B", + IT_IT_STANDARD_C = "it-IT-Standard-C", + IT_IT_STANDARD_D = "it-IT-Standard-D", + IT_IT_WAVENET_A = "it-IT-Wavenet-A", + IT_IT_WAVENET_B = "it-IT-Wavenet-B", + IT_IT_WAVENET_C = "it-IT-Wavenet-C", + IT_IT_WAVENET_D = "it-IT-Wavenet-D", + JA_JP_NEURAL2_B = "ja-JP-Neural2-B", + JA_JP_NEURAL2_C = "ja-JP-Neural2-C", + JA_JP_NEURAL2_D = "ja-JP-Neural2-D", + JA_JP_STANDARD_A = "ja-JP-Standard-A", + JA_JP_STANDARD_B = "ja-JP-Standard-B", + JA_JP_STANDARD_C = "ja-JP-Standard-C", + JA_JP_STANDARD_D = "ja-JP-Standard-D", + JA_JP_WAVENET_A = "ja-JP-Wavenet-A", + JA_JP_WAVENET_B = "ja-JP-Wavenet-B", + JA_JP_WAVENET_C = "ja-JP-Wavenet-C", + JA_JP_WAVENET_D = "ja-JP-Wavenet-D", + KN_IN_STANDARD_A = "kn-IN-Standard-A", + KN_IN_STANDARD_B = "kn-IN-Standard-B", + KN_IN_STANDARD_C = "kn-IN-Standard-C", + KN_IN_STANDARD_D = "kn-IN-Standard-D", + KN_IN_WAVENET_A = "kn-IN-Wavenet-A", + KN_IN_WAVENET_B = "kn-IN-Wavenet-B", + KN_IN_WAVENET_C = "kn-IN-Wavenet-C", + KN_IN_WAVENET_D = "kn-IN-Wavenet-D", + KO_KR_NEURAL2_A = "ko-KR-Neural2-A", + KO_KR_NEURAL2_B = "ko-KR-Neural2-B", + KO_KR_NEURAL2_C = "ko-KR-Neural2-C", + KO_KR_STANDARD_A = "ko-KR-Standard-A", + KO_KR_STANDARD_B = "ko-KR-Standard-B", + KO_KR_STANDARD_C = "ko-KR-Standard-C", + KO_KR_STANDARD_D = "ko-KR-Standard-D", + KO_KR_WAVENET_A = "ko-KR-Wavenet-A", + KO_KR_WAVENET_B = "ko-KR-Wavenet-B", + KO_KR_WAVENET_C = "ko-KR-Wavenet-C", + KO_KR_WAVENET_D = "ko-KR-Wavenet-D", + LT_LT_STANDARD_A = "lt-LT-Standard-A", + LV_LV_STANDARD_A = "lv-LV-Standard-A", + ML_IN_STANDARD_A = "ml-IN-Standard-A", + ML_IN_STANDARD_B = "ml-IN-Standard-B", + ML_IN_STANDARD_C = "ml-IN-Standard-C", + ML_IN_STANDARD_D = "ml-IN-Standard-D", + ML_IN_WAVENET_A = "ml-IN-Wavenet-A", + ML_IN_WAVENET_B = "ml-IN-Wavenet-B", + ML_IN_WAVENET_C = "ml-IN-Wavenet-C", + ML_IN_WAVENET_D = "ml-IN-Wavenet-D", + MR_IN_STANDARD_A = "mr-IN-Standard-A", + MR_IN_STANDARD_B = "mr-IN-Standard-B", + MR_IN_STANDARD_C = "mr-IN-Standard-C", + MR_IN_WAVENET_A = "mr-IN-Wavenet-A", + MR_IN_WAVENET_B = "mr-IN-Wavenet-B", + MR_IN_WAVENET_C = "mr-IN-Wavenet-C", + MS_MY_STANDARD_A = "ms-MY-Standard-A", + MS_MY_STANDARD_B = "ms-MY-Standard-B", + MS_MY_STANDARD_C = "ms-MY-Standard-C", + MS_MY_STANDARD_D = "ms-MY-Standard-D", + MS_MY_WAVENET_A = "ms-MY-Wavenet-A", + MS_MY_WAVENET_B = "ms-MY-Wavenet-B", + MS_MY_WAVENET_C = "ms-MY-Wavenet-C", + MS_MY_WAVENET_D = "ms-MY-Wavenet-D", + NB_NO_STANDARD_A = "nb-NO-Standard-A", + NB_NO_STANDARD_B = "nb-NO-Standard-B", + NB_NO_STANDARD_C = "nb-NO-Standard-C", + NB_NO_STANDARD_D = "nb-NO-Standard-D", + NB_NO_STANDARD_E = "nb-NO-Standard-E", + NB_NO_WAVENET_A = "nb-NO-Wavenet-A", + NB_NO_WAVENET_B = "nb-NO-Wavenet-B", + NB_NO_WAVENET_C = "nb-NO-Wavenet-C", + NB_NO_WAVENET_D = "nb-NO-Wavenet-D", + NB_NO_WAVENET_E = "nb-NO-Wavenet-E", + NL_BE_STANDARD_A = "nl-BE-Standard-A", + NL_BE_STANDARD_B = "nl-BE-Standard-B", + NL_BE_WAVENET_A = "nl-BE-Wavenet-A", + NL_BE_WAVENET_B = "nl-BE-Wavenet-B", + NL_NL_STANDARD_A = "nl-NL-Standard-A", + NL_NL_STANDARD_B = "nl-NL-Standard-B", + NL_NL_STANDARD_C = "nl-NL-Standard-C", + NL_NL_STANDARD_D = "nl-NL-Standard-D", + NL_NL_STANDARD_E = "nl-NL-Standard-E", + NL_NL_WAVENET_A = "nl-NL-Wavenet-A", + NL_NL_WAVENET_B = "nl-NL-Wavenet-B", + NL_NL_WAVENET_C = "nl-NL-Wavenet-C", + NL_NL_WAVENET_D = "nl-NL-Wavenet-D", + NL_NL_WAVENET_E = "nl-NL-Wavenet-E", + PA_IN_STANDARD_A = "pa-IN-Standard-A", + PA_IN_STANDARD_B = "pa-IN-Standard-B", + PA_IN_STANDARD_C = "pa-IN-Standard-C", + PA_IN_STANDARD_D = "pa-IN-Standard-D", + PA_IN_WAVENET_A = "pa-IN-Wavenet-A", + PA_IN_WAVENET_B = "pa-IN-Wavenet-B", + PA_IN_WAVENET_C = "pa-IN-Wavenet-C", + PA_IN_WAVENET_D = "pa-IN-Wavenet-D", + PL_PL_STANDARD_A = "pl-PL-Standard-A", + PL_PL_STANDARD_B = "pl-PL-Standard-B", + PL_PL_STANDARD_C = "pl-PL-Standard-C", + PL_PL_STANDARD_D = "pl-PL-Standard-D", + PL_PL_STANDARD_E = "pl-PL-Standard-E", + PL_PL_WAVENET_A = "pl-PL-Wavenet-A", + PL_PL_WAVENET_B = "pl-PL-Wavenet-B", + PL_PL_WAVENET_C = "pl-PL-Wavenet-C", + PL_PL_WAVENET_D = "pl-PL-Wavenet-D", + PL_PL_WAVENET_E = "pl-PL-Wavenet-E", + PT_BR_NEURAL2_A = "pt-BR-Neural2-A", + PT_BR_NEURAL2_B = "pt-BR-Neural2-B", + PT_BR_NEURAL2_C = "pt-BR-Neural2-C", + PT_BR_STANDARD_A = "pt-BR-Standard-A", + PT_BR_STANDARD_B = "pt-BR-Standard-B", + PT_BR_STANDARD_C = "pt-BR-Standard-C", + PT_BR_WAVENET_A = "pt-BR-Wavenet-A", + PT_BR_WAVENET_B = "pt-BR-Wavenet-B", + PT_BR_WAVENET_C = "pt-BR-Wavenet-C", + PT_PT_STANDARD_A = "pt-PT-Standard-A", + PT_PT_STANDARD_B = "pt-PT-Standard-B", + PT_PT_STANDARD_C = "pt-PT-Standard-C", + PT_PT_STANDARD_D = "pt-PT-Standard-D", + PT_PT_WAVENET_A = "pt-PT-Wavenet-A", + PT_PT_WAVENET_B = "pt-PT-Wavenet-B", + PT_PT_WAVENET_C = "pt-PT-Wavenet-C", + PT_PT_WAVENET_D = "pt-PT-Wavenet-D", + RO_RO_STANDARD_A = "ro-RO-Standard-A", + RO_RO_WAVENET_A = "ro-RO-Wavenet-A", + RU_RU_STANDARD_A = "ru-RU-Standard-A", + RU_RU_STANDARD_B = "ru-RU-Standard-B", + RU_RU_STANDARD_C = "ru-RU-Standard-C", + RU_RU_STANDARD_D = "ru-RU-Standard-D", + RU_RU_STANDARD_E = "ru-RU-Standard-E", + RU_RU_WAVENET_A = "ru-RU-Wavenet-A", + RU_RU_WAVENET_B = "ru-RU-Wavenet-B", + RU_RU_WAVENET_C = "ru-RU-Wavenet-C", + RU_RU_WAVENET_D = "ru-RU-Wavenet-D", + RU_RU_WAVENET_E = "ru-RU-Wavenet-E", + SK_SK_STANDARD_A = "sk-SK-Standard-A", + SK_SK_WAVENET_A = "sk-SK-Wavenet-A", + SR_RS_STANDARD_A = "sr-RS-Standard-A", + SV_SE_STANDARD_A = "sv-SE-Standard-A", + SV_SE_STANDARD_B = "sv-SE-Standard-B", + SV_SE_STANDARD_C = "sv-SE-Standard-C", + SV_SE_STANDARD_D = "sv-SE-Standard-D", + SV_SE_STANDARD_E = "sv-SE-Standard-E", + SV_SE_WAVENET_A = "sv-SE-Wavenet-A", + SV_SE_WAVENET_B = "sv-SE-Wavenet-B", + SV_SE_WAVENET_C = "sv-SE-Wavenet-C", + SV_SE_WAVENET_D = "sv-SE-Wavenet-D", + SV_SE_WAVENET_E = "sv-SE-Wavenet-E", + TA_IN_STANDARD_A = "ta-IN-Standard-A", + TA_IN_STANDARD_B = "ta-IN-Standard-B", + TA_IN_STANDARD_C = "ta-IN-Standard-C", + TA_IN_STANDARD_D = "ta-IN-Standard-D", + TA_IN_WAVENET_A = "ta-IN-Wavenet-A", + TA_IN_WAVENET_B = "ta-IN-Wavenet-B", + TA_IN_WAVENET_C = "ta-IN-Wavenet-C", + TA_IN_WAVENET_D = "ta-IN-Wavenet-D", + TE_IN_STANDARD_A = "te-IN-Standard-A", + TE_IN_STANDARD_B = "te-IN-Standard-B", + TH_TH_NEURAL2_C = "th-TH-Neural2-C", + TH_TH_STANDARD_A = "th-TH-Standard-A", + TR_TR_STANDARD_A = "tr-TR-Standard-A", + TR_TR_STANDARD_B = "tr-TR-Standard-B", + TR_TR_STANDARD_C = "tr-TR-Standard-C", + TR_TR_STANDARD_D = "tr-TR-Standard-D", + TR_TR_STANDARD_E = "tr-TR-Standard-E", + TR_TR_WAVENET_A = "tr-TR-Wavenet-A", + TR_TR_WAVENET_B = "tr-TR-Wavenet-B", + TR_TR_WAVENET_C = "tr-TR-Wavenet-C", + TR_TR_WAVENET_D = "tr-TR-Wavenet-D", + TR_TR_WAVENET_E = "tr-TR-Wavenet-E", + UK_UA_STANDARD_A = "uk-UA-Standard-A", + UK_UA_WAVENET_A = "uk-UA-Wavenet-A", + UR_IN_STANDARD_A = "ur-IN-Standard-A", + UR_IN_STANDARD_B = "ur-IN-Standard-B", + UR_IN_WAVENET_A = "ur-IN-Wavenet-A", + UR_IN_WAVENET_B = "ur-IN-Wavenet-B", + VI_VN_NEURAL2_A = "vi-VN-Neural2-A", + VI_VN_NEURAL2_D = "vi-VN-Neural2-D", + VI_VN_STANDARD_A = "vi-VN-Standard-A", + VI_VN_STANDARD_B = "vi-VN-Standard-B", + VI_VN_STANDARD_C = "vi-VN-Standard-C", + VI_VN_STANDARD_D = "vi-VN-Standard-D", + VI_VN_WAVENET_A = "vi-VN-Wavenet-A", + VI_VN_WAVENET_B = "vi-VN-Wavenet-B", + VI_VN_WAVENET_C = "vi-VN-Wavenet-C", + VI_VN_WAVENET_D = "vi-VN-Wavenet-D", + YUE_HK_STANDARD_A = "yue-HK-Standard-A", + YUE_HK_STANDARD_B = "yue-HK-Standard-B", + YUE_HK_STANDARD_C = "yue-HK-Standard-C", + YUE_HK_STANDARD_D = "yue-HK-Standard-D" +} + +const GoogleVoiceDetails = [ + { + name: GoogleVoice.AF_ZA_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.AF_ZA, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.AM_ET_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.AM_ET, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.AM_ET_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.AM_ET, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.AM_ET_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.AM_ET, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.AM_ET_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.AM_ET, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.AR_XA_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.AR_XA, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.AR_XA_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.AR_XA, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.AR_XA_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.AR_XA, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.AR_XA_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.AR_XA, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.AR_XA_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.AR_XA, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.AR_XA_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.AR_XA, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.AR_XA_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.AR_XA, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.AR_XA_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.AR_XA, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.BG_BG_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.BG_BG, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.BN_IN_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.BN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.BN_IN_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.BN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.BN_IN_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.BN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.BN_IN_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.BN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.BN_IN_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.BN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.BN_IN_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.BN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.BN_IN_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.BN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.BN_IN_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.BN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.CA_ES_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.CA_ES, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.CMN_CN_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.CMN_CN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.CMN_CN_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.CMN_CN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.CMN_CN_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.CMN_CN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.CMN_CN_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.CMN_CN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.CMN_CN_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.CMN_CN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.CMN_CN_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.CMN_CN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.CMN_CN_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.CMN_CN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.CMN_CN_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.CMN_CN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.CMN_TW_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.CMN_TW, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.CMN_TW_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.CMN_TW, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.CMN_TW_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.CMN_TW, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.CMN_TW_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.CMN_TW, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.CMN_TW_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.CMN_TW, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.CMN_TW_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.CMN_TW, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.CS_CZ_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.CS_CZ, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.CS_CZ_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.CS_CZ, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DA_DK_NEURAL2_D, + displayName: "Neural2 D", + languageCode: VoiceLanguage.DA_DK, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DA_DK_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.DA_DK, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DA_DK_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.DA_DK, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.DA_DK_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.DA_DK, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DA_DK_STANDARD_E, + displayName: "Standard E", + languageCode: VoiceLanguage.DA_DK, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DA_DK_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.DA_DK, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DA_DK_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.DA_DK, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.DA_DK_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.DA_DK, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DA_DK_WAVENET_E, + displayName: "Wavenet E", + languageCode: VoiceLanguage.DA_DK, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DE_DE_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DE_DE_NEURAL2_B, + displayName: "Neural2 B", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.DE_DE_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DE_DE_NEURAL2_D, + displayName: "Neural2 D", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.DE_DE_NEURAL2_F, + displayName: "Neural2 F", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DE_DE_POLYGLOT_1, + displayName: "Polyglot 1", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.DE_DE_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DE_DE_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.DE_DE_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DE_DE_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.DE_DE_STANDARD_E, + displayName: "Standard E", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.DE_DE_STANDARD_F, + displayName: "Standard F", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DE_DE_STUDIO_B, + displayName: "Studio B", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.DE_DE_STUDIO_C, + displayName: "Studio C", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DE_DE_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DE_DE_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.DE_DE_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.DE_DE_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.DE_DE_WAVENET_E, + displayName: "Wavenet E", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.DE_DE_WAVENET_F, + displayName: "Wavenet F", + languageCode: VoiceLanguage.DE_DE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EL_GR_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.EL_GR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EL_GR_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.EL_GR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_AU_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_AU_NEURAL2_B, + displayName: "Neural2 B", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_AU_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_AU_NEURAL2_D, + displayName: "Neural2 D", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_AU_NEWS_E, + displayName: "News E", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_AU_NEWS_F, + displayName: "News F", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_AU_NEWS_G, + displayName: "News G", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_AU_POLYGLOT_1, + displayName: "Polyglot 1", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_AU_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_AU_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_AU_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_AU_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_AU_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_AU_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_AU_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_AU_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.EN_AU, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_GB_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_GB_NEURAL2_B, + displayName: "Neural2 B", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_GB_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_GB_NEURAL2_D, + displayName: "Neural2 D", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_GB_NEURAL2_F, + displayName: "Neural2 F", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_GB_NEWS_G, + displayName: "News G", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_GB_NEWS_H, + displayName: "News H", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_GB_NEWS_I, + displayName: "News I", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_GB_NEWS_J, + displayName: "News J", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_GB_NEWS_K, + displayName: "News K", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_GB_NEWS_L, + displayName: "News L", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_GB_NEWS_M, + displayName: "News M", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_GB_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_GB_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_GB_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_GB_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_GB_STANDARD_F, + displayName: "Standard F", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_GB_STUDIO_B, + displayName: "Studio B", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_GB_STUDIO_C, + displayName: "Studio C", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_GB_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_GB_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_GB_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_GB_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_GB_WAVENET_F, + displayName: "Wavenet F", + languageCode: VoiceLanguage.EN_GB, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_IN_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_IN_NEURAL2_B, + displayName: "Neural2 B", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_IN_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_IN_NEURAL2_D, + displayName: "Neural2 D", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_IN_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_IN_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_IN_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_IN_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_IN_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_IN_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_IN_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_IN_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.EN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_CASUAL_K, + displayName: "Casual K", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_JOURNEY_D, + displayName: "Journey D", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_JOURNEY_F, + displayName: "Journey F", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_JOURNEY_O, + displayName: "Journey O", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_NEURAL2_D, + displayName: "Neural2 D", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_NEURAL2_E, + displayName: "Neural2 E", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_NEURAL2_F, + displayName: "Neural2 F", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_NEURAL2_G, + displayName: "Neural2 G", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_NEURAL2_H, + displayName: "Neural2 H", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_NEURAL2_I, + displayName: "Neural2 I", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_NEURAL2_J, + displayName: "Neural2 J", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_NEWS_K, + displayName: "News K", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_NEWS_L, + displayName: "News L", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_NEWS_N, + displayName: "News N", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_POLYGLOT_1, + displayName: "Polyglot 1", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_STANDARD_E, + displayName: "Standard E", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_STANDARD_F, + displayName: "Standard F", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_STANDARD_G, + displayName: "Standard G", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_STANDARD_H, + displayName: "Standard H", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_STANDARD_I, + displayName: "Standard I", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_STANDARD_J, + displayName: "Standard J", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_STUDIO_O, + displayName: "Studio O", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_STUDIO_Q, + displayName: "Studio Q", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_WAVENET_E, + displayName: "Wavenet E", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_WAVENET_F, + displayName: "Wavenet F", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_WAVENET_G, + displayName: "Wavenet G", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_WAVENET_H, + displayName: "Wavenet H", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.EN_US_WAVENET_I, + displayName: "Wavenet I", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EN_US_WAVENET_J, + displayName: "Wavenet J", + languageCode: VoiceLanguage.EN_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_ES_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_ES_NEURAL2_B, + displayName: "Neural2 B", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_ES_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_ES_NEURAL2_D, + displayName: "Neural2 D", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_ES_NEURAL2_E, + displayName: "Neural2 E", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_ES_NEURAL2_F, + displayName: "Neural2 F", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_ES_POLYGLOT_1, + displayName: "Polyglot 1", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_ES_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_ES_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_ES_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_ES_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_ES_STUDIO_C, + displayName: "Studio C", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_ES_STUDIO_F, + displayName: "Studio F", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_ES_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_ES_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_ES_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.ES_ES, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_US_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_US_NEURAL2_B, + displayName: "Neural2 B", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_US_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_US_NEWS_D, + displayName: "News D", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_US_NEWS_E, + displayName: "News E", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_US_NEWS_F, + displayName: "News F", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_US_NEWS_G, + displayName: "News G", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_US_POLYGLOT_1, + displayName: "Polyglot 1", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_US_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_US_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_US_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_US_STUDIO_B, + displayName: "Studio B", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_US_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ES_US_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ES_US_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.ES_US, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.EU_ES_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.EU_ES, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FI_FI_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.FI_FI, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FI_FI_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.FI_FI, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FIL_PH_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.FIL_PH, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FIL_PH_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.FIL_PH, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FIL_PH_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.FIL_PH, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FIL_PH_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.FIL_PH, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FIL_PH_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.FIL_PH, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FIL_PH_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.FIL_PH, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FIL_PH_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.FIL_PH, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FIL_PH_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.FIL_PH, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FIL_PH_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.FIL_PH, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FIL_PH_NEURAL2_D, + displayName: "Neural2 D", + languageCode: VoiceLanguage.FIL_PH, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_CA_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_CA_NEURAL2_B, + displayName: "Neural2 B", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_CA_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_CA_NEURAL2_D, + displayName: "Neural2 D", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_CA_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_CA_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_CA_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_CA_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_CA_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_CA_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_CA_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_CA_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.FR_CA, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_FR_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_FR_NEURAL2_B, + displayName: "Neural2 B", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_FR_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_FR_NEURAL2_D, + displayName: "Neural2 D", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_FR_NEURAL2_E, + displayName: "Neural2 E", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_FR_POLYGLOT_1, + displayName: "Polyglot 1", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_FR_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_FR_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_FR_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_FR_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_FR_STANDARD_E, + displayName: "Standard E", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_FR_STUDIO_A, + displayName: "Studio A", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_FR_STUDIO_D, + displayName: "Studio D", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_FR_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_FR_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_FR_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.FR_FR_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.FR_FR_WAVENET_E, + displayName: "Wavenet E", + languageCode: VoiceLanguage.FR_FR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.GL_ES_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.GL_ES, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.GU_IN_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.GU_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.GU_IN_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.GU_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.GU_IN_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.GU_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.GU_IN_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.GU_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.GU_IN_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.GU_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.GU_IN_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.GU_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.GU_IN_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.GU_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.GU_IN_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.GU_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.HE_IL_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.HE_IL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.HE_IL_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.HE_IL, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.HE_IL_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.HE_IL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.HE_IL_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.HE_IL, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.HE_IL_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.HE_IL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.HE_IL_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.HE_IL, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.HE_IL_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.HE_IL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.HE_IL_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.HE_IL, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.HI_IN_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.HI_IN_NEURAL2_B, + displayName: "Neural2 B", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.HI_IN_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.HI_IN_NEURAL2_D, + displayName: "Neural2 D", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.HI_IN_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.HI_IN_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.HI_IN_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.HI_IN_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.HI_IN_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.HI_IN_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.HI_IN_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.HI_IN_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.HI_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.HU_HU_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.HU_HU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.HU_HU_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.HU_HU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ID_ID_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.ID_ID, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ID_ID_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.ID_ID, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ID_ID_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.ID_ID, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ID_ID_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.ID_ID, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ID_ID_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.ID_ID, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ID_ID_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.ID_ID, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ID_ID_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.ID_ID, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ID_ID_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.ID_ID, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.IS_IS_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.IS_IS, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.IT_IT_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.IT_IT_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.IT_IT_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.IT_IT_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.IT_IT_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.IT_IT_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.IT_IT_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.IT_IT_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.IT_IT_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.IT_IT_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.IT_IT, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.JA_JP_NEURAL2_B, + displayName: "Neural2 B", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.JA_JP_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.JA_JP_NEURAL2_D, + displayName: "Neural2 D", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.JA_JP_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.JA_JP_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.JA_JP_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.JA_JP_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.JA_JP_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.JA_JP_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.JA_JP_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.JA_JP_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.JA_JP, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.KN_IN_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.KN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.KN_IN_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.KN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.KN_IN_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.KN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.KN_IN_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.KN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.KN_IN_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.KN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.KN_IN_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.KN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.KN_IN_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.KN_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.KN_IN_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.KN_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.KO_KR_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.KO_KR_NEURAL2_B, + displayName: "Neural2 B", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.KO_KR_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.KO_KR_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.KO_KR_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.KO_KR_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.KO_KR_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.KO_KR_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.KO_KR_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.KO_KR_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.KO_KR_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.KO_KR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.LT_LT_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.LT_LT, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.LV_LV_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.LV_LV, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ML_IN_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.ML_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ML_IN_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.ML_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ML_IN_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.ML_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ML_IN_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.ML_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ML_IN_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.ML_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ML_IN_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.ML_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.ML_IN_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.ML_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.ML_IN_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.ML_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.MR_IN_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.MR_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.MR_IN_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.MR_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.MR_IN_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.MR_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.MR_IN_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.MR_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.MR_IN_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.MR_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.MR_IN_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.MR_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.MS_MY_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.MS_MY, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.MS_MY_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.MS_MY, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.MS_MY_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.MS_MY, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.MS_MY_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.MS_MY, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.MS_MY_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.MS_MY, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.MS_MY_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.MS_MY, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.MS_MY_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.MS_MY, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.MS_MY_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.MS_MY, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.NB_NO_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.NB_NO, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.NB_NO_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.NB_NO, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.NB_NO_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.NB_NO, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.NB_NO_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.NB_NO, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.NB_NO_STANDARD_E, + displayName: "Standard E", + languageCode: VoiceLanguage.NB_NO, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.NB_NO_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.NB_NO, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.NB_NO_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.NB_NO, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.NB_NO_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.NB_NO, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.NB_NO_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.NB_NO, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.NB_NO_WAVENET_E, + displayName: "Wavenet E", + languageCode: VoiceLanguage.NB_NO, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.NL_BE_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.NL_BE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.NL_BE_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.NL_BE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.NL_BE_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.NL_BE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.NL_BE_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.NL_BE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.NL_NL_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.NL_NL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.NL_NL_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.NL_NL, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.NL_NL_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.NL_NL, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.NL_NL_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.NL_NL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.NL_NL_STANDARD_E, + displayName: "Standard E", + languageCode: VoiceLanguage.NL_NL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.NL_NL_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.NL_NL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.NL_NL_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.NL_NL, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.NL_NL_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.NL_NL, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.NL_NL_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.NL_NL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.NL_NL_WAVENET_E, + displayName: "Wavenet E", + languageCode: VoiceLanguage.NL_NL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PA_IN_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.PA_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PA_IN_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.PA_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PA_IN_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.PA_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PA_IN_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.PA_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PA_IN_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.PA_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PA_IN_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.PA_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PA_IN_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.PA_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PA_IN_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.PA_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PL_PL_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.PL_PL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PL_PL_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.PL_PL, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PL_PL_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.PL_PL, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PL_PL_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.PL_PL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PL_PL_STANDARD_E, + displayName: "Standard E", + languageCode: VoiceLanguage.PL_PL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PL_PL_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.PL_PL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PL_PL_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.PL_PL, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PL_PL_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.PL_PL, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PL_PL_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.PL_PL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PL_PL_WAVENET_E, + displayName: "Wavenet E", + languageCode: VoiceLanguage.PL_PL, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PT_BR_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PT_BR_NEURAL2_B, + displayName: "Neural2 B", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PT_BR_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PT_BR_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PT_BR_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PT_BR_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PT_BR_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PT_BR_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PT_BR_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.PT_BR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PT_PT_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.PT_PT, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PT_PT_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.PT_PT, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PT_PT_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.PT_PT, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PT_PT_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.PT_PT, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PT_PT_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.PT_PT, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.PT_PT_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.PT_PT, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PT_PT_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.PT_PT, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.PT_PT_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.PT_PT, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.RO_RO_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.RO_RO, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.RO_RO_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.RO_RO, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.RU_RU_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.RU_RU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.RU_RU_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.RU_RU, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.RU_RU_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.RU_RU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.RU_RU_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.RU_RU, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.RU_RU_STANDARD_E, + displayName: "Standard E", + languageCode: VoiceLanguage.RU_RU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.RU_RU_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.RU_RU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.RU_RU_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.RU_RU, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.RU_RU_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.RU_RU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.RU_RU_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.RU_RU, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.RU_RU_WAVENET_E, + displayName: "Wavenet E", + languageCode: VoiceLanguage.RU_RU, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.SK_SK_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.SK_SK, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.SK_SK_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.SK_SK, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.SR_RS_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.SR_RS, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.SV_SE_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.SV_SE_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.SV_SE_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.SV_SE_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.SV_SE_STANDARD_E, + displayName: "Standard E", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.SV_SE_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.SV_SE_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.SV_SE_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.SV_SE_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.SV_SE_WAVENET_E, + displayName: "Wavenet E", + languageCode: VoiceLanguage.SV_SE, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.TA_IN_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.TA_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.TA_IN_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.TA_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.TA_IN_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.TA_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.TA_IN_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.TA_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.TA_IN_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.TA_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.TA_IN_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.TA_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.TA_IN_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.TA_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.TA_IN_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.TA_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.TE_IN_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.TE_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.TE_IN_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.TE_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.TH_TH_NEURAL2_C, + displayName: "Neural2 C", + languageCode: VoiceLanguage.TH_TH, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.TH_TH_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.TH_TH, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.TR_TR_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.TR_TR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.TR_TR_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.TR_TR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.TR_TR_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.TR_TR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.TR_TR_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.TR_TR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.TR_TR_STANDARD_E, + displayName: "Standard E", + languageCode: VoiceLanguage.TR_TR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.TR_TR_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.TR_TR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.TR_TR_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.TR_TR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.TR_TR_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.TR_TR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.TR_TR_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.TR_TR, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.TR_TR_WAVENET_E, + displayName: "Wavenet E", + languageCode: VoiceLanguage.TR_TR, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.UK_UA_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.UK_UA, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.UK_UA_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.UK_UA, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.UR_IN_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.UR_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.UR_IN_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.UR_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.UR_IN_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.UR_IN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.UR_IN_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.UR_IN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.VI_VN_NEURAL2_A, + displayName: "Neural2 A", + languageCode: VoiceLanguage.VI_VN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.VI_VN_NEURAL2_D, + displayName: "Neural2 D", + languageCode: VoiceLanguage.VI_VN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.VI_VN_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.VI_VN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.VI_VN_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.VI_VN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.VI_VN_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.VI_VN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.VI_VN_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.VI_VN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.VI_VN_WAVENET_A, + displayName: "Wavenet A", + languageCode: VoiceLanguage.VI_VN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.VI_VN_WAVENET_B, + displayName: "Wavenet B", + languageCode: VoiceLanguage.VI_VN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.VI_VN_WAVENET_C, + displayName: "Wavenet C", + languageCode: VoiceLanguage.VI_VN, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.VI_VN_WAVENET_D, + displayName: "Wavenet D", + languageCode: VoiceLanguage.VI_VN, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.YUE_HK_STANDARD_A, + displayName: "Standard A", + languageCode: VoiceLanguage.YUE_HK, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.YUE_HK_STANDARD_B, + displayName: "Standard B", + languageCode: VoiceLanguage.YUE_HK, + gender: VoiceGender.MALE + }, + { + name: GoogleVoice.YUE_HK_STANDARD_C, + displayName: "Standard C", + languageCode: VoiceLanguage.YUE_HK, + gender: VoiceGender.FEMALE + }, + { + name: GoogleVoice.YUE_HK_STANDARD_D, + displayName: "Standard D", + languageCode: VoiceLanguage.YUE_HK, + gender: VoiceGender.MALE + } +]; + +export { GoogleVoice, GoogleVoiceDetails }; diff --git a/mods/common/src/tts/index.ts b/mods/common/src/tts/index.ts new file mode 100644 index 000000000..0a533c9cd --- /dev/null +++ b/mods/common/src/tts/index.ts @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./AzureVoices"; +export * from "./DeepgramVoices"; +export * from "./ElevenLabs"; +export * from "./GoogleVoices"; +export * from "./types"; diff --git a/mods/common/src/tts/types.ts b/mods/common/src/tts/types.ts new file mode 100644 index 000000000..313097459 --- /dev/null +++ b/mods/common/src/tts/types.ts @@ -0,0 +1,263 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +enum VoiceLanguage { + // Base language codes + AR = "ar", + AF = "af", + AM = "am", + AS = "as", + AZ = "az", + BG = "bg", + BN = "bn", + BS = "bs", + CA = "ca", + CS = "cs", + CY = "cy", + DA = "da", + DE = "de", + EL = "el", + EN = "en", + ES = "es", + ET = "et", + EU = "eu", + FA = "fa", + FI = "fi", + FIL = "fil", + FR = "fr", + GA = "ga", + GL = "gl", + GU = "gu", + HE = "he", + HI = "hi", + HR = "hr", + HU = "hu", + HY = "hy", + ID = "id", + IS = "is", + IT = "it", + JA = "ja", + JV = "jv", + KA = "ka", + KK = "kk", + KM = "km", + KN = "kn", + KO = "ko", + LO = "lo", + LT = "lt", + LV = "lv", + MK = "mk", + ML = "ml", + MN = "mn", + MR = "mr", + MS = "ms", + MT = "mt", + MY = "my", + NB = "nb", + NE = "ne", + NL = "nl", + OR = "or", + PA = "pa", + PL = "pl", + PS = "ps", + PT = "pt", + RO = "ro", + RU = "ru", + SI = "si", + SK = "sk", + SL = "sl", + SO = "so", + SQ = "sq", + SR = "sr", + SU = "su", + SV = "sv", + SW = "sw", + TA = "ta", + TE = "te", + TH = "th", + TR = "tr", + UK = "uk", + UR = "ur", + UZ = "uz", + // Regional variants + AR_XA = "ar-XA", + AF_ZA = "af-ZA", + AM_ET = "am-ET", + AR_AE = "ar-AE", + AR_BH = "ar-BH", + AR_DZ = "ar-DZ", + AR_EG = "ar-EG", + AR_IQ = "ar-IQ", + AR_JO = "ar-JO", + AR_KW = "ar-KW", + AR_LB = "ar-LB", + AR_LY = "ar-LY", + AR_MA = "ar-MA", + AR_OM = "ar-OM", + AR_QA = "ar-QA", + AR_SA = "ar-SA", + AR_SY = "ar-SY", + AR_TN = "ar-TN", + AR_YE = "ar-YE", + AS_IN = "as-IN", + AZ_AZ = "az-AZ", + BG_BG = "bg-BG", + BN_BD = "bn-BD", + BN_IN = "bn-IN", + BS_BA = "bs-BA", + CA_ES = "ca-ES", + CMN_CN = "cmn-CN", + CMN_TW = "cmn-TW", + CS_CZ = "cs-CZ", + CY_GB = "cy-GB", + DA_DK = "da-DK", + DE_AT = "de-AT", + DE_CH = "de-CH", + DE_DE = "de-DE", + EL_GR = "el-GR", + EN_AU = "en-AU", + EN_CA = "en-CA", + EN_GB = "en-GB", + EN_HK = "en-HK", + EN_IE = "en-IE", + EN_IN = "en-IN", + EN_KE = "en-KE", + EN_NG = "en-NG", + EN_NZ = "en-NZ", + EN_PH = "en-PH", + EN_SG = "en-SG", + EN_TZ = "en-TZ", + EN_US = "en-US", + EN_ZA = "en-ZA", + ES_AR = "es-AR", + ES_BO = "es-BO", + ES_CL = "es-CL", + ES_CO = "es-CO", + ES_CR = "es-CR", + ES_CU = "es-CU", + ES_DO = "es-DO", + ES_EC = "es-EC", + ES_ES = "es-ES", + ES_GQ = "es-GQ", + ES_GT = "es-GT", + ES_HN = "es-HN", + ES_MX = "es-MX", + ES_NI = "es-NI", + ES_PA = "es-PA", + ES_PE = "es-PE", + ES_PR = "es-PR", + ES_PY = "es-PY", + ES_SV = "es-SV", + ES_US = "es-US", + ES_UY = "es-UY", + ES_VE = "es-VE", + ES_419 = "es-419", + ET_EE = "et-EE", + EU_ES = "eu-ES", + FA_IR = "fa-IR", + FI_FI = "fi-FI", + FIL_PH = "fil-PH", + FR_BE = "fr-BE", + FR_CA = "fr-CA", + FR_CH = "fr-CH", + FR_FR = "fr-FR", + GA_IE = "ga-IE", + GL_ES = "gl-ES", + GU_IN = "gu-IN", + HE_IL = "he-IL", + HI_IN = "hi-IN", + HR_HR = "hr-HR", + HU_HU = "hu-HU", + HY_AM = "hy-AM", + ID_ID = "id-ID", + IS_IS = "is-IS", + IT_IT = "it-IT", + JA_JP = "ja-JP", + JV_ID = "jv-ID", + KA_GE = "ka-GE", + KK_KZ = "kk-KZ", + KM_KH = "km-KH", + KN_IN = "kn-IN", + KO_KR = "ko-KR", + LO_LA = "lo-LA", + LT_LT = "lt-LT", + LV_LV = "lv-LV", + MK_MK = "mk-MK", + ML_IN = "ml-IN", + MN_MN = "mn-MN", + MR_IN = "mr-IN", + MS_MY = "ms-MY", + MT_MT = "mt-MT", + MY_MM = "my-MM", + NB_NO = "nb-NO", + NE_NP = "ne-NP", + NL_BE = "nl-BE", + NL_NL = "nl-NL", + OR_IN = "or-IN", + PA_IN = "pa-IN", + PL_PL = "pl-PL", + PS_AF = "ps-AF", + PT_BR = "pt-BR", + PT_PT = "pt-PT", + RO_RO = "ro-RO", + RU_RU = "ru-RU", + SI_LK = "si-LK", + SK_SK = "sk-SK", + SL_SI = "sl-SI", + SO_SO = "so-SO", + SQ_AL = "sq-AL", + SR_LATN_RS = "sr-Latn-RS", + SR_RS = "sr-RS", + SU_ID = "su-ID", + SV_SE = "sv-SE", + SW_KE = "sw-KE", + SW_TZ = "sw-TZ", + TA_IN = "ta-IN", + TA_LK = "ta-LK", + TA_MY = "ta-MY", + TA_SG = "ta-SG", + TE_IN = "te-IN", + TH_TH = "th-TH", + TR_TR = "tr-TR", + UK_UA = "uk-UA", + UR_IN = "ur-IN", + UR_PK = "ur-PK", + UZ_UZ = "uz-UZ", + VI_VN = "vi-VN", + WUU_CN = "wuu-CN", + YUE_CN = "yue-CN", + YUE_HK = "yue-HK", + ZH_CN = "zh-CN", + ZH_CN_GUANGXI = "zh-CN-guangxi", + ZH_CN_HENAN = "zh-CN-henan", + ZH_CN_LIAONING = "zh-CN-liaoning", + ZH_CN_SHAANXI = "zh-CN-shaanxi", + ZH_CN_SHANDONG = "zh-CN-shandong", + ZH_CN_SICHUAN = "zh-CN-sichuan", + ZH_HK = "zh-HK", + ZH_TW = "zh-TW", + ZU_ZA = "zu-ZA" +} + +enum VoiceGender { + MALE, + FEMALE, + NEUTRAL +} + +export { VoiceGender, VoiceLanguage }; diff --git a/mods/common/src/types.ts b/mods/common/src/types.ts index aecd0726a..218b13e77 100644 --- a/mods/common/src/types.ts +++ b/mods/common/src/types.ts @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) * http://github.com/fonoster/fonoster * * This file is part of Fonoster @@ -8,7 +8,7 @@ * you may not use this file except in compliance with * the License. You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://opensource.org/licenses/MIT * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -16,16 +16,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export interface ClientOptions { - endpoint?: string; - bucket?: string; - accessKeyId?: string; - accessKeySecret?: string; -} +type NumberPreconditionsCheck = (request: { + appRef?: string; + agentAor?: string; +}) => Promise; -export interface WebClientOptions { - endpoint?: string; - bucket?: string; - accessKeyId: string; - accessKeySecret: string; -} +export { NumberPreconditionsCheck }; diff --git a/mods/common/src/utils/assertEnvsAreSet.ts b/mods/common/src/utils/assertEnvsAreSet.ts new file mode 100644 index 000000000..19069a040 --- /dev/null +++ b/mods/common/src/utils/assertEnvsAreSet.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; + +/** + * Function that asserts that the given environment variable is set. + * + * @param {string[]} variables environment variables to check + */ +function assertEnvsAreSet(variables: string[]) { + variables.forEach((variable: string) => { + if (!(variable in process.env)) { + const logger = getLogger({ service: "common", filePath: __filename }); + logger.error( + `the environment variable ${variable} is required but was not found` + ); + process.exit(1); + } + }); +} + +export { assertEnvsAreSet }; diff --git a/mods/common/src/utils/assertFileExists.ts b/mods/common/src/utils/assertFileExists.ts new file mode 100644 index 000000000..483513474 --- /dev/null +++ b/mods/common/src/utils/assertFileExists.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fs from "fs"; +import { getLogger } from "@fonoster/logger"; + +const logger = getLogger({ service: "common", filePath: __filename }); + +/** + * Function that asserts that the given file exists. + * @param {string} file file to check + */ +export function assertFileExists(file: string) { + if (!fs.existsSync(file)) { + logger.error(`the file ${file} is required but does not exist`); + process.exit(1); + } +} diff --git a/mods/common/src/utils/createFetchSingleCallByCallId.ts b/mods/common/src/utils/createFetchSingleCallByCallId.ts new file mode 100644 index 000000000..7c7103a76 --- /dev/null +++ b/mods/common/src/utils/createFetchSingleCallByCallId.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { flux } from "@influxdata/influxdb-client"; +import { + CALL_DETAIL_RECORD_MEASUREMENT, + INFLUXDB_CALLS_BUCKET +} from "../constants"; +import { CallDetailRecord } from "@fonoster/types"; +import { InfluxDBClient } from "./types"; + +function createFetchSingleCallByCallId(influxdb: InfluxDBClient) { + return async function fetchSingleCallByCallId( + callId: string + ): Promise { + const query = flux`from(bucket: "${INFLUXDB_CALLS_BUCKET}") + |> range(start: -365d) + |> pivot(rowKey: ["callId"], columnKey: ["_field"], valueColumn: "_value") + |> map(fn: (r) => ({ + r with + duration: int(v: r.endedAt) - int(v: r.startedAt) + })) + |> filter(fn: (r) => r._measurement == "${CALL_DETAIL_RECORD_MEASUREMENT}") + |> filter(fn: (r) => r.callId == ${callId}) + |> sort(columns: ["_time"], desc: true) + |> limit(n: 1)`; + + const items = (await influxdb.collectRows(query)) as CallDetailRecord[]; + + return items.length > 0 ? items[0] : null; + }; +} + +export { createFetchSingleCallByCallId }; diff --git a/mods/common/src/utils/createInterceptingCall.ts b/mods/common/src/utils/createInterceptingCall.ts new file mode 100644 index 000000000..92f435a4d --- /dev/null +++ b/mods/common/src/utils/createInterceptingCall.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { status as GRPCStatus, ServerInterceptingCall } from "@grpc/grpc-js"; + +function createInterceptingCall(params: { + call: ServerInterceptingCall; + code: GRPCStatus; + details: string; +}) { + const { call, code, details } = params; + + call.sendStatus({ code, details }); + + return call; +} + +export { createInterceptingCall }; diff --git a/mods/common/src/utils/createService.ts b/mods/common/src/utils/createService.ts new file mode 100644 index 000000000..88516b731 --- /dev/null +++ b/mods/common/src/utils/createService.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as protoLoader from "@grpc/proto-loader"; + +type ServiceDefinitionParams = { + serviceName: string; + pckg: string; + proto: string; + version: string; +}; + +const loadOptions = { + keepCase: false, + longs: String, + enums: String, + defaults: false, + arrays: true, + oneofs: true +}; + +function createServiceDefinition( + params: ServiceDefinitionParams +): grpc.ServiceDefinition { + const pathToProto = `${__dirname}/../protos/${params.proto}`; + const definitions = protoLoader.loadSync(pathToProto, loadOptions); + + return grpc.loadPackageDefinition(definitions).fonoster[params.pckg][ + params.version + ][params.serviceName].service; +} + +export { ServiceDefinitionParams, createServiceDefinition }; diff --git a/mods/common/src/utils/datesMapper.ts b/mods/common/src/utils/datesMapper.ts new file mode 100644 index 000000000..03ea97f30 --- /dev/null +++ b/mods/common/src/utils/datesMapper.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type ObjectWithDates = { + createdAt: Date; + updatedAt: Date; +}; + +const datesMapper = (item: T) => ({ + ...item, + createdAt: item?.createdAt?.getTime() / 1000, + updatedAt: item?.updatedAt?.getTime() / 1000 +}); + +export { datesMapper }; diff --git a/mods/common/src/utils/findIntegrationsCredentials.ts b/mods/common/src/utils/findIntegrationsCredentials.ts new file mode 100644 index 000000000..b11418d1c --- /dev/null +++ b/mods/common/src/utils/findIntegrationsCredentials.ts @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function findIntegrationsCredentials( + integrations: { + productRef: string; + credentials: Record; + }[], + engine: string +) { + return integrations.find( + (i: { productRef: string }) => i.productRef === engine + )?.credentials; +} + +export { findIntegrationsCredentials }; diff --git a/mods/common/src/utils/getServerCredentials.ts b/mods/common/src/utils/getServerCredentials.ts new file mode 100644 index 000000000..1f1f4f5fd --- /dev/null +++ b/mods/common/src/utils/getServerCredentials.ts @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as fs from "fs"; +import { getLogger } from "@fonoster/logger"; +import * as grpc from "@grpc/grpc-js"; + +const logger = getLogger({ service: "common", filePath: __filename }); + +type CredentialsConfig = { + tlsOn?: boolean; + verifyClientCert?: boolean; + caCert?: string; + serverCert?: string; + serverKey?: string; +}; + +async function getServerCredentials(config: CredentialsConfig) { + const { tlsOn, verifyClientCert, caCert, serverCert, serverKey } = config; + + logger.verbose("get server credentials", { + tlsOn, + verifyClientCert, + caCert, + serverCert, + serverKey + }); + + if (tlsOn) { + const cacert = verifyClientCert ? fs.readFileSync(caCert) : null; + + return grpc.ServerCredentials.createSsl(cacert, [ + { + private_key: await fs.promises.readFile(serverKey), + cert_chain: await fs.promises.readFile(serverCert) + } + ]); + } + + return grpc.ServerCredentials.createInsecure(); +} + +export { CredentialsConfig, getServerCredentials }; diff --git a/mods/common/src/utils/index.ts b/mods/common/src/utils/index.ts new file mode 100644 index 000000000..480b49ff6 --- /dev/null +++ b/mods/common/src/utils/index.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./assertEnvsAreSet"; +export * from "./assertFileExists"; +export * from "./createInterceptingCall"; +export * from "./createService"; +export * from "./datesMapper"; +export * from "./getServerCredentials"; +export * from "./toCamelCase"; +export * from "./toPascalCase"; +export * from "./withErrorHandling"; +export * from "./withErrorHandlingAndValidation"; +export * from "./withValidation"; +export * from "./types"; +export * from "./createFetchSingleCallByCallId"; +export * from "./findIntegrationsCredentials"; +export * from "./sendHttpRequest"; diff --git a/mods/common/src/utils/sendHttpRequest.ts b/mods/common/src/utils/sendHttpRequest.ts new file mode 100644 index 000000000..f6b4a8a90 --- /dev/null +++ b/mods/common/src/utils/sendHttpRequest.ts @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { z } from "zod"; + +const responseSchema = z.object({ + result: z.string() +}); + +const logger = getLogger({ service: "common", filePath: __filename }); + +enum AllowedHttpMethod { + GET = "get", + POST = "post" +} + +async function sendHttpRequest(params: { + method: AllowedHttpMethod; + url: string; + waitForResponse: boolean; + headers?: Record; + body?: Record; +}): Promise<{ result: string }> { + const { url, method, body, headers, waitForResponse } = params; + const effectiveMethod = method.toLowerCase() as "get" | "post"; + + const options = { + method, + headers: { + "Content-Type": "application/json", + ...headers + }, + body: effectiveMethod === "post" ? JSON.stringify(body) : undefined + }; + + logger.silly(`sending request to ${url}`, { + body, + method: effectiveMethod + }); + + if (waitForResponse && effectiveMethod === "post") { + setTimeout(() => fetch(url, options), 0); + return { result: "request sent" }; + } else { + const response = await fetch(url, options); + const data = await response.json(); + + try { + return responseSchema.parse(data) as { result: string }; + } catch (error) { + throw new Error( + `Invalid response: expected ${JSON.stringify(responseSchema, null, 2)}, got ${JSON.stringify(data, null, 2)}` + ); + } + } +} + +export { sendHttpRequest, AllowedHttpMethod }; diff --git a/mods/common/src/utils/toCamelCase.ts b/mods/common/src/utils/toCamelCase.ts new file mode 100644 index 000000000..cd5a0401f --- /dev/null +++ b/mods/common/src/utils/toCamelCase.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { toPascalCase } from "./toPascalCase"; + +function toCamelCase(str: string): string { + const pascalCase = toPascalCase(str); + return pascalCase.charAt(0).toLowerCase() + pascalCase.slice(1); +} + +export { toCamelCase }; diff --git a/mods/common/src/utils/toPascalCase.ts b/mods/common/src/utils/toPascalCase.ts new file mode 100644 index 000000000..182931bb5 --- /dev/null +++ b/mods/common/src/utils/toPascalCase.ts @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function toPascalCase(str: string): string { + return str + .replace(/(?:^\w|[A-Z]|\b\w)/g, (word) => { + return word.toUpperCase(); + }) + .replace(/\s+/g, ""); +} + +export { toPascalCase }; diff --git a/mods/common/src/utils/types.ts b/mods/common/src/utils/types.ts new file mode 100644 index 000000000..165ef9186 --- /dev/null +++ b/mods/common/src/utils/types.ts @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ParameterizedQuery } from "@influxdata/influxdb-client"; + +type InfluxDBClient = { + collectRows(query: ParameterizedQuery): Promise; +}; + +export { InfluxDBClient }; diff --git a/mods/common/src/utils/withErrorHandling.ts b/mods/common/src/utils/withErrorHandling.ts new file mode 100644 index 000000000..0cb3e2dda --- /dev/null +++ b/mods/common/src/utils/withErrorHandling.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/ban-types */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { GrpcErrorMessage, handleError } from "../errors"; + +function withErrorHandling(fn: Function) { + return async ( + call: { request: unknown }, + callback: (error?: GrpcErrorMessage, response?: unknown) => void + ) => { + try { + await fn(call, callback); + } catch (error) { + handleError(error, callback); + } + }; +} + +export { withErrorHandling }; diff --git a/mods/common/src/utils/withErrorHandlingAndValidation.ts b/mods/common/src/utils/withErrorHandlingAndValidation.ts new file mode 100644 index 000000000..b3c8405e6 --- /dev/null +++ b/mods/common/src/utils/withErrorHandlingAndValidation.ts @@ -0,0 +1,28 @@ +/* eslint-disable @typescript-eslint/ban-types */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { withErrorHandling } from "./withErrorHandling"; +import { withValidation } from "./withValidation"; + +function withErrorHandlingAndValidation(fn: Function, schema: z.ZodSchema) { + return withErrorHandling(withValidation(fn, schema)); +} + +export { withErrorHandlingAndValidation }; diff --git a/mods/common/src/utils/withValidation.ts b/mods/common/src/utils/withValidation.ts new file mode 100644 index 000000000..edebcb7f5 --- /dev/null +++ b/mods/common/src/utils/withValidation.ts @@ -0,0 +1,33 @@ +/* eslint-disable @typescript-eslint/ban-types */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { GrpcErrorMessage } from "../errors"; + +function withValidation(fn: Function, schema: z.ZodSchema) { + return async ( + call: { request: unknown }, + callback: (error?: GrpcErrorMessage, response?: unknown) => void + ) => { + schema.parse(call.request); + await fn(call, callback); + }; +} + +export { withValidation }; diff --git a/mods/common/src/validators/calls.ts b/mods/common/src/validators/calls.ts new file mode 100644 index 000000000..513a978d4 --- /dev/null +++ b/mods/common/src/validators/calls.ts @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { CallStatus, CallType } from "@fonoster/types"; +import { z } from "zod"; +import { POSITIVE_INTEGER_MESSAGE, VALID_DATE } from "../messages"; + +const createCallRequestSchema = z.object({ + from: z.string(), + to: z.string(), + appRef: z.string().uuid({ message: "Invalid call reference" }), + timeout: z + .number() + .max(120, { message: "Timeout must be less than 120s" }) + .optional() +}); + +const getCallRequestSchema = z.object({ + ref: z.string().uuid({ message: "Invalid call reference" }) +}); + +const listCallsRequestSchema = z.object({ + after: z.string().datetime({ offset: true, message: VALID_DATE }).optional(), + before: z.string().datetime({ offset: true, message: VALID_DATE }).optional(), + pageSize: z + .number() + .int({ + message: POSITIVE_INTEGER_MESSAGE + }) + .positive({ + message: POSITIVE_INTEGER_MESSAGE + }) + .optional(), + type: z + .nativeEnum(CallType, { + message: "Invalid call type" + }) + .optional(), + status: z + .nativeEnum(CallStatus, { message: "Invalid call status" }) + .optional(), + pageToken: z.string().optional() +}); + +export { + createCallRequestSchema, + getCallRequestSchema, + listCallsRequestSchema +}; diff --git a/mods/common/src/validators/common.ts b/mods/common/src/validators/common.ts new file mode 100644 index 000000000..d1ee5ce39 --- /dev/null +++ b/mods/common/src/validators/common.ts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { POSITIVE_INTEGER_MESSAGE, VALID_UUID } from "../messages"; + +const usernameSchema = z.string().regex(/^[a-z0-9._-]+$/, { + message: "Must be a lowercase string and with no spaces." +}); + +const baseApiObjectSchema = z.object({ + ref: z.string().uuid({ + message: VALID_UUID + }) +}); + +const emptySchema = z.object({}); + +const listRequestSchema = z + .object({ + pageSize: z + .number() + .int({ + message: POSITIVE_INTEGER_MESSAGE + }) + .positive({ + message: POSITIVE_INTEGER_MESSAGE + }) + .optional(), + pageToken: z.string().optional() + }) + .optional(); + +const nameSchema = z.string().min(1, { message: "Value required" }); + +export { + baseApiObjectSchema, + emptySchema, + listRequestSchema, + nameSchema, + usernameSchema +}; diff --git a/mods/common/src/validators/hostOrHostPortSchema.ts b/mods/common/src/validators/hostOrHostPortSchema.ts new file mode 100644 index 000000000..b8744115c --- /dev/null +++ b/mods/common/src/validators/hostOrHostPortSchema.ts @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; + +const hostOrHostPortSchema = z.string().refine( + (value) => { + const hostRegex = + /^(?!:\/\/)([a-zA-Z0-9-_]+(\.[a-zA-Z0-9-_]+)*|(\d{1,3}\.){3}\d{1,3})$/; + const hostPortRegex = + /^(?!:\/\/)([a-zA-Z0-9-_]+(\.[a-zA-Z0-9-_]+)*|(\d{1,3}\.){3}\d{1,3}):\d{1,5}$/; + + return hostRegex.test(value) || hostPortRegex.test(value); + }, + { + message: "Invalid format. Expects 'host' or 'host:port'" + } +); + +export { hostOrHostPortSchema }; diff --git a/mods/common/src/validators/identity.ts b/mods/common/src/validators/identity.ts new file mode 100644 index 000000000..115020e7d --- /dev/null +++ b/mods/common/src/validators/identity.ts @@ -0,0 +1,142 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ApiRoleEnum, WorkspaceRoleEnum } from "@fonoster/types"; +import { z } from "zod"; +import { POSITIVE_INTEGER_MESSAGE } from "../messages"; + +const MIN_NAME_MESSAGE = "The name is required"; +const MAX_NAME_MESSAGE = "Name must contain at most 50 characters"; +const EMAIL_MESSAGE = "Invalid email"; +const PASSWORD_MESSAGE = "Password must contain at least 8 characters"; +const USER_REF_MESSAGE = "Invalid user reference"; +const WORKSPACE_REF_MESSAGE = "Invalid workspace reference"; + +const createWorkspaceRequestSchema = z.object({ + name: z + .string() + .min(1, { message: MIN_NAME_MESSAGE }) + .max(50, { message: MAX_NAME_MESSAGE }) +}); + +const createApiKeyRequestSchema = z.object({ + role: z.enum([ApiRoleEnum.WORKSPACE_ADMIN]), + expiresAt: z + .number() + .int({ message: POSITIVE_INTEGER_MESSAGE }) + .positive({ message: POSITIVE_INTEGER_MESSAGE }) + .optional() +}); + +const exchangeApiKeysRequestSchema = z.object({ + accessKeyId: z.string(), + accessKeySecret: z.string() +}); + +const exchangeCredentialsRequestSchema = z.object({ + username: z + .string() + .email({ message: "Invalid username. Must be an email address" }), + password: z.string(), + verificationCode: z.string().optional() +}); + +const exchangeOauth2RequestSchema = z.object({ + provider: z.enum(["GITHUB"]).default("GITHUB"), + username: z + .string() + .email({ message: "Invalid username. Must be an email address" }), + code: z.string() +}); + +const exchangeRefreshTokenRequestSchema = z.object({ + refreshToken: z.string() +}); + +const createUserRequestSchema = z.object({ + name: z.string().max(50, { message: MAX_NAME_MESSAGE }), + email: z.string().email({ message: EMAIL_MESSAGE }), + password: z.string().min(8, { message: PASSWORD_MESSAGE }).max(100), + avatar: z.string().url().max(255, { message: "Invalid avatar URL" }) +}); + +const updateUserRequestSchema = z.object({ + ref: z.string().uuid({ message: USER_REF_MESSAGE }), + name: z + .string() + .max(50, { message: MAX_NAME_MESSAGE }) + .or(z.string().optional()), + password: z + .string() + .min(8, { message: PASSWORD_MESSAGE }) + .or(z.string().optional()), + avatar: z.string().url().or(z.string().optional()) +}); + +const inviteUserToWorkspaceRequestSchema = z.object({ + email: z.string().email({ message: EMAIL_MESSAGE }), + name: z.string().max(50, { message: MAX_NAME_MESSAGE }), + role: z.enum([WorkspaceRoleEnum.ADMIN, WorkspaceRoleEnum.USER]), + password: z.string().min(8, { message: PASSWORD_MESSAGE }).or(z.undefined()) +}); + +const resendWorkspaceMembershipInvitationRequestSchema = z.object({ + userRef: z.string().uuid({ message: USER_REF_MESSAGE }) +}); + +const updateWorkspaceRequestSchema = z.object({ + ref: z.string().uuid({ message: WORKSPACE_REF_MESSAGE }), + name: z + .string() + .min(1, { message: MIN_NAME_MESSAGE }) + .max(50, { message: MAX_NAME_MESSAGE }) + .or(z.string().optional()) +}); + +const removeUserFromWorkspaceRequestSchema = z.object({ + userRef: z.string().uuid({ message: USER_REF_MESSAGE }) +}); + +const sendVerificationCodeRequestSchema = z.object({ + contactType: z.enum(["EMAIL", "PHONE"]).default("EMAIL"), + value: z.string() +}); + +const verifyCodeRequestSchema = z.object({ + username: z.string(), + contactType: z.enum(["EMAIL", "PHONE"]).default("EMAIL"), + value: z.string(), + verificationCode: z.string() +}); + +export { + createApiKeyRequestSchema, + createUserRequestSchema, + createWorkspaceRequestSchema, + exchangeApiKeysRequestSchema, + exchangeCredentialsRequestSchema, + exchangeOauth2RequestSchema, + exchangeRefreshTokenRequestSchema, + inviteUserToWorkspaceRequestSchema, + removeUserFromWorkspaceRequestSchema, + resendWorkspaceMembershipInvitationRequestSchema, + sendVerificationCodeRequestSchema, + updateUserRequestSchema, + updateWorkspaceRequestSchema, + verifyCodeRequestSchema +}; diff --git a/mods/common/src/validators/index.ts b/mods/common/src/validators/index.ts new file mode 100644 index 000000000..d527ad0ce --- /dev/null +++ b/mods/common/src/validators/index.ts @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./calls"; +export * from "./common"; +export * from "./hostOrHostPortSchema"; +export * from "./identity"; +export * from "./secrets"; +export * from "./sipnet"; diff --git a/mods/common/src/validators/secrets.ts b/mods/common/src/validators/secrets.ts new file mode 100644 index 000000000..4956e2800 --- /dev/null +++ b/mods/common/src/validators/secrets.ts @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; + +// Allows only letters, numbers, underscores, and hyphens +const validNameRegex = /^[a-zA-Z0-9_-]+$/; + +const createSecretRequestSchema = z.object({ + name: z + .string() + .regex(validNameRegex, { + message: + "Name can only contain letters, numbers, underscores, or hyphens. No spaces allowed" + }) + .min(3, { message: "Name must be at least 3 characters long" }) + .max(32, { message: "Name must be at most 32 characters long" }), + secret: z.string() +}); + +export { createSecretRequestSchema }; diff --git a/mods/common/src/validators/sipnet/acls.ts b/mods/common/src/validators/sipnet/acls.ts new file mode 100644 index 000000000..c56191909 --- /dev/null +++ b/mods/common/src/validators/sipnet/acls.ts @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as Validator from "validator"; +import { z } from "zod"; +import { nameSchema } from "../common"; + +const IP_OR_CIDR_MESSAGE = "Must be a valid IP or CIDR range"; +const AT_LEAST_ONE_MESSAGE = "At least one IP or CIDR range is required"; + +const ipOrCidr = z + .string() + .refine( + (value) => Validator.isIP(value, 4) || Validator.isIPRange(value, 4), + { + message: IP_OR_CIDR_MESSAGE + } + ); + +const createAclRequestSchema = z.object({ + name: nameSchema, + allow: z.array(ipOrCidr).nonempty({ message: AT_LEAST_ONE_MESSAGE }) +}); + +const updateAclRequestSchema = z.object({ + name: nameSchema, + allow: z + .array(ipOrCidr) + .nonempty({ message: AT_LEAST_ONE_MESSAGE }) + .optional() +}); + +export { createAclRequestSchema, updateAclRequestSchema }; diff --git a/mods/common/src/validators/sipnet/agents.ts b/mods/common/src/validators/sipnet/agents.ts new file mode 100644 index 000000000..29a154df9 --- /dev/null +++ b/mods/common/src/validators/sipnet/agents.ts @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { POSITIVE_INTEGER_MESSAGE } from "../../messages"; +import { nameSchema, usernameSchema } from "../common"; + +const createAgentRequestSchema = z.object({ + name: nameSchema, + username: usernameSchema, + privacy: z.enum(["PRIVATE", "NONE"]).optional(), + enabled: z.boolean().optional(), + maxContacts: z + .number() + .positive({ message: POSITIVE_INTEGER_MESSAGE }) + .optional(), + expires: z.number().positive({ message: POSITIVE_INTEGER_MESSAGE }).optional() +}); + +const updateAgentRequestSchema = z.object({ + name: nameSchema.optional(), + privacy: z.enum(["PRIVATE", "NONE"]).optional(), + enabled: z.boolean().optional(), + maxContacts: z + .number() + .positive({ message: POSITIVE_INTEGER_MESSAGE }) + .optional(), + expires: z.number().positive({ message: POSITIVE_INTEGER_MESSAGE }).optional() +}); + +export { createAgentRequestSchema, updateAgentRequestSchema }; diff --git a/mods/common/src/validators/sipnet/credentials.ts b/mods/common/src/validators/sipnet/credentials.ts new file mode 100644 index 000000000..cfe2201da --- /dev/null +++ b/mods/common/src/validators/sipnet/credentials.ts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { nameSchema, usernameSchema } from "../common"; + +const createCredentialsRequestSchema = z.object({ + name: nameSchema, + username: usernameSchema, + password: z.string() +}); + +const updateCredentialsRequestSchema = z.object({ + name: nameSchema +}); + +export { createCredentialsRequestSchema, updateCredentialsRequestSchema }; diff --git a/mods/common/src/validators/sipnet/domains.ts b/mods/common/src/validators/sipnet/domains.ts new file mode 100644 index 000000000..66d077092 --- /dev/null +++ b/mods/common/src/validators/sipnet/domains.ts @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { ROOT_DOMAIN } from "../../envs"; +import { nameSchema } from "../common"; + +const domainSchema = z + .string() + .refine( + (domain) => { + const domainRegex = /^[a-zA-Z0-9-]+(\.[a-zA-Z]{2,})+$/; + return domainRegex.test(domain); + }, + { + message: "Invalid domain format" + } + ) + .refine( + (domain) => { + return domain.endsWith(ROOT_DOMAIN); + }, + { + message: `Domain must end with "${ROOT_DOMAIN}"` + } + ); + +const createDomainRequestSchema = z.object({ + name: nameSchema, + domainUri: domainSchema, + egressPolicies: z + .array( + z.object({ + rule: z.string() + }) + ) + .optional() +}); + +const updateDomainRequestSchema = z.object({ + name: nameSchema.optional(), + egressPolicies: z + .array( + z.object({ + rule: z.string() + }) + ) + .optional() +}); + +export { createDomainRequestSchema, updateDomainRequestSchema }; diff --git a/mods/common/src/validators/sipnet/index.ts b/mods/common/src/validators/sipnet/index.ts new file mode 100644 index 000000000..30acfbd93 --- /dev/null +++ b/mods/common/src/validators/sipnet/index.ts @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./acls"; +export * from "./agents"; +export * from "./credentials"; +export * from "./domains"; +export * from "./numbers"; +export * from "./trunks"; diff --git a/mods/common/src/validators/sipnet/numbers.ts b/mods/common/src/validators/sipnet/numbers.ts new file mode 100644 index 000000000..60ae74e85 --- /dev/null +++ b/mods/common/src/validators/sipnet/numbers.ts @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import isISO31661Alpha2 from "validator/lib/isISO31661Alpha2"; +import { z } from "zod"; +import { nameSchema } from "../common"; + +const sipUriRegex = /^sip:[a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]+$/; +const sipUriSchema = z.string().regex(sipUriRegex, "Invalid SIP URI"); + +const countryIsoCodeSchema = z.string().refine((val) => isISO31661Alpha2(val), { + message: "Invalid country ISO code" +}); + +const createNumberRequestSchema = z + .object({ + name: nameSchema, + telUrl: z.string(), + city: z.string(), + country: z.string(), + agentAor: sipUriSchema.optional(), + appRef: z.string().optional(), + countryIsoCode: countryIsoCodeSchema + }) + .refine( + ({ agentAor, appRef }) => !(agentAor !== undefined && appRef !== undefined), + { + message: + "You can only provide one of the following fields: 'agentAor' or 'appRef'" + } + ); + +const updateNumberRequestSchema = z + .object({ + name: nameSchema.optional(), + agentAor: sipUriSchema.optional(), + appRef: z.string().optional() + }) + .refine( + ({ agentAor, appRef }) => !(agentAor !== undefined && appRef !== undefined), + { + message: + "You can only provide one of the following fields: 'agentAor' or 'appRef'" + } + ); + +export { createNumberRequestSchema, updateNumberRequestSchema }; diff --git a/mods/common/src/validators/sipnet/trunks.ts b/mods/common/src/validators/sipnet/trunks.ts new file mode 100644 index 000000000..af3abeabc --- /dev/null +++ b/mods/common/src/validators/sipnet/trunks.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Transport } from "@fonoster/types"; +import * as Validator from "validator"; +import { z } from "zod"; +import { nameSchema } from "../common"; + +const hostOrIPSchema = z + .string() + .refine((host) => Validator.isIP(host, 4) || Validator.isFQDN(host), { + message: "Must be a valid IP or FQDN" + }); + +const createTrunkRequestSchema = z.object({ + name: nameSchema, + sendRegister: z.boolean(), + inboundUri: hostOrIPSchema, + uris: z.array( + z.object({ + host: hostOrIPSchema, + port: z.number(), + transport: z.nativeEnum(Transport, { message: "Invalid transport" }), + user: z.string().optional(), + weight: z.number(), + priority: z.number(), + enabled: z.boolean() + }) + ) +}); + +const updateTrunkRequestSchema = z.object({}); + +export { createTrunkRequestSchema, updateTrunkRequestSchema }; diff --git a/mods/common/src/voice/Dial.ts b/mods/common/src/voice/Dial.ts new file mode 100644 index 000000000..8ee0b8c36 --- /dev/null +++ b/mods/common/src/voice/Dial.ts @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VerbRequest } from "./Verb"; + +enum DialRecordDirection { + IN = "IN", + OUT = "OUT", + BOTH = "BOTH" +} + +enum DialStatus { + TRYING = "TRYING", + CANCEL = "CANCEL", + ANSWER = "ANSWER", + BUSY = "BUSY", + PROGRESS = "PROGRESS", + NOANSWER = "NOANSWER", + // Maps from Asterisk's CHANUNAVAIL and CONGESTION + FAILED = "FAILED" +} + +type DialOptions = { + timeout?: number; + recordDirection?: DialRecordDirection; +}; + +type DialRequest = VerbRequest & + DialOptions & { + destination: string; + }; + +export { DialOptions, DialRecordDirection, DialRequest, DialStatus }; diff --git a/mods/common/src/voice/Gather.ts b/mods/common/src/voice/Gather.ts new file mode 100644 index 000000000..fb049f337 --- /dev/null +++ b/mods/common/src/voice/Gather.ts @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VerbRequest, VerbResponse } from "./Verb"; + +enum GatherSource { + SPEECH = "speech", + DTMF = "dtmf", + SPEECH_AND_DTMF = "speech,dtmf" +} + +type GatherOptions = { + finishOnKey?: string; + maxDigits?: number; + timeout?: number; + source?: GatherSource; +}; + +type GatherRequest = VerbRequest & GatherOptions; + +type GatherResponse = VerbResponse & { + speech?: string; + digits?: string; + responseTime: number; +}; + +export { GatherOptions, GatherRequest, GatherResponse, GatherSource }; diff --git a/mods/common/src/voice/Mute.ts b/mods/common/src/voice/Mute.ts new file mode 100644 index 000000000..28728b5b1 --- /dev/null +++ b/mods/common/src/voice/Mute.ts @@ -0,0 +1,33 @@ +import { VerbRequest } from "./Verb"; + +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type MuteOptions = { + direction?: MuteDirection; +}; + +enum MuteDirection { + IN = "IN", + OUT = "OUT", + BOTH = "BOTH" +} + +type MuteRequest = VerbRequest & { direction: MuteDirection }; + +export { MuteDirection, MuteOptions, MuteRequest }; diff --git a/mods/common/src/voice/Play.ts b/mods/common/src/voice/Play.ts new file mode 100644 index 000000000..59c6e5ee1 --- /dev/null +++ b/mods/common/src/voice/Play.ts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VerbRequest } from "./Verb"; + +type PlayOptions = { + playbackRef?: string; +}; + +type PlayRequest = VerbRequest & { url: string } & PlayOptions; + +type PlayResponse = { + sessionRef: string; + playbackRef: string; +}; + +export { PlayOptions, PlayRequest, PlayResponse }; diff --git a/mods/common/src/voice/PlayDtmf.ts b/mods/common/src/voice/PlayDtmf.ts new file mode 100644 index 000000000..db57120ac --- /dev/null +++ b/mods/common/src/voice/PlayDtmf.ts @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VerbRequest } from "./Verb"; + +type PlayDtmfRequest = VerbRequest & { digits: string }; + +export { PlayDtmfRequest }; diff --git a/mods/common/src/voice/PlaybackControl.ts b/mods/common/src/voice/PlaybackControl.ts new file mode 100644 index 000000000..f48da0673 --- /dev/null +++ b/mods/common/src/voice/PlaybackControl.ts @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VerbRequest } from "./Verb"; + +enum PlaybackControlAction { + STOP = "STOP", + RESTART = "RESTART", + PAUSE = "PAUSE", + UNPAUSE = "UNPAUSE", + FORWARD = "FORWARD" +} + +type PlaybackControlRequest = VerbRequest & { + playbackRef: string; + action: PlaybackControlAction; +}; + +export { PlaybackControlAction, PlaybackControlRequest }; diff --git a/mods/common/src/voice/Record.ts b/mods/common/src/voice/Record.ts new file mode 100644 index 000000000..a808d18da --- /dev/null +++ b/mods/common/src/voice/Record.ts @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VerbRequest } from "./Verb"; + +enum RecordFormat { + WAV = "wav" +} + +type RecordOptions = { + maxDuration?: number; + maxSilence?: number; + beep?: boolean; + finishOnKey?: string; +}; + +type RecordRequest = VerbRequest & RecordOptions; + +type RecordResponse = { + sessionRef: string; + name: string; + duration: number; + format: RecordFormat; +}; + +export { RecordFormat, RecordOptions, RecordRequest, RecordResponse }; diff --git a/mods/common/src/voice/Say.ts b/mods/common/src/voice/Say.ts new file mode 100644 index 000000000..7168629b3 --- /dev/null +++ b/mods/common/src/voice/Say.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Struct } from "pb-util"; +import { VerbRequest } from "./Verb"; + +type SayRequest = VerbRequest & { + text: string; + playbackRef?: string; + options?: Struct; +}; + +type SayResponse = { + playbackRef: string; +}; + +type SayOptions = { + playbackRef?: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + [key: string]: any; +}; + +export { SayOptions, SayRequest, SayResponse }; diff --git a/mods/common/src/voice/Stream.ts b/mods/common/src/voice/Stream.ts new file mode 100644 index 000000000..c13706398 --- /dev/null +++ b/mods/common/src/voice/Stream.ts @@ -0,0 +1,71 @@ +import { VerbRequest, VerbResponse } from "./Verb"; + +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +enum StreamDirection { + IN = "IN", + OUT = "OUT", + BOTH = "BOTH" +} + +enum StreamAudioFormat { + WAV = "WAV" +} + +enum StreamMessageType { + AUDIO_IN = "AUDIO_IN", + AUDIO_OUT = "AUDIO_OUT", + ERROR = "ERROR" +} + +type StreamOptions = { + direction?: StreamDirection; + format?: StreamAudioFormat; +}; + +type StartStreamRequest = VerbRequest & StreamOptions; + +type StartStreamResponse = VerbResponse & { + streamRef: string; +}; + +type StopStreamRequest = VerbRequest & { + streamRef: string; +}; + +type StreamPayload = { + sessionRef: string; + streamRef: string; + format: StreamAudioFormat; + type: StreamMessageType; + data?: Uint8Array; + code?: string; + message?: string; +}; + +export { + StartStreamRequest, + StartStreamResponse, + StopStreamRequest, + StreamAudioFormat, + StreamDirection, + StreamMessageType, + StreamOptions, + StreamPayload +}; diff --git a/mods/common/src/voice/StreamGather.ts b/mods/common/src/voice/StreamGather.ts new file mode 100644 index 000000000..00c3c6743 --- /dev/null +++ b/mods/common/src/voice/StreamGather.ts @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VerbRequest, VerbResponse } from "./Verb"; + +enum StreamGatherSource { + SPEECH = "speech", + DTMF = "dtmf", + SPEECH_AND_DTMF = "speech,dtmf" +} + +type StreamGatherOptions = { + source?: StreamGatherSource; +}; + +type StartStreamGatherRequest = VerbRequest & StreamGatherOptions; + +type StreamGatherPayload = VerbResponse & { + speech?: string; + digit?: string; + responseTime: number; +}; + +export { + StartStreamGatherRequest, + StreamGatherOptions, + StreamGatherPayload, + StreamGatherSource +}; diff --git a/mods/common/src/voice/Verb.ts b/mods/common/src/voice/Verb.ts new file mode 100644 index 000000000..dc2726f3c --- /dev/null +++ b/mods/common/src/voice/Verb.ts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VoiceClientConfig } from "./voice"; + +// Alias for VoiceClientConfig +type VoiceRequest = VoiceClientConfig; + +type VerbRequest = { + sessionRef: string; +}; + +type VerbResponse = { + sessionRef: string; +}; + +export { VerbRequest, VerbResponse, VoiceRequest }; diff --git a/mods/common/src/voice/index.ts b/mods/common/src/voice/index.ts new file mode 100644 index 000000000..81281d98a --- /dev/null +++ b/mods/common/src/voice/index.ts @@ -0,0 +1,40 @@ +export * from "./Dial"; + +export * from "./Gather"; + +export * from "./Mute"; + +export * from "./Play"; + +export * from "./PlayDtmf"; + +export * from "./PlaybackControl"; + +export * from "./Record"; + +export * from "./Say"; + +export * from "./Stream"; + +export * from "./StreamGather"; + +export * from "./Verb"; +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./voice"; diff --git a/mods/common/src/voice/voice.ts b/mods/common/src/voice/voice.ts new file mode 100644 index 000000000..645ce3cf3 --- /dev/null +++ b/mods/common/src/voice/voice.ts @@ -0,0 +1,161 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { CallDirection } from "@fonoster/types"; +import { DialRequest, DialStatus } from "./Dial"; +import { GatherRequest, GatherResponse } from "./Gather"; +import { MuteRequest } from "./Mute"; +import { PlayRequest, PlayResponse } from "./Play"; +import { PlayDtmfRequest } from "./PlayDtmf"; +import { RecordRequest, RecordResponse } from "./Record"; +import { SayRequest, SayResponse } from "./Say"; +import { + StartStreamRequest, + StartStreamResponse, + StopStreamRequest, + StreamPayload +} from "./Stream"; +import { StartStreamGatherRequest, StreamGatherPayload } from "./StreamGather"; +import { VerbRequest, VerbResponse, VoiceRequest } from "./Verb"; +import { GrpcError } from "../GrpcError"; + +const DATA = "data"; +const END = "end"; +const ERROR = "error"; + +enum StreamEvent { + DATA = "data", + END = "end", + ERROR = "error" +} + +enum StreamContent { + ANSWER_REQUEST = "answerRequest", + ANSWER_RESPONSE = "answerResponse", + HANGUP_REQUEST = "hangupRequest", + HANGUP_RESPONSE = "hangupResponse", + PLAY_REQUEST = "playRequest", + PLAY_RESPONSE = "playResponse", + PLAY_DTMF_REQUEST = "playDtmfRequest", + PLAY_DTMF_RESPONSE = "playDtmfResponse", + PLAYBACK_CONTROL_REQUEST = "playbackControlRequest", + PLAYBACK_CONTROL_RESPONSE = "playbackControlResponse", + MUTE_REQUEST = "muteRequest", + MUTE_RESPONSE = "muteResponse", + UNMUTE_REQUEST = "unmuteRequest", + UNMUTE_RESPONSE = "unmuteResponse", + GATHER_REQUEST = "gatherRequest", + GATHER_RESPONSE = "gatherResponse", + SAY_REQUEST = "sayRequest", + SAY_RESPONSE = "sayResponse", + RECORD_REQUEST = "recordRequest", + RECORD_RESPONSE = "recordResponse", + DIAL_REQUEST = "dialRequest", + DIAL_RESPONSE = "dialResponse", + START_STREAM_REQUEST = "startStreamRequest", + START_STREAM_RESPONSE = "startStreamResponse", + STOP_STREAM_REQUEST = "stopStreamRequest", + STOP_STREAM_RESPONSE = "stopStreamResponse", + STREAM_PAYLOAD = "streamPayload", + START_STREAM_GATHER_REQUEST = "startStreamGatherRequest", + START_STREAM_GATHER_RESPONSE = "startStreamGatherResponse", + STOP_STREAM_GATHER_REQUEST = "stopStreamGatherRequest", + STOP_STREAM_GATHER_RESPONSE = "stopStreamGatherResponse", + STREAM_GATHER_PAYLOAD = "streamGatherPayload" +} + +type VoiceClientConfig = { + appRef: string; + accessKeyId: string; + endpoint: string; + ingressNumber: string; + callerName: string; + callerNumber: string; + sessionRef: string; + sessionToken: string; + callDirection: CallDirection; + metadata?: Record; +}; + +type VoiceIn = { + request?: VoiceRequest; + content?: StreamContent; + answerResponse?: VerbResponse; + hangupResponse?: VerbResponse; + playResponse?: PlayResponse; + playDtmfResponse?: VerbResponse; + playbackControlResponse?: VerbResponse; + muteResponse?: VerbResponse; + unmuteResponse?: VerbResponse; + gatherResponse?: GatherResponse; + sayResponse?: SayResponse; + recordResponse?: RecordResponse; + dialResponse?: { status: DialStatus }; + startStreamResponse?: StartStreamResponse; + streamPayload?: StreamPayload; + streamGatherPayload?: StreamGatherPayload; + startStreamGatherResponse?: VerbResponse; + stopStreamGatherResponse?: VerbResponse; +}; + +type VoiceOut = { + answerRequest?: VerbRequest; + hangupRequest?: VerbRequest; + playRequest?: PlayRequest; + playDtmfRequest?: PlayDtmfRequest; + playbackControlRequest?: VerbRequest; + muteRequest?: MuteRequest; + unmuteRequest?: MuteRequest; + gatherRequest?: GatherRequest; + sayRequest?: SayRequest; + recordRequest?: RecordRequest; + dialRequest?: DialRequest; + startStreamRequest?: StartStreamRequest; + stopStreamRequest?: StopStreamRequest; + streamPayload?: StreamPayload; + startStreamGatherRequest?: StartStreamGatherRequest; + stopStreamGatherRequest?: VerbRequest; +}; + +type BaseVoiceStream = { + removeListener: (e: StreamEvent, cb: (voice: T) => void) => void; + on: (e: StreamEvent, cb: (voice: T) => void) => void; + once: (e: StreamEvent, cb: (voice: T) => void) => void; + write: (voice: W) => void; + end: () => void; +}; + +type VoiceSessionStreamServer = BaseVoiceStream; + +type VoiceSessionStreamClient = BaseVoiceStream< + VoiceOut | GrpcError, + VoiceIn | GrpcError +>; + +export { + DATA, + END, + ERROR, + StreamContent, + StreamEvent, + VoiceClientConfig, + VoiceIn, + VoiceOut, + VoiceSessionStreamClient, + VoiceSessionStreamServer +}; diff --git a/mods/common/src/web_client.ts b/mods/common/src/web_client.ts deleted file mode 100644 index e64a8486c..000000000 --- a/mods/common/src/web_client.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ClientOptions, WebClientOptions } from "./types"; -const DEFAULT_ENDPOINT = "https://api.fonoster.io/api"; - -export default class { - options: ClientOptions; - api: any; - - /** - * Use the Options object to overwrite the service default configuration. - * @typedef {Object} Options - * @property {string} endpoint - The endpoint URI to send requests to. - * The endpoint should be a string like '{serviceHost}:{servicePort}'. - * @property {string} accessKeyId - your Fonoster access key ID. - * @property {string} accessKeySecret - your Fonoster secret access key. - * @property {string} bucket - The bucket to upload apps and media files. - */ - - /** - * Constructs a service object. - * - * @param {WebClientOptions} options - Overwrite for the service's defaults configuration. - */ - constructor(API: any, name: string, options: WebClientOptions) { - this.options = options; - if (!this.options.endpoint) { - this.options.endpoint = DEFAULT_ENDPOINT; - } - const config = new API.Configuration({ - basePath: this.options.endpoint, - baseOptions: { - headers: { - access_key_id: this.options.accessKeyId, - access_key_secret: this.options.accessKeySecret - } - } - }); - this.api = new API[name](config); - } - - // eslint-disable-next-line require-jsdoc - async run(method: string, request: unknown): Promise { - try { - return (await this.api[method](request as any)) as unknown; - } catch (e) { - if (e.response) { - throw e.response.data; - } else if (e.request) { - // client never received a response, or request never left - } else { - // anything else - } - } - } -} diff --git a/mods/common/test/assistants/assistantSchema.test.ts b/mods/common/test/assistants/assistantSchema.test.ts new file mode 100644 index 000000000..99714ea1a --- /dev/null +++ b/mods/common/test/assistants/assistantSchema.test.ts @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { assistantSchema } from "../../src"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@apiserver[common/assistants/assistantSchema]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("checks the tools have an empty array by default", async function () { + // Arrange + const assistantConfig = { + conversationSettings: { + firstMessage: "Hello", + systemPrompt: "systemPrompt", + goodbyeMessage: "goodbyeMessage", + systemErrorMessage: "systemErrorMessage", + initialDtmf: "1234", + transferOptions: { + phoneNumber: "phoneNumber", + message: "message" + }, + idleOptions: { + message: "message" + }, + }, + languageModel: { + provider: "openai", + apiKey: "apiKey", + model: "gpt-4o", + temperature: 1, + maxTokens: 1 + } + }; + // Act + const result = assistantSchema.parse(assistantConfig); + + // Assert + expect(result.languageModel.tools).to.be.an("array").that.is.empty; + expect(result.languageModel.knowledgeBase).to.be.an("array").that.is.empty; + expect(result.conversationSettings.vad.activationThreshold).to.be.equal(0.30); + expect(result.conversationSettings.vad.deactivationThreshold).to.be.equal(0.25); + expect(result.conversationSettings.vad.debounceFrames).to.be.equal(2); + expect(result.conversationSettings.transferOptions.timeout).to.be.equal(30000); + expect(result.conversationSettings.maxSpeechWaitTimeout).to.be.equal(5000); + expect(result.conversationSettings.idleOptions.timeout).to.be.equal(10000); + expect(result.conversationSettings.idleOptions.maxTimeoutCount).to.be.equal(3); + }); +}); diff --git a/mods/common/test/notifications/compileTemplate.test.ts b/mods/common/test/notifications/compileTemplate.test.ts new file mode 100644 index 000000000..c7b6eb8be --- /dev/null +++ b/mods/common/test/notifications/compileTemplate.test.ts @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@apiserver[common/notifications/compileTemplate]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should compile a template", async function () { + // Arrange + const { compileTemplate } = + // eslint-disable-next-line @typescript-eslint/no-var-requires + require("../../src/notifications/compileTemplate"); + + const fsStub = sandbox.replace( + // eslint-disable-next-line @typescript-eslint/no-var-requires + require("fs"), + "existsSync", + sandbox.stub().returns(true) + ); + + sandbox.replace( + // eslint-disable-next-line @typescript-eslint/no-var-requires + require("fs"), + "readFileSync", + sandbox.stub().returns("Hello {{name}}!") + ); + + // Act + const result = compileTemplate({ + filePath: "path/to/template.hbs", + data: { name: "World" } + }); + + // Assert + expect(result).to.equal("Hello World!"); + expect(fsStub).to.have.been.calledOnce; + expect(fsStub).to.have.been.calledWith("path/to/template.hbs"); + }); +}); diff --git a/mods/common/test/notifications/createEmailSender.test.ts b/mods/common/test/notifications/createEmailSender.test.ts new file mode 100644 index 000000000..6d573bd6a --- /dev/null +++ b/mods/common/test/notifications/createEmailSender.test.ts @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@apiserver[common/notifications/createSendEmail]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a new email sender", async function () { + // Arrange + const config = { + host: "smtp.example.com", + port: 465, + secure: true, + auth: { + user: "user", + pass: "password" + } + }; + + const { createSendEmail } = + // eslint-disable-next-line @typescript-eslint/no-var-requires + require("../../src/notifications/createSendEmail"); + + // Act + const result = createSendEmail(config); + + // Assert + expect(result).to.be.a("function"); + expect(result).to.have.property("name", "sendEmail"); + }); + + it("should send an email", async function () { + // Arrange + const config = { + host: "smtp.example.com", + port: 465, + secure: true, + auth: { + user: "user", + pass: "password" + } + }; + + const { createSendEmail } = + // eslint-disable-next-line @typescript-eslint/no-var-requires + require("../../src/notifications/createSendEmail"); + + // Stub await transporter.sendMail + const sendEmailStub = sandbox + // eslint-disable-next-line @typescript-eslint/no-var-requires + .stub(require("nodemailer"), "createTransport") + .returns({ + sendMail: async () => { + return { messageId: "123" }; + } + }); + + const emailSender = createSendEmail(config); + + const params = { + from: "Fonoster ", + to: "user@example.com", + subject: "Welcome to Fonoster", + html: "

Welcome to Fonoster

" + }; + + // Act + await emailSender(params); + + // Assert + expect(sendEmailStub).to.have.been.calledOnce; + }); +}); diff --git a/mods/common/tsconfig.json b/mods/common/tsconfig.json index 6fdbe54eb..9904d0f8f 100644 --- a/mods/common/tsconfig.json +++ b/mods/common/tsconfig.json @@ -1,9 +1,13 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "outDir": "dist", + "rootDir": "src" }, - "references": [{ "path": "../logger" }, { "path": "../certs" }], + "references": [ + { + "path": "../logger", + } + ], "exclude": ["node_modules", "dist", "test"] } diff --git a/mods/core/package-lock.json b/mods/core/package-lock.json deleted file mode 100644 index 89c1ee42b..000000000 --- a/mods/core/package-lock.json +++ /dev/null @@ -1,936 +0,0 @@ -{ - "name": "@fonoster/core", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/core", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - } - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.2.29", - "@fonoster/common": "^0.2.29", - "@fonoster/errors": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.6", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.6", - "@speedymonster/grpc-interceptors": "^0.2.5", - "atob": "^2.1.2", - "deepmerge": "^4.2.2" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.2.29", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.3.3" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.5.tgz", - "integrity": "sha512-FTd27ItHlsSG/7hp62xgI9YnqSwRbHRSVmDVR8DwOoC+6t8JhHRXe2JL0U8N9GLc0jS0HrtEbO/KP5+G0ebjLQ==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@types/btoa": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/btoa/-/btoa-1.2.3.tgz", - "integrity": "sha512-ANNCZICS/ofxhzUl8V1DniBJs+sFQ+Yg5am1ZwVEf/sxoKY/J2+h5Fuw3xUErlZ7eJLdgzukBjZwnsV6+/2Rmg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ioredis": { - "version": "4.28.8", - "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.8.tgz", - "integrity": "sha512-mULOyO2smtvkE1zmzRRA4P0+1UjEqusi014kXOL1q3CY0RgqkR5/wKvv+vAJbPw2Q66wPyylKeevUy+m/FaRMg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" - }, - "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/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "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/cluster-key-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz", - "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", - "engines": { - "node": ">=0.10" - } - }, - "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/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/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/ioredis": { - "version": "4.28.5", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.28.5.tgz", - "integrity": "sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==", - "dependencies": { - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.1", - "denque": "^1.1.0", - "lodash.defaults": "^4.2.0", - "lodash.flatten": "^4.4.0", - "lodash.isarguments": "^3.1.0", - "p-map": "^2.1.0", - "redis-commands": "1.7.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" - } - }, - "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/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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/nanoid": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.0.tgz", - "integrity": "sha512-JzxqqT5u/x+/KOFSd7JP15DOo9nOoHpx6DYatqIHUW2+flybkm+mdcraotSQR5WcnZr+qhGVh8Ted0KdfSMxlg==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/phone": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/phone/-/phone-2.4.22.tgz", - "integrity": "sha512-k2f9qkIgcgbbeyFFMHDcCaYdPxq7u71EjmMvD998PEquwDvIT7zmUFe00S4hH9WPjk+IQlw9W/FlHOu1O17Tbw==", - "engines": { - "node": ">=6.10.0" - } - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/redis-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", - "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" - }, - "node_modules/redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=", - "engines": { - "node": ">=4" - } - }, - "node_modules/redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=", - "dependencies": { - "redis-errors": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" - }, - "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/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/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/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/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" - } - } - }, - "dependencies": { - "@grpc/grpc-js": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.5.tgz", - "integrity": "sha512-FTd27ItHlsSG/7hp62xgI9YnqSwRbHRSVmDVR8DwOoC+6t8JhHRXe2JL0U8N9GLc0jS0HrtEbO/KP5+G0ebjLQ==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - } - }, - "@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/btoa": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/btoa/-/btoa-1.2.3.tgz", - "integrity": "sha512-ANNCZICS/ofxhzUl8V1DniBJs+sFQ+Yg5am1ZwVEf/sxoKY/J2+h5Fuw3xUErlZ7eJLdgzukBjZwnsV6+/2Rmg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/ioredis": { - "version": "4.28.8", - "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.8.tgz", - "integrity": "sha512-mULOyO2smtvkE1zmzRRA4P0+1UjEqusi014kXOL1q3CY0RgqkR5/wKvv+vAJbPw2Q66wPyylKeevUy+m/FaRMg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" - }, - "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==" - } - } - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" - }, - "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" - } - }, - "cluster-key-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz", - "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==" - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" - }, - "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==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "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==" - }, - "ioredis": { - "version": "4.28.5", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.28.5.tgz", - "integrity": "sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==", - "requires": { - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.1", - "denque": "^1.1.0", - "lodash.defaults": "^4.2.0", - "lodash.flatten": "^4.4.0", - "lodash.isarguments": "^3.1.0", - "p-map": "^2.1.0", - "redis-commands": "1.7.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - } - }, - "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==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "nanoid": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.0.tgz", - "integrity": "sha512-JzxqqT5u/x+/KOFSd7JP15DOo9nOoHpx6DYatqIHUW2+flybkm+mdcraotSQR5WcnZr+qhGVh8Ted0KdfSMxlg==" - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - }, - "phone": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/phone/-/phone-2.4.22.tgz", - "integrity": "sha512-k2f9qkIgcgbbeyFFMHDcCaYdPxq7u71EjmMvD998PEquwDvIT7zmUFe00S4hH9WPjk+IQlw9W/FlHOu1O17Tbw==" - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "redis-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", - "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" - }, - "redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=" - }, - "redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=", - "requires": { - "redis-errors": "^1.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" - }, - "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" - } - }, - "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==" - } - } -} diff --git a/mods/core/package.json b/mods/core/package.json deleted file mode 100644 index dd5549ff4..000000000 --- a/mods/core/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "@fonoster/core", - "version": "0.3.22", - "description": "Core artifacts", - "homepage": "https://github.com/fonoster/fonoster#readme", - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "license": "MIT", - "author": "Pedro Sanders ", - "main": "dist/index", - "types": "dist/index", - "directories": { - "test": "test", - "src": "src" - }, - "files": [ - "dist" - ], - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json" - }, - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/errors": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - }, - "publishConfig": { - "access": "public" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/core/src/common/get_access_key_id.ts b/mods/core/src/common/get_access_key_id.ts deleted file mode 100644 index ecf709d5e..000000000 --- a/mods/core/src/common/get_access_key_id.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export default function (call: any): string { - return call.metadata.internalRepr.get("access_key_id").toString(); -} diff --git a/mods/core/src/common/get_access_key_secret.ts b/mods/core/src/common/get_access_key_secret.ts deleted file mode 100644 index ca90b0cec..000000000 --- a/mods/core/src/common/get_access_key_secret.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export default function (call: any): string { - return call.metadata.internalRepr.get("access_key_secret").toString(); -} diff --git a/mods/core/src/common/redis.ts b/mods/core/src/common/redis.ts deleted file mode 100644 index db95d7a7a..000000000 --- a/mods/core/src/common/redis.ts +++ /dev/null @@ -1,6 +0,0 @@ -import Redis from "ioredis"; -const host = process.env.DS_HOST || "localhost"; -const port = process.env.DS_PORT || 6379; -const secret = process.env.DS_SECRET ? `:${process.env.DS_SECRET}@` : ""; - -export = () => new Redis(`redis://${secret}${host}:${port}`); diff --git a/mods/core/src/common/resource_builder.ts b/mods/core/src/common/resource_builder.ts deleted file mode 100644 index 2974eb7d3..000000000 --- a/mods/core/src/common/resource_builder.ts +++ /dev/null @@ -1,193 +0,0 @@ -import { nanoid } from "nanoid"; - -enum Kind { - AGENT = "Agent", - GATEWAY = "Gateway", - PEER = "Peer", - DOMAIN = "Domain", - NUMBER = "Number" -} - -enum Privacy { - PRIVATE = "private", - NONE = "none" -} - -class ResourceBuilder { - kind: Kind; - apiVersion: string; - metadata: { name: string; ref: string; gwRef?: string }; - spec: { - context?: { - domainUri?: string; - egressPolicy?: { - rule: string; - numberRef: string; - }; - accessControlList?: { - allow?: string[]; - deny?: string[]; - }; - }; - credentials?: { - username: string; - secret: string; - }; - host?: string; - transport?: string; - sendRegister?: boolean; - location?: { - telUrl: string; - aorLink?: string; - }; - expires?: number; - privacy?: Privacy; - domains?: string[]; - }; - - constructor(kind: Kind, name: string, ref?: string, apiVersion = "v1beta1") { - this.kind = kind; - this.apiVersion = apiVersion; - // TODO: Perhaps this should be a variable value? - if (!ref) ref = nanoid(10); - this.metadata = { - name: name, - ref: ref - }; - this.spec = {}; - if (kind === Kind.DOMAIN) this.spec.context = {}; - if (!ref) delete this.metadata.ref; - } - - withMetadata(metadata: object) { - const merge = require("deepmerge"); - this.metadata = merge(this.metadata, metadata); - return this; - } - - withCredentials(username: string, secret: string) { - if (![Kind.AGENT, Kind.GATEWAY, Kind.PEER].includes(this.kind)) - throw new Error( - `Kind ${this.kind} resources don't have 'spec.credentials'` - ); - - this.spec.credentials = { username, secret }; - - if (!secret) delete this.spec.credentials.secret; - // We removed if both are empty because Gateways may not have credentials - if (!username && !secret) delete this.spec.credentials; - - return this; - } - - withHost(host: string) { - if (this.kind != Kind.GATEWAY) - throw new Error(`Kind ${this.kind} does not holds 'spec.host' value`); - this.spec.host = host; - if (!host) delete this.spec.host; - return this; - } - - withTransport(transport: string) { - if (this.kind != Kind.GATEWAY) - throw new Error( - `Kind ${this.kind} does not holds 'spec.transport' value` - ); - this.spec.transport = transport; - if (!transport) delete this.spec.transport; - return this; - } - - withSendRegister(sendRegister: boolean) { - if (this.kind != Kind.GATEWAY) - throw new Error( - `Kind ${this.kind} does not holds 'spec.sendRegister' value` - ); - this.spec.sendRegister = sendRegister; - return this; - } - - withExpires(expires: number) { - if (this.kind != Kind.GATEWAY) - throw new Error(`Kind ${this.kind} does not holds 'spec.expires' value`); - this.spec.expires = expires; - if (!expires) delete this.spec.expires; - return this; - } - - withLocation(telUrl: string, aorLink: string) { - if (this.kind != Kind.NUMBER) - throw new Error(`Kind ${this.kind} does not holds 'spec.location' value`); - this.spec.location = { telUrl, aorLink }; - if (!telUrl && !aorLink) delete this.spec.location; - return this; - } - - withGatewayRef(ref: string) { - if (this.kind != Kind.NUMBER) - throw new Error( - `Kind ${this.kind} does not holds 'spec.metadata.gwRef' value` - ); - this.metadata.gwRef = ref; - if (!ref) delete this.metadata.gwRef; - return this; - } - - withDomainUri(domainUri: string) { - if (this.kind != Kind.DOMAIN) - throw new Error( - `Kind ${this.kind} does not holds 'spec.context.domainUri' value` - ); - this.spec.context.domainUri = domainUri; - if (!domainUri) delete this.spec.context.domainUri; - return this; - } - - withEgressPolicy(rule: string, numberRef: string) { - if (this.kind != Kind.DOMAIN) - throw new Error( - `Kind ${this.kind} does not holds 'spec.context.egressPolicy' value` - ); - this.spec.context.egressPolicy = { rule, numberRef }; - if (!rule && !numberRef) delete this.spec.context.egressPolicy; - return this; - } - - withACL(allow: string[], deny: string[]) { - if (this.kind != Kind.DOMAIN) - throw new Error( - `Kind ${this.kind} does not holds 'spec.context.egressPolicy' value` - ); - this.spec.context.accessControlList = { allow, deny }; - if (!allow || allow.length === 0) - delete this.spec.context.accessControlList.allow; - if (!deny || deny.length === 0) - delete this.spec.context.accessControlList.deny; - if ((!allow && !deny) || allow.length === 0) - delete this.spec.context.accessControlList; - return this; - } - - withPrivacy(privacy: Privacy) { - if (this.kind != Kind.AGENT) - throw new Error(`Kind ${this.kind} does not holds 'spec.privacy' value`); - this.spec.privacy = privacy; - if (!privacy) delete this.spec.privacy; - return this; - } - - withDomains(domains: string[]) { - if (this.kind != Kind.AGENT) - throw new Error(`Kind ${this.kind} does not holds 'spec.domains' value`); - this.spec.domains = domains; - if (!this.spec.domains || this.spec.domains.length === 0) - delete this.spec.domains; - return this; - } - - build() { - return this; - } -} - -export { ResourceBuilder, Kind, Privacy }; diff --git a/mods/core/src/common/routr.ts b/mods/core/src/common/routr.ts deleted file mode 100644 index 5d81f9b7f..000000000 --- a/mods/core/src/common/routr.ts +++ /dev/null @@ -1,10 +0,0 @@ -import RoutrClient from "./routr_client"; - -const host = - process.env.SIPPROXY_API_HOST || process.env.SIPPROXY_HOST || "localhost"; -const port = process.env.SIPPROXY_API_PORT || "4567"; -const username = process.env.SIPPROXY_API_USERNAME || "admin"; -const secret = process.env.SIPPROXY_API_SECRET || "changeit"; -const apiUrl = `https://${host}:${port}/api/v1beta1`; - -export const routr = new RoutrClient(apiUrl, username, secret); diff --git a/mods/core/src/common/routr_client.ts b/mods/core/src/common/routr_client.ts deleted file mode 100644 index dd71635aa..000000000 --- a/mods/core/src/common/routr_client.ts +++ /dev/null @@ -1,140 +0,0 @@ -import axios from "axios"; -import btoa from "btoa"; -import handleError from "./routr_errors"; -process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; - -/** - * Simple Routr Client - */ -export default class RoutrClient { - apiUrl: string; - username: string; - secret: string; - token: string; - resource: string; - - constructor(apiUrl: string, username: string, secret: string) { - this.apiUrl = apiUrl; - this.username = username; - this.secret = secret; - } - - async connect() { - this.token = await this.getToken(this.username, this.secret); - return this; - } - - resourceType(resource: string) { - this.resource = resource; - return this; - } - - private async getToken(username: string, password: string) { - try { - const response = await axios - .create({ - baseURL: `${this.apiUrl}`, - headers: { Authorization: `Basic ${btoa(username + ":" + password)}` } - }) - .get("/token"); - return response.data.data; - } catch (err) { - handleError(err); - } - } - - async list(params: object | {}, accessKeyId: string) { - const queryParams = (p: any) => Object.keys(p).map((k) => `${k}=${p[k]}`); - try { - const url = `${this.apiUrl}/${this.resource}?token=${ - this.token - }&filter=@.metadata.accessKeyId=='${accessKeyId}'&${queryParams( - params - ).join("&")}`; - const response = await axios.get(url); - return response.data; - } catch (err) { - handleError(err); - } - } - - async getDomainUriFromNumber(number: string) { - const en = number.replace("+", "%2B"); - try { - const url = `${this.apiUrl}/numbers?token=${this.token}&filter=@.spec.location.telUrl=='tel:${en}'`; - const response = await axios.get(url); - const numberObj = response.data.data[0]; - if (numberObj) { - const url = `${this.apiUrl}/domains?token=${this.token}&filter=@.spec.context.egressPolicy.numberRef=='${numberObj.metadata.ref}'`; - const res = await axios.get(url); - const domainObj = res.data.data[0]; - - if (domainObj) { - return domainObj; - } - } - } catch (err) { - handleError(err); - } - } - - async getNumber(number: string) { - const en = number.replace("+", "%2B"); - try { - const url = `${this.apiUrl}/numbers?token=${this.token}&filter=@.spec.location.telUrl=='tel:${en}'`; - const response = await axios.get(url); - const numberObj = response.data.data[0]; - return numberObj; - } catch (err) { - handleError(err); - } - } - - async get(ref: string) { - const ep = `/${ref}`; - try { - const response = await axios.get( - `${this.apiUrl}/${this.resource}${ep}?token=${this.token}` - ); - return response.data.data; - } catch (err) { - handleError(err); - } - } - - async delete(ref: string) { - const ep = `/${ref}`; - try { - await axios.delete( - `${this.apiUrl}/${this.resource}${ep}?token=${this.token}` - ); - } catch (err) { - handleError(err); - } - } - - async create(data: any) { - try { - const response = await axios.post( - `${this.apiUrl}/${this.resource}?token=${this.token}`, - data - ); - return response.data.data; - } catch (err) { - handleError(err); - } - } - - async update(data: any) { - try { - const ref = data.metadata.ref; - const response = await axios.put( - `${this.apiUrl}/${this.resource}/${ref}?token=${this.token}`, - data - ); - return response.data.data; - } catch (err) { - handleError(err); - } - } -} diff --git a/mods/core/src/common/routr_errors.ts b/mods/core/src/common/routr_errors.ts deleted file mode 100644 index cedc42ac3..000000000 --- a/mods/core/src/common/routr_errors.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { FonosterError } from "@fonoster/errors"; -import { - FonosterAuthError, - FonosterFailedPrecondition, - FonosterInvalidArgument -} from "@fonoster/errors"; -import { status as Status } from "@grpc/grpc-js"; - -export default function (error: any) { - if (!error.response) throw new FonosterError(error); - - const message = error.response.data.message; - - switch (error.response.status) { - case 409: - throw new FonosterFailedPrecondition(message); - case 401: - throw new FonosterAuthError(message); - case 422: - throw new FonosterFailedPrecondition(message); - case 404: - throw new FonosterError(message, Status.NOT_FOUND); - case 400: - throw new FonosterInvalidArgument(message); - default: - throw new FonosterError(message); - } -} diff --git a/mods/core/src/index.ts b/mods/core/src/index.ts deleted file mode 100644 index c58c61719..000000000 --- a/mods/core/src/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import getAccessKeyId from "./common/get_access_key_id"; -import getAccessKeySecret from "./common/get_access_key_secret"; -import getRedisConnection from "./common/redis"; -import { routr } from "./common/routr"; -import ResourceServer from "./resources/resource_server"; -import createResource from "./resources/create_resource"; -import updateResource from "./resources/update_resource"; -import { Kind, Privacy, ResourceBuilder } from "./common/resource_builder"; - -export { - Privacy, - ResourceServer, - Kind, - ResourceBuilder, - routr, - getRedisConnection, - getAccessKeyId, - getAccessKeySecret, - createResource, - updateResource -}; diff --git a/mods/core/src/protos/common.proto b/mods/core/src/protos/common.proto deleted file mode 100644 index d42c9c04b..000000000 --- a/mods/core/src/protos/common.proto +++ /dev/null @@ -1,103 +0,0 @@ -/** - * MIT License - * Copyright (c) 2022 Fonoster Inc - * - * This proto stores common messages for the fonoster platform. - */ -syntax = "proto3"; - -package fonoster.common.v1beta1; - -option go_package = "github.com/fonoster/fonoster/gen/go/core/common/v1beta1"; - -import "protoc-gen-openapiv2/options/annotations.proto"; - -message Empty {} - -enum View { - BASIC = 0; - STANDARD = 1; - FULL = 2; -} - -message ErrorResponse { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"status\": 0, \"message\": \"string\"}" - }; - int32 status = 1; - string message = 2; -} - -option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { - base_path: "/api" - - info: { - title: "Fonoster" - version: "v1beta1" - contact: { - name: "Fonoster OSS" - url: "https://fonoster.com" - email: "psanders@fonoster.com" - } - license: { - name: "MIT License" - url: "https://raw.githubusercontent.com/fonoster/fonoster/main/LICENSE" - } - } - - // Overwriting host entry breaks tests, so this is not done here. - external_docs: { - url: "https://github.com/fonoster/fonoster" - description: "Github Repo" - } - - schemes: HTTP - - schemes: HTTPS - - consumes: "application/json" - - produces: "application/json" - - security_definitions: { - security: { - key: "AccessKeyId" - value: { - type: TYPE_API_KEY - in: IN_HEADER - name: "access_key_id" - } - } - security: { - key: "AccessKeySecret" - value: { - type: TYPE_API_KEY - in: IN_HEADER - name: "access_key_secret" - } - } - } - - security: { - security_requirement: { - key: "AccessKeyId" - value: {} - } - security_requirement: { - key: "AccessKeySecret" - value: {} - } - } - - responses: { - key: "default" - value: { - description: "User or system error." - schema: { - json_schema: { - ref: ".fonoster.common.v1beta1.ErrorResponse" - } - } - } - } -}; \ No newline at end of file diff --git a/mods/core/src/resources/create_resource.ts b/mods/core/src/resources/create_resource.ts deleted file mode 100644 index 37f53ac54..000000000 --- a/mods/core/src/resources/create_resource.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { routr } from "../common/routr"; -import opentelemetry from "@opentelemetry/api"; -import logger from "@fonoster/logger"; - -const tracer = opentelemetry.trace.getTracer("fonoster-tracer"); - -export default async function (resource: any): Promise { - const currentSpan = opentelemetry.trace.getSpan( - opentelemetry.context.active() - ); - const meta = { - kind: resource.kind, - accessKeyId: resource.metadata.accessKeyId, - traceId: currentSpan.spanContext().traceId - }; - const span = tracer.startSpan("create_resource.ts:createResource()", { - kind: 1 - }); - - logger.verbose("creating resource", meta); - //span.addEvent("creating resource", meta); - - await routr.connect(); - - const ref = await routr - .resourceType(`${resource["kind"].toLowerCase()}s`) - .create(resource); - - // Get from the database - const result = await routr - .resourceType(`${resource["kind"].toLowerCase()}s`) - .get(ref); - - span.end(); - - return result; -} diff --git a/mods/core/src/resources/delete_resource.ts b/mods/core/src/resources/delete_resource.ts deleted file mode 100644 index cb92e9775..000000000 --- a/mods/core/src/resources/delete_resource.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { routr } from "../common/routr"; -import getResource from "./get_resource"; -import { DeleteResourceRequest } from "./types"; -import opentelemetry from "@opentelemetry/api"; -import logger from "@fonoster/logger"; - -const tracer = opentelemetry.trace.getTracer("fonoster-tracer"); - -export default async function deleteResource( - request: DeleteResourceRequest -): Promise { - const currentSpan = opentelemetry.trace.getSpan( - opentelemetry.context.active() - ); - const meta = { ...request, traceId: currentSpan.spanContext().traceId }; - const span = tracer.startSpan("delete_resource.ts:deleteResource()", { - kind: 1 - }); - - logger.verbose("deleting resource", meta); - span.addEvent("deleting resource", meta); - - await routr.connect(); - - if (await getResource(request)) { - await routr - .resourceType(`${request.kind.toLowerCase()}s`) - .delete(request.ref); - } - - span.end(); - return request.ref; -} diff --git a/mods/core/src/resources/get_resource.ts b/mods/core/src/resources/get_resource.ts deleted file mode 100644 index 36e9d4045..000000000 --- a/mods/core/src/resources/get_resource.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { routr } from "../common/routr"; -import { GetResourceRequest } from "./types"; -import opentelemetry from "@opentelemetry/api"; -import logger from "@fonoster/logger"; - -const tracer = opentelemetry.trace.getTracer("fonoster-tracer"); - -export default async function getResource( - request: GetResourceRequest -): Promise { - const currentSpan = opentelemetry.trace.getSpan( - opentelemetry.context.active() - ); - const meta = { ...request, traceId: currentSpan.spanContext().traceId }; - const span = tracer.startSpan("get_resource.ts:getResource()", { kind: 1 }); - - logger.verbose("getting resource", meta); - span.addEvent(`getting resource`, meta); - - await routr.connect(); - - const jsonObj = await routr - .resourceType(`${request.kind.toLowerCase()}s`) - .get(request.ref); - // Return only if exist and is the owner of the resource - - span.end(); - - return jsonObj && jsonObj.metadata.accessKeyId === request.accessKeyId - ? jsonObj - : null; -} diff --git a/mods/core/src/resources/list_resources.ts b/mods/core/src/resources/list_resources.ts deleted file mode 100644 index b309f02c6..000000000 --- a/mods/core/src/resources/list_resources.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { routr } from "../common/routr"; -import { ListResourceRequest, ListResourceResponse } from "./types"; -import opentelemetry from "@opentelemetry/api"; -import logger from "@fonoster/logger"; - -const tracer = opentelemetry.trace.getTracer("fonoster-tracer"); - -export default async function ( - request: ListResourceRequest -): Promise { - const currentSpan = opentelemetry.trace.getSpan( - opentelemetry.context.active() - ); - const meta = { ...request, traceId: currentSpan.spanContext().traceId }; - const span = tracer.startSpan("list_resource.ts:listResources()", { - kind: 1 - }); - - logger.verbose("listing resources", meta); - span.addEvent("listing resources", meta); - - if (!request.page) return {}; - - await routr.connect(); - const result = await routr - .resourceType(`${request.kind.toLowerCase()}s`) - .list( - { - page: request.page, - itemsPerPage: request.itemsPerPage - }, - request.accessKeyId - ); - - span.end(); - - const resources = result.data; - - return { - nextPageToken: resources.length > 0 ? request.page + 1 : null, - resources - }; -} diff --git a/mods/core/src/resources/resource_server.ts b/mods/core/src/resources/resource_server.ts deleted file mode 100644 index 31f61a0bc..000000000 --- a/mods/core/src/resources/resource_server.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import grpc from "@grpc/grpc-js"; -import { Kind } from "../common/resource_builder"; -import getResourceHere from "./get_resource"; -import listResourcesHere from "./list_resources"; -import deleteResourceHere from "./delete_resource"; -import getAccessKeyId from "../common/get_access_key_id"; -import { ListResourceResponse } from "./types"; -import logger from "@fonoster/logger"; - -export default class ResourceServer { - static async listResources( - kind: Kind, - call: grpc.ServerUnaryCall - ): Promise { - try { - return await listResourcesHere({ - accessKeyId: getAccessKeyId(call), - kind, - page: parseInt(call.request.getPageToken()), - itemsPerPage: call.request.getPageSize() - }); - } catch (e) { - logger.error(e); - return null; - } - } - - static async getResource( - kind: Kind, - call: grpc.ServerUnaryCall - ): Promise { - try { - return getResourceHere({ - ref: call.request.getRef(), - kind, - accessKeyId: getAccessKeyId(call) - }); - } catch (e) { - logger.error(e); - return null; - } - } - - static async deleteResource( - kind: Kind, - call: grpc.ServerUnaryCall - ) { - await deleteResourceHere({ - ref: call.request.getRef(), - kind, - accessKeyId: getAccessKeyId(call) - }); - } -} diff --git a/mods/core/src/resources/types.ts b/mods/core/src/resources/types.ts deleted file mode 100644 index 605746c79..000000000 --- a/mods/core/src/resources/types.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Kind } from "../common/resource_builder"; - -export interface GetResourceRequest { - ref: string; - kind: Kind; - accessKeyId: string; -} - -export interface DeleteResourceRequest { - ref: string; - kind: Kind; - accessKeyId: string; -} - -export interface ListResourceRequest { - accessKeyId: string; - kind: Kind; - page: number; - itemsPerPage: number; -} - -export interface ListResourceResponse { - nextPageToken?: number; - resources?: object[]; -} - -export interface UpdateResourceRequest { - accessKeyId: string; - resource: unknown; -} diff --git a/mods/core/src/resources/update_resource.ts b/mods/core/src/resources/update_resource.ts deleted file mode 100644 index 90e9d0a76..000000000 --- a/mods/core/src/resources/update_resource.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { routr } from "../common/routr"; -import { UpdateResourceRequest } from "./types"; - -export default async function (request: UpdateResourceRequest): Promise { - await routr.connect(); - - const objFromDB = await routr - .resourceType(`${request.resource["kind"].toLowerCase()}s`) - .get(request.resource["metadata"].ref); - - if (objFromDB.metadata.accessKeyId === request.accessKeyId) { - request.resource["metadata"].accessKeyId = request.accessKeyId; - await routr - .resourceType(`${request.resource["kind"].toLowerCase()}s`) - .update(request.resource); - return request.resource; - } - return null; -} diff --git a/mods/core/test/core.unit.test.ts b/mods/core/test/core.unit.test.ts deleted file mode 100644 index 2c79aa0cb..000000000 --- a/mods/core/test/core.unit.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* -const StoragePB = require('../src/server/protos/storage_pb') -const { mapToObj } = require('../dist/common/utils') -const expect = require('chai').expect - -describe('@fonoster/core', () => { - it('Convert grpc map to json obj', () => { - const uor = new StoragePB.UploadObjectRequest() - const t = mapToObj(uor.getMetadataMap()) - expect(t).to.be.deep.equal({}) - - uor.getMetadataMap().set('var', 'foo') - uor.getMetadataMap().set('var2', 'foo2') - - const c = mapToObj(uor.getMetadataMap()) - expect(c.var).to.be.equal('foo') - }) -}) - -*/ diff --git a/mods/core/test/fonos_service.unit.test.ts b/mods/core/test/fonos_service.unit.test.ts deleted file mode 100644 index 3c674300f..000000000 --- a/mods/core/test/fonos_service.unit.test.ts +++ /dev/null @@ -1,104 +0,0 @@ -/* -const logger = require('../dist/common/logger') -logger.transports.forEach(t => (t.silent = true)) -const APIClient = require('../dist/common/fonoster_service') -const chai = require('chai') -const sinon = require('sinon') -const sinonChai = require('sinon-chai') -chai.use(sinonChai) -const expect = chai.expect -var sandbox = sinon.createSandbox() - -describe('@fonoster/core/service', () => { - context('APIClient constructor', () => { - sinon.stub(require('path'), 'join').returns('/users/quijote/.fonoster/access') - - it('should only have the default options', () => { - const fs = sinon.stub(require('fs'), 'readFileSync').returns( - JSON.stringify({ - accessKeyId: 'fonos', - accessKeySecret: 'validjwtkey' - }) - ) - const service = new APIClient() - expect(service.getOptions()) - .to.have.property('endpoint') - .to.be.equal('localhost:50052') - expect(service.getOptions()) - .to.have.property('bucket') - .to.be.equal('default') - expect(service.getOptions()).to.have.property('accessKeyId') - fs.restore() - }) - - it('should merge defaultOptions with the ones in the access file', () => { - const fs = sinon.stub(require('fs'), 'readFileSync').returns( - JSON.stringify({ - endpoint: 'localhost:51051', - accessKeyId: 'fonos', - accessKeySecret: 'validjwtkey' - }) - ) - const service = new APIClient() - expect(service.getOptions()) - .to.have.property('endpoint') - .to.be.equal('localhost:51051') - fs.restore() - }) - - it('should merge defaultOptions with the options parameter', () => { - const fs = sinon.stub(require('fs'), 'readFileSync').returns( - JSON.stringify({ - accessKeyId: 'fonos', - accessKeySecret: 'validjwtkey' - }) - ) - const service = new APIClient(void 0, { endpoint: 'apiserver:51051' }) - expect(service.getOptions()) - .to.have.property('endpoint') - .to.be.equal('apiserver:51051') - fs.restore() - }) - - it('should merge defaultOptions with the options in ENV', () => { - const fs = sinon.stub(require('fs'), 'readFileSync').returns( - JSON.stringify({ - accessKeyId: 'fonos', - accessKeySecret: 'validjwtkey' - }) - ) - process.env.FONOSTER_ENDPOINT = 'apiserver:50053' - const service = new APIClient() - expect(service.getOptions()) - .to.have.property('endpoint') - .to.be.equal('apiserver:50053') - fs.restore() - }) - - it('should merge throw and error inf no credentials are found', done => { - const fs = sinon.stub(require('fs'), 'readFileSync').returns('{}') - try { - new APIClient() - done('not good') - } catch (err) { - expect(err.message).to.be.equal('Not valid credentials found') - done() - } - fs.restore() - }) - - it('should fail if the access file is malformed', done => { - sinon.stub(require('fs'), 'readFileSync').returns('{') - try { - new APIClient() - done('not good') - } catch (err) { - expect(err.message).to.be.equal( - 'Malformed access file found at: /users/quijote/.fonoster/access' - ) - done() - } - }) - }) -}) -*/ diff --git a/mods/core/test/fsutils.unit.test.ts b/mods/core/test/fsutils.unit.test.ts deleted file mode 100644 index 9ad9be54f..000000000 --- a/mods/core/test/fsutils.unit.test.ts +++ /dev/null @@ -1,58 +0,0 @@ -import logger from "@fonoster/logger"; -import chai from "chai"; -import sinon from "sinon"; -chai.use(require("sinon-chai")); -chai.use(require("chai-as-promised")); -const expect = chai.expect; -var sandbox = sinon.createSandbox(); - -logger.transports.forEach((t) => (t.silent = true)); - -/* -describe('@fonoster/core/fsutils', () => { - context('create new bucket', () => { - let makeBucketWasCalled, setBucketPolicyCalled, createNewBucket - var fsInstance = sinon - .stub(require('../dist/common/utils'), 'fsInstance') - .returns({ - bucketExists: () => false, - makeBucket: () => - new Promise(resolve => { - makeBucketWasCalled = true - resolve() - }), - setBucketPolicy: () => - new Promise(resolve => { - setBucketPolicyCalled = true - resolve() - }) - }) - createNewBucket = require('../dist/common/fsutils') - - beforeEach(() => {}) - - afterEach(() => { - sandbox.restore() - }) - - it('should not throw', async () => { - await createNewBucket('test') - expect(fsInstance).to.have.been.calledOnce - expect(makeBucketWasCalled).to.be.true - expect(setBucketPolicyCalled).to.be.true - fsInstance.restore() - }) - - it.skip('should throw connectivity error', async () => { - fsInstance.makeBucket = () => - new Promise((_resolve, reject) => { - reject(new Error('Connection error')) - }) - const createNewBucket = require('../dist/common/fsutils') - await expect(createNewBucket('test')).to.be.rejectedWith( - 'Connection error' - ) - }) - }) -}) -*/ diff --git a/mods/core/test/routr.int.test.ts b/mods/core/test/routr.int.test.ts deleted file mode 100644 index 7c75b2b27..000000000 --- a/mods/core/test/routr.int.test.ts +++ /dev/null @@ -1,90 +0,0 @@ -/*import chai from "chai"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import {join} from "path"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); - -if (process.env.NODE_ENV === "dev") { - require("dotenv").config({path: join(__dirname, "..", "..", "..", ".env")}); -} - -import RoutrClient from "../src/common/routr_client"; - -const host = process.env.SIPPROXY_HOST || "localhost"; -const port = process.env.SIPPROXY_API_PORT || "4567"; - -const rConfig = { - username: process.env.SIPPROXY_API_USERNAME || "admin", - secret: process.env.SIPPROXY_API_SECRET || "changeit", - apiUrl: `https://${host}:${port}/api/v1beta1` -}; - -const domain = { - apiVersion: "v1beta1", - kind: "Domain", - metadata: { - name: "Local Office", - ref: "DM001" - }, - spec: { - context: { - domainUri: "sip.local001" - } - } -}; - -const agent = { - apiVersion: "v1beta1", - kind: "Agent", - metadata: { - name: "John", - ref: "abc" - }, - spec: { - credentials: { - username: "test", - secret: "1234" - }, - domains: ["sip.local001"] - } -}; - -describe("Routr Server", () => { - let routr: any; - before(async () => { - routr = new RoutrClient(rConfig.apiUrl, rConfig.username, rConfig.secret); - await routr.connect(); - }); - - it("creates new domain", async () => { - await expect(routr.resourceType("domains").create(domain)).fulfilled; - }); - - it("creates new agent", async () => { - await routr.resourceType("agents").create(agent); - }); - - it("failes because agent already exist", async () => { - await expect( - routr.resourceType("agents").create(agent) - ).to.be.eventually.rejectedWith("Entity already exist"); - }); - - it("deletes the agent and domain", async () => { - await expect(routr.resourceType("agents").delete(agent.metadata.ref)).to.be - .eventually.fulfilled; - await expect(routr.resourceType("domains").delete(domain.metadata.ref)).to - .be.eventually.fulfilled; - }); - - it("fails because of bad reference", async () => { - agent.metadata.ref = "a"; - await expect(routr.resourceType("agents").create(agent)).to.be.rejectedWith( - "$[0].metadata.ref: must be at least 3 characters long" - ); - }); -}); -*/ diff --git a/mods/core/tsconfig.json b/mods/core/tsconfig.json deleted file mode 100644 index 37aaf4e5d..000000000 --- a/mods/core/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../common" }, - { "path": "../certs" }, - { "path": "../errors" }, - { "path": "../events" }, - { "path": "../logger" }, - { "path": "../auth" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/ctl/.gitignore b/mods/ctl/.gitignore deleted file mode 100644 index 632c29811..000000000 --- a/mods/ctl/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -*-debug.log -*-error.log -/.nyc_output -/dist -/tmp -/yarn.lock -node_modules diff --git a/mods/ctl/.intro.md b/mods/ctl/.intro.md new file mode 100644 index 000000000..3b1bf07cb --- /dev/null +++ b/mods/ctl/.intro.md @@ -0,0 +1,13 @@ +ctl +================= + +[![Command-line Tool](https://img.shields.io/badge/ctl-oclif-brightgreen.svg)](https://fonoster.com) +[![Version](https://img.shields.io/npm/v/@fonoster/ctl.svg)](https://npmjs.org/package/@fonoster/voice) +[![Downloads/week](https://img.shields.io/npm/dw/@fonoster/ctl.svg)](https://npmjs.org/package/@fonoster/voice) +[![License](https://img.shields.io/npm/l/@fonoster/ctl.svg)](https://github.com/fonoster/fonoster/blob/main/package.json) + +## Installation + +```sh-session +$ npm install -g @fonoster/ctl +``` diff --git a/mods/certs/.lerna-changed-buster-192 b/mods/ctl/.lerna-changed-buster-5577 similarity index 100% rename from mods/certs/.lerna-changed-buster-192 rename to mods/ctl/.lerna-changed-buster-5577 diff --git a/mods/ctl/.npmignore b/mods/ctl/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/ctl/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/ctl/LICENSE b/mods/ctl/LICENSE new file mode 100644 index 000000000..fafb0d573 --- /dev/null +++ b/mods/ctl/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Fonoster Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/mods/ctl/README.md b/mods/ctl/README.md index 28a4ebaee..c45e32fed 100644 --- a/mods/ctl/README.md +++ b/mods/ctl/README.md @@ -1,797 +1,1307 @@ -# ctl +ctl +================= -Command-Line for for Fonoster +Command-Line for Fonoster -[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io) -[![Version](https://img.shields.io/npm/v/ctl.svg)](https://npmjs.org/package/ctl) -[![Downloads/week](https://img.shields.io/npm/dw/ctl.svg)](https://npmjs.org/package/ctl) -[![License](https://img.shields.io/npm/l/ctl.svg)](https://github.com/fonoster/fonoster/blob/main/package.json) +[![command-line tool](https://img.shields.io/badge/ctl-oclif-brightgreen.svg)](https://fonoster.com) +[![Version](https://img.shields.io/npm/v/@fonoster/ctl.svg)](https://npmjs.org/package/@fonoster/voice) +[![Downloads/week](https://img.shields.io/npm/dw/@fonoster/ctl.svg)](https://npmjs.org/package/@fonoster/voice) +[![License](https://img.shields.io/npm/l/@fonoster/ctl.svg)](https://github.com/fonoster/fonoster/blob/main/package.json) + +Use this tool to manage your Fonoster resources from the command line. With this tool, you can create, update, and delete resources like Applications, Numbers, SIP Agents, and more. + +> When connecting to your own instance of Fonoster, remember to use your endpoint when login in. Also, remember to use the `--insecure` flag when connecting to a server with no TLS. -* [ctl](#ctl) * [Usage](#usage) * [Commands](#commands) - # Usage - ```sh-session $ npm install -g @fonoster/ctl $ fonoster COMMAND running command... -$ fonoster (-v|--version|version) -@fonoster/ctl/0.3.22 darwin-x64 node-v16.18.1 +$ fonoster (--version) +@fonoster/ctl/0.8.65 darwin-arm64 node-v22.13.1 $ fonoster --help [COMMAND] USAGE $ fonoster COMMAND ... ``` - # Commands - -* [`fonoster agents:create`](#fonoster-agentscreate) -* [`fonoster agents:delete [REF]`](#fonoster-agentsdelete-ref) -* [`fonoster agents:get [REF]`](#fonoster-agentsget-ref) -* [`fonoster agents:list`](#fonoster-agentslist) -* [`fonoster agents:update [REF]`](#fonoster-agentsupdate-ref) -* [`fonoster apps:create`](#fonoster-appscreate) -* [`fonoster apps:delete [REF]`](#fonoster-appsdelete-ref) -* [`fonoster apps:list`](#fonoster-appslist) -* [`fonoster apps:update [REF]`](#fonoster-appsupdate-ref) -* [`fonoster auth:login`](#fonoster-authlogin) -* [`fonoster auth:logout`](#fonoster-authlogout) +* [`fonoster apikeys:create`](#fonoster-apikeyscreate) +* [`fonoster apikeys:delete REF`](#fonoster-apikeysdelete-ref) +* [`fonoster apikeys:list`](#fonoster-apikeyslist) +* [`fonoster apikeys:regenerate REF`](#fonoster-apikeysregenerate-ref) +* [`fonoster applications:create`](#fonoster-applicationscreate) +* [`fonoster applications:delete REF`](#fonoster-applicationsdelete-ref) +* [`fonoster applications:get REF`](#fonoster-applicationsget-ref) +* [`fonoster applications:list`](#fonoster-applicationslist) +* [`fonoster applications:update REF`](#fonoster-applicationsupdate-ref) * [`fonoster bug`](#fonoster-bug) -* [`fonoster domains:create`](#fonoster-domainscreate) -* [`fonoster domains:delete [REF]`](#fonoster-domainsdelete-ref) -* [`fonoster domains:get [REF]`](#fonoster-domainsget-ref) -* [`fonoster domains:list`](#fonoster-domainslist) -* [`fonoster domains:update [REF]`](#fonoster-domainsupdate-ref) * [`fonoster feedback`](#fonoster-feedback) -* [`fonoster help [COMMAND]`](#fonoster-help-command) -* [`fonoster numbers:create`](#fonoster-numberscreate) -* [`fonoster numbers:delete [REF]`](#fonoster-numbersdelete-ref) -* [`fonoster numbers:get [REF]`](#fonoster-numbersget-ref) -* [`fonoster numbers:list`](#fonoster-numberslist) -* [`fonoster numbers:update [REF]`](#fonoster-numbersupdate-ref) -* [`fonoster plugins`](#fonoster-plugins) -* [`fonoster plugins:inspect PLUGIN...`](#fonoster-pluginsinspect-plugin) -* [`fonoster plugins:install PLUGIN...`](#fonoster-pluginsinstall-plugin) -* [`fonoster plugins:link PLUGIN`](#fonoster-pluginslink-plugin) -* [`fonoster plugins:uninstall PLUGIN...`](#fonoster-pluginsuninstall-plugin) -* [`fonoster plugins:update`](#fonoster-pluginsupdate) -* [`fonoster projects:create`](#fonoster-projectscreate) -* [`fonoster projects:delete [REF]`](#fonoster-projectsdelete-ref) -* [`fonoster projects:get [REF]`](#fonoster-projectsget-ref) -* [`fonoster projects:list`](#fonoster-projectslist) -* [`fonoster projects:renew [REF]`](#fonoster-projectsrenew-ref) -* [`fonoster projects:use [REF]`](#fonoster-projectsuse-ref) -* [`fonoster providers:create`](#fonoster-providerscreate) -* [`fonoster providers:delete [REF]`](#fonoster-providersdelete-ref) -* [`fonoster providers:get [REF]`](#fonoster-providersget-ref) -* [`fonoster providers:list`](#fonoster-providerslist) -* [`fonoster providers:update [REF]`](#fonoster-providersupdate-ref) -* [`fonoster secrets:create [NAME]`](#fonoster-secretscreate-name) -* [`fonoster secrets:delete [NAME]`](#fonoster-secretsdelete-name) +* [`fonoster secrets:create`](#fonoster-secretscreate) +* [`fonoster secrets:delete REF`](#fonoster-secretsdelete-ref) +* [`fonoster secrets:get REF`](#fonoster-secretsget-ref) * [`fonoster secrets:list`](#fonoster-secretslist) +* [`fonoster secrets:update REF`](#fonoster-secretsupdate-ref) +* [`fonoster sipnet:acls:create`](#fonoster-sipnetaclscreate) +* [`fonoster sipnet:acls:delete REF`](#fonoster-sipnetaclsdelete-ref) +* [`fonoster sipnet:acls:get REF`](#fonoster-sipnetaclsget-ref) +* [`fonoster sipnet:acls:list`](#fonoster-sipnetaclslist) +* [`fonoster sipnet:acls:update REF`](#fonoster-sipnetaclsupdate-ref) +* [`fonoster sipnet:agents:create`](#fonoster-sipnetagentscreate) +* [`fonoster sipnet:agents:delete REF`](#fonoster-sipnetagentsdelete-ref) +* [`fonoster sipnet:agents:get REF`](#fonoster-sipnetagentsget-ref) +* [`fonoster sipnet:agents:list`](#fonoster-sipnetagentslist) +* [`fonoster sipnet:agents:update REF`](#fonoster-sipnetagentsupdate-ref) +* [`fonoster sipnet:calls:create`](#fonoster-sipnetcallscreate) +* [`fonoster sipnet:calls:get REF`](#fonoster-sipnetcallsget-ref) +* [`fonoster sipnet:calls:list`](#fonoster-sipnetcallslist) +* [`fonoster sipnet:credentials:create`](#fonoster-sipnetcredentialscreate) +* [`fonoster sipnet:credentials:delete REF`](#fonoster-sipnetcredentialsdelete-ref) +* [`fonoster sipnet:credentials:get REF`](#fonoster-sipnetcredentialsget-ref) +* [`fonoster sipnet:credentials:list`](#fonoster-sipnetcredentialslist) +* [`fonoster sipnet:credentials:update REF`](#fonoster-sipnetcredentialsupdate-ref) +* [`fonoster sipnet:domains:create`](#fonoster-sipnetdomainscreate) +* [`fonoster sipnet:domains:delete REF`](#fonoster-sipnetdomainsdelete-ref) +* [`fonoster sipnet:domains:get REF`](#fonoster-sipnetdomainsget-ref) +* [`fonoster sipnet:domains:list`](#fonoster-sipnetdomainslist) +* [`fonoster sipnet:domains:update REF`](#fonoster-sipnetdomainsupdate-ref) +* [`fonoster sipnet:numbers:create`](#fonoster-sipnetnumberscreate) +* [`fonoster sipnet:numbers:delete REF`](#fonoster-sipnetnumbersdelete-ref) +* [`fonoster sipnet:numbers:get REF`](#fonoster-sipnetnumbersget-ref) +* [`fonoster sipnet:numbers:linkTwilioNumber`](#fonoster-sipnetnumberslinktwilionumber) +* [`fonoster sipnet:numbers:list`](#fonoster-sipnetnumberslist) +* [`fonoster sipnet:numbers:update REF`](#fonoster-sipnetnumbersupdate-ref) +* [`fonoster sipnet:trunks:create`](#fonoster-sipnettrunkscreate) +* [`fonoster sipnet:trunks:delete REF`](#fonoster-sipnettrunksdelete-ref) +* [`fonoster sipnet:trunks:get REF`](#fonoster-sipnettrunksget-ref) +* [`fonoster sipnet:trunks:list`](#fonoster-sipnettrunkslist) +* [`fonoster sipnet:trunks:update REF`](#fonoster-sipnettrunksupdate-ref) +* [`fonoster utils:autopilotTestsCases`](#fonoster-utilsautopilottestscases) +* [`fonoster workspaces:active`](#fonoster-workspacesactive) +* [`fonoster workspaces:list`](#fonoster-workspaceslist) +* [`fonoster workspaces:login`](#fonoster-workspaceslogin) +* [`fonoster workspaces:logout REF`](#fonoster-workspaceslogout-ref) +* [`fonoster workspaces:use REF`](#fonoster-workspacesuse-ref) + +## `fonoster apikeys:create` + +create an API key for the active Workspace -## `fonoster agents:create` +``` +USAGE + $ fonoster apikeys:create [-i] [-e ] [-r ] + +FLAGS + -e, --expiration= API Key expiration time in days(e.g. 10d) or months(e.g. 10m) + -i, --insecure allow connections to a server with no TLS + -r, --role= [default: WORKSPACE_ADMIN] API Key role -create a new Fonoster Agent +DESCRIPTION + create an API key for the active Workspace + +EXAMPLES + $ fonoster apikeys:create +``` + +_See code: [dist/commands/apikeys/create.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/apikeys/create.js)_ + +## `fonoster apikeys:delete REF` + +delete an API key from the active Workspace ``` USAGE - $ fonoster agents:create + $ fonoster apikeys:delete REF [-i] + +ARGUMENTS + REF the ApiKey to delete from the Workspace + +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - Create a new Fonoster Agent + delete an API key from the active Workspace + +EXAMPLES + $ fonoster apikeys:delete ``` -_See code: [dist/commands/agents/create.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/agents/create.js)_ +_See code: [dist/commands/apikeys/delete.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/apikeys/delete.js)_ -## `fonoster agents:delete [REF]` +## `fonoster apikeys:list` -delete a Fonoster Agent +display all API keys in the active Workspace ``` USAGE - $ fonoster agents:delete [REF] + $ fonoster apikeys:list [-i] [-s ] + +FLAGS + -i, --insecure allow connections to a server with no TLS + -s, --page-size= [default: 1000] the number of items to show -ALIASES - $ fonoster agents:del - $ fonoster agents:rm +DESCRIPTION + display all API keys in the active Workspace + +EXAMPLES + $ fonoster apikeys:list ``` -_See code: [dist/commands/agents/delete.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/agents/delete.js)_ +_See code: [dist/commands/apikeys/list.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/apikeys/list.js)_ -## `fonoster agents:get [REF]` +## `fonoster apikeys:regenerate REF` -get a Fonoster Agent +generate a new access key secret for an API key ``` USAGE - $ fonoster agents:get [REF] + $ fonoster apikeys:regenerate REF [-i] + +ARGUMENTS + REF the Application to update + +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + generate a new access key secret for an API key + +EXAMPLES + $ fonoster apikeys:regenerate ``` -_See code: [dist/commands/agents/get.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/agents/get.js)_ +_See code: [dist/commands/apikeys/regenerate.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/apikeys/regenerate.js)_ -## `fonoster agents:list` +## `fonoster applications:create` -list all Fonoster Agents you have access to +add a new Application to the active Workspace ``` USAGE - $ fonoster agents:list + $ fonoster applications:create [-i] -OPTIONS - -s, --size=size [default: 25] agent of result per page +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - List all Fonoster Agents you have access to + add a new Application to the active Workspace -ALIASES - $ fonoster agents:ls +EXAMPLES + $ fonoster applications:create ``` -_See code: [dist/commands/agents/list.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/agents/list.js)_ +_See code: [dist/commands/applications/create.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/applications/create.js)_ -## `fonoster agents:update [REF]` +## `fonoster applications:delete REF` -update a Fonoster Agent +delete an Application from the active Workspace ``` USAGE - $ fonoster agents:update [REF] + $ fonoster applications:delete REF [-i] + +ARGUMENTS + REF the Application to delete + +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - Update a Fonoster Agent + delete an Application from the active Workspace + +EXAMPLES + $ fonoster applications:delete ``` -_See code: [dist/commands/agents/update.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/agents/update.js)_ +_See code: [dist/commands/applications/delete.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/applications/delete.js)_ -## `fonoster apps:create` +## `fonoster applications:get REF` -create a new Fonoster App +retrieve details of an Application by reference ``` USAGE - $ fonoster apps:create + $ fonoster applications:get REF [-i] + +ARGUMENTS + REF The Application to show details about + +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - Create a new Fonoster App + retrieve details of an Application by reference + +EXAMPLES + $ fonoster applications:get ``` -_See code: [dist/commands/apps/create.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/apps/create.js)_ +_See code: [dist/commands/applications/get.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/applications/get.js)_ -## `fonoster apps:delete [REF]` +## `fonoster applications:list` -delete a Fonoster Application +display all Applications in the active Workspace ``` USAGE - $ fonoster apps:delete [REF] + $ fonoster applications:list [-i] [-s ] + +FLAGS + -i, --insecure allow connections to a server with no TLS + -s, --page-size= [default: 1000] the number of items to show + +DESCRIPTION + display all Applications in the active Workspace -ALIASES - $ fonoster apps:del - $ fonoster apps:rm +EXAMPLES + $ fonoster applications:list ``` -_See code: [dist/commands/apps/delete.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/apps/delete.js)_ +_See code: [dist/commands/applications/list.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/applications/list.js)_ -## `fonoster apps:list` +## `fonoster applications:update REF` -list all Fonoster Apps you have access to +modify the configuration of an Application ``` USAGE - $ fonoster apps:list + $ fonoster applications:update REF [-i] + +ARGUMENTS + REF the Application to update -OPTIONS - -s, --size=size [default: 25] number of result per page +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - List all Fonoster Apps you have access to + modify the configuration of an Application -ALIASES - $ fonoster apps:ls +EXAMPLES + $ fonoster applications:update ``` -_See code: [dist/commands/apps/list.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/apps/list.js)_ +_See code: [dist/commands/applications/update.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/applications/update.js)_ -## `fonoster apps:update [REF]` +## `fonoster bug` -update a new Fonoster App +report a bug to the development team 🐞 ``` USAGE - $ fonoster apps:update [REF] + $ fonoster bug DESCRIPTION + report a bug to the development team 🐞 + +EXAMPLES + $ fonoster bug +``` + +_See code: [dist/commands/bug.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/bug.js)_ + +## `fonoster feedback` + +provide feedback on your experience + +``` +USAGE + $ fonoster feedback + +DESCRIPTION + provide feedback on your experience ... - Update a new Fonoster App + Help us improve by providing some feedback + + +EXAMPLES + $ fonoster feedback ``` -_See code: [dist/commands/apps/update.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/apps/update.js)_ +_See code: [dist/commands/feedback.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/feedback.js)_ -## `fonoster auth:login` +## `fonoster secrets:create` -log in to a Fonoster deployment +add a new Secret to the active Workspace ``` USAGE - $ fonoster auth:login + $ fonoster secrets:create [-i] + +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + add a new Secret to the active Workspace + +EXAMPLES + $ fonoster secrets:create ``` -_See code: [dist/commands/auth/login.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/auth/login.js)_ +_See code: [dist/commands/secrets/create.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/secrets/create.js)_ -## `fonoster auth:logout` +## `fonoster secrets:delete REF` -log out from a fonoster deployment +delete a Secret from the active Workspace ``` USAGE - $ fonoster auth:logout + $ fonoster secrets:delete REF [-i] + +ARGUMENTS + REF the Secret reference + +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + delete a Secret from the active Workspace + +EXAMPLES + $ fonoster secrets:delete ``` -_See code: [dist/commands/auth/logout.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/auth/logout.js)_ +_See code: [dist/commands/secrets/delete.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/secrets/delete.js)_ -## `fonoster bug` +## `fonoster secrets:get REF` -start a bug report 🐞 +retrieve details of a Secret by reference ``` USAGE - $ fonoster bug + $ fonoster secrets:get REF [-i] + +ARGUMENTS + REF The Secret to show details about + +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - Opens github issues with a predefine bug template + retrieve details of a Secret by reference + +EXAMPLES + $ fonoster secrets:get ``` -_See code: [dist/commands/bug.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/bug.js)_ +_See code: [dist/commands/secrets/get.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/secrets/get.js)_ -## `fonoster domains:create` +## `fonoster secrets:list` -create a new Fonoster Domain +display all Secrets in the active Workspace ``` USAGE - $ fonoster domains:create + $ fonoster secrets:list [-i] [-s ] + +FLAGS + -i, --insecure allow connections to a server with no TLS + -s, --page-size= [default: 1000] the number of items to show DESCRIPTION - ... - Create a new Fonoster Domain + display all Secrets in the active Workspace + +EXAMPLES + $ fonoster secrets:list ``` -_See code: [dist/commands/domains/create.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/domains/create.js)_ +_See code: [dist/commands/secrets/list.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/secrets/list.js)_ -## `fonoster domains:delete [REF]` +## `fonoster secrets:update REF` -delete a Fonoster Domain +modify the value or metadata of a Secret ``` USAGE - $ fonoster domains:delete [REF] + $ fonoster secrets:update REF [-i] + +ARGUMENTS + REF the Secret to update -ALIASES - $ fonoster domains:del - $ fonoster domains:rm +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + modify the value or metadata of a Secret + +EXAMPLES + $ fonoster secrets:update ``` -_See code: [dist/commands/domains/delete.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/domains/delete.js)_ +_See code: [dist/commands/secrets/update.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/secrets/update.js)_ -## `fonoster domains:get [REF]` +## `fonoster sipnet:acls:create` -get a Fonoster Domain +create a new Access Control List (ACL) ``` USAGE - $ fonoster domains:get [REF] + $ fonoster sipnet:acls:create [-i] + +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + create a new Access Control List (ACL) + +EXAMPLES + $ fonoster sipnet:acls:create ``` -_See code: [dist/commands/domains/get.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/domains/get.js)_ +_See code: [dist/commands/sipnet/acls/create.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/acls/create.js)_ -## `fonoster domains:list` +## `fonoster sipnet:acls:delete REF` -list all Fonoster Domains you have access to +remove an Access Control List (ACL) from the Workspace ``` USAGE - $ fonoster domains:list + $ fonoster sipnet:acls:delete REF [-i] + +ARGUMENTS + REF the ACL reference -OPTIONS - -s, --size=size [default: 25] number of result per page +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - List all Fonoster Domains you have access to + remove an Access Control List (ACL) from the Workspace -ALIASES - $ fonoster domains:ls +EXAMPLES + $ fonoster sipnet:acls:delete ``` -_See code: [dist/commands/domains/list.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/domains/list.js)_ +_See code: [dist/commands/sipnet/acls/delete.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/acls/delete.js)_ -## `fonoster domains:update [REF]` +## `fonoster sipnet:acls:get REF` -update a Fonoster Domain +get a specific Access Control List (ACL) ``` USAGE - $ fonoster domains:update [REF] + $ fonoster sipnet:acls:get REF [-i] + +ARGUMENTS + REF The ACL reference + +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - Update a Fonoster Domain + get a specific Access Control List (ACL) + +EXAMPLES + $ fonoster sipnet:acls:get ``` -_See code: [dist/commands/domains/update.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/domains/update.js)_ +_See code: [dist/commands/sipnet/acls/get.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/acls/get.js)_ -## `fonoster feedback` +## `fonoster sipnet:acls:list` -let us know how we're doing +list all Access Control Lists (ACLs) ``` USAGE - $ fonoster feedback + $ fonoster sipnet:acls:list [-i] [-s ] + +FLAGS + -i, --insecure allow connections to a server with no TLS + -s, --page-size= [default: 1000] the number of items to show DESCRIPTION - ... - Help us improve by providing some feedback + list all Access Control Lists (ACLs) + +EXAMPLES + $ fonoster sipnet:acls:list ``` -_See code: [dist/commands/feedback.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/feedback.js)_ +_See code: [dist/commands/sipnet/acls/list.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/acls/list.js)_ -## `fonoster help [COMMAND]` +## `fonoster sipnet:acls:update REF` -display help for fonoster +update an existing Access Control List (ACL) ``` USAGE - $ fonoster help [COMMAND] + $ fonoster sipnet:acls:update REF [-i] ARGUMENTS - COMMAND command to show help for + REF the ACL reference + +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + update an existing Access Control List (ACL) -OPTIONS - --all see all commands in CLI +EXAMPLES + $ fonoster sipnet:acls:update ``` -_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v3.3.1/src/commands/help.ts)_ +_See code: [dist/commands/sipnet/acls/update.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/acls/update.js)_ -## `fonoster numbers:create` +## `fonoster sipnet:agents:create` -create a new Fonoster Number +add a new SIP Agent to the network ``` USAGE - $ fonoster numbers:create + $ fonoster sipnet:agents:create [-i] + +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - Create a new Fonoster Number + add a new SIP Agent to the network + +EXAMPLES + $ fonoster sipnet:agents:create ``` -_See code: [dist/commands/numbers/create.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/numbers/create.js)_ +_See code: [dist/commands/sipnet/agents/create.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/agents/create.js)_ -## `fonoster numbers:delete [REF]` +## `fonoster sipnet:agents:delete REF` -delete a Fonoster Number +delete a SIP Agent from the network ``` USAGE - $ fonoster numbers:delete [REF] + $ fonoster sipnet:agents:delete REF [-i] -ALIASES - $ fonoster numbers:del - $ fonoster numbers:rm +ARGUMENTS + REF the Agent reference + +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + delete a SIP Agent from the network + +EXAMPLES + $ fonoster sipnet:agents:delete ``` -_See code: [dist/commands/numbers/delete.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/numbers/delete.js)_ +_See code: [dist/commands/sipnet/agents/delete.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/agents/delete.js)_ -## `fonoster numbers:get [REF]` +## `fonoster sipnet:agents:get REF` -get a Fonoster Number +retrieve details of a SIP Agent ``` USAGE - $ fonoster numbers:get [REF] + $ fonoster sipnet:agents:get REF [-i] + +ARGUMENTS + REF The Agent reference + +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + retrieve details of a SIP Agent + +EXAMPLES + $ fonoster sipnet:agents:get ``` -_See code: [dist/commands/numbers/get.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/numbers/get.js)_ +_See code: [dist/commands/sipnet/agents/get.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/agents/get.js)_ -## `fonoster numbers:list` +## `fonoster sipnet:agents:list` -list all Fonoster Numbers you have access to +display all SIP Agents in the network ``` USAGE - $ fonoster numbers:list + $ fonoster sipnet:agents:list [-i] [-s ] -OPTIONS - -s, --size=size [default: 25] number of result per page +FLAGS + -i, --insecure allow connections to a server with no TLS + -s, --page-size= [default: 1000] the number of items to show DESCRIPTION - ... - List all Fonoster Numbers you have access to + display all SIP Agents in the network -ALIASES - $ fonoster numbers:ls +EXAMPLES + $ fonoster sipnet:agents:list ``` -_See code: [dist/commands/numbers/list.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/numbers/list.js)_ +_See code: [dist/commands/sipnet/agents/list.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/agents/list.js)_ -## `fonoster numbers:update [REF]` +## `fonoster sipnet:agents:update REF` -update a Fonoster Number +add a new SIP Agent to the network ``` USAGE - $ fonoster numbers:update [REF] + $ fonoster sipnet:agents:update REF [-i] + +ARGUMENTS + REF the ACL reference + +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - Update a Fonoster Number + add a new SIP Agent to the network + +EXAMPLES + $ fonoster sipnet:agents:update +``` + +_See code: [dist/commands/sipnet/agents/update.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/agents/update.js)_ + +## `fonoster sipnet:calls:create` + +initiate a call to a phone number or SIP URI + +``` +USAGE + $ fonoster sipnet:calls:create -f -t -a [-i] [-o ] [-c] + +FLAGS + -a, --app-ref= (required) The application reference + -c, --track-call Track the call + -f, --from= (required) The number to make the call from + -i, --insecure allow connections to a server with no TLS + -o, --timeout= [default: 30] The call timeout + -t, --to= (required) The number to make the call to + +DESCRIPTION + initiate a call to a phone number or SIP URI + +EXAMPLES + $ fonoster sipnet:calls:create +``` + +_See code: [dist/commands/sipnet/calls/create.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/calls/create.js)_ + +## `fonoster sipnet:calls:get REF` + +get a specific Access Control List (ACL) + +``` +USAGE + $ fonoster sipnet:calls:get REF [-i] + +ARGUMENTS + REF The ACL reference + +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + get a specific Access Control List (ACL) + +EXAMPLES + $ fonoster sipnet:calls:get ``` -_See code: [dist/commands/numbers/update.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/numbers/update.js)_ +_See code: [dist/commands/sipnet/calls/get.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/calls/get.js)_ -## `fonoster plugins` +## `fonoster sipnet:calls:list` -List installed plugins. +display all calls made in the active Workspace ``` USAGE - $ fonoster plugins + $ fonoster sipnet:calls:list [-i] [-s ] + +FLAGS + -i, --insecure allow connections to a server with no TLS + -s, --page-size= [default: 1000] the number of items to show -OPTIONS - --core Show core plugins. +DESCRIPTION + display all calls made in the active Workspace -EXAMPLE - $ fonoster plugins +EXAMPLES + $ fonoster sipnet:calls:list ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v2.1.9/src/commands/plugins/index.ts)_ +_See code: [dist/commands/sipnet/calls/list.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/calls/list.js)_ -## `fonoster plugins:inspect PLUGIN...` +## `fonoster sipnet:credentials:create` -Displays installation properties of a plugin. +add a new set of Credentials to the network ``` USAGE - $ fonoster plugins:inspect PLUGIN... + $ fonoster sipnet:credentials:create [-i] + +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + add a new set of Credentials to the network + +EXAMPLES + $ fonoster sipnet:credentials:create +``` + +_See code: [dist/commands/sipnet/credentials/create.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/credentials/create.js)_ + +## `fonoster sipnet:credentials:delete REF` + +delete a set of Credentials from the active Workspace + +``` +USAGE + $ fonoster sipnet:credentials:delete REF [-i] ARGUMENTS - PLUGIN [default: .] Plugin to inspect. + REF the Credentials reference -OPTIONS - -h, --help Show CLI help. - -v, --verbose +FLAGS + -i, --insecure allow connections to a server with no TLS -EXAMPLE - $ fonoster plugins:inspect myplugin +DESCRIPTION + delete a set of Credentials from the active Workspace + +EXAMPLES + $ fonoster sipnet:credentials:delete ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v2.1.9/src/commands/plugins/inspect.ts)_ +_See code: [dist/commands/sipnet/credentials/delete.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/credentials/delete.js)_ -## `fonoster plugins:install PLUGIN...` +## `fonoster sipnet:credentials:get REF` -Installs a plugin into the CLI. +retrieve details of a set of Credentials by reference ``` USAGE - $ fonoster plugins:install PLUGIN... + $ fonoster sipnet:credentials:get REF [-i] ARGUMENTS - PLUGIN Plugin to install. + REF The Credentials reference -OPTIONS - -f, --force Run yarn install with force flag. - -h, --help Show CLI help. - -v, --verbose +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - Can be installed from npm or a git url. + retrieve details of a set of Credentials by reference + +EXAMPLES + $ fonoster sipnet:credentials:get +``` - Installation of a user-installed plugin will override a core plugin. +_See code: [dist/commands/sipnet/credentials/get.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/credentials/get.js)_ - e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command - will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in - the CLI without the need to patch and update the whole CLI. +## `fonoster sipnet:credentials:list` -ALIASES - $ fonoster plugins:add +display all Credentials in the active Workspace + +``` +USAGE + $ fonoster sipnet:credentials:list [-i] [-s ] + +FLAGS + -i, --insecure allow connections to a server with no TLS + -s, --page-size= [default: 1000] the number of items to show + +DESCRIPTION + display all Credentials in the active Workspace EXAMPLES - $ fonoster plugins:install myplugin - $ fonoster plugins:install https://github.com/someuser/someplugin - $ fonoster plugins:install someuser/someplugin + $ fonoster sipnet:credentials:list ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v2.1.9/src/commands/plugins/install.ts)_ +_See code: [dist/commands/sipnet/credentials/list.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/credentials/list.js)_ -## `fonoster plugins:link PLUGIN` +## `fonoster sipnet:credentials:update REF` -Links a plugin into the CLI for development. +modify the values or metadata of a set of Credentials ``` USAGE - $ fonoster plugins:link PLUGIN + $ fonoster sipnet:credentials:update REF [-i] ARGUMENTS - PATH [default: .] path to plugin + REF the Credentials reference -OPTIONS - -h, --help Show CLI help. - -v, --verbose +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - Installation of a linked plugin will override a user-installed or core plugin. + modify the values or metadata of a set of Credentials - e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello' - command will override the user-installed or core plugin implementation. This is useful for development work. +EXAMPLES + $ fonoster sipnet:credentials:update +``` + +_See code: [dist/commands/sipnet/credentials/update.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/credentials/update.js)_ + +## `fonoster sipnet:domains:create` + +add a new Domain to the SIP network -EXAMPLE - $ fonoster plugins:link myplugin ``` +USAGE + $ fonoster sipnet:domains:create [-i] -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v2.1.9/src/commands/plugins/link.ts)_ +FLAGS + -i, --insecure allow connections to a server with no TLS -## `fonoster plugins:uninstall PLUGIN...` +DESCRIPTION + add a new Domain to the SIP network + +EXAMPLES + $ fonoster sipnet:domains:create +``` + +_See code: [dist/commands/sipnet/domains/create.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/domains/create.js)_ + +## `fonoster sipnet:domains:delete REF` -Removes a plugin from the CLI. +delete a Domain from the active Workspace ``` USAGE - $ fonoster plugins:uninstall PLUGIN... + $ fonoster sipnet:domains:delete REF [-i] ARGUMENTS - PLUGIN plugin to uninstall + REF the Domain reference -OPTIONS - -h, --help Show CLI help. - -v, --verbose +FLAGS + -i, --insecure allow connections to a server with no TLS -ALIASES - $ fonoster plugins:unlink - $ fonoster plugins:remove +DESCRIPTION + delete a Domain from the active Workspace + +EXAMPLES + $ fonoster sipnet:domains:delete ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v2.1.9/src/commands/plugins/uninstall.ts)_ +_See code: [dist/commands/sipnet/domains/delete.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/domains/delete.js)_ -## `fonoster plugins:update` +## `fonoster sipnet:domains:get REF` -Update installed plugins. +retrieve details of a Domain by reference ``` USAGE - $ fonoster plugins:update + $ fonoster sipnet:domains:get REF [-i] + +ARGUMENTS + REF The Domain reference -OPTIONS - -h, --help Show CLI help. - -v, --verbose +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + retrieve details of a Domain by reference + +EXAMPLES + $ fonoster sipnet:domains:get ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v2.1.9/src/commands/plugins/update.ts)_ +_See code: [dist/commands/sipnet/domains/get.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/domains/get.js)_ -## `fonoster projects:create` +## `fonoster sipnet:domains:list` -create a new Fonoster Project +display all Domains in the SIP network ``` USAGE - $ fonoster projects:create + $ fonoster sipnet:domains:list [-i] [-s ] + +FLAGS + -i, --insecure allow connections to a server with no TLS + -s, --page-size= [default: 1000] the number of items to show DESCRIPTION - ... - Create a new Fonoster Project + display all Domains in the SIP network + +EXAMPLES + $ fonoster sipnet:domains:list ``` -_See code: [dist/commands/projects/create.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/projects/create.js)_ +_See code: [dist/commands/sipnet/domains/list.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/domains/list.js)_ -## `fonoster projects:delete [REF]` +## `fonoster sipnet:domains:update REF` -delete a Fonoster Project +modify the configuration of a Domain ``` USAGE - $ fonoster projects:delete [REF] + $ fonoster sipnet:domains:update REF [-i] + +ARGUMENTS + REF the Domain reference + +FLAGS + -i, --insecure allow connections to a server with no TLS -ALIASES - $ fonoster projects:del - $ fonoster projects:rm +DESCRIPTION + modify the configuration of a Domain + +EXAMPLES + $ fonoster sipnet:domains:update ``` -_See code: [dist/commands/projects/delete.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/projects/delete.js)_ +_See code: [dist/commands/sipnet/domains/update.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/domains/update.js)_ -## `fonoster projects:get [REF]` +## `fonoster sipnet:numbers:create` -get a Fonoster Project +add a new Number to the SIP network ``` USAGE - $ fonoster projects:get [REF] + $ fonoster sipnet:numbers:create [-i] + +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + add a new Number to the SIP network + +EXAMPLES + $ fonoster sipnet:numbers:create ``` -_See code: [dist/commands/projects/get.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/projects/get.js)_ +_See code: [dist/commands/sipnet/numbers/create.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/numbers/create.js)_ -## `fonoster projects:list` +## `fonoster sipnet:numbers:delete REF` -list all Fonoster Projects you have access to +delete a Number from the active Workspace ``` USAGE - $ fonoster projects:list + $ fonoster sipnet:numbers:delete REF [-i] + +ARGUMENTS + REF the Numbers's reference + +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - List all Fonoster Projects you have access to + delete a Number from the active Workspace -ALIASES - $ fonoster projects:ls +EXAMPLES + $ fonoster sipnet:numbers:delete ``` -_See code: [dist/commands/projects/list.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/projects/list.js)_ +_See code: [dist/commands/sipnet/numbers/delete.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/numbers/delete.js)_ -## `fonoster projects:renew [REF]` +## `fonoster sipnet:numbers:get REF` -renew the credentials of a Fonoster Project +retrieve details of a Number by reference ``` USAGE - $ fonoster projects:renew [REF] + $ fonoster sipnet:numbers:get REF [-i] + +ARGUMENTS + REF the Number to show details about + +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - Renew the credentials of a Fonoster Project + retrieve details of a Number by reference + +EXAMPLES + $ fonoster sipnet:numbers:get ``` -_See code: [dist/commands/projects/renew.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/projects/renew.js)_ +_See code: [dist/commands/sipnet/numbers/get.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/numbers/get.js)_ -## `fonoster projects:use [REF]` +## `fonoster sipnet:numbers:linkTwilioNumber` -set a default Fonoster Project +associate a Twilio number with a Fonoster Application ``` USAGE - $ fonoster projects:use [REF] + $ fonoster sipnet:numbers:linkTwilioNumber [-i] [-b ] [-a ] + +FLAGS + -a, --access-control-list= [default: 165.22.7.155/32] the access control list to allow (use if running your + Fonoster instance) + -b, --outbound-uri-base= [default: pstn.fonoster.com] the uri to point twilio to for outbound calls (use if + running your Fonoster instance) + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - Set a default Fonoster Project + associate a Twilio number with a Fonoster Application + +EXAMPLES + $ fonoster sipnet:numbers:linkTwilioNumber ``` -_See code: [dist/commands/projects/use.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/projects/use.js)_ +_See code: [dist/commands/sipnet/numbers/linkTwilioNumber.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/numbers/linkTwilioNumber.js)_ -## `fonoster providers:create` +## `fonoster sipnet:numbers:list` -create a new Fonoster Provider (trunk) +display all Numbers in the active Workspace ``` USAGE - $ fonoster providers:create + $ fonoster sipnet:numbers:list [-i] [-s ] + +FLAGS + -i, --insecure allow connections to a server with no TLS + -s, --page-size= [default: 1000] the number of items to return DESCRIPTION - ... - Create a new Fonoster Provider + display all Numbers in the active Workspace + +EXAMPLES + $ fonoster sipnet:numbers:list ``` -_See code: [dist/commands/providers/create.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/providers/create.js)_ +_See code: [dist/commands/sipnet/numbers/list.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/numbers/list.js)_ -## `fonoster providers:delete [REF]` +## `fonoster sipnet:numbers:update REF` -delete a Fonoster Provider +modify the configuration of a Number ``` USAGE - $ fonoster providers:delete [REF] + $ fonoster sipnet:numbers:update REF [-i] + +ARGUMENTS + REF the Number to update -ALIASES - $ fonoster providers:del - $ fonoster providers:rm +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + modify the configuration of a Number + +EXAMPLES + $ fonoster sipnet:numbers:update ``` -_See code: [dist/commands/providers/delete.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/providers/delete.js)_ +_See code: [dist/commands/sipnet/numbers/update.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/numbers/update.js)_ -## `fonoster providers:get [REF]` +## `fonoster sipnet:trunks:create` -get a Fonoster Provider +add a new Trunk to the SIP network ``` USAGE - $ fonoster providers:get [REF] + $ fonoster sipnet:trunks:create [-i] + +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + add a new Trunk to the SIP network + +EXAMPLES + $ fonoster sipnet:trunks:create ``` -_See code: [dist/commands/providers/get.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/providers/get.js)_ +_See code: [dist/commands/sipnet/trunks/create.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/trunks/create.js)_ -## `fonoster providers:list` +## `fonoster sipnet:trunks:delete REF` -list all Fonoster Providers you have access to +remove a Trunk from the active Workspace ``` USAGE - $ fonoster providers:list + $ fonoster sipnet:trunks:delete REF [-i] + +ARGUMENTS + REF the Trunk's reference -OPTIONS - -s, --size=size [default: 25] provider of result per page +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - List all Fonoster Providers you have access to + remove a Trunk from the active Workspace -ALIASES - $ fonoster providers:ls +EXAMPLES + $ fonoster sipnet:trunks:delete ``` -_See code: [dist/commands/providers/list.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/providers/list.js)_ +_See code: [dist/commands/sipnet/trunks/delete.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/trunks/delete.js)_ -## `fonoster providers:update [REF]` +## `fonoster sipnet:trunks:get REF` -update a Fonoster Provider +retrieve details of a Trunk by reference ``` USAGE - $ fonoster providers:update [REF] + $ fonoster sipnet:trunks:get REF [-i] + +ARGUMENTS + REF The Trunk's reference + +FLAGS + -i, --insecure allow connections to a server with no TLS DESCRIPTION - ... - Update a Fonoster Provider + retrieve details of a Trunk by reference + +EXAMPLES + $ fonoster sipnet:trunks:get ``` -_See code: [dist/commands/providers/update.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/providers/update.js)_ +_See code: [dist/commands/sipnet/trunks/get.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/trunks/get.js)_ -## `fonoster secrets:create [NAME]` +## `fonoster sipnet:trunks:list` -create a Fonoster secret. +display all Trunks in the active Workspace ``` USAGE - $ fonoster secrets:create [NAME] + $ fonoster sipnet:trunks:list [-i] [-s ] + +FLAGS + -i, --insecure allow connections to a server with no TLS + -s, --page-size= [default: 1000] the number of items to show -OPTIONS - -h, --help show CLI help - -l, --from-literal=from-literal pass from literal - -s, --from-stdin pass from stdin +DESCRIPTION + display all Trunks in the active Workspace + +EXAMPLES + $ fonoster sipnet:trunks:list ``` -_See code: [dist/commands/secrets/create.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/secrets/create.js)_ +_See code: [dist/commands/sipnet/trunks/list.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/trunks/list.js)_ -## `fonoster secrets:delete [NAME]` +## `fonoster sipnet:trunks:update REF` -remove Fonoster secret +modify the configuration of a Trunk ``` USAGE - $ fonoster secrets:delete [NAME] + $ fonoster sipnet:trunks:update REF [-i] + +ARGUMENTS + REF the Trunk to update + +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + modify the configuration of a Trunk -ALIASES - $ fonoster secrets:del - $ fonoster secrets:rm +EXAMPLES + $ fonoster sipnet:trunks:update ``` -_See code: [dist/commands/secrets/delete.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/secrets/delete.js)_ +_See code: [dist/commands/sipnet/trunks/update.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/sipnet/trunks/update.js)_ -## `fonoster secrets:list` +## `fonoster utils:autopilotTestsCases` -list of the secrets you have access to +experimental command to test an Autopilot's behavior ``` USAGE - $ fonoster secrets:list + $ fonoster utils:autopilotTestsCases -f [-i] + +FLAGS + -f, --file= (required) path to test cases file (json, yaml, or yml) + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + experimental command to test an Autopilot's behavior + +EXAMPLES + $ fonoster utils:autopilotTestsCases -f assistant.json + + $ fonoster utils:autopilotTestsCases -f assistant.yaml +``` + +_See code: [dist/commands/utils/autopilotTestsCases.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/utils/autopilotTestsCases.js)_ + +## `fonoster workspaces:active` + +display the name of the active Workspace + +``` +USAGE + $ fonoster workspaces:active + +DESCRIPTION + display the name of the active Workspace + +EXAMPLES + $ fonoster workspaces:active +``` + +_See code: [dist/commands/workspaces/active.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/workspaces/active.js)_ -OPTIONS - -s, --size=size [default: 25] secrets of result per page +## `fonoster workspaces:list` -ALIASES - $ fonoster secrets:ls +display all linked Workspaces + +``` +USAGE + $ fonoster workspaces:list + +DESCRIPTION + display all linked Workspaces + +EXAMPLES + $ fonoster workspaces:list +``` + +_See code: [dist/commands/workspaces/list.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/workspaces/list.js)_ + +## `fonoster workspaces:login` + +link a Workspace to the local environment + +``` +USAGE + $ fonoster workspaces:login [-i] + +FLAGS + -i, --insecure allow connections to a server with no TLS + +DESCRIPTION + link a Workspace to the local environment + +EXAMPLES + $ fonoster workspaces:login +``` + +_See code: [dist/commands/workspaces/login.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/workspaces/login.js)_ + +## `fonoster workspaces:logout REF` + +unlink a Workspace from the local environment + +``` +USAGE + $ fonoster workspaces:logout REF + +ARGUMENTS + REF the Workspace to unlink from + +DESCRIPTION + unlink a Workspace from the local environment + +EXAMPLES + $ fonoster workspaces:logout +``` + +_See code: [dist/commands/workspaces/logout.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/workspaces/logout.js)_ + +## `fonoster workspaces:use REF` + +set a Workspace as the default + +``` +USAGE + $ fonoster workspaces:use REF + +ARGUMENTS + REF The Workspace to unlink from + +DESCRIPTION + set a Workspace as the default + +EXAMPLES + $ fonoster workspaces:use ``` -_See code: [dist/commands/secrets/list.js](https://github.com/fonoster/fonoster/blob/v0.3.22/dist/commands/secrets/list.js)_ +_See code: [dist/commands/workspaces/use.js](https://github.com/fonoster/fonoster/blob/v0.8.65/dist/commands/workspaces/use.js)_ diff --git a/mods/ctl/bin/dev.cmd b/mods/ctl/bin/dev.cmd new file mode 100644 index 000000000..077b57ae7 --- /dev/null +++ b/mods/ctl/bin/dev.cmd @@ -0,0 +1,3 @@ +@echo off + +node "%~dp0\dev" %* \ No newline at end of file diff --git a/mods/ctl/bin/dev.js b/mods/ctl/bin/dev.js new file mode 100755 index 000000000..f5bc90f02 --- /dev/null +++ b/mods/ctl/bin/dev.js @@ -0,0 +1,6 @@ +#!/usr/bin/env ../../node_modules/.bin/tsx +// eslint-disable-next-line node/shebang, unicorn/prefer-top-level-await +(async () => { + const oclif = await import("@oclif/core") + await oclif.execute({ development: true, dir: __dirname }); +})(); diff --git a/mods/ctl/bin/run b/mods/ctl/bin/run deleted file mode 100755 index 30b14e177..000000000 --- a/mods/ctl/bin/run +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node - -require('@oclif/command').run() -.then(require('@oclif/command/flush')) -.catch(require('@oclif/errors/handle')) diff --git a/mods/ctl/bin/run.js b/mods/ctl/bin/run.js new file mode 100755 index 000000000..1027e1663 --- /dev/null +++ b/mods/ctl/bin/run.js @@ -0,0 +1,10 @@ +#!/usr/bin/env node --no-warnings + +// WARNING: We added the `--no-warnings` flag to suppress the warning about the punycode deprecated module. +// This is a temporary workaround until this get's fixed upstream. + +// eslint-disable-next-line unicorn/prefer-top-level-await +(async () => { + const oclif = await import("@oclif/core") + await oclif.execute({ dir: __dirname }); +})(); diff --git a/mods/ctl/package-lock.json b/mods/ctl/package-lock.json deleted file mode 100644 index cb6904071..000000000 --- a/mods/ctl/package-lock.json +++ /dev/null @@ -1,12497 +0,0 @@ -{ - "name": "@fonoster/ctl", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/ctl", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@fonoster/agents": "^0.3.22", - "@fonoster/apps": "^0.3.22", - "@fonoster/domains": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@fonoster/numbers": "^0.3.22", - "@fonoster/plugin-warn-if-update-available": "github:fonoster/plugin-warn-if-update-available", - "@fonoster/projects": "^0.3.22", - "@fonoster/providers": "^0.3.22", - "@fonoster/secrets": "^0.3.22", - "@oclif/command": "^1.8.16", - "@oclif/config": "^1.18.3", - "@oclif/core": "^1.3.4", - "@oclif/errors": "^1.3.5", - "@oclif/plugin-help": "^3.3.1", - "@oclif/plugin-not-found": "^2.3.1", - "@oclif/plugin-plugins": "^2.1.0", - "easy-table": "^1.2.0", - "figlet": "^1.5.0", - "get-stdin-with-tty": "^6.0.0", - "inquirer": "^7.3.3", - "moment": "^2.29.1", - "phone": "^2.4.21", - "prettyjson": "^1.2.1", - "update-notifier": "^6.0.2" - }, - "bin": { - "fonoster": "bin/run" - }, - "devDependencies": { - "@types/inquirer": "^9.0.3", - "@types/prettyjson": "0.0.29", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=14.16.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/@fonoster/agents": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/agents/-/agents-0.3.18.tgz", - "integrity": "sha512-Tap5jRKcnrW9LjkAhsaltskBWM12J9qMuZMeQou0UGdJMO2kKAXHUeIAX54Ii+KLda2VipvdPps/o2uT9QG6nw==", - "dependencies": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_agents": "dist/service/healthcheck.js", - "run_agents": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/apps": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/apps/-/apps-0.3.18.tgz", - "integrity": "sha512-TtBi3DhdFQw1/l5ezBDx3eoxOLpRQX9uEXu5MpJzPEmDdwJN2VfUpHMM5XHrif6bILqLVLQORlCng6FqJWd9pg==", - "dependencies": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@opentelemetry/api": "^1.0.4" - }, - "bin": { - "healthcheck_apps": "dist/service/healthcheck.js", - "run_apps": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/auth": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/auth/-/auth-0.3.18.tgz", - "integrity": "sha512-xnTvdbXt2BAHwqetb2QUuSVNDkIAmjtz+CCkV2MlQ5fKX/XLwySbVjleKpf80F0+CMoz3U8wviGGHFQ0q0Y7IQ==", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/certs": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/certs/-/certs-0.3.18.tgz", - "integrity": "sha512-echVIIX6le3yBVs0b8XtVFYJtMzMI/1fGm0CVqdrUw/mp9stsKyDV79Fc9KLKAtVs9+H2bwyAgTgo3HuLwLCvA==", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "node_modules/@fonoster/common": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/common/-/common-0.3.18.tgz", - "integrity": "sha512-C7XgeGOZmnKf48zimp/kCcTSb0+Q0m8JUNh1D+ZImdl2keDN2mh+ibJqydjjwjOpB6TNTUJCVa6CEkjRNnGECw==", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "node_modules/@fonoster/core": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/core/-/core-0.3.18.tgz", - "integrity": "sha512-fquMnpfE34aqmyg1MO52S04rb2RvkVWl7R+zmvyrsyzDiYS2TzRGNV+30YzEe6V7hTz5gfXcCNAVve+N0lE7/A==", - "dependencies": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - } - }, - "node_modules/@fonoster/domains": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/domains/-/domains-0.3.18.tgz", - "integrity": "sha512-bLmqOpLIAYQFSsf26AVN+q7urSBoCIV8rHCWuFe+Sh8wn7ZgtYwoHL8gEzqWuEJZozUFIUDzUXH5yNEQSMiJBA==", - "dependencies": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-domain": "^0.1.2" - }, - "bin": { - "healthcheck_domains": "dist/service/healthcheck.js", - "run_domains": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/errors": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/errors/-/errors-0.3.18.tgz", - "integrity": "sha512-lXI36Ai0OwuAMDyKr4PUXgJo5xw/ViHPfo2+St18pZnalaZSNHX6FN9Jh1VRg3XxqIfCgqLSrTovtc86FB2fqw==" - }, - "node_modules/@fonoster/grpc-health-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@fonoster/grpc-health-check/-/grpc-health-check-3.1.1.tgz", - "integrity": "sha512-JjXI4i2g2FF7QgHcAgy18RISbeRnqQ+U9QdPeYmE5TijaK7JaFwV/mOK7WgIIxQNqNsR/ozoap5Q46T0qpukeQ==", - "dependencies": { - "google-protobuf": "^3.21.0", - "grpc-boom": "^3.0.11" - }, - "peerDependencies": { - "@fonoster/logger": "^0.3.16-alpha.2", - "@grpc/grpc-js": "^1.6.10", - "@grpc/proto-loader": "^0.7.2" - } - }, - "node_modules/@fonoster/logger": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/logger/-/logger-0.3.18.tgz", - "integrity": "sha512-/RpGAsteYmvbe6o9GKsoZAgl9HzqSvNqTJDj52wo3WzyzLF7rZNxnoL5JAdfP7GV+Z0qvLBM/NW6Hqsc04b2Hw==", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - } - }, - "node_modules/@fonoster/numbers": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/numbers/-/numbers-0.3.18.tgz", - "integrity": "sha512-tCyPLiAAAZk+HiUfk+85eGTdD9UTdLPkYag2igi3znhmKvotEpCgsWqGqbeDSqljrV/R3so+FvjtR3oB0AdQyw==", - "dependencies": { - "@fonoster/apps": "^0.3.18", - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_numbers": "dist/service/healthcheck.js", - "run_numbers": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/plugin-warn-if-update-available": { - "version": "1.11.0", - "resolved": "git+ssh://git@github.com/fonoster/plugin-warn-if-update-available.git#4a5a31f23d12304410fc083af0a786f3d2efa9e1", - "license": "MIT", - "dependencies": { - "@oclif/command": "^1.6.0", - "@oclif/config": "^1.12.8", - "@oclif/errors": "^1.3.5", - "chalk": "^4.1.2", - "fs-extra": "^9.0.1", - "libnpm": "^3.0.1", - "lodash.template": "^4.5.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@fonoster/projects": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/projects/-/projects-0.3.18.tgz", - "integrity": "sha512-H4jGHpT+ZbDTDLE6TCa0Dl19fpbs5tiZy3tVy7l3VKH45PtmPxlUPeK4ak0KbUWxHXCCxFTFQvDB6S3iNky+og==", - "dependencies": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_projects": "dist/service/healthcheck.js", - "run_projects": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/providers": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/providers/-/providers-0.3.18.tgz", - "integrity": "sha512-j+ptu2VIeTmXWgh5Iqya1Xm8mCJPCBaJBEpkh1CmmoimChMq9pL2bg41+P4HeMLeiAI75otQ0cJWQ711xBa0qQ==", - "dependencies": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-host": "^1.0.1" - }, - "bin": { - "healthcheck_providers": "dist/service/healthcheck.js", - "run_providers": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/secrets": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/secrets/-/secrets-0.3.18.tgz", - "integrity": "sha512-BRIRmN2Wu9wEDRaNCfLB93FRXTyh+NCRMrO+cbRqPbtkSOJIHF5etvcuvkEsaDQe7OECFiGuOvHWVggG5fz8SQ==", - "dependencies": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "grpc-promise": "^1.4.0", - "node-vault": "^0.9.21" - }, - "bin": { - "healthcheck_secrets": "dist/service/healthcheck.js", - "init": "dist/utils/init.js", - "run_secrets": "dist/service/runner.js" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@iarna/cli": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@iarna/cli/-/cli-2.1.0.tgz", - "integrity": "sha512-rvVVqDa2g860niRbqs3D5RhL4la3dc1vwk+NlpKPZxKaMSHtE2se6C2x8NeveN+rcjp3/686X+u+09CZ+7lmAQ==", - "dependencies": { - "glob": "^7.1.2", - "signal-exit": "^3.0.2" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@oclif/color": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@oclif/color/-/color-1.0.1.tgz", - "integrity": "sha512-qjYr+izgWdIVOroiBKqTzQgc1r5Wd9QB1J7yGM2EeelqhBARiiVLRZL45vhV4zdyTRdDkZS0EBzFwQap+nliLA==", - "dependencies": { - "ansi-styles": "^4.2.1", - "chalk": "^4.1.0", - "strip-ansi": "^6.0.1", - "supports-color": "^8.1.1", - "tslib": "^2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@oclif/command": { - "version": "1.8.16", - "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.16.tgz", - "integrity": "sha512-rmVKYEsKzurfRU0xJz+iHelbi1LGlihIWZ7Qvmb/CBz1EkhL7nOkW4SVXmG2dA5Ce0si2gr88i6q4eBOMRNJ1w==", - "dependencies": { - "@oclif/config": "^1.18.2", - "@oclif/errors": "^1.3.5", - "@oclif/help": "^1.0.1", - "@oclif/parser": "^3.8.6", - "debug": "^4.1.1", - "semver": "^7.3.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@oclif/config": "^1" - } - }, - "node_modules/@oclif/config": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.18.3.tgz", - "integrity": "sha512-sBpko86IrTscc39EvHUhL+c++81BVTsIZ3ETu/vG+cCdi0N6vb2DoahR67A9FI2CGnxRRHjnTfa3m6LulwNATA==", - "dependencies": { - "@oclif/errors": "^1.3.5", - "@oclif/parser": "^3.8.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-wsl": "^2.1.1", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/core": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@oclif/core/-/core-1.3.5.tgz", - "integrity": "sha512-aMBpyVlq+2fAnL+IYBgZ/KVfVepfyQXsWKK/wUBH6bVI294zHlN9RY+9TxPDqOLq48T0Z+SB/17W/31t80bsUA==", - "dependencies": { - "@oclif/linewrap": "^1.0.0", - "@oclif/screen": "^3.0.2", - "ansi-escapes": "^4.3.0", - "ansi-styles": "^4.2.0", - "cardinal": "^2.1.1", - "chalk": "^4.1.2", - "clean-stack": "^3.0.1", - "cli-progress": "^3.10.0", - "debug": "^4.3.3", - "ejs": "^3.1.6", - "fs-extra": "^9.1.0", - "get-package-type": "^0.1.0", - "globby": "^11.0.4", - "hyperlinker": "^1.0.0", - "indent-string": "^4.0.0", - "is-wsl": "^2.2.0", - "js-yaml": "^3.13.1", - "lodash": "^4.17.21", - "natural-orderby": "^2.0.3", - "object-treeify": "^1.1.4", - "password-prompt": "^1.1.2", - "semver": "^7.3.5", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "supports-color": "^8.1.1", - "supports-hyperlinks": "^2.2.0", - "tslib": "^2.3.1", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@oclif/errors": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.5.tgz", - "integrity": "sha512-OivucXPH/eLLlOT7FkCMoZXiaVYf8I/w1eTAM1+gKzfhALwWTusxEx7wBmW0uzvkSg/9ovWLycPaBgJbM3LOCQ==", - "dependencies": { - "clean-stack": "^3.0.0", - "fs-extra": "^8.1", - "indent-string": "^4.0.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/errors/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@oclif/errors/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@oclif/errors/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/@oclif/help": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@oclif/help/-/help-1.0.1.tgz", - "integrity": "sha512-8rsl4RHL5+vBUAKBL6PFI3mj58hjPCp2VYyXD4TAa7IMStikFfOH2gtWmqLzIlxAED2EpD0dfYwo9JJxYsH7Aw==", - "dependencies": { - "@oclif/config": "1.18.2", - "@oclif/errors": "1.3.5", - "chalk": "^4.1.2", - "indent-string": "^4.0.0", - "lodash": "^4.17.21", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "widest-line": "^3.1.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/help/node_modules/@oclif/config": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.18.2.tgz", - "integrity": "sha512-cE3qfHWv8hGRCP31j7fIS7BfCflm/BNZ2HNqHexH+fDrdF2f1D5S8VmXWLC77ffv3oDvWyvE9AZeR0RfmHCCaA==", - "dependencies": { - "@oclif/errors": "^1.3.3", - "@oclif/parser": "^3.8.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-wsl": "^2.1.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/help/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/@oclif/linewrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@oclif/linewrap/-/linewrap-1.0.0.tgz", - "integrity": "sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==" - }, - "node_modules/@oclif/parser": { - "version": "3.8.6", - "resolved": "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.6.tgz", - "integrity": "sha512-tXb0NKgSgNxmf6baN6naK+CCwOueaFk93FG9u202U7mTBHUKsioOUlw1SG/iPi9aJM3WE4pHLXmty59pci0OEw==", - "dependencies": { - "@oclif/errors": "^1.2.2", - "@oclif/linewrap": "^1.0.0", - "chalk": "^4.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/plugin-help": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.3.1.tgz", - "integrity": "sha512-QuSiseNRJygaqAdABYFWn/H1CwIZCp9zp/PLid6yXvy6VcQV7OenEFF5XuYaCvSARe2Tg9r8Jqls5+fw1A9CbQ==", - "dependencies": { - "@oclif/command": "^1.8.15", - "@oclif/config": "1.18.2", - "@oclif/errors": "1.3.5", - "@oclif/help": "^1.0.1", - "chalk": "^4.1.2", - "indent-string": "^4.0.0", - "lodash": "^4.17.21", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "widest-line": "^3.1.0", - "wrap-ansi": "^6.2.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/plugin-help/node_modules/@oclif/config": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.18.2.tgz", - "integrity": "sha512-cE3qfHWv8hGRCP31j7fIS7BfCflm/BNZ2HNqHexH+fDrdF2f1D5S8VmXWLC77ffv3oDvWyvE9AZeR0RfmHCCaA==", - "dependencies": { - "@oclif/errors": "^1.3.3", - "@oclif/parser": "^3.8.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-wsl": "^2.1.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@oclif/plugin-help/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/@oclif/plugin-not-found": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-2.3.1.tgz", - "integrity": "sha512-AeNBw+zSkRpePmpXO8xlL072VF2/R2yK3qsVs/JF26Yw1w77TWuRTdFR+hFotJtFCJ4QYqhNtKSjdryCO9AXsA==", - "dependencies": { - "@oclif/color": "^1.0.0", - "@oclif/core": "^1.2.1", - "fast-levenshtein": "^3.0.0", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@oclif/plugin-plugins": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-2.1.0.tgz", - "integrity": "sha512-Bgt+QpTlX7+Q0HkVgtbUGYQlo/hyzNBAaXH5l16ou9Ji5wfi5T+niV5AzQ14R7JF8ZDOTbUOU/NRBJ2bzLCaZQ==", - "dependencies": { - "@oclif/color": "^1.0.1", - "@oclif/core": "^1.2.0", - "chalk": "^4.1.2", - "debug": "^4.1.0", - "fs-extra": "^9.0", - "http-call": "^5.2.2", - "load-json-file": "^5.3.0", - "npm-run-path": "^4.0.1", - "semver": "^7.3.2", - "tslib": "^2.0.0", - "yarn": "^1.22.17" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@oclif/screen": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@oclif/screen/-/screen-3.0.2.tgz", - "integrity": "sha512-S/SF/XYJeevwIgHFmVDAFRUvM3m+OjhvCAYMk78ZJQCYCQ5wS7j+LTt1ZEv2jpEEGg2tx/F6TYYWxddNAYHrFQ==", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/api-metrics": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.27.0.tgz", - "integrity": "sha512-tB79288bwjkdhPNpw4UdOEy3bacVwtol6Que7cAu8KEJ9ULjRfSiwpYEwJY/oER3xZ7zNFz0uiJ7N1jSiotpVA==", - "deprecated": "Please use @opentelemetry/api >= 1.3.0", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", - "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==", - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/exporter-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.8.0.tgz", - "integrity": "sha512-3h16Sb1T/G33S+RM3yjt1t2xRuu/mi9iB172faS6qFQEclTTJru1pTK4wuWG+9GyI7uyBLfbQoXVA5/BA6gvHw==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0", - "jaeger-client": "^3.15.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/exporter-zipkin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.8.0.tgz", - "integrity": "sha512-Y3WqNCZjfWKnHiRzb35sXpDfGL4Gx2qajFAv059s/VFayIPytLHUOrZMiQqrpfzU/TSIKPG4OHJaypFtUtNlQQ==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.27.0.tgz", - "integrity": "sha512-dUwY/VoDptdK8AYigwS3IKblG+unV5xIdV4VQKy+nX5aT3f7vd5PMYs4arCQSYLbLRe0s7GxK6S9dtjai/TsHQ==", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.27.1.tgz", - "integrity": "sha512-EbpmTyem70Rg56+A0w8ndSmeyVYj7gFV9yk2IGgVVc9n/hs2mTgsBI2evaUtWbpB51pb1u/h+DhICKxgg/8Hew==", - "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/express": "4.17.13" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.2" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.27.0.tgz", - "integrity": "sha512-aFHcAeeLfqoH8PMjmdqEwZwXDJtFSkWmGDBZeH2yrx3KzFMVBB/UJEr1n/ZC6AqfqahL/qqB1N8EnoCoOcs5ig==", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.27.0.tgz", - "integrity": "sha512-Q1dxUt+5d70rbY6jJAC8nwpIQJontmJW94eIS5CsGngvCRYw6tgjLZp2fpVL1o7Lj7uiLpGigeE4EN5Lr2YDFA==", - "dependencies": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/propagator-b3": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.8.0.tgz", - "integrity": "sha512-ffP6AVHyISqK1kiUY1MoVKt43Wp3FJXI8NOePqxBrAU7bRDJ13276VbSl4ugCZbZLTPrPhhSmvQh1WqlfUgcAg==", - "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/propagator-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.8.0.tgz", - "integrity": "sha512-v6GA38k2cqeGAh3368prLW5MsuG2/KxpfWI/PxTPjCa9tThDPq0cvhKpk7cEma3y+F6rieMhwmzZhKQL5QVBzQ==", - "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/resources": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.8.0.tgz", - "integrity": "sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.27.0.tgz", - "integrity": "sha512-HpiWI4sVNsjp3FGyUlc24KvUY2Whl4PQVwcbA/gWv2kHaLQrDJrWC+3rjUR+87Mrd0nsiqJ85xhGFU6IK8h7gg==", - "deprecated": "Please use @opentelemetry/sdk-metrics", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/core": "1.0.1", - "@opentelemetry/resources": "1.0.1", - "lodash.merge": "^4.6.2" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/resources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.1.tgz", - "integrity": "sha512-p8DevOaAEepPucUtImR4cZKHOE2L1jgQAtkdZporV+XnxPA/HqCHPEESyUVuo4f5M0NUlL6k5Pba75KwNJlTRg==", - "dependencies": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz", - "integrity": "sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-node": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.8.0.tgz", - "integrity": "sha512-6FqhJEgW9Nke5SO4Ul9+5EWOfms/JeLg5LRqILMPMK4UMBWcOtk7jldvGGyfVpraJ16/WPo/R5NSnMwlupN5zQ==", - "dependencies": { - "@opentelemetry/context-async-hooks": "1.8.0", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/propagator-b3": "1.8.0", - "@opentelemetry/propagator-jaeger": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz", - "integrity": "sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/npm-conf": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz", - "integrity": "sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A==", - "dependencies": { - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@sindresorhus/is": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", - "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "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.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, - "node_modules/@types/inquirer": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.3.tgz", - "integrity": "sha512-CzNkWqQftcmk2jaCWdBTf9Sm7xSw4rkI1zpU/Udw3HX5//adEZUIm9STtoRP1qgWj0CWQtJ9UTvqmO2NNjhMJw==", - "dev": true, - "dependencies": { - "@types/through": "*", - "rxjs": "^7.2.0" - } - }, - "node_modules/@types/inquirer/node_modules/rxjs": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", - "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", - "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "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": "16.18.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", - "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==" - }, - "node_modules/@types/prettyjson": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/prettyjson/-/prettyjson-0.0.29.tgz", - "integrity": "sha512-Zu4jAKE46yc6R8JrVkCBWbXhs18dUgI/JlbID4jziFgUBgEdAHxFekR5TlEnk9phHdGE80QlCznRBaxlk0rl7w==", - "dev": true - }, - "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/through": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", - "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acme-client": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/acme-client/-/acme-client-4.2.5.tgz", - "integrity": "sha512-dtnck4sdZ2owFLTC73Ewjx0kmvsRjTRgaOc8UztCNODT+lr1DXj0tiuUXjeY4LAzZryXCtCib/E+KD8NYeP1aw==", - "dependencies": { - "axios": "0.26.1", - "backo2": "^1.0.0", - "bluebird": "^3.5.0", - "debug": "^4.1.1", - "node-forge": "^1.3.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "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-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==", - "engines": { - "node": "*" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "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": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "dependencies": { - "follow-redirects": "^1.14.8" - } - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bin-links": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-1.1.8.tgz", - "integrity": "sha512-KgmVfx+QqggqP9dA3iIc5pA4T1qEEEL+hOhOhNPaUm77OTrJoOXE/C05SJLNJe6m/2wUK7F1tDSou7n5TfCDzQ==", - "dependencies": { - "bluebird": "^3.5.3", - "cmd-shim": "^3.0.0", - "gentle-fs": "^2.3.0", - "graceful-fs": "^4.1.15", - "npm-normalize-package-bin": "^1.0.0", - "write-file-atomic": "^2.3.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/boxen": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", - "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^7.0.0", - "chalk": "^5.0.1", - "cli-boxes": "^3.0.0", - "string-width": "^5.1.2", - "type-fest": "^2.13.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.0.1" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", - "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/boxen/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/boxen/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/boxen/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "dependencies": { - "string-width": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/wrap-ansi": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", - "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "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/bson-objectid": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.4.tgz", - "integrity": "sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==" - }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "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/bufrw": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", - "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", - "dependencies": { - "ansi-color": "^0.2.1", - "error": "^7.0.0", - "hexer": "^1.5.0", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" - }, - "node_modules/byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/cacache/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.3.tgz", - "integrity": "sha512-6BehRBOs7iurNjAYN9iPazTwFDaMQavJO8W1MEm3s2pH8q/tkPTtLDRUZaweWK87WFGf2Y5wLAlaCJlR5kOz3w==", - "dependencies": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.0", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request/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/cacheable-request/node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "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/camelcase": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.0.tgz", - "integrity": "sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", - "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - }, - "bin": { - "cdl": "bin/cdl.js" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/ci-info": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", - "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", - "engines": { - "node": ">=8" - } - }, - "node_modules/clean-stack": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz", - "integrity": "sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==", - "dependencies": { - "escape-string-regexp": "4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-progress": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.10.0.tgz", - "integrity": "sha512-kLORQrhYCAtUPLZxqsAt2YJGOvRdt34+O6jl5cQGb7iF3dM55FQZlTR+rQyIK9JUcO9bBMwZsTlND+3dmFU2Cw==", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "engines": { - "node": ">= 10" - } - }, - "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/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cmd-shim": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-3.0.3.tgz", - "integrity": "sha512-DtGg+0xiFhQIntSBRzL2fRQBnmtAVwXIDo4Qq46HPpObYquxMaZS4sb82U9nH91qJrlosC1wa9gwr0QyL/HypA==", - "dependencies": { - "graceful-fs": "^4.1.2", - "mkdirp": "~0.5.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "engines": { - "node": ">=0.10.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": "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/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/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/color/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/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/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "engines": { - "node": ">=0.1.90" - } - }, - "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/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "dependencies": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/yeoman/configstore?sponsor=1" - } - }, - "node_modules/configstore/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-spawn/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "optional": true, - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "node_modules/denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/easy-table": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz", - "integrity": "sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "optionalDependencies": { - "wcwidth": "^1.0.1" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "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/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" - }, - "node_modules/error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", - "dependencies": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dependencies": { - "es6-promise": "^4.0.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-goat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "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/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-lite": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz", - "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==" - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "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-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "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-levenshtein": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", - "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", - "dependencies": { - "fastest-levenshtein": "^1.0.7" - } - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "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/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "node_modules/figlet": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz", - "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "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/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/find-npm-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz", - "integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==" - }, - "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/fluent-logger": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/fluent-logger/-/fluent-logger-3.4.1.tgz", - "integrity": "sha512-lERIhXAvhtCYeQq8K7sBDg/HY9GkiVRq5xY3oN+hcSINVKwqwBzG6LQOJK73EnV50qO59U7XEmRnn2hBzLWaHw==", - "dependencies": { - "msgpack-lite": "*" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "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/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "engines": { - "node": ">= 14.17" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs-vacuum": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.10.tgz", - "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", - "dependencies": { - "graceful-fs": "^4.1.2", - "path-is-inside": "^1.0.1", - "rimraf": "^2.5.2" - } - }, - "node_modules/fs-vacuum/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "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/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/genfun": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", - "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==" - }, - "node_modules/gentle-fs": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/gentle-fs/-/gentle-fs-2.3.1.tgz", - "integrity": "sha512-OlwBBwqCFPcjm33rF2BjW+Pr6/ll2741l+xooiwTCeaX2CA1ZuclavyMBe0/KlR21/XGsgY6hzEQZ15BdNa13Q==", - "dependencies": { - "aproba": "^1.1.2", - "chownr": "^1.1.2", - "cmd-shim": "^3.0.3", - "fs-vacuum": "^1.2.10", - "graceful-fs": "^4.1.11", - "iferr": "^0.1.5", - "infer-owner": "^1.0.4", - "mkdirp": "^0.5.1", - "path-is-inside": "^1.0.2", - "read-cmd-shim": "^1.0.1", - "slide": "^1.1.6" - } - }, - "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.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "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-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stdin-with-tty": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin-with-tty/-/get-stdin-with-tty-6.0.0.tgz", - "integrity": "sha512-QY6Xh/uF+jRiXwDOcQbmYV+Mb09WoxGrH0TV8sooHIIsVKA5jv5zNkMjqW1SSuNOcwUbBirBFyPYG2kQa62EBw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-dirs/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/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "node_modules/got": { - "version": "12.5.3", - "resolved": "https://registry.npmjs.org/got/-/got-12.5.3.tgz", - "integrity": "sha512-8wKnb9MGU8IPGRIo+/ukTy9XLJBwDiCpIf5TVzQ9Cpol50eMTpBq2GAuDsuDIz7hTYmZgMgC1e9ydr6kSDWs3w==", - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.1", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/got/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/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/grpc-boom": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/grpc-boom/-/grpc-boom-3.0.11.tgz", - "integrity": "sha512-bdGLCww+w+CWHdT0Fm2AzoRToJJHzlIEfTggkquUO9JG5d2TU+yUIuk4ksWQ2B+LFQpxLaB7ZbZXKBPkErtW5w==", - "peerDependencies": { - "@types/node": "^16.11.35" - } - }, - "node_modules/grpc-interceptors": { - "version": "0.2.5", - "resolved": "git+ssh://git@github.com/fonoster/node-grpc-interceptors.git#3ccc1d222f8a66e319a0e1e93bd18095aeaeb141", - "license": "ISC", - "dependencies": { - "zipkin": "^0.12.0", - "zipkin-transport-http": "^0.22.0" - }, - "peerDependencies": { - "@grpc/grpc-js": "^1.3.7" - } - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "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-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "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/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "node_modules/has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", - "dependencies": { - "ansi-color": "^0.2.1", - "minimist": "^1.1.0", - "process": "^0.10.0", - "xtend": "^4.0.0" - }, - "bin": { - "hexer": "cli.js" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "node_modules/http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" - }, - "node_modules/http-call": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/http-call/-/http-call-5.3.0.tgz", - "integrity": "sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w==", - "dependencies": { - "content-type": "^1.0.4", - "debug": "^4.1.1", - "is-retry-allowed": "^1.1.0", - "is-stream": "^2.0.0", - "parse-json": "^4.0.0", - "tunnel-agent": "^0.6.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "dependencies": { - "agent-base": "4", - "debug": "3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/https-proxy-agent/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/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/hyperlinker": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz", - "integrity": "sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "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": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/int64-buffer": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz", - "integrity": "sha512-v7cSY1J8ydZ0GyjUHqF+1bshJ6cnEVLo9EnjB8p+4HDRPZc9N5jjmvUV7NvEsqQOKyH0pmIBFWXVQbiS0+OBbA==" - }, - "node_modules/ioredis": { - "version": "4.28.5", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.28.5.tgz", - "integrity": "sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==", - "dependencies": { - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.1", - "denque": "^1.1.0", - "lodash.defaults": "^4.2.0", - "lodash.flatten": "^4.4.0", - "lodash.isarguments": "^3.1.0", - "p-map": "^2.1.0", - "redis-commands": "1.7.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "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-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "engines": { - "node": ">=0.10.0" - } - }, - "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-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-valid-domain": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.1.6.tgz", - "integrity": "sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg==", - "dependencies": { - "punycode": "^2.1.1" - } - }, - "node_modules/is-valid-host": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-valid-host/-/is-valid-host-1.0.1.tgz", - "integrity": "sha512-LPjR7ypIMG/MLCh/dkz4lqQw4KZWFD2AeHNSbY4Y9pGp2rnWMMWqBY/iJLMwoVbOIG2r2y7L/wS9pHhr0gYRrg==" - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/jaeger-client": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", - "dependencies": { - "node-int64": "^0.4.0", - "opentracing": "^0.14.4", - "thriftrw": "^3.5.0", - "uuid": "^8.3.2", - "xorshift": "^1.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jaeger-client/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "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/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "node_modules/jsonwebtoken/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "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/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/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "node_modules/latest-version": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", - "dependencies": { - "package-json": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/libnpm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/libnpm/-/libnpm-3.0.1.tgz", - "integrity": "sha512-d7jU5ZcMiTfBqTUJVZ3xid44fE5ERBm9vBnmhp2ECD2Ls+FNXWxHSkO7gtvrnbLO78gwPdNPz1HpsF3W4rjkBQ==", - "dependencies": { - "bin-links": "^1.1.2", - "bluebird": "^3.5.3", - "find-npm-prefix": "^1.0.2", - "libnpmaccess": "^3.0.2", - "libnpmconfig": "^1.2.1", - "libnpmhook": "^5.0.3", - "libnpmorg": "^1.0.1", - "libnpmpublish": "^1.1.2", - "libnpmsearch": "^2.0.2", - "libnpmteam": "^1.0.2", - "lock-verify": "^2.0.2", - "npm-lifecycle": "^3.0.0", - "npm-logical-tree": "^1.2.1", - "npm-package-arg": "^6.1.0", - "npm-profile": "^4.0.2", - "npm-registry-fetch": "^4.0.0", - "npmlog": "^4.1.2", - "pacote": "^9.5.3", - "read-package-json": "^2.0.13", - "stringify-package": "^1.0.0" - } - }, - "node_modules/libnpmaccess": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-3.0.2.tgz", - "integrity": "sha512-01512AK7MqByrI2mfC7h5j8N9V4I7MHJuk9buo8Gv+5QgThpOgpjB7sQBDDkeZqRteFb1QM/6YNdHfG7cDvfAQ==", - "dependencies": { - "aproba": "^2.0.0", - "get-stream": "^4.0.0", - "npm-package-arg": "^6.1.0", - "npm-registry-fetch": "^4.0.0" - } - }, - "node_modules/libnpmaccess/node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "node_modules/libnpmconfig": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/libnpmconfig/-/libnpmconfig-1.2.1.tgz", - "integrity": "sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==", - "dependencies": { - "figgy-pudding": "^3.5.1", - "find-up": "^3.0.0", - "ini": "^1.3.5" - } - }, - "node_modules/libnpmhook": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/libnpmhook/-/libnpmhook-5.0.3.tgz", - "integrity": "sha512-UdNLMuefVZra/wbnBXECZPefHMGsVDTq5zaM/LgKNE9Keyl5YXQTnGAzEo+nFOpdRqTWI9LYi4ApqF9uVCCtuA==", - "dependencies": { - "aproba": "^2.0.0", - "figgy-pudding": "^3.4.1", - "get-stream": "^4.0.0", - "npm-registry-fetch": "^4.0.0" - } - }, - "node_modules/libnpmhook/node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "node_modules/libnpmorg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/libnpmorg/-/libnpmorg-1.0.1.tgz", - "integrity": "sha512-0sRUXLh+PLBgZmARvthhYXQAWn0fOsa6T5l3JSe2n9vKG/lCVK4nuG7pDsa7uMq+uTt2epdPK+a2g6btcY11Ww==", - "dependencies": { - "aproba": "^2.0.0", - "figgy-pudding": "^3.4.1", - "get-stream": "^4.0.0", - "npm-registry-fetch": "^4.0.0" - } - }, - "node_modules/libnpmorg/node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "node_modules/libnpmpublish": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-1.1.3.tgz", - "integrity": "sha512-/3LsYqVc52cHXBmu26+J8Ed7sLs/hgGVFMH1mwYpL7Qaynb9RenpKqIKu0sJ130FB9PMkpMlWjlbtU8A4m7CQw==", - "dependencies": { - "aproba": "^2.0.0", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.0.0", - "lodash.clonedeep": "^4.5.0", - "normalize-package-data": "^2.4.0", - "npm-package-arg": "^6.1.0", - "npm-registry-fetch": "^4.0.0", - "semver": "^5.5.1", - "ssri": "^6.0.1" - } - }, - "node_modules/libnpmpublish/node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "node_modules/libnpmpublish/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/libnpmsearch": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/libnpmsearch/-/libnpmsearch-2.0.2.tgz", - "integrity": "sha512-VTBbV55Q6fRzTdzziYCr64+f8AopQ1YZ+BdPOv16UegIEaE8C0Kch01wo4s3kRTFV64P121WZJwgmBwrq68zYg==", - "dependencies": { - "figgy-pudding": "^3.5.1", - "get-stream": "^4.0.0", - "npm-registry-fetch": "^4.0.0" - } - }, - "node_modules/libnpmteam": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/libnpmteam/-/libnpmteam-1.0.2.tgz", - "integrity": "sha512-p420vM28Us04NAcg1rzgGW63LMM6rwe+6rtZpfDxCcXxM0zUTLl7nPFEnRF3JfFBF5skF/yuZDUthTsHgde8QA==", - "dependencies": { - "aproba": "^2.0.0", - "figgy-pudding": "^3.4.1", - "get-stream": "^4.0.0", - "npm-registry-fetch": "^4.0.0" - } - }, - "node_modules/libnpmteam/node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "node_modules/load-json-file": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", - "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", - "dependencies": { - "graceful-fs": "^4.1.15", - "parse-json": "^4.0.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0", - "type-fest": "^0.3.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/load-json-file/node_modules/type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lock-verify": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/lock-verify/-/lock-verify-2.2.2.tgz", - "integrity": "sha512-2CUNtr1ZSVKJHcYP8uEzafmmuyauCB5zZimj8TvQd/Lflt9kXVZs+8S+EbAzZLaVUDn8CYGmeC3DFGdYfnCzeQ==", - "dependencies": { - "@iarna/cli": "^2.1.0", - "npm-package-arg": "^6.1.0", - "semver": "^5.4.1" - }, - "bin": { - "lock-verify": "cli.js" - } - }, - "node_modules/lock-verify/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "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._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dependencies": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "node_modules/logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", - "dependencies": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-fetch-happen": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", - "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", - "dependencies": { - "agentkeepalive": "^3.4.1", - "cacache": "^12.0.0", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "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/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, - "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "engines": { - "node": "*" - } - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/move-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "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/msgpack-lite": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz", - "integrity": "sha512-SZ2IxeqZ1oRFGo0xFGbvBJWMp3yLIY9rlIJyxy8CGrwZn1f0ZK4r6jV/AM1r0FZMDUkWkglOk/eeKIL9g77Nxw==", - "dependencies": { - "event-lite": "^0.1.1", - "ieee754": "^1.1.8", - "int64-buffer": "^0.1.9", - "isarray": "^1.0.0" - }, - "bin": { - "msgpack": "bin/msgpack" - } - }, - "node_modules/mustache": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz", - "integrity": "sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==", - "bin": { - "mustache": "bin/mustache" - }, - "engines": { - "npm": ">=1.4.0" - } - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "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/natural-orderby": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz", - "integrity": "sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==", - "engines": { - "node": "*" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/network-address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", - "integrity": "sha512-Q6878fmvItA1mE7H9Il46lONgFgTzX2f98zkS0c2YlkCACzNjwvum/8Kq693IQpxe9zy+w+Zm/4p0wQreLEtZw==", - "bin": { - "network-address": "cli.js" - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch-npm": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", - "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", - "dependencies": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - }, - "engines": { - "node": ">=4" - } - }, - "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/node-gyp": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz", - "integrity": "sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==", - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "mkdirp": "^0.5.1", - "nopt": "^4.0.1", - "npmlog": "^4.1.2", - "request": "^2.88.0", - "rimraf": "^2.6.3", - "semver": "^5.7.1", - "tar": "^4.4.12", - "which": "^1.3.1" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-gyp/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/node-gyp/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "node_modules/node-vault": { - "version": "0.9.22", - "resolved": "https://registry.npmjs.org/node-vault/-/node-vault-0.9.22.tgz", - "integrity": "sha512-/IR+YvINFhCzxJA5x/KHUDymJerFaeqvPUE2zwceRig8yEIA41qfVKusmO6bqRGFkr/2f6CaBVp7YfabzQyteg==", - "dependencies": { - "debug": "3.1.0", - "mustache": "^2.2.1", - "request": "2.88.0", - "request-promise-native": "1.0.7", - "tv4": "^1.2.7" - } - }, - "node_modules/node-vault/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/node-vault/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-lifecycle": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz", - "integrity": "sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==", - "dependencies": { - "byline": "^5.0.0", - "graceful-fs": "^4.1.15", - "node-gyp": "^5.0.2", - "resolve-from": "^4.0.0", - "slide": "^1.1.6", - "uid-number": "0.0.6", - "umask": "^1.1.0", - "which": "^1.3.1" - } - }, - "node_modules/npm-logical-tree": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz", - "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==" - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - }, - "node_modules/npm-package-arg": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", - "dependencies": { - "hosted-git-info": "^2.7.1", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "node_modules/npm-package-arg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-pick-manifest": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", - "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", - "dependencies": { - "figgy-pudding": "^3.5.1", - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - } - }, - "node_modules/npm-pick-manifest/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-profile": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/npm-profile/-/npm-profile-4.0.4.tgz", - "integrity": "sha512-Ta8xq8TLMpqssF0H60BXS1A90iMoM6GeKwsmravJ6wYjWwSzcYBTdyWa3DZCYqPutacBMEm7cxiOkiIeCUAHDQ==", - "dependencies": { - "aproba": "^1.1.2 || 2", - "figgy-pudding": "^3.4.1", - "npm-registry-fetch": "^4.0.0" - } - }, - "node_modules/npm-registry-fetch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", - "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", - "dependencies": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", - "JSONStream": "^1.3.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "npm-package-arg": "^6.1.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-treeify": { - "version": "1.1.33", - "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", - "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "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": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "engines": { - "node": ">=12.20" - } - }, - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "engines": { - "node": ">=6" - } - }, - "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/package-json": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz", - "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==", - "dependencies": { - "got": "^12.1.0", - "registry-auth-token": "^5.0.1", - "registry-url": "^6.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pacote": { - "version": "9.5.12", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz", - "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==", - "dependencies": { - "bluebird": "^3.5.3", - "cacache": "^12.0.2", - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.1.0", - "glob": "^7.1.3", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "minimatch": "^3.0.4", - "minipass": "^2.3.5", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.4.0", - "npm-normalize-package-bin": "^1.0.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.12", - "npm-pick-manifest": "^3.0.0", - "npm-registry-fetch": "^4.0.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.1", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.6.0", - "ssri": "^6.0.1", - "tar": "^4.4.10", - "unique-filename": "^1.1.1", - "which": "^1.3.1" - } - }, - "node_modules/pacote/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/pacote/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/password-prompt": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz", - "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==", - "dependencies": { - "ansi-escapes": "^3.1.0", - "cross-spawn": "^6.0.5" - } - }, - "node_modules/password-prompt/node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "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-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/phone": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/phone/-/phone-2.4.22.tgz", - "integrity": "sha512-k2f9qkIgcgbbeyFFMHDcCaYdPxq7u71EjmMvD998PEquwDvIT7zmUFe00S4hH9WPjk+IQlw9W/FlHOu1O17Tbw==", - "engines": { - "node": ">=6.10.0" - } - }, - "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/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/prettyjson": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.5.tgz", - "integrity": "sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==", - "dependencies": { - "colors": "1.4.0", - "minimist": "^1.2.0" - }, - "bin": { - "prettyjson": "bin/prettyjson" - } - }, - "node_modules/process": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "node_modules/promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "dependencies": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" - }, - "node_modules/protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/protobufjs/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "node_modules/protoduck": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", - "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", - "dependencies": { - "genfun": "^5.0.0" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", - "dependencies": { - "escape-goat": "^4.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "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/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/read-cmd-shim": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz", - "integrity": "sha512-v5yCqQ/7okKoZZkBQUAfTsQ3sVJtXdNfbPnI5cceppoxEVLYA3k+VtV2omkeo8MS94JCy4fSiUwlRBAwCVRPUA==", - "dependencies": { - "graceful-fs": "^4.1.2" - } - }, - "node_modules/read-package-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", - "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", - "dependencies": { - "esprima": "~4.0.0" - } - }, - "node_modules/redis-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", - "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" - }, - "node_modules/redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "dependencies": { - "redis-errors": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.1.tgz", - "integrity": "sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA==", - "dependencies": { - "@pnpm/npm-conf": "^1.0.4" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/registry-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/request-promise-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", - "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", - "dependencies": { - "lodash": "^4.17.11" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "request": "^2.34" - } - }, - "node_modules/request-promise-native": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", - "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", - "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", - "dependencies": { - "request-promise-core": "1.1.2", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "engines": { - "node": ">=0.12.0" - }, - "peerDependencies": { - "request": "^2.34" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, - "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-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "dependencies": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "engines": { - "node": "*" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "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.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz", - "integrity": "sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "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-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/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/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "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/simple-swizzle/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/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", - "engines": { - "node": "*" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", - "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", - "dependencies": { - "ip": "1.1.5", - "smart-buffer": "^4.1.0" - }, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", - "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", - "dependencies": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/socks-proxy-agent/node_modules/agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "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/standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==" - }, - "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/stringify-package": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", - "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==" - }, - "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-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "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/thriftrw": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.12.0.tgz", - "integrity": "sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw==", - "dependencies": { - "bufrw": "^1.3.0", - "error": "7.0.2", - "long": "^2.4.0" - }, - "bin": { - "thrift2json": "thrift2json.js" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/thriftrw/node_modules/long": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "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/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dependencies": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tough-cookie/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "peer": true - }, - "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/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tv4": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", - "integrity": "sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", - "engines": { - "node": "*" - } - }, - "node_modules/umask": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", - "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=" - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", - "dependencies": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", - "configstore": "^6.0.0", - "has-yarn": "^3.0.0", - "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", - "is-installed-globally": "^0.4.0", - "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", - "latest-version": "^7.0.0", - "pupa": "^3.1.0", - "semver": "^7.3.7", - "semver-diff": "^4.0.0", - "xdg-basedir": "^5.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", - "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=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/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "optional": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "peer": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "peer": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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/winston-transport/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/winston/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/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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/xdg-basedir": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/xorshift": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "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": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "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/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/yargs/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/yarn": { - "version": "1.22.17", - "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.17.tgz", - "integrity": "sha512-H0p241BXaH0UN9IeH//RT82tl5PfNraVpSpEoW+ET7lmopNC61eZ+A+IDvU8FM6Go5vx162SncDL8J1ZjRBriQ==", - "hasInstallScript": true, - "bin": { - "yarn": "bin/yarn.js", - "yarnpkg": "bin/yarn.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/zipkin": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.12.0.tgz", - "integrity": "sha512-QguH/UQt/ofUVcTJLW7qdyi7iEo71MJJbKg/6d/m3ptvxhm5gDVf/KVuCEfzxxzzWGSKtX+c+qACvowsPkNjuQ==", - "dependencies": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0", - "network-address": "^1.1.0" - } - }, - "node_modules/zipkin-transport-http": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin-transport-http/-/zipkin-transport-http-0.22.0.tgz", - "integrity": "sha512-bjM2fm/hurseBuvpyB8mYCBBGOz3gc2f9KUSQl71LGxmgYcUeXvDHJyE9MgzWMhl+3HcD8l5nNn6OmdX63he+g==", - "dependencies": { - "zipkin": "^0.22.0" - }, - "peerDependencies": { - "node-fetch": ">=1.4.0 <3.0.0" - } - }, - "node_modules/zipkin-transport-http/node_modules/zipkin": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.22.0.tgz", - "integrity": "sha512-SZgorBAvywnj5R26mqsFP+2MRUsBXGg0B8GLRLw9R0FeE4alMUAfhXYvzeAt2+MvkXne9QdQyziuqO5oXNQ0Sg==", - "dependencies": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0" - } - } - }, - "dependencies": { - "@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" - } - }, - "@fonoster/agents": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/agents/-/agents-0.3.18.tgz", - "integrity": "sha512-Tap5jRKcnrW9LjkAhsaltskBWM12J9qMuZMeQou0UGdJMO2kKAXHUeIAX54Ii+KLda2VipvdPps/o2uT9QG6nw==", - "requires": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - } - }, - "@fonoster/apps": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/apps/-/apps-0.3.18.tgz", - "integrity": "sha512-TtBi3DhdFQw1/l5ezBDx3eoxOLpRQX9uEXu5MpJzPEmDdwJN2VfUpHMM5XHrif6bILqLVLQORlCng6FqJWd9pg==", - "requires": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@opentelemetry/api": "^1.0.4" - } - }, - "@fonoster/auth": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/auth/-/auth-0.3.18.tgz", - "integrity": "sha512-xnTvdbXt2BAHwqetb2QUuSVNDkIAmjtz+CCkV2MlQ5fKX/XLwySbVjleKpf80F0+CMoz3U8wviGGHFQ0q0Y7IQ==", - "requires": { - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - } - }, - "@fonoster/certs": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/certs/-/certs-0.3.18.tgz", - "integrity": "sha512-echVIIX6le3yBVs0b8XtVFYJtMzMI/1fGm0CVqdrUw/mp9stsKyDV79Fc9KLKAtVs9+H2bwyAgTgo3HuLwLCvA==", - "requires": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "@fonoster/common": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/common/-/common-0.3.18.tgz", - "integrity": "sha512-C7XgeGOZmnKf48zimp/kCcTSb0+Q0m8JUNh1D+ZImdl2keDN2mh+ibJqydjjwjOpB6TNTUJCVa6CEkjRNnGECw==", - "requires": { - "@fonoster/certs": "^0.3.18", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "@fonoster/core": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/core/-/core-0.3.18.tgz", - "integrity": "sha512-fquMnpfE34aqmyg1MO52S04rb2RvkVWl7R+zmvyrsyzDiYS2TzRGNV+30YzEe6V7hTz5gfXcCNAVve+N0lE7/A==", - "requires": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - } - }, - "@fonoster/domains": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/domains/-/domains-0.3.18.tgz", - "integrity": "sha512-bLmqOpLIAYQFSsf26AVN+q7urSBoCIV8rHCWuFe+Sh8wn7ZgtYwoHL8gEzqWuEJZozUFIUDzUXH5yNEQSMiJBA==", - "requires": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-domain": "^0.1.2" - } - }, - "@fonoster/errors": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/errors/-/errors-0.3.18.tgz", - "integrity": "sha512-lXI36Ai0OwuAMDyKr4PUXgJo5xw/ViHPfo2+St18pZnalaZSNHX6FN9Jh1VRg3XxqIfCgqLSrTovtc86FB2fqw==" - }, - "@fonoster/grpc-health-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@fonoster/grpc-health-check/-/grpc-health-check-3.1.1.tgz", - "integrity": "sha512-JjXI4i2g2FF7QgHcAgy18RISbeRnqQ+U9QdPeYmE5TijaK7JaFwV/mOK7WgIIxQNqNsR/ozoap5Q46T0qpukeQ==", - "requires": { - "google-protobuf": "^3.21.0", - "grpc-boom": "^3.0.11" - } - }, - "@fonoster/logger": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/logger/-/logger-0.3.18.tgz", - "integrity": "sha512-/RpGAsteYmvbe6o9GKsoZAgl9HzqSvNqTJDj52wo3WzyzLF7rZNxnoL5JAdfP7GV+Z0qvLBM/NW6Hqsc04b2Hw==", - "requires": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - } - }, - "@fonoster/numbers": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/numbers/-/numbers-0.3.18.tgz", - "integrity": "sha512-tCyPLiAAAZk+HiUfk+85eGTdD9UTdLPkYag2igi3znhmKvotEpCgsWqGqbeDSqljrV/R3so+FvjtR3oB0AdQyw==", - "requires": { - "@fonoster/apps": "^0.3.18", - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - } - }, - "@fonoster/plugin-warn-if-update-available": { - "version": "git+ssh://git@github.com/fonoster/plugin-warn-if-update-available.git#4a5a31f23d12304410fc083af0a786f3d2efa9e1", - "from": "@fonoster/plugin-warn-if-update-available@github:fonoster/plugin-warn-if-update-available", - "requires": { - "@oclif/command": "^1.6.0", - "@oclif/config": "^1.12.8", - "@oclif/errors": "^1.3.5", - "chalk": "^4.1.2", - "fs-extra": "^9.0.1", - "libnpm": "^3.0.1", - "lodash.template": "^4.5.0", - "semver": "^7.3.5" - } - }, - "@fonoster/projects": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/projects/-/projects-0.3.18.tgz", - "integrity": "sha512-H4jGHpT+ZbDTDLE6TCa0Dl19fpbs5tiZy3tVy7l3VKH45PtmPxlUPeK4ak0KbUWxHXCCxFTFQvDB6S3iNky+og==", - "requires": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - } - }, - "@fonoster/providers": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/providers/-/providers-0.3.18.tgz", - "integrity": "sha512-j+ptu2VIeTmXWgh5Iqya1Xm8mCJPCBaJBEpkh1CmmoimChMq9pL2bg41+P4HeMLeiAI75otQ0cJWQ711xBa0qQ==", - "requires": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-host": "^1.0.1" - } - }, - "@fonoster/secrets": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/secrets/-/secrets-0.3.18.tgz", - "integrity": "sha512-BRIRmN2Wu9wEDRaNCfLB93FRXTyh+NCRMrO+cbRqPbtkSOJIHF5etvcuvkEsaDQe7OECFiGuOvHWVggG5fz8SQ==", - "requires": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "grpc-promise": "^1.4.0", - "node-vault": "^0.9.21" - } - }, - "@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "requires": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - } - }, - "@iarna/cli": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@iarna/cli/-/cli-2.1.0.tgz", - "integrity": "sha512-rvVVqDa2g860niRbqs3D5RhL4la3dc1vwk+NlpKPZxKaMSHtE2se6C2x8NeveN+rcjp3/686X+u+09CZ+7lmAQ==", - "requires": { - "glob": "^7.1.2", - "signal-exit": "^3.0.2" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@oclif/color": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@oclif/color/-/color-1.0.1.tgz", - "integrity": "sha512-qjYr+izgWdIVOroiBKqTzQgc1r5Wd9QB1J7yGM2EeelqhBARiiVLRZL45vhV4zdyTRdDkZS0EBzFwQap+nliLA==", - "requires": { - "ansi-styles": "^4.2.1", - "chalk": "^4.1.0", - "strip-ansi": "^6.0.1", - "supports-color": "^8.1.1", - "tslib": "^2" - } - }, - "@oclif/command": { - "version": "1.8.16", - "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.16.tgz", - "integrity": "sha512-rmVKYEsKzurfRU0xJz+iHelbi1LGlihIWZ7Qvmb/CBz1EkhL7nOkW4SVXmG2dA5Ce0si2gr88i6q4eBOMRNJ1w==", - "requires": { - "@oclif/config": "^1.18.2", - "@oclif/errors": "^1.3.5", - "@oclif/help": "^1.0.1", - "@oclif/parser": "^3.8.6", - "debug": "^4.1.1", - "semver": "^7.3.2" - } - }, - "@oclif/config": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.18.3.tgz", - "integrity": "sha512-sBpko86IrTscc39EvHUhL+c++81BVTsIZ3ETu/vG+cCdi0N6vb2DoahR67A9FI2CGnxRRHjnTfa3m6LulwNATA==", - "requires": { - "@oclif/errors": "^1.3.5", - "@oclif/parser": "^3.8.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-wsl": "^2.1.1", - "tslib": "^2.3.1" - } - }, - "@oclif/core": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@oclif/core/-/core-1.3.5.tgz", - "integrity": "sha512-aMBpyVlq+2fAnL+IYBgZ/KVfVepfyQXsWKK/wUBH6bVI294zHlN9RY+9TxPDqOLq48T0Z+SB/17W/31t80bsUA==", - "requires": { - "@oclif/linewrap": "^1.0.0", - "@oclif/screen": "^3.0.2", - "ansi-escapes": "^4.3.0", - "ansi-styles": "^4.2.0", - "cardinal": "^2.1.1", - "chalk": "^4.1.2", - "clean-stack": "^3.0.1", - "cli-progress": "^3.10.0", - "debug": "^4.3.3", - "ejs": "^3.1.6", - "fs-extra": "^9.1.0", - "get-package-type": "^0.1.0", - "globby": "^11.0.4", - "hyperlinker": "^1.0.0", - "indent-string": "^4.0.0", - "is-wsl": "^2.2.0", - "js-yaml": "^3.13.1", - "lodash": "^4.17.21", - "natural-orderby": "^2.0.3", - "object-treeify": "^1.1.4", - "password-prompt": "^1.1.2", - "semver": "^7.3.5", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "supports-color": "^8.1.1", - "supports-hyperlinks": "^2.2.0", - "tslib": "^2.3.1", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - } - }, - "@oclif/errors": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.5.tgz", - "integrity": "sha512-OivucXPH/eLLlOT7FkCMoZXiaVYf8I/w1eTAM1+gKzfhALwWTusxEx7wBmW0uzvkSg/9ovWLycPaBgJbM3LOCQ==", - "requires": { - "clean-stack": "^3.0.0", - "fs-extra": "^8.1", - "indent-string": "^4.0.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "@oclif/help": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@oclif/help/-/help-1.0.1.tgz", - "integrity": "sha512-8rsl4RHL5+vBUAKBL6PFI3mj58hjPCp2VYyXD4TAa7IMStikFfOH2gtWmqLzIlxAED2EpD0dfYwo9JJxYsH7Aw==", - "requires": { - "@oclif/config": "1.18.2", - "@oclif/errors": "1.3.5", - "chalk": "^4.1.2", - "indent-string": "^4.0.0", - "lodash": "^4.17.21", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "widest-line": "^3.1.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "@oclif/config": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.18.2.tgz", - "integrity": "sha512-cE3qfHWv8hGRCP31j7fIS7BfCflm/BNZ2HNqHexH+fDrdF2f1D5S8VmXWLC77ffv3oDvWyvE9AZeR0RfmHCCaA==", - "requires": { - "@oclif/errors": "^1.3.3", - "@oclif/parser": "^3.8.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-wsl": "^2.1.1", - "tslib": "^2.0.0" - } - }, - "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" - } - } - } - }, - "@oclif/linewrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@oclif/linewrap/-/linewrap-1.0.0.tgz", - "integrity": "sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==" - }, - "@oclif/parser": { - "version": "3.8.6", - "resolved": "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.6.tgz", - "integrity": "sha512-tXb0NKgSgNxmf6baN6naK+CCwOueaFk93FG9u202U7mTBHUKsioOUlw1SG/iPi9aJM3WE4pHLXmty59pci0OEw==", - "requires": { - "@oclif/errors": "^1.2.2", - "@oclif/linewrap": "^1.0.0", - "chalk": "^4.1.0", - "tslib": "^2.0.0" - } - }, - "@oclif/plugin-help": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.3.1.tgz", - "integrity": "sha512-QuSiseNRJygaqAdABYFWn/H1CwIZCp9zp/PLid6yXvy6VcQV7OenEFF5XuYaCvSARe2Tg9r8Jqls5+fw1A9CbQ==", - "requires": { - "@oclif/command": "^1.8.15", - "@oclif/config": "1.18.2", - "@oclif/errors": "1.3.5", - "@oclif/help": "^1.0.1", - "chalk": "^4.1.2", - "indent-string": "^4.0.0", - "lodash": "^4.17.21", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "widest-line": "^3.1.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "@oclif/config": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.18.2.tgz", - "integrity": "sha512-cE3qfHWv8hGRCP31j7fIS7BfCflm/BNZ2HNqHexH+fDrdF2f1D5S8VmXWLC77ffv3oDvWyvE9AZeR0RfmHCCaA==", - "requires": { - "@oclif/errors": "^1.3.3", - "@oclif/parser": "^3.8.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-wsl": "^2.1.1", - "tslib": "^2.0.0" - } - }, - "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" - } - } - } - }, - "@oclif/plugin-not-found": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-2.3.1.tgz", - "integrity": "sha512-AeNBw+zSkRpePmpXO8xlL072VF2/R2yK3qsVs/JF26Yw1w77TWuRTdFR+hFotJtFCJ4QYqhNtKSjdryCO9AXsA==", - "requires": { - "@oclif/color": "^1.0.0", - "@oclif/core": "^1.2.1", - "fast-levenshtein": "^3.0.0", - "lodash": "^4.17.21" - } - }, - "@oclif/plugin-plugins": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-2.1.0.tgz", - "integrity": "sha512-Bgt+QpTlX7+Q0HkVgtbUGYQlo/hyzNBAaXH5l16ou9Ji5wfi5T+niV5AzQ14R7JF8ZDOTbUOU/NRBJ2bzLCaZQ==", - "requires": { - "@oclif/color": "^1.0.1", - "@oclif/core": "^1.2.0", - "chalk": "^4.1.2", - "debug": "^4.1.0", - "fs-extra": "^9.0", - "http-call": "^5.2.2", - "load-json-file": "^5.3.0", - "npm-run-path": "^4.0.1", - "semver": "^7.3.2", - "tslib": "^2.0.0", - "yarn": "^1.22.17" - } - }, - "@oclif/screen": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@oclif/screen/-/screen-3.0.2.tgz", - "integrity": "sha512-S/SF/XYJeevwIgHFmVDAFRUvM3m+OjhvCAYMk78ZJQCYCQ5wS7j+LTt1ZEv2jpEEGg2tx/F6TYYWxddNAYHrFQ==" - }, - "@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==" - }, - "@opentelemetry/api-metrics": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.27.0.tgz", - "integrity": "sha512-tB79288bwjkdhPNpw4UdOEy3bacVwtol6Que7cAu8KEJ9ULjRfSiwpYEwJY/oER3xZ7zNFz0uiJ7N1jSiotpVA==" - }, - "@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", - "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==", - "requires": {} - }, - "@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "requires": { - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/exporter-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.8.0.tgz", - "integrity": "sha512-3h16Sb1T/G33S+RM3yjt1t2xRuu/mi9iB172faS6qFQEclTTJru1pTK4wuWG+9GyI7uyBLfbQoXVA5/BA6gvHw==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0", - "jaeger-client": "^3.15.0" - } - }, - "@opentelemetry/exporter-zipkin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.8.0.tgz", - "integrity": "sha512-Y3WqNCZjfWKnHiRzb35sXpDfGL4Gx2qajFAv059s/VFayIPytLHUOrZMiQqrpfzU/TSIKPG4OHJaypFtUtNlQQ==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/instrumentation": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.27.0.tgz", - "integrity": "sha512-dUwY/VoDptdK8AYigwS3IKblG+unV5xIdV4VQKy+nX5aT3f7vd5PMYs4arCQSYLbLRe0s7GxK6S9dtjai/TsHQ==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "@opentelemetry/instrumentation-express": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.27.1.tgz", - "integrity": "sha512-EbpmTyem70Rg56+A0w8ndSmeyVYj7gFV9yk2IGgVVc9n/hs2mTgsBI2evaUtWbpB51pb1u/h+DhICKxgg/8Hew==", - "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/express": "4.17.13" - } - }, - "@opentelemetry/instrumentation-grpc": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.27.0.tgz", - "integrity": "sha512-aFHcAeeLfqoH8PMjmdqEwZwXDJtFSkWmGDBZeH2yrx3KzFMVBB/UJEr1n/ZC6AqfqahL/qqB1N8EnoCoOcs5ig==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "dependencies": { - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/instrumentation-http": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.27.0.tgz", - "integrity": "sha512-Q1dxUt+5d70rbY6jJAC8nwpIQJontmJW94eIS5CsGngvCRYw6tgjLZp2fpVL1o7Lj7uiLpGigeE4EN5Lr2YDFA==", - "requires": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1", - "semver": "^7.3.5" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "requires": { - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/propagator-b3": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.8.0.tgz", - "integrity": "sha512-ffP6AVHyISqK1kiUY1MoVKt43Wp3FJXI8NOePqxBrAU7bRDJ13276VbSl4ugCZbZLTPrPhhSmvQh1WqlfUgcAg==", - "requires": { - "@opentelemetry/core": "1.8.0" - } - }, - "@opentelemetry/propagator-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.8.0.tgz", - "integrity": "sha512-v6GA38k2cqeGAh3368prLW5MsuG2/KxpfWI/PxTPjCa9tThDPq0cvhKpk7cEma3y+F6rieMhwmzZhKQL5QVBzQ==", - "requires": { - "@opentelemetry/core": "1.8.0" - } - }, - "@opentelemetry/resources": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.8.0.tgz", - "integrity": "sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/sdk-metrics-base": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.27.0.tgz", - "integrity": "sha512-HpiWI4sVNsjp3FGyUlc24KvUY2Whl4PQVwcbA/gWv2kHaLQrDJrWC+3rjUR+87Mrd0nsiqJ85xhGFU6IK8h7gg==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/core": "1.0.1", - "@opentelemetry/resources": "1.0.1", - "lodash.merge": "^4.6.2" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "requires": { - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/resources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.1.tgz", - "integrity": "sha512-p8DevOaAEepPucUtImR4cZKHOE2L1jgQAtkdZporV+XnxPA/HqCHPEESyUVuo4f5M0NUlL6k5Pba75KwNJlTRg==", - "requires": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/sdk-trace-base": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz", - "integrity": "sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/sdk-trace-node": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.8.0.tgz", - "integrity": "sha512-6FqhJEgW9Nke5SO4Ul9+5EWOfms/JeLg5LRqILMPMK4UMBWcOtk7jldvGGyfVpraJ16/WPo/R5NSnMwlupN5zQ==", - "requires": { - "@opentelemetry/context-async-hooks": "1.8.0", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/propagator-b3": "1.8.0", - "@opentelemetry/propagator-jaeger": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "semver": "^7.3.5" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz", - "integrity": "sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew==" - }, - "@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "requires": { - "graceful-fs": "4.2.10" - } - }, - "@pnpm/npm-conf": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz", - "integrity": "sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A==", - "requires": { - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "@sindresorhus/is": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", - "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==" - }, - "@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "requires": { - "defer-to-connect": "^2.0.1" - } - }, - "@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.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" - }, - "@types/inquirer": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-9.0.3.tgz", - "integrity": "sha512-CzNkWqQftcmk2jaCWdBTf9Sm7xSw4rkI1zpU/Udw3HX5//adEZUIm9STtoRP1qgWj0CWQtJ9UTvqmO2NNjhMJw==", - "dev": true, - "requires": { - "@types/through": "*", - "rxjs": "^7.2.0" - }, - "dependencies": { - "rxjs": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", - "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - } - } - }, - "@types/jsonwebtoken": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", - "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", - "requires": { - "@types/node": "*" - } - }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "@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": "16.18.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", - "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==" - }, - "@types/prettyjson": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/prettyjson/-/prettyjson-0.0.29.tgz", - "integrity": "sha512-Zu4jAKE46yc6R8JrVkCBWbXhs18dUgI/JlbID4jziFgUBgEdAHxFekR5TlEnk9phHdGE80QlCznRBaxlk0rl7w==", - "dev": true - }, - "@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/through": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", - "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acme-client": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/acme-client/-/acme-client-4.2.5.tgz", - "integrity": "sha512-dtnck4sdZ2owFLTC73Ewjx0kmvsRjTRgaOc8UztCNODT+lr1DXj0tiuUXjeY4LAzZryXCtCib/E+KD8NYeP1aw==", - "requires": { - "axios": "0.26.1", - "backo2": "^1.0.0", - "bluebird": "^3.5.0", - "debug": "^4.1.1", - "node-forge": "^1.3.0" - } - }, - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", - "requires": { - "humanize-ms": "^1.2.1" - } - }, - "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-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "requires": { - "string-width": "^4.1.0" - } - }, - "ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==" - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "requires": { - "type-fest": "^0.21.3" - } - }, - "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" - } - }, - "ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=" - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "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": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "requires": { - "follow-redirects": "^1.14.8" - } - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bin-links": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-1.1.8.tgz", - "integrity": "sha512-KgmVfx+QqggqP9dA3iIc5pA4T1qEEEL+hOhOhNPaUm77OTrJoOXE/C05SJLNJe6m/2wUK7F1tDSou7n5TfCDzQ==", - "requires": { - "bluebird": "^3.5.3", - "cmd-shim": "^3.0.0", - "gentle-fs": "^2.3.0", - "graceful-fs": "^4.1.15", - "npm-normalize-package-bin": "^1.0.0", - "write-file-atomic": "^2.3.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "boxen": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", - "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", - "requires": { - "ansi-align": "^3.0.1", - "camelcase": "^7.0.0", - "chalk": "^5.0.1", - "cli-boxes": "^3.0.0", - "string-width": "^5.1.2", - "type-fest": "^2.13.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - }, - "chalk": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", - "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" - }, - "widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "requires": { - "string-width": "^5.0.1" - } - }, - "wrap-ansi": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", - "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "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" - } - }, - "bson-objectid": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.4.tgz", - "integrity": "sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==" - }, - "btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" - }, - "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==" - }, - "bufrw": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", - "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", - "requires": { - "ansi-color": "^0.2.1", - "error": "^7.0.0", - "hexer": "^1.5.0", - "xtend": "^4.0.0" - } - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=" - }, - "byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=" - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==" - }, - "cacheable-request": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.3.tgz", - "integrity": "sha512-6BehRBOs7iurNjAYN9iPazTwFDaMQavJO8W1MEm3s2pH8q/tkPTtLDRUZaweWK87WFGf2Y5wLAlaCJlR5kOz3w==", - "requires": { - "@types/http-cache-semantics": "^4.0.1", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.0", - "keyv": "^4.5.2", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "dependencies": { - "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==" - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - } - } - }, - "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" - } - }, - "camelcase": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.0.tgz", - "integrity": "sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ==" - }, - "cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", - "requires": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "ci-info": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", - "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==" - }, - "clean-stack": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz", - "integrity": "sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==", - "requires": { - "escape-string-regexp": "4.0.0" - } - }, - "cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==" - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-progress": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.10.0.tgz", - "integrity": "sha512-kLORQrhYCAtUPLZxqsAt2YJGOvRdt34+O6jl5cQGb7iF3dM55FQZlTR+rQyIK9JUcO9bBMwZsTlND+3dmFU2Cw==", - "requires": { - "string-width": "^4.2.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" - }, - "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" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "optional": true - }, - "cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==" - }, - "cmd-shim": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-3.0.3.tgz", - "integrity": "sha512-DtGg+0xiFhQIntSBRzL2fRQBnmtAVwXIDo4Qq46HPpObYquxMaZS4sb82U9nH91qJrlosC1wa9gwr0QyL/HypA==", - "requires": { - "graceful-fs": "^4.1.2", - "mkdirp": "~0.5.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "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" - }, - "dependencies": { - "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-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==" - }, - "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" - } - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" - }, - "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" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "requires": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "dependencies": { - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - } - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "requires": { - "type-fest": "^1.0.1" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==" - } - } - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" - } - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "optional": true, - "requires": { - "clone": "^1.0.2" - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" - } - }, - "dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "easy-table": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz", - "integrity": "sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==", - "requires": { - "ansi-regex": "^5.0.1", - "wcwidth": "^1.0.1" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "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" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", - "requires": { - "jake": "^10.8.5" - } - }, - "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==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" - }, - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=" - }, - "error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", - "requires": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-goat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "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==" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - }, - "event-lite": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz", - "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==" - }, - "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "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-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "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-levenshtein": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", - "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", - "requires": { - "fastest-levenshtein": "^1.0.7" - } - }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "requires": { - "reusify": "^1.0.4" - } - }, - "fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "figlet": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz", - "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==" - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "requires": { - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } - } - }, - "filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "requires": { - "minimatch": "^5.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "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" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "find-npm-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz", - "integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==" - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "fluent-logger": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/fluent-logger/-/fluent-logger-3.4.1.tgz", - "integrity": "sha512-lERIhXAvhtCYeQq8K7sBDg/HY9GkiVRq5xY3oN+hcSINVKwqwBzG6LQOJK73EnV50qO59U7XEmRnn2hBzLWaHw==", - "requires": { - "msgpack-lite": "*" - } - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "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==" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==" - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "requires": { - "minipass": "^2.6.0" - } - }, - "fs-vacuum": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.10.tgz", - "integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=", - "requires": { - "graceful-fs": "^4.1.2", - "path-is-inside": "^1.0.1", - "rimraf": "^2.5.2" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "genfun": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", - "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==" - }, - "gentle-fs": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/gentle-fs/-/gentle-fs-2.3.1.tgz", - "integrity": "sha512-OlwBBwqCFPcjm33rF2BjW+Pr6/ll2741l+xooiwTCeaX2CA1ZuclavyMBe0/KlR21/XGsgY6hzEQZ15BdNa13Q==", - "requires": { - "aproba": "^1.1.2", - "chownr": "^1.1.2", - "cmd-shim": "^3.0.3", - "fs-vacuum": "^1.2.10", - "graceful-fs": "^4.1.11", - "iferr": "^0.1.5", - "infer-owner": "^1.0.4", - "mkdirp": "^0.5.1", - "path-is-inside": "^1.0.2", - "read-cmd-shim": "^1.0.1", - "slide": "^1.1.6" - } - }, - "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.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" - }, - "get-stdin-with-tty": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin-with-tty/-/get-stdin-with-tty-6.0.0.tgz", - "integrity": "sha512-QY6Xh/uF+jRiXwDOcQbmYV+Mb09WoxGrH0TV8sooHIIsVKA5jv5zNkMjqW1SSuNOcwUbBirBFyPYG2kQa62EBw==" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "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-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "requires": { - "ini": "2.0.0" - }, - "dependencies": { - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" - } - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "got": { - "version": "12.5.3", - "resolved": "https://registry.npmjs.org/got/-/got-12.5.3.tgz", - "integrity": "sha512-8wKnb9MGU8IPGRIo+/ukTy9XLJBwDiCpIf5TVzQ9Cpol50eMTpBq2GAuDsuDIz7hTYmZgMgC1e9ydr6kSDWs3w==", - "requires": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.1", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "dependencies": { - "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==" - } - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "grpc-boom": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/grpc-boom/-/grpc-boom-3.0.11.tgz", - "integrity": "sha512-bdGLCww+w+CWHdT0Fm2AzoRToJJHzlIEfTggkquUO9JG5d2TU+yUIuk4ksWQ2B+LFQpxLaB7ZbZXKBPkErtW5w==", - "requires": {} - }, - "grpc-interceptors": { - "version": "git+ssh://git@github.com/fonoster/node-grpc-interceptors.git#3ccc1d222f8a66e319a0e1e93bd18095aeaeb141", - "from": "grpc-interceptors@github:fonoster/node-grpc-interceptors", - "requires": { - "zipkin": "^0.12.0", - "zipkin-transport-http": "^0.22.0" - } - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "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-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==" - }, - "hexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", - "requires": { - "ansi-color": "^0.2.1", - "minimist": "^1.1.0", - "process": "^0.10.0", - "xtend": "^4.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" - }, - "http-call": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/http-call/-/http-call-5.3.0.tgz", - "integrity": "sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w==", - "requires": { - "content-type": "^1.0.4", - "debug": "^4.1.1", - "is-retry-allowed": "^1.1.0", - "is-stream": "^2.0.0", - "parse-json": "^4.0.0", - "tunnel-agent": "^0.6.0" - } - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "http2-wrapper": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "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" - } - } - } - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "requires": { - "ms": "^2.0.0" - } - }, - "hyperlinker": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz", - "integrity": "sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - }, - "ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - } - }, - "int64-buffer": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz", - "integrity": "sha512-v7cSY1J8ydZ0GyjUHqF+1bshJ6cnEVLo9EnjB8p+4HDRPZc9N5jjmvUV7NvEsqQOKyH0pmIBFWXVQbiS0+OBbA==" - }, - "ioredis": { - "version": "4.28.5", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.28.5.tgz", - "integrity": "sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==", - "requires": { - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.1", - "denque": "^1.1.0", - "lodash.defaults": "^4.2.0", - "lodash.flatten": "^4.4.0", - "lodash.isarguments": "^3.1.0", - "p-map": "^2.1.0", - "redis-commands": "1.7.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - } - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "requires": { - "ci-info": "^3.2.0" - } - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "requires": { - "has": "^1.0.3" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "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-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - } - }, - "is-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==" - }, - "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-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" - }, - "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-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-valid-domain": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.1.6.tgz", - "integrity": "sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg==", - "requires": { - "punycode": "^2.1.1" - } - }, - "is-valid-host": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-valid-host/-/is-valid-host-1.0.1.tgz", - "integrity": "sha512-LPjR7ypIMG/MLCh/dkz4lqQw4KZWFD2AeHNSbY4Y9pGp2rnWMMWqBY/iJLMwoVbOIG2r2y7L/wS9pHhr0gYRrg==" - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - }, - "is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jaeger-client": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", - "requires": { - "node-int64": "^0.4.0", - "opentracing": "^0.14.4", - "thriftrw": "^3.5.0", - "uuid": "^8.3.2", - "xorshift": "^1.1.1" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - } - } - }, - "jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "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" - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "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" - } - }, - "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" - } - }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "requires": { - "json-buffer": "3.0.1" - } - }, - "kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "latest-version": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", - "requires": { - "package-json": "^8.1.0" - } - }, - "libnpm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/libnpm/-/libnpm-3.0.1.tgz", - "integrity": "sha512-d7jU5ZcMiTfBqTUJVZ3xid44fE5ERBm9vBnmhp2ECD2Ls+FNXWxHSkO7gtvrnbLO78gwPdNPz1HpsF3W4rjkBQ==", - "requires": { - "bin-links": "^1.1.2", - "bluebird": "^3.5.3", - "find-npm-prefix": "^1.0.2", - "libnpmaccess": "^3.0.2", - "libnpmconfig": "^1.2.1", - "libnpmhook": "^5.0.3", - "libnpmorg": "^1.0.1", - "libnpmpublish": "^1.1.2", - "libnpmsearch": "^2.0.2", - "libnpmteam": "^1.0.2", - "lock-verify": "^2.0.2", - "npm-lifecycle": "^3.0.0", - "npm-logical-tree": "^1.2.1", - "npm-package-arg": "^6.1.0", - "npm-profile": "^4.0.2", - "npm-registry-fetch": "^4.0.0", - "npmlog": "^4.1.2", - "pacote": "^9.5.3", - "read-package-json": "^2.0.13", - "stringify-package": "^1.0.0" - } - }, - "libnpmaccess": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-3.0.2.tgz", - "integrity": "sha512-01512AK7MqByrI2mfC7h5j8N9V4I7MHJuk9buo8Gv+5QgThpOgpjB7sQBDDkeZqRteFb1QM/6YNdHfG7cDvfAQ==", - "requires": { - "aproba": "^2.0.0", - "get-stream": "^4.0.0", - "npm-package-arg": "^6.1.0", - "npm-registry-fetch": "^4.0.0" - }, - "dependencies": { - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - } - } - }, - "libnpmconfig": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/libnpmconfig/-/libnpmconfig-1.2.1.tgz", - "integrity": "sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==", - "requires": { - "figgy-pudding": "^3.5.1", - "find-up": "^3.0.0", - "ini": "^1.3.5" - } - }, - "libnpmhook": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/libnpmhook/-/libnpmhook-5.0.3.tgz", - "integrity": "sha512-UdNLMuefVZra/wbnBXECZPefHMGsVDTq5zaM/LgKNE9Keyl5YXQTnGAzEo+nFOpdRqTWI9LYi4ApqF9uVCCtuA==", - "requires": { - "aproba": "^2.0.0", - "figgy-pudding": "^3.4.1", - "get-stream": "^4.0.0", - "npm-registry-fetch": "^4.0.0" - }, - "dependencies": { - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - } - } - }, - "libnpmorg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/libnpmorg/-/libnpmorg-1.0.1.tgz", - "integrity": "sha512-0sRUXLh+PLBgZmARvthhYXQAWn0fOsa6T5l3JSe2n9vKG/lCVK4nuG7pDsa7uMq+uTt2epdPK+a2g6btcY11Ww==", - "requires": { - "aproba": "^2.0.0", - "figgy-pudding": "^3.4.1", - "get-stream": "^4.0.0", - "npm-registry-fetch": "^4.0.0" - }, - "dependencies": { - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - } - } - }, - "libnpmpublish": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-1.1.3.tgz", - "integrity": "sha512-/3LsYqVc52cHXBmu26+J8Ed7sLs/hgGVFMH1mwYpL7Qaynb9RenpKqIKu0sJ130FB9PMkpMlWjlbtU8A4m7CQw==", - "requires": { - "aproba": "^2.0.0", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.0.0", - "lodash.clonedeep": "^4.5.0", - "normalize-package-data": "^2.4.0", - "npm-package-arg": "^6.1.0", - "npm-registry-fetch": "^4.0.0", - "semver": "^5.5.1", - "ssri": "^6.0.1" - }, - "dependencies": { - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "libnpmsearch": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/libnpmsearch/-/libnpmsearch-2.0.2.tgz", - "integrity": "sha512-VTBbV55Q6fRzTdzziYCr64+f8AopQ1YZ+BdPOv16UegIEaE8C0Kch01wo4s3kRTFV64P121WZJwgmBwrq68zYg==", - "requires": { - "figgy-pudding": "^3.5.1", - "get-stream": "^4.0.0", - "npm-registry-fetch": "^4.0.0" - } - }, - "libnpmteam": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/libnpmteam/-/libnpmteam-1.0.2.tgz", - "integrity": "sha512-p420vM28Us04NAcg1rzgGW63LMM6rwe+6rtZpfDxCcXxM0zUTLl7nPFEnRF3JfFBF5skF/yuZDUthTsHgde8QA==", - "requires": { - "aproba": "^2.0.0", - "figgy-pudding": "^3.4.1", - "get-stream": "^4.0.0", - "npm-registry-fetch": "^4.0.0" - }, - "dependencies": { - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - } - } - }, - "load-json-file": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", - "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", - "requires": { - "graceful-fs": "^4.1.15", - "parse-json": "^4.0.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0", - "type-fest": "^0.3.0" - }, - "dependencies": { - "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lock-verify": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/lock-verify/-/lock-verify-2.2.2.tgz", - "integrity": "sha512-2CUNtr1ZSVKJHcYP8uEzafmmuyauCB5zZimj8TvQd/Lflt9kXVZs+8S+EbAzZLaVUDn8CYGmeC3DFGdYfnCzeQ==", - "requires": { - "@iarna/cli": "^2.1.0", - "npm-package-arg": "^6.1.0", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", - "requires": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "make-fetch-happen": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", - "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^12.0.0", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "requires": { - "minipass": "^2.9.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, - "moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "msgpack-lite": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz", - "integrity": "sha512-SZ2IxeqZ1oRFGo0xFGbvBJWMp3yLIY9rlIJyxy8CGrwZn1f0ZK4r6jV/AM1r0FZMDUkWkglOk/eeKIL9g77Nxw==", - "requires": { - "event-lite": "^0.1.1", - "ieee754": "^1.1.8", - "int64-buffer": "^0.1.9", - "isarray": "^1.0.0" - } - }, - "mustache": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz", - "integrity": "sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" - }, - "natural-orderby": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz", - "integrity": "sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "network-address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", - "integrity": "sha512-Q6878fmvItA1mE7H9Il46lONgFgTzX2f98zkS0c2YlkCACzNjwvum/8Kq693IQpxe9zy+w+Zm/4p0wQreLEtZw==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "peer": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-fetch-npm": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", - "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", - "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" - }, - "node-gyp": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz", - "integrity": "sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==", - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "mkdirp": "^0.5.1", - "nopt": "^4.0.1", - "npmlog": "^4.1.2", - "request": "^2.88.0", - "rimraf": "^2.6.3", - "semver": "^5.7.1", - "tar": "^4.4.12", - "which": "^1.3.1" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "node-vault": { - "version": "0.9.22", - "resolved": "https://registry.npmjs.org/node-vault/-/node-vault-0.9.22.tgz", - "integrity": "sha512-/IR+YvINFhCzxJA5x/KHUDymJerFaeqvPUE2zwceRig8yEIA41qfVKusmO6bqRGFkr/2f6CaBVp7YfabzQyteg==", - "requires": { - "debug": "3.1.0", - "mustache": "^2.2.1", - "request": "2.88.0", - "request-promise-native": "1.0.7", - "tv4": "^1.2.7" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==" - }, - "npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-lifecycle": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz", - "integrity": "sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==", - "requires": { - "byline": "^5.0.0", - "graceful-fs": "^4.1.15", - "node-gyp": "^5.0.2", - "resolve-from": "^4.0.0", - "slide": "^1.1.6", - "uid-number": "0.0.6", - "umask": "^1.1.0", - "which": "^1.3.1" - } - }, - "npm-logical-tree": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz", - "integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==" - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - }, - "npm-package-arg": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", - "requires": { - "hosted-git-info": "^2.7.1", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-pick-manifest": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", - "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", - "requires": { - "figgy-pudding": "^3.5.1", - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "npm-profile": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/npm-profile/-/npm-profile-4.0.4.tgz", - "integrity": "sha512-Ta8xq8TLMpqssF0H60BXS1A90iMoM6GeKwsmravJ6wYjWwSzcYBTdyWa3DZCYqPutacBMEm7cxiOkiIeCUAHDQ==", - "requires": { - "aproba": "^1.1.2 || 2", - "figgy-pudding": "^3.4.1", - "npm-registry-fetch": "^4.0.0" - } - }, - "npm-registry-fetch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", - "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", - "requires": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", - "JSONStream": "^1.3.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "npm-package-arg": "^6.1.0", - "safe-buffer": "^5.2.0" - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" - }, - "object-treeify": { - "version": "1.1.33", - "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", - "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==" - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "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": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==" - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" - }, - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - }, - "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==" - }, - "package-json": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz", - "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==", - "requires": { - "got": "^12.1.0", - "registry-auth-token": "^5.0.1", - "registry-url": "^6.0.0", - "semver": "^7.3.7" - } - }, - "pacote": { - "version": "9.5.12", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz", - "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==", - "requires": { - "bluebird": "^3.5.3", - "cacache": "^12.0.2", - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.1.0", - "glob": "^7.1.3", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "minimatch": "^3.0.4", - "minipass": "^2.3.5", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.4.0", - "npm-normalize-package-bin": "^1.0.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.12", - "npm-pick-manifest": "^3.0.0", - "npm-registry-fetch": "^4.0.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.1", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.6.0", - "ssri": "^6.0.1", - "tar": "^4.4.10", - "unique-filename": "^1.1.1", - "which": "^1.3.1" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "password-prompt": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz", - "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==", - "requires": { - "ansi-escapes": "^3.1.0", - "cross-spawn": "^6.0.5" - }, - "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - } - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "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-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "phone": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/phone/-/phone-2.4.22.tgz", - "integrity": "sha512-k2f9qkIgcgbbeyFFMHDcCaYdPxq7u71EjmMvD998PEquwDvIT7zmUFe00S4hH9WPjk+IQlw9W/FlHOu1O17Tbw==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "prettyjson": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.5.tgz", - "integrity": "sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==", - "requires": { - "colors": "1.4.0", - "minimist": "^1.2.0" - } - }, - "process": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - } - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" - }, - "protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - } - } - }, - "protoduck": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", - "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", - "requires": { - "genfun": "^5.0.0" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", - "requires": { - "escape-goat": "^4.0.0" - } - }, - "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" - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "read-cmd-shim": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz", - "integrity": "sha512-v5yCqQ/7okKoZZkBQUAfTsQ3sVJtXdNfbPnI5cceppoxEVLYA3k+VtV2omkeo8MS94JCy4fSiUwlRBAwCVRPUA==", - "requires": { - "graceful-fs": "^4.1.2" - } - }, - "read-package-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", - "requires": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", - "requires": { - "esprima": "~4.0.0" - } - }, - "redis-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", - "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" - }, - "redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==" - }, - "redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "requires": { - "redis-errors": "^1.0.0" - } - }, - "registry-auth-token": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.1.tgz", - "integrity": "sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA==", - "requires": { - "@pnpm/npm-conf": "^1.0.4" - } - }, - "registry-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", - "requires": { - "rc": "1.2.8" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - } - } - }, - "request-promise-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", - "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", - "requires": { - "lodash": "^4.17.11" - } - }, - "request-promise-native": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", - "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", - "requires": { - "request-promise-core": "1.1.2", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, - "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-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "requires": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - } - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - }, - "responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "requires": { - "lowercase-keys": "^3.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "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.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz", - "integrity": "sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "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-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "requires": { - "semver": "^7.3.5" - } - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "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" - }, - "dependencies": { - "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==" - } - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" - }, - "socks": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", - "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", - "requires": { - "ip": "1.1.5", - "smart-buffer": "^4.1.0" - } - }, - "socks-proxy-agent": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", - "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", - "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - }, - "dependencies": { - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "requires": { - "es6-promisify": "^5.0.0" - } - } - } - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "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==" - }, - "standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==" - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==" - }, - "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" - } - }, - "stringify-package": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", - "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==" - }, - "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-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.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==" - }, - "thriftrw": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.12.0.tgz", - "integrity": "sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw==", - "requires": { - "bufrw": "^1.3.0", - "error": "7.0.2", - "long": "^2.4.0" - }, - "dependencies": { - "long": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==" - } - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "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" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "peer": true - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tv4": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", - "integrity": "sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==" - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=" - }, - "umask": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", - "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=" - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "requires": { - "crypto-random-string": "^4.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - }, - "update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", - "requires": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", - "configstore": "^6.0.0", - "has-yarn": "^3.0.0", - "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", - "is-installed-globally": "^0.4.0", - "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", - "latest-version": "^7.0.0", - "pupa": "^3.1.0", - "semver": "^7.3.7", - "semver-diff": "^4.0.0", - "xdg-basedir": "^5.1.0" - }, - "dependencies": { - "chalk": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", - "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==" - } - } - }, - "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" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "requires": { - "builtins": "^1.0.3" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - } - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "optional": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "peer": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "peer": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } - }, - "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" - }, - "dependencies": { - "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" - } - } - } - }, - "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" - }, - "dependencies": { - "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" - } - } - } - }, - "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" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "xdg-basedir": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==" - }, - "xorshift": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "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": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "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" - }, - "dependencies": { - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - } - } - }, - "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==" - }, - "yarn": { - "version": "1.22.17", - "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.17.tgz", - "integrity": "sha512-H0p241BXaH0UN9IeH//RT82tl5PfNraVpSpEoW+ET7lmopNC61eZ+A+IDvU8FM6Go5vx162SncDL8J1ZjRBriQ==" - }, - "zipkin": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.12.0.tgz", - "integrity": "sha512-QguH/UQt/ofUVcTJLW7qdyi7iEo71MJJbKg/6d/m3ptvxhm5gDVf/KVuCEfzxxzzWGSKtX+c+qACvowsPkNjuQ==", - "requires": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0", - "network-address": "^1.1.0" - } - }, - "zipkin-transport-http": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin-transport-http/-/zipkin-transport-http-0.22.0.tgz", - "integrity": "sha512-bjM2fm/hurseBuvpyB8mYCBBGOz3gc2f9KUSQl71LGxmgYcUeXvDHJyE9MgzWMhl+3HcD8l5nNn6OmdX63he+g==", - "requires": { - "zipkin": "^0.22.0" - }, - "dependencies": { - "zipkin": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.22.0.tgz", - "integrity": "sha512-SZgorBAvywnj5R26mqsFP+2MRUsBXGg0B8GLRLw9R0FeE4alMUAfhXYvzeAt2+MvkXne9QdQyziuqO5oXNQ0Sg==", - "requires": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0" - } - } - } - } - } -} diff --git a/mods/ctl/package.json b/mods/ctl/package.json index 61ad97173..0456371cd 100644 --- a/mods/ctl/package.json +++ b/mods/ctl/package.json @@ -1,52 +1,27 @@ { "name": "@fonoster/ctl", - "version": "0.3.22", - "description": "Command-Line for Fonoster", + "version": "0.9.0", + "description": "Fonoster Control Tool", "author": "Pedro Sanders ", "homepage": "https://github.com/fonoster/fonoster#readme", "license": "MIT", - "main": "dist/index.js", - "types": "dist/index.js", - "bin": { - "fonoster": "./bin/run" - }, - "engines": { - "node": ">=14.16.0" + "main": "dist/index", + "types": "dist/index", + "directories": { + "src": "src", + "test": "test" }, "scripts": { "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", "build": "tsc -b tsconfig.json", - "postpack": "rimraf -f oclif.manifest.json", - "prepack": "oclif-dev manifest && oclif-dev readme", - "version": "oclif-dev readme && sed -i.bak \"s#master#main#g\" README.md && git add README.md" - }, - "directories": { - "src": "src", - "test": "test", - "bin": "bin" + "clean": "rimraf ./dist node_modules tsconfig.tsbuildinfo", + "postpack": "rimraf oclif.manifest.json", + "prepack": "oclif manifest && oclif readme && git add README.md && git commit -m 'chore: update CLI readme' --no-verify", + "generate:readme": "oclif readme" }, "files": [ - "/bin", - "/npm-shrinkwrap.json", - "/oclif.manifest.json", - "/dist" + "dist" ], - "oclif": { - "commands": "./dist/commands", - "helpClass": "./dist/help", - "bin": "fonoster", - "plugins": [ - "@oclif/plugin-help", - "@oclif/plugin-plugins", - "@oclif/plugin-not-found", - "@fonoster/plugin-warn-if-update-available" - ], - "warn-if-update-available": { - "timeoutInDays": 1, - "nagTimeoutInDays": 1, - "message": "\n <%= config.name %> update available from <%= chalk.greenBright(config.version) %> to <%= chalk.greenBright(latest) %>." - } - }, "publishConfig": { "access": "public" }, @@ -57,36 +32,44 @@ "bugs": { "url": "https://github.com/fonoster/fonoster/issues" }, + "gitHead": "3af6123a7fe16652f8cb3e30574b4a9e3700bff6", + "bin": { + "fonoster": "./bin/run.js" + }, + "oclif": { + "bin": "fonoster", + "commands": "./dist/commands", + "dirname": "fonoster", + "topicSeparator": ":", + "helpClass": "./dist/help", + "plugins": [ + "@oclif/plugin-warn-if-update-available" + ], + "warn-if-update-available": { + "timeoutInDays": 7, + "message": "<%= config.name %> update available from <%= chalk.greenBright(config.version) %> to <%= chalk.greenBright(latest) %>.", + "frequency": 1, + "frequencyUnit": "days" + } + }, "dependencies": { - "@fonoster/agents": "^0.3.22", - "@fonoster/apps": "^0.3.22", - "@fonoster/domains": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@fonoster/numbers": "^0.3.22", - "@fonoster/plugin-warn-if-update-available": "github:fonoster/plugin-warn-if-update-available", - "@fonoster/projects": "^0.3.22", - "@fonoster/providers": "^0.3.22", - "@fonoster/secrets": "^0.3.22", - "@oclif/command": "^1.8.16", - "@oclif/config": "^1.18.3", - "@oclif/core": "^1.3.4", - "@oclif/errors": "^1.3.5", - "@oclif/plugin-help": "^3.3.1", - "@oclif/plugin-not-found": "^2.3.1", - "@oclif/plugin-plugins": "^2.1.0", - "easy-table": "^1.2.0", - "figlet": "^1.5.0", - "get-stdin-with-tty": "^6.0.0", - "inquirer": "^7.3.3", - "moment": "^2.29.1", - "phone": "^2.4.21", - "prettyjson": "^1.2.1", - "update-notifier": "^6.0.2" + "@fonoster/autopilot": "^0.9.0", + "@fonoster/sdk": "^0.9.0", + "@inquirer/prompts": "^7.1.0", + "@oclif/core": "^4.0.34", + "@oclif/plugin-warn-if-update-available": "^3.1.28", + "cliui": "^8.0.1", + "figlet": "^1.8.0", + "moment": "^2.30.1", + "oclif": "^4.17.3", + "phone": "^3.1.55", + "terminal-link": "^3.0.0", + "twilio": "^5.4.0", + "zod": "^3.24.1" }, "devDependencies": { - "@types/inquirer": "^9.0.3", - "@types/prettyjson": "0.0.29", - "rimraf": "^3.0.2" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" + "@oclif/test": "^4.1.3", + "@types/figlet": "^1.7.0", + "@types/node": "22.10.1" + } } diff --git a/mods/ctl/src/AuthenticatedCommand.ts b/mods/ctl/src/AuthenticatedCommand.ts new file mode 100644 index 000000000..01416234c --- /dev/null +++ b/mods/ctl/src/AuthenticatedCommand.ts @@ -0,0 +1,59 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Command } from "@oclif/core"; +import { BaseCommand } from "./BaseCommand"; // Adjust the import based on your structure +import { getConfig, getActiveWorkspace } from "./config"; +import { CONFIG_FILE } from "./constants"; + +export abstract class AuthenticatedCommand< + T extends typeof Command +> extends BaseCommand { + protected async createSdkClient(): Promise { + const workspaces = getConfig(CONFIG_FILE); + const activeWorkspace = getActiveWorkspace(workspaces); + + if (!activeWorkspace) { + throw new Error( + "No active workspace found. Please login to a Workspace." + ); + } + + try { + const client = new SDK.Client({ + endpoint: activeWorkspace.endpoint, + accessKeyId: activeWorkspace.workspaceAccessKeyId, + allowInsecure: this.flags.insecure + }); + + await client.loginWithApiKey( + activeWorkspace.accessKeyId, + activeWorkspace.accessKeySecret + ); + + return client; + } catch (error) { + this.error( + "Failed to initialize the SDK client. Please try by login to the Workspace again.", + { exit: 1 } + ); + } + } +} diff --git a/mods/ctl/src/BaseCommand.ts b/mods/ctl/src/BaseCommand.ts new file mode 100644 index 000000000..ce57c0c55 --- /dev/null +++ b/mods/ctl/src/BaseCommand.ts @@ -0,0 +1,65 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Command, Flags, Interfaces } from "@oclif/core"; + +export type Args = Interfaces.InferredArgs; + +export abstract class BaseCommand extends Command { + // define flags that can be inherited by any command that extends BaseCommand + static readonly baseFlags = { + insecure: Flags.boolean({ + char: "i", + description: "allow connections to a server with no TLS", + default: false + }) + }; + + protected flags!: Flags; + protected args!: Args; + + public async init(): Promise { + await super.init(); + const { args, flags } = await this.parse({ + flags: this.ctor.flags, + baseFlags: (super.ctor as typeof BaseCommand).baseFlags, + enableJsonFlag: this.ctor.enableJsonFlag, + args: this.ctor.args, + strict: this.ctor.strict + }); + this.flags = flags as Flags; + this.args = args as Args; + } + + protected async catch(err: Error & { exitCode?: number }) { + // add any custom logic to handle errors from the command + // or simply return the parent class error handling + return super.catch(err); + } + + protected async finally(_: Error | undefined) { + // called after run and catch regardless of whether or not the command errored + return super.finally(_); + } +} + +// eslint-disable-next-line no-redeclare +export type Flags = Interfaces.InferredFlags< + (typeof BaseCommand)["baseFlags"] & T["flags"] +>; diff --git a/mods/ctl/src/Help.ts b/mods/ctl/src/Help.ts new file mode 100644 index 000000000..8ffc7e6a2 --- /dev/null +++ b/mods/ctl/src/Help.ts @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// eslint-disable-next-line import/no-unresolved +import { Help } from "@oclif/core"; +import figlet from "figlet"; + +export default class CustomHelp extends Help { + protected showRootHelp(): Promise { + this.showLogo(); + + this.log(this.formatRoot()); + this.log(""); + + this.log(this.formatCommands(this.customCommands)); + this.log(""); + + return Promise.resolve(); + } + + private showLogo() { + this.log("\x1b[32m"); + this.log( + figlet.textSync("Fonoster", { + horizontalLayout: "default", + verticalLayout: "default", + width: 60, + whitespaceBreak: true + }) + ); + this.log("\x1b[0m"); + } + + private get customCommands() { + return this.sortedCommands + .filter((c) => c.id) + .sort((a, b) => (a.id.includes(":") ? 1 : b.id.includes(":") ? -1 : 0)); + } +} diff --git a/mods/ctl/src/base/delete.ts b/mods/ctl/src/base/delete.ts deleted file mode 100644 index 206dff0d0..000000000 --- a/mods/ctl/src/base/delete.ts +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../config"; -import Command from "@oclif/command"; -import { Input } from "@oclif/parser"; -import { CliUx } from "@oclif/core"; -import { CLIError } from "@oclif/errors"; - -export default abstract class extends Command { - ref: string; - - async deleteResource(API: any, funcName: string) { - if (!this.ref) { - CliUx.ux.action.stop(); - throw new CLIError("You must provide a resource ref before continuing"); - } - - CliUx.ux.action.start(`Deleting resource ${this.ref}`); - const results = await API[funcName](this.ref); - - await CliUx.ux.wait(1000); - CliUx.ux.action.stop(results ? "Done" : "Failed"); - } - - async init() { - const { args } = this.parse(>this.constructor); - this.ref = args.ref; - } - - async catch(err: any) { - return super.catch(err); - } - - async finally(err: any) { - return super.finally(err); - } -} diff --git a/mods/ctl/src/commands/agents/create.ts b/mods/ctl/src/commands/agents/create.ts deleted file mode 100644 index e98402679..000000000 --- a/mods/ctl/src/commands/agents/create.ts +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { getProjectConfig, hasProjectConfig } from "../../config"; -import { toPascalCase } from "../../utils"; -import { Privacy } from "@fonoster/agents"; -const Agents = require("@fonoster/agents"); -const Domains = require("@fonoster/domains"); -const inquirer = require("inquirer"); - -export default class extends Command { - static description = `create a new Fonoster Agent - ... - Create a new Fonoster Agent - `; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - console.log("This utility will help you create a new Agent"); - console.log("Press ^C at any time to quit."); - - // TODO: Consider using the autocomplete plugin - const response = await new Domains(getProjectConfig()).listDomains({ - pageSize: 25, - pageToken: "1" - }); - - const domains = response.domains.map((app: any) => app.domainUri); - - if (domains.length === 0) { - throw new Error("you must create a domain before adding an agent"); - } - - const answers: any = await inquirer.prompt([ - { - name: "domain", - message: "domain", - type: "list", - choices: domains - }, - { - name: "name", - message: "friendly name", - type: "input" - }, - { - name: "username", - message: "username", - type: "input" - }, - { - name: "secret", - message: "secret", - type: "password", - mask: true - }, - { - name: "privacy", - message: "privacy", - type: "list", - choices: [toPascalCase(Privacy.NONE), toPascalCase(Privacy.PRIVATE)], - default: "None" - }, - { - name: "confirm", - message: "ready?", - type: "confirm" - } - ]); - - answers.domains = [answers.domain]; - - if (!answers.confirm) { - console.log("Aborted"); - } else { - try { - CliUx.ux.action.start(`Creating agent ${answers.name}`); - const agents = new Agents(getProjectConfig()); - answers.privacy = Privacy[answers.privacy.toUpperCase()]; - const agent = await agents.createAgent(answers); - await CliUx.ux.wait(1000); - CliUx.ux.action.stop(agent.ref); - } catch (e) { - CliUx.ux.action.stop(); - if (e.code === 9) { - throw new CLIError("This Agent already exist"); - } else { - throw new CLIError(e.message); - } - } - } - } -} diff --git a/mods/ctl/src/commands/agents/delete.ts b/mods/ctl/src/commands/agents/delete.ts deleted file mode 100644 index fd5659b63..000000000 --- a/mods/ctl/src/commands/agents/delete.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Command from "../../base/delete"; -import { getProjectConfig, hasProjectConfig } from "../../config"; -import { CLIError } from "@oclif/errors"; -const Agents = require("@fonoster/agents"); - -export default class extends Command { - static description = "delete a Fonoster Agent"; - static args = [{ name: "ref" }]; - static aliases = ["agents:del", "agents:rm"]; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - await super.deleteResource(new Agents(getProjectConfig()), "deleteAgent"); - } -} diff --git a/mods/ctl/src/commands/agents/get.ts b/mods/ctl/src/commands/agents/get.ts deleted file mode 100644 index 45a0a601b..000000000 --- a/mods/ctl/src/commands/agents/get.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { render } from "prettyjson"; -import { getProjectConfig, hasProjectConfig } from "../../config"; -import { toPascalCase } from "../../utils"; -const Agents = require("@fonoster/agents"); -const moment = require("moment"); - -export default class GetCommand extends Command { - static description = "get a Fonoster Agent"; - static args = [{ name: "ref" }]; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - const { args } = this.parse(GetCommand); - - try { - const agents = new Agents(getProjectConfig()); - CliUx.ux.action.start(`Getting Agent ${args.ref}`); - const agent = await agents.getAgent(args.ref); - - const jsonObj = { - Ref: agent.ref, - Name: agent.name, - Username: agent.username, - Privacy: toPascalCase(agent.privacy), - Domains: agent.domains.join(","), - Created: moment(agent.createTime).fromNow(), - Updated: moment(agent.updateTime).fromNow() - }; - - await CliUx.ux.wait(1000); - CliUx.ux.action.stop(""); - console.log(render(jsonObj, { noColor: true })); - } catch (e) { - throw new CLIError(e.message); - } - } -} diff --git a/mods/ctl/src/commands/agents/list.ts b/mods/ctl/src/commands/agents/list.ts deleted file mode 100644 index 65f77b6cc..000000000 --- a/mods/ctl/src/commands/agents/list.ts +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command, flags as oclifFlags } from "@oclif/command"; -import { CommonPB } from "@fonoster/agents"; -import { CliUx } from "@oclif/core"; -import { Agent } from "@fonoster/agents"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Agents = require("@fonoster/agents"); -const inquirer = require("inquirer"); - -export default class ListCommand extends Command { - static description = `list all Fonoster Agents you have access to - ... - List all Fonoster Agents you have access to - `; - static flags = { - size: oclifFlags.integer({ - char: "s", - default: 25, - description: "agent of result per page" - }) - }; - static aliases = ["agents:ls"]; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - const { flags } = this.parse(ListCommand); - try { - const agents = new Agents(getProjectConfig()); - let firstBatch = true; - let pageToken = "1"; - const pageSize = flags.size; - const view: CommonPB.View = CommonPB.View.BASIC; - while (true) { - // Get a list - const result = await agents.listAgents({ pageSize, pageToken, view }); - const list = result.agents; - pageToken = result.nextPageToken; - - // Dont ask this if is the first time or empty data - if (list.length > 0 && !firstBatch) { - const answer: any = await inquirer.prompt([ - { name: "q", message: "More", type: "confirm" } - ]); - if (!answer.q) break; - } - - if (list.length < 1) break; - - const showTable = (showHeader: boolean, data: Agent[]) => { - CliUx.ux.table( - data, - { - ref: { minWidth: 12 }, - name: { header: "Name", minWidth: 12 }, - username: { header: "Username", minWidth: 12 }, - privacy: { header: "Privacy", minWidth: 12, extended: true }, - domains: { - header: "Domains", - minWidth: 12, - get: (row: any) => `${row.domains.join(",")}` - } - }, - { "no-header": !showHeader } - ); - }; - showTable(firstBatch, list); - - firstBatch = false; - if (!pageToken) break; - } - } catch (e) { - throw new CLIError(e.message); - } - } -} diff --git a/mods/ctl/src/commands/agents/update.ts b/mods/ctl/src/commands/agents/update.ts deleted file mode 100644 index 440322c7f..000000000 --- a/mods/ctl/src/commands/agents/update.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { getProjectConfig, hasProjectConfig } from "../../config"; -import { toPascalCase } from "../../utils"; -const { Privacy } = require("@fonoster/agents"); -const Agents = require("@fonoster/agents"); -const inquirer = require("inquirer"); - -export default class UpdateCommand extends Command { - static args = [{ name: "ref" }]; - static description = `update a Fonoster Agent - ... - Update a Fonoster Agent - `; - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - console.log("This utility will help you update an existing Agent"); - console.log("Press ^C at any time to quit."); - - const { args } = this.parse(UpdateCommand); - const agents = new Agents(getProjectConfig()); - const agent = await agents.getAgent(args.ref); - - const answers = await inquirer.prompt([ - { - name: "name", - message: "friendly name", - type: "input", - default: agent.name - }, - { - name: "secret", - message: "secret", - type: "password", - mask: true - }, - { - name: "privacy", - message: "privacy", - type: "list", - choices: [toPascalCase(Privacy.NONE), toPascalCase(Privacy.PRIVATE)], - default: toPascalCase(agent.privacy) - }, - { - name: "confirm", - message: "ready?", - type: "confirm" - } - ]); - - answers.ref = args.ref; - - if (!answers.confirm) { - console.log("Aborted"); - } else { - try { - CliUx.ux.action.start(`Updating agent ${answers.name}`); - answers.privacy = Privacy[answers.privacy.toUpperCase()]; - await agents.updateAgent(answers); - await CliUx.ux.wait(1000); - - CliUx.ux.action.stop("Done"); - } catch (e) { - CliUx.ux.action.stop(); - throw new CLIError(e.message); - } - } - } -} diff --git a/mods/ctl/src/commands/apikeys/create.ts b/mods/ctl/src/commands/apikeys/create.ts new file mode 100644 index 000000000..8437f81e0 --- /dev/null +++ b/mods/ctl/src/commands/apikeys/create.ts @@ -0,0 +1,61 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { ApiRoleEnum } from "@fonoster/types"; +import { Flags } from "@oclif/core"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; + +export default class Create extends AuthenticatedCommand { + static override readonly description = + "create an API key for the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly flags = { + expiration: Flags.string({ + char: "e", + description: + "API Key expiration time in days(e.g. 10d) or months(e.g. 10m)", + required: false + }), + role: Flags.string({ + char: "r", + description: "API Key role", + default: "WORKSPACE_ADMIN", + required: false + }) + }; + + public async run(): Promise { + const { flags } = await this.parse(Create); + + const sdkClient = await this.createSdkClient(); + const apiKeys = new SDK.ApiKeys(sdkClient); + const result = await apiKeys.createApiKey({ + role: flags.role as ApiRoleEnum + }); + + this.log("Access Key regenerated successfully!"); + this.log(`Access Key ID: ${result.accessKeyId}`); + this.log(`Access Key Secret: ${result.accessKeySecret}`); + this.log(""); + this.warn( + "This is the only time the Access Key Secret will be shown.\nPlease copy it and store it securely!" + ); + } +} diff --git a/mods/ctl/src/commands/apikeys/delete.ts b/mods/ctl/src/commands/apikeys/delete.ts new file mode 100644 index 000000000..b9fedbf94 --- /dev/null +++ b/mods/ctl/src/commands/apikeys/delete.ts @@ -0,0 +1,46 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; + +export default class Delete extends AuthenticatedCommand { + static override readonly description = + "delete an API key from the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the ApiKey to delete from the Workspace", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Delete); + const { ref } = args; + + const client = await this.createSdkClient(); + const applications = new SDK.ApiKeys(client); + + await applications.deleteApiKey(ref); + + this.log("Done!"); + } +} diff --git a/mods/ctl/src/commands/apikeys/list.ts b/mods/ctl/src/commands/apikeys/list.ts new file mode 100644 index 000000000..076653811 --- /dev/null +++ b/mods/ctl/src/commands/apikeys/list.ts @@ -0,0 +1,72 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Flags } from "@oclif/core"; +import cliui from "cliui"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; + +export default class List extends AuthenticatedCommand { + static override readonly description = + "display all API keys in the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly flags = { + "page-size": Flags.string({ + char: "s", + description: "the number of items to show", + default: "1000", + required: false + }) + }; + + public async run(): Promise { + const { flags } = await this.parse(List); + const client = await this.createSdkClient(); + const apiKeys = new SDK.ApiKeys(client); + const response = await apiKeys.listApiKeys({ + pageSize: parseInt(flags["page-size"]) + }); + + const ui = cliui({ width: 170 }); + + ui.div( + { text: "REF", padding: [0, 0, 0, 0], width: 40 }, + { text: "ACCESS KEY ID", padding: [0, 0, 0, 0], width: 38 }, + { text: "ROLE", padding: [0, 0, 0, 0], width: 20 }, + { text: "EXPIRATION", padding: [0, 0, 0, 0], width: 10 } + ); + + response.items.forEach((application) => { + ui.div( + { text: application.ref, padding: [0, 0, 0, 0], width: 40 }, + { text: application.accessKeyId, padding: [0, 0, 0, 0], width: 38 }, + { text: application.role, padding: [0, 0, 0, 0], width: 20 }, + { + text: application.expiresAt + ? new Date(application.expiresAt).toISOString() + : "Never", + padding: [0, 0, 0, 0], + width: 10 + } + ); + }); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/apikeys/regenerate.ts b/mods/ctl/src/commands/apikeys/regenerate.ts new file mode 100644 index 000000000..f16067e80 --- /dev/null +++ b/mods/ctl/src/commands/apikeys/regenerate.ts @@ -0,0 +1,53 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; + +export default class Regenerate extends AuthenticatedCommand< + typeof Regenerate +> { + static override readonly description = + "generate a new access key secret for an API key"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the Application to update", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Regenerate); + const { ref } = args; + + const client = await this.createSdkClient(); + const apiKeys = new SDK.ApiKeys(client); + const result = await apiKeys.regenerateApiKey(ref); + + this.log("Access Key created successfully!"); + this.log(`Access Key ID: ${result.accessKeyId}`); + this.log(`Access Key Secret: ${result.accessKeySecret}`); + this.log(""); + this.warn( + "This is the only time the Access Key Secret will be shown.\nPlease copy it and store it securely!" + ); + } +} diff --git a/mods/ctl/src/commands/applications/create.ts b/mods/ctl/src/commands/applications/create.ts new file mode 100644 index 000000000..df43c9b1a --- /dev/null +++ b/mods/ctl/src/commands/applications/create.ts @@ -0,0 +1,150 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { CreateApplicationRequest } from "@fonoster/types"; +import { confirm, input, select } from "@inquirer/prompts"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; +import errorHandler from "../../errorHandler"; +import { WELCOME_DEMO_SPECIAL_LOCAL_ADDRESS } from "@fonoster/common"; + +export default class Create extends AuthenticatedCommand { + static override readonly description = + "add a new Application to the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + + public async run(): Promise { + this.log("This utility will help you create an Application."); + this.log("Press ^C at any time to quit."); + + const answers = { + name: await input({ + message: "Name", + required: true + }), + type: await select({ + message: "Type", + choices: [{ name: "External", value: "External" }] + }), + endpoint: await input({ + message: "Endpoint", + default: WELCOME_DEMO_SPECIAL_LOCAL_ADDRESS, + required: true + }), + speechToText: { + productRef: await select({ + message: "SST Vendor", + choices: [{ name: "Deepgram", value: "stt.deepgram" }] + }), + config: { + languageCode: await select({ + message: "STT Language", + choices: [ + { name: "English", value: "en-US" }, + { name: "Spanish", value: "es-ES" } + ] + }), + model: await select({ + message: "STT Model", + choices: [ + { name: "Nova 2", value: "nova-2" }, + { name: "Nova 2 Phone Call", value: "nova-2-phonecall" }, + { + name: "Nova 2 Conversational AI", + value: "nova-2-conversationalai" + } + ], + default: "nova-2" + }) + } + }, + textToSpeech: { + productRef: await select({ + message: "TTS Vendor", + choices: [ + { name: "Deepgram", value: "tts.deepgram" }, + { name: "ElevenLabs", value: "tts.elevenlabs" }, + { name: "Google", value: "tts.google" }, + { name: "Azure", value: "tts.azure" } + ] + }), + config: {} + } + }; + + const answersPartTwo = { + textToSpeech: { + config: { + model: + answers.textToSpeech.productRef === "tts.elevenlabs" + ? await select({ + message: "TTS Model", + choices: [ + { + name: "Multilingual v2", + value: "eleven_multilingual_v2" + }, + { name: "Flash v2.5", value: "eleven_flash_v2_5" }, + { name: "Flash v2", value: "eleven_flash_v" }, + { name: "Turbo v2", value: "eleven_turbo_v2" }, + { name: "Turbo v2.5", value: "eleven_turbo_v2_5" }, + { + name: "Multilingual Speech to Speech", + value: "eleven_multilingual_sts_v2" + } + // { name: "English Speech to Speech", value: "eleven_english_sts_v2" } + ], + default: null + }) + : null, + voice: await input({ + message: "TTS Voice", + required: true + }) + } + }, + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answersPartTwo.confirm) { + this.log("Aborted!"); + return; + } + + answers.textToSpeech.config = { + ...answers.textToSpeech.config, + ...answersPartTwo.textToSpeech.config + }; + + try { + const client = await this.createSdkClient(); + const applications = new SDK.Applications(client); + + await applications.createApplication( + answers as unknown as CreateApplicationRequest + ); + + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/applications/delete.ts b/mods/ctl/src/commands/applications/delete.ts new file mode 100644 index 000000000..8a121d03e --- /dev/null +++ b/mods/ctl/src/commands/applications/delete.ts @@ -0,0 +1,43 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; + +export default class Delete extends AuthenticatedCommand { + static override readonly description = + "delete an Application from the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the Application to delete", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Delete); + const { ref } = args; + const client = await this.createSdkClient(); + const applications = new SDK.Applications(client); + await applications.deleteApplication(ref); + this.log("Done!"); + } +} diff --git a/mods/ctl/src/commands/applications/get.ts b/mods/ctl/src/commands/applications/get.ts new file mode 100644 index 000000000..41816e44c --- /dev/null +++ b/mods/ctl/src/commands/applications/get.ts @@ -0,0 +1,69 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import cliui from "cliui"; +import moment from "moment"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; + +export default class Get extends AuthenticatedCommand { + static override readonly description = + "retrieve details of an Application by reference"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "The Application to show details about", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Get); + const client = await this.createSdkClient(); + const applications = new SDK.Applications(client); + + const response = await applications.getApplication(args.ref); + + const ui = cliui({ width: 200 }); + + // STT or none of productRef is undefined + const stt = response.speechToText?.productRef + ? response.speechToText?.productRef.replace("stt.", "") + : "none"; + const tts = response.textToSpeech?.productRef + ? response.textToSpeech?.productRef.replace("tts.", "") + : "none"; + + ui.div( + "APPLICATION DETAILS\n" + + "------------------\n" + + `NAME: \t${response.name}\n` + + `REF: \t${response.ref}\n` + + `STT: \t${stt}\n` + + `TTS: \t${tts}\n` + + `TYPE: \t${response.type}\n` + + `ENDPOINT: \t${response.endpoint}\n` + + `CREATED: \t${moment(response.createdAt).format("YYYY-MM-DD HH:mm:ss")}\n` + + `UPDATED: \t${moment(response.updatedAt).format("YYYY-MM-DD HH:mm:ss")}` + ); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/applications/list.ts b/mods/ctl/src/commands/applications/list.ts new file mode 100644 index 000000000..af30ab6d3 --- /dev/null +++ b/mods/ctl/src/commands/applications/list.ts @@ -0,0 +1,66 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Flags } from "@oclif/core"; +import cliui from "cliui"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; + +export default class List extends AuthenticatedCommand { + static override readonly description = + "display all Applications in the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly flags = { + "page-size": Flags.string({ + char: "s", + description: "the number of items to show", + default: "1000", + required: false + }) + }; + + public async run(): Promise { + const { flags } = await this.parse(List); + const client = await this.createSdkClient(); + const applications = new SDK.Applications(client); + const response = await applications.listApplications({ + pageSize: parseInt(flags["page-size"]) + }); + + const ui = cliui({ width: 170 }); + + ui.div( + { text: "REF", padding: [0, 0, 0, 0], width: 40 }, + { text: "NAME", padding: [0, 0, 0, 0], width: 30 }, + { text: "TYPE", padding: [0, 0, 0, 0], width: 10 }, + { text: "ENDPOINT", padding: [0, 0, 0, 0] } + ); + + response.items.forEach((application) => { + ui.div( + { text: application.ref, padding: [0, 0, 0, 0], width: 40 }, + { text: application.name, padding: [0, 0, 0, 0], width: 30 }, + { text: application.type, padding: [0, 0, 0, 0], width: 10 }, + { text: application.endpoint, padding: [0, 0, 0, 0] } + ); + }); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/applications/update.ts b/mods/ctl/src/commands/applications/update.ts new file mode 100644 index 000000000..c315069fa --- /dev/null +++ b/mods/ctl/src/commands/applications/update.ts @@ -0,0 +1,170 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { UpdateApplicationRequest } from "@fonoster/types"; +import { confirm, input, select } from "@inquirer/prompts"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; +import errorHandler from "../../errorHandler"; + +export default class Update extends AuthenticatedCommand { + static override readonly description = + "modify the configuration of an Application"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the Application to update", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Update); + const { ref } = args; + const client = await this.createSdkClient(); + const applications = new SDK.Applications(client); + const applicationFromDB = await applications.getApplication(args.ref); + + if (!applicationFromDB) { + this.error("Application not found."); + } + + this.log("This utility will help you update an Application."); + this.log("Press ^C at any time to quit."); + + const answers = { + name: await input({ + message: "Name", + required: true, + default: applicationFromDB.name + }), + type: await select({ + message: "Type", + choices: [{ name: "External", value: "External" }], + default: applicationFromDB.type + }), + endpoint: await input({ + message: "Endpoint", + required: true, + default: applicationFromDB.endpoint + }), + speechToText: { + productRef: await select({ + message: "SST Vendor", + choices: [{ name: "Deepgram", value: "stt.deepgram" }], + default: applicationFromDB.speechToText?.productRef + }), + config: { + languageCode: await select({ + message: "STT Language", + choices: [ + { name: "English", value: "en-US" }, + { name: "Spanish", value: "es-ES" } + ], + default: applicationFromDB.speechToText?.config.languageCode + }), + model: await select({ + message: "STT Model", + choices: [ + { name: "Nova 2", value: "nova-2" }, + { name: "Nova 2 Phone Call", value: "nova-2-phonecall" }, + { + name: "Nova 2 Conversational AI", + value: "nova-2-conversationalai" + } + ], + default: applicationFromDB.speechToText?.config.model + }) + } + }, + textToSpeech: { + productRef: await select({ + message: "TTS Vendor", + choices: [ + { name: "Deepgram", value: "tts.deepgram" }, + { name: "ElevenLabs", value: "tts.elevenlabs" }, + { name: "Google", value: "tts.google" }, + { name: "Azure", value: "tts.azure" } + ], + default: applicationFromDB.textToSpeech?.productRef + }), + config: {} + } + }; + + const answersPartTwo = { + textToSpeech: { + config: { + model: + answers.textToSpeech.productRef === "tts.elevenlabs" + ? await select({ + message: "TTS Model", + choices: [ + { + name: "Multilingual v2", + value: "eleven_multilingual_v2" + }, + { name: "Flash v2.5", value: "eleven_flash_v2_5" }, + { name: "Flash v2", value: "eleven_flash_v" }, + { name: "Turbo v2", value: "eleven_turbo_v2" }, + { name: "Turbo v2.5", value: "eleven_turbo_v2_5" }, + { + name: "Multilingual Speech to Speech", + value: "eleven_multilingual_sts_v2" + } + // { name: "English Speech to Speech", value: "eleven_english_sts_v2" } + ], + default: null + }) + : null, + voice: await input({ + message: "TTS Voice", + required: true, + default: applicationFromDB.textToSpeech?.config?.voice as string + }) + } + }, + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answersPartTwo.confirm) { + this.log("Aborted!"); + return; + } + + answers.textToSpeech.config = { + ...answers.textToSpeech.config, + ...answersPartTwo.textToSpeech.config + }; + + try { + await applications.updateApplication({ + ref, + ...answers + } as UpdateApplicationRequest); + + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/apps/create.ts b/mods/ctl/src/commands/apps/create.ts deleted file mode 100644 index 421d04e5b..000000000 --- a/mods/ctl/src/commands/apps/create.ts +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { getProjectConfig } from "../../config"; -import { ProjectGuard } from "../../decorators/project_guard"; -import { voices } from "../../data/voices"; - -const Apps = require("@fonoster/apps"); -const Secrets = require("@fonoster/secrets"); -const inquirer = require("inquirer"); - -const validator = (value?: string, message = "This field is required") => - Boolean(value?.trim()?.length) || message; - -export default class CreateCommand extends Command { - static description = `create a new Fonoster App - ... - Create a new Fonoster App - `; - - @ProjectGuard() - async run() { - console.log("This utility will help you create a new Fonoster App"); - console.log("Press ^C at any time to quit.\n"); - - try { - const { secrets: response } = await new Secrets( - getProjectConfig() - ).listSecrets({ - pageSize: 25, - pageToken: "1" - }); - - const secrets = response.map(({ name }) => name) || []; - - if (secrets.length === 0) { - throw new CLIError("Before adding a App you must create a Secret"); - } - - const answers = await inquirer.prompt([ - { - name: "name", - message: "Application Name", - type: "input", - validate: (value: string) => - validator( - value, - "You must enter a name for your Application, try something friendly." - ) - }, - { - name: "speechConfig.voice", - message: "Voice name", - type: "list", - choices: voices, - validate: (value: string) => - validator(value, "You must select a voice") - }, - { - name: "speechConfig.secretName", - message: "Speech Config Secret", - type: "list", - choices: secrets, - validate: (value: string) => - validator(value, "You must select a Secret") - }, - { - name: "intentsEngineConfig.welcomeIntentId", - message: "Type the welcome intent ID (e.g. WELCOME)", - type: "input" - }, - { - name: "engine", - message: "Select Intents Engine Type", - type: "list", - choices: ["DialogflowES"], - validate: (value: string) => - validator(value, "You must select a engine") - }, - { - name: "intentsEngineConfig.projectId", - message: "Type a project ID", - type: "input", - validate: (value: string) => - validator( - value, - "You must enter a project ID for your Application." - ) - }, - { - name: "intentsEngineConfig.secretName", - message: "Intents Engine Secret", - type: "list", - choices: secrets, - validate: (value: string) => - validator(value, "You must select a Secret") - }, - // Disabling this until we bring support for Dialogflow CX - /* { - name: "intentsEngineConfig.agent", - message: "Type an Agent", - type: "input", - when: (answers) => answers.engine === "DialogflowES", - validate: (value: string) => - validator(value, "You must enter a agent for your Application.") - }, - { - name: "intentsEngineConfig.location", - message: "Type a Location", - type: "input", - when: (answers) => answers.engine === "DialogflowES", - validate: (value: string) => - validator(value, "You must enter a location for your Application.") - },*/ - { - name: "showAdvanceOptions", - message: "Show advance options?", - type: "confirm" - }, - { - name: "initialDtmf", - message: "Initial DTMF (optional)", - type: "input", - when: (answers) => answers.showAdvanceOptions, - validate: (value: string) => { - const regex = /^[0-9*#]*$/; - - if (value && !regex.test(value)) { - return "You must enter a valid DTMF. It’s a string that allows 1234567890#*"; - } - - return true; - } - }, - { - name: "enableEvents", - message: "Enable Events", - type: "confirm", - when: (answers) => answers.showAdvanceOptions - }, - { - name: "activationIntentId", - message: "Type the activation intent ID (optional)", - type: "input", - when: (answers) => answers.showAdvanceOptions - }, - { - name: "activationTimeout", - message: "Type the activation timeout (e.g. 15000)", - type: "input", - when: (answers) => answers.showAdvanceOptions, - validate: (value: string) => { - const regex = /^[0-9]*$/; - - if (value && !regex.test(value)) { - return "You must enter a valid timeout. It’s a number in milliseconds"; - } - - return true; - } - }, - { - name: "interactionTimeout", - message: "Type the interaction timeout (e.g. 10000)", - type: "input", - when: (answers) => answers.showAdvanceOptions, - validate: (value: string) => { - const regex = /^[0-9]*$/; - - if (value && !regex.test(value)) { - return "You must enter a valid timeout. It’s a number in milliseconds"; - } - - return true; - } - }, - { - name: "transferConfig.message", - message: - "Type a transfer message (e.g. Please wait while we transfer your call.)", - type: "input", - when: (answers) => answers.showAdvanceOptions - }, - { - name: "intentsEngineConfig.emulateTelephonyPlatform", - message: "Emulate Telephony Platform", - type: "confirm", - when: (answers) => answers.showAdvanceOptions - } - ]); - - const confirmPrompt = await inquirer.prompt([ - { - name: "confirm", - message: "Ready to create your App?", - type: "confirm" - } - ]); - - if (!confirmPrompt.confirm) return console.log("Aborted"); - - CliUx.ux.action.start(`Creating App ${answers.name}`); - - const apps = new Apps(getProjectConfig()); - - delete answers.showAdvanceOptions; - delete answers.engine; - - const result = await apps.createApp(answers); - - await CliUx.ux.wait(1000); - CliUx.ux.action.stop(result.ref); - } catch (e) { - CliUx.ux.action.stop(); - throw new CLIError(e.code === 9 ? "This App already exist" : e.message); - } - } -} diff --git a/mods/ctl/src/commands/apps/delete.ts b/mods/ctl/src/commands/apps/delete.ts deleted file mode 100644 index b70a0c082..000000000 --- a/mods/ctl/src/commands/apps/delete.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Command from "../../base/delete"; -import { CLIError } from "@oclif/errors"; -import { getProjectConfig } from "../../config"; -import { ProjectGuard } from "../../decorators/project_guard"; - -const Apps = require("@fonoster/apps"); - -export default class DeleteCommand extends Command { - static description = "delete a Fonoster Application"; - static args = [{ name: "ref" }]; - static aliases = ["apps:del", "apps:rm"]; - - @ProjectGuard() - async run() { - try { - await super.deleteResource(new Apps(getProjectConfig()), "deleteApp"); - } catch (e) { - const message = - e.code === 9 - ? "unable to delete: please ensure no Resource is using this Fonoster Application" - : e.message; - - throw new CLIError(message); - } - } -} diff --git a/mods/ctl/src/commands/apps/list.ts b/mods/ctl/src/commands/apps/list.ts deleted file mode 100644 index bc1cdaf2e..000000000 --- a/mods/ctl/src/commands/apps/list.ts +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CommonPB } from "@fonoster/domains"; -import { CLIError } from "@oclif/errors"; -import { Command, flags as oclifFlags } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { App } from "@fonoster/apps"; -import { getProjectConfig } from "../../config"; -import { ProjectGuard } from "../../decorators/project_guard"; - -const Apps = require("@fonoster/apps"); - -export default class ListCommand extends Command { - static description = `list all Fonoster Apps you have access to - ... - List all Fonoster Apps you have access to - `; - static flags = { - size: oclifFlags.integer({ - char: "s", - default: 25, - description: "number of result per page" - }) - }; - static aliases = ["apps:ls"]; - - @ProjectGuard() - async run() { - const { flags } = this.parse(ListCommand); - - try { - const apps = new Apps(getProjectConfig()); - let firstBatch = true; - let pageToken = "1"; - const pageSize = flags.size; - const view: CommonPB.View = CommonPB.View.BASIC; - - // while (true) { - // Get a list - const result = await apps.listApps({ pageSize, pageToken, view }); - - const list = result.apps; - pageToken = result.nextPageToken; - - /** - * @todo Uncomment when pagination is applied in backend. - * - * if (list.length > 0 && !firstBatch) { - const answer: any = await inquirer.prompt([ - {name: "q", message: "More", type: "confirm"} - ]); - - if (!answer.q) break; - } - */ - - // if (list.length < 1) break; - - const showTable = (showHeader: boolean, data: App[]) => { - CliUx.ux.table( - data as any, - { - ref: { minWidth: 15 }, - name: { header: "Name", minWidth: 15 }, - projectId: { - header: "Project ID", - minWidth: 15, - get: (row: Record) => - row.intentsEngineConfig?.projectId || "N/A" - }, - voice: { - header: "Voice", - minWidth: 20, - get: (row) => row.speechConfig?.voice || "N/A" - }, - welcomeIntentId: { - header: "Welcome Intent ID", - minWidth: 15, - get: (row) => row.intentsEngineConfig?.welcomeIntentId || "N/A" - } - }, - { "no-header": !showHeader } - ); - }; - - showTable(firstBatch, list); - - firstBatch = false; - // if (!pageToken) break; - // } - } catch (e) { - throw new CLIError(e.message); - } - } -} diff --git a/mods/ctl/src/commands/apps/update.ts b/mods/ctl/src/commands/apps/update.ts deleted file mode 100644 index ec475b691..000000000 --- a/mods/ctl/src/commands/apps/update.ts +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { getProjectConfig } from "../../config"; -import { ProjectGuard } from "../../decorators/project_guard"; -import { voices } from "../../data/voices"; - -const Apps = require("@fonoster/apps"); -const Secrets = require("@fonoster/secrets"); -const inquirer = require("inquirer"); - -const validator = (value?: string, message = "This field is required") => - Boolean(value?.trim()?.length) || message; - -export default class UpdateCommand extends Command { - static args = [{ name: "ref" }]; - static description = `update a new Fonoster App - ... - Update a new Fonoster App - `; - - @ProjectGuard() - async run() { - try { - const { args } = this.parse(UpdateCommand); - - if (!args.ref) - throw new CLIError( - "Please provide the reference of your Fonoster Application" - ); - - const { secrets: response } = await new Secrets( - getProjectConfig() - ).listSecrets({ - pageSize: 25, - pageToken: "1" - }); - - const secrets = response.map(({ name }) => name) || []; - - const appsManager = new Apps(getProjectConfig()); - const app = await appsManager.getApp(args.ref); - - if (!app) throw new CLIError("App not found"); - - const answers = await inquirer.prompt([ - { - name: "name", - message: "Application Name", - type: "input", - default: app.name, - validate: (value: string) => - validator( - value, - "You must enter a name for your Application, try something friendly." - ) - }, - { - name: "speechConfig.voice", - message: "Voice name", - type: "list", - default: app.speechConfig.voice, - choices: voices, - validate: (value: string) => - validator(value, "You must select a voice") - }, - { - name: "speechConfig.secretName", - message: "Speech Config Secret", - type: "list", - choices: secrets, - default: app.speechConfig.secretName, - validate: (value: string) => - validator(value, "You must select a Secret") - }, - { - name: "intentsEngineConfig.welcomeIntentId", - message: "Type the welcome intent ID (e.g. WELCOME)", - type: "input", - default: app.intentsEngineConfig.welcomeIntentId - }, - { - name: "engine", - message: "Select Intents Engine Type", - type: "list", - choices: ["DialogflowES"], - validate: (value: string) => - validator(value, "You must select a engine") - }, - { - name: "intentsEngineConfig.projectId", - message: "Type a project ID", - type: "input", - default: app.intentsEngineConfig.projectId, - validate: (value: string) => - validator( - value, - "You must enter a project ID for your Application." - ) - }, - { - name: "intentsEngineConfig.secretName", - message: "Intents Engine Secret", - type: "list", - choices: secrets, - default: app.intentsEngineConfig.secretName, - validate: (value: string) => - validator(value, "You must select a Secret") - }, - // Disabled until we add support for DialogFlow CX - /* - { - name: "intentsEngineConfig.agent", - message: "Type a agent", - type: "input", - default: app.intentsEngineConfig.agent, - when: (answers) => answers.engine === "DialogflowES", - validate: (value: string) => - validator(value, "You must enter a agent for your Application.") - }, - { - name: "intentsEngineConfig.location", - message: "Type a location", - type: "input", - default: app.intentsEngineConfig.location, - when: (answers) => answers.engine === "DialogflowES", - validate: (value: string) => - validator(value, "You must enter a location for your Application.") - }, - */ - { - name: "showAdvanceOptions", - message: "Show advance options?", - type: "confirm", - default: true - }, - { - name: "initialDtmf", - message: "Initial DTMF (optional)", - type: "input", - default: app.initialDtmf, - when: (answers) => answers.showAdvanceOptions, - validate: (value: string) => { - const regex = /^[0-9*#]*$/; - - if (value && !regex.test(value)) { - return "You must enter a valid DTMF. It’s a string that allows 1234567890#*"; - } - - return true; - } - }, - { - name: "enableEvents", - message: "Enable Events", - type: "confirm", - default: app.enableEvents, - when: (answers) => answers.showAdvanceOptions - }, - { - name: "activationIntentId", - message: "Type the activation intent ID (optional)", - type: "input", - default: app.activationIntentId, - when: (answers) => answers.showAdvanceOptions - }, - { - name: "activationTimeout", - message: "Type the activation timeout (e.g. 15000)", - type: "input", - default: app.activationTimeout, - when: (answers) => answers.showAdvanceOptions, - validate: (value: string) => { - const regex = /^[0-9]*$/; - - if (value && !regex.test(value)) { - return "You must enter a valid timeout. It’s a number in milliseconds"; - } - - return true; - } - }, - { - name: "interactionTimeout", - message: "Type the interaction timeout (e.g. 10000)", - type: "input", - default: app.interactionTimeout, - when: (answers) => answers.showAdvanceOptions, - validate: (value: string) => { - const regex = /^[0-9]*$/; - - if (value && !regex.test(value)) { - return "You must enter a valid timeout. It’s a number in milliseconds"; - } - - return true; - } - }, - { - name: "transferConfig.message", - message: - "Type a transfer message (e.g. Please wait while we transfer you)", - type: "input", - default: app.transferConfig.message, - when: (answers) => answers.showAdvanceOptions - }, - { - name: "intentsEngineConfig.emulateTelephonyPlatform", - message: "Emulate Telephony Platform", - type: "confirm", - default: app.intentsEngineConfig.emulateTelephonyPlatform, - when: (answers) => answers.showAdvanceOptions - } - ]); - - const confirmPrompt = await inquirer.prompt([ - { - name: "confirm", - message: "Ready to update your App?", - type: "confirm" - } - ]); - - if (!confirmPrompt.confirm) return console.log("Aborted"); - - CliUx.ux.action.start(`Updating App ${answers.name}`); - - const apps = new Apps(getProjectConfig()); - - delete answers.showAdvanceOptions; - delete answers.engine; - - answers.ref = args.ref; - - const result = await apps.updateApp(answers); - - await CliUx.ux.wait(1000); - CliUx.ux.action.stop(`App ${result.ref} updated`); - } catch (e) { - CliUx.ux.action.stop(); - throw new CLIError(e.code === 9 ? "This App already exist" : e.message); - } - } -} diff --git a/mods/ctl/src/commands/auth/login.ts b/mods/ctl/src/commands/auth/login.ts deleted file mode 100644 index 19ccd61f8..000000000 --- a/mods/ctl/src/commands/auth/login.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { setConfig } from "../../config"; - -const Projects = require("@fonoster/projects"); -const inquirer = require("inquirer"); - -export default class extends Command { - static description = "log in to a Fonoster deployment"; - - async run() { - console.log("Access your Fonoster infrastructure"); - console.log("Press ^C at any time to quit."); - - const answers: any = await inquirer.prompt([ - { - name: "endpoint", - message: "api endpoint", - type: "input", - default: "api.fonoster.io" - }, - { - name: "accessKeyId", - message: "access key id", - type: "input" - }, - { - name: "accessKeySecret", - message: "access key token", - mask: true, - type: "password" - }, - { - name: "confirm", - message: "ready?", - type: "confirm" - } - ]); - - if (!answers.confirm) { - console.log("Aborted"); - } else { - try { - CliUx.ux.action.start(`Accessing endpoint ${answers.endpoint}`); - - try { - const projects = new Projects(answers); - await projects.listProjects(); - answers.confirm = void 0; - setConfig(answers); - await CliUx.ux.wait(1000); - CliUx.ux.action.stop("Done"); - } catch (e) { - console.error(e.message); - await CliUx.ux.wait(1000); - CliUx.ux.action.stop("Invalid credentials or endpoint"); - } - } catch (e) { - CliUx.ux.action.stop(); - throw new CLIError(e.message); - } - } - } -} diff --git a/mods/ctl/src/commands/auth/logout.ts b/mods/ctl/src/commands/auth/logout.ts deleted file mode 100644 index 2b91589d5..000000000 --- a/mods/ctl/src/commands/auth/logout.ts +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { join } from "path"; -import { homedir } from "os"; - -const BASE_DIR = join(homedir(), ".fonoster"); -const fs = require("fs"); - -export default class extends Command { - static description = "log out from a fonoster deployment"; - - async run() { - CliUx.ux.action.start(`Login out`); - if (fs.existsSync(BASE_DIR)) { - try { - fs.rmSync(BASE_DIR, {recursive: true}); - await CliUx.ux.wait(1000); - } catch (e) { - CliUx.ux.action.stop(); - throw new CLIError(e.message); - } - } - CliUx.ux.action.stop("Done"); - } -} diff --git a/mods/ctl/src/commands/bug.ts b/mods/ctl/src/commands/bug.ts index a26d901e1..0baf13b16 100644 --- a/mods/ctl/src/commands/bug.ts +++ b/mods/ctl/src/commands/bug.ts @@ -1,5 +1,6 @@ +/* eslint-disable import/no-unresolved */ /* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) * http://github.com/fonoster/fonoster * * This file is part of Fonoster @@ -16,19 +17,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import "../config"; -import { CliUx } from "@oclif/core"; -import { Command } from "@oclif/command"; +import { Command } from "@oclif/core"; -export default class extends Command { - static description = `start a bug report 🐞 - ... - Opens github issues with a predefine bug template - `; +export default class Bug extends Command { + static override description = "report a bug to the development team 🐞"; + static override examples = ["<%= config.bin %> <%= command.id %>"]; - async run() { - await CliUx.ux.open( - "https://github.com/fonoster/fonoster/issues/new?assignees=&labels=&template=bug_report.md&title=" - ); + public async run(): Promise { + const link = + " https://github.com/fonoster/fonoster/issues/new?assignees=&labels=bug&projects=&template=bug_report.yaml&title=%5BBUG%5D%3A+"; + this.log(`Please report bugs to the link below:\n${link}`); } } diff --git a/mods/ctl/src/commands/domains/create.ts b/mods/ctl/src/commands/domains/create.ts deleted file mode 100644 index eef71d514..000000000 --- a/mods/ctl/src/commands/domains/create.ts +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CommonPB } from "@fonoster/domains"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Numbers = require("@fonoster/numbers"); -const Domains = require("@fonoster/domains"); -const inquirer = require("inquirer"); -const view: CommonPB.View = CommonPB.View.BASIC; - -export default class CreateCommand extends Command { - static description = `create a new Fonoster Domain - ... - Create a new Fonoster Domain - `; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - console.log("This utility will help you create a new Fonoster Domain"); - console.log("Press ^C at any time to quit."); - - const numbers = new Numbers(getProjectConfig()); - const result = await numbers.listNumbers({ - pageSize: 20, - pageToken: "1", - view - }); - const nums = result.numbers.map((n: any) => { - return { - value: n.ref, - name: n.e164Number - }; - }); - nums.unshift({ - value: "none", - name: "none" - }); - - const answers = await inquirer.prompt([ - { - name: "name", - message: "friendly name", - type: "input" - }, - { - name: "domainUri", - message: "domain uri (e.g acme)", - type: "input" - }, - { - name: "egressNumberRef", - message: "egress number", - type: "list", - choices: nums, - default: "none" - }, - { - name: "egressRule", - message: "egress rule", - type: "input", - default: ".*" - }, - /* { - name: 'accessDeny', - message: 'access deny list', - type: 'input', - default: '0.0.0.0/1' - }, - { - name: 'accessAllow', - message: 'access allow list', - type: 'input' - },*/ - { - name: "confirm", - message: "ready?", - type: "confirm" - } - ]); - - if (!answers.confirm) { - console.log("Aborted"); - } else { - try { - const accessDeny = answers.accessDeny; - const accessAllow = answers.accessAllow; - answers.accessDeny = accessDeny ? accessDeny.split(",") : []; - answers.accessAllow = accessAllow ? accessAllow.split(",") : []; - if (!answers.egressNumberRef || answers.egressNumberRef === "none") { - delete answers.egressRule; - delete answers.egressNumberRef; - } - - CliUx.ux.action.start(`Creating Domain ${answers.name}`); - - const domains = new Domains(getProjectConfig()); - const domain = await domains.createDomain(answers); - await CliUx.ux.wait(1000); - - CliUx.ux.action.stop(domain.ref); - } catch (e) { - CliUx.ux.action.stop(); - if (e.code === 9) { - throw new CLIError("This Domain already exist"); - } else { - throw new CLIError(e.message); - } - } - } - } -} diff --git a/mods/ctl/src/commands/domains/delete.ts b/mods/ctl/src/commands/domains/delete.ts deleted file mode 100644 index e8b126143..000000000 --- a/mods/ctl/src/commands/domains/delete.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Command from "../../base/delete"; -import { CLIError } from "@oclif/errors"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Domains = require("@fonoster/domains"); - -export default class DeleteCommand extends Command { - static description = "delete a Fonoster Domain"; - static args = [{ name: "ref" }]; - static aliases = ["domains:del", "domains:rm"]; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - try { - await super.deleteResource( - new Domains(getProjectConfig()), - "deleteDomain" - ); - } catch (e) { - if (e.code === 9) { - throw new CLIError( - "unable to delete: first ensure there are no Agents under this Fonoster Domain" - ); - } else { - throw new CLIError(e.message); - } - } - } -} diff --git a/mods/ctl/src/commands/domains/get.ts b/mods/ctl/src/commands/domains/get.ts deleted file mode 100644 index 5f5d4cd89..000000000 --- a/mods/ctl/src/commands/domains/get.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { render } from "prettyjson"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Domains = require("@fonoster/domains"); -const moment = require("moment"); - -export default class GetCommand extends Command { - static description = "get a Fonoster Domain"; - static args = [{ name: "ref" }]; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - const { args } = this.parse(GetCommand); - - try { - const domains = new Domains(getProjectConfig()); - CliUx.ux.action.start(`Getting domain ${args.ref}`); - const domain = await domains.getDomain(args.ref); - console.log("geting domain: "); - - const allow = - domain.accessDeny.length > 0 ? domain.accessDeny.join(",") : "None"; - - const deny = - domain.accessAllow.length > 0 ? domain.accessAllow.join(",") : "None"; - - const jsonObj = { - Name: domain.name, - "Domain URI": domain.domainUri, - "Egress Rule": domain.egressRule || "None", - "Egress Number Ref": domain.egressNumberRef || "None", - "Access Deny List": deny, - "Access Allow List": allow, - Created: moment(domain.createTime).fromNow(), - Updated: moment(domain.updateTime).fromNow() - }; - - await CliUx.ux.wait(1000); - CliUx.ux.action.stop(""); - console.log(render(jsonObj, { noColor: true })); - } catch (e) { - throw new CLIError(e.message); - } - } -} diff --git a/mods/ctl/src/commands/domains/list.ts b/mods/ctl/src/commands/domains/list.ts deleted file mode 100644 index abcac80b0..000000000 --- a/mods/ctl/src/commands/domains/list.ts +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CommonPB } from "@fonoster/domains"; -import { CLIError } from "@oclif/errors"; -import { Command, flags as oclifFlags } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { Domain } from "@fonoster/domains"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Domains = require("@fonoster/domains"); -const inquirer = require("inquirer"); - -export default class ListCommand extends Command { - static description = `list all Fonoster Domains you have access to - ... - List all Fonoster Domains you have access to - `; - static flags = { - size: oclifFlags.integer({ - char: "s", - default: 25, - description: "number of result per page" - }) - }; - static aliases = ["domains:ls"]; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - const { flags } = this.parse(ListCommand); - try { - const domains = new Domains(getProjectConfig()); - let firstBatch = true; - let pageToken = "1"; - const pageSize = flags.size; - const view: CommonPB.View = CommonPB.View.BASIC; - while (true) { - // Get a list - const result = await domains.listDomains({ pageSize, pageToken, view }); - const list = result.domains; - pageToken = result.nextPageToken; - - // Dont ask this if is the first time or empty data - if (list.length > 0 && !firstBatch) { - const answer: any = await inquirer.prompt([ - { name: "q", message: "More", type: "confirm" } - ]); - if (!answer.q) break; - } - - if (list.length < 1) break; - - const showTable = (showHeader: boolean, data: Domain[]) => { - CliUx.ux.table( - data as any, - { - ref: { minWidth: 15 }, - name: { header: "Name", minWidth: 15 }, - domainUri: { header: "Domain URI", minWidth: 15 }, - egressRule: { - header: "Egress Rule", - minWidth: 15, - get: (row) => (row.egressNumberRef ? row.egressRule : "na") - }, - egressNumberRef: { - header: "Egress Number Ref", - minWidth: 15 - } - }, - { "no-header": !showHeader } - ); - }; - showTable(firstBatch, list); - - firstBatch = false; - if (!pageToken) break; - } - } catch (e) { - throw new CLIError(e.message); - } - } -} diff --git a/mods/ctl/src/commands/domains/update.ts b/mods/ctl/src/commands/domains/update.ts deleted file mode 100644 index 5e3dc0a3b..000000000 --- a/mods/ctl/src/commands/domains/update.ts +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CommonPB } from "@fonoster/domains"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Numbers = require("@fonoster/numbers"); -const Domains = require("@fonoster/domains"); -const inquirer = require("inquirer"); -const view: CommonPB.View = CommonPB.View.BASIC; - -export default class UpdateCommand extends Command { - static args = [{ name: "ref" }]; - static description = `update a Fonoster Domain - ... - Update a Fonoster Domain - `; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - console.log( - "This utility will help you update an existing Fonoster Domain" - ); - console.log("to help you get start quickly. Press ^C at any time to quit."); - - const { args } = this.parse(UpdateCommand); - const domains = new Domains(getProjectConfig()); - const numbers = new Numbers(getProjectConfig()); - - const domain = await domains.getDomain(args.ref); - - const result = await numbers.listNumbers({ - pageSize: 20, - pageToken: "1", - view - }); - const nums = result.numbers.map((n: any) => { - return { - value: n.ref, - name: n.e164Number - }; - }); - nums.unshift({ - value: "none", - name: "none" - }); - - const answers: any = await inquirer.prompt([ - { - name: "name", - message: "domain name", - type: "input", - default: domain.name - }, - { - name: "egressRule", - message: "egress rule", - type: "input", - default: domain.egressRule - }, - { - name: "egressNumberRef", - message: "egress number", - type: "list", - choices: nums, - default: "none" - }, - /* - { - name: "accessDeny", - message: "access deny list", - type: "input", - default: domain.accessDeny.join(",") - }, - { - name: "accessAllow", - message: "access allow list", - type: "input", - default: domain.accessAllow.join(",") - }, - */ - { - name: "confirm", - message: "ready?", - type: "confirm" - } - ]); - - answers.ref = args.ref; - - if (!answers.confirm) { - console.log("Aborted"); - } else { - try { - const accessDeny = answers.accessDeny; - const accessAllow = answers.accessAllow; - answers.accessDeny = accessDeny ? accessDeny.split(",") : []; - answers.accessAllow = accessAllow ? accessAllow.split(",") : []; - - CliUx.ux.action.start(`Updating domain ${answers.name}`); - - await domains.updateDomain(answers); - await CliUx.ux.wait(1000); - - CliUx.ux.action.stop("Done"); - } catch (e) { - CliUx.ux.action.stop(); - throw new CLIError(e.message); - } - } - } -} diff --git a/mods/ctl/src/commands/feedback.ts b/mods/ctl/src/commands/feedback.ts index 703ced748..bc2d82722 100644 --- a/mods/ctl/src/commands/feedback.ts +++ b/mods/ctl/src/commands/feedback.ts @@ -1,5 +1,6 @@ +/* eslint-disable import/no-unresolved */ /* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) * http://github.com/fonoster/fonoster * * This file is part of Fonoster @@ -16,19 +17,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import "../config"; -import { CliUx } from "@oclif/core"; -import { Command } from "@oclif/command"; +import { Command } from "@oclif/core"; -export default class extends Command { - static description = `let us know how we're doing +export default class Feedback extends Command { + static override description = `provide feedback on your experience ... Help us improve by providing some feedback `; + static override examples = ["<%= config.bin %> <%= command.id %>"]; - async run() { - await CliUx.ux.open( - "https://docs.google.com/forms/d/e/1FAIpQLSd1G2ahRYqkbksOvz7XhNHfSLepUh3KzRHsXh2HXfZr68nhtQ/viewform?vc=0&c=0&w=1&flr=0" + public async run(): Promise { + const link = + " https://docs.google.com/forms/d/e/1FAIpQLSd1G2ahRYqkbksOvz7XhNHfSLepUh3KzRHsXh2HXfZr68nhtQ/viewform?vc=0&c=0&w=1&flr=0"; + this.log( + `Please provide feedback on your experience by filling out the form below:\n${link}` ); } } diff --git a/mods/ctl/src/commands/numbers/create.ts b/mods/ctl/src/commands/numbers/create.ts deleted file mode 100644 index c35757ad6..000000000 --- a/mods/ctl/src/commands/numbers/create.ts +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { CommonPB } from "@fonoster/numbers"; -import { Provider } from "@fonoster/providers"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Providers = require("@fonoster/providers"); -const Numbers = require("@fonoster/numbers"); -const inquirer = require("inquirer"); - -export default class CreateCommand extends Command { - static description = `create a new Fonoster Number - ... - Create a new Fonoster Number - `; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - console.log("This utility will help you create a new Fonoster Number"); - console.log("Press ^C at any time to quit."); - - const view: CommonPB.View = CommonPB.View.BASIC; - try { - const response = await new Providers(getProjectConfig()).listProviders({ - pageSize: 25, - pageToken: "1" - }); - - interface objProvider { - name?: string; - value?: string; - } - - const providers = response.providers.map((p: Provider) => { - const obj: objProvider = {}; - obj.name = p.name; - obj.value = p.ref; - return obj; - }); - - if (providers.length === 0) { - throw new Error( - "before adding a Number you must create a Provider (trunk)" - ); - } - - const answers: any = await inquirer.prompt([ - { - name: "e164Number", - message: "number in E.164 format (e.g. +16471234567)", - type: "input" - }, - { - name: "providerRef", - message: "service provider", - type: "list", - choices: providers - }, - { - name: "aorLink", - message: "address of record", - type: "input", - default: null - } - ]); - - if (!answers.aorLink) { - const webhookPrompt = await inquirer.prompt([ - { - name: "webhook", - message: "webhook", - type: "input", - default: null - } - ]); - - answers.ingressInfo = {}; - answers.ingressInfo.webhook = webhookPrompt.webhook; - } - - const confirmPrompt = await inquirer.prompt([ - { - name: "confirm", - message: "ready?", - type: "confirm" - } - ]); - - answers.confirm = confirmPrompt.confirm; - - if (!answers.confirm) { - console.log("Aborted"); - } else { - CliUx.ux.action.start(`Creating Number ${answers.e164Number}`); - const numbers = new Numbers(getProjectConfig()); - const result = await numbers.createNumber(answers); - await CliUx.ux.wait(1000); - CliUx.ux.action.stop(result.ref); - } - } catch (e) { - CliUx.ux.action.stop(); - if (e.code === 9) { - throw new CLIError("This Number already exist"); - } else { - throw new CLIError(e.message); - } - } - } -} diff --git a/mods/ctl/src/commands/numbers/delete.ts b/mods/ctl/src/commands/numbers/delete.ts deleted file mode 100644 index a5cb8afaa..000000000 --- a/mods/ctl/src/commands/numbers/delete.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Command from "../../base/delete"; -import { CLIError } from "@oclif/errors"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Numbers = require("@fonoster/numbers"); - -export default class DeleteCommand extends Command { - static description = "delete a Fonoster Number"; - static args = [{ name: "ref" }]; - static aliases = ["numbers:del", "numbers:rm"]; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - try { - await super.deleteResource( - new Numbers(getProjectConfig()), - "deleteNumber" - ); - } catch (e) { - if (e.code === 9) { - throw new CLIError( - "unable to delete: please ensure no Domain is using this Fonoster Number" - ); - } else { - throw new CLIError(e.message); - } - } - } -} diff --git a/mods/ctl/src/commands/numbers/get.ts b/mods/ctl/src/commands/numbers/get.ts deleted file mode 100644 index dfd2b8c9f..000000000 --- a/mods/ctl/src/commands/numbers/get.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { render } from "prettyjson"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Numbers = require("@fonoster/numbers"); -const moment = require("moment"); - -export default class GetCommand extends Command { - static description = "get a Fonoster Number"; - static args = [{ name: "ref" }]; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - const { args } = this.parse(GetCommand); - - try { - const numbers = new Numbers(getProjectConfig()); - CliUx.ux.action.start(`Getting number ${args.ref}`); - const number = await numbers.getNumber(args.ref); - - const jsonObj = { - Ref: number.ref, - "Provider Ref": number.providerRef, - "E164 Number": number.e164Number, - "Address of Record": number.aorLink ? number.aorLink : "--", - Webhook: number.ingressInfo ? number.ingressInfo.webhook : "--", - Created: moment(number.createTime).fromNow(), - Updated: moment(number.updateTime).fromNow() - }; - - await CliUx.ux.wait(1000); - CliUx.ux.action.stop(""); - console.log(render(jsonObj, { noColor: true })); - } catch (e) { - throw new CLIError(e.message); - } - } -} diff --git a/mods/ctl/src/commands/numbers/list.ts b/mods/ctl/src/commands/numbers/list.ts deleted file mode 100644 index 87b3308ea..000000000 --- a/mods/ctl/src/commands/numbers/list.ts +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command, flags as oclifFlags } from "@oclif/command"; -import { CommonPB, Number } from "@fonoster/numbers"; -import { CliUx } from "@oclif/core"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Numbers = require("@fonoster/numbers"); -const inquirer = require("inquirer"); - -export default class ListCommand extends Command { - static description = `list all Fonoster Numbers you have access to - ... - List all Fonoster Numbers you have access to - `; - static flags = { - size: oclifFlags.integer({ - char: "s", - default: 25, - description: "number of result per page" - }) - }; - - static aliases = ["numbers:ls"]; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - const { flags } = this.parse(ListCommand); - try { - const numbers = new Numbers(getProjectConfig()); - let firstBatch = true; - let pageToken = "1"; - const pageSize = flags.size; - const view: CommonPB.View = CommonPB.View.BASIC; - while (true) { - // Get a list - const result: any = await numbers.listNumbers({ - pageSize, - pageToken, - view - }); - const list = result.numbers; - pageToken = result.nextPageToken; - - // Dont ask this if is the first time or empty data - if (list.length > 0 && !firstBatch) { - const answer: any = await inquirer.prompt([ - { name: "q", message: "More", type: "confirm" } - ]); - if (!answer.q) break; - } - - if (list.length < 1) break; - - const showTable = (showHeader: boolean, data: number[]) => { - CliUx.ux.table( - data, - { - ref: { minWidth: 15 }, - providerRef: { header: "Provider Ref", minWidth: 15 }, - e164Number: { header: "E164 Number", minWidth: 15 }, - aorLink: { - header: "Address of Record", - minWidth: 15, - get: (row) => (row["aorLink"] ? row["aorLink"] : "--") - }, - ingressInfo: { - header: "Webhook", - minWidth: 15, - get: (row: any) => - row["ingressInfo"] ? row["ingressInfo"].webhook : "--" - } - }, - { "no-header": !showHeader } - ); - }; - showTable(firstBatch, list); - - firstBatch = false; - if (!pageToken) break; - } - } catch (e) { - throw new CLIError(e.message); - } - } -} diff --git a/mods/ctl/src/commands/numbers/update.ts b/mods/ctl/src/commands/numbers/update.ts deleted file mode 100644 index e6138497c..000000000 --- a/mods/ctl/src/commands/numbers/update.ts +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { getProjectConfig } from "../../config"; -import { ProjectGuard } from "../../decorators/project_guard"; - -const Numbers = require("@fonoster/numbers"); -const inquirer = require("inquirer"); - -export class UpdateCommand extends Command { - static description = `update a Fonoster Number - ... - Update a Fonoster Number - `; - - static args = [{ name: "ref" }]; - - @ProjectGuard() - async run() { - console.log( - "This utility will help you update an existing Fonoster Number" - ); - console.log("Press ^C at any time to quit."); - - const { args } = this.parse(UpdateCommand); - - if (!args.ref) { - CliUx.ux.action.stop(); - throw new CLIError("You must provide a Number ref before continuing"); - } - - const numbers = new Numbers(getProjectConfig()); - - const answers = await inquirer.prompt([ - { - name: "aorLink", - message: "address of record", - type: "input", - default: null - } - ]); - - if (!answers.aorLink) { - const webhookPrompt = await inquirer.prompt([ - { - name: "webhook", - message: "webhook", - type: "input", - default: null - } - ]); - - answers.ingressInfo = {}; - answers.ingressInfo.webhook = webhookPrompt.webhook; - } - - const confirmPrompt = await inquirer.prompt([ - { - name: "confirm", - message: "ready?", - type: "confirm" - } - ]); - - answers.confirm = confirmPrompt.confirm; - answers.ref = args.ref; - - if (!answers.confirm) { - console.log("Aborted"); - } else { - try { - const accessDeny = answers.accessDeny; - const accessAllow = answers.accessAllow; - answers.accessDeny = accessDeny ? accessDeny.split(",") : []; - answers.accessAllow = accessAllow ? accessAllow.split(",") : []; - - CliUx.ux.action.start("Updating number"); - - await numbers.updateNumber(answers); - await CliUx.ux.wait(1000); - - CliUx.ux.action.stop("Done"); - } catch (e) { - CliUx.ux.action.stop(); - throw new CLIError(e.message); - } - } - } -} diff --git a/mods/ctl/src/commands/projects/create.ts b/mods/ctl/src/commands/projects/create.ts deleted file mode 100644 index 6a5ed6745..000000000 --- a/mods/ctl/src/commands/projects/create.ts +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -const Projects = require("@fonoster/projects"); -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -const inquirer = require("inquirer"); - -export default class extends Command { - static description = `create a new Fonoster Project - ... - Create a new Fonoster Project - `; - - async run() { - console.log("This utility will help you create a new Fonoster Project"); - console.log("Press ^C at any time to quit."); - - const answers: any = await inquirer.prompt([ - { - name: "name", - message: "friendly name", - type: "input" - }, - { - name: "allowExperiments", - message: "enable experimental APIs", - type: "confirm" - }, - { - name: "confirm", - message: "ready?", - type: "confirm" - } - ]); - - if (!answers.confirm) { - console.log("Aborted"); - } else { - try { - CliUx.ux.action.start(`Creating Project ${answers.name}`); - const projects = new Projects(); - const project = await projects.createProject(answers); - await CliUx.ux.wait(1000); - CliUx.ux.action.stop(project.ref); - } catch (e) { - CliUx.ux.action.stop(); - if (e.code === 9) { - throw new CLIError("This Project already exist"); - } else { - throw new CLIError(e.message); - } - } - } - } -} diff --git a/mods/ctl/src/commands/projects/delete.ts b/mods/ctl/src/commands/projects/delete.ts deleted file mode 100644 index f162c5b5d..000000000 --- a/mods/ctl/src/commands/projects/delete.ts +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Command from "../../base/delete"; -const Projects = require("@fonoster/projects"); -import { isDefaultProject, unsetDefaultProject } from "../../config"; - -export default class extends Command { - static description = "delete a Fonoster Project"; - static args = [{ name: "ref" }]; - static aliases = ["projects:del", "projects:rm"]; - - async run() { - await super.deleteResource(new Projects(), "deleteProject"); - if (isDefaultProject(this.ref)) { - unsetDefaultProject(); - } - } -} diff --git a/mods/ctl/src/commands/projects/get.ts b/mods/ctl/src/commands/projects/get.ts deleted file mode 100644 index a4c8d770e..000000000 --- a/mods/ctl/src/commands/projects/get.ts +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { render } from "prettyjson"; - -const Projects = require("@fonoster/projects"); -const moment = require("moment"); - -export default class GetCommand extends Command { - static description = "get a Fonoster Project"; - static args = [{ name: "ref" }]; - - async run() { - const { args } = this.parse(GetCommand); - - try { - const projects = new Projects(); - CliUx.ux.action.start(`Getting Project ${args.ref}`); - const p = await projects.getProject(args.ref); - - const jsonObj = { - Name: p.name, - Ref: p.ref, - "Access Key Id": p.accessKeyId, - "Access Key Secret": p.accessKeySecret, - "Allow Experiments": p.allowExperiments, - Created: moment(p.createTime).fromNow(), - Updated: moment(p.updateTime).fromNow() - }; - - await CliUx.ux.wait(1000); - CliUx.ux.action.stop(""); - console.log(render(jsonObj, { noColor: true })); - } catch (e) { - throw new CLIError(e.message); - } - } -} diff --git a/mods/ctl/src/commands/projects/list.ts b/mods/ctl/src/commands/projects/list.ts deleted file mode 100644 index ea5d1dec9..000000000 --- a/mods/ctl/src/commands/projects/list.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { isDefaultProject } from "../../config"; -const Projects = require("@fonoster/projects"); - -export default class ListCommand extends Command { - static description = `list all Fonoster Projects you have access to - ... - List all Fonoster Projects you have access to - `; - static aliases = ["projects:ls"]; - - async run() { - try { - const projects = new Projects(); - // Gets the list - const result = await projects.listProjects({}); - const projs = result.projects?.map(p => Object.assign(p, {name: isDefaultProject(p.ref) ? `${p.name} *` : p.name})); - CliUx.ux.table(projs, { - accessKeyId: { header: "Ref / Access Key Id", minWidth: 30 }, - name: { header: "Name", minWidth: 12 } - }); - } catch (e) { - throw new CLIError(e.message); - } - } -} diff --git a/mods/ctl/src/commands/projects/renew.ts b/mods/ctl/src/commands/projects/renew.ts deleted file mode 100644 index dedb670cf..000000000 --- a/mods/ctl/src/commands/projects/renew.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -const Projects = require("@fonoster/projects"); - -export default class UpdateCommand extends Command { - static args = [{ name: "ref" }]; - static description = `renew the credentials of a Fonoster Project - ... - Renew the credentials of a Fonoster Project - `; - async run() { - const { args } = this.parse(UpdateCommand); - - try { - const projects = new Projects(); - const project = await projects.renewAccessKeySecret({ ref: args.ref }); - CliUx.ux.action.start(`Renewing credentials for ${args.ref}`); - await CliUx.ux.wait(1000); - - CliUx.ux.action.stop(project.accessKeySecret); - } catch (e) { - CliUx.ux.action.stop(); - throw new CLIError(e.message); - } - } -} diff --git a/mods/ctl/src/commands/projects/use.ts b/mods/ctl/src/commands/projects/use.ts deleted file mode 100644 index eef2e08ee..000000000 --- a/mods/ctl/src/commands/projects/use.ts +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { getConfig, setConfig } from "../../config"; - -const Projects = require("@fonoster/projects"); - -export default class UpdateCommand extends Command { - static args = [{ name: "ref" }]; - static description = `set a default Fonoster Project - ... - Set a default Fonoster Project - `; - async run() { - const { args } = this.parse(UpdateCommand); - try { - const projects = new Projects(); - const project = await projects.getProject(args.ref); - CliUx.ux.action.start(`Setting default Project to ${args.ref}`); - - const config = getConfig(); - const { accessKeyId, accessKeySecret, endpoint } = config; - setConfig({ - endpoint, - accessKeyId, - accessKeySecret, - defaultProject: { - name: project.name, - accessKeyId: project.accessKeyId, - accessKeySecret: project.accessKeySecret - } - }); - - await CliUx.ux.wait(1000); - CliUx.ux.action.stop("Done"); - } catch (e) { - CliUx.ux.action.stop(); - throw new CLIError(e.message); - } - } -} diff --git a/mods/ctl/src/commands/providers/create.ts b/mods/ctl/src/commands/providers/create.ts deleted file mode 100644 index 2a6a8cbf5..000000000 --- a/mods/ctl/src/commands/providers/create.ts +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Providers = require("@fonoster/providers"); -const inquirer = require("inquirer"); - -export default class CreateCommand extends Command { - static description = `create a new Fonoster Provider (trunk) - ... - Create a new Fonoster Provider - `; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - console.log("This utility will help you create a new Fonoster Provider"); - console.log("Press ^C at any time to quit."); - - const answers = await inquirer.prompt([ - { - name: "name", - message: "friendly name", - type: "input" - }, - { - name: "username", - message: "username", - type: "input" - }, - { - name: "secret", - message: "secret", - type: "password", - mask: true - }, - { - name: "host", - message: "host", - type: "input" - }, - { - name: "transport", - message: "transport", - type: "list", - choices: ["tcp", "udp"], - default: "tcp" - }, - { - name: "register", - message: "enable registration?", - type: "confirm", - }, - { - name: "expires", - message: "sip registration refresh (in seconds)", - type: "input", - validate: (answer: number) => { - if (isNaN(answer)) { - return "please enter a number"; - } - return true; - }, - default: 600 - }, - { - name: "confirm", - message: "ready?", - type: "confirm" - } - ]); - - if (!answers.confirm) { - console.log("Aborted"); - } else { - try { - CliUx.ux.action.start(`Creating Provider ${answers.name}`); - - const providers = new Providers(getProjectConfig()); - const provider = await providers.createProvider(answers); - await CliUx.ux.wait(1000); - - CliUx.ux.action.stop(provider.ref); - } catch (e) { - CliUx.ux.action.stop(); - if (e.code === 9) { - throw new CLIError("This Provider already exist"); - } else { - throw new CLIError(e.message); - } - } - } - } -} diff --git a/mods/ctl/src/commands/providers/delete.ts b/mods/ctl/src/commands/providers/delete.ts deleted file mode 100644 index 2c1144569..000000000 --- a/mods/ctl/src/commands/providers/delete.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Command from "../../base/delete"; -import { CLIError } from "@oclif/errors"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Providers = require("@fonoster/providers"); - -export default class DeleteCommand extends Command { - static description = "delete a Fonoster Provider"; - static args = [{ name: "ref" }]; - static aliases = ["providers:del", "providers:rm"]; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - try { - await super.deleteResource( - new Providers(getProjectConfig()), - "deleteProvider" - ); - } catch (e) { - if (e.code === 9) { - throw new CLIError( - "unable to delete: first ensure there are no Numbers under this Fonoster Provider" - ); - } else { - throw new CLIError(e.message); - } - } - } -} diff --git a/mods/ctl/src/commands/providers/get.ts b/mods/ctl/src/commands/providers/get.ts deleted file mode 100644 index 7db94fc9b..000000000 --- a/mods/ctl/src/commands/providers/get.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; - -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { render } from "prettyjson"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Providers = require("@fonoster/providers"); -const moment = require("moment"); - -export default class GetCommand extends Command { - static description = "get a Fonoster Provider"; - static args = [{ name: "ref" }]; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - const { args } = this.parse(GetCommand); - - try { - const providers = new Providers(getProjectConfig()); - CliUx.ux.action.start(`getting provider ${args.ref}`); - const provider = await providers.getProvider(args.ref); - - const jsonObj = { - Ref: provider.ref, - Name: provider.name, - Username: provider.username || "(static)", - Host: provider.host, - Transport: provider.transport, - "SIP Registration Refresh": provider.expires, - Register: provider.register, - Created: moment(provider.createTime).fromNow(), - Updated: moment(provider.updateTime).fromNow() - }; - - await CliUx.ux.wait(1000); - CliUx.ux.action.stop(""); - console.log(render(jsonObj, { noColor: true })); - } catch (e) { - throw new CLIError(e.message); - } - } -} diff --git a/mods/ctl/src/commands/providers/list.ts b/mods/ctl/src/commands/providers/list.ts deleted file mode 100644 index 5d5ddb2ef..000000000 --- a/mods/ctl/src/commands/providers/list.ts +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command, flags as oclifFlags } from "@oclif/command"; -import { CommonPB } from "@fonoster/providers"; -import { CliUx } from "@oclif/core"; -import { Provider } from "@fonoster/providers"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Providers = require("@fonoster/providers"); -const inquirer = require("inquirer"); - -export default class ListCommand extends Command { - static description = `list all Fonoster Providers you have access to - ... - List all Fonoster Providers you have access to - `; - static flags = { - size: oclifFlags.integer({ - char: "s", - default: 25, - description: "provider of result per page" - }) - }; - - static aliases = ["providers:ls"]; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - const { flags } = this.parse(ListCommand); - try { - const providers = new Providers(getProjectConfig()); - let firstBatch = true; - let pageToken = "1"; - const pageSize = flags.size; - const view: CommonPB.View = CommonPB.View.BASIC; - while (true) { - // Get a list - const result = await providers.listProviders({ - pageSize, - pageToken, - view - }); - const list = result.providers; - pageToken = result.nextPageToken; - - // Dont ask this if is the first time or empty data - if (list.length > 0 && !firstBatch) { - const answer: any = await inquirer.prompt([ - { name: "q", message: "More", type: "confirm" } - ]); - if (!answer.q) break; - } - - if (list.length < 1) break; - - const showTable = (showHeader: boolean, data: Provider[]) => { - CliUx.ux.table( - data as any, - { - ref: { minWidth: 13 }, - name: { header: "Name", minWidth: 13 }, - username: { - header: "Username", - minWidth: 13, - get: (row) => row.username || "(static)" - }, - host: { header: "Host", minWidth: 18 }, - transport: { header: "Transport", minWidth: 13 }, - register: { header: "Register", minWidth: 13 }, - // expires: {header: "SIP Registration Refresh", minWidth: 13} - }, - { "no-header": !showHeader } - ); - }; - showTable(firstBatch, list); - - firstBatch = false; - if (!pageToken) break; - } - } catch (e) { - throw new CLIError(e.message); - } - } -} diff --git a/mods/ctl/src/commands/providers/update.ts b/mods/ctl/src/commands/providers/update.ts deleted file mode 100644 index 71fe66408..000000000 --- a/mods/ctl/src/commands/providers/update.ts +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import "../../config"; -import { CLIError } from "@oclif/errors"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { getProjectConfig, hasProjectConfig } from "../../config"; - -const Providers = require("@fonoster/providers"); -const inquirer = require("inquirer"); - -export default class UpdateCommand extends Command { - static args = [{ name: "ref" }]; - static description = `update a Fonoster Provider - ... - Update a Fonoster Provider - `; - - async run() { - if (!hasProjectConfig()) { - throw new CLIError("you must set a default project"); - } - const { args } = this.parse(UpdateCommand); - - if (!args.ref) - throw new Error("please provide the reference of your Fonoster Provider"); - - console.log( - "This utility will help you update an existing Fonoster Provider" - ); - console.log("Press ^C at any time to quit."); - - const providers = new Providers(getProjectConfig()); - const provider = await providers.getProvider(args.ref); - - const answers: any = await inquirer.prompt([ - { - name: "name", - message: "friendly name", - type: "input", - default: provider.name - }, - { - name: "username", - message: "username", - type: "input", - default: provider.username - }, - { - name: "secret", - message: "secret", - type: "password", - mask: true - }, - { - name: "host", - message: "host", - type: "input", - default: provider.host - }, - { - name: "transport", - message: "host", - type: "list", - choices: ["tcp", "udp"], - default: provider.transport - }, - { - name: "register", - message: "enable registration?", - type: "confirm", - default: provider.register - }, - { - name: "expires", - message: "sip registration refresh (in seconds)", - type: "input", - default: provider.expires - }, - { - name: "confirm", - message: "ready?", - type: "confirm" - } - ]); - - answers.ref = args.ref; - - if (!answers.confirm) { - console.log("Aborted"); - } else { - try { - CliUx.ux.action.start(`Updating Provider ${answers.name}`); - - await providers.updateProvider(answers); - await CliUx.ux.wait(1000); - - CliUx.ux.action.stop("Done"); - } catch (e) { - CliUx.ux.action.stop(); - throw new CLIError(e.message); - } - } - } -} diff --git a/mods/ctl/src/commands/secrets/create.ts b/mods/ctl/src/commands/secrets/create.ts index 6c91930f1..60853e820 100644 --- a/mods/ctl/src/commands/secrets/create.ts +++ b/mods/ctl/src/commands/secrets/create.ts @@ -1,6 +1,7 @@ +/* eslint-disable import/no-unresolved */ /* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/plugin-funcs + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster * * This file is part of Fonoster * @@ -16,53 +17,50 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import "../../config"; -import { Command, flags } from "@oclif/command"; -import { CLIError } from "@oclif/errors"; -import { getProjectConfig } from "../../config"; -import { ProjectGuard } from "../../decorators/project_guard"; +import * as SDK from "@fonoster/sdk"; +import { CreateSecretRequest } from "@fonoster/types"; +import { confirm, input, password } from "@inquirer/prompts"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; +import errorHandler from "../../errorHandler"; -const getStdin = require("get-stdin-with-tty"); -const Secrets = require("@fonoster/secrets"); +export default class Create extends AuthenticatedCommand { + static override readonly description = + "add a new Secret to the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; -export default class CreateCommand extends Command { - static description = "create a Fonoster secret."; + public async run(): Promise { + this.log( + "This utility will help you add a new Secret to the active Workspace." + ); + this.log("Press ^C at any time to quit."); - static args = [{ name: "name" }]; - static flags = { - help: flags.help({ char: "h" }), - "from-literal": flags.string({ - char: "l", - description: "pass from literal" - }), - "from-stdin": flags.boolean({ char: "s", description: "pass from stdin" }) - }; + const answers = { + name: await input({ + message: "Name", + required: true + }), + secret: await password({ + message: "Secret" + }), + confirm: await confirm({ + message: "Ready?" + }) + }; - @ProjectGuard() - async run() { - const secretsManager = new Secrets(getProjectConfig()); - - const { args, flags } = this.parse(CreateCommand); - - const secret = flags["from-stdin"] - ? await getStdin() - : flags["from-literal"]; - - if (!args.name || !secret) { - throw new CLIError( - "Cant create a secret without a name or a secret-value. Type [secrets:create --help] for more information" - ); + if (!answers.confirm) { + this.log("Aborted!"); + return; } try { - const result = await secretsManager.createSecret({ - name: args.name, - secret - }); + const client = await this.createSdkClient(); + const secrets = new SDK.Secrets(client); + + await secrets.createSecret(answers as unknown as CreateSecretRequest); - console.log(result.name); + this.log("Done!"); } catch (e) { - throw new CLIError(e.message); + errorHandler(e, this.error.bind(this)); } } } diff --git a/mods/ctl/src/commands/secrets/delete.ts b/mods/ctl/src/commands/secrets/delete.ts index b3ca750df..80c2de77f 100644 --- a/mods/ctl/src/commands/secrets/delete.ts +++ b/mods/ctl/src/commands/secrets/delete.ts @@ -1,6 +1,7 @@ +/* eslint-disable import/no-unresolved */ /* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/plugin-funcs + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster * * This file is part of Fonoster * @@ -16,35 +17,27 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import "../../config"; -import { Command } from "@oclif/command"; -import { CliUx } from "@oclif/core"; -import { getProjectConfig } from "../../config"; -import { ProjectGuard } from "../../decorators/project_guard"; -import { CLIError } from "@oclif/errors"; +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; -const Secrets = require("@fonoster/secrets"); +export default class Delete extends AuthenticatedCommand { + static override readonly description = + "delete a Secret from the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the Secret reference", + required: true + }) + }; -export default class DeleteCommand extends Command { - static description = "remove Fonoster secret"; - static aliases = ["secrets:del", "secrets:rm"]; - static args = [{ name: "name" }]; - - @ProjectGuard() - async run() { - const { args } = this.parse(DeleteCommand); - const secretsManager = new Secrets(getProjectConfig()); - - if (!args.name) throw new CLIError("You must specify a secret name"); - - try { - CliUx.ux.action.start("Removing the secret..."); - - await secretsManager.deleteSecret(args.name); - await CliUx.ux.wait(1000); - CliUx.ux.action.stop("Done"); - } catch (e) { - console.error("Unable to remove!"); - } + public async run(): Promise { + const { args } = await this.parse(Delete); + const { ref } = args; + const client = await this.createSdkClient(); + const secrets = new SDK.Secrets(client); + await secrets.deleteSecret(ref); + this.log("Done!"); } } diff --git a/mods/ctl/src/commands/secrets/get.ts b/mods/ctl/src/commands/secrets/get.ts new file mode 100644 index 000000000..3a78938eb --- /dev/null +++ b/mods/ctl/src/commands/secrets/get.ts @@ -0,0 +1,57 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import cliui from "cliui"; +import moment from "moment"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; + +export default class Get extends AuthenticatedCommand { + static override readonly description = + "retrieve details of a Secret by reference"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "The Secret to show details about", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Get); + const client = await this.createSdkClient(); + const secrets = new SDK.Secrets(client); + + const response = await secrets.getSecret(args.ref); + + const ui = cliui({ width: 200 }); + + ui.div( + "APPLICATION DETAILS\n" + + "------------------\n" + + `NAME: \t${response.name}\n` + + `REF: \t${response.ref}\n` + + `CREATED: \t${moment(response.createdAt).format("YYYY-MM-DD HH:mm:ss")}\n` + + `UPDATED: \t${moment(response.updatedAt).format("YYYY-MM-DD HH:mm:ss")}` + ); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/secrets/list.ts b/mods/ctl/src/commands/secrets/list.ts index 4ed37b4f1..47cf2ebf6 100644 --- a/mods/ctl/src/commands/secrets/list.ts +++ b/mods/ctl/src/commands/secrets/list.ts @@ -1,6 +1,7 @@ +/* eslint-disable import/no-unresolved */ /* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/plugin-funcs + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster * * This file is part of Fonoster * @@ -16,56 +17,46 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import "../../config"; -import { Command, flags } from "@oclif/command"; -import { CLIError } from "@oclif/errors"; -import { ProjectGuard } from "../../decorators/project_guard"; -import { getProjectConfig } from "../../config"; -import type { Secret } from "@fonoster/secrets/dist/client/types"; - -// Using import will cause: Error: easy_table_1.default is not a constructor -const Table = require("easy-table"); -const Secrets = require("@fonoster/secrets"); - -export default class ListCommand extends Command { - static description = "list of the secrets you have access to"; - static aliases = ["secrets:ls"]; - static flags = { - size: flags.integer({ +import * as SDK from "@fonoster/sdk"; +import { Flags } from "@oclif/core"; +import cliui from "cliui"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; + +export default class List extends AuthenticatedCommand { + static override readonly description = + "display all Secrets in the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly flags = { + "page-size": Flags.string({ char: "s", - default: 25, - description: "secrets of result per page" + description: "the number of items to show", + default: "1000", + required: false }) }; - @ProjectGuard() - async run() { - const { flags } = this.parse(ListCommand); - const secretsManager = new Secrets(getProjectConfig()); - - try { - const pageSize = flags.size; - let pageToken = "1"; - - const { secrets, nextPageToken } = await secretsManager.listSecrets({ - pageSize, - pageToken - }); - - pageToken = nextPageToken; - - const table = new Table(); - - secrets.forEach((secret: Secret) => { - table.cell("Name", secret.name); - table.newRow(); - }); - - console.log( - secrets.length ? table.toString() : "You haven’t created a Secret yet." + public async run(): Promise { + const { flags } = await this.parse(List); + const client = await this.createSdkClient(); + const secrets = new SDK.Secrets(client); + const response = await secrets.listSecrets({ + pageSize: parseInt(flags["page-size"]) + }); + + const ui = cliui({ width: 100 }); + + ui.div( + { text: "REF", padding: [0, 0, 0, 0], width: 40 }, + { text: "NAME", padding: [0, 0, 0, 0], width: 40 } + ); + + response.items.forEach((application) => { + ui.div( + { text: application.ref, padding: [0, 0, 0, 0], width: 40 }, + { text: application.name, padding: [0, 0, 0, 0], width: 40 } ); - } catch (e) { - throw new CLIError(e.message); - } + }); + + this.log(ui.toString()); } } diff --git a/mods/ctl/src/commands/secrets/update.ts b/mods/ctl/src/commands/secrets/update.ts new file mode 100644 index 000000000..a84039cab --- /dev/null +++ b/mods/ctl/src/commands/secrets/update.ts @@ -0,0 +1,78 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { UpdateSecretRequest } from "@fonoster/types"; +import { confirm, input, password } from "@inquirer/prompts"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; +import errorHandler from "../../errorHandler"; + +export default class Update extends AuthenticatedCommand { + static override readonly description = + "modify the value or metadata of a Secret"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ description: "the Secret to update", required: true }) + }; + + public async run(): Promise { + const { args } = await this.parse(Update); + const client = await this.createSdkClient(); + const secrets = new SDK.Secrets(client); + const secretFromDB = await secrets.getSecret(args.ref); + + if (!secretFromDB) { + this.error("Secret not found."); + } + + this.log("This utility will help you update a Secret."); + this.log("Press ^C at any time to quit."); + + const answers = { + name: await input({ + message: "Name", + required: true, + default: secretFromDB.name + }), + type: await password({ + message: "Secret" + }), + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answers.confirm) { + this.log("Aborted!"); + return; + } + + try { + await secrets.updateSecret({ + ref: args.ref, + ...answers + } as UpdateSecretRequest); + + this.log("Done!"); + } catch (e) { + errorHandler(e, this.log.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/acls/create.ts b/mods/ctl/src/commands/sipnet/acls/create.ts new file mode 100644 index 000000000..6177d47b5 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/acls/create.ts @@ -0,0 +1,70 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { CreateAclRequest } from "@fonoster/types"; +import { confirm, input } from "@inquirer/prompts"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import errorHandler from "../../../errorHandler"; + +export default class Create extends AuthenticatedCommand { + static override readonly description = + "create a new Access Control List (ACL)"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + + public async run(): Promise { + this.log( + "This utility will help you create a new Access Control List (ACL)." + ); + this.log("Press ^C at any time to quit."); + + const answers = { + name: await input({ + message: "Name", + required: true + }), + allowString: await input({ + message: "Allow list (Comma separated list of IPs or CIDRs)", + required: true + }), + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answers.confirm) { + this.log("Aborted!"); + return; + } + + try { + const client = await this.createSdkClient(); + const acls = new SDK.Acls(client); + + await acls.createAcl({ + ...answers, + allow: answers.allowString.split(",").map((a) => a.trim()) + } as unknown as CreateAclRequest); + + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/acls/delete.ts b/mods/ctl/src/commands/sipnet/acls/delete.ts new file mode 100644 index 000000000..68b39f3b1 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/acls/delete.ts @@ -0,0 +1,43 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class Delete extends AuthenticatedCommand { + static override readonly description = + "remove an Access Control List (ACL) from the Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the ACL reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Delete); + const { ref } = args; + const client = await this.createSdkClient(); + const acls = new SDK.Acls(client); + await acls.deleteAcl(ref); + this.log("Done!"); + } +} diff --git a/mods/ctl/src/commands/sipnet/acls/get.ts b/mods/ctl/src/commands/sipnet/acls/get.ts new file mode 100644 index 000000000..9789130e4 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/acls/get.ts @@ -0,0 +1,59 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import cliui from "cliui"; +import moment from "moment"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class Get extends AuthenticatedCommand { + static override readonly description = + "get a specific Access Control List (ACL)"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "The ACL reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Get); + const { ref } = args; + const client = await this.createSdkClient(); + const acls = new SDK.Acls(client); + + const response = await acls.getAcl(ref); + + const ui = cliui({ width: 200 }); + + ui.div( + "ACL DETAILS\n" + + "------------------\n" + + `NAME: \t${response.name}\n` + + `REF: \t${response.ref}\n` + + `ALLOW LIST: \t${response.allow.join(", ")}\n` + + `CREATED: \t${moment(response.createdAt).format("YYYY-MM-DD HH:mm:ss")}\n` + + `UPDATED: \t${moment(response.updatedAt).format("YYYY-MM-DD HH:mm:ss")}` + ); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/acls/list.ts b/mods/ctl/src/commands/sipnet/acls/list.ts new file mode 100644 index 000000000..3400575b1 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/acls/list.ts @@ -0,0 +1,63 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Flags } from "@oclif/core"; +import cliui from "cliui"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class List extends AuthenticatedCommand { + static override readonly description = "list all Access Control Lists (ACLs)"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly flags = { + "page-size": Flags.string({ + char: "s", + description: "the number of items to show", + default: "1000", + required: false + }) + }; + + public async run(): Promise { + const { flags } = await this.parse(List); + const client = await this.createSdkClient(); + const acls = new SDK.Acls(client); + const response = await acls.listAcls({ + pageSize: parseInt(flags["page-size"]) + }); + + const ui = cliui({ width: 100 }); + + ui.div( + { text: "REF", padding: [0, 0, 0, 0], width: 40 }, + { text: "NAME", padding: [0, 0, 0, 0], width: 30 }, + { text: "ALLOW LIST", padding: [0, 0, 0, 0] } + ); + + response.items.forEach((acl) => { + ui.div( + { text: acl.ref, padding: [0, 0, 0, 0], width: 40 }, + { text: acl.name, padding: [0, 0, 0, 0], width: 30 }, + { text: acl.allow.join(", "), padding: [0, 0, 0, 0] } + ); + }); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/acls/update.ts b/mods/ctl/src/commands/sipnet/acls/update.ts new file mode 100644 index 000000000..7be4fd362 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/acls/update.ts @@ -0,0 +1,87 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { UpdateAclRequest } from "@fonoster/types"; +import { confirm, input } from "@inquirer/prompts"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import errorHandler from "../../../errorHandler"; + +export default class Update extends AuthenticatedCommand { + static override readonly description = + "update an existing Access Control List (ACL)"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the ACL reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Update); + const { ref } = args; + const client = await this.createSdkClient(); + const acls = new SDK.Acls(client); + const aclFromDB = await acls.getAcl(ref); + + if (!aclFromDB) { + this.error("ACL not found."); + } + + this.log( + "This utility will help you update an existing Access Control List (ACL)." + ); + this.log("Press ^C at any time to quit."); + + const answers = { + ref, + name: await input({ + message: "Name", + required: true, + default: aclFromDB.name + }), + allowString: await input({ + message: "Allow list (Comma separated list of IPs or CIDRs)", + required: true, + default: aclFromDB.allow.join(", ") + }), + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answers.confirm) { + this.log("Aborted!"); + return; + } + + try { + await acls.updateAcl({ + ...answers, + allow: answers.allowString.split(",").map((a) => a.trim()) + } as unknown as UpdateAclRequest); + + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/agents/create.ts b/mods/ctl/src/commands/sipnet/agents/create.ts new file mode 100644 index 000000000..1f7141162 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/agents/create.ts @@ -0,0 +1,95 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { CreateAclRequest, CreateAgentRequest } from "@fonoster/types"; +import { confirm, input, number, select } from "@inquirer/prompts"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import errorHandler from "../../../errorHandler"; + +export default class Create extends AuthenticatedCommand { + static override readonly description = "add a new SIP Agent to the network"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + + public async run(): Promise { + this.log("This utility will help you add a new SIP Agent to the network."); + this.log("Press ^C at any time to quit."); + + const client = await this.createSdkClient(); + const agents = new SDK.Agents(client); + const domains = new SDK.Domains(client); + const credentials = new SDK.Credentials(client); + + const domainsList = ( + await domains.listDomains({ pageSize: 1000 }) + ).items.map((d) => ({ name: d.name, value: d.ref })); + + const credentialsList = ( + await credentials.listCredentials({ pageSize: 1000 }) + ).items.map((c) => ({ name: c.name, value: c.ref })); + + const answers = { + name: await input({ + message: "Name", + required: true + }), + username: await input({ + message: "Username", + required: true + }), + domainRef: await select({ + message: "Domain", + choices: [{ name: "None", value: null }].concat(domainsList) + }), + credentialsRef: await select({ + message: "Credentials", + choices: [{ name: "None", value: null }].concat(credentialsList) + }), + privacy: await select({ + message: "Privacy", + choices: [ + { name: "Private", value: "PRIVATE" }, + { name: "None", value: "NONE" } + ] + }), + enabled: await confirm({ + message: "Enabled?" + }), + maxContacts: await number({ + message: "Max Contacts" + }), + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answers.confirm) { + this.log("Aborted!"); + return; + } + + try { + await agents.createAgent(answers as unknown as CreateAgentRequest); + + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/agents/delete.ts b/mods/ctl/src/commands/sipnet/agents/delete.ts new file mode 100644 index 000000000..1fb42cbb8 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/agents/delete.ts @@ -0,0 +1,42 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class Delete extends AuthenticatedCommand { + static override readonly description = "delete a SIP Agent from the network"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the Agent reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Delete); + const { ref } = args; + const client = await this.createSdkClient(); + const agents = new SDK.Agents(client); + await agents.deleteAgent(ref); + this.log("Done!"); + } +} diff --git a/mods/ctl/src/commands/sipnet/agents/get.ts b/mods/ctl/src/commands/sipnet/agents/get.ts new file mode 100644 index 000000000..1b651646b --- /dev/null +++ b/mods/ctl/src/commands/sipnet/agents/get.ts @@ -0,0 +1,67 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import cliui from "cliui"; +import moment from "moment"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class Get extends AuthenticatedCommand { + static override readonly description = "retrieve details of a SIP Agent"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "The Agent reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Get); + const { ref } = args; + const client = await this.createSdkClient(); + const agents = new SDK.Agents(client); + + const response = await agents.getAgent(ref); + + console.log(response); + + const ui = cliui({ width: 200 }); + + ui.div( + "AGENT DETAILS\n" + + "------------------\n" + + `NAME: \t${response.name}\n` + + `REF: \t${response.ref}\n` + + `USERNAME: \t${response.username}\n` + + `DOMAIN NAME: \t${response.domain?.name ?? ""}\n` + + `DOMAIN REF: \t${response.domain?.ref ?? ""}\n` + + `CREDENTIALS NAME: \t${response.credentials?.name ?? ""}\n` + + `CREDENTIALS REF: \t${response.credentials?.ref ?? ""}\n` + + `PRIVACY: \t${response.privacy}\n` + + `ENABLED: \t${response.enabled}\n` + + `MAX CONTACTS: \t${response.maxContacts === -1 ? "" : response.maxContacts}\n` + + `CREATED: \t${moment(response.createdAt).format("YYYY-MM-DD HH:mm:ss")}\n` + + `UPDATED: \t${moment(response.updatedAt).format("YYYY-MM-DD HH:mm:ss")}` + ); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/agents/list.ts b/mods/ctl/src/commands/sipnet/agents/list.ts new file mode 100644 index 000000000..5941f0cfb --- /dev/null +++ b/mods/ctl/src/commands/sipnet/agents/list.ts @@ -0,0 +1,68 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Flags } from "@oclif/core"; +import cliui from "cliui"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class List extends AuthenticatedCommand { + static override readonly description = + "display all SIP Agents in the network"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly flags = { + "page-size": Flags.string({ + char: "s", + description: "the number of items to show", + default: "1000", + required: false + }) + }; + + public async run(): Promise { + const { flags } = await this.parse(List); + const client = await this.createSdkClient(); + const agents = new SDK.Agents(client); + const response = await agents.listAgents({ + pageSize: parseInt(flags["page-size"]) + }); + + const ui = cliui({ width: 150 }); + + ui.div( + { text: "REF", padding: [0, 0, 0, 0], width: 40 }, + { text: "NAME", padding: [0, 0, 0, 0], width: 25 }, + { text: "USERNAME", padding: [0, 0, 0, 0], width: 15 }, + { text: "PRIVACY", padding: [0, 0, 0, 0], width: 10 }, + { text: "ENABLED", padding: [0, 0, 0, 0], width: 0 } + ); + + response.items.forEach((agent) => { + ui.div( + { text: agent.ref, padding: [0, 0, 0, 0], width: 40 }, + { text: agent.name, padding: [0, 0, 0, 0], width: 25 }, + { text: agent.username, padding: [0, 0, 0, 0], width: 15 }, + { text: agent.privacy, padding: [0, 0, 0, 0], width: 10 }, + { text: agent.enabled + "", padding: [0, 0, 0, 0], width: 10 } + ); + }); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/agents/update.ts b/mods/ctl/src/commands/sipnet/agents/update.ts new file mode 100644 index 000000000..3e710c1d7 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/agents/update.ts @@ -0,0 +1,112 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { UpdateAgentRequest } from "@fonoster/types"; +import { confirm, input, number, select } from "@inquirer/prompts"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import errorHandler from "../../../errorHandler"; +import { Args } from "@oclif/core"; + +export default class Update extends AuthenticatedCommand { + static override readonly description = "add a new SIP Agent to the network"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the ACL reference", + required: true + }) + }; + + public async run(): Promise { + this.log("This utility will help you add a new SIP Agent to the network."); + this.log("Press ^C at any time to quit."); + + const { args } = await this.parse(Update); + const { ref } = args; + const client = await this.createSdkClient(); + const agents = new SDK.Agents(client); + const domains = new SDK.Domains(client); + const credentials = new SDK.Credentials(client); + + const agentFromDB = await agents.getAgent(ref); + + if (!agentFromDB) { + this.error("Agent not found."); + } + + const domainsList = ( + await domains.listDomains({ pageSize: 1000 }) + ).items.map((d) => ({ name: d.name, value: d.ref })); + + const credentialsList = ( + await credentials.listCredentials({ pageSize: 1000 }) + ).items.map((c) => ({ name: c.name, value: c.ref })); + + const answers = { + ref, + name: await input({ + message: "Name", + required: true, + default: agentFromDB.name + }), + domainRef: await select({ + message: "Domain", + choices: [{ name: "None", value: null }].concat(domainsList), + default: agentFromDB.domain?.ref + }), + credentialsRef: await select({ + message: "Credentials", + choices: [{ name: "None", value: null }].concat(credentialsList), + default: agentFromDB.credentials?.ref + }), + privacy: await select({ + message: "Privacy", + choices: [ + { name: "Private", value: "PRIVATE" }, + { name: "None", value: "NONE" } + ], + default: agentFromDB.privacy === "ID" ? "PRIVATE" : "NONE" + }), + enabled: await confirm({ + message: "Enabled?", + default: agentFromDB.enabled + }), + maxContacts: await number({ + message: "Max Contacts", + default: agentFromDB.maxContacts + }), + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answers.confirm) { + this.log("Aborted!"); + return; + } + + try { + await agents.updateAgent(answers as unknown as UpdateAgentRequest); + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/calls/create.ts b/mods/ctl/src/commands/sipnet/calls/create.ts new file mode 100644 index 000000000..6b66cbd9a --- /dev/null +++ b/mods/ctl/src/commands/sipnet/calls/create.ts @@ -0,0 +1,95 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { CreateCallRequest } from "@fonoster/types"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import errorHandler from "../../../errorHandler"; +import { Flags } from "@oclif/core"; +import { DialStatus } from "@fonoster/common"; + +export default class Create extends AuthenticatedCommand { + static override readonly description = + "initiate a call to a phone number or SIP URI"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly flags = { + from: Flags.string({ + char: "f", + description: "The number to make the call from", + required: true + }), + to: Flags.string({ + char: "t", + description: "The number to make the call to", + required: true + }), + "app-ref": Flags.string({ + char: "a", + description: "The application reference", + required: true + }), + timeout: Flags.string({ + char: "o", + description: "The call timeout", + default: "30", + required: false + }), + "track-call": Flags.boolean({ + char: "c", + description: "Track the call", + default: false, + required: false + }) + }; + + public async run(): Promise { + try { + const client = await this.createSdkClient(); + const calls = new SDK.Calls(client); + + const callRequest: CreateCallRequest = { + from: this.flags["from"], + to: this.flags["to"], + appRef: this.flags["app-ref"], + timeout: parseInt(this.flags.timeout || "30") + }; + + const response = await calls.createCall(callRequest); + + this.log(`Call created: ${response.ref}`); + + if (this.flags["track-call"]) { + for await (const entry of response.statusStream) { + this.log(`Call status: ${entry.status}`); + if (entry.status === DialStatus.ANSWER) { + break; + } + } + + this.log("Call ended."); + process.exit(0); + return; + } + + process.exit(0); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/calls/get.ts b/mods/ctl/src/commands/sipnet/calls/get.ts new file mode 100644 index 000000000..9a7135693 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/calls/get.ts @@ -0,0 +1,64 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import cliui from "cliui"; +import moment from "moment"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class Get extends AuthenticatedCommand { + static override readonly description = + "get a specific Access Control List (ACL)"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "The ACL reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Get); + const { ref } = args; + const client = await this.createSdkClient(); + const calls = new SDK.Calls(client); + + const response = await calls.getCall(ref); + + const ui = cliui({ width: 200 }); + + ui.div( + "CALL DETAILS\n" + + "------------------\n" + + `REF: \t${response.ref}\n` + + `CALL ID: \t${(response as unknown as { callId: string }).callId}\n` + + `TYPE: \t${response.type}\n` + + `STATUS: \t${response.status}\n` + + `FROM: \t${response.from}\n` + + `TO: \t${response.to}\n` + + `DURATION: \t${response.duration}\n` + + `DIRECTION: \t${response.direction}\n` + + `STARTED: \t${moment(response.startedAt).format("YYYY-MM-DD HH:mm:ss")}\n` + + `ENDED: \t${moment(response.endedAt).format("YYYY-MM-DD HH:mm:ss")}` + ); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/calls/list.ts b/mods/ctl/src/commands/sipnet/calls/list.ts new file mode 100644 index 000000000..aeb224f75 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/calls/list.ts @@ -0,0 +1,79 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Flags } from "@oclif/core"; +import cliui from "cliui"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import moment from "moment"; + +export default class List extends AuthenticatedCommand { + static override readonly description = + "display all calls made in the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly flags = { + "page-size": Flags.string({ + char: "s", + description: "the number of items to show", + default: "1000", + required: false + }) + }; + + public async run(): Promise { + const { flags } = await this.parse(List); + const client = await this.createSdkClient(); + const calls = new SDK.Calls(client); + const response = await calls.listCalls({ + pageSize: parseInt(flags["page-size"]) + }); + + const ui = cliui({ width: 125 }); + + ui.div( + { text: "REF", padding: [0, 0, 0, 0], width: 40 }, + { text: "STARTED AT", padding: [0, 0, 0, 0], width: 25 }, + { text: "ENDED AT", padding: [0, 0, 0, 0], width: 25 }, + { text: "FROM", padding: [0, 0, 0, 0], width: 30 }, + { text: "TO", padding: [0, 0, 0, 0], width: 30 }, + { text: "DURATION", padding: [0, 0, 0, 0], width: 10 } + ); + + response.items.forEach((call) => { + ui.div( + { text: call.ref, padding: [0, 0, 0, 0], width: 40 }, + { + text: moment(call.startedAt).format("YYYY-MM-DD HH:mm:ss"), + padding: [0, 0, 0, 0], + width: 25 + }, + { + text: moment(call.endedAt).format("YYYY-MM-DD HH:mm:ss"), + padding: [0, 0, 0, 0], + width: 25 + }, + { text: call.from, padding: [0, 0, 0, 0], width: 30 }, + { text: call.to, padding: [0, 0, 0, 0], width: 30 }, + { text: call.duration + "", padding: [0, 0, 0, 0], width: 10 } + ); + }); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/credentials/create.ts b/mods/ctl/src/commands/sipnet/credentials/create.ts new file mode 100644 index 000000000..7d6a5bac2 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/credentials/create.ts @@ -0,0 +1,72 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { CreateCredentialsRequest } from "@fonoster/types"; +import { confirm, input, password } from "@inquirer/prompts"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import errorHandler from "../../../errorHandler"; + +export default class Create extends AuthenticatedCommand { + static override readonly description = + "add a new set of Credentials to the network"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + + public async run(): Promise { + this.log( + "This utility will help you add a new set of Credentials to the network." + ); + this.log("Press ^C at any time to quit."); + + const answers = { + name: await input({ + message: "Name", + required: true + }), + username: await input({ + message: "Username", + required: true + }), + password: await password({ + message: "Password" + }), + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answers.confirm) { + this.log("Aborted!"); + return; + } + + try { + const client = await this.createSdkClient(); + const credentials = new SDK.Credentials(client); + + await credentials.createCredentials( + answers as unknown as CreateCredentialsRequest + ); + + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/credentials/delete.ts b/mods/ctl/src/commands/sipnet/credentials/delete.ts new file mode 100644 index 000000000..1643c4cd9 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/credentials/delete.ts @@ -0,0 +1,43 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class Delete extends AuthenticatedCommand { + static override readonly description = + "delete a set of Credentials from the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the Credentials reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Delete); + const { ref } = args; + const client = await this.createSdkClient(); + const credentials = new SDK.Credentials(client); + await credentials.deleteCredentials(ref); + this.log("Done!"); + } +} diff --git a/mods/ctl/src/commands/sipnet/credentials/get.ts b/mods/ctl/src/commands/sipnet/credentials/get.ts new file mode 100644 index 000000000..92be14221 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/credentials/get.ts @@ -0,0 +1,59 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import cliui from "cliui"; +import moment from "moment"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class Get extends AuthenticatedCommand { + static override readonly description = + "retrieve details of a set of Credentials by reference"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "The Credentials reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Get); + const { ref } = args; + const client = await this.createSdkClient(); + const credentials = new SDK.Credentials(client); + + const response = await credentials.getCredentials(ref); + + const ui = cliui({ width: 200 }); + + ui.div( + "CREDENTIALS DETAILS\n" + + "------------------\n" + + `NAME: \t${response.name}\n` + + `REF: \t${response.ref}\n` + + `USERNAME: \t${response.username}\n` + + `CREATED: \t${moment(response.createdAt).format("YYYY-MM-DD HH:mm:ss")}\n` + + `UPDATED: \t${moment(response.updatedAt).format("YYYY-MM-DD HH:mm:ss")}` + ); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/credentials/list.ts b/mods/ctl/src/commands/sipnet/credentials/list.ts new file mode 100644 index 000000000..1856ac5de --- /dev/null +++ b/mods/ctl/src/commands/sipnet/credentials/list.ts @@ -0,0 +1,64 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Flags } from "@oclif/core"; +import cliui from "cliui"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class List extends AuthenticatedCommand { + static override readonly description = + "display all Credentials in the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly flags = { + "page-size": Flags.string({ + char: "s", + description: "the number of items to show", + default: "1000", + required: false + }) + }; + + public async run(): Promise { + const { flags } = await this.parse(List); + const client = await this.createSdkClient(); + const credentials = new SDK.Credentials(client); + const response = await credentials.listCredentials({ + pageSize: parseInt(flags["page-size"]) + }); + + const ui = cliui({ width: 100 }); + + ui.div( + { text: "REF", padding: [0, 0, 0, 0], width: 40 }, + { text: "NAME", padding: [0, 0, 0, 0], width: 20 }, + { text: "USERNAME", padding: [0, 0, 0, 0], width: 40 } + ); + + response.items.forEach((application) => { + ui.div( + { text: application.ref, padding: [0, 0, 0, 0], width: 40 }, + { text: application.name, padding: [0, 0, 0, 0], width: 20 }, + { text: application.username, padding: [0, 0, 0, 0], width: 40 } + ); + }); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/credentials/update.ts b/mods/ctl/src/commands/sipnet/credentials/update.ts new file mode 100644 index 000000000..c9b54188a --- /dev/null +++ b/mods/ctl/src/commands/sipnet/credentials/update.ts @@ -0,0 +1,84 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { UpdateCredentialsRequest } from "@fonoster/types"; +import { confirm, input, password } from "@inquirer/prompts"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import errorHandler from "../../../errorHandler"; + +export default class Update extends AuthenticatedCommand { + static override readonly description = + "modify the values or metadata of a set of Credentials"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the Credentials reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Update); + const { ref } = args; + const client = await this.createSdkClient(); + const credentials = new SDK.Credentials(client); + const credentialsFromDB = await credentials.getCredentials(ref); + + if (!credentialsFromDB) { + this.error("Credentials not found."); + } + + this.log( + "This utility will help you modify the values or metadata of a set of Credentials." + ); + this.log("Press ^C at any time to quit."); + + const answers = { + ref, + name: await input({ + message: "Name", + required: true, + default: credentialsFromDB.name + }), + password: await password({ + message: "Secret" + }), + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answers.confirm) { + this.log("Aborted!"); + return; + } + + try { + await credentials.updateCredentials({ + ...answers + } as UpdateCredentialsRequest); + + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/domains/create.ts b/mods/ctl/src/commands/sipnet/domains/create.ts new file mode 100644 index 000000000..06ac30950 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/domains/create.ts @@ -0,0 +1,64 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { CreateDomainRequest } from "@fonoster/types"; +import { confirm, input } from "@inquirer/prompts"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import errorHandler from "../../../errorHandler"; + +export default class Create extends AuthenticatedCommand { + static override readonly description = "add a new Domain to the SIP network"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + + public async run(): Promise { + this.log("This utility will help you create a new Domain."); + this.log("Press ^C at any time to quit."); + + const answers = { + name: await input({ + message: "Name", + required: true + }), + domainUri: await input({ + message: "Domain URI", + required: true + }), + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answers.confirm) { + this.log("Aborted!"); + return; + } + + try { + const client = await this.createSdkClient(); + const domains = new SDK.Domains(client); + + await domains.createDomain(answers as unknown as CreateDomainRequest); + + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/domains/delete.ts b/mods/ctl/src/commands/sipnet/domains/delete.ts new file mode 100644 index 000000000..124001f87 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/domains/delete.ts @@ -0,0 +1,43 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class Delete extends AuthenticatedCommand { + static override readonly description = + "delete a Domain from the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the Domain reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Delete); + const { ref } = args; + const client = await this.createSdkClient(); + const domains = new SDK.Domains(client); + await domains.deleteDomain(ref); + this.log("Done!"); + } +} diff --git a/mods/ctl/src/commands/sipnet/domains/get.ts b/mods/ctl/src/commands/sipnet/domains/get.ts new file mode 100644 index 000000000..6da3be6d2 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/domains/get.ts @@ -0,0 +1,59 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import cliui from "cliui"; +import moment from "moment"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class Get extends AuthenticatedCommand { + static override readonly description = + "retrieve details of a Domain by reference"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "The Domain reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Get); + const { ref } = args; + const client = await this.createSdkClient(); + const domains = new SDK.Domains(client); + + const response = await domains.getDomain(ref); + + const ui = cliui({ width: 200 }); + + ui.div( + "DOMAIN DETAILS\n" + + "------------------\n" + + `NAME: \t${response.name}\n` + + `REF: \t${response.ref}\n` + + `DOMAIN URI: \t${response.domainUri}\n` + + `CREATED: \t${moment(response.createdAt).format("YYYY-MM-DD HH:mm:ss")}\n` + + `UPDATED: \t${moment(response.updatedAt).format("YYYY-MM-DD HH:mm:ss")}` + ); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/domains/list.ts b/mods/ctl/src/commands/sipnet/domains/list.ts new file mode 100644 index 000000000..490f16c54 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/domains/list.ts @@ -0,0 +1,64 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Flags } from "@oclif/core"; +import cliui from "cliui"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class List extends AuthenticatedCommand { + static override readonly description = + "display all Domains in the SIP network"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly flags = { + "page-size": Flags.string({ + char: "s", + description: "the number of items to show", + default: "1000", + required: false + }) + }; + + public async run(): Promise { + const { flags } = await this.parse(List); + const client = await this.createSdkClient(); + const domains = new SDK.Domains(client); + const response = await domains.listDomains({ + pageSize: parseInt(flags["page-size"]) + }); + + const ui = cliui({ width: 100 }); + + ui.div( + { text: "REF", padding: [0, 0, 0, 0], width: 40 }, + { text: "NAME", padding: [0, 0, 0, 0], width: 30 }, + { text: "DOMAIN URI", padding: [0, 0, 0, 0] } + ); + + response.items.forEach((domain) => { + ui.div( + { text: domain.ref, padding: [0, 0, 0, 0], width: 40 }, + { text: domain.name, padding: [0, 0, 0, 0], width: 30 }, + { text: domain.domainUri, padding: [0, 0, 0, 0] } + ); + }); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/domains/update.ts b/mods/ctl/src/commands/sipnet/domains/update.ts new file mode 100644 index 000000000..d23efd664 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/domains/update.ts @@ -0,0 +1,75 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { UpdateAclRequest } from "@fonoster/types"; +import { confirm, input } from "@inquirer/prompts"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import errorHandler from "../../../errorHandler"; + +export default class Update extends AuthenticatedCommand { + static override readonly description = "modify the configuration of a Domain"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the Domain reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Update); + const { ref } = args; + const client = await this.createSdkClient(); + const domains = new SDK.Domains(client); + const domainFromDb = await domains.getDomain(ref); + + if (!domainFromDb) { + this.error("Domain not found."); + } + + this.log("This utility will help you update an Domain."); + this.log("Press ^C at any time to quit."); + + const answers = { + ref, + name: await input({ + message: "Name", + required: true, + default: domainFromDb.name + }), + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answers.confirm) { + this.log("Aborted!"); + return; + } + + try { + await domains.updateDomain(answers as unknown as UpdateAclRequest); + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/numbers/create.ts b/mods/ctl/src/commands/sipnet/numbers/create.ts new file mode 100644 index 000000000..99f8e9843 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/numbers/create.ts @@ -0,0 +1,119 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { CreateNumberRequest } from "@fonoster/types"; +import { confirm, input, search, select } from "@inquirer/prompts"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import errorHandler from "../../../errorHandler"; +import { countryIsoCodes } from "@fonoster/common"; + +export default class Create extends AuthenticatedCommand { + static override readonly description = "add a new Number to the SIP network"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + + public async run(): Promise { + this.log("This utility will help you add a new Number to the SIP network."); + this.log("Press ^C at any time to quit."); + + const client = await this.createSdkClient(); + const trunks = new SDK.Trunks(client); + const applications = new SDK.Applications(client); + const numbers = new SDK.Numbers(client); + + const trunksList = (await trunks.listTrunks({ pageSize: 1000 })).items.map( + (item) => ({ + name: item.name, + value: item.ref + }) + ); + + const applicationsList = ( + await applications.listApplications({ pageSize: 1000 }) + ).items.map((item) => ({ + name: item.name, + value: item.ref + })); + + const answers = { + name: await input({ + message: "Friendly name", + required: true + }), + telUrl: await input({ + message: "Tel URL (E.164 format)", + required: true + }), + trunkRef: await select({ + message: "Trunk", + choices: [{ name: "None", value: null }].concat(trunksList) + }), + appRef: await select({ + message: "Application", + choices: [{ name: "None", value: null }].concat(applicationsList) + }), + city: await input({ + message: "City", + required: true + }), + country: await input({ + message: "Country", + required: true + }), + countryIsoCode: await search({ + message: "Select a country ISO code", + source: async (input) => { + if (!input) { + return countryIsoCodes; + } + + const filteredCodes = countryIsoCodes.filter( + ({ name, value }) => + name.toLowerCase().includes(input.toLowerCase()) || + value.toLowerCase().includes(input.toLowerCase()) + ); + + return filteredCodes.map(({ name, value }) => ({ + name: `${name} (${value})`, + value + })); + } + }), + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answers.confirm) { + this.log("Aborted!"); + return; + } + + try { + await numbers.createNumber({ + ...answers, + telUrl: `tel:${answers.telUrl}` + } as unknown as CreateNumberRequest); + + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/numbers/delete.ts b/mods/ctl/src/commands/sipnet/numbers/delete.ts new file mode 100644 index 000000000..b7be24e1a --- /dev/null +++ b/mods/ctl/src/commands/sipnet/numbers/delete.ts @@ -0,0 +1,43 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class Delete extends AuthenticatedCommand { + static override readonly description = + "delete a Number from the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the Numbers's reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Delete); + const { ref } = args; + const client = await this.createSdkClient(); + const numbers = new SDK.Numbers(client); + await numbers.deleteNumber(ref); + this.log("Done!"); + } +} diff --git a/mods/ctl/src/commands/sipnet/numbers/get.ts b/mods/ctl/src/commands/sipnet/numbers/get.ts new file mode 100644 index 000000000..108108f35 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/numbers/get.ts @@ -0,0 +1,75 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import cliui from "cliui"; +import moment from "moment"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import { Application } from "@fonoster/types"; + +export default class Get extends AuthenticatedCommand { + static override readonly description = + "retrieve details of a Number by reference"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the Number to show details about", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Get); + const { ref } = args; + const client = await this.createSdkClient(); + const numbers = new SDK.Numbers(client); + const response = await numbers.getNumber(ref); + + const apps = new SDK.Applications(client); + let app: Application; + + try { + app = await apps.getApplication(response.appRef); + } catch (e) { + // You can only try + } + + const ui = cliui({ width: 200 }); + + ui.div( + "NUMBER DETAILS\n" + + "------------------\n" + + `NAME: \t${response.name}\n` + + `REF: \t${response.ref}\n` + + `TEL URL: \t${response.telUrl}\n` + + `APP: \t${app?.name ?? ""}\n` + + `APP REF: \t${app?.ref ?? ""}\n` + + `CITY: \t${response.city}\n` + + `TRUNK NAME: \t${response.trunk?.name ?? ""}\n` + + `TRUNK REF: \t${response.trunk?.ref ?? ""}\n` + + `COUNTRY ISO CODE: \t${response.countryIsoCode}\n` + + `COUNTRY: \t${response.country}\n` + + `CREATED: \t${moment(response.createdAt).format("YYYY-MM-DD HH:mm:ss")}\n` + + `UPDATED: \t${moment(response.updatedAt).format("YYYY-MM-DD HH:mm:ss")}` + ); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/numbers/linkTwilioNumber.ts b/mods/ctl/src/commands/sipnet/numbers/linkTwilioNumber.ts new file mode 100644 index 000000000..7c85114e7 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/numbers/linkTwilioNumber.ts @@ -0,0 +1,120 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as Fonoster from "@fonoster/sdk"; +import { confirm, input, password, select } from "@inquirer/prompts"; +import { Flags } from "@oclif/core"; +import { Twilio } from "twilio"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import { getConfig, getActiveWorkspace } from "../../../config"; +import { + CONFIG_FILE, + FONOSTER_ACCESS_CONTROL_LIST, + FONOSTER_ORIGINATION_URI_BASE +} from "../../../constants"; +import { linkTwilioNumberToApplication } from "../../../utils"; + +export default class LinkTwilioNumber extends AuthenticatedCommand< + typeof LinkTwilioNumber +> { + static override readonly description = + "associate a Twilio number with a Fonoster Application"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly flags = { + "outbound-uri-base": Flags.string({ + char: "b", + description: + "the uri to point twilio to for outbound calls (use if running your Fonoster instance)", + default: FONOSTER_ORIGINATION_URI_BASE, + required: false + }), + "access-control-list": Flags.string({ + char: "a", + description: + "the access control list to allow (use if running your Fonoster instance)", + default: FONOSTER_ACCESS_CONTROL_LIST.join(","), + required: false + }) + }; + + public async run(): Promise { + const { flags } = await this.parse(LinkTwilioNumber); + const fonosterClient = await this.createSdkClient(); + const applications = new Fonoster.Applications(fonosterClient); + const appsList = ( + await applications.listApplications({ pageSize: 1000 }) + ).items.map((app) => ({ + name: app.name, + value: app.ref + })); + + this.log("This utility will help you create an Application."); + this.log("Press ^C at any time to quit."); + + const answers = { + friendlyName: await input({ + message: "Friendly Name" + }), + number: await input({ + message: "Number to link (E.164 format)", + required: true + }), + applicationRef: await select({ + message: "Application", + choices: [{ name: "None", value: null }].concat(appsList) + }), + twilioAccountSid: await input({ + message: "Twilio Account SID", + required: true + }), + twilioAuthToken: await password({ + message: "Twilio Auth Token" + }), + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answers.confirm) { + this.log("Aborted!"); + return; + } + + try { + const twilioClient = new Twilio( + answers.twilioAccountSid, + answers.twilioAuthToken + ); + + const activeWorkspace = getActiveWorkspace(getConfig(CONFIG_FILE)); + const accessKeyId = activeWorkspace.workspaceAccessKeyId; + + await linkTwilioNumberToApplication(twilioClient, fonosterClient, { + phoneNumber: answers.number, + accessKeyId, + aclEntries: flags["access-control-list"].split(","), + originationUriBase: flags["outbound-uri-base"], + applicationRef: answers.applicationRef, + friendlyName: answers.friendlyName + }); + } catch (error: unknown) { + this.error(`Failed to link number: ${(error as Error).message}`); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/numbers/list.ts b/mods/ctl/src/commands/sipnet/numbers/list.ts new file mode 100644 index 000000000..7c1be8a9a --- /dev/null +++ b/mods/ctl/src/commands/sipnet/numbers/list.ts @@ -0,0 +1,73 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Flags } from "@oclif/core"; +import cliui from "cliui"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import { getConfig } from "../../../config"; +import { CONFIG_FILE } from "../../../constants"; + +export default class List extends AuthenticatedCommand { + static override readonly description = + "display all Numbers in the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly flags = { + "page-size": Flags.string({ + char: "s", + description: "the number of items to return", + default: "1000", + required: false + }) + }; + + public async run(): Promise { + const { flags } = await this.parse(List); + const client = await this.createSdkClient(); + const numbers = new SDK.Numbers(client); + + const response = await numbers.listNumbers({ + pageSize: parseInt(flags["page-size"]) + }); + + const ui = cliui({ width: 200 }); + + ui.div( + { text: "REF", padding: [0, 0, 0, 0], width: 40 }, + { text: "NAME", padding: [0, 0, 0, 0], width: 30 }, + { text: "TEL URL", padding: [0, 0, 0, 0], width: 25 }, + { text: "APP REF", padding: [0, 0, 0, 0], width: 40 } + ); + + response.items.forEach((number) => { + ui.div( + { text: number.ref, padding: [0, 0, 0, 0], width: 40 }, + { text: number.name, padding: [0, 0, 0, 0], width: 30 }, + { + text: `${number.telUrl} (${number.countryIsoCode})`, + padding: [0, 0, 0, 0], + width: 25 + }, + { text: number.appRef ?? "", padding: [0, 0, 0, 0], width: 40 } + ); + }); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/numbers/update.ts b/mods/ctl/src/commands/sipnet/numbers/update.ts new file mode 100644 index 000000000..edf8c31ac --- /dev/null +++ b/mods/ctl/src/commands/sipnet/numbers/update.ts @@ -0,0 +1,100 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { UpdateNumberRequest } from "@fonoster/types"; +import { confirm, input, select } from "@inquirer/prompts"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import errorHandler from "../../../errorHandler"; +import { Args } from "@oclif/core"; + +export default class Update extends AuthenticatedCommand { + static override readonly description = "modify the configuration of a Number"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ description: "the Number to update", required: true }) + }; + + public async run(): Promise { + this.log("This utility will help you update a Number."); + this.log("Press ^C at any time to quit."); + + const { args } = await this.parse(Update); + const { ref } = args; + const client = await this.createSdkClient(); + const trunks = new SDK.Trunks(client); + const applications = new SDK.Applications(client); + const numbers = new SDK.Numbers(client); + + const applicationFromDB = await numbers.getNumber(ref); + + if (!applicationFromDB) { + this.error("Application not found."); + } + + const trunksList = (await trunks.listTrunks({ pageSize: 1000 })).items.map( + (item) => ({ + name: item.name, + value: item.ref + }) + ); + + const applicationsList = ( + await applications.listApplications({ pageSize: 1000 }) + ).items.map((item) => ({ + name: item.name, + value: item.ref + })); + + const answers = { + ref, + name: await input({ + message: "Friendly name", + required: true, + default: applicationFromDB.name + }), + trunkRef: await select({ + message: "Trunk", + choices: [{ name: "None", value: null }].concat(trunksList), + default: applicationFromDB.trunk?.ref + }), + appRef: await select({ + message: "Application", + choices: [{ name: "None", value: null }].concat(applicationsList), + default: applicationFromDB.appRef + }), + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answers.confirm) { + this.log("Aborted!"); + return; + } + + try { + await numbers.updateNumber(answers as unknown as UpdateNumberRequest); + + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/trunks/create.ts b/mods/ctl/src/commands/sipnet/trunks/create.ts new file mode 100644 index 000000000..427280380 --- /dev/null +++ b/mods/ctl/src/commands/sipnet/trunks/create.ts @@ -0,0 +1,131 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { CreateTrunkRequest } from "@fonoster/types"; +import { confirm, input, number, select } from "@inquirer/prompts"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import errorHandler from "../../../errorHandler"; + +export default class Create extends AuthenticatedCommand { + static override readonly description = "add a new Trunk to the SIP network"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + + public async run(): Promise { + this.log("This utility will help you add a new Trunk to the SIP network."); + this.log("Press ^C at any time to quit."); + + const client = await this.createSdkClient(); + const trunks = new SDK.Trunks(client); + const acls = new SDK.Acls(client); + const credentials = new SDK.Credentials(client); + + const listAcls = (await acls.listAcls({ pageSize: 100 })).items.map( + (item) => ({ + name: item.name, + value: item.ref + }) + ); + + const listCredentials = ( + await credentials.listCredentials({ + pageSize: 100 + }) + ).items.map((item) => ({ + name: item.name, + value: item.ref + })); + + const name = await input({ + message: "Friendly name", + required: true + }); + + const inboundAnswers = { + inboundUri: await input({ + message: "Inbound URI", + required: true + }), + accessControlListRef: await select({ + message: "Access Control List", + choices: [{ name: "None", value: null }].concat(listAcls) + }) + }; + + const needOutboundUri = await confirm({ + message: "Do you need an Outbound URI?" + }); + + let outboundAnswers = {}; + + if (needOutboundUri) { + outboundAnswers = { + outboundCredentialsRef: await select({ + message: "Outbound Credentials", + choices: [{ name: "None", value: null }].concat(listCredentials) + }), + uris: [ + { + host: await input({ + message: "Host", + required: true + }), + port: await number({ + message: "Port", + required: true, + default: 5060 + }), + transport: await select({ + message: "Transport", + choices: ["TCP", "UDP"] + }), + enabled: true, + weight: 1, + priority: 1, + user: await input({ + message: "User" + }) + } + ] + }; + } + + const confirmAnswers = await confirm({ + message: "Ready?" + }); + + if (!confirmAnswers) { + this.log("Aborted!"); + return; + } + + try { + await trunks.createTrunk({ + name, + sendRegister: true, + ...inboundAnswers, + ...outboundAnswers + } as unknown as CreateTrunkRequest); + + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/sipnet/trunks/delete.ts b/mods/ctl/src/commands/sipnet/trunks/delete.ts new file mode 100644 index 000000000..ff9ffafcc --- /dev/null +++ b/mods/ctl/src/commands/sipnet/trunks/delete.ts @@ -0,0 +1,43 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class Delete extends AuthenticatedCommand { + static override readonly description = + "remove a Trunk from the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the Trunk's reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Delete); + const { ref } = args; + const client = await this.createSdkClient(); + const trunks = new SDK.Trunks(client); + await trunks.deleteTrunk(ref); + this.log("Done!"); + } +} diff --git a/mods/ctl/src/commands/sipnet/trunks/get.ts b/mods/ctl/src/commands/sipnet/trunks/get.ts new file mode 100644 index 000000000..5062c545c --- /dev/null +++ b/mods/ctl/src/commands/sipnet/trunks/get.ts @@ -0,0 +1,87 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Args } from "@oclif/core"; +import cliui from "cliui"; +import moment from "moment"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import { getOutboundUri } from "../../../utils/getOutboundUri"; + +export default class Get extends AuthenticatedCommand { + static override readonly description = + "retrieve details of a Trunk by reference"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "The Trunk's reference", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Get); + const { ref } = args; + const client = await this.createSdkClient(); + const trunks = new SDK.Trunks(client); + const credentials = new SDK.Credentials(client); + const acls = new SDK.Acls(client); + + const response = await trunks.getTrunk(ref); + const credentialsList = await credentials.listCredentials({ + pageSize: 1000 + }); + const aclList = await acls.listAcls({ + pageSize: 1000 + }); + + const inboundCredentialsObject = credentialsList.items.find( + (item) => item.ref === response.inboundCredentialsRef + ); + + const outboundCredentialsObject = credentialsList.items.find( + (item) => item.ref === response.outboundCredentialsRef + ); + + const acl = aclList.items.find( + (item) => item.ref === response.accessControlListRef + ); + + const ui = cliui({ width: 200 }); + + ui.div( + "TRUNK DETAILS\n" + + "------------------\n" + + `NAME: \t${response.name}\n` + + `REF: \t${response.ref}\n` + + `INBOUND URI: \t${response.inboundUri ?? ""}\n` + + `INBOUND CREDENTIALS: \t${inboundCredentialsObject?.name ?? ""}\n` + + `INBOUND CREDENTIALS REF: \t${inboundCredentialsObject?.ref ?? ""}\n` + + `ACL: \t${acl?.name ?? ""}\n` + + `ACL REF: \t${acl?.ref ?? ""}\n` + + `OUTBOUND URIS: \t${getOutboundUri(response.uris)}\n` + + `OUTBOUND CREDENTIALS: \t${outboundCredentialsObject?.name ?? ""}\n` + + `OUTBOUND CREDENTIALS REF: \t${outboundCredentialsObject?.ref ?? ""}\n` + + `CREATED: \t${moment(response.createdAt).format("YYYY-MM-DD HH:mm:ss")}\n` + + `UPDATED: \t${moment(response.updatedAt).format("YYYY-MM-DD HH:mm:ss")}` + ); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/trunks/list.ts b/mods/ctl/src/commands/sipnet/trunks/list.ts new file mode 100644 index 000000000..4d506548c --- /dev/null +++ b/mods/ctl/src/commands/sipnet/trunks/list.ts @@ -0,0 +1,64 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { Flags } from "@oclif/core"; +import cliui from "cliui"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; + +export default class List extends AuthenticatedCommand { + static override readonly description = + "display all Trunks in the active Workspace"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly flags = { + "page-size": Flags.string({ + char: "s", + description: "the number of items to show", + default: "1000", + required: false + }) + }; + + public async run(): Promise { + const { flags } = await this.parse(List); + const client = await this.createSdkClient(); + const trunks = new SDK.Trunks(client); + const response = await trunks.listTrunks({ + pageSize: parseInt(flags["page-size"]) + }); + + const ui = cliui({ width: 100 }); + + ui.div( + { text: "REF", padding: [0, 0, 0, 0], width: 40 }, + { text: "NAME", padding: [0, 0, 0, 0], width: 20 }, + { text: "INBOUND URI", padding: [0, 0, 0, 0], width: 40 } + ); + + response.items.forEach((application) => { + ui.div( + { text: application.ref, padding: [0, 0, 0, 0], width: 40 }, + { text: application.name, padding: [0, 0, 0, 0], width: 20 }, + { text: application.inboundUri, padding: [0, 0, 0, 0], width: 40 } + ); + }); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/sipnet/trunks/update.ts b/mods/ctl/src/commands/sipnet/trunks/update.ts new file mode 100644 index 000000000..be646399b --- /dev/null +++ b/mods/ctl/src/commands/sipnet/trunks/update.ts @@ -0,0 +1,149 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { UpdateTrunkRequest } from "@fonoster/types"; +import { confirm, input, number, select } from "@inquirer/prompts"; +import { Args } from "@oclif/core"; +import { AuthenticatedCommand } from "../../../AuthenticatedCommand"; +import errorHandler from "../../../errorHandler"; + +export default class Update extends AuthenticatedCommand { + static override readonly description = "modify the configuration of a Trunk"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ description: "the Trunk to update", required: true }) + }; + + public async run(): Promise { + this.log("This utility will help you update a Trunk."); + this.log("Press ^C at any time to quit."); + this.log("(The previous outbound values will be lost.)"); + + const { args } = await this.parse(Update); + const { ref } = args; + const client = await this.createSdkClient(); + const trunks = new SDK.Trunks(client); + const acls = new SDK.Acls(client); + const credentials = new SDK.Credentials(client); + const trunkFromDB = await trunks.getTrunk(ref); + + const listAcls = (await acls.listAcls({ pageSize: 100 })).items.map( + (item) => ({ + name: item.name, + value: item.ref + }) + ); + + const listCredentials = ( + await credentials.listCredentials({ + pageSize: 100 + }) + ).items.map((item) => ({ + name: item.name, + value: item.ref + })); + + const name = await input({ + message: "Friendly name", + required: true, + default: trunkFromDB.name + }); + + const inboundAnswers = { + inboundUri: await input({ + message: "Inbound URI", + required: true, + default: trunkFromDB.inboundUri + }), + accessControlListRef: await select({ + message: "Access Control List", + choices: [{ name: "None", value: null }].concat(listAcls), + default: trunkFromDB.accessControlListRef + }), + inboundCredentialsRef: await select({ + message: "Inbound Credentials", + choices: [{ name: "None", value: null }].concat(listCredentials), + default: trunkFromDB.inboundCredentialsRef + }) + }; + + const needOutboundUri = await confirm({ + message: "Do you need an Outbound URI?" + }); + + let outboundAnswers = {}; + + if (needOutboundUri) { + outboundAnswers = { + outboundCredentialsRef: await select({ + message: "Outbound Credentials", + choices: [{ name: "None", value: null }].concat(listCredentials), + default: trunkFromDB.outboundCredentialsRef + }), + uris: [ + { + host: await input({ + message: "Host", + required: true + }), + port: await number({ + message: "Port", + required: true, + default: 5060 + }), + transport: await select({ + message: "Transport", + choices: ["TCP", "UDP"] + }), + enabled: true, + weight: 1, + priority: 1, + user: await input({ + message: "User" + }) + } + ] + }; + } + + const confirmAnswers = await confirm({ + message: "Ready?" + }); + + if (!confirmAnswers) { + this.log("Aborted!"); + return; + } + + try { + await trunks.updateTrunk({ + ref, + name, + sendRegister: true, + ...inboundAnswers, + ...outboundAnswers + } as unknown as UpdateTrunkRequest); + + this.log("Done!"); + } catch (e) { + errorHandler(e, this.error.bind(this)); + } + } +} diff --git a/mods/ctl/src/commands/utils/autopilotTestsCases.ts b/mods/ctl/src/commands/utils/autopilotTestsCases.ts new file mode 100644 index 000000000..7d6a6e414 --- /dev/null +++ b/mods/ctl/src/commands/utils/autopilotTestsCases.ts @@ -0,0 +1,71 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Flags } from "@oclif/core"; +import * as fs from "fs"; +import * as yaml from "js-yaml"; +import { AssistantConfig, evalTestCases, printEval } from "@fonoster/autopilot"; +import { AuthenticatedCommand } from "../../AuthenticatedCommand"; +import * as path from "path"; + +export default class AutopilotTestsCases extends AuthenticatedCommand< + typeof AutopilotTestsCases +> { + static override readonly description = + "experimental command to test an Autopilot's behavior"; + + static override readonly examples = [ + "<%= config.bin %> <%= command.id %> -f assistant.json", + "<%= config.bin %> <%= command.id %> -f assistant.yaml" + ]; + + static override readonly flags = { + file: Flags.string({ + char: "f", + description: "path to test cases file (json, yaml, or yml)", + required: true + }) + }; + + public async run(): Promise { + const { flags } = await this.parse(AutopilotTestsCases); + + const fileContent = fs.readFileSync(flags.file, "utf8"); + const extension = path.extname(flags.file).toLowerCase(); + + let assistantConfig: AssistantConfig; + + switch (extension) { + case ".yaml": + case ".yml": + assistantConfig = yaml.load(fileContent); + break; + case ".json": + assistantConfig = JSON.parse(fileContent); + break; + default: + throw new Error( + "Unsupported file format. Please use .json, .yaml, or .yml files" + ); + } + + const result = await evalTestCases(assistantConfig); + printEval(result); + } +} diff --git a/mods/ctl/src/commands/workspaces/active.ts b/mods/ctl/src/commands/workspaces/active.ts new file mode 100644 index 000000000..389714028 --- /dev/null +++ b/mods/ctl/src/commands/workspaces/active.ts @@ -0,0 +1,49 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Command } from "@oclif/core"; +import { getConfig } from "../../config"; +import { CONFIG_FILE } from "../../constants"; +import cliui from "cliui"; + +export default class Active extends Command { + static override description = "display the name of the active Workspace"; + static override examples = ["<%= config.bin %> <%= command.id %>"]; + + public async run(): Promise { + const workspaces = getConfig(CONFIG_FILE); + const activeWorkspace = workspaces.find((w) => w.active === true); + + const { workspaceName, workspaceRef, workspaceAccessKeyId, endpoint } = + activeWorkspace; + + const ui = cliui({ width: 200 }); + + ui.div( + "ACTIVE WORKSPACE\n" + + "------------------\n" + + `NAME: \t${workspaceName}\n` + + `REF: \t${workspaceRef}\n` + + `ACCESS KEY ID: \t${workspaceAccessKeyId}\n` + + `ENDPOINT: \t${endpoint}\n` + ); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/workspaces/list.ts b/mods/ctl/src/commands/workspaces/list.ts new file mode 100644 index 000000000..2cfee8a81 --- /dev/null +++ b/mods/ctl/src/commands/workspaces/list.ts @@ -0,0 +1,49 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Command } from "@oclif/core"; +import cliui from "cliui"; +import { getConfig } from "../../config"; +import { CONFIG_FILE } from "../../constants"; + +export default class List extends Command { + static override description = "display all linked Workspaces"; + static override examples = ["<%= config.bin %> <%= command.id %>"]; + + public async run(): Promise { + const workspaces = getConfig(CONFIG_FILE); + const ui = cliui({ width: 120 }); + + ui.div( + { text: "REF", padding: [0, 0, 0, 0] }, + { text: "NAME", padding: [0, 0, 0, 0] }, + { text: "STATUS", padding: [0, 0, 0, 0] } + ); + + workspaces.forEach((workspace) => { + ui.div( + { text: workspace.workspaceRef, padding: [0, 0, 0, 0] }, + { text: workspace.workspaceName, padding: [0, 0, 0, 0] }, + { text: workspace.active ? "[ACTIVE]" : "", padding: [0, 0, 0, 0] } + ); + }); + + this.log(ui.toString()); + } +} diff --git a/mods/ctl/src/commands/workspaces/login.ts b/mods/ctl/src/commands/workspaces/login.ts new file mode 100644 index 000000000..8abd83d8a --- /dev/null +++ b/mods/ctl/src/commands/workspaces/login.ts @@ -0,0 +1,132 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as SDK from "@fonoster/sdk"; +import { confirm, input, password } from "@inquirer/prompts"; +import { BaseCommand } from "../../BaseCommand"; +import { WorkspaceConfig, addWorkspace, getConfig } from "../../config"; +import { saveConfig } from "../../config/saveConfig"; +import { CONFIG_FILE } from "../../constants"; + +export default class Login extends BaseCommand { + static override description = "link a Workspace to the local environment"; + static override examples = ["<%= config.bin %> <%= command.id %>"]; + + public async run(): Promise { + this.log("This utility will help you add a Workspace."); + this.log("Press ^C at any time to quit."); + + const answers = { + endpoint: await input({ + message: "Endpoint", + default: "api.fonoster.com" + }), + accessKeyId: await input({ + message: "Access Key Id", + required: true + }), + accessKeySecret: await password({ + message: "Access Key Secret" + }), + confirm: await confirm({ + message: "Ready?" + }) + }; + + if (!answers.confirm) { + this.log("Aborted!"); + return; + } + + try { + const workspaceFromDB = await this.getWorkspaceFromDB(answers); + + this.saveConfig({ + ...answers, + workspaceAccessKeyId: workspaceFromDB.accessKeyId, + ref: workspaceFromDB.ref, + name: workspaceFromDB.name + }); + } catch (e) { + this.error(e.message); + } + } + + private saveConfig(params: { + endpoint: string; + workspaceAccessKeyId: string; + accessKeyId: string; + accessKeySecret: string; + ref: string; + name: string; + }) { + const { + endpoint, + workspaceAccessKeyId, + accessKeyId, + accessKeySecret, + ref: workspaceRef, + name: workspaceName + } = params; + + const workspace: WorkspaceConfig = { + workspaceAccessKeyId, + endpoint, + accessKeyId, + accessKeySecret, + workspaceRef, + workspaceName + }; + + const config = getConfig(CONFIG_FILE); + const updatedConfig = addWorkspace(workspace, config); + saveConfig(CONFIG_FILE, updatedConfig); + + this.log("Done!"); + } + + private async getWorkspaceFromDB(params: { + endpoint: string; + accessKeyId: string; + accessKeySecret: string; + }) { + const { flags } = await this.parse(Login); + const { endpoint, accessKeyId, accessKeySecret } = params; + const client = new SDK.Client({ + endpoint, + accessKeyId, + allowInsecure: flags.insecure + }); + + try { + await client.loginWithApiKey(accessKeyId, accessKeySecret); + + const workspaces = new SDK.Workspaces(client); + const workspaceFromDB = (await workspaces.listWorkspaces()).items[0]; + + if (!workspaceFromDB) { + this.error("Invalid credentials!"); + } + + return workspaceFromDB; + } catch (e) { + this.error(e.message); + } + } +} diff --git a/mods/ctl/src/commands/workspaces/logout.ts b/mods/ctl/src/commands/workspaces/logout.ts new file mode 100644 index 000000000..2d9e4b1e4 --- /dev/null +++ b/mods/ctl/src/commands/workspaces/logout.ts @@ -0,0 +1,44 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Args, Command } from "@oclif/core"; +import { getConfig, removeWorkspace } from "../../config"; +import { saveConfig } from "../../config/saveConfig"; +import { CONFIG_FILE } from "../../constants"; + +export default class Logout extends Command { + static override readonly description = + "unlink a Workspace from the local environment"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "the Workspace to unlink from", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Logout); + const { ref } = args; + const workspaces = getConfig(CONFIG_FILE); + const updatedWorkspaces = removeWorkspace(ref, workspaces); + saveConfig(CONFIG_FILE, updatedWorkspaces); + this.log("Done!"); + } +} diff --git a/mods/ctl/src/commands/workspaces/use.ts b/mods/ctl/src/commands/workspaces/use.ts new file mode 100644 index 000000000..3f99a562c --- /dev/null +++ b/mods/ctl/src/commands/workspaces/use.ts @@ -0,0 +1,52 @@ +/* eslint-disable import/no-unresolved */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Args, Command } from "@oclif/core"; +import { + getConfig, + getActiveWorkspace, + setActiveWorkspace +} from "../../config"; +import { saveConfig } from "../../config/saveConfig"; +import { CONFIG_FILE } from "../../constants"; + +export default class Use extends Command { + static override readonly description = "set a Workspace as the default"; + static override readonly examples = ["<%= config.bin %> <%= command.id %>"]; + static override readonly args = { + ref: Args.string({ + description: "The Workspace to unlink from", + required: true + }) + }; + + public async run(): Promise { + const { args } = await this.parse(Use); + const { ref } = args; + const workspaces = getConfig(CONFIG_FILE); + const updatedWorkspaces = setActiveWorkspace(ref, workspaces); + const activeWorkspace = getActiveWorkspace(updatedWorkspaces); + + saveConfig(CONFIG_FILE, updatedWorkspaces); + + const { workspaceName, workspaceRef } = activeWorkspace; + + this.log(`Current Workspace: ${workspaceName} (${workspaceRef})`); + } +} diff --git a/mods/ctl/src/config.ts b/mods/ctl/src/config.ts deleted file mode 100644 index ae7b3225e..000000000 --- a/mods/ctl/src/config.ts +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { mute } from "@fonoster/logger"; -import { join } from "path"; -import { homedir } from "os"; -const BASE_DIR = join(homedir(), ".fonoster"); -const PATH_TO_CONFIG = join(BASE_DIR, "config"); -const fs = require("fs"); - -mute(); - -export interface ProjectConfig { - endpoint: string; - accessKeyId: string; - accessKeySecret: string; -} - -export interface Config { - endpoint: string; - accessKeyId: string; - accessKeySecret: string; - defaultProject?: { - name: string; - accessKeyId: string; - accessKeySecret: string; - }; -} - -export function getConfig(): Config { - if (!fs.existsSync(BASE_DIR)) { - throw new Error("no config found"); - } - try { - return JSON.parse(fs.readFileSync(PATH_TO_CONFIG)); - } catch (e) { - throw new Error("malformed config: " + e); - } -} - -export function getProjectConfig() { - const { endpoint, defaultProject } = getConfig(); - return { - endpoint, - accessKeyId: defaultProject.accessKeyId, - accessKeySecret: defaultProject.accessKeySecret - }; -} - -export function setConfig(config: Config) { - if (fs.existsSync(BASE_DIR)) { - fs.rmSync(BASE_DIR, { recursive: true }); - } - fs.mkdirSync(BASE_DIR, { recursive: true }); - fs.writeFileSync(PATH_TO_CONFIG, JSON.stringify(config, null, " ")); -} - -export function unsetDefaultProject() { - const config = getConfig(); - config.defaultProject = void 0; - setConfig(config); -} - -export function isDefaultProject(ref: string) { - const config = getConfig(); - return config.defaultProject && config.defaultProject.accessKeyId === ref; -} - -export function hasProjectConfig() { - const config = getConfig(); - return config.defaultProject; -} diff --git a/mods/ctl/src/config/addWorkspace.ts b/mods/ctl/src/config/addWorkspace.ts new file mode 100644 index 000000000..e69889894 --- /dev/null +++ b/mods/ctl/src/config/addWorkspace.ts @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { WorkspaceConfig } from "./types"; +import { workspaceConfigSchema } from "./validations"; + +function addWorkspace( + config: WorkspaceConfig, + workspaces: WorkspaceConfig[] +): WorkspaceConfig[] { + workspaceConfigSchema.parse(config); + + const deactivateAll = (workspaces: WorkspaceConfig[]) => + workspaces.map((workspace) => ({ ...workspace, active: false })); + + const workspaceIndex = workspaces.findIndex( + (workspace) => workspace.workspaceRef === config.workspaceRef + ); + + if (workspaceIndex === -1) { + return deactivateAll(workspaces).concat({ ...config, active: true }); + } + + workspaces = deactivateAll(workspaces); + workspaces[workspaceIndex] = { ...config, active: true }; + + return workspaces; +} + +export { addWorkspace }; diff --git a/mods/ctl/src/config/getActiveWorkspace.ts b/mods/ctl/src/config/getActiveWorkspace.ts new file mode 100644 index 000000000..d7d82b636 --- /dev/null +++ b/mods/ctl/src/config/getActiveWorkspace.ts @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { WorkspaceConfig } from "./types"; + +function getActiveWorkspace(workspaces: WorkspaceConfig[]): WorkspaceConfig { + return workspaces.find((w) => w.active === true); +} + +export { getActiveWorkspace }; diff --git a/mods/ctl/src/config/getConfig.ts b/mods/ctl/src/config/getConfig.ts new file mode 100644 index 000000000..2bb4d4e0d --- /dev/null +++ b/mods/ctl/src/config/getConfig.ts @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fs from "fs"; +import { WorkspaceConfig } from "./types"; +// import { workspaceConfigSchema } from "./validations"; + +function getConfig(path: string): WorkspaceConfig[] { + if (!fs.existsSync(path)) { + return []; + } + + const data = fs.readFileSync(path, "utf8"); + // workspaceConfigSchema.parse(config); + + return JSON.parse(data) as WorkspaceConfig[]; +} + +export { getConfig }; diff --git a/mods/ctl/src/config/index.ts b/mods/ctl/src/config/index.ts new file mode 100644 index 000000000..b89aa51f2 --- /dev/null +++ b/mods/ctl/src/config/index.ts @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./addWorkspace"; +export * from "./getConfig"; +export * from "./getActiveWorkspace"; +export * from "./removeWorkspace"; +export * from "./saveConfig"; +export * from "./setActiveWorkspace"; +export * from "./types"; diff --git a/mods/ctl/src/config/removeWorkspace.ts b/mods/ctl/src/config/removeWorkspace.ts new file mode 100644 index 000000000..2de682df7 --- /dev/null +++ b/mods/ctl/src/config/removeWorkspace.ts @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { WorkspaceConfig } from "./types"; + +function removeWorkspace( + ref: string, + workspaces: WorkspaceConfig[] +): WorkspaceConfig[] { + return workspaces.filter((w) => w.workspaceRef !== ref); +} + +export { removeWorkspace }; diff --git a/mods/ctl/src/config/saveConfig.ts b/mods/ctl/src/config/saveConfig.ts new file mode 100644 index 000000000..ec101d0de --- /dev/null +++ b/mods/ctl/src/config/saveConfig.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fs from "fs"; +import { WorkspaceConfig } from "./types"; +import { BASE_DIR } from "../constants"; + +function saveConfig(path: string, config: WorkspaceConfig[]): void { + if (!fs.existsSync(BASE_DIR)) { + fs.mkdirSync(BASE_DIR, { recursive: true }); + } + fs.writeFileSync(path, JSON.stringify(config, null, 2)); +} + +export { saveConfig }; diff --git a/mods/ctl/src/config/setActiveWorkspace.ts b/mods/ctl/src/config/setActiveWorkspace.ts new file mode 100644 index 000000000..2230bc02c --- /dev/null +++ b/mods/ctl/src/config/setActiveWorkspace.ts @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { WorkspaceConfig } from "./types"; + +function setActiveWorkspace( + ref: string, + workspaces: WorkspaceConfig[] +): WorkspaceConfig[] { + return workspaces.map((w) => { + if (w.workspaceRef === ref) { + return { ...w, active: true }; + } + + return { ...w, active: false }; + }); +} + +export { setActiveWorkspace }; diff --git a/mods/ctl/src/config/types.ts b/mods/ctl/src/config/types.ts new file mode 100644 index 000000000..83601fa4e --- /dev/null +++ b/mods/ctl/src/config/types.ts @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { workspaceConfigSchema } from "./validations"; + +type WorkspaceConfig = z.infer; + +export type { WorkspaceConfig }; diff --git a/mods/ctl/src/config/validations.ts b/mods/ctl/src/config/validations.ts new file mode 100644 index 000000000..da6d43cbe --- /dev/null +++ b/mods/ctl/src/config/validations.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; + +const workspaceConfigSchema = z.object({ + endpoint: z.string().min(1, "The endpoint value is required"), + workspaceAccessKeyId: z + .string() + .min(1, "The workspaceAccessKeyId value is required"), + accessKeyId: z.string().min(1, "The accessKeyId value is required"), + accessKeySecret: z.string().min(1, "The accessKeySecret value is required"), + workspaceRef: z.string().min(1, "The workspaceRef value is required"), + workspaceName: z.string().min(1, "The workspaceName value is required"), + active: z.boolean().optional() +}); + +export { workspaceConfigSchema }; diff --git a/mods/ctl/src/constants.ts b/mods/ctl/src/constants.ts new file mode 100644 index 000000000..999698a71 --- /dev/null +++ b/mods/ctl/src/constants.ts @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { homedir } from "os"; +import { join } from "path"; + +export const BASE_DIR = join(homedir(), ".fonoster"); +export const CONFIG_FILE = join(homedir(), ".fonoster", "config.json"); +export const FONOSTER_ACCESS_CONTROL_LIST = ["165.22.7.155/32"]; // Warning: We will need to allow passing this as a parameter +export const FONOSTER_ORIGINATION_URI_BASE = "pstn.fonoster.com"; +export const TWILIO_PSTN_URI_BASE = "pstn.twilio.com"; +export const WORKSPACE_ENDPOINT = "api.fonoster.com"; diff --git a/mods/ctl/src/data/voices.ts b/mods/ctl/src/data/voices.ts deleted file mode 100644 index 5a3bfca89..000000000 --- a/mods/ctl/src/data/voices.ts +++ /dev/null @@ -1,334 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export const voices = [ - "ar-XA-Wavenet-A", - "ar-XA-Wavenet-B", - "ar-XA-Wavenet-C", - "ar-XA-Wavenet-D", - "bn-IN-Wavenet-A", - "bn-IN-Wavenet-B", - "en-GB-Wavenet-A", - "en-GB-Wavenet-B", - "en-GB-Wavenet-C", - "en-GB-Wavenet-D", - "en-GB-Wavenet-F", - "fr-CA-Wavenet-A", - "fr-CA-Wavenet-B", - "fr-CA-Wavenet-C", - "fr-CA-Wavenet-D", - "en-US-Wavenet-G", - "en-US-Wavenet-H", - "en-US-Wavenet-I", - "en-US-Wavenet-J", - "en-US-Wavenet-A", - "en-US-Wavenet-B", - "en-US-Wavenet-C", - "en-US-Wavenet-D", - "en-US-Wavenet-E", - "en-US-Wavenet-F", - "es-ES-Wavenet-C", - "es-ES-Wavenet-D", - "es-ES-Wavenet-B", - "fi-FI-Wavenet-A", - "gu-IN-Wavenet-A", - "gu-IN-Wavenet-B", - "ja-JP-Wavenet-B", - "ja-JP-Wavenet-C", - "ja-JP-Wavenet-D", - "ja-JP-Wavenet-A", - "kn-IN-Wavenet-A", - "kn-IN-Wavenet-B", - "ml-IN-Wavenet-A", - "ml-IN-Wavenet-B", - "sv-SE-Wavenet-A", - "sv-SE-Wavenet-B", - "sv-SE-Wavenet-C", - "sv-SE-Wavenet-D", - "sv-SE-Wavenet-E", - "ta-IN-Wavenet-A", - "ta-IN-Wavenet-B", - "tr-TR-Wavenet-B", - "tr-TR-Wavenet-C", - "tr-TR-Wavenet-D", - "tr-TR-Wavenet-E", - "tr-TR-Wavenet-A", - "ms-MY-Wavenet-A", - "ms-MY-Wavenet-B", - "ms-MY-Wavenet-C", - "ms-MY-Wavenet-D", - "pa-IN-Wavenet-A", - "pa-IN-Wavenet-B", - "pa-IN-Wavenet-C", - "pa-IN-Wavenet-D", - "cs-CZ-Wavenet-A", - "de-DE-Wavenet-F", - "de-DE-Wavenet-A", - "de-DE-Wavenet-B", - "de-DE-Wavenet-C", - "de-DE-Wavenet-D", - "de-DE-Wavenet-E", - "en-AU-Wavenet-A", - "en-AU-Wavenet-B", - "en-AU-Wavenet-C", - "en-AU-Wavenet-D", - "en-IN-Wavenet-D", - "en-IN-Wavenet-A", - "en-IN-Wavenet-B", - "en-IN-Wavenet-C", - "es-US-Wavenet-A", - "es-US-Wavenet-B", - "es-US-Wavenet-C", - "fr-FR-Wavenet-E", - "fr-FR-Wavenet-A", - "fr-FR-Wavenet-B", - "fr-FR-Wavenet-C", - "fr-FR-Wavenet-D", - "hi-IN-Wavenet-D", - "hi-IN-Wavenet-A", - "hi-IN-Wavenet-B", - "hi-IN-Wavenet-C", - "id-ID-Wavenet-D", - "id-ID-Wavenet-A", - "id-ID-Wavenet-B", - "id-ID-Wavenet-C", - "it-IT-Wavenet-A", - "it-IT-Wavenet-B", - "it-IT-Wavenet-C", - "it-IT-Wavenet-D", - "ko-KR-Wavenet-A", - "ko-KR-Wavenet-B", - "ko-KR-Wavenet-C", - "ko-KR-Wavenet-D", - "ru-RU-Wavenet-E", - "ru-RU-Wavenet-A", - "ru-RU-Wavenet-B", - "ru-RU-Wavenet-C", - "ru-RU-Wavenet-D", - "uk-UA-Wavenet-A", - "cmn-CN-Wavenet-A", - "cmn-CN-Wavenet-B", - "cmn-CN-Wavenet-C", - "cmn-CN-Wavenet-D", - "cmn-TW-Wavenet-A", - "cmn-TW-Wavenet-B", - "cmn-TW-Wavenet-C", - "da-DK-Wavenet-C", - "da-DK-Wavenet-D", - "da-DK-Wavenet-E", - "da-DK-Wavenet-A", - "el-GR-Wavenet-A", - "fil-PH-Wavenet-A", - "fil-PH-Wavenet-B", - "fil-PH-Wavenet-C", - "fil-PH-Wavenet-D", - "hu-HU-Wavenet-A", - "nb-NO-Wavenet-A", - "nb-NO-Wavenet-B", - "nb-NO-Wavenet-C", - "nb-NO-Wavenet-D", - "nb-no-Wavenet-E", - "nl-BE-Wavenet-A", - "nl-BE-Wavenet-B", - "nl-NL-Wavenet-B", - "nl-NL-Wavenet-C", - "nl-NL-Wavenet-D", - "nl-NL-Wavenet-A", - "nl-NL-Wavenet-E", - "pt-PT-Wavenet-A", - "pt-PT-Wavenet-B", - "pt-PT-Wavenet-C", - "pt-PT-Wavenet-D", - "sk-SK-Wavenet-A", - "vi-VN-Wavenet-A", - "vi-VN-Wavenet-B", - "vi-VN-Wavenet-C", - "vi-VN-Wavenet-D", - "pl-PL-Wavenet-A", - "pl-PL-Wavenet-B", - "pl-PL-Wavenet-C", - "pl-PL-Wavenet-E", - "pl-PL-Wavenet-D", - "pt-BR-Wavenet-A", - "pt-BR-Wavenet-B", - "ro-RO-Wavenet-A", - "da-DK-Standard-A", - "da-DK-Standard-C", - "da-DK-Standard-D", - "da-DK-Standard-E", - "fi-FI-Standard-A", - "is-is-Standard-A", - "nb-NO-Standard-A", - "nb-NO-Standard-B", - "nb-NO-Standard-C", - "nb-NO-Standard-D", - "nb-no-Standard-E", - "pt-PT-Standard-A", - "pt-PT-Standard-B", - "pt-PT-Standard-C", - "pt-PT-Standard-D", - "sv-SE-Standard-B", - "sv-SE-Standard-C", - "sv-SE-Standard-D", - "sv-SE-Standard-E", - "sv-SE-Standard-A", - "fr-FR-Standard-A", - "fr-FR-Standard-B", - "fr-FR-Standard-C", - "fr-FR-Standard-D", - "de-DE-Standard-E", - "de-DE-Standard-A", - "de-DE-Standard-B", - "de-DE-Standard-C", - "de-DE-Standard-D", - "de-DE-Standard-F", - "fr-CA-Standard-A", - "fr-CA-Standard-B", - "fr-CA-Standard-C", - "fr-CA-Standard-D", - "it-IT-Standard-B", - "it-IT-Standard-C", - "it-IT-Standard-D", - "en-AU-Standard-A", - "en-AU-Standard-B", - "en-AU-Standard-C", - "en-AU-Standard-D", - "en-GB-Standard-A", - "en-GB-Standard-B", - "en-GB-Standard-C", - "en-GB-Standard-D", - "en-GB-Standard-F", - "th-TH-Standard-A", - "bn-IN-Standard-A", - "bn-IN-Standard-B", - "en-IN-Standard-D", - "en-IN-Standard-A", - "en-IN-Standard-B", - "en-IN-Standard-C", - "gu-IN-Standard-A", - "gu-IN-Standard-B", - "hi-IN-Standard-D", - "hi-IN-Standard-A", - "hi-IN-Standard-B", - "hi-IN-Standard-C", - "kn-IN-Standard-A", - "kn-IN-Standard-B", - "ml-IN-Standard-A", - "ml-IN-Standard-B", - "ta-IN-Standard-A", - "ta-IN-Standard-B", - "te-IN-Standard-A", - "te-IN-Standard-B", - "pa-IN-Standard-A", - "pa-IN-Standard-B", - "pa-IN-Standard-C", - "pa-IN-Standard-D", - "af-ZA-Standard-A", - "bg-bg-Standard-A", - "hu-HU-Standard-A", - "lv-lv-Standard-A", - "ro-RO-Standard-A", - "sk-SK-Standard-A", - "sr-rs-Standard-A", - "uk-UA-Standard-A", - "pl-PL-Standard-A", - "pl-PL-Standard-B", - "pl-PL-Standard-C", - "pl-PL-Standard-E", - "pl-PL-Standard-D", - "tr-TR-Standard-B", - "tr-TR-Standard-C", - "tr-TR-Standard-D", - "tr-TR-Standard-E", - "tr-TR-Standard-A", - "cs-CZ-Standard-A", - "el-GR-Standard-A", - "pt-BR-Standard-A", - "pt-BR-Standard-B", - "es-US-Standard-A", - "es-US-Standard-B", - "es-US-Standard-C", - "ms-MY-Standard-A", - "ms-MY-Standard-B", - "ms-MY-Standard-C", - "ms-MY-Standard-D", - "id-ID-Standard-A", - "id-ID-Standard-B", - "id-ID-Standard-C", - "id-ID-Standard-D", - "nl-BE-Standard-A", - "nl-BE-Standard-B", - "nl-NL-Standard-B", - "nl-NL-Standard-C", - "nl-NL-Standard-D", - "nl-NL-Standard-A", - "nl-NL-Standard-E", - "fil-PH-Standard-A", - "fil-PH-Standard-B", - "fil-PH-Standard-C", - "fil-PH-Standard-D", - "yue-HK-Standard-A", - "yue-HK-Standard-B", - "yue-HK-Standard-C", - "yue-HK-Standard-D", - "cmn-CN-Standard-C", - "cmn-CN-Standard-B", - "cmn-CN-Standard-A", - "cmn-CN-Standard-D", - "ja-JP-Standard-A", - "ja-JP-Standard-B", - "ja-JP-Standard-C", - "ja-JP-Standard-D", - "cmn-TW-Standard-A", - "cmn-TW-Standard-B", - "cmn-TW-Standard-C", - "ko-KR-Standard-B", - "ko-KR-Standard-C", - "ko-KR-Standard-D", - "ko-KR-Standard-A", - "vi-VN-Standard-A", - "vi-VN-Standard-B", - "vi-VN-Standard-C", - "vi-VN-Standard-D", - "ar-XA-Standard-A", - "ar-XA-Standard-B", - "ar-XA-Standard-C", - "ar-XA-Standard-D", - "fr-FR-Standard-E", - "it-IT-Standard-A", - "ru-RU-Standard-E", - "ru-RU-Standard-A", - "ru-RU-Standard-B", - "ru-RU-Standard-C", - "ru-RU-Standard-D", - "en-US-Standard-A", - "en-US-Standard-B", - "en-US-Standard-C", - "en-US-Standard-D", - "en-US-Standard-E", - "en-US-Standard-F", - "en-US-Standard-G", - "en-US-Standard-H", - "en-US-Standard-I", - "en-US-Standard-J", - "ca-es-Standard-A", - "es-ES-Standard-C", - "es-ES-Standard-D", - "es-ES-Standard-B", - "es-ES-Standard-A" -]; diff --git a/mods/ctl/src/decorators/project_guard.ts b/mods/ctl/src/decorators/project_guard.ts deleted file mode 100644 index 8fcbfb3bb..000000000 --- a/mods/ctl/src/decorators/project_guard.ts +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { CLIError } from "@oclif/errors"; -import { hasProjectConfig } from "../config"; - -/** - * Project Guard - * - * @description Guardian that is responsible for validating that a default project exists. - * - * @return {*} {MethodDecorator} - * @author Fonoster - */ -export const ProjectGuard = function (): MethodDecorator { - return function ( - _target: Object, - _propertyKey: string | symbol, - descriptor: PropertyDescriptor - ) { - const method = descriptor.value; - - descriptor.value = async function (...args) { - if (!hasProjectConfig()) { - throw new CLIError( - "you must set a default project before using this command" - ); - } - - return method.apply(this, args); - }; - - return descriptor; - }; -}; diff --git a/mods/ctl/src/errorHandler.ts b/mods/ctl/src/errorHandler.ts new file mode 100644 index 000000000..dbeab5796 --- /dev/null +++ b/mods/ctl/src/errorHandler.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function errorHandler(e: unknown, log: (message: string) => void): void { + const error = e as { code?: number; message: string }; + if (error.code === 3) { + const splitPoint = "3 INVALID_ARGUMENT:"; + const message = error.message.split(splitPoint); + log(message[1]); + return; + } + log?.(error.message.trim()); +} + +export default errorHandler; diff --git a/mods/ctl/src/help.ts b/mods/ctl/src/help.ts deleted file mode 100644 index 39d960f61..000000000 --- a/mods/ctl/src/help.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Help } from "@oclif/plugin-help"; - -const figlet = require("figlet"); - -export default class MyHelpClass extends Help { - protected showRootHelp() { - this.showLogo(); - - console.log(this.formatRoot()); - console.log(""); - - console.log(this.formatCommands(this.customCommands)); - console.log(""); - } - - private showLogo() { - console.log("\x1b[32m"); - console.log( - figlet.textSync("Fonoster", { - horizontalLayout: "default", - verticalLayout: "default", - width: 60, - whitespaceBreak: true - }) - ); - console.log("\x1b[0m"); - } - - private get customCommands() { - return this.sortedCommands - .filter((c) => c.id) - .sort((a, b) => (a.id.includes(":") ? 1 : b.id.includes(":") ? -1 : 0)); - } -} diff --git a/mods/ctl/src/index.ts b/mods/ctl/src/index.ts deleted file mode 100644 index f7ede13a4..000000000 --- a/mods/ctl/src/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export { run } from "@oclif/command"; diff --git a/mods/ctl/src/utils.ts b/mods/ctl/src/utils.ts deleted file mode 100644 index ee52a7f0d..000000000 --- a/mods/ctl/src/utils.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export function toPascalCase(str: string) { - return str - .replace(/(?:^\w|[A-Z]|\b\w)/g, function (word, index) { - return index === 0 ? word.toUpperCase() : word.toLowerCase(); - }) - .replace(/\s+/g, ""); -} diff --git a/mods/ctl/src/utils/assignTwilioNumberToTrunk.ts b/mods/ctl/src/utils/assignTwilioNumberToTrunk.ts new file mode 100644 index 000000000..7926c040e --- /dev/null +++ b/mods/ctl/src/utils/assignTwilioNumberToTrunk.ts @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Twilio } from "twilio"; + +async function assignTwilioNumberToTrunk( + client: Twilio, + phoneNumber: string, + trunkSid: string +): Promise { + try { + const numbers = await client.incomingPhoneNumbers.list({ + phoneNumber, + limit: 1 + }); + + if (numbers.length === 0) { + throw new Error( + `Phone number ${phoneNumber} not found in your Twilio account.` + ); + } + + const numberSid = numbers[0].sid; + + // Step 2: Update the Voice URL of the number to point to the trunk's domain URI + await client.incomingPhoneNumbers(numberSid).update({ + trunkSid + }); + } catch (error: unknown) { + throw new Error( + `Failed to assign phone number to trunk: ${(error as Error).message}` + ); + } +} + +export { assignTwilioNumberToTrunk }; diff --git a/mods/ctl/src/utils/calculateFutureDate.ts b/mods/ctl/src/utils/calculateFutureDate.ts new file mode 100644 index 000000000..b9793a6b1 --- /dev/null +++ b/mods/ctl/src/utils/calculateFutureDate.ts @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import moment from "moment"; + +function calculateFutureDate(input: string): Date { + const value = parseInt(input, 10); + const unit = input.replace(/\d/g, "").toLowerCase(); // Extract the unit (d, mo) + + switch (unit) { + case "d": + return moment().add(value, "days").toDate(); + case "mo": + return moment().add(value, "months").toDate(); + default: + throw new Error( + `Invalid unit: ${unit}. Use 'd' for days or 'mo' for months.` + ); + } +} + +export { calculateFutureDate }; diff --git a/mods/ctl/src/utils/createTwilioTrunk.ts b/mods/ctl/src/utils/createTwilioTrunk.ts new file mode 100644 index 000000000..ee2dec422 --- /dev/null +++ b/mods/ctl/src/utils/createTwilioTrunk.ts @@ -0,0 +1,72 @@ +/* eslint-disable no-loops/no-loops */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Twilio } from "twilio"; +import { TWILIO_PSTN_URI_BASE } from "../constants"; +import { TwilioTrunkParams } from "."; + +async function createTwilioTrunk( + client: Twilio, + params: TwilioTrunkParams +): Promise { + const { resourceRef, originationUriBase, aclEntries } = params; + + try { + const aclName = `ACL-${resourceRef}`; + const trunkName = `Trunk-${resourceRef}`; + const domainName = `${resourceRef}.${TWILIO_PSTN_URI_BASE}`; + const originationUri = `sip:${resourceRef}.${originationUriBase}`; + + // Create ACLresource and entries + const acl = await client.sip.ipAccessControlLists.create({ + friendlyName: aclName + }); + + for (const ip of aclEntries) { + await client.sip.ipAccessControlLists(acl.sid).ipAddresses.create({ + friendlyName: `${resourceRef}-entry-${ip}`, + ipAddress: ip + }); + } + + // Create the trunk + const trunk = await client.trunking.v1.trunks.create({ + friendlyName: trunkName, + domainName: domainName + }); + + // Add the ACL to the trunk + await client.trunking.v1.trunks(trunk.sid).ipAccessControlLists.create({ + ipAccessControlListSid: acl.sid + }); + + // Create origination URL + await client.trunking.v1.trunks(trunk.sid).originationUrls.create({ + friendlyName: `Origination-${resourceRef}`, + sipUrl: originationUri, + priority: 10, + weight: 10, + enabled: true + }); + } catch (error: unknown) { + throw new Error(`Failed to create resources: ${(error as Error).message}`); + } +} + +export { createTwilioTrunk }; diff --git a/mods/ctl/src/utils/getFonosterNumberByTelUrl.ts b/mods/ctl/src/utils/getFonosterNumberByTelUrl.ts new file mode 100644 index 000000000..ce7892b65 --- /dev/null +++ b/mods/ctl/src/utils/getFonosterNumberByTelUrl.ts @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as Fonoster from "@fonoster/sdk"; +import { INumber } from "@fonoster/types"; + +async function getFonosterNumberByTelUrl( + client: Fonoster.Client, + telUrl: string +): Promise { + try { + const numbers = new Fonoster.Numbers(client); + const numbersList = await numbers.listNumbers({ pageSize: 1000 }); + return numbersList.items.filter((number) => number.telUrl === telUrl)[0]; + } catch (error: unknown) { + throw new Error( + `Error checking Fonoster Number existence: ${(error as Error).message}` + ); + } +} + +export { getFonosterNumberByTelUrl }; diff --git a/mods/ctl/src/utils/getFonosterTrunkByInboundUri.ts b/mods/ctl/src/utils/getFonosterTrunkByInboundUri.ts new file mode 100644 index 000000000..5d6a01902 --- /dev/null +++ b/mods/ctl/src/utils/getFonosterTrunkByInboundUri.ts @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as Fonoster from "@fonoster/sdk"; +import { Trunk } from "@fonoster/types"; + +async function getFonosterTrunkByInboundUri( + client: Fonoster.Client, + inboundUri: string +): Promise { + try { + const trunks = new Fonoster.Trunks(client); + const trunksList = await trunks.listTrunks({ pageSize: 1000 }); + return trunksList.items.filter( + (trunk) => trunk.inboundUri === inboundUri + )[0]; + } catch (error: unknown) { + throw new Error( + `Error checking SIP trunk existence: ${(error as Error).message}` + ); + } +} + +export { getFonosterTrunkByInboundUri }; diff --git a/mods/ctl/src/utils/getOutboundUri.ts b/mods/ctl/src/utils/getOutboundUri.ts new file mode 100644 index 000000000..fc1a8781e --- /dev/null +++ b/mods/ctl/src/utils/getOutboundUri.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type Uri = { + transport: string; + host: string; + port: number; +}; + +function getOutboundUri(uris: Uri[]): string { + const uri = uris[0]; + if (!uri) { + return ""; + } + return `${uri.transport.toLowerCase()}://${uri.host}:${uri.port}`; +} + +export { getOutboundUri }; diff --git a/mods/ctl/src/utils/getTwilioNumber.ts b/mods/ctl/src/utils/getTwilioNumber.ts new file mode 100644 index 000000000..9ddbc94cd --- /dev/null +++ b/mods/ctl/src/utils/getTwilioNumber.ts @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Twilio } from "twilio"; +import { IncomingPhoneNumberInstance } from "twilio/lib/rest/api/v2010/account/incomingPhoneNumber"; + +async function getTwilioNumber( + client: Twilio, + phoneNumber: string +): Promise { + try { + const numbers = await client.incomingPhoneNumbers.list(); + return numbers.filter((number) => number.phoneNumber === phoneNumber)[0]; + } catch (error: unknown) { + throw new Error( + `Error checking ownership of phone number: ${(error as Error).message}` + ); + } +} + +export { getTwilioNumber }; diff --git a/mods/ctl/src/utils/getTwilioTrunk.ts b/mods/ctl/src/utils/getTwilioTrunk.ts new file mode 100644 index 000000000..2f7277375 --- /dev/null +++ b/mods/ctl/src/utils/getTwilioTrunk.ts @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Twilio } from "twilio"; +import { TrunkInstance } from "twilio/lib/rest/trunking/v1/trunk"; + +async function getTwilioTrunk( + client: Twilio, + terminationSipUri: string +): Promise { + try { + const trunks = await client.trunking.v1.trunks.list(); + return trunks.filter((trunk) => trunk.domainName === terminationSipUri)[0]; + } catch (error: unknown) { + throw new Error( + `Error checking SIP trunk existence: ${(error as Error).message}` + ); + } +} + +export { getTwilioTrunk }; diff --git a/mods/ctl/src/utils/index.ts b/mods/ctl/src/utils/index.ts new file mode 100644 index 000000000..61d88cd63 --- /dev/null +++ b/mods/ctl/src/utils/index.ts @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./assignTwilioNumberToTrunk"; +export * from "./calculateFutureDate"; +export * from "./createTwilioTrunk"; +export * from "./getFonosterNumberByTelUrl"; +export * from "./getFonosterTrunkByInboundUri"; +export * from "./getTwilioNumber"; +export * from "./getTwilioTrunk"; +export * from "./linkTwilioNumberToApplication"; +export * from "./types"; diff --git a/mods/ctl/src/utils/linkTwilioNumberToApplication.ts b/mods/ctl/src/utils/linkTwilioNumberToApplication.ts new file mode 100644 index 000000000..b55d2b42a --- /dev/null +++ b/mods/ctl/src/utils/linkTwilioNumberToApplication.ts @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as Fonoster from "@fonoster/sdk"; +import { Transport } from "@fonoster/types"; +import phone from "phone"; +import { Twilio } from "twilio"; +import { TWILIO_PSTN_URI_BASE } from "../constants"; +import { + LinkTwilioNumberToApplicationParams, + assignTwilioNumberToTrunk, + createTwilioTrunk, + getFonosterNumberByTelUrl, + getFonosterTrunkByInboundUri, + getTwilioNumber, + getTwilioTrunk +} from "."; + +async function linkTwilioNumberToApplication( + twilioClient: Twilio, + fonosterClient: Fonoster.Client, + params: LinkTwilioNumberToApplicationParams +): Promise { + const { + applicationRef, + accessKeyId, + aclEntries, + originationUriBase, + phoneNumber, + friendlyName + } = params; + + const resourceRef = accessKeyId.toLowerCase(); + + const twilioNumber = await getTwilioNumber(twilioClient, phoneNumber); + + let twilioTrunk = await getTwilioTrunk( + twilioClient, + `${resourceRef}.${TWILIO_PSTN_URI_BASE}` + ); + + const fonosterTrunk = await getFonosterTrunkByInboundUri( + fonosterClient, + `${resourceRef}.${originationUriBase}` + ); + + const fonosterNumber = await getFonosterNumberByTelUrl( + fonosterClient, + `tel:${phoneNumber}` + ); + + if (!twilioNumber) { + throw Error(`The number ${phoneNumber} was not found in your account.`); + } + + if (!twilioTrunk) { + await createTwilioTrunk(twilioClient, { + resourceRef, + aclEntries, + originationUriBase + }); + + twilioTrunk = await getTwilioTrunk( + twilioClient, + `${resourceRef}.${TWILIO_PSTN_URI_BASE}` + ); + } + + await assignTwilioNumberToTrunk(twilioClient, phoneNumber, twilioTrunk.sid); + + let trunkRef = fonosterTrunk?.ref; + + if (!fonosterTrunk) { + const trunks = new Fonoster.Trunks(fonosterClient); + const response = await trunks.createTrunk({ + name: "Twilio Trunk", + inboundUri: `${resourceRef}.${originationUriBase}`, + sendRegister: true, + uris: [ + { + host: `${resourceRef}.${TWILIO_PSTN_URI_BASE}`, + port: 5060, + // TODO: This should be a parameter (e.g., a flag) + transport: "UDP" as Transport, + enabled: true, + weight: 10, + priority: 10 + } + ] + }); + + trunkRef = response.ref; + } + + if (fonosterNumber) { + const numbers = new Fonoster.Numbers(fonosterClient); + await numbers.deleteNumber(fonosterNumber.ref); + } + + const numbers = new Fonoster.Numbers(fonosterClient); + const phoneInfo = phone(phoneNumber); + + await numbers.createNumber({ + name: friendlyName ?? phoneNumber, + telUrl: `tel:${phoneNumber}`, + appRef: applicationRef, + trunkRef, + city: "unknown", + country: phoneInfo.countryIso3, + countryIsoCode: phoneInfo.countryIso2 + }); +} + +export { linkTwilioNumberToApplication }; diff --git a/mods/ctl/src/utils/types.ts b/mods/ctl/src/utils/types.ts new file mode 100644 index 000000000..8a65736f4 --- /dev/null +++ b/mods/ctl/src/utils/types.ts @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type LinkTwilioNumberToApplicationParams = { + phoneNumber: string; + accessKeyId: string; + aclEntries: string[]; + originationUriBase: string; + applicationRef: string; + friendlyName?: string; +}; + +type TwilioTrunkParams = { + resourceRef: string; + originationUriBase: string; + aclEntries: string[]; +}; + +export { LinkTwilioNumberToApplicationParams, TwilioTrunkParams }; diff --git a/mods/ctl/test/auth.unit.test.ts b/mods/ctl/test/auth.unit.test.ts deleted file mode 100644 index a56c8232b..000000000 --- a/mods/ctl/test/auth.unit.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import * as Config from '@oclif/config'; -import Logout from "../src/commands/auth/logout"; -import { fail } from "assert"; -import {join} from "path"; -import {homedir} from "os"; -const fs = require("fs"); - -describe("@fonoster/ctl/auth", () => { - // Cleanup authenticated folder if exist - before(async ()=> { - const BASE_DIR = join(homedir(), ".fonoster"); - if (fs.existsSync(BASE_DIR)) { - fs.rmSync(BASE_DIR, {recursive: true}); - } - }); - it("unauthenticated should logout without error", async ()=> { - const logout = new Logout(["fonoster","auth:logout"], { - name: "fonoster", - version: "1.0", - channel: "cli", - } as Config.IConfig); - try { - await logout.run(); - } catch(e) { - fail("unauthenticated client cannot logout") - } - }); -}) diff --git a/mods/ctl/test/bug.test.ts b/mods/ctl/test/bug.test.ts new file mode 100644 index 000000000..06581182a --- /dev/null +++ b/mods/ctl/test/bug.test.ts @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { runCommand } from "@oclif/test"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@ctl[bug]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("ensures it contains the issue reporting link", async function () { + const { stdout } = await runCommand("bug"); + expect(stdout).to.contain("Please report bugs to the link below"); + expect(stdout).to.contain( + "https://github.com/fonoster/fonoster/issues/new?assignees=&labels=bug&projects=&template=bug_report.yaml&title=%5BBUG%5D%3A+" + ); + }); +}); diff --git a/mods/ctl/test/feedback.test.ts b/mods/ctl/test/feedback.test.ts new file mode 100644 index 000000000..c64d22ba5 --- /dev/null +++ b/mods/ctl/test/feedback.test.ts @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { runCommand } from "@oclif/test"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@ctl[feedback]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("ensures it contains the feedback link", async function () { + const { stdout } = await runCommand("feedback"); + expect(stdout).to.contain( + "Please provide feedback on your experience by filling out the form below:" + ); + expect(stdout).to.contain( + "https://docs.google.com/forms/d/e/1FAIpQLSd1G2ahRYqkbksOvz7XhNHfSLepUh3KzRHsXh2HXfZr68nhtQ/viewform?vc=0&c=0&w=1&flr=0" + ); + }); +}); diff --git a/mods/ctl/test/mocha.opts b/mods/ctl/test/mocha.opts deleted file mode 100644 index c6d1cb290..000000000 --- a/mods/ctl/test/mocha.opts +++ /dev/null @@ -1,3 +0,0 @@ ---recursive ---reporter spec ---timeout 5000 diff --git a/mods/ctl/test/workspaces/logout.test.ts b/mods/ctl/test/workspaces/logout.test.ts new file mode 100644 index 000000000..a3e0e7d88 --- /dev/null +++ b/mods/ctl/test/workspaces/logout.test.ts @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { runCommand } from "@oclif/test"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@ctl[workspaces:logout]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("fails when the reference is missing", async function () { + const { error } = await runCommand(["workspaces:logout"]); + expect(error!.message).to.contain("Missing 1 required arg"); + expect(error!.message).to.contain("ref the Workspace to unlink from"); + }); + + it("ensures user logout from workspace", async function () { + const { stdout } = await runCommand(["workspaces:logout", "my-workspace"]); + expect(stdout).to.contain("Done!"); + }); +}); diff --git a/mods/ctl/tsconfig.json b/mods/ctl/tsconfig.json index dd3b03408..a998932ba 100644 --- a/mods/ctl/tsconfig.json +++ b/mods/ctl/tsconfig.json @@ -1,15 +1,19 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "outDir": "dist", + "rootDir": "src" }, "references": [ - { "path": "../agents" }, - { "path": "../domains" }, - { "path": "../numbers" }, - { "path": "../providers" }, - { "path": "../logger" } + { + "path": "../logger", + }, + { + "path": "../common", + }, + { + "path": "../sdk" + } ], "exclude": ["node_modules", "dist", "test"] } diff --git a/mods/dispatcher/.npmignore b/mods/dispatcher/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/dispatcher/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/dispatcher/diagram.png b/mods/dispatcher/diagram.png deleted file mode 100644 index 48d22920f..000000000 Binary files a/mods/dispatcher/diagram.png and /dev/null differ diff --git a/mods/dispatcher/package-lock.json b/mods/dispatcher/package-lock.json deleted file mode 100644 index 0be109263..000000000 --- a/mods/dispatcher/package-lock.json +++ /dev/null @@ -1,1422 +0,0 @@ -{ - "name": "@fonoster/dispatcher", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/dispatcher", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@opentelemetry/api": "^1.0.4", - "ari-client": "^2.2.0", - "pick-port": "^1.0.0", - "wait-port": "^0.2.9", - "ws": "^6.2.2" - }, - "bin": { - "run": "dist/dispatcher.js" - }, - "devDependencies": { - "@types/ws": "^7.4.7" - }, - "optionalDependencies": { - "bufferutil": "^4.0.3", - "utf-8-validate": "^5.0.5" - } - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.2.29", - "@fonoster/common": "^0.2.29", - "@fonoster/errors": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.6", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.6", - "@speedymonster/grpc-interceptors": "^0.2.5", - "atob": "^2.1.2", - "deepmerge": "^4.2.2" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "axios": "^0.21.1" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.2.29", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.3.3" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "../numbers": { - "name": "@fonoster/numbers", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.2.29", - "@fonoster/certs": "^0.2.29", - "@fonoster/common": "^0.2.29", - "@fonoster/core": "^0.2.29", - "@fonoster/errors": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.6", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_numbers": "dist/service/healthcheck.js", - "run_numbers": "dist/service/runner.js" - } - }, - "../storage": { - "name": "@fonoster/storage", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.2.29", - "@fonoster/certs": "^0.2.29", - "@fonoster/common": "^0.2.29", - "@fonoster/core": "^0.2.29", - "@fonoster/errors": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.6", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "minio": "^7.0.18", - "objectid": "^3.2.1", - "sync": "^0.2.5", - "tar": "^6.1.0", - "walk": "^2.3.14" - }, - "bin": { - "healthcheck_storage": "dist/service/healthcheck.js", - "run_storage": "dist/service/runner.js" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==", - "dev": true - }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "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-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ari-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ari-client/-/ari-client-2.2.0.tgz", - "integrity": "sha512-DPz+vC/dZyvy5HqBrEzYpNH6X2hDb+AIyRith6f8IVLHyveRWaHPO0S7rF1Q91qry/U8G+504KUZfeaBPwzIVQ==", - "dependencies": { - "backoff-func": "^0.1.2", - "bluebird": "^3.5.2", - "lodash": "^4.17.10", - "request": "^2.34.0", - "swagger-client": "2.0.26", - "uuid": "^3.0.0", - "ws": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/ax": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/ax/-/ax-0.1.8.tgz", - "integrity": "sha1-J8qac/pMeKR41i2CfK2GCiT91Jc=" - }, - "node_modules/backoff-func": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/backoff-func/-/backoff-func-0.1.2.tgz", - "integrity": "sha1-VMP64rreWHI0utXbh+NBLJ+ph4M=" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/bufferutil": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", - "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "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/commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" - }, - "node_modules/cookiejar": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-1.3.1.tgz", - "integrity": "sha1-wEsEj2iPgBYjrNkM1YSMK/iJGhc=" - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "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/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "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/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/pick-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pick-port/-/pick-port-1.0.0.tgz", - "integrity": "sha512-8h9ShAAM5z691zpibEAIyQWiGjjxh5AsP62qI9ptceTDxsSy6bJEXxNpHmdFSwIVNtI2+k3DEhDX+1fYxFHHEA==", - "dependencies": { - "debug": "^4.1.1" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, - "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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/shred": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/shred/-/shred-0.8.10.tgz", - "integrity": "sha1-zxz+gPeb9TE9Ltw7kSJ4/RB6hxc=", - "dependencies": { - "ax": "0.1.8", - "cookiejar": "1.3.1", - "iconv-lite": ">= 0.1.2", - "sprintf": "0.1.1" - } - }, - "node_modules/sprintf": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/sprintf/-/sprintf-0.1.1.tgz", - "integrity": "sha1-6JJfyYlOGqaJnpCRx/KhITC3DeU=", - "deprecated": "The sprintf package is deprecated in favor of sprintf-js.", - "engines": { - "node": ">=0.2.4" - } - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/swagger-client": { - "version": "2.0.26", - "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-2.0.26.tgz", - "integrity": "sha1-c/FQk/be82nzG5ZwxtlkWzMWPk0=", - "deprecated": "No longer maintained, please upgrade to swagger-client@3.", - "dependencies": { - "btoa": "1.1.1", - "shred": "0.8.10" - }, - "engines": { - "node": ">= 0.6.6" - } - }, - "node_modules/swagger-client/node_modules/btoa": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.1.1.tgz", - "integrity": "sha1-J8gQYmMQjp3UH/L6qtKhcEXjXro=", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "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/utf-8-validate": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.8.tgz", - "integrity": "sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/wait-port": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/wait-port/-/wait-port-0.2.9.tgz", - "integrity": "sha512-hQ/cVKsNqGZ/UbZB/oakOGFqic00YAMM5/PEj3Bt4vKarv2jWIWzDbqlwT94qMs/exAQAsvMOq99sZblV92zxQ==", - "dependencies": { - "chalk": "^2.4.2", - "commander": "^3.0.2", - "debug": "^4.1.1" - }, - "bin": { - "wait-port": "bin/wait-port.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dependencies": { - "async-limiter": "~1.0.0" - } - } - }, - "dependencies": { - "@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==" - }, - "@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==", - "dev": true - }, - "@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "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-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "ari-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ari-client/-/ari-client-2.2.0.tgz", - "integrity": "sha512-DPz+vC/dZyvy5HqBrEzYpNH6X2hDb+AIyRith6f8IVLHyveRWaHPO0S7rF1Q91qry/U8G+504KUZfeaBPwzIVQ==", - "requires": { - "backoff-func": "^0.1.2", - "bluebird": "^3.5.2", - "lodash": "^4.17.10", - "request": "^2.34.0", - "swagger-client": "2.0.26", - "uuid": "^3.0.0", - "ws": "^6.0.0" - } - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "ax": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/ax/-/ax-0.1.8.tgz", - "integrity": "sha1-J8qac/pMeKR41i2CfK2GCiT91Jc=" - }, - "backoff-func": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/backoff-func/-/backoff-func-0.1.2.tgz", - "integrity": "sha1-VMP64rreWHI0utXbh+NBLJ+ph4M=" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bufferutil": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", - "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", - "optional": true, - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "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" - } - }, - "commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" - }, - "cookiejar": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-1.3.1.tgz", - "integrity": "sha1-wEsEj2iPgBYjrNkM1YSMK/iJGhc=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "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==" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "optional": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pick-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pick-port/-/pick-port-1.0.0.tgz", - "integrity": "sha512-8h9ShAAM5z691zpibEAIyQWiGjjxh5AsP62qI9ptceTDxsSy6bJEXxNpHmdFSwIVNtI2+k3DEhDX+1fYxFHHEA==", - "requires": { - "debug": "^4.1.1" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - } - } - }, - "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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "shred": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/shred/-/shred-0.8.10.tgz", - "integrity": "sha1-zxz+gPeb9TE9Ltw7kSJ4/RB6hxc=", - "requires": { - "ax": "0.1.8", - "cookiejar": "1.3.1", - "iconv-lite": ">= 0.1.2", - "sprintf": "0.1.1" - } - }, - "sprintf": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/sprintf/-/sprintf-0.1.1.tgz", - "integrity": "sha1-6JJfyYlOGqaJnpCRx/KhITC3DeU=" - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "swagger-client": { - "version": "2.0.26", - "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-2.0.26.tgz", - "integrity": "sha1-c/FQk/be82nzG5ZwxtlkWzMWPk0=", - "requires": { - "btoa": "1.1.1", - "shred": "0.8.10" - }, - "dependencies": { - "btoa": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.1.1.tgz", - "integrity": "sha1-J8gQYmMQjp3UH/L6qtKhcEXjXro=" - } - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "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" - } - }, - "utf-8-validate": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.8.tgz", - "integrity": "sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==", - "optional": true, - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "wait-port": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/wait-port/-/wait-port-0.2.9.tgz", - "integrity": "sha512-hQ/cVKsNqGZ/UbZB/oakOGFqic00YAMM5/PEj3Bt4vKarv2jWIWzDbqlwT94qMs/exAQAsvMOq99sZblV92zxQ==", - "requires": { - "chalk": "^2.4.2", - "commander": "^3.0.2", - "debug": "^4.1.1" - } - }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "requires": { - "async-limiter": "~1.0.0" - } - } - } -} diff --git a/mods/dispatcher/package.json b/mods/dispatcher/package.json deleted file mode 100644 index a05d01e5d..000000000 --- a/mods/dispatcher/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "@fonoster/dispatcher", - "version": "0.3.22", - "description": "Application Router for Fonoster", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/dispatcher", - "types": "dist/dispatcher", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/dispatcher" - }, - "bin": { - "run": "dist/dispatcher.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist", - "etc" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@fonoster/numbers": "^0.3.22", - "@fonoster/storage": "^0.3.22", - "@opentelemetry/api": "^1.0.4", - "ari-client": "^2.2.0", - "pick-port": "^1.0.0", - "wait-port": "^0.2.9", - "ws": "^6.2.2" - }, - "optionalDependencies": { - "bufferutil": "^4.0.3", - "utf-8-validate": "^5.0.5" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135", - "devDependencies": { - "@types/ws": "^7.4.7" - } -} diff --git a/mods/dispatcher/src/dispatcher.ts b/mods/dispatcher/src/dispatcher.ts deleted file mode 100644 index 6e9e19ac2..000000000 --- a/mods/dispatcher/src/dispatcher.ts +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import ari from "ari-client"; -import wait from "wait-port"; -import logger from "@fonoster/logger"; -import events from "./events_handler"; - -// First try the short env but fallback to the cannonical env -const ariHost = - process.env.ARI_INTERNAL_URL || - process.env.MS_ARI_INTERNAL_URL || - "http://localhost:8088"; -const ariUsername = process.env.ARI_USERNAME || process.env.MS_ARI_USERNAME; -const ariSecret = process.env.ARI_SECRET || process.env.MS_ARI_SECRET; - -const connection = { - host: ariHost.split("//")[1].split(":")[0], - port: parseInt(ariHost.split("//")[1].split(":")[1]) -}; - -wait(connection) - .then((open) => { - if (open) { - // Give time to Media Server to publish the API endpoint - setTimeout( - () => ari.connect(ariHost, ariUsername, ariSecret, events), - 10000 - ); - return; - } - - logger.info( - "the mediaserver's port did not open before the timeout [ exiting dispatcher ]" - ); - }) - .catch(logger.error); diff --git a/mods/dispatcher/src/events_handler.ts b/mods/dispatcher/src/events_handler.ts deleted file mode 100644 index 12a0df146..000000000 --- a/mods/dispatcher/src/events_handler.ts +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Auth from "@fonoster/auth"; -import Numbers from "@fonoster/numbers"; -import logger from "@fonoster/logger"; -import WebSocket from "ws"; -import { CallRequest } from "./types"; -import { sendCallRequest } from "./utils/send_call_request"; -import { getChannelVar, getChannelVarAsJson } from "./utils/channel_variable"; -import { externalMediaHandler } from "./handlers/external_media"; -import { dtmfReceivedHandler } from "./handlers/dtmf_received"; -import { playbackFinishedHandler } from "./handlers/playback_finished"; -import { recordFinishHandler } from "./handlers/record_finished"; -import { uploadRecording } from "./utils/upload_recording"; -import { recordFailedHandler } from "./handlers/record_failed"; -import { hangup, hangupExternalChannel } from "./utils/destroy_channel"; -import { channelTalkingHandler } from "./handlers/channel_talking"; -import { sendDtmf } from "./handlers/send_dtmf"; -import { answer } from "./utils/answer_channel"; -import { dial } from "./handlers/dial"; -import { ulogger, ULogType } from "@fonoster/logger"; - -const wsConnections = new Map(); - -// First try the short env but fallback to the cannonical version -const dialbackEnpoint = - process.env.ARI_EXTERNAL_URL || - process.env.MS_ARI_EXTERNAL_URL || - "http://localhost:8088"; - -export default function (err: any, ari: any) { - if (err) throw err; - - ari.on("StasisStart", async (event: any, channel: any) => { - const didInfo = await getChannelVar(channel, "DID_INFO"); - - if (!didInfo) { - // If DID_INFO is not set we need to ignore the event - logger.silly("variable DID_INFO not found [ignoring event]"); - return; - } - - const auth = new Auth(); - const numbers = new Numbers(); - // Renaming variable to keep consistency across the module - const sessionId = event.channel.id; - const ingressInfo = await numbers.getIngressInfo({ - e164Number: didInfo - }); - - const appRef = - (await getChannelVar(channel, "APP_REF")) || ingressInfo.appRef; - const webhook = - (await getChannelVar(channel, "WEBHOOK")) || ingressInfo.webhook; - const metadata = await getChannelVarAsJson(channel, "METADATA"); - - logger.silly("new request ingressed to dispatcher", ingressInfo); - logger.silly("dispatcher found related metadata for request", { - sessionId: channel.id, - e164Number: didInfo, - webhook: webhook, - accessKeyId: ingressInfo.accessKeyId - }); - - const access = await auth.createToken({ - accessKeyId: ingressInfo.accessKeyId, - roleName: "PROJECT", - expiration: "5m" - }); - - const request: CallRequest = { - accessKeyId: ingressInfo.accessKeyId, - sessionToken: access.token, - // Dialback request must travel thru the reverse proxy first - dialbackEnpoint, - sessionId, - number: didInfo, - callerId: event.channel.caller.name, - callerNumber: event.channel.caller.number, - selfEndpoint: webhook, - appRef, - metadata: metadata || {} - }; - - logger.silly("dispatcher sending request to dialback", request); - - const ws = wsConnections.get(sessionId) || new WebSocket(webhook); - - ws.on("open", async () => { - wsConnections.set(sessionId, ws); - sendCallRequest(webhook, request); - }); - - ws.on("error", async (e: Error) => { - const message = - "error connecting with your webhook. please ensure your webhook is valid and accessible"; - logger.error(message, { webhook }); - ulogger({ - accessKeyId: request.accessKeyId, - eventType: ULogType.APP, - level: "error", - message: message, - body: { webhook } - }); - channel.hangup(); - }); - - channel.on("ChannelTalkingStarted", async (event: any, channel: any) => { - channelTalkingHandler(wsConnections.get(channel.id), channel.id, true); - }); - - channel.on("ChannelTalkingFinished", async (event: any, channel: any) => { - channelTalkingHandler(wsConnections.get(channel.id), channel.id, false); - }); - - channel.on("ChannelLeftBridge", async (event: any, resources: any) => { - logger.verbose("channel left bridge", { - bridgeId: resources.bridge.id, - channelId: resources.channel.id - }); - try { - await channel.hangup(); - } catch (e) { - /* Ignore because because channel might not exist anymore */ - } - try { - await resources.bridge.destroy(); - } catch (e) { - /* Ignore because the bridge might not exist anymore */ - } - }); - }); - - ari.on("ChannelUserevent", async (event: any) => { - logger.verbose("dispatcher received user event", { event }); - - const wsClient = wsConnections.get(event.userevent.sessionId); - - switch (event.eventname) { - case "SendExternalMedia": - await externalMediaHandler(wsClient, ari, event); - break; - case "StopExternalMedia": - await hangupExternalChannel(ari, event.userevent.sessionId); - break; - case "UploadRecording": - await uploadRecording( - event.userevent.accessKeyId, - event.userevent.filename - ); - break; - case "SendDtmf": - await sendDtmf(wsClient, ari, event); - break; - case "Hangup": - await hangup(ari, event.userevent.sessionId); - break; - case "Answer": - await answer(wsClient, ari, event.userevent.sessionId); - break; - case "Dial": - await dial(wsClient, ari, event, event.userevent.accessKeyId); - break; - default: - logger.error("unknown user event", { event: event.eventname }); - } - }); - - ari.on("ChannelDtmfReceived", async (event: any, channel: any) => { - dtmfReceivedHandler(wsConnections.get(channel.id), event, channel); - }); - - ari.on("PlaybackFinished", async (event: any, playback: any) => { - playbackFinishedHandler( - wsConnections.get(event.playback.target_uri.split(":")[1]), - playback - ); - }); - - ari.on("RecordingFinished", (event: any) => { - const conn = wsConnections.get(event.recording.name); - // Connection could be null if recording a dialed channel - conn && recordFinishHandler(conn, event); - }); - - ari.on("RecordingFailed", (event: any) => { - recordFailedHandler( - wsConnections.get(event.recording.target_uri.split(":")[1]), - event - ); - }); - - ari.on("StasisEnd", async (event: any, channel: any) => { - logger.verbose("voice session ended", { sessionId: channel.id }); - const ws = wsConnections.get(channel.id); - // The external channels don't have ws connections - if (ws) { - ws.send( - JSON.stringify({ - type: "SessionClosed", - sessionId: channel.id - }) - ); - wsConnections.delete(channel.id); - } - }); - - ari.start("mediacontroller"); -} diff --git a/mods/dispatcher/src/handlers/channel_talking.ts b/mods/dispatcher/src/handlers/channel_talking.ts deleted file mode 100644 index 8367d943f..000000000 --- a/mods/dispatcher/src/handlers/channel_talking.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import logger from "@fonoster/logger"; -import WebSocket from "ws"; - -export const channelTalkingHandler = ( - ws: WebSocket, - sessionId: string, - onOff: boolean -) => { - logger.verbose("channel talking status changed", { - sessionId, - status: onOff - }); - - if (!ws || ws.readyState !== WebSocket.OPEN) { - logger.warn("ignoring socket request on lost connection"); - return; - } - - ws.send( - JSON.stringify({ - type: "ChannelTalking", - sessionId, - data: { - on: onOff - } - }) - ); -}; diff --git a/mods/dispatcher/src/handlers/dial.ts b/mods/dispatcher/src/handlers/dial.ts deleted file mode 100644 index a55f3a9d2..000000000 --- a/mods/dispatcher/src/handlers/dial.ts +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebSocket from "ws"; -import logger from "@fonoster/logger"; -import { routr } from "@fonoster/core"; -import { uploadRecording } from "../utils/upload_recording"; -import { getChannelVar } from "../utils/channel_variable"; - -const getDomainByNumber = async (e164Number: string) => { - await routr.connect(); - return await routr.getDomainUriFromNumber(e164Number); -}; - -const numberNotInList = (number) => - `the number '${number}' is not assigned to one of your domains. Make sure the number exist and is assigned to a Domain`; - -export const dial = async ( - ws: WebSocket, - ari: any, - event: any, - accessKeyId: string -) => { - const { number, destination, timeout, record, sessionId } = event.userevent; - - logger.silly("initiating dial request", { request: event.userevent }); - - if (ws.readyState !== WebSocket.OPEN) { - logger.warn("ignoring socket request on lost connection"); - return; - } - - // Which Domain has this number assigned to for outbound - const domain = await getDomainByNumber(number); - - if (!domain) { - ws.send( - JSON.stringify({ - type: "DialFailed", - sessionId, - error: numberNotInList(number) - }) - ); - return; - } - - const domainUri = domain.spec.context.domainUri; - const channel = await ari.channels.get({ channelId: sessionId }); - const bridgeId = await getChannelVar(channel, "CURRENT_BRIDGE"); - let bridge = await ari.bridges.get({ bridgeId: bridgeId }); - - logger.verbose("dialing sip endpoint", { - endpoint: `sip:${destination}@${domainUri}`, - sessionId, - bridgeId - }); - - if (!bridge) { - bridge = await ari.bridges.create({ - type: "mixing" - }); - } - - const dialed = ari.Channel(); - - await dialed.originate({ - app: "mediacontroller", - endpoint: `PJSIP/routr/sip:${destination}@${domainUri}`, - timeout - }); - - dialed.on("StasisStart", async (event: any, channel: any) => { - try { - if (bridgeId) { - await bridge.addChannel({ channel: dialed.id }); - } else { - // Is a new bridge so we need to add both channels - await bridge.addChannel({ channel: [sessionId, dialed.id] }); - } - - if (record) { - if (record.direction === "in" || record.direction === "both") { - const channel = await ari.channels.snoopChannel({ - app: "mediacontroller", - channelId: sessionId, - spy: "in" - }); - await ari.channels.record({ - channelId: channel.id, - format: "wav", - name: `${sessionId}_in`, - ifExists: "overwrite" - }); - } - - if (record.direction === "out" || record.direction === "both") { - const channel = await ari.channels.snoopChannel({ - app: "mediacontroller", - channelId: dialed.id, - spy: "in" - }); - await ari.channels.record({ - channelId: channel.id, - format: "wav", - name: `${sessionId}_out`, - ifExists: "overwrite" - }); - } - } - } catch (e) { - logger.warn(e); - // It is possible that the originating side was already closed - await dialed.hangup(); - } - }); - - dialed.on("ChannelLeftBridge", async (event: any, resources: any) => { - logger.verbose("dialed channel left bridge", { - bridgeId: resources.bridge.id, - sessionId: resources.channel.id - }); - - try { - dialed.hangup(); - } catch (e) { - /** We can only try */ - } - - try { - await resources.bridge.destroy(); - } catch (e) { - /* Ignore because the bridge might not exist anymore */ - } - }); - - dialed.on("StasisEnd", async (event: any, channel: any) => { - if (record) { - if (record.direction === "in" || record.direction === "both") { - await uploadRecording(accessKeyId, `${sessionId}_in.wav`); - } - - if (record.direction === "out" || record.direction === "both") { - await uploadRecording(accessKeyId, `${sessionId}_out.wav`); - } - } - }); - - // TODO: Make all the values into variables - dialed.on("Dial", async (event: any, channel: any) => { - let status = event.dialstatus.toLowerCase(); - if ( - !["cancel", "answer", "busy", "progress", "noanswer"].includes(status) - ) { - return; - } else if (status === "chanunavail" || status === "congestion") { - status = "failed"; - } - - ws.send( - JSON.stringify({ - type: "DialStatusChanged", - sessionId, - data: { - status - } - }) - ); - }); - - ws.send( - JSON.stringify({ - type: "DialStatusChanged", - sessionId, - data: { - status: "trying", - destination - } - }) - ); -}; diff --git a/mods/dispatcher/src/handlers/dtmf_received.ts b/mods/dispatcher/src/handlers/dtmf_received.ts deleted file mode 100644 index e9c0b17f1..000000000 --- a/mods/dispatcher/src/handlers/dtmf_received.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import logger from "@fonoster/logger"; -import WebSocket from "ws"; - -export const dtmfReceivedHandler = ( - ws: WebSocket, - event: Record, - channel: any -) => { - logger.silly("sending dtmf event", { - digit: event.digit, - sessionId: channel.id - }); - - if (!ws || ws.readyState !== WebSocket.OPEN) { - logger.warn("ignoring socket request on lost connection"); - return; - } - - ws.send( - JSON.stringify({ - type: "DtmfReceived", - sessionId: channel.id, - data: event.digit - }) - ); -}; diff --git a/mods/dispatcher/src/handlers/external_media.ts b/mods/dispatcher/src/handlers/external_media.ts deleted file mode 100644 index 1f1e4a4a6..000000000 --- a/mods/dispatcher/src/handlers/external_media.ts +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebSocket from "ws"; -import UDPMediaReceiver from "../udp_media_receiver"; -import logger from "@fonoster/logger"; -import { sendData, streamConfig } from "../utils/udp_server_utils"; -import pickPort from "pick-port"; -import { getChannelVar } from "../utils/channel_variable"; - -export const externalMediaHandler = async ( - ws: WebSocket, - ari: any, - event: any -) => { - if (!ws || ws.readyState !== WebSocket.OPEN) { - logger.warn("ignoring socket request on lost connection"); - return; - } - const port = await pickPort(); - const address = `0.0.0.0:${port}`; - const udpServer = new UDPMediaReceiver(address, true); - const sessionId = event.userevent.sessionId; - const currentChannel = await ari.channels.get({ channelId: sessionId }); - const bridgeId = await getChannelVar(currentChannel, "CURRENT_BRIDGE"); - let bridge: any; - - // We check if the bridge already exist to avoid creating a new one - if (bridgeId) { - bridge = await ari.bridges.get({ bridgeId }); - } else { - bridge = ari.Bridge(); - await bridge.create({ type: "mixing" }); - bridge.addChannel({ channel: sessionId }); - - // We save the bridge id as channel bar and later use the info - // to destroy the bridge - ari.channels.setChannelVar({ - channelId: sessionId, - variable: "CURRENT_BRIDGE", - value: bridge.id - }); - } - - const externalChannel = ari.Channel(); - externalChannel.on("StasisStart", (event: any, channel: any) => - bridge.addChannel({ channel: channel.id }) - ); - - externalChannel.on("StasisEnd", () => { - try { - udpServer.close(); - } catch (e) { - console.warn(e); - } - }); - - externalChannel.on( - "ChannelLeftBridge", - async (event: any, resources: any) => { - logger.verbose("external channel left the bridge", { - brideId: resources.bridge.id, - externalChannelId: resources.channel.id - }); - await externalChannel.hangup(); - } - ); - - // We save the bridge id as channel bar and later use the info - // to destroy the bridge - ari.channels.setChannelVar({ - channelId: sessionId, - variable: "EXTERNAL_CHANNEL", - value: externalChannel.id - }); - - // Collecting and forwarding media - udpServer - .getServer() - .on("data", (data: Buffer) => sendData(ws, data, sessionId)); - - await externalChannel.externalMedia(streamConfig(address)); -}; diff --git a/mods/dispatcher/src/handlers/playback_finished.ts b/mods/dispatcher/src/handlers/playback_finished.ts deleted file mode 100644 index 0b0748773..000000000 --- a/mods/dispatcher/src/handlers/playback_finished.ts +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebSocket from "ws"; -import logger from "@fonoster/logger"; - -export const playbackFinishedHandler = (ws: WebSocket, playback: any) => { - logger.silly("sending playback finished event", { playbackId: playback.id }); - - if (ws.readyState !== WebSocket.OPEN) { - logger.warn("ignoring socket request on lost connection"); - return; - } - - ws.send( - JSON.stringify({ - type: "PlaybackFinished", - data: { - playbackId: playback.id - } - }) - ); -}; diff --git a/mods/dispatcher/src/handlers/record_failed.ts b/mods/dispatcher/src/handlers/record_failed.ts deleted file mode 100644 index d063a585c..000000000 --- a/mods/dispatcher/src/handlers/record_failed.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebSocket from "ws"; -import logger from "@fonoster/logger"; - -export const recordFailedHandler = (ws: WebSocket, event: any) => { - logger.verbose("sending recording failed event", { - filename: event.recording.name - }); - - ws.send( - JSON.stringify({ - type: "RecordingFailed", - data: { - cause: event.recording.cause - } - }) - ); -}; diff --git a/mods/dispatcher/src/handlers/record_finished.ts b/mods/dispatcher/src/handlers/record_finished.ts deleted file mode 100644 index a83431916..000000000 --- a/mods/dispatcher/src/handlers/record_finished.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebSocket from "ws"; -import logger from "@fonoster/logger"; - -export const recordFinishHandler = (ws: WebSocket, event: any) => { - logger.verbose("sending recording finished event", { - filename: event.recording.name - }); - - if (ws.readyState !== WebSocket.OPEN) { - logger.warn("ignoring socket request on lost connection"); - return; - } - - ws.send( - JSON.stringify({ - type: "RecordingFinished", - data: { - name: event.recording.name, - duration: event.recording.duration, - format: event.recording.format, - silenceDuration: event.recording.silence_duration, - talkingDuration: event.recording.talking_duration - } - }) - ); -}; diff --git a/mods/dispatcher/src/handlers/send_dtmf.ts b/mods/dispatcher/src/handlers/send_dtmf.ts deleted file mode 100644 index 16b2c6ee2..000000000 --- a/mods/dispatcher/src/handlers/send_dtmf.ts +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebSocket from "ws"; -import logger from "@fonoster/logger"; - -export const sendDtmf = async (ws: WebSocket, ari: any, event: any) => { - logger.verbose("sending dtmf tones", { - sessionId: event.userevent.sessionId, - tones: event.userevent.dtmf - }); - - const channel = await ari.channels.get({ - channelId: event.userevent.sessionId - }); - - if (ws.readyState !== WebSocket.OPEN) { - logger.warn("ignoring socket request on lost connection"); - return; - } - - await channel.sendDTMF({ - dtmf: event.userevent.dtmf - }); - - ws.send( - JSON.stringify({ - type: "SendDtmfFinished", - sessionId: event.userevent.sessionId - }) - ); -}; diff --git a/mods/dispatcher/src/types.ts b/mods/dispatcher/src/types.ts deleted file mode 100644 index 67874f0fc..000000000 --- a/mods/dispatcher/src/types.ts +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface CallRequest { - accessKeyId: string; - sessionToken: string; - sessionId: string; - dialbackEnpoint: string; - number: string; - callerId: string; - callerNumber: string; - selfEndpoint: string; - metadata?: Record; - appRef?: string; -} - -export interface AttachToEventsRequest { - url: string; - accessKeyId: string; - sessionId: string; - client: any; - channel: any; -} diff --git a/mods/dispatcher/src/udp_media_receiver.ts b/mods/dispatcher/src/udp_media_receiver.ts deleted file mode 100644 index 53fe83d39..000000000 --- a/mods/dispatcher/src/udp_media_receiver.ts +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import fs from "fs"; -import dgram from "dgram"; -import logger from "@fonoster/logger"; -const pipe = require("stream").prototype.pipe; - -export default class UDPMediaReceiver { - server: any; - swap16: boolean; - alsoWritePath: string; - address: string; - port: number; - fileStream: fs.WriteStream; - // Timeout to close the udp receiver. It feels hacky, but it works - timeToAutoClose: number = 120000; - constructor(host: string, swap16?: boolean, alsoWritePath?: string) { - let timer = setTimeout(() => { - this.close(); - }, this.timeToAutoClose); - this.server = dgram.createSocket("udp4"); - // Add the Stream.pipe() method to the socket - this.server.pipe = pipe; - - this.swap16 = swap16 || false; - this.alsoWritePath = alsoWritePath; - this.address = host.split(":")[0]; - this.port = parseInt(host.split(":")[1]); - - if (this.alsoWritePath) { - this.fileStream = fs.createWriteStream(this.alsoWritePath, { - autoClose: true - }); - } - - this.server.on("error", (err) => { - logger.error("dispatcher udpServer error", { stack: err.stack }); - this.server.close(); - if (this.fileStream) { - this.fileStream.close(); - } - }); - - this.server.on("close", (err) => { - logger.verbose("dispatcher udpServer [server socket closed]"); - if (this.fileStream) { - this.fileStream.close(); - } - }); - - this.server.on("message", (msg, rinfo) => { - /* Strip the 12 byte RTP header */ - let buf = msg.slice(12); - if (this.swap16) { - buf.swap16(); - } - if (this.fileStream) { - this.fileStream.write(buf); - } - this.server.emit("data", buf); - - // WARNING: Hack to automatically close the port - clearTimeout(timer); - timer = setTimeout(() => { - this.close(); - }, this.timeToAutoClose); - }); - - this.server.on("listening", () => { - const address = this.server.address(); - logger.verbose("starting dispatcher udpServer", { - address: `${address.address}:${address.port}` - }); - }); - - this.server.bind(this.port, this.address); - } - - getServer() { - return this.server; - } - - close() { - logger.verbose("dispatcher udpServer [closing server socket]"); - try { - this.server.close(); - } catch (e) { - /** We can only try */ - } - } -} diff --git a/mods/dispatcher/src/utils/answer_channel.ts b/mods/dispatcher/src/utils/answer_channel.ts deleted file mode 100644 index 2b7835af8..000000000 --- a/mods/dispatcher/src/utils/answer_channel.ts +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import logger from "@fonoster/logger"; -import WebSocket from "ws"; - -export async function answer(ws: WebSocket, ari: any, sessionId: string) { - try { - logger.verbose("answering call request", { sessionId }); - - await ari.channels.answer({ channelId: sessionId }); - - ws.send( - JSON.stringify({ - type: "SessionOpen", - sessionId - }) - ); - } catch (e) { - logger.error(e); - } -} diff --git a/mods/dispatcher/src/utils/channel_variable.ts b/mods/dispatcher/src/utils/channel_variable.ts deleted file mode 100644 index 7fd321a33..000000000 --- a/mods/dispatcher/src/utils/channel_variable.ts +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import logger from "@fonoster/logger"; - -export async function getChannelVar( - channel: any, - variable: string -): Promise { - logger.verbose("getting session variable", { - sessionId: channel.id, - variable - }); - - try { - const channelVar = await channel.getChannelVar({ - channelId: channel.id, - variable - }); - // If it gets here is because the variable was set - return channelVar.value; - } catch (e) { - /* we need to do nothing */ - } - - return null; -} - -export async function getChannelVarAsJson( - channel: any, - variable: string -): Promise> { - const v = await getChannelVar(channel, variable); - return v ? JSON.parse(v) : null; -} diff --git a/mods/dispatcher/src/utils/destroy_channel.ts b/mods/dispatcher/src/utils/destroy_channel.ts deleted file mode 100644 index f40a2a09b..000000000 --- a/mods/dispatcher/src/utils/destroy_channel.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import logger from "@fonoster/logger"; -import WebSocket from "ws"; -import { getChannelVar } from "./channel_variable"; - -export async function hangup(ari: any, sessionId: string) { - try { - const channel = await ari.channels.get({ channelId: sessionId }); - const externalChannelId = await getChannelVar(channel, "EXTERNAL_CHANNEL"); - const bridgeId = await getChannelVar(channel, "CURRENT_BRIDGE"); - - logger.verbose("hanging up and destroy bridge", { - sessionId, - externalChannelId, - bridgeId - }); - - if (bridgeId) { - await ari.bridges.removeChannel({ bridgeId, channel: sessionId }); - await ari.bridges.removeChannel({ bridgeId, channel: externalChannelId }); - await ari.bridges.destroy({ bridgeId }); - } - - channel.hangup(); - } catch (e) { - /** We can only try because the channel might be already closed */ - } -} - -export async function hangupExternalChannel(ari: any, sessionId: string) { - try { - const channel = await ari.channels.get({ channelId: sessionId }); - const externalChannelId = await getChannelVar(channel, "EXTERNAL_CHANNEL"); - const bridgeId = await getChannelVar(channel, "CURRENT_BRIDGE"); - logger.verbose("removing external media channel", { - bridgeId, - sessionId, - externalChannelId - }); - - if (bridgeId && externalChannelId) { - await ari.bridges.removeChannel({ bridgeId, channel: externalChannelId }); - return; - } - - logger.warn("no bridge or external channel found", { - sessionId, - bridgeId, - externalChannelId - }); - } catch (e) { - /** We can only try because the channel might be already closed */ - } -} diff --git a/mods/dispatcher/src/utils/send_call_request.ts b/mods/dispatcher/src/utils/send_call_request.ts deleted file mode 100644 index b30d5cb6f..000000000 --- a/mods/dispatcher/src/utils/send_call_request.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import logger, { ulogger, ULogType } from "@fonoster/logger"; -import axios from "axios"; -import { CallRequest } from "../types"; - -export const sendCallRequest = async (url: string, request: CallRequest) => { - try { - const response = await axios.post(url, request); - logger.verbose("dispatcher received from mediacontroller", { - data: response.data ? response.data.data : "no response" - }); - } catch (e) { - const message = "error connecting with your voice application"; - logger.error(message, { url }); - ulogger({ - accessKeyId: request.accessKeyId, - eventType: ULogType.APP, - level: "error", - message: message, - body: { url } - }); - } -}; diff --git a/mods/dispatcher/src/utils/udp_server_utils.ts b/mods/dispatcher/src/utils/udp_server_utils.ts deleted file mode 100644 index ed5abab01..000000000 --- a/mods/dispatcher/src/utils/udp_server_utils.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebSocket from "ws"; - -export function sendData(ws: WebSocket, data: Buffer, sessionId: string) { - try { - ws.send( - Buffer.concat([ - Buffer.from("" + sessionId.length), - Buffer.from(sessionId), - data - ]) - ); - } catch (e) { - /** Must catch to prevent app from crashing if channel closed */ - } -} - -export function streamConfig(address: string) { - return { - app: "mediacontroller", - external_host: address, - format: "slin16" - }; -} diff --git a/mods/dispatcher/src/utils/upload_recording.ts b/mods/dispatcher/src/utils/upload_recording.ts deleted file mode 100644 index f1cdcfdc7..000000000 --- a/mods/dispatcher/src/utils/upload_recording.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Auth from "@fonoster/auth"; -import Storage from "@fonoster/storage"; -import logger from "@fonoster/logger"; - -export const uploadRecording = async ( - accessKeyId: string, - filename: string -) => { - logger.silly("creating short-lived token", { accessKeyId }); - const auth = new Auth(); - // Creates a PROJECT level token with 10 minutes expiration - const access = await auth.createToken({ - accessKeyId, - expiration: "10m", - roleName: "PROJECT" - }); - const storage = new Storage({ accessKeyId, accessKeySecret: access.token }); - - logger.verbose("uploading file to storage subsystem", { filename }); - - await storage.uploadObject({ - // TODO: Place bucket name on a constant - bucket: "recordings", - filename: `${process.env.RECORDINGS_PATH}/${filename}` - }); -}; diff --git a/mods/dispatcher/test/dispatcher.unit.test.ts b/mods/dispatcher/test/dispatcher.unit.test.ts deleted file mode 100644 index ba932dbdb..000000000 --- a/mods/dispatcher/test/dispatcher.unit.test.ts +++ /dev/null @@ -1,4 +0,0 @@ -// No much to test here -describe("@fonoster/dispatcher", () => { - it("needs tests"); -}); diff --git a/mods/dispatcher/tsconfig.json b/mods/dispatcher/tsconfig.json deleted file mode 100644 index 027fb7b78..000000000 --- a/mods/dispatcher/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../auth" }, - { "path": "../logger" }, - { "path": "../numbers" }, - { "path": "../storage" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/domains/.dockerignore b/mods/domains/.dockerignore deleted file mode 100644 index b512c09d4..000000000 --- a/mods/domains/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/mods/domains/.npmignore b/mods/domains/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/domains/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/domains/Dockerfile b/mods/domains/Dockerfile deleted file mode 100644 index 9f79d4a59..000000000 --- a/mods/domains/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs \ - && npm install -g fonoster-*.tgz \ - && apk del npm git - -USER fonoster - -CMD ["run_domains"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_domains" ] \ No newline at end of file diff --git a/mods/domains/package-lock.json b/mods/domains/package-lock.json deleted file mode 100644 index b1c383cc9..000000000 --- a/mods/domains/package-lock.json +++ /dev/null @@ -1,698 +0,0 @@ -{ - "name": "@fonoster/domains", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/domains", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-domain": "^0.1.2" - }, - "bin": { - "healthcheck_domains": "dist/service/healthcheck.js", - "run_domains": "dist/service/runner.js" - }, - "devDependencies": {} - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "grpc-ts-health-check": "^2.0.6", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.3.3", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.3.3" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "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/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/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/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/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/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/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/google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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-valid-domain": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.1.6.tgz", - "integrity": "sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg==", - "dependencies": { - "punycode": "^2.1.1" - } - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.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/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/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/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/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" - } - } - }, - "dependencies": { - "@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - } - }, - "@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "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" - } - }, - "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" - } - }, - "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==" - }, - "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==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "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==" - }, - "google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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-valid-domain": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.1.6.tgz", - "integrity": "sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg==", - "requires": { - "punycode": "^2.1.1" - } - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "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" - } - }, - "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==" - } - } -} diff --git a/mods/domains/package.json b/mods/domains/package.json deleted file mode 100644 index b88d04248..000000000 --- a/mods/domains/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "@fonoster/domains", - "version": "0.3.22", - "description": "VoIP Domains", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/client/domains", - "types": "dist/client/domains", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "postbuild": "cp -a ./src/service/protos/ ./dist/service/protos", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/srv_runner" - }, - "bin": { - "run_domains": "dist/service/runner.js", - "healthcheck_domains": "dist/service/healthcheck.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-domain": "^0.1.2" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/domains/src/client/domains.ts b/mods/domains/src/client/domains.ts deleted file mode 100644 index 985d2b0c4..000000000 --- a/mods/domains/src/client/domains.ts +++ /dev/null @@ -1,283 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { - CreateDomainRequest, - CreateDomainResponse, - UpdateDomainRequest, - UpdateDomainResponse, - ListDomainsRequest, - ListDomainsResponse, - GetDomainResponse, - DeleteDomainResponse, - IDomainsClient, - Domain -} from "./types"; -import { APIClient, ClientOptions } from "@fonoster/common"; -import { DomainsClient } from "../service/protos/domains_grpc_pb"; -import DomainsPB from "../service/protos/domains_pb"; -import CommonPB from "../service/protos/common_pb"; -import { promisifyAll } from "grpc-promise"; - -/** - * @classdesc Use Fonoster Domains, a capability of Fonoster SIP Proxy Subsystem, - * to create, update, get and delete Domains. The API requires of a running - *Fonoster deployment. - * - * @extends APIClient - * @example - * - * const Fonoster = require("@fonoster/sdk"); - * const domains = new Fonoster.Domains(); - * - * domains.createDomain({name: "Local Domain", domainUri: "sip.local"...}) - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)); // an error occurred - */ -export default class Domains extends APIClient implements IDomainsClient { - /** - * Constructs a new Domains object. - * - * @param {ClientOptions} options - Options to indicate the objects endpoint - * @see module:core:APIClient - */ - constructor(options?: ClientOptions) { - super(DomainsClient, options); - super.init(); - promisifyAll(super.getService(), { metadata: super.getMeta() }); - } - - /** - * Creates a new Domain on the SIP Proxy subsystem. - * - * @param {CreateDomainRequest} request - Request for the provision of - * a new Domain - * @param {string} request.name - Friendly name for the SIP domain - * @param {string} request.domainUri - Domain URI. FQDN is recommended - * @param {string} request.egressNumberRef - A valid reference to a Number - * in Fonos - * @param {string} request.egressRule - Regular expression indicating when a - * call will be routed via request.egressNumberRef - * @param {string} request.accessDeny - Optional list of IPs or networks that - * cannot communicate with this Domain - * @param {string} request.accessAllow - Optional list of IPs or networks - * allow if request.accessDeny is defined - * @return {Promise} - * @example - * - * const request = { - * name: "Local Domain", - * domainUri: "sip.local", - * egressRule: ".*", - * egressNumberRef: "cb8V0CNTfH", - * accessDeny: ["0.0.0.0/1"] // Deny all - * accessAllow: ["192.168.1.0/255.255.255.0", "192.168.0.1/31"] - * }; - * - * domains.createDomain(request) - * .then(result => { - * console.log(result) // returns the CreateDomainResponse interface - * }).catch(e => console.error(e)); // an error occurred - */ - async createDomain( - request: CreateDomainRequest - ): Promise { - const outRequest = new DomainsPB.CreateDomainRequest(); - outRequest.setName(request.name); - outRequest.setDomainUri(request.domainUri); - outRequest.setEgressRule(request.egressRule); - outRequest.setEgressNumberRef(request.egressNumberRef); - outRequest.setAccessDenyList(request.accessDeny); - outRequest.setAccessAllowList(request.accessAllow); - - const res = await super.getService().createDomain().sendMessage(outRequest); - - return { - ref: res.getRef(), - name: res.getName(), - domainUri: res.getDomainUri(), - egressRule: res.getEgressRule(), - egressNumberRef: res.getEgressNumberRef(), - accessDeny: res.getAccessDenyList(), - accessAllow: res.getAccessAllowList(), - createTime: res.getCreateTime(), - updateTime: res.getUpdateTime() - }; - } - - /** - * Retrives a Domain by its reference. - * - * @param {string} ref - Reference to Domain - * @return {Promise} The domain - * @throws if ref is null or Domain does not exist - * @example - * - * const ref = "Nx05y-ldZa"; - * - * domains.getDomain(ref) - * .then(result => { - * console.log(result) // returns the CreateGetResponse interface - * }).catch(e => console.error(e)); // an error occurred - */ - async getDomain(ref: string): Promise { - const request = new DomainsPB.GetDomainRequest(); - request.setRef(ref); - - const res = await super.getService().getDomain().sendMessage(request); - - return { - ref: res.getRef(), - name: res.getName(), - domainUri: res.getDomainUri(), - egressRule: res.getEgressRule(), - egressNumberRef: res.getEgressNumberRef(), - accessDeny: res.getAccessDenyList(), - accessAllow: res.getAccessAllowList(), - createTime: res.getCreateTime(), - updateTime: res.getUpdateTime() - }; - } - - /** - * Update a Domain at the SIP Proxy subsystem. - * - * @param {UpdateDomainRequest} request - Request for the update of an - * existing Domain - * @param {string} request.ref - To update a Domain you must provide - * its reference - * @param {string} request.name - Friendly name for the SIP domain - * @param {string} request.egressNumberRef - A valid reference to a - * Number in Fonos - * @param {string} request.egressRule - Regular expression indicating when a - * call will be routed via request.egressNumberRef - * @param {string} request.accessDeny - Optional list of IPs or networks that - * cannot communicate with this Domain - * @param {string} request.accessAllow - Optiona list of IPs or networks - * allow if request.accessDeny is defined - * @return {Promise} - * @example - * - * const request = { - * ref: "Nx05y-ldZa", - * name: "Office Domain", - * accessAllow: ["192.168.1.0/255.255.255.0", "192.168.0.1/31"] - * }; - * - * domains.updateDomain(request) - * .then(result => { - * console.log(result) // returns the UpdateDomainResponse interface - * }).catch(e => console.error(e)); // an error occurred - */ - async updateDomain( - request: UpdateDomainRequest - ): Promise { - const outRequest = new DomainsPB.UpdateDomainRequest(); - outRequest.setRef(request.ref); - - if (request.name) outRequest.setName(request.name); - if (request.egressRule) outRequest.setEgressRule(request.egressRule); - if (request.egressNumberRef) { - outRequest.setEgressNumberRef(request.egressNumberRef); - } - if (request.accessDeny) outRequest.setAccessDenyList(request.accessDeny); - if (request.accessAllow) outRequest.setAccessAllowList(request.accessAllow); - - const res = await super.getService().updateDomain().sendMessage(outRequest); - - return { - ref: res.getRef() - }; - } - - /** - * List the Domains registered in Fonoster SIP Proxy subsystem. - * - * @param {ListDomainsRequest} request - Optional parameter with size and - * token for the request - * @param {number} request.pageSize - Number of element per page - * (defaults to 20) - * @param {string} request.pageToken - The next_page_token value returned from - * a previous List request if any - * @return {Promise} Paginated list of Domains - * @example - * - * const request = { - * pageSize: 20, - * pageToken: 2 - * }; - * - * domains.listDomains(request) - * .then(() => { - * console.log(result) // returns a ListDomainsResponse interface - * }).catch(e => console.error(e)); // an error occurred - */ - async listDomains(request: ListDomainsRequest): Promise { - const r = new DomainsPB.ListDomainsRequest(); - r.setPageSize(request.pageSize); - r.setPageToken(request.pageToken); - r.setView(request.view); - const paginatedList = await super.getService().listDomains().sendMessage(r); - - return { - nextPageToken: paginatedList.getNextPageToken(), - domains: paginatedList.getDomainsList().map((d: DomainsPB.Domain) => { - return { - ref: d.getRef(), - name: d.getName(), - domainUri: d.getDomainUri(), - egressRule: d.getEgressRule(), - egressNumberRef: d.getEgressNumberRef(), - accessDeny: d.getAccessDenyList(), - accessAllow: d.getAccessAllowList(), - createTime: d.getCreateTime(), - updateTime: d.getUpdateTime() - }; - }) - }; - } - - /** - * Deletes a Domain from SIP Proxy subsystem. Notice, that in order to delete - * a Domain, you must first delete all it's Agents. - * - * @param {string} ref - Reference to the Domain you wish to delete - * @example - * - * const ref = "Nx05y-ldZa"; - * - * domains.deleteDomain(ref) - * .then(() => { - * console.log("done") // returns a reference of the domain - * }).catch(e => console.error(e)); // an error occurred - */ - async deleteDomain(ref: string): Promise { - const req = new DomainsPB.DeleteDomainRequest(); - req.setRef(ref); - await super.getService().deleteDomain().sendMessage(req); - return { ref }; - } -} - -export { Domain, DomainsPB, CommonPB, IDomainsClient }; - -// WARNING: Workaround for support to commonjs clients -module.exports = Domains; -module.exports.DomainsPB = DomainsPB; -module.exports.CommonPB = CommonPB; diff --git a/mods/domains/src/client/types.ts b/mods/domains/src/client/types.ts deleted file mode 100644 index 093ac9cc5..000000000 --- a/mods/domains/src/client/types.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface IDomainsClient { - createDomain(request: CreateDomainRequest): Promise; - getDomain(ref: string): Promise; - updateDomain(request: UpdateDomainRequest): Promise; - listDomains(request: ListDomainsRequest): Promise; - deleteDomain(ref: string): Promise; -} - -export interface Domain { - ref: string; - name: string; - domainUri: string; - egressRule: string; - egressNumberRef: string; - accessDeny: string[]; - accessAllow: string[]; - createTime: string; - updateTime: string; -} - -export interface CreateDomainRequest { - name: string; - domainUri: string; - egressRule?: string; - egressNumberRef?: string; - accessDeny?: string[]; - accessAllow?: string[]; -} - -export interface CreateDomainResponse { - ref: string; - name: string; - domainUri: string; - egressRule?: string; - egressNumberRef?: string; - accessDeny?: string[]; - accessAllow?: string[]; - createTime: string; - updateTime: string; -} - -export interface GetDomainResponse { - ref: string; - name: string; - domainUri: string; - egressRule?: string; - egressNumberRef?: string; - accessDeny?: string[]; - accessAllow?: string[]; - createTime: string; - updateTime: string; -} - -export interface UpdateDomainRequest { - ref: string; - name?: string; - domainUri?: string; - egressRule?: string; - egressNumberRef?: string; - accessDeny?: string[]; - accessAllow?: string[]; -} - -export interface UpdateDomainResponse { - ref: string; -} - -export interface ListDomainsRequest { - pageSize?: number; - pageToken?: string; - view?: number; -} - -export interface ListDomainsResponse { - nextPageToken: string; - domains: Domain[]; -} - -export interface DeleteDomainResponse { - ref: string; -} diff --git a/mods/domains/src/protos/domains.proto b/mods/domains/src/protos/domains.proto deleted file mode 100644 index ab7b42cc3..000000000 --- a/mods/domains/src/protos/domains.proto +++ /dev/null @@ -1,116 +0,0 @@ -/** - * MIT License - * Copyright (c) 2021 Fonoster Inc - * - * The Domains proto contains the artificats for domains administration - */ -syntax = "proto3"; - -package fonoster.domains.v1beta1; - -option go_package = "github.com/fonoster/fonoster/mods/domains/fonoster/services/protos/domains"; - -import "protoc-gen-openapiv2/options/annotations.proto"; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "common.proto"; - -service Domains { - // Lists domains from the SIP Proxy subsystem - rpc ListDomains (ListDomainsRequest) returns (ListDomainsResponse) {}; - // Creates a new Domain resource - rpc CreateDomain (CreateDomainRequest) returns (Domain) { - option (google.api.http) = { - post: "/v1beta1/domains" - body: "*" - }; - }; - // Gets a Domain by reference - rpc GetDomain (GetDomainRequest) returns (Domain) { - option (google.api.http) = { get: "/v1beta1/domains/{ref}" }; - }; - // Change or update fields in a resource - rpc UpdateDomain (UpdateDomainRequest) returns (Domain) { - option (google.api.http) = { - put: "/v1beta1/domains/{ref}" - body: "*" - }; - }; - // Hard delete of a domain resource - rpc DeleteDomain (DeleteDomainRequest) returns (fonoster.common.v1beta1.Empty) { - option (google.api.http) = { - delete: "/v1beta1/domains/{ref}" - }; - }; -} - -message ListDomainsRequest { - // The maximum number of items to return - int32 page_size = 1; - - // The next_page_token value returned from the previous request, if any - string page_token = 2; - - // Level of detail of the individual entities (reserved) - fonoster.common.v1beta1.View view = 3; -} - -message ListDomainsResponse { - // List of Domains - repeated Domain domains = 1; - - // Token to retrieve the next page of results, or empty if there are no more results in the list - string next_page_token = 2; -} - -message CreateDomainRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"name\": \"Acme Corp\", \"domainUri\": \"sip.acme.com\", \"egressRule\": \".*\", \"egressNumberRef\": \"1yyB170ozd\"}" - }; - string name = 1 [(google.api.field_behavior) = REQUIRED]; - string domain_uri = 2 [(google.api.field_behavior) = REQUIRED]; - string egress_rule = 3; - string egress_number_ref = 4; - repeated string access_deny = 5; - repeated string access_allow = 6; -} - -message UpdateDomainRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"egressNumberRef\": \"1yyB170ozd\"}" - }; - // Domain's reference - string ref = 1 [(google.api.field_behavior) = REQUIRED]; - string name = 2; - string egress_rule = 3; - string egress_number_ref = 4; - repeated string access_deny = 5; - repeated string access_allow = 6; -} - -message GetDomainRequest { - // Domain's reference - string ref = 1; -} - -message DeleteDomainRequest { - // Domain's reference - string ref = 1; -} - -message Domain { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"ref\": \"tyyB1z0tgj\", \"name\": \"Acme Corp\", \"domainUri\": \"sip.acme.com\", \"egressRule\": \".*\", \"egressNumberRef\": \"1yyB170ozd\", \"createTime\": \"2021-10-05T13:23:07.221Z\", \"updateTime\": \"2021-10-05T13:23:07.221Z\"}" - }; - // Domain's reference - string ref = 1; - string name = 2 [(google.api.field_behavior) = REQUIRED]; - string domain_uri = 3 [(google.api.field_behavior) = REQUIRED]; - string egress_rule = 4 ; - string egress_number_ref = 5; - repeated string access_deny = 6; - repeated string access_allow = 7; - string create_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - string update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - diff --git a/mods/domains/src/service/decoder.ts b/mods/domains/src/service/decoder.ts deleted file mode 100644 index 301d9e92c..000000000 --- a/mods/domains/src/service/decoder.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* eslint-disable require-jsdoc */ -import { Domain } from "./protos/domains_pb"; - -export default function (jsonObj: any) { - const domain = new Domain(); - const context = jsonObj?.spec?.context; - - domain.setRef(jsonObj.metadata.ref); - domain.setName(jsonObj.metadata.name); - domain.setDomainUri(context?.domainUri); - domain.setCreateTime(jsonObj.metadata.createdOn); - domain.setUpdateTime(jsonObj.metadata.modifiedOn); - - if (context.egressPolicy) { - domain.setEgressRule(context.egressPolicy?.rule); - domain.setEgressNumberRef(context.egressPolicy?.numberRef); - } - - const acl = context?.accessControlList; - - if (acl && acl.allow) domain.setAccessAllowList(acl.allow); - if (acl && acl.deny) domain.setAccessDenyList(acl.deny); - - return domain; -} diff --git a/mods/domains/src/service/domains.ts b/mods/domains/src/service/domains.ts deleted file mode 100644 index 257081ecc..000000000 --- a/mods/domains/src/service/domains.ts +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable require-jsdoc */ -import grpc from "@grpc/grpc-js"; -import { - Domain, - ListDomainsRequest, - ListDomainsResponse, - GetDomainRequest, - CreateDomainRequest, - UpdateDomainRequest, - DeleteDomainRequest -} from "./protos/domains_pb"; -import { Empty } from "./protos/common_pb"; -import { - IDomainsService, - DomainsService, - IDomainsServer -} from "./protos/domains_grpc_pb"; -import { - createResource, - ResourceServer, - getAccessKeyId, - Kind, - ResourceBuilder, - updateResource -} from "@fonoster/core"; -import unmarshalDomain from "./decoder"; -import decoder from "./decoder"; -import isValidDomain from "is-valid-domain"; - -class DomainsServer implements IDomainsServer { - [name: string]: grpc.UntypedHandleCall; - async listDomains( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - const result = await ResourceServer.listResources(Kind.DOMAIN, call); - const response = new ListDomainsResponse(); - if (result && result.resources) { - const domains = result.resources.map((resource) => decoder(resource)); - response.setNextPageToken(result.nextPageToken + ""); - response.setDomainsList(domains); - } - callback(null, response); - } - - async createDomain( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - const request = call.request; - - const domainUri = process.env.GLOBAL_SIP_DOMAIN - ? `${request.getDomainUri()}.${process.env.GLOBAL_SIP_DOMAIN}` - : request.getDomainUri(); - - if (isValidDomain(domainUri) == false) { - callback( - new Error(`Domain URI '${domainUri}' is not a valid domain`), - null - ); - return; - } - - if (request.getEgressNumberRef() && !request.getEgressRule()) { - callback(new Error("Egress Rule can't be null"), null); - return; - } - try { - const resource = new ResourceBuilder(Kind.DOMAIN, request.getName(), null) - .withDomainUri(domainUri) - .withEgressPolicy(request.getEgressRule(), request.getEgressNumberRef()) - .withACL(request.getAccessAllowList(), request.getAccessDenyList()) - .withMetadata({ accessKeyId: getAccessKeyId(call) }) - .build(); - - const response = await createResource(resource); - callback(null, unmarshalDomain(response)); - } catch (e) { - callback(e, null); - } - } - - async updateDomain( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - const request = call.request; - if (request.getEgressNumberRef() && !request.getEgressRule()) { - callback(new Error("Egress Rule can't be null"), null); - return; - } - try { - const domain = (await ResourceServer.getResource( - Kind.DOMAIN, - call - )) as any; - - console.log("test-> " + domain); - - const resource = new ResourceBuilder( - Kind.DOMAIN, - request.getName(), - request.getRef() - ) - .withMetadata({ - createdOn: domain.metadata.createdOn - }) - .withEgressPolicy(request.getEgressRule(), request.getEgressNumberRef()) - .withACL(request.getAccessAllowList(), request.getAccessDenyList()) - .build(); - - const result = await updateResource({ - resource, - accessKeyId: getAccessKeyId(call) - }); - - callback(null, decoder(result)); - } catch (e) { - callback(e, null); - } - } - - async getDomain( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const result = await ResourceServer.getResource(Kind.DOMAIN, call); - callback(null, decoder(result)); - } catch (e) { - callback(e, null); - } - } - - async deleteDomain( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - await ResourceServer.deleteResource(Kind.DOMAIN, call); - callback(null, new Empty()); - } catch (e) { - callback(e, null); - } - } -} - -export { DomainsServer as default, IDomainsService, DomainsService }; diff --git a/mods/domains/src/service/healthcheck.ts b/mods/domains/src/service/healthcheck.ts deleted file mode 100644 index a8988fbb7..000000000 --- a/mods/domains/src/service/healthcheck.ts +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonos - * - * This file is part of Project Fonos - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -healthcheck(); diff --git a/mods/domains/src/service/protos/common_grpc_pb.js b/mods/domains/src/service/protos/common_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/domains/src/service/protos/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/domains/src/service/protos/common_pb.d.ts b/mods/domains/src/service/protos/common_pb.d.ts deleted file mode 100644 index f8b5fb810..000000000 --- a/mods/domains/src/service/protos/common_pb.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// package: fonoster.common.v1beta1 -// file: common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class Empty extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Empty.AsObject; - static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Empty; - static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; -} - -export namespace Empty { - export type AsObject = { - } -} - -export class ErrorResponse extends jspb.Message { - getStatus(): number; - setStatus(value: number): ErrorResponse; - getMessage(): string; - setMessage(value: string): ErrorResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ErrorResponse.AsObject; - static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ErrorResponse; - static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse; -} - -export namespace ErrorResponse { - export type AsObject = { - status: number, - message: string, - } -} - -export enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2, -} diff --git a/mods/domains/src/service/protos/common_pb.js b/mods/domains/src/service/protos/common_pb.js deleted file mode 100644 index b7f99c7ea..000000000 --- a/mods/domains/src/service/protos/common_pb.js +++ /dev/null @@ -1,335 +0,0 @@ -// source: common.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -goog.exportSymbol('proto.fonoster.common.v1beta1.Empty', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.ErrorResponse', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.View', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.Empty = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.Empty, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.Empty.displayName = 'proto.fonoster.common.v1beta1.Empty'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.ErrorResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.ErrorResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.ErrorResponse.displayName = 'proto.fonoster.common.v1beta1.ErrorResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.Empty.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.Empty.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.Empty} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.Empty; - return proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.Empty} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.Empty.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.Empty} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.ErrorResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.toObject = function(includeInstance, msg) { - var f, obj = { - status: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.ErrorResponse; - return proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setStatus(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getStatus(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional int32 status = 1; - * @return {number} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getStatus = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setStatus = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * @enum {number} - */ -proto.fonoster.common.v1beta1.View = { - BASIC: 0, - STANDARD: 1, - FULL: 2 -}; - -goog.object.extend(exports, proto.fonoster.common.v1beta1); diff --git a/mods/domains/src/service/protos/domains_grpc_pb.d.ts b/mods/domains/src/service/protos/domains_grpc_pb.d.ts deleted file mode 100644 index e9da2ba9f..000000000 --- a/mods/domains/src/service/protos/domains_grpc_pb.d.ts +++ /dev/null @@ -1,113 +0,0 @@ -// package: fonoster.domains.v1beta1 -// file: domains.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import {handleClientStreamingCall} from "@grpc/grpc-js/build/src/server-call"; -import * as domains_pb from "./domains_pb"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as common_pb from "./common_pb"; - -interface IDomainsService extends grpc.ServiceDefinition { - listDomains: IDomainsService_IListDomains; - createDomain: IDomainsService_ICreateDomain; - getDomain: IDomainsService_IGetDomain; - updateDomain: IDomainsService_IUpdateDomain; - deleteDomain: IDomainsService_IDeleteDomain; -} - -interface IDomainsService_IListDomains extends grpc.MethodDefinition { - path: "/fonoster.domains.v1beta1.Domains/ListDomains"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IDomainsService_ICreateDomain extends grpc.MethodDefinition { - path: "/fonoster.domains.v1beta1.Domains/CreateDomain"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IDomainsService_IGetDomain extends grpc.MethodDefinition { - path: "/fonoster.domains.v1beta1.Domains/GetDomain"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IDomainsService_IUpdateDomain extends grpc.MethodDefinition { - path: "/fonoster.domains.v1beta1.Domains/UpdateDomain"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IDomainsService_IDeleteDomain extends grpc.MethodDefinition { - path: "/fonoster.domains.v1beta1.Domains/DeleteDomain"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const DomainsService: IDomainsService; - -export interface IDomainsServer extends grpc.UntypedServiceImplementation { - listDomains: grpc.handleUnaryCall; - createDomain: grpc.handleUnaryCall; - getDomain: grpc.handleUnaryCall; - updateDomain: grpc.handleUnaryCall; - deleteDomain: grpc.handleUnaryCall; -} - -export interface IDomainsClient { - listDomains(request: domains_pb.ListDomainsRequest, callback: (error: grpc.ServiceError | null, response: domains_pb.ListDomainsResponse) => void): grpc.ClientUnaryCall; - listDomains(request: domains_pb.ListDomainsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: domains_pb.ListDomainsResponse) => void): grpc.ClientUnaryCall; - listDomains(request: domains_pb.ListDomainsRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: domains_pb.ListDomainsResponse) => void): grpc.ClientUnaryCall; - createDomain(request: domains_pb.CreateDomainRequest, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - createDomain(request: domains_pb.CreateDomainRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - createDomain(request: domains_pb.CreateDomainRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - getDomain(request: domains_pb.GetDomainRequest, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - getDomain(request: domains_pb.GetDomainRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - getDomain(request: domains_pb.GetDomainRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - updateDomain(request: domains_pb.UpdateDomainRequest, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - updateDomain(request: domains_pb.UpdateDomainRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - updateDomain(request: domains_pb.UpdateDomainRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - deleteDomain(request: domains_pb.DeleteDomainRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteDomain(request: domains_pb.DeleteDomainRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteDomain(request: domains_pb.DeleteDomainRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; -} - -export class DomainsClient extends grpc.Client implements IDomainsClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public listDomains(request: domains_pb.ListDomainsRequest, callback: (error: grpc.ServiceError | null, response: domains_pb.ListDomainsResponse) => void): grpc.ClientUnaryCall; - public listDomains(request: domains_pb.ListDomainsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: domains_pb.ListDomainsResponse) => void): grpc.ClientUnaryCall; - public listDomains(request: domains_pb.ListDomainsRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: domains_pb.ListDomainsResponse) => void): grpc.ClientUnaryCall; - public createDomain(request: domains_pb.CreateDomainRequest, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - public createDomain(request: domains_pb.CreateDomainRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - public createDomain(request: domains_pb.CreateDomainRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - public getDomain(request: domains_pb.GetDomainRequest, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - public getDomain(request: domains_pb.GetDomainRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - public getDomain(request: domains_pb.GetDomainRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - public updateDomain(request: domains_pb.UpdateDomainRequest, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - public updateDomain(request: domains_pb.UpdateDomainRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - public updateDomain(request: domains_pb.UpdateDomainRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: domains_pb.Domain) => void): grpc.ClientUnaryCall; - public deleteDomain(request: domains_pb.DeleteDomainRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteDomain(request: domains_pb.DeleteDomainRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteDomain(request: domains_pb.DeleteDomainRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; -} diff --git a/mods/domains/src/service/protos/domains_grpc_pb.js b/mods/domains/src/service/protos/domains_grpc_pb.js deleted file mode 100644 index 40d10ac78..000000000 --- a/mods/domains/src/service/protos/domains_grpc_pb.js +++ /dev/null @@ -1,169 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// * -// MIT License -// Copyright (c) 2021 Fonoster Inc -// -// The Domains proto contains the artificats for domains administration -'use strict'; -var grpc = require('@grpc/grpc-js'); -var domains_pb = require('./domains_pb.js'); -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -var common_pb = require('./common_pb.js'); - -function serialize_fonoster_common_v1beta1_Empty(arg) { - if (!(arg instanceof common_pb.Empty)) { - throw new Error('Expected argument of type fonoster.common.v1beta1.Empty'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_common_v1beta1_Empty(buffer_arg) { - return common_pb.Empty.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_domains_v1beta1_CreateDomainRequest(arg) { - if (!(arg instanceof domains_pb.CreateDomainRequest)) { - throw new Error('Expected argument of type fonoster.domains.v1beta1.CreateDomainRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_domains_v1beta1_CreateDomainRequest(buffer_arg) { - return domains_pb.CreateDomainRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_domains_v1beta1_DeleteDomainRequest(arg) { - if (!(arg instanceof domains_pb.DeleteDomainRequest)) { - throw new Error('Expected argument of type fonoster.domains.v1beta1.DeleteDomainRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_domains_v1beta1_DeleteDomainRequest(buffer_arg) { - return domains_pb.DeleteDomainRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_domains_v1beta1_Domain(arg) { - if (!(arg instanceof domains_pb.Domain)) { - throw new Error('Expected argument of type fonoster.domains.v1beta1.Domain'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_domains_v1beta1_Domain(buffer_arg) { - return domains_pb.Domain.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_domains_v1beta1_GetDomainRequest(arg) { - if (!(arg instanceof domains_pb.GetDomainRequest)) { - throw new Error('Expected argument of type fonoster.domains.v1beta1.GetDomainRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_domains_v1beta1_GetDomainRequest(buffer_arg) { - return domains_pb.GetDomainRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_domains_v1beta1_ListDomainsRequest(arg) { - if (!(arg instanceof domains_pb.ListDomainsRequest)) { - throw new Error('Expected argument of type fonoster.domains.v1beta1.ListDomainsRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_domains_v1beta1_ListDomainsRequest(buffer_arg) { - return domains_pb.ListDomainsRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_domains_v1beta1_ListDomainsResponse(arg) { - if (!(arg instanceof domains_pb.ListDomainsResponse)) { - throw new Error('Expected argument of type fonoster.domains.v1beta1.ListDomainsResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_domains_v1beta1_ListDomainsResponse(buffer_arg) { - return domains_pb.ListDomainsResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_domains_v1beta1_UpdateDomainRequest(arg) { - if (!(arg instanceof domains_pb.UpdateDomainRequest)) { - throw new Error('Expected argument of type fonoster.domains.v1beta1.UpdateDomainRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_domains_v1beta1_UpdateDomainRequest(buffer_arg) { - return domains_pb.UpdateDomainRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var DomainsService = exports.DomainsService = { - // Lists domains from the SIP Proxy subsystem -listDomains: { - path: '/fonoster.domains.v1beta1.Domains/ListDomains', - requestStream: false, - responseStream: false, - requestType: domains_pb.ListDomainsRequest, - responseType: domains_pb.ListDomainsResponse, - requestSerialize: serialize_fonoster_domains_v1beta1_ListDomainsRequest, - requestDeserialize: deserialize_fonoster_domains_v1beta1_ListDomainsRequest, - responseSerialize: serialize_fonoster_domains_v1beta1_ListDomainsResponse, - responseDeserialize: deserialize_fonoster_domains_v1beta1_ListDomainsResponse, - }, - // Creates a new Domain resource -createDomain: { - path: '/fonoster.domains.v1beta1.Domains/CreateDomain', - requestStream: false, - responseStream: false, - requestType: domains_pb.CreateDomainRequest, - responseType: domains_pb.Domain, - requestSerialize: serialize_fonoster_domains_v1beta1_CreateDomainRequest, - requestDeserialize: deserialize_fonoster_domains_v1beta1_CreateDomainRequest, - responseSerialize: serialize_fonoster_domains_v1beta1_Domain, - responseDeserialize: deserialize_fonoster_domains_v1beta1_Domain, - }, - // Gets a Domain by reference -getDomain: { - path: '/fonoster.domains.v1beta1.Domains/GetDomain', - requestStream: false, - responseStream: false, - requestType: domains_pb.GetDomainRequest, - responseType: domains_pb.Domain, - requestSerialize: serialize_fonoster_domains_v1beta1_GetDomainRequest, - requestDeserialize: deserialize_fonoster_domains_v1beta1_GetDomainRequest, - responseSerialize: serialize_fonoster_domains_v1beta1_Domain, - responseDeserialize: deserialize_fonoster_domains_v1beta1_Domain, - }, - // Change or update fields in a resource -updateDomain: { - path: '/fonoster.domains.v1beta1.Domains/UpdateDomain', - requestStream: false, - responseStream: false, - requestType: domains_pb.UpdateDomainRequest, - responseType: domains_pb.Domain, - requestSerialize: serialize_fonoster_domains_v1beta1_UpdateDomainRequest, - requestDeserialize: deserialize_fonoster_domains_v1beta1_UpdateDomainRequest, - responseSerialize: serialize_fonoster_domains_v1beta1_Domain, - responseDeserialize: deserialize_fonoster_domains_v1beta1_Domain, - }, - // Hard delete of a domain resource -deleteDomain: { - path: '/fonoster.domains.v1beta1.Domains/DeleteDomain', - requestStream: false, - responseStream: false, - requestType: domains_pb.DeleteDomainRequest, - responseType: common_pb.Empty, - requestSerialize: serialize_fonoster_domains_v1beta1_DeleteDomainRequest, - requestDeserialize: deserialize_fonoster_domains_v1beta1_DeleteDomainRequest, - responseSerialize: serialize_fonoster_common_v1beta1_Empty, - responseDeserialize: deserialize_fonoster_common_v1beta1_Empty, - }, -}; - -exports.DomainsClient = grpc.makeGenericClientConstructor(DomainsService); diff --git a/mods/domains/src/service/protos/domains_pb.d.ts b/mods/domains/src/service/protos/domains_pb.d.ts deleted file mode 100644 index b210d61bf..000000000 --- a/mods/domains/src/service/protos/domains_pb.d.ts +++ /dev/null @@ -1,227 +0,0 @@ -// package: fonoster.domains.v1beta1 -// file: domains.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as common_pb from "./common_pb"; - -export class ListDomainsRequest extends jspb.Message { - getPageSize(): number; - setPageSize(value: number): ListDomainsRequest; - getPageToken(): string; - setPageToken(value: string): ListDomainsRequest; - getView(): common_pb.View; - setView(value: common_pb.View): ListDomainsRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListDomainsRequest.AsObject; - static toObject(includeInstance: boolean, msg: ListDomainsRequest): ListDomainsRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListDomainsRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListDomainsRequest; - static deserializeBinaryFromReader(message: ListDomainsRequest, reader: jspb.BinaryReader): ListDomainsRequest; -} - -export namespace ListDomainsRequest { - export type AsObject = { - pageSize: number, - pageToken: string, - view: common_pb.View, - } -} - -export class ListDomainsResponse extends jspb.Message { - clearDomainsList(): void; - getDomainsList(): Array; - setDomainsList(value: Array): ListDomainsResponse; - addDomains(value?: Domain, index?: number): Domain; - getNextPageToken(): string; - setNextPageToken(value: string): ListDomainsResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListDomainsResponse.AsObject; - static toObject(includeInstance: boolean, msg: ListDomainsResponse): ListDomainsResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListDomainsResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListDomainsResponse; - static deserializeBinaryFromReader(message: ListDomainsResponse, reader: jspb.BinaryReader): ListDomainsResponse; -} - -export namespace ListDomainsResponse { - export type AsObject = { - domainsList: Array, - nextPageToken: string, - } -} - -export class CreateDomainRequest extends jspb.Message { - getName(): string; - setName(value: string): CreateDomainRequest; - getDomainUri(): string; - setDomainUri(value: string): CreateDomainRequest; - getEgressRule(): string; - setEgressRule(value: string): CreateDomainRequest; - getEgressNumberRef(): string; - setEgressNumberRef(value: string): CreateDomainRequest; - clearAccessDenyList(): void; - getAccessDenyList(): Array; - setAccessDenyList(value: Array): CreateDomainRequest; - addAccessDeny(value: string, index?: number): string; - clearAccessAllowList(): void; - getAccessAllowList(): Array; - setAccessAllowList(value: Array): CreateDomainRequest; - addAccessAllow(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateDomainRequest.AsObject; - static toObject(includeInstance: boolean, msg: CreateDomainRequest): CreateDomainRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateDomainRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateDomainRequest; - static deserializeBinaryFromReader(message: CreateDomainRequest, reader: jspb.BinaryReader): CreateDomainRequest; -} - -export namespace CreateDomainRequest { - export type AsObject = { - name: string, - domainUri: string, - egressRule: string, - egressNumberRef: string, - accessDenyList: Array, - accessAllowList: Array, - } -} - -export class UpdateDomainRequest extends jspb.Message { - getRef(): string; - setRef(value: string): UpdateDomainRequest; - getName(): string; - setName(value: string): UpdateDomainRequest; - getEgressRule(): string; - setEgressRule(value: string): UpdateDomainRequest; - getEgressNumberRef(): string; - setEgressNumberRef(value: string): UpdateDomainRequest; - clearAccessDenyList(): void; - getAccessDenyList(): Array; - setAccessDenyList(value: Array): UpdateDomainRequest; - addAccessDeny(value: string, index?: number): string; - clearAccessAllowList(): void; - getAccessAllowList(): Array; - setAccessAllowList(value: Array): UpdateDomainRequest; - addAccessAllow(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UpdateDomainRequest.AsObject; - static toObject(includeInstance: boolean, msg: UpdateDomainRequest): UpdateDomainRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UpdateDomainRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UpdateDomainRequest; - static deserializeBinaryFromReader(message: UpdateDomainRequest, reader: jspb.BinaryReader): UpdateDomainRequest; -} - -export namespace UpdateDomainRequest { - export type AsObject = { - ref: string, - name: string, - egressRule: string, - egressNumberRef: string, - accessDenyList: Array, - accessAllowList: Array, - } -} - -export class GetDomainRequest extends jspb.Message { - getRef(): string; - setRef(value: string): GetDomainRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetDomainRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetDomainRequest): GetDomainRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetDomainRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetDomainRequest; - static deserializeBinaryFromReader(message: GetDomainRequest, reader: jspb.BinaryReader): GetDomainRequest; -} - -export namespace GetDomainRequest { - export type AsObject = { - ref: string, - } -} - -export class DeleteDomainRequest extends jspb.Message { - getRef(): string; - setRef(value: string): DeleteDomainRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DeleteDomainRequest.AsObject; - static toObject(includeInstance: boolean, msg: DeleteDomainRequest): DeleteDomainRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DeleteDomainRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DeleteDomainRequest; - static deserializeBinaryFromReader(message: DeleteDomainRequest, reader: jspb.BinaryReader): DeleteDomainRequest; -} - -export namespace DeleteDomainRequest { - export type AsObject = { - ref: string, - } -} - -export class Domain extends jspb.Message { - getRef(): string; - setRef(value: string): Domain; - getName(): string; - setName(value: string): Domain; - getDomainUri(): string; - setDomainUri(value: string): Domain; - getEgressRule(): string; - setEgressRule(value: string): Domain; - getEgressNumberRef(): string; - setEgressNumberRef(value: string): Domain; - clearAccessDenyList(): void; - getAccessDenyList(): Array; - setAccessDenyList(value: Array): Domain; - addAccessDeny(value: string, index?: number): string; - clearAccessAllowList(): void; - getAccessAllowList(): Array; - setAccessAllowList(value: Array): Domain; - addAccessAllow(value: string, index?: number): string; - getCreateTime(): string; - setCreateTime(value: string): Domain; - getUpdateTime(): string; - setUpdateTime(value: string): Domain; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Domain.AsObject; - static toObject(includeInstance: boolean, msg: Domain): Domain.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Domain, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Domain; - static deserializeBinaryFromReader(message: Domain, reader: jspb.BinaryReader): Domain; -} - -export namespace Domain { - export type AsObject = { - ref: string, - name: string, - domainUri: string, - egressRule: string, - egressNumberRef: string, - accessDenyList: Array, - accessAllowList: Array, - createTime: string, - updateTime: string, - } -} diff --git a/mods/domains/src/service/protos/domains_pb.js b/mods/domains/src/service/protos/domains_pb.js deleted file mode 100644 index ebc67ac53..000000000 --- a/mods/domains/src/service/protos/domains_pb.js +++ /dev/null @@ -1,1885 +0,0 @@ -// source: domains.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -goog.object.extend(proto, google_api_annotations_pb); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -goog.object.extend(proto, google_api_field_behavior_pb); -var common_pb = require('./common_pb.js'); -goog.object.extend(proto, common_pb); -goog.exportSymbol('proto.fonoster.domains.v1beta1.CreateDomainRequest', null, global); -goog.exportSymbol('proto.fonoster.domains.v1beta1.DeleteDomainRequest', null, global); -goog.exportSymbol('proto.fonoster.domains.v1beta1.Domain', null, global); -goog.exportSymbol('proto.fonoster.domains.v1beta1.GetDomainRequest', null, global); -goog.exportSymbol('proto.fonoster.domains.v1beta1.ListDomainsRequest', null, global); -goog.exportSymbol('proto.fonoster.domains.v1beta1.ListDomainsResponse', null, global); -goog.exportSymbol('proto.fonoster.domains.v1beta1.UpdateDomainRequest', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.domains.v1beta1.ListDomainsRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.domains.v1beta1.ListDomainsRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.domains.v1beta1.ListDomainsRequest.displayName = 'proto.fonoster.domains.v1beta1.ListDomainsRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.domains.v1beta1.ListDomainsResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.domains.v1beta1.ListDomainsResponse.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.domains.v1beta1.ListDomainsResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.domains.v1beta1.ListDomainsResponse.displayName = 'proto.fonoster.domains.v1beta1.ListDomainsResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.domains.v1beta1.CreateDomainRequest.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.domains.v1beta1.CreateDomainRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.domains.v1beta1.CreateDomainRequest.displayName = 'proto.fonoster.domains.v1beta1.CreateDomainRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.domains.v1beta1.UpdateDomainRequest.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.domains.v1beta1.UpdateDomainRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.domains.v1beta1.UpdateDomainRequest.displayName = 'proto.fonoster.domains.v1beta1.UpdateDomainRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.domains.v1beta1.GetDomainRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.domains.v1beta1.GetDomainRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.domains.v1beta1.GetDomainRequest.displayName = 'proto.fonoster.domains.v1beta1.GetDomainRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.domains.v1beta1.DeleteDomainRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.domains.v1beta1.DeleteDomainRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.domains.v1beta1.DeleteDomainRequest.displayName = 'proto.fonoster.domains.v1beta1.DeleteDomainRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.domains.v1beta1.Domain = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.domains.v1beta1.Domain.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.domains.v1beta1.Domain, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.domains.v1beta1.Domain.displayName = 'proto.fonoster.domains.v1beta1.Domain'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.domains.v1beta1.ListDomainsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.domains.v1beta1.ListDomainsRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.domains.v1beta1.ListDomainsRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.ListDomainsRequest.toObject = function(includeInstance, msg) { - var f, obj = { - pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), - pageToken: jspb.Message.getFieldWithDefault(msg, 2, ""), - view: jspb.Message.getFieldWithDefault(msg, 3, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.domains.v1beta1.ListDomainsRequest} - */ -proto.fonoster.domains.v1beta1.ListDomainsRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.domains.v1beta1.ListDomainsRequest; - return proto.fonoster.domains.v1beta1.ListDomainsRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.domains.v1beta1.ListDomainsRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.domains.v1beta1.ListDomainsRequest} - */ -proto.fonoster.domains.v1beta1.ListDomainsRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setPageSize(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPageToken(value); - break; - case 3: - var value = /** @type {!proto.fonoster.common.v1beta1.View} */ (reader.readEnum()); - msg.setView(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.domains.v1beta1.ListDomainsRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.domains.v1beta1.ListDomainsRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.domains.v1beta1.ListDomainsRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.ListDomainsRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getPageSize(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getView(); - if (f !== 0.0) { - writer.writeEnum( - 3, - f - ); - } -}; - - -/** - * optional int32 page_size = 1; - * @return {number} - */ -proto.fonoster.domains.v1beta1.ListDomainsRequest.prototype.getPageSize = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.domains.v1beta1.ListDomainsRequest} returns this - */ -proto.fonoster.domains.v1beta1.ListDomainsRequest.prototype.setPageSize = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string page_token = 2; - * @return {string} - */ -proto.fonoster.domains.v1beta1.ListDomainsRequest.prototype.getPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.ListDomainsRequest} returns this - */ -proto.fonoster.domains.v1beta1.ListDomainsRequest.prototype.setPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional fonoster.common.v1beta1.View view = 3; - * @return {!proto.fonoster.common.v1beta1.View} - */ -proto.fonoster.domains.v1beta1.ListDomainsRequest.prototype.getView = function() { - return /** @type {!proto.fonoster.common.v1beta1.View} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {!proto.fonoster.common.v1beta1.View} value - * @return {!proto.fonoster.domains.v1beta1.ListDomainsRequest} returns this - */ -proto.fonoster.domains.v1beta1.ListDomainsRequest.prototype.setView = function(value) { - return jspb.Message.setProto3EnumField(this, 3, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.domains.v1beta1.ListDomainsResponse.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.domains.v1beta1.ListDomainsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.domains.v1beta1.ListDomainsResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.domains.v1beta1.ListDomainsResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.ListDomainsResponse.toObject = function(includeInstance, msg) { - var f, obj = { - domainsList: jspb.Message.toObjectList(msg.getDomainsList(), - proto.fonoster.domains.v1beta1.Domain.toObject, includeInstance), - nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.domains.v1beta1.ListDomainsResponse} - */ -proto.fonoster.domains.v1beta1.ListDomainsResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.domains.v1beta1.ListDomainsResponse; - return proto.fonoster.domains.v1beta1.ListDomainsResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.domains.v1beta1.ListDomainsResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.domains.v1beta1.ListDomainsResponse} - */ -proto.fonoster.domains.v1beta1.ListDomainsResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.fonoster.domains.v1beta1.Domain; - reader.readMessage(value,proto.fonoster.domains.v1beta1.Domain.deserializeBinaryFromReader); - msg.addDomains(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setNextPageToken(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.domains.v1beta1.ListDomainsResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.domains.v1beta1.ListDomainsResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.domains.v1beta1.ListDomainsResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.ListDomainsResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDomainsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.fonoster.domains.v1beta1.Domain.serializeBinaryToWriter - ); - } - f = message.getNextPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * repeated Domain domains = 1; - * @return {!Array} - */ -proto.fonoster.domains.v1beta1.ListDomainsResponse.prototype.getDomainsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.fonoster.domains.v1beta1.Domain, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.domains.v1beta1.ListDomainsResponse} returns this -*/ -proto.fonoster.domains.v1beta1.ListDomainsResponse.prototype.setDomainsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.fonoster.domains.v1beta1.Domain=} opt_value - * @param {number=} opt_index - * @return {!proto.fonoster.domains.v1beta1.Domain} - */ -proto.fonoster.domains.v1beta1.ListDomainsResponse.prototype.addDomains = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.domains.v1beta1.Domain, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.domains.v1beta1.ListDomainsResponse} returns this - */ -proto.fonoster.domains.v1beta1.ListDomainsResponse.prototype.clearDomainsList = function() { - return this.setDomainsList([]); -}; - - -/** - * optional string next_page_token = 2; - * @return {string} - */ -proto.fonoster.domains.v1beta1.ListDomainsResponse.prototype.getNextPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.ListDomainsResponse} returns this - */ -proto.fonoster.domains.v1beta1.ListDomainsResponse.prototype.setNextPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.repeatedFields_ = [5,6]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.domains.v1beta1.CreateDomainRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.domains.v1beta1.CreateDomainRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - domainUri: jspb.Message.getFieldWithDefault(msg, 2, ""), - egressRule: jspb.Message.getFieldWithDefault(msg, 3, ""), - egressNumberRef: jspb.Message.getFieldWithDefault(msg, 4, ""), - accessDenyList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - accessAllowList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.domains.v1beta1.CreateDomainRequest} - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.domains.v1beta1.CreateDomainRequest; - return proto.fonoster.domains.v1beta1.CreateDomainRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.domains.v1beta1.CreateDomainRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.domains.v1beta1.CreateDomainRequest} - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDomainUri(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEgressRule(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setEgressNumberRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.addAccessDeny(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addAccessAllow(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.domains.v1beta1.CreateDomainRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.domains.v1beta1.CreateDomainRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDomainUri(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEgressRule(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getEgressNumberRef(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getAccessDenyList(); - if (f.length > 0) { - writer.writeRepeatedString( - 5, - f - ); - } - f = message.getAccessAllowList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.CreateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string domain_uri = 2; - * @return {string} - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.getDomainUri = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.CreateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.setDomainUri = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string egress_rule = 3; - * @return {string} - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.getEgressRule = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.CreateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.setEgressRule = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string egress_number_ref = 4; - * @return {string} - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.getEgressNumberRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.CreateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.setEgressNumberRef = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated string access_deny = 5; - * @return {!Array} - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.getAccessDenyList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.domains.v1beta1.CreateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.setAccessDenyList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.fonoster.domains.v1beta1.CreateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.addAccessDeny = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.domains.v1beta1.CreateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.clearAccessDenyList = function() { - return this.setAccessDenyList([]); -}; - - -/** - * repeated string access_allow = 6; - * @return {!Array} - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.getAccessAllowList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.domains.v1beta1.CreateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.setAccessAllowList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.fonoster.domains.v1beta1.CreateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.addAccessAllow = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.domains.v1beta1.CreateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.CreateDomainRequest.prototype.clearAccessAllowList = function() { - return this.setAccessAllowList([]); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.repeatedFields_ = [5,6]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.domains.v1beta1.UpdateDomainRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - egressRule: jspb.Message.getFieldWithDefault(msg, 3, ""), - egressNumberRef: jspb.Message.getFieldWithDefault(msg, 4, ""), - accessDenyList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - accessAllowList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.domains.v1beta1.UpdateDomainRequest; - return proto.fonoster.domains.v1beta1.UpdateDomainRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEgressRule(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setEgressNumberRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.addAccessDeny(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addAccessAllow(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.domains.v1beta1.UpdateDomainRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEgressRule(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getEgressNumberRef(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getAccessDenyList(); - if (f.length > 0) { - writer.writeRepeatedString( - 5, - f - ); - } - f = message.getAccessAllowList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string egress_rule = 3; - * @return {string} - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.getEgressRule = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.setEgressRule = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string egress_number_ref = 4; - * @return {string} - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.getEgressNumberRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.setEgressNumberRef = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated string access_deny = 5; - * @return {!Array} - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.getAccessDenyList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.setAccessDenyList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.addAccessDeny = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.clearAccessDenyList = function() { - return this.setAccessDenyList([]); -}; - - -/** - * repeated string access_allow = 6; - * @return {!Array} - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.getAccessAllowList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.setAccessAllowList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.addAccessAllow = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.domains.v1beta1.UpdateDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.UpdateDomainRequest.prototype.clearAccessAllowList = function() { - return this.setAccessAllowList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.domains.v1beta1.GetDomainRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.domains.v1beta1.GetDomainRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.domains.v1beta1.GetDomainRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.GetDomainRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.domains.v1beta1.GetDomainRequest} - */ -proto.fonoster.domains.v1beta1.GetDomainRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.domains.v1beta1.GetDomainRequest; - return proto.fonoster.domains.v1beta1.GetDomainRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.domains.v1beta1.GetDomainRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.domains.v1beta1.GetDomainRequest} - */ -proto.fonoster.domains.v1beta1.GetDomainRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.domains.v1beta1.GetDomainRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.domains.v1beta1.GetDomainRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.domains.v1beta1.GetDomainRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.GetDomainRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.domains.v1beta1.GetDomainRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.GetDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.GetDomainRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.domains.v1beta1.DeleteDomainRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.domains.v1beta1.DeleteDomainRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.domains.v1beta1.DeleteDomainRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.DeleteDomainRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.domains.v1beta1.DeleteDomainRequest} - */ -proto.fonoster.domains.v1beta1.DeleteDomainRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.domains.v1beta1.DeleteDomainRequest; - return proto.fonoster.domains.v1beta1.DeleteDomainRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.domains.v1beta1.DeleteDomainRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.domains.v1beta1.DeleteDomainRequest} - */ -proto.fonoster.domains.v1beta1.DeleteDomainRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.domains.v1beta1.DeleteDomainRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.domains.v1beta1.DeleteDomainRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.domains.v1beta1.DeleteDomainRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.DeleteDomainRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.domains.v1beta1.DeleteDomainRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.DeleteDomainRequest} returns this - */ -proto.fonoster.domains.v1beta1.DeleteDomainRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.domains.v1beta1.Domain.repeatedFields_ = [6,7]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.domains.v1beta1.Domain.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.domains.v1beta1.Domain.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.domains.v1beta1.Domain} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.Domain.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - domainUri: jspb.Message.getFieldWithDefault(msg, 3, ""), - egressRule: jspb.Message.getFieldWithDefault(msg, 4, ""), - egressNumberRef: jspb.Message.getFieldWithDefault(msg, 5, ""), - accessDenyList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - accessAllowList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - createTime: jspb.Message.getFieldWithDefault(msg, 8, ""), - updateTime: jspb.Message.getFieldWithDefault(msg, 9, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.domains.v1beta1.Domain} - */ -proto.fonoster.domains.v1beta1.Domain.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.domains.v1beta1.Domain; - return proto.fonoster.domains.v1beta1.Domain.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.domains.v1beta1.Domain} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.domains.v1beta1.Domain} - */ -proto.fonoster.domains.v1beta1.Domain.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDomainUri(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setEgressRule(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setEgressNumberRef(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addAccessDeny(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addAccessAllow(value); - break; - case 8: - var value = /** @type {string} */ (reader.readString()); - msg.setCreateTime(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setUpdateTime(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.domains.v1beta1.Domain.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.domains.v1beta1.Domain.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.domains.v1beta1.Domain} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.domains.v1beta1.Domain.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDomainUri(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getEgressRule(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getEgressNumberRef(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getAccessDenyList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getAccessAllowList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getCreateTime(); - if (f.length > 0) { - writer.writeString( - 8, - f - ); - } - f = message.getUpdateTime(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.domains.v1beta1.Domain.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.Domain} returns this - */ -proto.fonoster.domains.v1beta1.Domain.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.fonoster.domains.v1beta1.Domain.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.Domain} returns this - */ -proto.fonoster.domains.v1beta1.Domain.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string domain_uri = 3; - * @return {string} - */ -proto.fonoster.domains.v1beta1.Domain.prototype.getDomainUri = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.Domain} returns this - */ -proto.fonoster.domains.v1beta1.Domain.prototype.setDomainUri = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string egress_rule = 4; - * @return {string} - */ -proto.fonoster.domains.v1beta1.Domain.prototype.getEgressRule = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.Domain} returns this - */ -proto.fonoster.domains.v1beta1.Domain.prototype.setEgressRule = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string egress_number_ref = 5; - * @return {string} - */ -proto.fonoster.domains.v1beta1.Domain.prototype.getEgressNumberRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.Domain} returns this - */ -proto.fonoster.domains.v1beta1.Domain.prototype.setEgressNumberRef = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string access_deny = 6; - * @return {!Array} - */ -proto.fonoster.domains.v1beta1.Domain.prototype.getAccessDenyList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.domains.v1beta1.Domain} returns this - */ -proto.fonoster.domains.v1beta1.Domain.prototype.setAccessDenyList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.fonoster.domains.v1beta1.Domain} returns this - */ -proto.fonoster.domains.v1beta1.Domain.prototype.addAccessDeny = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.domains.v1beta1.Domain} returns this - */ -proto.fonoster.domains.v1beta1.Domain.prototype.clearAccessDenyList = function() { - return this.setAccessDenyList([]); -}; - - -/** - * repeated string access_allow = 7; - * @return {!Array} - */ -proto.fonoster.domains.v1beta1.Domain.prototype.getAccessAllowList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.domains.v1beta1.Domain} returns this - */ -proto.fonoster.domains.v1beta1.Domain.prototype.setAccessAllowList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.fonoster.domains.v1beta1.Domain} returns this - */ -proto.fonoster.domains.v1beta1.Domain.prototype.addAccessAllow = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.domains.v1beta1.Domain} returns this - */ -proto.fonoster.domains.v1beta1.Domain.prototype.clearAccessAllowList = function() { - return this.setAccessAllowList([]); -}; - - -/** - * optional string create_time = 8; - * @return {string} - */ -proto.fonoster.domains.v1beta1.Domain.prototype.getCreateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.Domain} returns this - */ -proto.fonoster.domains.v1beta1.Domain.prototype.setCreateTime = function(value) { - return jspb.Message.setProto3StringField(this, 8, value); -}; - - -/** - * optional string update_time = 9; - * @return {string} - */ -proto.fonoster.domains.v1beta1.Domain.prototype.getUpdateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.domains.v1beta1.Domain} returns this - */ -proto.fonoster.domains.v1beta1.Domain.prototype.setUpdateTime = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -goog.object.extend(exports, proto.fonoster.domains.v1beta1); diff --git a/mods/domains/src/service/protos/google/api/annotations_grpc_pb.js b/mods/domains/src/service/protos/google/api/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/domains/src/service/protos/google/api/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/domains/src/service/protos/google/api/annotations_pb.d.ts b/mods/domains/src/service/protos/google/api/annotations_pb.d.ts deleted file mode 100644 index 06072f3bd..000000000 --- a/mods/domains/src/service/protos/google/api/annotations_pb.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// package: google.api -// file: google/api/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_api_http_pb from "../../google/api/http_pb"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const http: jspb.ExtensionFieldInfo; diff --git a/mods/domains/src/service/protos/google/api/annotations_pb.js b/mods/domains/src/service/protos/google/api/annotations_pb.js deleted file mode 100644 index 99e4c1824..000000000 --- a/mods/domains/src/service/protos/google/api/annotations_pb.js +++ /dev/null @@ -1,48 +0,0 @@ -// source: google/api/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_http_pb = require('../../google/api/http_pb.js'); -goog.object.extend(proto, google_api_http_pb); -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.http', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `http`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.google.api.http = new jspb.ExtensionFieldInfo( - 72295728, - {http: 0}, - google_api_http_pb.HttpRule, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - google_api_http_pb.HttpRule.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[72295728] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.http, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - google_api_http_pb.HttpRule.serializeBinaryToWriter, - google_api_http_pb.HttpRule.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[72295728] = proto.google.api.http; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/domains/src/service/protos/google/api/field_behavior_grpc_pb.js b/mods/domains/src/service/protos/google/api/field_behavior_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/domains/src/service/protos/google/api/field_behavior_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/domains/src/service/protos/google/api/field_behavior_pb.d.ts b/mods/domains/src/service/protos/google/api/field_behavior_pb.d.ts deleted file mode 100644 index 9b853705f..000000000 --- a/mods/domains/src/service/protos/google/api/field_behavior_pb.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -// package: google.api -// file: google/api/field_behavior.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const fieldBehavior: jspb.ExtensionFieldInfo; - -export enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, -} diff --git a/mods/domains/src/service/protos/google/api/field_behavior_pb.js b/mods/domains/src/service/protos/google/api/field_behavior_pb.js deleted file mode 100644 index 44160cc41..000000000 --- a/mods/domains/src/service/protos/google/api/field_behavior_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// source: google/api/field_behavior.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.FieldBehavior', null, global); -goog.exportSymbol('proto.google.api.fieldBehaviorList', null, global); -/** - * @enum {number} - */ -proto.google.api.FieldBehavior = { - FIELD_BEHAVIOR_UNSPECIFIED: 0, - OPTIONAL: 1, - REQUIRED: 2, - OUTPUT_ONLY: 3, - INPUT_ONLY: 4, - IMMUTABLE: 5, - UNORDERED_LIST: 6, - NON_EMPTY_DEFAULT: 7 -}; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `fieldBehaviorList`. - * @type {!jspb.ExtensionFieldInfo>} - */ -proto.google.api.fieldBehaviorList = new jspb.ExtensionFieldInfo( - 1052, - {fieldBehaviorList: 0}, - null, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - null), - 1); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1052] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.fieldBehaviorList, - jspb.BinaryReader.prototype.readPackedEnum, - jspb.BinaryWriter.prototype.writePackedEnum, - undefined, - undefined, - true); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1052] = proto.google.api.fieldBehaviorList; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/domains/src/service/protos/google/api/http_grpc_pb.js b/mods/domains/src/service/protos/google/api/http_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/domains/src/service/protos/google/api/http_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/domains/src/service/protos/google/api/http_pb.d.ts b/mods/domains/src/service/protos/google/api/http_pb.d.ts deleted file mode 100644 index 02c3b1ece..000000000 --- a/mods/domains/src/service/protos/google/api/http_pb.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -// package: google.api -// file: google/api/http.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Http extends jspb.Message { - clearRulesList(): void; - getRulesList(): Array; - setRulesList(value: Array): Http; - addRules(value?: HttpRule, index?: number): HttpRule; - getFullyDecodeReservedExpansion(): boolean; - setFullyDecodeReservedExpansion(value: boolean): Http; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Http.AsObject; - static toObject(includeInstance: boolean, msg: Http): Http.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Http; - static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http; -} - -export namespace Http { - export type AsObject = { - rulesList: Array, - fullyDecodeReservedExpansion: boolean, - } -} - -export class HttpRule extends jspb.Message { - getSelector(): string; - setSelector(value: string): HttpRule; - - hasGet(): boolean; - clearGet(): void; - getGet(): string; - setGet(value: string): HttpRule; - - hasPut(): boolean; - clearPut(): void; - getPut(): string; - setPut(value: string): HttpRule; - - hasPost(): boolean; - clearPost(): void; - getPost(): string; - setPost(value: string): HttpRule; - - hasDelete(): boolean; - clearDelete(): void; - getDelete(): string; - setDelete(value: string): HttpRule; - - hasPatch(): boolean; - clearPatch(): void; - getPatch(): string; - setPatch(value: string): HttpRule; - - hasCustom(): boolean; - clearCustom(): void; - getCustom(): CustomHttpPattern | undefined; - setCustom(value?: CustomHttpPattern): HttpRule; - getBody(): string; - setBody(value: string): HttpRule; - getResponseBody(): string; - setResponseBody(value: string): HttpRule; - clearAdditionalBindingsList(): void; - getAdditionalBindingsList(): Array; - setAdditionalBindingsList(value: Array): HttpRule; - addAdditionalBindings(value?: HttpRule, index?: number): HttpRule; - - getPatternCase(): HttpRule.PatternCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpRule.AsObject; - static toObject(includeInstance: boolean, msg: HttpRule): HttpRule.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpRule, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpRule; - static deserializeBinaryFromReader(message: HttpRule, reader: jspb.BinaryReader): HttpRule; -} - -export namespace HttpRule { - export type AsObject = { - selector: string, - get: string, - put: string, - post: string, - pb_delete: string, - patch: string, - custom?: CustomHttpPattern.AsObject, - body: string, - responseBody: string, - additionalBindingsList: Array, - } - - export enum PatternCase { - PATTERN_NOT_SET = 0, - GET = 2, - PUT = 3, - POST = 4, - DELETE = 5, - PATCH = 6, - CUSTOM = 8, - } - -} - -export class CustomHttpPattern extends jspb.Message { - getKind(): string; - setKind(value: string): CustomHttpPattern; - getPath(): string; - setPath(value: string): CustomHttpPattern; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CustomHttpPattern.AsObject; - static toObject(includeInstance: boolean, msg: CustomHttpPattern): CustomHttpPattern.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CustomHttpPattern, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CustomHttpPattern; - static deserializeBinaryFromReader(message: CustomHttpPattern, reader: jspb.BinaryReader): CustomHttpPattern; -} - -export namespace CustomHttpPattern { - export type AsObject = { - kind: string, - path: string, - } -} diff --git a/mods/domains/src/service/protos/google/api/http_pb.js b/mods/domains/src/service/protos/google/api/http_pb.js deleted file mode 100644 index 0359c5eec..000000000 --- a/mods/domains/src/service/protos/google/api/http_pb.js +++ /dev/null @@ -1,1006 +0,0 @@ -// source: google/api/http.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.google.api.CustomHttpPattern', null, global); -goog.exportSymbol('proto.google.api.Http', null, global); -goog.exportSymbol('proto.google.api.HttpRule', null, global); -goog.exportSymbol('proto.google.api.HttpRule.PatternCase', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.Http = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Http.repeatedFields_, null); -}; -goog.inherits(proto.google.api.Http, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.Http.displayName = 'proto.google.api.Http'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpRule = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpRule.repeatedFields_, proto.google.api.HttpRule.oneofGroups_); -}; -goog.inherits(proto.google.api.HttpRule, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpRule.displayName = 'proto.google.api.HttpRule'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.CustomHttpPattern = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.google.api.CustomHttpPattern, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.CustomHttpPattern.displayName = 'proto.google.api.CustomHttpPattern'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.Http.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.Http.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.Http.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.Http} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.toObject = function(includeInstance, msg) { - var f, obj = { - rulesList: jspb.Message.toObjectList(msg.getRulesList(), - proto.google.api.HttpRule.toObject, includeInstance), - fullyDecodeReservedExpansion: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.Http; - return proto.google.api.Http.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.Http} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addRules(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFullyDecodeReservedExpansion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.Http.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.Http.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.Http} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRulesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } - f = message.getFullyDecodeReservedExpansion(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * repeated HttpRule rules = 1; - * @return {!Array} - */ -proto.google.api.Http.prototype.getRulesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.Http} returns this -*/ -proto.google.api.Http.prototype.setRulesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.Http.prototype.addRules = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.clearRulesList = function() { - return this.setRulesList([]); -}; - - -/** - * optional bool fully_decode_reserved_expansion = 2; - * @return {boolean} - */ -proto.google.api.Http.prototype.getFullyDecodeReservedExpansion = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.setFullyDecodeReservedExpansion = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpRule.repeatedFields_ = [11]; - -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.google.api.HttpRule.oneofGroups_ = [[2,3,4,5,6,8]]; - -/** - * @enum {number} - */ -proto.google.api.HttpRule.PatternCase = { - PATTERN_NOT_SET: 0, - GET: 2, - PUT: 3, - POST: 4, - DELETE: 5, - PATCH: 6, - CUSTOM: 8 -}; - -/** - * @return {proto.google.api.HttpRule.PatternCase} - */ -proto.google.api.HttpRule.prototype.getPatternCase = function() { - return /** @type {proto.google.api.HttpRule.PatternCase} */(jspb.Message.computeOneofCase(this, proto.google.api.HttpRule.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpRule.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpRule.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpRule} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.toObject = function(includeInstance, msg) { - var f, obj = { - selector: jspb.Message.getFieldWithDefault(msg, 1, ""), - get: jspb.Message.getFieldWithDefault(msg, 2, ""), - put: jspb.Message.getFieldWithDefault(msg, 3, ""), - post: jspb.Message.getFieldWithDefault(msg, 4, ""), - pb_delete: jspb.Message.getFieldWithDefault(msg, 5, ""), - patch: jspb.Message.getFieldWithDefault(msg, 6, ""), - custom: (f = msg.getCustom()) && proto.google.api.CustomHttpPattern.toObject(includeInstance, f), - body: jspb.Message.getFieldWithDefault(msg, 7, ""), - responseBody: jspb.Message.getFieldWithDefault(msg, 12, ""), - additionalBindingsList: jspb.Message.toObjectList(msg.getAdditionalBindingsList(), - proto.google.api.HttpRule.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpRule; - return proto.google.api.HttpRule.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpRule} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSelector(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setGet(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPut(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPost(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDelete(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPatch(value); - break; - case 8: - var value = new proto.google.api.CustomHttpPattern; - reader.readMessage(value,proto.google.api.CustomHttpPattern.deserializeBinaryFromReader); - msg.setCustom(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBody(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setResponseBody(value); - break; - case 11: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addAdditionalBindings(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpRule.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpRule.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpRule} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSelector(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeString( - 3, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeString( - 4, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 5)); - if (f != null) { - writer.writeString( - 5, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 6)); - if (f != null) { - writer.writeString( - 6, - f - ); - } - f = message.getCustom(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.google.api.CustomHttpPattern.serializeBinaryToWriter - ); - } - f = message.getBody(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getResponseBody(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getAdditionalBindingsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 11, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string selector = 1; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getSelector = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setSelector = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string get = 2; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getGet = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setGet = function(value) { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearGet = function() { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasGet = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string put = 3; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPut = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPut = function(value) { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPut = function() { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPut = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional string post = 4; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPost = function(value) { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPost = function() { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPost = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string delete = 5; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getDelete = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setDelete = function(value) { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearDelete = function() { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasDelete = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string patch = 6; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPatch = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPatch = function(value) { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPatch = function() { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPatch = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional CustomHttpPattern custom = 8; - * @return {?proto.google.api.CustomHttpPattern} - */ -proto.google.api.HttpRule.prototype.getCustom = function() { - return /** @type{?proto.google.api.CustomHttpPattern} */ ( - jspb.Message.getWrapperField(this, proto.google.api.CustomHttpPattern, 8)); -}; - - -/** - * @param {?proto.google.api.CustomHttpPattern|undefined} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setCustom = function(value) { - return jspb.Message.setOneofWrapperField(this, 8, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearCustom = function() { - return this.setCustom(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasCustom = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional string body = 7; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setBody = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string response_body = 12; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getResponseBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setResponseBody = function(value) { - return jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * repeated HttpRule additional_bindings = 11; - * @return {!Array} - */ -proto.google.api.HttpRule.prototype.getAdditionalBindingsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 11)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setAdditionalBindingsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 11, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.prototype.addAdditionalBindings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearAdditionalBindingsList = function() { - return this.setAdditionalBindingsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.CustomHttpPattern.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.CustomHttpPattern.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.CustomHttpPattern} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.toObject = function(includeInstance, msg) { - var f, obj = { - kind: jspb.Message.getFieldWithDefault(msg, 1, ""), - path: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.CustomHttpPattern; - return proto.google.api.CustomHttpPattern.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.CustomHttpPattern} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKind(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.CustomHttpPattern.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.CustomHttpPattern.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.CustomHttpPattern} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKind(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string kind = 1; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getKind = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setKind = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string path = 2; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/domains/src/service/protos/google/api/httpbody_grpc_pb.js b/mods/domains/src/service/protos/google/api/httpbody_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/domains/src/service/protos/google/api/httpbody_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/domains/src/service/protos/google/api/httpbody_pb.d.ts b/mods/domains/src/service/protos/google/api/httpbody_pb.d.ts deleted file mode 100644 index 98d973068..000000000 --- a/mods/domains/src/service/protos/google/api/httpbody_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// package: google.api -// file: google/api/httpbody.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb"; - -export class HttpBody extends jspb.Message { - getContentType(): string; - setContentType(value: string): HttpBody; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): HttpBody; - clearExtensionsList(): void; - getExtensionsList(): Array; - setExtensionsList(value: Array): HttpBody; - addExtensions(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpBody.AsObject; - static toObject(includeInstance: boolean, msg: HttpBody): HttpBody.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpBody, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpBody; - static deserializeBinaryFromReader(message: HttpBody, reader: jspb.BinaryReader): HttpBody; -} - -export namespace HttpBody { - export type AsObject = { - contentType: string, - data: Uint8Array | string, - extensionsList: Array, - } -} diff --git a/mods/domains/src/service/protos/google/api/httpbody_pb.js b/mods/domains/src/service/protos/google/api/httpbody_pb.js deleted file mode 100644 index 5539f5936..000000000 --- a/mods/domains/src/service/protos/google/api/httpbody_pb.js +++ /dev/null @@ -1,286 +0,0 @@ -// source: google/api/httpbody.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js'); -goog.object.extend(proto, google_protobuf_any_pb); -goog.exportSymbol('proto.google.api.HttpBody', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpBody = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpBody.repeatedFields_, null); -}; -goog.inherits(proto.google.api.HttpBody, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpBody.displayName = 'proto.google.api.HttpBody'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpBody.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpBody.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpBody.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpBody} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.toObject = function(includeInstance, msg) { - var f, obj = { - contentType: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64(), - extensionsList: jspb.Message.toObjectList(msg.getExtensionsList(), - google_protobuf_any_pb.Any.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpBody; - return proto.google.api.HttpBody.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpBody} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setContentType(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 3: - var value = new google_protobuf_any_pb.Any; - reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader); - msg.addExtensions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpBody.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpBody} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContentType(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getExtensionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - google_protobuf_any_pb.Any.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string content_type = 1; - * @return {string} - */ -proto.google.api.HttpBody.prototype.getContentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setContentType = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.google.api.HttpBody.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.google.api.HttpBody.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setData = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * repeated google.protobuf.Any extensions = 3; - * @return {!Array} - */ -proto.google.api.HttpBody.prototype.getExtensionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpBody} returns this -*/ -proto.google.api.HttpBody.prototype.setExtensionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.google.protobuf.Any=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.Any} - */ -proto.google.api.HttpBody.prototype.addExtensions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.clearExtensionsList = function() { - return this.setExtensionsList([]); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/domains/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js b/mods/domains/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/domains/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/domains/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts b/mods/domains/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts deleted file mode 100644 index 8e3a35012..000000000 --- a/mods/domains/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; -import * as protoc_gen_openapiv2_options_openapiv2_pb from "../../protoc-gen-openapiv2/options/openapiv2_pb"; - -export const openapiv2Swagger: jspb.ExtensionFieldInfo; - -export const openapiv2Operation: jspb.ExtensionFieldInfo; - -export const openapiv2Schema: jspb.ExtensionFieldInfo; - -export const openapiv2Tag: jspb.ExtensionFieldInfo; - -export const openapiv2Field: jspb.ExtensionFieldInfo; diff --git a/mods/domains/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js b/mods/domains/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js deleted file mode 100644 index e92ccec18..000000000 --- a/mods/domains/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js +++ /dev/null @@ -1,152 +0,0 @@ -// source: protoc-gen-openapiv2/options/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -var protoc$gen$openapiv2_options_openapiv2_pb = require('../../protoc-gen-openapiv2/options/openapiv2_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_openapiv2_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Swagger`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Swagger: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.toObject), - 0); - -google_protobuf_descriptor_pb.FileOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FileOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Operation`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Operation: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Operation, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Operation.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Schema`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Schema: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Schema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Schema.toObject), - 0); - -google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MessageOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Tag`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Tag: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Tag, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Tag.toObject), - 0); - -google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.ServiceOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Field`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Field: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.toObject), - 0); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/domains/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js b/mods/domains/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/domains/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/domains/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts b/mods/domains/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts deleted file mode 100644 index 3c3972ea9..000000000 --- a/mods/domains/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +++ /dev/null @@ -1,685 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/openapiv2.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class Swagger extends jspb.Message { - getSwagger(): string; - setSwagger(value: string): Swagger; - - hasInfo(): boolean; - clearInfo(): void; - getInfo(): Info | undefined; - setInfo(value?: Info): Swagger; - getHost(): string; - setHost(value: string): Swagger; - getBasePath(): string; - setBasePath(value: string): Swagger; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Swagger; - addSchemes(value: Scheme, index?: number): Scheme; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Swagger; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Swagger; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - - hasSecurityDefinitions(): boolean; - clearSecurityDefinitions(): void; - getSecurityDefinitions(): SecurityDefinitions | undefined; - setSecurityDefinitions(value?: SecurityDefinitions): Swagger; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Swagger; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Swagger; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Swagger.AsObject; - static toObject(includeInstance: boolean, msg: Swagger): Swagger.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Swagger, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Swagger; - static deserializeBinaryFromReader(message: Swagger, reader: jspb.BinaryReader): Swagger; -} - -export namespace Swagger { - export type AsObject = { - swagger: string, - info?: Info.AsObject, - host: string, - basePath: string, - schemesList: Array, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - securityDefinitions?: SecurityDefinitions.AsObject, - securityList: Array, - externalDocs?: ExternalDocumentation.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Operation extends jspb.Message { - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): Operation; - addTags(value: string, index?: number): string; - getSummary(): string; - setSummary(value: string): Operation; - getDescription(): string; - setDescription(value: string): Operation; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Operation; - getOperationId(): string; - setOperationId(value: string): Operation; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Operation; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Operation; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Operation; - addSchemes(value: Scheme, index?: number): Scheme; - getDeprecated(): boolean; - setDeprecated(value: boolean): Operation; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Operation; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Operation.AsObject; - static toObject(includeInstance: boolean, msg: Operation): Operation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Operation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Operation; - static deserializeBinaryFromReader(message: Operation, reader: jspb.BinaryReader): Operation; -} - -export namespace Operation { - export type AsObject = { - tagsList: Array, - summary: string, - description: string, - externalDocs?: ExternalDocumentation.AsObject, - operationId: string, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - schemesList: Array, - deprecated: boolean, - securityList: Array, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Header extends jspb.Message { - getDescription(): string; - setDescription(value: string): Header; - getType(): string; - setType(value: string): Header; - getFormat(): string; - setFormat(value: string): Header; - getDefault(): string; - setDefault(value: string): Header; - getPattern(): string; - setPattern(value: string): Header; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Header.AsObject; - static toObject(includeInstance: boolean, msg: Header): Header.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Header, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Header; - static deserializeBinaryFromReader(message: Header, reader: jspb.BinaryReader): Header; -} - -export namespace Header { - export type AsObject = { - description: string, - type: string, - format: string, - pb_default: string, - pattern: string, - } -} - -export class Response extends jspb.Message { - getDescription(): string; - setDescription(value: string): Response; - - hasSchema(): boolean; - clearSchema(): void; - getSchema(): Schema | undefined; - setSchema(value?: Schema): Response; - - getHeadersMap(): jspb.Map; - clearHeadersMap(): void; - - getExamplesMap(): jspb.Map; - clearExamplesMap(): void; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Response.AsObject; - static toObject(includeInstance: boolean, msg: Response): Response.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Response, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Response; - static deserializeBinaryFromReader(message: Response, reader: jspb.BinaryReader): Response; -} - -export namespace Response { - export type AsObject = { - description: string, - schema?: Schema.AsObject, - - headersMap: Array<[string, Header.AsObject]>, - - examplesMap: Array<[string, string]>, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Info extends jspb.Message { - getTitle(): string; - setTitle(value: string): Info; - getDescription(): string; - setDescription(value: string): Info; - getTermsOfService(): string; - setTermsOfService(value: string): Info; - - hasContact(): boolean; - clearContact(): void; - getContact(): Contact | undefined; - setContact(value?: Contact): Info; - - hasLicense(): boolean; - clearLicense(): void; - getLicense(): License | undefined; - setLicense(value?: License): Info; - getVersion(): string; - setVersion(value: string): Info; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Info.AsObject; - static toObject(includeInstance: boolean, msg: Info): Info.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Info, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Info; - static deserializeBinaryFromReader(message: Info, reader: jspb.BinaryReader): Info; -} - -export namespace Info { - export type AsObject = { - title: string, - description: string, - termsOfService: string, - contact?: Contact.AsObject, - license?: License.AsObject, - version: string, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Contact extends jspb.Message { - getName(): string; - setName(value: string): Contact; - getUrl(): string; - setUrl(value: string): Contact; - getEmail(): string; - setEmail(value: string): Contact; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contact.AsObject; - static toObject(includeInstance: boolean, msg: Contact): Contact.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contact, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contact; - static deserializeBinaryFromReader(message: Contact, reader: jspb.BinaryReader): Contact; -} - -export namespace Contact { - export type AsObject = { - name: string, - url: string, - email: string, - } -} - -export class License extends jspb.Message { - getName(): string; - setName(value: string): License; - getUrl(): string; - setUrl(value: string): License; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): License.AsObject; - static toObject(includeInstance: boolean, msg: License): License.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: License, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): License; - static deserializeBinaryFromReader(message: License, reader: jspb.BinaryReader): License; -} - -export namespace License { - export type AsObject = { - name: string, - url: string, - } -} - -export class ExternalDocumentation extends jspb.Message { - getDescription(): string; - setDescription(value: string): ExternalDocumentation; - getUrl(): string; - setUrl(value: string): ExternalDocumentation; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ExternalDocumentation.AsObject; - static toObject(includeInstance: boolean, msg: ExternalDocumentation): ExternalDocumentation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ExternalDocumentation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ExternalDocumentation; - static deserializeBinaryFromReader(message: ExternalDocumentation, reader: jspb.BinaryReader): ExternalDocumentation; -} - -export namespace ExternalDocumentation { - export type AsObject = { - description: string, - url: string, - } -} - -export class Schema extends jspb.Message { - - hasJsonSchema(): boolean; - clearJsonSchema(): void; - getJsonSchema(): JSONSchema | undefined; - setJsonSchema(value?: JSONSchema): Schema; - getDiscriminator(): string; - setDiscriminator(value: string): Schema; - getReadOnly(): boolean; - setReadOnly(value: boolean): Schema; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Schema; - getExample(): string; - setExample(value: string): Schema; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Schema.AsObject; - static toObject(includeInstance: boolean, msg: Schema): Schema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Schema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Schema; - static deserializeBinaryFromReader(message: Schema, reader: jspb.BinaryReader): Schema; -} - -export namespace Schema { - export type AsObject = { - jsonSchema?: JSONSchema.AsObject, - discriminator: string, - readOnly: boolean, - externalDocs?: ExternalDocumentation.AsObject, - example: string, - } -} - -export class JSONSchema extends jspb.Message { - getRef(): string; - setRef(value: string): JSONSchema; - getTitle(): string; - setTitle(value: string): JSONSchema; - getDescription(): string; - setDescription(value: string): JSONSchema; - getDefault(): string; - setDefault(value: string): JSONSchema; - getReadOnly(): boolean; - setReadOnly(value: boolean): JSONSchema; - getExample(): string; - setExample(value: string): JSONSchema; - getMultipleOf(): number; - setMultipleOf(value: number): JSONSchema; - getMaximum(): number; - setMaximum(value: number): JSONSchema; - getExclusiveMaximum(): boolean; - setExclusiveMaximum(value: boolean): JSONSchema; - getMinimum(): number; - setMinimum(value: number): JSONSchema; - getExclusiveMinimum(): boolean; - setExclusiveMinimum(value: boolean): JSONSchema; - getMaxLength(): number; - setMaxLength(value: number): JSONSchema; - getMinLength(): number; - setMinLength(value: number): JSONSchema; - getPattern(): string; - setPattern(value: string): JSONSchema; - getMaxItems(): number; - setMaxItems(value: number): JSONSchema; - getMinItems(): number; - setMinItems(value: number): JSONSchema; - getUniqueItems(): boolean; - setUniqueItems(value: boolean): JSONSchema; - getMaxProperties(): number; - setMaxProperties(value: number): JSONSchema; - getMinProperties(): number; - setMinProperties(value: number): JSONSchema; - clearRequiredList(): void; - getRequiredList(): Array; - setRequiredList(value: Array): JSONSchema; - addRequired(value: string, index?: number): string; - clearArrayList(): void; - getArrayList(): Array; - setArrayList(value: Array): JSONSchema; - addArray(value: string, index?: number): string; - clearTypeList(): void; - getTypeList(): Array; - setTypeList(value: Array): JSONSchema; - addType(value: JSONSchema.JSONSchemaSimpleTypes, index?: number): JSONSchema.JSONSchemaSimpleTypes; - getFormat(): string; - setFormat(value: string): JSONSchema; - clearEnumList(): void; - getEnumList(): Array; - setEnumList(value: Array): JSONSchema; - addEnum(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): JSONSchema.AsObject; - static toObject(includeInstance: boolean, msg: JSONSchema): JSONSchema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: JSONSchema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): JSONSchema; - static deserializeBinaryFromReader(message: JSONSchema, reader: jspb.BinaryReader): JSONSchema; -} - -export namespace JSONSchema { - export type AsObject = { - ref: string, - title: string, - description: string, - pb_default: string, - readOnly: boolean, - example: string, - multipleOf: number, - maximum: number, - exclusiveMaximum: boolean, - minimum: number, - exclusiveMinimum: boolean, - maxLength: number, - minLength: number, - pattern: string, - maxItems: number, - minItems: number, - uniqueItems: boolean, - maxProperties: number, - minProperties: number, - requiredList: Array, - arrayList: Array, - typeList: Array, - format: string, - pb_enumList: Array, - } - - export enum JSONSchemaSimpleTypes { - UNKNOWN = 0, - ARRAY = 1, - BOOLEAN = 2, - INTEGER = 3, - NULL = 4, - NUMBER = 5, - OBJECT = 6, - STRING = 7, - } - -} - -export class Tag extends jspb.Message { - getDescription(): string; - setDescription(value: string): Tag; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Tag; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Tag.AsObject; - static toObject(includeInstance: boolean, msg: Tag): Tag.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Tag, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Tag; - static deserializeBinaryFromReader(message: Tag, reader: jspb.BinaryReader): Tag; -} - -export namespace Tag { - export type AsObject = { - description: string, - externalDocs?: ExternalDocumentation.AsObject, - } -} - -export class SecurityDefinitions extends jspb.Message { - - getSecurityMap(): jspb.Map; - clearSecurityMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityDefinitions.AsObject; - static toObject(includeInstance: boolean, msg: SecurityDefinitions): SecurityDefinitions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityDefinitions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityDefinitions; - static deserializeBinaryFromReader(message: SecurityDefinitions, reader: jspb.BinaryReader): SecurityDefinitions; -} - -export namespace SecurityDefinitions { - export type AsObject = { - - securityMap: Array<[string, SecurityScheme.AsObject]>, - } -} - -export class SecurityScheme extends jspb.Message { - getType(): SecurityScheme.Type; - setType(value: SecurityScheme.Type): SecurityScheme; - getDescription(): string; - setDescription(value: string): SecurityScheme; - getName(): string; - setName(value: string): SecurityScheme; - getIn(): SecurityScheme.In; - setIn(value: SecurityScheme.In): SecurityScheme; - getFlow(): SecurityScheme.Flow; - setFlow(value: SecurityScheme.Flow): SecurityScheme; - getAuthorizationUrl(): string; - setAuthorizationUrl(value: string): SecurityScheme; - getTokenUrl(): string; - setTokenUrl(value: string): SecurityScheme; - - hasScopes(): boolean; - clearScopes(): void; - getScopes(): Scopes | undefined; - setScopes(value?: Scopes): SecurityScheme; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityScheme.AsObject; - static toObject(includeInstance: boolean, msg: SecurityScheme): SecurityScheme.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityScheme, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityScheme; - static deserializeBinaryFromReader(message: SecurityScheme, reader: jspb.BinaryReader): SecurityScheme; -} - -export namespace SecurityScheme { - export type AsObject = { - type: SecurityScheme.Type, - description: string, - name: string, - pb_in: SecurityScheme.In, - flow: SecurityScheme.Flow, - authorizationUrl: string, - tokenUrl: string, - scopes?: Scopes.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } - - export enum Type { - TYPE_INVALID = 0, - TYPE_BASIC = 1, - TYPE_API_KEY = 2, - TYPE_OAUTH2 = 3, - } - - export enum In { - IN_INVALID = 0, - IN_QUERY = 1, - IN_HEADER = 2, - } - - export enum Flow { - FLOW_INVALID = 0, - FLOW_IMPLICIT = 1, - FLOW_PASSWORD = 2, - FLOW_APPLICATION = 3, - FLOW_ACCESS_CODE = 4, - } - -} - -export class SecurityRequirement extends jspb.Message { - - getSecurityRequirementMap(): jspb.Map; - clearSecurityRequirementMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirement.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirement): SecurityRequirement.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirement, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirement; - static deserializeBinaryFromReader(message: SecurityRequirement, reader: jspb.BinaryReader): SecurityRequirement; -} - -export namespace SecurityRequirement { - export type AsObject = { - - securityRequirementMap: Array<[string, SecurityRequirement.SecurityRequirementValue.AsObject]>, - } - - - export class SecurityRequirementValue extends jspb.Message { - clearScopeList(): void; - getScopeList(): Array; - setScopeList(value: Array): SecurityRequirementValue; - addScope(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirementValue.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirementValue): SecurityRequirementValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirementValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirementValue; - static deserializeBinaryFromReader(message: SecurityRequirementValue, reader: jspb.BinaryReader): SecurityRequirementValue; - } - - export namespace SecurityRequirementValue { - export type AsObject = { - scopeList: Array, - } - } - -} - -export class Scopes extends jspb.Message { - - getScopeMap(): jspb.Map; - clearScopeMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Scopes.AsObject; - static toObject(includeInstance: boolean, msg: Scopes): Scopes.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Scopes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Scopes; - static deserializeBinaryFromReader(message: Scopes, reader: jspb.BinaryReader): Scopes; -} - -export namespace Scopes { - export type AsObject = { - - scopeMap: Array<[string, string]>, - } -} - -export enum Scheme { - UNKNOWN = 0, - HTTP = 1, - HTTPS = 2, - WS = 3, - WSS = 4, -} diff --git a/mods/domains/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js b/mods/domains/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js deleted file mode 100644 index be8a6bfd2..000000000 --- a/mods/domains/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js +++ /dev/null @@ -1,5367 +0,0 @@ -// source: protoc-gen-openapiv2/options/openapiv2.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Contact', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Header', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Info', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.License', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Response', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Tag', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Operation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Operation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Header, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Header'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Response, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Response'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Info, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Info'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Contact'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.License, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.License.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.License'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Schema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Tag, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Tag'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_ = [5,6,7,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject = function(includeInstance, msg) { - var f, obj = { - swagger: jspb.Message.getFieldWithDefault(msg, 1, ""), - info: (f = msg.getInfo()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(includeInstance, f), - host: jspb.Message.getFieldWithDefault(msg, 3, ""), - basePath: jspb.Message.getFieldWithDefault(msg, 4, ""), - schemesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - securityDefinitions: (f = msg.getSecurityDefinitions()) && proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(includeInstance, f), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSwagger(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader); - msg.setInfo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setBasePath(value); - break; - case 5: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 10: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 11: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader); - msg.setSecurityDefinitions(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 14: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 15: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSwagger(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInfo(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBasePath(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSecurityDefinitions(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 14, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string swagger = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSwagger = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSwagger = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Info info = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getInfo = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Info, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearInfo = function() { - return this.setInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasInfo = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string host = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string base_path = 4; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getBasePath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setBasePath = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated Scheme schemes = 5; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 10; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 10, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * optional SecurityDefinitions security_definitions = 11; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityDefinitions = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, 11)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityDefinitions = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityDefinitions = function() { - return this.setSecurityDefinitions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasSecurityDefinitions = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * optional ExternalDocumentation external_docs = 14; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 14)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 14, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 14) != null; -}; - - -/** - * map extensions = 15; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 15, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_ = [1,6,7,10,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject = function(includeInstance, msg) { - var f, obj = { - tagsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - summary: jspb.Message.getFieldWithDefault(msg, 2, ""), - description: jspb.Message.getFieldWithDefault(msg, 3, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - operationId: jspb.Message.getFieldWithDefault(msg, 5, ""), - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - schemesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f, - deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 11, false), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Operation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSummary(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setOperationId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 9: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 10: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDeprecated(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 13: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getSummary(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getOperationId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 10, - f - ); - } - f = message.getDeprecated(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * repeated string tags = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getTagsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setTagsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addTags = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearTagsList = function() { - return this.setTagsList([]); -}; - - -/** - * optional string summary = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSummary = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSummary = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string description = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string operation_id = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getOperationId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setOperationId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * repeated Scheme schemes = 10; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 10, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 10, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * optional bool deprecated = 11; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDeprecated = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDeprecated = function(value) { - return jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * map extensions = 13; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 13, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, ""), - format: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 6, ""), - pattern: jspb.Message.getFieldWithDefault(msg, 13, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Header; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string type = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string format = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string default = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string pattern = 13; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 13, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - schema: (f = msg.getSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(includeInstance, f), - headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject) : [], - examplesMap: (f = msg.getExamplesMap()) ? f.toObject(includeInstance, undefined) : [], - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Response; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader); - msg.setSchema(value); - break; - case 3: - var value = msg.getHeadersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Header()); - }); - break; - case 4: - var value = msg.getExamplesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - case 5: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchema(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter - ); - } - f = message.getHeadersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter); - } - f = message.getExamplesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Schema schema = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setSchema = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearSchema = function() { - return this.setSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.hasSchema = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * map headers = 3; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getHeadersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 3, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Header)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearHeadersMap = function() { - this.getHeadersMap().clear(); - return this;}; - - -/** - * map examples = 4; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExamplesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 4, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExamplesMap = function() { - this.getExamplesMap().clear(); - return this;}; - - -/** - * map extensions = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject = function(includeInstance, msg) { - var f, obj = { - title: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - termsOfService: jspb.Message.getFieldWithDefault(msg, 3, ""), - contact: (f = msg.getContact()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(includeInstance, f), - license: (f = msg.getLicense()) && proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(includeInstance, f), - version: jspb.Message.getFieldWithDefault(msg, 6, ""), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTermsOfService(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader); - msg.setContact(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader); - msg.setLicense(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 7: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTermsOfService(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getContact(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter - ); - } - f = message.getLicense(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string title = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string terms_of_service = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTermsOfService = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTermsOfService = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional Contact contact = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getContact = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setContact = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearContact = function() { - return this.setContact(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasContact = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional License license = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getLicense = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.License} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.License, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.License|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setLicense = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearLicense = function() { - return this.setLicense(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasLicense = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string version = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setVersion = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * map extensions = 7; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 7, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject = function(includeInstance, msg) { - var f, obj = { - jsonSchema: (f = msg.getJsonSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(includeInstance, f), - discriminator: jspb.Message.getFieldWithDefault(msg, 2, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - example: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader); - msg.setJsonSchema(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDiscriminator(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsonSchema(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter - ); - } - f = message.getDiscriminator(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional JSONSchema json_schema = 1; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getJsonSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, 1)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setJsonSchema = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearJsonSchema = function() { - return this.setJsonSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasJsonSchema = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string discriminator = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getDiscriminator = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setDiscriminator = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool read_only = 3; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string example = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_ = [26,34,35,46]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 3, ""), - title: jspb.Message.getFieldWithDefault(msg, 5, ""), - description: jspb.Message.getFieldWithDefault(msg, 6, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 7, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - example: jspb.Message.getFieldWithDefault(msg, 9, ""), - multipleOf: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0), - maximum: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0), - exclusiveMaximum: jspb.Message.getBooleanFieldWithDefault(msg, 12, false), - minimum: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), - exclusiveMinimum: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - maxLength: jspb.Message.getFieldWithDefault(msg, 15, 0), - minLength: jspb.Message.getFieldWithDefault(msg, 16, 0), - pattern: jspb.Message.getFieldWithDefault(msg, 17, ""), - maxItems: jspb.Message.getFieldWithDefault(msg, 20, 0), - minItems: jspb.Message.getFieldWithDefault(msg, 21, 0), - uniqueItems: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), - maxProperties: jspb.Message.getFieldWithDefault(msg, 24, 0), - minProperties: jspb.Message.getFieldWithDefault(msg, 25, 0), - requiredList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, - arrayList: (f = jspb.Message.getRepeatedField(msg, 34)) == null ? undefined : f, - typeList: (f = jspb.Message.getRepeatedField(msg, 35)) == null ? undefined : f, - format: jspb.Message.getFieldWithDefault(msg, 36, ""), - enumList: (f = jspb.Message.getRepeatedField(msg, 46)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - case 10: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMultipleOf(value); - break; - case 11: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMaximum(value); - break; - case 12: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMaximum(value); - break; - case 13: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMinimum(value); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMinimum(value); - break; - case 15: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxLength(value); - break; - case 16: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinLength(value); - break; - case 17: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - case 20: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxItems(value); - break; - case 21: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinItems(value); - break; - case 22: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUniqueItems(value); - break; - case 24: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxProperties(value); - break; - case 25: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinProperties(value); - break; - case 26: - var value = /** @type {string} */ (reader.readString()); - msg.addRequired(value); - break; - case 34: - var value = /** @type {string} */ (reader.readString()); - msg.addArray(value); - break; - case 35: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addType(values[i]); - } - break; - case 36: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 46: - var value = /** @type {string} */ (reader.readString()); - msg.addEnum(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getMultipleOf(); - if (f !== 0.0) { - writer.writeDouble( - 10, - f - ); - } - f = message.getMaximum(); - if (f !== 0.0) { - writer.writeDouble( - 11, - f - ); - } - f = message.getExclusiveMaximum(); - if (f) { - writer.writeBool( - 12, - f - ); - } - f = message.getMinimum(); - if (f !== 0.0) { - writer.writeDouble( - 13, - f - ); - } - f = message.getExclusiveMinimum(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getMaxLength(); - if (f !== 0) { - writer.writeUint64( - 15, - f - ); - } - f = message.getMinLength(); - if (f !== 0) { - writer.writeUint64( - 16, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 17, - f - ); - } - f = message.getMaxItems(); - if (f !== 0) { - writer.writeUint64( - 20, - f - ); - } - f = message.getMinItems(); - if (f !== 0) { - writer.writeUint64( - 21, - f - ); - } - f = message.getUniqueItems(); - if (f) { - writer.writeBool( - 22, - f - ); - } - f = message.getMaxProperties(); - if (f !== 0) { - writer.writeUint64( - 24, - f - ); - } - f = message.getMinProperties(); - if (f !== 0) { - writer.writeUint64( - 25, - f - ); - } - f = message.getRequiredList(); - if (f.length > 0) { - writer.writeRepeatedString( - 26, - f - ); - } - f = message.getArrayList(); - if (f.length > 0) { - writer.writeRepeatedString( - 34, - f - ); - } - f = message.getTypeList(); - if (f.length > 0) { - writer.writePackedEnum( - 35, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 36, - f - ); - } - f = message.getEnumList(); - if (f.length > 0) { - writer.writeRepeatedString( - 46, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes = { - UNKNOWN: 0, - ARRAY: 1, - BOOLEAN: 2, - INTEGER: 3, - NULL: 4, - NUMBER: 5, - OBJECT: 6, - STRING: 7 -}; - -/** - * optional string ref = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string title = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string description = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string default = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional bool read_only = 8; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - -/** - * optional string example = 9; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional double multiple_of = 10; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMultipleOf = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMultipleOf = function(value) { - return jspb.Message.setProto3FloatField(this, 10, value); -}; - - -/** - * optional double maximum = 11; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaximum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaximum = function(value) { - return jspb.Message.setProto3FloatField(this, 11, value); -}; - - -/** - * optional bool exclusive_maximum = 12; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMaximum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMaximum = function(value) { - return jspb.Message.setProto3BooleanField(this, 12, value); -}; - - -/** - * optional double minimum = 13; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinimum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinimum = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); -}; - - -/** - * optional bool exclusive_minimum = 14; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMinimum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMinimum = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * optional uint64 max_length = 15; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxLength = function(value) { - return jspb.Message.setProto3IntField(this, 15, value); -}; - - -/** - * optional uint64 min_length = 16; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinLength = function(value) { - return jspb.Message.setProto3IntField(this, 16, value); -}; - - -/** - * optional string pattern = 17; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 17, value); -}; - - -/** - * optional uint64 max_items = 20; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxItems = function(value) { - return jspb.Message.setProto3IntField(this, 20, value); -}; - - -/** - * optional uint64 min_items = 21; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinItems = function(value) { - return jspb.Message.setProto3IntField(this, 21, value); -}; - - -/** - * optional bool unique_items = 22; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getUniqueItems = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setUniqueItems = function(value) { - return jspb.Message.setProto3BooleanField(this, 22, value); -}; - - -/** - * optional uint64 max_properties = 24; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxProperties = function(value) { - return jspb.Message.setProto3IntField(this, 24, value); -}; - - -/** - * optional uint64 min_properties = 25; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinProperties = function(value) { - return jspb.Message.setProto3IntField(this, 25, value); -}; - - -/** - * repeated string required = 26; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRequiredList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 26)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRequiredList = function(value) { - return jspb.Message.setField(this, 26, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addRequired = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 26, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearRequiredList = function() { - return this.setRequiredList([]); -}; - - -/** - * repeated string array = 34; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getArrayList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 34)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setArrayList = function(value) { - return jspb.Message.setField(this, 34, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addArray = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 34, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearArrayList = function() { - return this.setArrayList([]); -}; - - -/** - * repeated JSONSchemaSimpleTypes type = 35; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTypeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 35)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTypeList = function(value) { - return jspb.Message.setField(this, 35, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addType = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 35, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearTypeList = function() { - return this.setTypeList([]); -}; - - -/** - * optional string format = 36; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 36, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 36, value); -}; - - -/** - * repeated string enum = 46; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getEnumList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 46)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setEnumList = function(value) { - return jspb.Message.setField(this, 46, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addEnum = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 46, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearEnumList = function() { - return this.setEnumList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Tag; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 3; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 3)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject = function(includeInstance, msg) { - var f, obj = { - securityMap: (f = msg.getSecurityMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter); - } -}; - - -/** - * map security = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.getSecurityMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.clearSecurityMap = function() { - this.getSecurityMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject = function(includeInstance, msg) { - var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_in: jspb.Message.getFieldWithDefault(msg, 4, 0), - flow: jspb.Message.getFieldWithDefault(msg, 5, 0), - authorizationUrl: jspb.Message.getFieldWithDefault(msg, 6, ""), - tokenUrl: jspb.Message.getFieldWithDefault(msg, 7, ""), - scopes: (f = msg.getScopes()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (reader.readEnum()); - msg.setIn(value); - break; - case 5: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (reader.readEnum()); - msg.setFlow(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthorizationUrl(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setTokenUrl(value); - break; - case 8: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader); - msg.setScopes(value); - break; - case 9: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIn(); - if (f !== 0.0) { - writer.writeEnum( - 4, - f - ); - } - f = message.getFlow(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } - f = message.getAuthorizationUrl(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getTokenUrl(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getScopes(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type = { - TYPE_INVALID: 0, - TYPE_BASIC: 1, - TYPE_API_KEY: 2, - TYPE_OAUTH2: 3 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In = { - IN_INVALID: 0, - IN_QUERY: 1, - IN_HEADER: 2 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow = { - FLOW_INVALID: 0, - FLOW_IMPLICIT: 1, - FLOW_PASSWORD: 2, - FLOW_APPLICATION: 3, - FLOW_ACCESS_CODE: 4 -}; - -/** - * optional Type type = 1; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getType = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional In in = 4; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getIn = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setIn = function(value) { - return jspb.Message.setProto3EnumField(this, 4, value); -}; - - -/** - * optional Flow flow = 5; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getFlow = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setFlow = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); -}; - - -/** - * optional string authorization_url = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getAuthorizationUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setAuthorizationUrl = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string token_url = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getTokenUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setTokenUrl = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional Scopes scopes = 8; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getScopes = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, 8)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setScopes = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearScopes = function() { - return this.setScopes(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.hasScopes = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * map extensions = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject = function(includeInstance, msg) { - var f, obj = { - securityRequirementMap: (f = msg.getSecurityRequirementMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityRequirementMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityRequirementMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject = function(includeInstance, msg) { - var f, obj = { - scopeList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addScope(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } -}; - - -/** - * repeated string scope = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.getScopeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.setScopeList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.addScope = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.clearScopeList = function() { - return this.setScopeList([]); -}; - - -/** - * map security_requirement = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.getSecurityRequirementMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.clearSecurityRequirementMap = function() { - this.getSecurityRequirementMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject = function(includeInstance, msg) { - var f, obj = { - scopeMap: (f = msg.getScopeMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getScopeMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map scope = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.getScopeMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.clearScopeMap = function() { - this.getScopeMap().clear(); - return this;}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme = { - UNKNOWN: 0, - HTTP: 1, - HTTPS: 2, - WS: 3, - WSS: 4 -}; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/domains/src/service/runner.ts b/mods/domains/src/service/runner.ts deleted file mode 100644 index aa57e0932..000000000 --- a/mods/domains/src/service/runner.ts +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Tracer as T } from "@fonoster/common"; -T.init("domains-service"); - -import DomainsServer from "./domains"; -import { DomainsService } from "./protos/domains_grpc_pb"; -import { AuthMiddleware, limiterMiddleware } from "@fonoster/auth"; -import { getSalt } from "@fonoster/certs"; -import { runServices } from "@fonoster/common"; - -const services = [ - { - name: "domains", - version: "v1beta1", - service: DomainsService, - server: new DomainsServer() - } -]; - -const middlewares = [ - { - name: "authenticator", - middlewareObj: new AuthMiddleware(getSalt()).middleware - }, - { - name: "limiter", - middlewareObj: limiterMiddleware - } -]; - -runServices(services, middlewares); diff --git a/mods/domains/test/domains.unit.test.ts b/mods/domains/test/domains.unit.test.ts deleted file mode 100644 index 6936e0bf9..000000000 --- a/mods/domains/test/domains.unit.test.ts +++ /dev/null @@ -1,286 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import Domains from "../src/client/domains"; -import chaiAsPromised from "chai-as-promised"; -import { APIClient } from "@fonoster/common"; -import DomainsPB from "../src/service/protos/domains_pb"; -import domainDecoder from "../src/service/decoder"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/domains", () => { - const domainObj = new DomainsPB.Domain(); - domainObj.setRef("Nx05y-ldZa"); - domainObj.setName("Acme Corp"); - domainObj.setDomainUri("sip.acme.com"); - domainObj.setEgressRule(".*"); - domainObj.setEgressNumberRef("cb8V0CNTfH"); - domainObj.setAccessDenyList(["10.0.0.1"]); - domainObj.setAccessAllowList(["10.0.0.2"]); - domainObj.setUpdateTime("..."); - domainObj.setCreateTime("..."); - - afterEach(() => sandbox.restore()); - - it("should create a domain", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - createDomain: () => { - return { - sendMessage: () => Promise.resolve(domainObj) - }; - } - }); - - const req = { - name: domainObj.getName(), - domainUri: domainObj.getDomainUri(), - egressRule: domainObj.getEgressRule(), - egressNumberRef: domainObj.getEgressNumberRef() - }; - - const domainsAPI = new Domains(); - const result = await domainsAPI.createDomain(req); - - expect(result).to.have.property("ref").to.be.equal(domainObj.getRef()); - expect(result).to.have.property("name").to.be.equal(domainObj.getName()); - expect(result) - .to.have.property("domainUri") - .to.be.equal(domainObj.getDomainUri()); - expect(result) - .to.have.property("egressRule") - .to.be.equal(domainObj.getEgressRule()); - expect(result) - .to.have.property("egressNumberRef") - .to.be.equal(domainObj.getEgressNumberRef()); - expect(result).to.have.property("accessDeny").to.be.lengthOf(1); - expect(result).to.have.property("accessAllow").to.be.lengthOf(1); - expect(result).to.have.property("createTime").not.to.be.null; - expect(result).to.have.property("updateTime").not.to.be.null; - - expect(serviceStub).to.have.been.calledTwice; - }); - - it("should get a domain", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - getDomain: () => { - return { - sendMessage: () => Promise.resolve(domainObj) - }; - } - }); - - const request = "Nx05y-ldZa"; - - const domainsAPI = new Domains(); - const result = await domainsAPI.getDomain(request); - - expect(result).to.have.property("ref").to.be.equal(domainObj.getRef()); - expect(result).to.have.property("name").to.be.equal(domainObj.getName()); - expect(result) - .to.have.property("domainUri") - .to.be.equal(domainObj.getDomainUri()); - expect(result) - .to.have.property("egressRule") - .to.be.equal(domainObj.getEgressRule()); - expect(result) - .to.have.property("egressNumberRef") - .to.be.equal(domainObj.getEgressNumberRef()); - expect(result).to.have.property("accessDeny").to.be.lengthOf(1); - expect(result).to.have.property("accessAllow").to.be.lengthOf(1); - expect(result).to.have.property("createTime").not.to.be.null; - expect(result).to.have.property("updateTime").not.to.be.null; - expect(serviceStub).to.have.been.calledTwice; - }); - - it("should delete a Domain", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - deleteDomain: () => { - return { - sendMessage: () => Promise.resolve({ ref: "Nx05y-ldZa" }) - }; - } - }); - - const domainsAPI = new Domains(); - const res = await domainsAPI.deleteDomain(domainObj.getRef()); - - expect(serviceStub).to.have.been.calledTwice; - expect(res).to.have.property("ref").to.be.equal(domainObj.getRef()); - }); - - it("should list domains", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - listDomains: () => { - return { - sendMessage: () => - Promise.resolve({ - getNextPageToken: () => "1", - getDomainsList: () => [domainObj] - }) - }; - } - }); - - const request = { - pageSize: 0, - pageToken: "1", - view: 0 - }; - - const domainsAPI = new Domains(); - const result = await domainsAPI.listDomains(request); - - expect(serviceStub).to.be.calledTwice; - expect(result.domains[0]) - .to.have.property("ref") - .to.be.equal(domainObj.getRef()); - expect(result.domains[0]) - .to.have.property("name") - .to.be.equal(domainObj.getName()); - expect(result.domains[0]) - .to.have.property("domainUri") - .to.be.equal(domainObj.getDomainUri()); - expect(result.domains[0]) - .to.have.property("egressRule") - .to.be.equal(domainObj.getEgressRule()); - expect(result.domains[0]) - .to.have.property("egressNumberRef") - .to.be.equal(domainObj.getEgressNumberRef()); - expect(result.domains[0]).to.have.property("accessDeny").to.be.lengthOf(1); - expect(result.domains[0]).to.have.property("accessAllow").to.be.lengthOf(1); - }); - - it("should update a domain (name)", async () => { - const request = { - ref: domainObj.getRef(), - name: domainObj.getName() - }; - - sandbox.stub(APIClient.prototype, "init").returns(); - const updateDomainStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - updateDomain: () => { - return { - sendMessage: () => - Promise.resolve({ getRef: () => domainObj.getRef() }) - }; - }, - getDomain: () => { - return { - sendMessage: () => Promise.resolve(domainObj) - }; - } - }); - - const domainsAPI = new Domains(); - const result = await domainsAPI.updateDomain(request); - expect(result).to.have.property("ref").to.be.equal(domainObj.getRef()); - expect(updateDomainStub).to.be.calledTwice; - }); - - context("domain decoder", () => { - let jsonObj; - - beforeEach(() => { - jsonObj = { - metadata: { - ref: "001", - name: "Peter", - createdOn: "DATE", - modifiedOn: "DATE" - }, - spec: { - context: { - domainUri: "sip.local", - egressPolicy: { - rule: ".*", - numberRef: "001" - }, - accessControlList: { - allow: ["192.168.1.1", "10.0.0.1"], - deny: ["0.0.0.0/31"] - } - } - } - }; - }); - - it("should create a domain object from a json object w/ no acl", () => { - delete jsonObj.spec.context.accessControlList; - const domains = domainDecoder(jsonObj); - expect(domains.getRef()).to.be.equal(jsonObj.metadata.ref); - expect(domains.getName()).to.be.equal(jsonObj.metadata.name); - expect(domains.getCreateTime()).to.be.equal(jsonObj.metadata.createdOn); - expect(domains.getEgressRule()).to.be.equal( - jsonObj.spec.context.egressPolicy.rule - ); - expect(domains.getEgressNumberRef()).to.be.equal( - jsonObj.spec.context.egressPolicy.numberRef - ); - expect(domains.getAccessDenyList()).to.be.a("array").lengthOf(0); - expect(domains.getAccessAllowList()).to.be.a("array").lengthOf(0); - }); - - it("should create a domain object from a json object w/ no egress policy", () => { - delete jsonObj.spec.context.egressPolicy; - const domains = domainDecoder(jsonObj); - expect(domains.getRef()).to.be.equal(jsonObj.metadata.ref); - expect(domains.getName()).to.be.equal(jsonObj.metadata.name); - expect(domains.getCreateTime()).to.be.equal(jsonObj.metadata.createdOn); - expect(domains.getEgressRule()).to.be.a("string").lengthOf(0); - expect(domains.getEgressNumberRef()).to.be.a("string").lengthOf(0); - expect(domains.getAccessDenyList()).to.be.a("array").lengthOf(1); - expect(domains.getAccessAllowList()).to.be.a("array").lengthOf(2); - }); - - it("should create a domain object from a json object", () => { - const domains = domainDecoder(jsonObj); - expect(domains.getRef()).to.be.equal(jsonObj.metadata.ref); - expect(domains.getName()).to.be.equal(jsonObj.metadata.name); - expect(domains.getCreateTime()).to.be.equal(jsonObj.metadata.createdOn); - expect(domains.getEgressRule()).to.be.equal( - jsonObj.spec.context.egressPolicy.rule - ); - expect(domains.getEgressNumberRef()).to.be.equal( - jsonObj.spec.context.egressPolicy.numberRef - ); - expect(domains.getAccessDenyList()).to.be.a("array").lengthOf(1); - expect(domains.getAccessAllowList()).to.be.a("array").lengthOf(2); - }); - }); -}); diff --git a/mods/domains/tsconfig.json b/mods/domains/tsconfig.json deleted file mode 100644 index 0fddb065f..000000000 --- a/mods/domains/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../common" }, - { "path": "../core" }, - { "path": "../logger" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/errors/.npmignore b/mods/errors/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/errors/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/errors/package-lock.json b/mods/errors/package-lock.json deleted file mode 100644 index 9cb8ee91f..000000000 --- a/mods/errors/package-lock.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "@fonoster/errors", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/errors", - "version": "0.3.22", - "license": "MIT" - } - } -} diff --git a/mods/errors/package.json b/mods/errors/package.json deleted file mode 100644 index c8cbc7841..000000000 --- a/mods/errors/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "@fonoster/errors", - "version": "0.3.22", - "description": "Handles Fonoster errors", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/index", - "types": "dist/index", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/errors/src/auth_error.ts b/mods/errors/src/auth_error.ts deleted file mode 100644 index e93442a15..000000000 --- a/mods/errors/src/auth_error.ts +++ /dev/null @@ -1,8 +0,0 @@ -import FonosterError from "./error"; -import { UNAUTHENTICATED } from "./codes"; - -export default class extends FonosterError { - constructor(message?: string) { - super(message, UNAUTHENTICATED); - } -} diff --git a/mods/errors/src/codes.ts b/mods/errors/src/codes.ts deleted file mode 100644 index 40c9a638a..000000000 --- a/mods/errors/src/codes.ts +++ /dev/null @@ -1,23 +0,0 @@ -const UNAUTHENTICATED = 16; -const PERMISSION_DENIED = 7; -const UNKNOWN = 2; -const FAILED_PRECONDITION = 9; -const INVALID_ARGUMENT = 3; -const INTERNAL = 13; -const ENTITY_ALREADY_EXIST = 6; -const UNIMPLEMENTED = 12; -const NOT_FOUND = 5; -const ALREADY_EXISTS = 6; - -export { - UNAUTHENTICATED, - PERMISSION_DENIED, - UNKNOWN, - FAILED_PRECONDITION, - INVALID_ARGUMENT, - INTERNAL, - ENTITY_ALREADY_EXIST, - UNIMPLEMENTED, - NOT_FOUND, - ALREADY_EXISTS -}; diff --git a/mods/errors/src/error.ts b/mods/errors/src/error.ts deleted file mode 100644 index 31e5e14a5..000000000 --- a/mods/errors/src/error.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { UNKNOWN } from "./codes"; - -export default class extends Error { - code: any; - constructor(message: string, code = UNKNOWN) { - super(message); - this.name = "FonosterError"; - this.code = code; - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - } -} diff --git a/mods/errors/src/failed_precondition.ts b/mods/errors/src/failed_precondition.ts deleted file mode 100644 index 74216b3b1..000000000 --- a/mods/errors/src/failed_precondition.ts +++ /dev/null @@ -1,8 +0,0 @@ -import FonosterError from "./error"; -import { FAILED_PRECONDITION } from "./codes"; - -export default class extends FonosterError { - constructor(message?: string) { - super(message, FAILED_PRECONDITION); - } -} diff --git a/mods/errors/src/index.ts b/mods/errors/src/index.ts deleted file mode 100644 index eebd8a9f9..000000000 --- a/mods/errors/src/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -import FonosterError from "./error"; -import FonosterAuthError from "./auth_error"; -import FonosterInvalidArgument from "./invalid_argument"; -import FonosterFailedPrecondition from "./failed_precondition"; -import FonosterSubsysUnavailable from "./subsys_unavailable"; -import * as ErrorCodes from "./codes"; - -export { - FonosterError, - FonosterAuthError, - FonosterInvalidArgument, - FonosterFailedPrecondition, - FonosterSubsysUnavailable, - ErrorCodes -}; diff --git a/mods/errors/src/invalid_argument.ts b/mods/errors/src/invalid_argument.ts deleted file mode 100644 index 1bb26222e..000000000 --- a/mods/errors/src/invalid_argument.ts +++ /dev/null @@ -1,9 +0,0 @@ -import FonosterError from "./error"; -import { INVALID_ARGUMENT } from "./codes"; - -export default class extends FonosterError { - constructor(message?: string) { - super(message, INVALID_ARGUMENT); - this.name = "FonosInvalidArgument"; - } -} diff --git a/mods/errors/src/subsys_unavailable.ts b/mods/errors/src/subsys_unavailable.ts deleted file mode 100644 index a35b21602..000000000 --- a/mods/errors/src/subsys_unavailable.ts +++ /dev/null @@ -1,8 +0,0 @@ -import FonosterError from "./error"; -import { INTERNAL } from "./codes"; - -export default class extends FonosterError { - constructor(message?: string) { - super(message, INTERNAL); - } -} diff --git a/mods/errors/test/errors.unit.test.ts b/mods/errors/test/errors.unit.test.ts deleted file mode 100644 index f6b7b3cd9..000000000 --- a/mods/errors/test/errors.unit.test.ts +++ /dev/null @@ -1,42 +0,0 @@ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { join } from "path"; -import FonosterError from "../src/error"; -import FonosInvalidArgument from "../src/invalid_argument"; -import { INVALID_ARGUMENT } from "../src/codes"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -if (process.env.NODE_ENV === "dev") { - require("dotenv").config({ path: join(__dirname, "..", "..", ".env") }); -} - -describe("@fonoster/errors", () => { - afterEach(() => sandbox.restore()); - - it("has correct constructor name and message", () => { - expect(new FonosterError("test")) - .to.have.property("name") - .to.be.equal("FonosterError"); - expect(() => { - throw new FonosterError("my message"); - }).to.throw("my message"); - }); - - it("has correct constructor name, message, and code", () => { - expect(new FonosInvalidArgument("test")) - .to.have.property("name") - .to.be.equal("FonosInvalidArgument"); - - expect(new FonosInvalidArgument()) - .to.have.property("code") - .to.be.equal(INVALID_ARGUMENT); - - expect(new FonosInvalidArgument()).to.have.property("stack"); - }); -}); diff --git a/mods/errors/tsconfig.json b/mods/errors/tsconfig.json deleted file mode 100644 index 7104bf4cd..000000000 --- a/mods/errors/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/events/.npmignore b/mods/events/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/events/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/events/package-lock.json b/mods/events/package-lock.json deleted file mode 100644 index fe1a9a0f9..000000000 --- a/mods/events/package-lock.json +++ /dev/null @@ -1,364 +0,0 @@ -{ - "name": "@fonoster/events", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/events", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "amqp-connection-manager": "^3.2.2", - "amqplib": "^0.8.0" - }, - "devDependencies": { - "@types/amqp-connection-manager": "^2.0.10" - } - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@types/amqp-connection-manager": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@types/amqp-connection-manager/-/amqp-connection-manager-2.0.12.tgz", - "integrity": "sha512-2GX1jG6ECpEXQF0X68gTTZc8MQ8GA0dM2mAd1irTpWlKzGKlGzCBtb1YnqLHozNNsoLtGI6UXSp0q06jU1LA6g==", - "dev": true, - "dependencies": { - "@types/amqplib": "*" - } - }, - "node_modules/@types/amqplib": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz", - "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==", - "dev": true, - "dependencies": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bluebird": { - "version": "3.5.36", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", - "dev": true - }, - "node_modules/amqp-connection-manager": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/amqp-connection-manager/-/amqp-connection-manager-3.9.0.tgz", - "integrity": "sha512-ZKw9ckJKz40Lc2pC7DY0NVocpzPalMaCgv0sBn+N4er2QFAJul9pIiMOm/FsPHeCzB+FulV7PckOpmZvWvewGQ==", - "dependencies": { - "promise-breaker": "^5.0.0" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">5.0.0" - }, - "peerDependencies": { - "amqplib": "*" - } - }, - "node_modules/amqplib": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.8.0.tgz", - "integrity": "sha512-icU+a4kkq4Y1PS4NNi+YPDMwdlbFcZ1EZTQT2nigW3fvOb6AOgUQ9+Mk4ue0Zu5cBg/XpDzB40oH10ysrk2dmA==", - "dependencies": { - "bitsyntax": "~0.1.0", - "bluebird": "^3.7.2", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "safe-buffer": "~5.2.1", - "url-parse": "~1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/bitsyntax": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz", - "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==", - "dependencies": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/bitsyntax/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/buffer-more-ints": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz", - "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.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/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/promise-breaker": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/promise-breaker/-/promise-breaker-5.0.0.tgz", - "integrity": "sha512-mgsWQuG4kJ1dtO6e/QlNDLFtMkMzzecsC69aI5hlLEjGHFNpHrvGhFi4LiK5jg2SMQj74/diH+wZliL9LpGsyA==" - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "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/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - } - }, - "dependencies": { - "@types/amqp-connection-manager": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@types/amqp-connection-manager/-/amqp-connection-manager-2.0.12.tgz", - "integrity": "sha512-2GX1jG6ECpEXQF0X68gTTZc8MQ8GA0dM2mAd1irTpWlKzGKlGzCBtb1YnqLHozNNsoLtGI6UXSp0q06jU1LA6g==", - "dev": true, - "requires": { - "@types/amqplib": "*" - } - }, - "@types/amqplib": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz", - "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==", - "dev": true, - "requires": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "@types/bluebird": { - "version": "3.5.36", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", - "dev": true - }, - "amqp-connection-manager": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/amqp-connection-manager/-/amqp-connection-manager-3.9.0.tgz", - "integrity": "sha512-ZKw9ckJKz40Lc2pC7DY0NVocpzPalMaCgv0sBn+N4er2QFAJul9pIiMOm/FsPHeCzB+FulV7PckOpmZvWvewGQ==", - "requires": { - "promise-breaker": "^5.0.0" - } - }, - "amqplib": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.8.0.tgz", - "integrity": "sha512-icU+a4kkq4Y1PS4NNi+YPDMwdlbFcZ1EZTQT2nigW3fvOb6AOgUQ9+Mk4ue0Zu5cBg/XpDzB40oH10ysrk2dmA==", - "requires": { - "bitsyntax": "~0.1.0", - "bluebird": "^3.7.2", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "safe-buffer": "~5.2.1", - "url-parse": "~1.5.1" - } - }, - "bitsyntax": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz", - "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==", - "requires": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "buffer-more-ints": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz", - "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "promise-breaker": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/promise-breaker/-/promise-breaker-5.0.0.tgz", - "integrity": "sha512-mgsWQuG4kJ1dtO6e/QlNDLFtMkMzzecsC69aI5hlLEjGHFNpHrvGhFi4LiK5jg2SMQj74/diH+wZliL9LpGsyA==" - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "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==" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - } - } -} diff --git a/mods/events/package.json b/mods/events/package.json deleted file mode 100644 index a0ea2778f..000000000 --- a/mods/events/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "@fonoster/events", - "version": "0.3.22", - "description": "Fonoster events managment", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/index", - "types": "dist/index", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/logger": "^0.3.22", - "amqp-connection-manager": "^3.2.2", - "amqplib": "^0.8.0" - }, - "devDependencies": { - "@types/amqp-connection-manager": "^2.0.10" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/events/src/events_recvr.ts b/mods/events/src/events_recvr.ts deleted file mode 100644 index 7663a161e..000000000 --- a/mods/events/src/events_recvr.ts +++ /dev/null @@ -1,31 +0,0 @@ -import RabbitQConnector from "./rabbitq_connector"; -import logger from "@fonoster/logger"; - -export default class EventsRecvr extends RabbitQConnector { - constructor(address: string[], q: string) { - super(address, q); - } - - watchEvents(func: Function) { - if (!this.channelWrapper) { - throw `events.EventsClient.watchEvents [must connect to rabbitq before watching.]`; - } - this.channelWrapper.addSetup((channel: any) => { - return Promise.all([ - channel.consume( - this.q, - (msg: any) => { - logger.log( - "debug", - `events.EventsClient.watchEvents [new event on q => ${ - this.q - }, payload ${msg.content.toString()}]` - ); - func(msg.content); - }, - { noAck: true, exclusive: false } - ) - ]); - }); - } -} diff --git a/mods/events/src/events_sender.ts b/mods/events/src/events_sender.ts deleted file mode 100644 index 45e14df86..000000000 --- a/mods/events/src/events_sender.ts +++ /dev/null @@ -1,23 +0,0 @@ -import RabbitQConnector from "./rabbitq_connector"; -import logger from "@fonoster/logger"; - -export default class EventsSender extends RabbitQConnector { - constructor(address: string[], q: string) { - super(address, q); - } - - async sendToQ(payload: any) { - if (process.env.EVENTS_ENABLED !== "true") { - logger.verbose( - "@fonoster/events rabbitq connector [ignoring event: events service is disabled]" - ); - return; - } - logger.verbose( - `events.EventsSender.sendToQ [sent message to q => ${this.q}]` - ); - await this.channelWrapper.sendToQueue(this.q, { - data: payload - }); - } -} diff --git a/mods/events/src/index.ts b/mods/events/src/index.ts deleted file mode 100644 index c1551589b..000000000 --- a/mods/events/src/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import EventsSender from "./events_sender"; -import EventsRecvr from "./events_recvr"; - -export { EventsRecvr, EventsSender }; diff --git a/mods/events/src/rabbitq_connector.ts b/mods/events/src/rabbitq_connector.ts deleted file mode 100644 index 25ad11a59..000000000 --- a/mods/events/src/rabbitq_connector.ts +++ /dev/null @@ -1,30 +0,0 @@ -import amqp from "amqp-connection-manager"; -import logger from "@fonoster/logger"; - -export default class RabbitQConnector { - address: string[]; - channelWrapper: any; - q: string; - constructor(address: string[], q: string) { - this.address = address; - this.q = q; - } - - connect() { - if (process.env.EVENTS_ENABLED !== "true") { - logger.info("@fonoster/events rabbitq connector [disabled]"); - return; - } - logger.info("@fonoster/events rabbitq connector [connecting to rabbitq]"); - const connection = amqp.connect(this.address); - this.channelWrapper = connection.createChannel({ - json: true, - setup: (channel: any) => { - logger.info( - `@fonoster/events rabbitq connector [setting up q => ${this.q}, durable => false]` - ); - return channel.assertQueue(this.q, { durable: false }); - } - }); - } -} diff --git a/mods/events/test/events.int.test.ts b/mods/events/test/events.int.test.ts deleted file mode 100644 index cf5609e66..000000000 --- a/mods/events/test/events.int.test.ts +++ /dev/null @@ -1,44 +0,0 @@ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { join } from "path"; -import EventsSender from "../src/events_sender"; -import EventsRecvr from "../src/events_recvr"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -if (process.env.NODE_ENV === "dev") { - require("dotenv").config({ path: join(__dirname, "..", "..", ".env") }); -} - -describe("Events Module", () => { - it("send an events", async () => { - const er = new EventsSender( - [ - "amqp://localhost:5672", - "amqp://localhost:5673", - "amqp://localhost:5674" - ], - "test" - ); - er.connect(); - // await er.sendToQ("APP_CREATED", {appId: "001", name: "blah"}); - }); - - it("wait for events", async () => { - const er = new EventsRecvr( - [ - "amqp://localhost:5672", - "amqp://localhost:5673", - "amqp://localhost:5674" - ], - "test" - ); - er.connect(); - er.watchEvents((content: any) => console.log(content.toString())); - }); -}); diff --git a/mods/events/tsconfig.json b/mods/events/tsconfig.json deleted file mode 100644 index a7d645e6e..000000000 --- a/mods/events/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [{ "path": "../logger" }], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/funcs/.dockerignore b/mods/funcs/.dockerignore deleted file mode 100644 index b512c09d4..000000000 --- a/mods/funcs/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/mods/funcs/.npmignore b/mods/funcs/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/funcs/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/funcs/Dockerfile b/mods/funcs/Dockerfile deleted file mode 100644 index 3d068659e..000000000 --- a/mods/funcs/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs python3 make g++ \ - && npm install -g fonoster-*.tgz \ - && apk del npm git python3 make g++ - -USER fonoster - -CMD ["run_funcs"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_funcs" ] \ No newline at end of file diff --git a/mods/funcs/etc/Readme.md b/mods/funcs/etc/Readme.md deleted file mode 100644 index 2d2aa3001..000000000 --- a/mods/funcs/etc/Readme.md +++ /dev/null @@ -1 +0,0 @@ -# Example function diff --git a/mods/funcs/etc/example/Dockerfile b/mods/funcs/etc/example/Dockerfile deleted file mode 100644 index 2621b893e..000000000 --- a/mods/funcs/etc/example/Dockerfile +++ /dev/null @@ -1,2 +0,0 @@ -FROM fonoster/node12fn:latest -COPY ./function/* /home/app/function/ \ No newline at end of file diff --git a/mods/funcs/etc/example/function/handler.ts b/mods/funcs/etc/example/function/handler.ts deleted file mode 100644 index 7c5c56228..000000000 --- a/mods/funcs/etc/example/function/handler.ts +++ /dev/null @@ -1,3 +0,0 @@ -// Example function -export default async (event: any, context: any) => - context.status(200).succeed("Hello world!"); diff --git a/mods/funcs/etc/example/function/package.json b/mods/funcs/etc/example/function/package.json deleted file mode 100644 index b7bb3d215..000000000 --- a/mods/funcs/etc/example/function/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "examplefn", - "version": "0.0.1", - "description": "Example function", - "main": "handler.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 0" - }, - "keywords": [], - "author": "Fonoster Team", - "license": "MIT" -} diff --git a/mods/funcs/package-lock.json b/mods/funcs/package-lock.json deleted file mode 100644 index 6ba2c39b3..000000000 --- a/mods/funcs/package-lock.json +++ /dev/null @@ -1,5717 +0,0 @@ -{ - "name": "@fonoster/funcs", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/funcs", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "btoa": "^1.2.1", - "container-image-builder": "^3.2.0", - "cron-validate": "^1.4.3", - "cross-spawn": "^7.0.3", - "dockerode": "^3.3.0", - "fs-extra": "^8.1.0", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "ndjson": "^2.0.0", - "openfaas-client": "^0.0.2", - "tar": "^6.1.0", - "walk": "^2.3.14" - }, - "bin": { - "healthcheck_funcs": "dist/service/healthcheck.js", - "run_funcs": "dist/service/runner.js" - }, - "devDependencies": { - "@types/bluebird": "^3.5.35", - "@types/fs-extra": "^9.0.1", - "@types/google-protobuf": "^3.15.2", - "@types/tar": "^4.0.3" - } - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.2.29", - "@fonoster/common": "^0.2.29", - "@fonoster/errors": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.6", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.6", - "@speedymonster/grpc-interceptors": "^0.2.5", - "atob": "^2.1.2", - "deepmerge": "^4.2.2" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "axios": "^0.21.1" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.2.29", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.3.3" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "../storage": { - "name": "@fonoster/storage", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.2.29", - "@fonoster/certs": "^0.2.29", - "@fonoster/common": "^0.2.29", - "@fonoster/core": "^0.2.29", - "@fonoster/errors": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.6", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "minio": "^7.0.18", - "objectid": "^3.2.1", - "sync": "^0.2.5", - "tar": "^6.1.0", - "walk": "^2.3.14" - }, - "bin": { - "healthcheck_storage": "dist/service/healthcheck.js", - "run_storage": "dist/service/runner.js" - } - }, - "node_modules/@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.5.tgz", - "integrity": "sha512-FTd27ItHlsSG/7hp62xgI9YnqSwRbHRSVmDVR8DwOoC+6t8JhHRXe2JL0U8N9GLc0jS0HrtEbO/KP5+G0ebjLQ==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@types/bluebird": { - "version": "3.5.36", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "node_modules/@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/google-protobuf": { - "version": "3.15.5", - "resolved": "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.15.5.tgz", - "integrity": "sha512-6bgv24B+A2bo9AfzReeg5StdiijKzwwnRflA8RLd1V4Yv995LeTmo0z69/MPbBDFSiZWdZHQygLo/ccXhMEDgw==", - "dev": true - }, - "node_modules/@types/lodash": { - "version": "4.14.178", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz", - "integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==" - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/minipass": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/minipass/-/minipass-3.1.2.tgz", - "integrity": "sha512-foLGjgrJkUjLG/o2t2ymlZGEoBNBa/TfoUZ7oCTkOjP1T43UGBJspovJou/l3ZuHvye2ewR5cZNtp2zyWgILMA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" - }, - "node_modules/@types/tar": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tar/-/tar-4.0.5.tgz", - "integrity": "sha512-cgwPhNEabHaZcYIy5xeMtux2EmYBitfqEceBUi2t5+ETy4dW6kswt6WX4+HqLeiiKOo42EXbGiDmVJ2x+vi37Q==", - "dev": true, - "dependencies": { - "@types/minipass": "*", - "@types/node": "*" - } - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "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/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "engines": { - "node": ">=8" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", - "engines": { - "node": "*" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/braces/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "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": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "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/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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/container-image-builder": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/container-image-builder/-/container-image-builder-3.2.0.tgz", - "integrity": "sha512-HHo1h+yqesR/2jqWsebzljuQAUuDCkyrtOUgAtJyvW1hZedzILPWnDiCFM8t5UqjwkFwta9RMrb8p3e4V8s6NA==", - "dependencies": { - "google-auth-library": "^5.1.0", - "micromatch": "^3.1.10", - "p-retry": "^3.0.1", - "request": "^2.88.0", - "tar": "^4.4.8", - "walkdir": "^0.4.0" - } - }, - "node_modules/container-image-builder/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/container-image-builder/node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/container-image-builder/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/container-image-builder/node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/container-image-builder/node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/cpu-features": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.2.tgz", - "integrity": "sha512-/2yieBqvMcRj8McNzkycjW2v3OIUOibBfd2dLEJ0nWts8NobAxwiyw9phVNS6oDL8x8tz9F7uNVFEVpJncQpeA==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "nan": "^2.14.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/cron-validate": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/cron-validate/-/cron-validate-1.4.3.tgz", - "integrity": "sha512-N+qKw019oQBEPIP5Qwi8Z5XelQ00ThN6Maahwv+9UGu2u/b/MPb35zngMQI0T8pBoNiBrIXGlhvsmspNSYae/w==", - "dependencies": { - "yup": "0.32.9" - } - }, - "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/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/docker-modem": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.3.tgz", - "integrity": "sha512-Tgkn2a+yiNP9FoZgMa/D9Wk+D2Db///0KOyKSYZRJa8w4+DzKyzQMkczKSdR/adQ0x46BOpeNkoyEOKjPhCzjw==", - "dependencies": { - "debug": "^4.1.1", - "readable-stream": "^3.5.0", - "split-ca": "^1.0.1", - "ssh2": "^1.4.0" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/dockerode": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.1.tgz", - "integrity": "sha512-AS2mr8Lp122aa5n6d99HkuTNdRV1wkkhHwBdcnY6V0+28D3DSYwhxAk85/mM9XwD3RMliTxyr63iuvn5ZblFYQ==", - "dependencies": { - "docker-modem": "^3.0.0", - "tar-fs": "~2.0.1" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "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/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "peer": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "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/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "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-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" - }, - "node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreachasync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", - "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/gaxios": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.3.4.tgz", - "integrity": "sha512-US8UMj8C5pRnao3Zykc4AAVr+cffoNKRTg9Rsf2GiuZCW69vgJj38VK2PzlPuQU73FZ/nTk9/Av6/JGcE1N9vA==", - "dependencies": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/gcp-metadata": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-3.5.0.tgz", - "integrity": "sha512-ZQf+DLZ5aKcRpLzYUyBS3yo3N0JSa82lNDO8rj3nMSlovLcz2riKFBsYgDzeXcv75oo5eqB2lx+B14UvPoCRnA==", - "dependencies": { - "gaxios": "^2.1.0", - "json-bigint": "^0.3.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "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-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/google-auth-library": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-5.10.1.tgz", - "integrity": "sha512-rOlaok5vlpV9rSiUu5EpR0vVpc+PhN62oF4RyX/6++DG1VsaulAFEMlDYBLjJDDPI6OcNOCGAKy9UVB/3NIDXg==", - "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^2.1.0", - "gcp-metadata": "^3.4.0", - "gtoken": "^4.1.0", - "jws": "^4.0.0", - "lru-cache": "^5.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/google-p12-pem": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.5.tgz", - "integrity": "sha512-7RLkxwSsMsYh9wQ5Vb2zRtkAHvqPvfoMGag+nugl1noYO7gf0844Yr9TIFA5NEBMAeVt2Z+Imu7CQMp3oNatzQ==", - "dependencies": { - "node-forge": "^0.10.0" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "node_modules/gtoken": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-4.1.4.tgz", - "integrity": "sha512-VxirzD0SWoFUo5p8RDP8Jt2AGyOmyYcT/pOUgDKJCK+iSw0TMqwrVfY37RXTNmoKwrzmDHSk0GMT9FsgVmnVSA==", - "dependencies": { - "gaxios": "^2.1.0", - "google-p12-pem": "^2.0.0", - "jws": "^4.0.0", - "mime": "^2.2.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "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-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/json-bigint": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.1.tgz", - "integrity": "sha512-DGWnSzmusIreWlEupsUelHrhwmPPE+FiQvg+drKfk2p+bdEYa5mp4PJ8JsCWqae0M2jQNb0HPvnwvf1qOTThzQ==", - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "dependencies": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "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-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass/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/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/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/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, - "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/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "optional": true - }, - "node_modules/nanoclone": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", - "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==" - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ndjson": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", - "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", - "dependencies": { - "json-stringify-safe": "^5.0.1", - "minimist": "^1.2.5", - "readable-stream": "^3.6.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "ndjson": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ndjson/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/openfaas-client": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/openfaas-client/-/openfaas-client-0.0.2.tgz", - "integrity": "sha512-Dv3sBrbRNmdh9Tjsam6E00Wyh7Ghspv3i9tv1kfRHiVnZV0bmH5rx6zJ8i4A8jCfYHuBdHONffhm9/xh/KSYBQ==", - "dependencies": { - "bluebird": "^3.7.2", - "request": "^2.88.2", - "typescript": "^4.2.4" - } - }, - "node_modules/p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dependencies": { - "retry": "^0.12.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "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/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/property-expr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", - "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==" - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "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/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated" - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "engines": { - "node": ">= 4" - } - }, - "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-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "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/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated" - }, - "node_modules/split-ca": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=" - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/ssh2": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.6.0.tgz", - "integrity": "sha512-lxc+uvXqOxyQ99N2M7k5o4pkYDO5GptOTYduWw7hIM41icxvoBcCNHcj+LTKrjkL0vFcAl+qfZekthoSFRJn2Q==", - "hasInstallScript": true, - "dependencies": { - "asn1": "^0.2.4", - "bcrypt-pbkdf": "^1.0.2" - }, - "engines": { - "node": ">=10.16.0" - }, - "optionalDependencies": { - "cpu-features": "0.0.2", - "nan": "^2.15.0" - } - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "engines": { - "node": ">=0.10.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/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar-fs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", - "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar/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/tar/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/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=" - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "engines": { - "node": ">=0.10.0" - } - }, - "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/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated" - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/walk": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz", - "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==", - "dependencies": { - "foreachasync": "^3.0.0" - } - }, - "node_modules/walkdir": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", - "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.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/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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "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/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "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/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/yup": { - "version": "0.32.9", - "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", - "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", - "dependencies": { - "@babel/runtime": "^7.10.5", - "@types/lodash": "^4.14.165", - "lodash": "^4.17.20", - "lodash-es": "^4.17.15", - "nanoclone": "^0.2.1", - "property-expr": "^2.0.4", - "toposort": "^2.0.2" - }, - "engines": { - "node": ">=10" - } - } - }, - "dependencies": { - "@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@grpc/grpc-js": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.5.tgz", - "integrity": "sha512-FTd27ItHlsSG/7hp62xgI9YnqSwRbHRSVmDVR8DwOoC+6t8JhHRXe2JL0U8N9GLc0jS0HrtEbO/KP5+G0ebjLQ==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - } - }, - "@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/bluebird": { - "version": "3.5.36", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/google-protobuf": { - "version": "3.15.5", - "resolved": "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.15.5.tgz", - "integrity": "sha512-6bgv24B+A2bo9AfzReeg5StdiijKzwwnRflA8RLd1V4Yv995LeTmo0z69/MPbBDFSiZWdZHQygLo/ccXhMEDgw==", - "dev": true - }, - "@types/lodash": { - "version": "4.14.178", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz", - "integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==" - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/minipass": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/minipass/-/minipass-3.1.2.tgz", - "integrity": "sha512-foLGjgrJkUjLG/o2t2ymlZGEoBNBa/TfoUZ7oCTkOjP1T43UGBJspovJou/l3ZuHvye2ewR5cZNtp2zyWgILMA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" - }, - "@types/tar": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tar/-/tar-4.0.5.tgz", - "integrity": "sha512-cgwPhNEabHaZcYIy5xeMtux2EmYBitfqEceBUi2t5+ETy4dW6kswt6WX4+HqLeiiKOo42EXbGiDmVJ2x+vi37Q==", - "dev": true, - "requires": { - "@types/minipass": "*", - "@types/node": "*" - } - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "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==" - } - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, - "btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "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": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "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" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "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==" - }, - "container-image-builder": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/container-image-builder/-/container-image-builder-3.2.0.tgz", - "integrity": "sha512-HHo1h+yqesR/2jqWsebzljuQAUuDCkyrtOUgAtJyvW1hZedzILPWnDiCFM8t5UqjwkFwta9RMrb8p3e4V8s6NA==", - "requires": { - "google-auth-library": "^5.1.0", - "micromatch": "^3.1.10", - "p-retry": "^3.0.1", - "request": "^2.88.0", - "tar": "^4.4.8", - "walkdir": "^0.4.0" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "requires": { - "minipass": "^2.6.0" - } - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "requires": { - "minipass": "^2.9.0" - } - }, - "tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cpu-features": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.2.tgz", - "integrity": "sha512-/2yieBqvMcRj8McNzkycjW2v3OIUOibBfd2dLEJ0nWts8NobAxwiyw9phVNS6oDL8x8tz9F7uNVFEVpJncQpeA==", - "optional": true, - "requires": { - "nan": "^2.14.1" - } - }, - "cron-validate": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/cron-validate/-/cron-validate-1.4.3.tgz", - "integrity": "sha512-N+qKw019oQBEPIP5Qwi8Z5XelQ00ThN6Maahwv+9UGu2u/b/MPb35zngMQI0T8pBoNiBrIXGlhvsmspNSYae/w==", - "requires": { - "yup": "0.32.9" - } - }, - "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" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "docker-modem": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.3.tgz", - "integrity": "sha512-Tgkn2a+yiNP9FoZgMa/D9Wk+D2Db///0KOyKSYZRJa8w4+DzKyzQMkczKSdR/adQ0x46BOpeNkoyEOKjPhCzjw==", - "requires": { - "debug": "^4.1.1", - "readable-stream": "^3.5.0", - "split-ca": "^1.0.1", - "ssh2": "^1.4.0" - } - }, - "dockerode": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.1.tgz", - "integrity": "sha512-AS2mr8Lp122aa5n6d99HkuTNdRV1wkkhHwBdcnY6V0+28D3DSYwhxAk85/mM9XwD3RMliTxyr63iuvn5ZblFYQ==", - "requires": { - "docker-modem": "^3.0.0", - "tar-fs": "~2.0.1" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "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==" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "peer": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "peer": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "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-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "foreachasync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", - "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "gaxios": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.3.4.tgz", - "integrity": "sha512-US8UMj8C5pRnao3Zykc4AAVr+cffoNKRTg9Rsf2GiuZCW69vgJj38VK2PzlPuQU73FZ/nTk9/Av6/JGcE1N9vA==", - "requires": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" - } - }, - "gcp-metadata": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-3.5.0.tgz", - "integrity": "sha512-ZQf+DLZ5aKcRpLzYUyBS3yo3N0JSa82lNDO8rj3nMSlovLcz2riKFBsYgDzeXcv75oo5eqB2lx+B14UvPoCRnA==", - "requires": { - "gaxios": "^2.1.0", - "json-bigint": "^0.3.0" - } - }, - "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-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "google-auth-library": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-5.10.1.tgz", - "integrity": "sha512-rOlaok5vlpV9rSiUu5EpR0vVpc+PhN62oF4RyX/6++DG1VsaulAFEMlDYBLjJDDPI6OcNOCGAKy9UVB/3NIDXg==", - "requires": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^2.1.0", - "gcp-metadata": "^3.4.0", - "gtoken": "^4.1.0", - "jws": "^4.0.0", - "lru-cache": "^5.0.0" - } - }, - "google-p12-pem": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.5.tgz", - "integrity": "sha512-7RLkxwSsMsYh9wQ5Vb2zRtkAHvqPvfoMGag+nugl1noYO7gf0844Yr9TIFA5NEBMAeVt2Z+Imu7CQMp3oNatzQ==", - "requires": { - "node-forge": "^0.10.0" - } - }, - "google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "gtoken": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-4.1.4.tgz", - "integrity": "sha512-VxirzD0SWoFUo5p8RDP8Jt2AGyOmyYcT/pOUgDKJCK+iSw0TMqwrVfY37RXTNmoKwrzmDHSk0GMT9FsgVmnVSA==", - "requires": { - "gaxios": "^2.1.0", - "google-p12-pem": "^2.0.0", - "jws": "^4.0.0", - "mime": "^2.2.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "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-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "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-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-bigint": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.1.tgz", - "integrity": "sha512-DGWnSzmusIreWlEupsUelHrhwmPPE+FiQvg+drKfk2p+bdEYa5mp4PJ8JsCWqae0M2jQNb0HPvnwvf1qOTThzQ==", - "requires": { - "bignumber.js": "^9.0.0" - } - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "requires": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "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.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" - }, - "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "optional": true - }, - "nanoclone": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", - "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "ndjson": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", - "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", - "requires": { - "json-stringify-safe": "^5.0.1", - "minimist": "^1.2.5", - "readable-stream": "^3.6.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "dependencies": { - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "requires": { - "readable-stream": "3" - } - } - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "openfaas-client": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/openfaas-client/-/openfaas-client-0.0.2.tgz", - "integrity": "sha512-Dv3sBrbRNmdh9Tjsam6E00Wyh7Ghspv3i9tv1kfRHiVnZV0bmH5rx6zJ8i4A8jCfYHuBdHONffhm9/xh/KSYBQ==", - "requires": { - "bluebird": "^3.7.2", - "request": "^2.88.2", - "typescript": "^4.2.4" - } - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "requires": { - "retry": "^0.12.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "property-expr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", - "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==" - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "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" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - }, - "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-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, - "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==" - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "split-ca": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=" - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "requires": { - "readable-stream": "^3.0.0" - } - }, - "ssh2": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.6.0.tgz", - "integrity": "sha512-lxc+uvXqOxyQ99N2M7k5o4pkYDO5GptOTYduWw7hIM41icxvoBcCNHcj+LTKrjkL0vFcAl+qfZekthoSFRJn2Q==", - "requires": { - "asn1": "^0.2.4", - "bcrypt-pbkdf": "^1.0.2", - "cpu-features": "0.0.2", - "nan": "^2.15.0" - } - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "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" - } - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "tar-fs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", - "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=" - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - } - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "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" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "walk": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz", - "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==", - "requires": { - "foreachasync": "^3.0.0" - } - }, - "walkdir": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", - "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.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" - } - }, - "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" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "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==" - }, - "yup": { - "version": "0.32.9", - "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", - "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", - "requires": { - "@babel/runtime": "^7.10.5", - "@types/lodash": "^4.14.165", - "lodash": "^4.17.20", - "lodash-es": "^4.17.15", - "nanoclone": "^0.2.1", - "property-expr": "^2.0.4", - "toposort": "^2.0.2" - } - } - } -} diff --git a/mods/funcs/package.json b/mods/funcs/package.json deleted file mode 100644 index c1602e3e2..000000000 --- a/mods/funcs/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "@fonoster/funcs", - "version": "0.3.22", - "description": "Fonoster functions support", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/client/funcs", - "types": "dist/client/funcs", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "postbuild": "cp -a ./src/service/protos/ ./dist/service/protos", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/srv_runner" - }, - "bin": { - "run_funcs": "dist/service/runner.js", - "healthcheck_funcs": "dist/service/healthcheck.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/errors": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@fonoster/storage": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "btoa": "^1.2.1", - "container-image-builder": "^3.2.0", - "cron-validate": "^1.4.3", - "cross-spawn": "^7.0.3", - "dockerode": "^3.3.0", - "fs-extra": "^8.1.0", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "ndjson": "^2.0.0", - "openfaas-client": "^0.0.2", - "tar": "^6.1.0", - "walk": "^2.3.14" - }, - "devDependencies": { - "@types/bluebird": "^3.5.35", - "@types/fs-extra": "^9.0.1", - "@types/google-protobuf": "^3.15.2", - "@types/tar": "^4.0.3" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/funcs/src/client/funcs.ts b/mods/funcs/src/client/funcs.ts deleted file mode 100644 index 812b2ba19..000000000 --- a/mods/funcs/src/client/funcs.ts +++ /dev/null @@ -1,296 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Storage from "@fonoster/storage"; -import { APIClient, ClientOptions } from "@fonoster/common"; -import { FuncsClient } from "../service/protos/funcs_grpc_pb"; -import FuncsPB from "../service/protos/funcs_pb"; -import CommonPB from "../service/protos/common_pb"; -import { - DeleteFuncRequest, - DeleteFuncResponse, - DeployFuncRequest, - GetFuncLogsRequest, - GetFuncRequest, - GetFuncResponse, - IFuncsClient, - ListFuncsRequest, - ListFuncsResponse -} from "./types"; -import { - buildDeployFuncRequest, - cleanupTmpDirSync, - copyFuncAtTmp -} from "../utils/utils"; -import { DeployStream, LogsStream } from "./stream_wrappers"; - -/** - * @classdesc Use Fonoster Funcs, a capability of FaaS subsystem, - * to deploy, update, get and delete functions. Fonoster Funcs requires of a - * running Fonoster deployment and FaaS. - * - * @extends APIClient - * @example - * - * const request = { - * name: "function1", - * path: "/path/to/function", - * }; - * - * funcs.deployFunc(request) - * .then(stream => { - * stream.onMessage(msg => console.log(msg)) - * stream.onFinish(() => console.log("end")) - * stream.onError(e => console.error(e)) - * }).catch(e => console.error(e)); // an error occurred - */ -export default class Funcs extends APIClient implements IFuncsClient { - storage: any; - /** - * Constructs a new Funcs object. - * @param {ClientOptions} options - Options to indicate the objects endpoint - * @see module:core:APIClient - */ - constructor(options?: ClientOptions) { - super(FuncsClient, options); - super.init(); - this.storage = new Storage(super.getOptions()); - } - - /** - * Creates or updates a function in the FaaS subsystem. - * - * @param {DeployFuncRequest} request - Request to create or update a function - * @param {string} request.path - Path to the function. - * @param {string} request.name - Unique function name - * @param {string} request.schedule - Unique function name - * @param {string} request.limit.memory - Optional limit for function's memory utilization - * @param {string} request.limit.cpu - Optional limit for function's cpu utilization - * @param {string} request.requests.memory - Optional requested memory allocation for the function - * @param {string} request.requests.cpu - Optional requested cpu allocation for the function - * @return {Promise} - * @example - * - * const Fonoster = require("@fonoster/sdk"); - * const funcs = new Fonoster.Funcs(); - * - * const request = { - * name: "function1", - * schedule: "* * * * *", // Intervals using standard cron syntax - * path: "/path/to/function", - * limits: { - * cpu: 100m, - * memory: 40Mi - * }, - * requests: { - * cpu: 100m, - * memory: 40Mi - * } - * }; - * - * funcs.deployFunc(request) - * .then(stream => { - * stream.onMessage(msg => console.log(msg)) - * stream.onFinish(() => console.log("end")) - * stream.onError(e => console.error(e)) - * }).catch(e => console.error(e)); // an error occurred - */ - async deployFunc(request: DeployFuncRequest): Promise { - if (request.path) { - cleanupTmpDirSync(request.name); - await copyFuncAtTmp(request.path, request.name); - await this.storage.uploadObject({ - filename: `/tmp/${request.name}.tgz`, - bucket: "funcs" - }); - } - cleanupTmpDirSync(request.name); - const req = buildDeployFuncRequest(request); - const stream = super.getService().deployFunc(req, super.getMeta()); - return new DeployStream(stream); - } - - /** - * Gets a system function by name. - * - * @param {GetFuncRequest} request - Request to get a function - * @param {string} request.name - Unique function name - * @return {Promise} - * @example - * - * const request = { - * name: "function1" - * }; - * - * funcs.getFunc(request) - * .then(result => { - * console.log(result) // successful response with the function as the body65 - * }).catch(e => console.error(e)); // an error occurred - */ - async getFunc(request: GetFuncRequest): Promise { - return new Promise((resolve, reject) => { - const req = new FuncsPB.GetFuncRequest(); - req.setName(request.name); - super - .getService() - .getFunc(req, super.getMeta(), (e, res: FuncsPB.Func) => { - if (e) return reject(e); - - resolve({ - name: res.getName(), - schedule: res.getSchedule(), - image: res.getImage(), - invocationCount: res.getInvocationCount(), - replicas: res.getReplicas(), - availableReplicas: res.getAvailableReplicas() - }); - }); - }); - } - - /** - * Removes a function by its name. - * - * @param {DeleteFuncRequest} request - Request to delete a function - * @param {string} request.name - Unique function name - * @return {Promise} - * @note This action will remove all function statistics. - * @example - * - * const request = { - * name: "function1" - * }; - * - * funcs.deleteFunc(request) - * .then(result => { - * console.log(result) // returns the name of the function - * }).catch(e => console.error(e)); // an error occurred - */ - async deleteFunc(request: DeleteFuncRequest): Promise { - return new Promise((resolve, reject) => { - const req = new FuncsPB.DeleteFuncRequest(); - req.setName(request.name); - super.getService().deleteFunc(req, super.getMeta(), (e: any) => { - if (e) reject(e); - - resolve({ - name: request.name - }); - }); - }); - } - - /** - * Returns a list of functions owned by the User. - * - * @param {ListFuncsRequest} request - * @param {number} request.pageSize - Number of element per page - * (defaults to 20) - * @param {string} request.pageToken - The next_page_token value returned from - * a previous List request, if any - * @return {Promise} List of Functions - * @example - * - * const request = { - * pageSize: 20, - * pageToken: 2 - * }; - * - * funcs.listFuncs(request) - * .then(() => { - * console.log(result) // returns a ListFuncsResponse object - * }).catch(e => console.error(e)); // an error occurred - */ - async listFuncs(request: ListFuncsRequest): Promise { - return new Promise((resolve, reject) => { - const req = new FuncsPB.ListFuncsRequest(); - req.setPageSize(request.pageSize); - req.setPageToken(request.pageToken); - req.setView(request.view); - super - .getService() - .listFuncs( - req, - super.getMeta(), - (e: any, paginatedList: FuncsPB.ListFuncsResponse) => { - if (e) reject(e); - - resolve({ - nextPageToken: paginatedList.getNextPageToken(), - funcs: paginatedList.getFuncsList().map((f: FuncsPB.Func) => { - return { - name: f.getName(), - image: f.getImage(), - replicas: f.getReplicas(), - invocationCount: f.getInvocationCount(), - availableReplicas: f.getAvailableReplicas(), - schedule: f.getSchedule() - }; - }) - }); - } - ); - }); - } - - /** - * Creates or updates a function in the FaaS subsystem. - * - * @param {GetFuncLogsRequest} request - Request to obtain the logs for a function - * @param {string} request.name - Function name - * @param {string} request.since - Only return logs after a specific date (RFC3339) - * @param {string} request.tail - Sets the maximum number of log messages to return, <=0 means unlimited - * @param {string} request.follow - When true, the request will stream logs until the request timeout - * @return {Promise} - * @example - * - * const Fonoster = require("@fonoster/sdk"); - * const funcs = new Fonoster.Funcs(); - * - * const request = { - * name: "function1", - * tail: 10, - * follow: true, - * since: "2021-05-12T07:20:50.52Z" - * }; - * - * funcs.getFuncLogs(request) - * .then(stream => { - * stream.onMessage(log => console.log(log)) - * stream.onFinish(() => console.log("end")) - * stream.onError(e => console.error(e)) - * }).catch(e => console.error(e)); // an error occurred - */ - async getFuncLogs(request: GetFuncLogsRequest): Promise { - const req = new FuncsPB.GetFuncLogsRequest(); - req.setName(request.name); - req.setSince(request.since); - req.setTail(request.tail); - req.setFollow(request.follow); - const stream = super.getService().getFuncLogs(req, super.getMeta()); - return new LogsStream(stream); - } -} - -export { FuncsPB, CommonPB, buildDeployFuncRequest, IFuncsClient }; - -// WARNING: Workaround to support commonjs clients -module.exports = Funcs; -module.exports.FuncsPB = FuncsPB; -module.exports.CommonPB = CommonPB; -module.exports.buildDeployFuncRequest = buildDeployFuncRequest; diff --git a/mods/funcs/src/client/stream_wrappers.ts b/mods/funcs/src/client/stream_wrappers.ts deleted file mode 100644 index a3a91b5d1..000000000 --- a/mods/funcs/src/client/stream_wrappers.ts +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { FuncsPB } from "./funcs"; - -export class DeployStream { - stream: any; - constructor(stream) { - this.stream = stream; - } - - onMessage(callback) { - this.stream.on("data", (data: FuncsPB.DeployStream) => { - callback({ text: data.getText() }); - }); - } - - onFinish(callback) { - this.stream.on("end", () => { - callback(); - }); - } - - onError(callback) { - this.stream.on("error", (e: Error) => { - callback(e); - }); - } -} - -export class LogsStream { - stream: any; - constructor(stream) { - this.stream = stream; - } - - onMessage(callback) { - this.stream.on("data", (data: FuncsPB.FuncLog) => { - callback({ - name: data.getName(), - instance: data.getInstance(), - timestamp: data.getTimestamp(), - text: data.getText() - }); - }); - } - - onFinish(callback) { - this.stream.on("end", () => { - callback(); - }); - } - - onError(callback) { - this.stream.on("error", (e: Error) => { - callback(e); - }); - } -} diff --git a/mods/funcs/src/client/types.ts b/mods/funcs/src/client/types.ts deleted file mode 100644 index c5a1ef9e1..000000000 --- a/mods/funcs/src/client/types.ts +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import FuncPB from "../service/protos/funcs_pb"; -import { DeployStream, LogsStream } from "./stream_wrappers"; - -export interface IFuncsClient { - deployFunc(request: DeployFuncRequest): Promise; - getFunc(request: GetFuncRequest): Promise; - deleteFunc(request: DeleteFuncRequest): Promise; - listFuncs(request: ListFuncsRequest): Promise; - getFuncLogs(request: GetFuncLogsRequest): Promise; -} - -enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2 -} - -export interface DeployFuncRequest { - name: string; - path: string; - schedule?: string; - limits?: { - memory: undefined | string; - cpu: undefined | string; - }; - requests?: { - memory: undefined | string; - cpu: undefined | string; - }; -} - -export interface GetFuncRequest { - name: string; -} - -export interface GetFuncRequest { - name: string; -} - -export interface GetFuncResponse { - name: string; - image: string; - invocationCount: number; - replicas: number; - availableReplicas: number; - schedule: string; -} - -export interface DeleteFuncRequest { - name: string; -} - -export interface DeleteFuncResponse { - name: string; -} - -export interface Func { - name: string; - image: string; - invocationCount: number; - replicas: number; - availableReplicas: number; - schedule?: string; -} - -export interface ListFuncsRequest { - pageSize: number; - pageToken: string; - view: View; -} - -export interface ListFuncsResponse { - nextPageToken: string; - funcs: Func[]; -} - -export interface FuncParameters { - request: FuncPB.DeployFuncRequest; - accessKeyId: string; -} - -export interface GetFuncLogsRequest { - name: string; - since?: string; - tail?: number; - follow?: boolean; -} diff --git a/mods/funcs/src/protos/funcs.proto b/mods/funcs/src/protos/funcs.proto deleted file mode 100644 index 3fd0380a0..000000000 --- a/mods/funcs/src/protos/funcs.proto +++ /dev/null @@ -1,136 +0,0 @@ -/** - * MIT License - * Copyright (c) 2021 Fonoster Inc - * - * The Funcs proto contains the artificats for function administration - * such as creation and deployment. - */ -syntax = "proto3"; - -package fonoster.funcs.v1beta1; - -option go_package = "github.com/fonoster/fonoster/mods/funcs/fonoster/services/protos/funcs"; - -import "protoc-gen-openapiv2/options/annotations.proto"; -import "google/api/annotations.proto"; -import "common.proto"; - -service Funcs { - // Shows a list of user functions - rpc ListFuncs (ListFuncsRequest) returns (ListFuncsResponse) { - option (google.api.http) = { get: "/v1beta1/funcs" }; - }; - // Gets a function by name - rpc GetFunc (GetFuncRequest) returns (Func) { - option (google.api.http) = { get: "/v1beta1/funcs/{name}" }; - }; - // Orders the functions subsystem to download and deploy a function - rpc DeployFunc (DeployFuncRequest) returns (stream DeployStream) {}; - // Peforms a hard delete of the function - rpc DeleteFunc (DeleteFuncRequest) returns (fonoster.common.v1beta1.Empty) { - option (google.api.http) = { - delete: "/v1beta1/funcs/{name}" - }; - }; - // Gets a stream of logs - rpc GetFuncLogs (GetFuncLogsRequest) returns (stream FuncLog) { - option (google.api.http) = { get: "/v1beta1/funcs/{name}/logs" }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { - responses: { - key: "200" - value: { - description: "Stream of logs" - schema: { - json_schema: { - ref: "FuncLog" - } - } - } - } - }; - }; - // Creates a one time scoped token for access to the registry - rpc CreateRegistryToken (CreateRegistryTokenRequest) returns (CreateRegistryTokenResponse); -} - -message ListFuncsRequest { - // The maximum number of items in the list - int32 page_size = 1; - - // The next_page_token value returned from the previous request, if any - string page_token = 2; - - // Level of detail of the individual entities - fonoster.common.v1beta1.View view = 3; -} - -message ListFuncsResponse { - // List of Functions - repeated Func funcs = 1; - // Token to retrieve the next page of results, or empty if there are no more results in the list - string next_page_token = 2; -} - -message GetFuncLogsRequest { - string name = 1; - // Only return logs after a specific date (RFC3339) - string since = 2; - int32 tail = 3; - bool follow = 4; -} - -message GetFuncRequest { - string name = 1; - // Requested level of detail - fonoster.common.v1beta1.View view = 2; -} - -message DeployFuncRequest { - string name = 1; - string schedule = 2; - Resource limits = 3; - Resource requests = 4; -} - -message DeleteFuncRequest { - string name = 1; -} - -message CreateRegistryTokenRequest { - string func_name = 1; -} - -message CreateRegistryTokenResponse { - string token = 1; - string image = 2; -} - -message Func { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"name\": \"testfunc\", \"image\": \"functions/nodeinfo:latest\", \"invocationCount\": 20, \"replicas\": 1, \"availableReplicas\": 1, \"limit\": { \"memory\": \"128M\", \"cpu\": \"0.01\" }, \"requests\": { \"memory\": \"128M\", \"cpu\": \"0.01\" }}" - }; - string name = 1; - string image = 2; - int32 invocation_count = 3; - int32 replicas = 4; - int32 available_replicas = 5; - Resource limits = 6; - Resource requests = 7; - string schedule = 8; -} - -message Resource { - string memory = 1; - string cpu = 2; -} - -message FuncLog { - string name = 1; - string instance = 2; - string timestamp = 3; - string text = 4; -} - -message DeployStream { - string text = 1; -} diff --git a/mods/funcs/src/service/funcs.ts b/mods/funcs/src/service/funcs.ts deleted file mode 100644 index 9db27495b..000000000 --- a/mods/funcs/src/service/funcs.ts +++ /dev/null @@ -1,356 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import grpc, { ServerWritableStream } from "@grpc/grpc-js"; -import { Empty } from "./protos/common_pb"; -import { IFuncsServer } from "./protos/funcs_grpc_pb"; -import { - CreateRegistryTokenRequest, - CreateRegistryTokenResponse, - DeployFuncRequest, - DeployStream, - DeleteFuncRequest, - Func, - FuncLog, - GetFuncLogsRequest, - GetFuncRequest, - ListFuncsRequest, - ListFuncsResponse -} from "./protos/funcs_pb"; -import { HttpBasicAuth, DefaultApi as FaaS } from "openfaas-client"; -import logger from "@fonoster/logger"; -import { - ErrorCodes, - FonosterError, - FonosterSubsysUnavailable -} from "@fonoster/errors"; -import { getAccessKeyId } from "@fonoster/core"; -import axios from "axios"; -import { - rawFuncToFunc, - getFuncName, - buildFaasDeployParameters, - getImageName, - getBuildDir, - assertValidFuncName, - assertValidSchedule -} from "../utils/utils"; -import buildAndPublishImage from "./registry"; -import btoa from "btoa"; -import request from "request"; -import ndjson from "ndjson"; -import { promisify } from "util"; - -const sleep = promisify(setTimeout); - -// Initializing access info for FaaS -const faas = new FaaS(); -const auth = new HttpBasicAuth(); -auth.username = process.env.FUNCS_USERNAME; -auth.password = process.env.FUNCS_SECRET; -faas.setDefaultAuthentication(auth); -faas.basePath = process.env.FUNCS_URL; - -export class ServerStream { - call: any; - constructor(call) { - this.call = call; - } - - write(message: string) { - const msg = new DeployStream(); - msg.setText(message); - this.call.write(msg); - } -} - -const publish = async ( - call: grpc.ServerUnaryCall, - serverStream: ServerStream -) => { - serverStream.write("finished running predeploy script"); - const accessKeyId = getAccessKeyId(call); - const parameters = await buildFaasDeployParameters({ - request: call.request, - accessKeyId: accessKeyId - }); - - await buildAndPublishImage( - { - registry: process.env.DOCKER_REGISTRY, - image: parameters.image, - pathToFunc: getBuildDir(accessKeyId, call.request.getName()), - username: process.env.DOCKER_REGISTRY_USERNAME, - secret: process.env.DOCKER_REGISTRY_SECRET - }, - serverStream - ); - - logger.verbose("@fonoster/funcs publish [publishing to funcs subsystem]"); - - const attempts = [1, 2, 3]; - let index; - for (index in attempts) { - // Sometime the image is not inmediatly available so we try a few times - logger.verbose( - `@fonoster/funcs publish [publishing to functions subsystem (try #${attempts[index]})` - ); - serverStream.write("wating for image to be ready"); - serverStream.write( - `publishing to functions subsystem (it might take awhile #${attempts[index]})` - ); - await sleep(20000); - try { - // If the function already exist this will fail - logger.verbose("@fonoster/funcs publish [first trying post]"); - await faas.systemFunctionsPost(parameters); - break; - } catch (e) { - logger.verbose("@fonoster/funcs publish [now trying put]"); - try { - await faas.systemFunctionsPut(parameters); - break; - } catch (e) {} - } - } - - return parameters; -}; - -export default class FuncsServer implements IFuncsServer { - [name: string]: grpc.UntypedHandleCall; - // See client-side for comments - async listFuncs( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - if (!call.request.getPageToken()) callback(null, new ListFuncsResponse()); - const accessKeyId = getAccessKeyId(call); - const list = (await faas.systemFunctionsGet()).response.body; - const rawFuncs = list.filter( - (f) => f.envVars.ACCESS_KEY_ID === accessKeyId - ); - - const funcs = rawFuncs.map((f) => rawFuncToFunc(f)); - const response = new ListFuncsResponse(); - response.setFuncsList(funcs); - // No pagination need because the list of function is likely to be short - // response.setNextPageToken() - callback(null, response); - } catch (e) { - logger.error(`@fonoster/funcs list [${e}]`); - } - } - - // See client-side for comments - async getFunc( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const list = (await faas.systemFunctionsGet()).response.body; - const accessKeyId = getAccessKeyId(call); - const rawFunction: Func = list.filter( - (f) => f.name === getFuncName(accessKeyId, call.request.getName()) - )[0]; - - if (!rawFunction) - throw new FonosterError( - `function name "${call.request.getName()}" doesn't exist`, - ErrorCodes.NOT_FOUND - ); - - callback(null, rawFuncToFunc(rawFunction)); - } catch (e) { - logger.error(`@fonoster/funcs get [${e}]`); - callback(e, null); - } - } - - // See client-side for comments - // TODO: Resign with JWT token - async deployFunc( - call: ServerWritableStream - ) { - try { - assertValidFuncName(call.request.getName()); - assertValidSchedule(call.request.getSchedule()); - const serverStream = new ServerStream(call); - serverStream.write("starting deployment"); - await publish(call, serverStream); - serverStream.write("deployment complete"); - serverStream.write("your function will be available shortly"); - call.end(); - } catch (e) { - logger.error(`@fonoster/funcs deploy [${e}]`); - - if (!e.response) { - call.emit("error", new FonosterError(e, ErrorCodes.UNKNOWN)); - return; - } - - if (e.response.statusCode === 400) { - call.emit( - "error", - new FonosterError(e.response.body, ErrorCodes.INVALID_ARGUMENT) - ); - } else if (e.response.statusCode === 401) { - call.emit( - "error", - new FonosterSubsysUnavailable("Functions subsystem unavailable") - ); - } else if (e.response.statusCode === 404) { - call.emit( - "error", - new FonosterError(e.response.body, ErrorCodes.NOT_FOUND) - ); - } - } - } - - // See client-side for comments - async deleteFunc( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - const accessKeyId = getAccessKeyId(call); - const functionName = getFuncName(accessKeyId, call.request.getName()); - try { - await faas.systemFunctionsDelete({ functionName }); - callback(null, new Empty()); - } catch (e) { - logger.error(`@fonoster/funcs delete [${e}]`); - if (e.response.statusCode === 404) { - callback( - new FonosterError( - `Function name "${call.request.getName()}" doesn't exist`, - ErrorCodes.NOT_FOUND - ), - null - ); - } - callback(e, null); - } - } - - // See client-side for comments - // TODO: Resign with JWT token - async getFuncLogs(call: ServerWritableStream) { - try { - const accessKeyId = getAccessKeyId(call); - const functionName = getFuncName(accessKeyId, call.request.getName()); - const stream = request - .get( - `${ - faas.basePath - }/system/logs?name=${functionName}&since=${call.request.getSince()}&tail=${call.request.getTail()}&follow=${call.request.getFollow()}`, - { - auth: { - user: process.env.FUNCS_USERNAME, - pass: process.env.FUNCS_SECRET, - sendImmediately: false - } - } - ) - .on("response", function (res) { - if (res.statusCode === 200) { - stream.pipe(ndjson.parse()).on("data", (data) => { - const entry = new FuncLog(); - entry.setName(data.name); - entry.setTimestamp(data.timestamp); - entry.setInstance(data.instance); - entry.setText(data.text); - call.write(entry); - }); - } - }) - .on("error", (e) => { - logger.error( - `@fonoster/funcs system logs [error while receiving data: ${e}]` - ); - call.end(); - }) - .on("end", () => { - logger.verbose("@fonoster/funcs system logs [done receiving data]"); - call.end(); - }); - } catch (e) { - logger.error(`@fonoster/funcs deploy [${e}]`); - if (e.response.statusCode === 400) { - call.emit( - "error", - new FonosterError(e.response.body, ErrorCodes.INVALID_ARGUMENT) - ); - } else if (e.response.statusCode === 401) { - call.emit( - "error", - new FonosterSubsysUnavailable("Functions subsystem unavailable") - ); - } else if (e.response.statusCode === 404) { - call.emit( - "error", - new FonosterError(e.response.body, ErrorCodes.NOT_FOUND) - ); - } - call.emit("error", new FonosterError(e, ErrorCodes.NOT_FOUND)); - } - } - - /** - * @deprecated - * - * This function creates a single use, scoped token, useful for pushing images - * to a private Docker registry. - */ - async createRegistryToken( - call: grpc.ServerUnaryCall< - CreateRegistryTokenRequest, - CreateRegistryTokenResponse - >, - callback: grpc.sendUnaryData - ) { - try { - if (!call.request.getFuncName()) - throw new FonosterError( - "Missing function name", - ErrorCodes.INVALID_ARGUMENT - ); - const endpoint = process.env.DOCKER_REGISTRY_AUTH_ENDPOINT; - const service = process.env.DOCKER_REGISTRY_SERVICE; - const auth = btoa( - `${process.env.DOCKER_REGISTRY_USERNAME}:${process.env.DOCKER_REGISTRY_SECRET}` - ); - const accessKeyId = getAccessKeyId(call); - const image = getImageName(accessKeyId, call.request.getFuncName()); - const baseURL = `${endpoint}?service=${service}&scope=repository:${image}:push`; - const result = await axios - .create({ - headers: { Authorization: `Basic ${auth}` } - }) - .get(baseURL); - const token = result.data.token; - const res = new CreateRegistryTokenResponse(); - res.setToken(token); - res.setImage(image); - callback(null, res); - } catch (e) { - callback(new FonosterError(e), null); - } - } -} diff --git a/mods/funcs/src/service/healthcheck.ts b/mods/funcs/src/service/healthcheck.ts deleted file mode 100644 index a8988fbb7..000000000 --- a/mods/funcs/src/service/healthcheck.ts +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonos - * - * This file is part of Project Fonos - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -healthcheck(); diff --git a/mods/funcs/src/service/protos/common_grpc_pb.js b/mods/funcs/src/service/protos/common_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/funcs/src/service/protos/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/funcs/src/service/protos/common_pb.d.ts b/mods/funcs/src/service/protos/common_pb.d.ts deleted file mode 100644 index f8b5fb810..000000000 --- a/mods/funcs/src/service/protos/common_pb.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// package: fonoster.common.v1beta1 -// file: common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class Empty extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Empty.AsObject; - static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Empty; - static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; -} - -export namespace Empty { - export type AsObject = { - } -} - -export class ErrorResponse extends jspb.Message { - getStatus(): number; - setStatus(value: number): ErrorResponse; - getMessage(): string; - setMessage(value: string): ErrorResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ErrorResponse.AsObject; - static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ErrorResponse; - static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse; -} - -export namespace ErrorResponse { - export type AsObject = { - status: number, - message: string, - } -} - -export enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2, -} diff --git a/mods/funcs/src/service/protos/common_pb.js b/mods/funcs/src/service/protos/common_pb.js deleted file mode 100644 index b7f99c7ea..000000000 --- a/mods/funcs/src/service/protos/common_pb.js +++ /dev/null @@ -1,335 +0,0 @@ -// source: common.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -goog.exportSymbol('proto.fonoster.common.v1beta1.Empty', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.ErrorResponse', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.View', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.Empty = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.Empty, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.Empty.displayName = 'proto.fonoster.common.v1beta1.Empty'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.ErrorResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.ErrorResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.ErrorResponse.displayName = 'proto.fonoster.common.v1beta1.ErrorResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.Empty.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.Empty.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.Empty} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.Empty; - return proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.Empty} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.Empty.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.Empty} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.ErrorResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.toObject = function(includeInstance, msg) { - var f, obj = { - status: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.ErrorResponse; - return proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setStatus(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getStatus(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional int32 status = 1; - * @return {number} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getStatus = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setStatus = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * @enum {number} - */ -proto.fonoster.common.v1beta1.View = { - BASIC: 0, - STANDARD: 1, - FULL: 2 -}; - -goog.object.extend(exports, proto.fonoster.common.v1beta1); diff --git a/mods/funcs/src/service/protos/funcs_grpc_pb.d.ts b/mods/funcs/src/service/protos/funcs_grpc_pb.d.ts deleted file mode 100644 index 9b194a768..000000000 --- a/mods/funcs/src/service/protos/funcs_grpc_pb.d.ts +++ /dev/null @@ -1,125 +0,0 @@ -// package: fonoster.funcs.v1beta1 -// file: funcs.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import {handleClientStreamingCall} from "@grpc/grpc-js/build/src/server-call"; -import * as funcs_pb from "./funcs_pb"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as common_pb from "./common_pb"; - -interface IFuncsService extends grpc.ServiceDefinition { - listFuncs: IFuncsService_IListFuncs; - getFunc: IFuncsService_IGetFunc; - deployFunc: IFuncsService_IDeployFunc; - deleteFunc: IFuncsService_IDeleteFunc; - getFuncLogs: IFuncsService_IGetFuncLogs; - createRegistryToken: IFuncsService_ICreateRegistryToken; -} - -interface IFuncsService_IListFuncs extends grpc.MethodDefinition { - path: "/fonoster.funcs.v1beta1.Funcs/ListFuncs"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IFuncsService_IGetFunc extends grpc.MethodDefinition { - path: "/fonoster.funcs.v1beta1.Funcs/GetFunc"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IFuncsService_IDeployFunc extends grpc.MethodDefinition { - path: "/fonoster.funcs.v1beta1.Funcs/DeployFunc"; - requestStream: false; - responseStream: true; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IFuncsService_IDeleteFunc extends grpc.MethodDefinition { - path: "/fonoster.funcs.v1beta1.Funcs/DeleteFunc"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IFuncsService_IGetFuncLogs extends grpc.MethodDefinition { - path: "/fonoster.funcs.v1beta1.Funcs/GetFuncLogs"; - requestStream: false; - responseStream: true; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IFuncsService_ICreateRegistryToken extends grpc.MethodDefinition { - path: "/fonoster.funcs.v1beta1.Funcs/CreateRegistryToken"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const FuncsService: IFuncsService; - -export interface IFuncsServer extends grpc.UntypedServiceImplementation { - listFuncs: grpc.handleUnaryCall; - getFunc: grpc.handleUnaryCall; - deployFunc: grpc.handleServerStreamingCall; - deleteFunc: grpc.handleUnaryCall; - getFuncLogs: grpc.handleServerStreamingCall; - createRegistryToken: grpc.handleUnaryCall; -} - -export interface IFuncsClient { - listFuncs(request: funcs_pb.ListFuncsRequest, callback: (error: grpc.ServiceError | null, response: funcs_pb.ListFuncsResponse) => void): grpc.ClientUnaryCall; - listFuncs(request: funcs_pb.ListFuncsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: funcs_pb.ListFuncsResponse) => void): grpc.ClientUnaryCall; - listFuncs(request: funcs_pb.ListFuncsRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: funcs_pb.ListFuncsResponse) => void): grpc.ClientUnaryCall; - getFunc(request: funcs_pb.GetFuncRequest, callback: (error: grpc.ServiceError | null, response: funcs_pb.Func) => void): grpc.ClientUnaryCall; - getFunc(request: funcs_pb.GetFuncRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: funcs_pb.Func) => void): grpc.ClientUnaryCall; - getFunc(request: funcs_pb.GetFuncRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: funcs_pb.Func) => void): grpc.ClientUnaryCall; - deployFunc(request: funcs_pb.DeployFuncRequest, options?: Partial): grpc.ClientReadableStream; - deployFunc(request: funcs_pb.DeployFuncRequest, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - deleteFunc(request: funcs_pb.DeleteFuncRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteFunc(request: funcs_pb.DeleteFuncRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteFunc(request: funcs_pb.DeleteFuncRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - getFuncLogs(request: funcs_pb.GetFuncLogsRequest, options?: Partial): grpc.ClientReadableStream; - getFuncLogs(request: funcs_pb.GetFuncLogsRequest, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - createRegistryToken(request: funcs_pb.CreateRegistryTokenRequest, callback: (error: grpc.ServiceError | null, response: funcs_pb.CreateRegistryTokenResponse) => void): grpc.ClientUnaryCall; - createRegistryToken(request: funcs_pb.CreateRegistryTokenRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: funcs_pb.CreateRegistryTokenResponse) => void): grpc.ClientUnaryCall; - createRegistryToken(request: funcs_pb.CreateRegistryTokenRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: funcs_pb.CreateRegistryTokenResponse) => void): grpc.ClientUnaryCall; -} - -export class FuncsClient extends grpc.Client implements IFuncsClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public listFuncs(request: funcs_pb.ListFuncsRequest, callback: (error: grpc.ServiceError | null, response: funcs_pb.ListFuncsResponse) => void): grpc.ClientUnaryCall; - public listFuncs(request: funcs_pb.ListFuncsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: funcs_pb.ListFuncsResponse) => void): grpc.ClientUnaryCall; - public listFuncs(request: funcs_pb.ListFuncsRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: funcs_pb.ListFuncsResponse) => void): grpc.ClientUnaryCall; - public getFunc(request: funcs_pb.GetFuncRequest, callback: (error: grpc.ServiceError | null, response: funcs_pb.Func) => void): grpc.ClientUnaryCall; - public getFunc(request: funcs_pb.GetFuncRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: funcs_pb.Func) => void): grpc.ClientUnaryCall; - public getFunc(request: funcs_pb.GetFuncRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: funcs_pb.Func) => void): grpc.ClientUnaryCall; - public deployFunc(request: funcs_pb.DeployFuncRequest, options?: Partial): grpc.ClientReadableStream; - public deployFunc(request: funcs_pb.DeployFuncRequest, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public deleteFunc(request: funcs_pb.DeleteFuncRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteFunc(request: funcs_pb.DeleteFuncRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteFunc(request: funcs_pb.DeleteFuncRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public getFuncLogs(request: funcs_pb.GetFuncLogsRequest, options?: Partial): grpc.ClientReadableStream; - public getFuncLogs(request: funcs_pb.GetFuncLogsRequest, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; - public createRegistryToken(request: funcs_pb.CreateRegistryTokenRequest, callback: (error: grpc.ServiceError | null, response: funcs_pb.CreateRegistryTokenResponse) => void): grpc.ClientUnaryCall; - public createRegistryToken(request: funcs_pb.CreateRegistryTokenRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: funcs_pb.CreateRegistryTokenResponse) => void): grpc.ClientUnaryCall; - public createRegistryToken(request: funcs_pb.CreateRegistryTokenRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: funcs_pb.CreateRegistryTokenResponse) => void): grpc.ClientUnaryCall; -} diff --git a/mods/funcs/src/service/protos/funcs_grpc_pb.js b/mods/funcs/src/service/protos/funcs_grpc_pb.js deleted file mode 100644 index 595b64f34..000000000 --- a/mods/funcs/src/service/protos/funcs_grpc_pb.js +++ /dev/null @@ -1,225 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// * -// MIT License -// Copyright (c) 2021 Fonoster Inc -// -// The Funcs proto contains the artificats for function administration -// such as creation and deployment. -'use strict'; -var grpc = require('@grpc/grpc-js'); -var funcs_pb = require('./funcs_pb.js'); -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -var common_pb = require('./common_pb.js'); - -function serialize_fonoster_common_v1beta1_Empty(arg) { - if (!(arg instanceof common_pb.Empty)) { - throw new Error('Expected argument of type fonoster.common.v1beta1.Empty'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_common_v1beta1_Empty(buffer_arg) { - return common_pb.Empty.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_funcs_v1beta1_CreateRegistryTokenRequest(arg) { - if (!(arg instanceof funcs_pb.CreateRegistryTokenRequest)) { - throw new Error('Expected argument of type fonoster.funcs.v1beta1.CreateRegistryTokenRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_funcs_v1beta1_CreateRegistryTokenRequest(buffer_arg) { - return funcs_pb.CreateRegistryTokenRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_funcs_v1beta1_CreateRegistryTokenResponse(arg) { - if (!(arg instanceof funcs_pb.CreateRegistryTokenResponse)) { - throw new Error('Expected argument of type fonoster.funcs.v1beta1.CreateRegistryTokenResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_funcs_v1beta1_CreateRegistryTokenResponse(buffer_arg) { - return funcs_pb.CreateRegistryTokenResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_funcs_v1beta1_DeleteFuncRequest(arg) { - if (!(arg instanceof funcs_pb.DeleteFuncRequest)) { - throw new Error('Expected argument of type fonoster.funcs.v1beta1.DeleteFuncRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_funcs_v1beta1_DeleteFuncRequest(buffer_arg) { - return funcs_pb.DeleteFuncRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_funcs_v1beta1_DeployFuncRequest(arg) { - if (!(arg instanceof funcs_pb.DeployFuncRequest)) { - throw new Error('Expected argument of type fonoster.funcs.v1beta1.DeployFuncRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_funcs_v1beta1_DeployFuncRequest(buffer_arg) { - return funcs_pb.DeployFuncRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_funcs_v1beta1_DeployStream(arg) { - if (!(arg instanceof funcs_pb.DeployStream)) { - throw new Error('Expected argument of type fonoster.funcs.v1beta1.DeployStream'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_funcs_v1beta1_DeployStream(buffer_arg) { - return funcs_pb.DeployStream.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_funcs_v1beta1_Func(arg) { - if (!(arg instanceof funcs_pb.Func)) { - throw new Error('Expected argument of type fonoster.funcs.v1beta1.Func'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_funcs_v1beta1_Func(buffer_arg) { - return funcs_pb.Func.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_funcs_v1beta1_FuncLog(arg) { - if (!(arg instanceof funcs_pb.FuncLog)) { - throw new Error('Expected argument of type fonoster.funcs.v1beta1.FuncLog'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_funcs_v1beta1_FuncLog(buffer_arg) { - return funcs_pb.FuncLog.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_funcs_v1beta1_GetFuncLogsRequest(arg) { - if (!(arg instanceof funcs_pb.GetFuncLogsRequest)) { - throw new Error('Expected argument of type fonoster.funcs.v1beta1.GetFuncLogsRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_funcs_v1beta1_GetFuncLogsRequest(buffer_arg) { - return funcs_pb.GetFuncLogsRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_funcs_v1beta1_GetFuncRequest(arg) { - if (!(arg instanceof funcs_pb.GetFuncRequest)) { - throw new Error('Expected argument of type fonoster.funcs.v1beta1.GetFuncRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_funcs_v1beta1_GetFuncRequest(buffer_arg) { - return funcs_pb.GetFuncRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_funcs_v1beta1_ListFuncsRequest(arg) { - if (!(arg instanceof funcs_pb.ListFuncsRequest)) { - throw new Error('Expected argument of type fonoster.funcs.v1beta1.ListFuncsRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_funcs_v1beta1_ListFuncsRequest(buffer_arg) { - return funcs_pb.ListFuncsRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_funcs_v1beta1_ListFuncsResponse(arg) { - if (!(arg instanceof funcs_pb.ListFuncsResponse)) { - throw new Error('Expected argument of type fonoster.funcs.v1beta1.ListFuncsResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_funcs_v1beta1_ListFuncsResponse(buffer_arg) { - return funcs_pb.ListFuncsResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var FuncsService = exports.FuncsService = { - // Shows a list of user functions -listFuncs: { - path: '/fonoster.funcs.v1beta1.Funcs/ListFuncs', - requestStream: false, - responseStream: false, - requestType: funcs_pb.ListFuncsRequest, - responseType: funcs_pb.ListFuncsResponse, - requestSerialize: serialize_fonoster_funcs_v1beta1_ListFuncsRequest, - requestDeserialize: deserialize_fonoster_funcs_v1beta1_ListFuncsRequest, - responseSerialize: serialize_fonoster_funcs_v1beta1_ListFuncsResponse, - responseDeserialize: deserialize_fonoster_funcs_v1beta1_ListFuncsResponse, - }, - // Gets a function by name -getFunc: { - path: '/fonoster.funcs.v1beta1.Funcs/GetFunc', - requestStream: false, - responseStream: false, - requestType: funcs_pb.GetFuncRequest, - responseType: funcs_pb.Func, - requestSerialize: serialize_fonoster_funcs_v1beta1_GetFuncRequest, - requestDeserialize: deserialize_fonoster_funcs_v1beta1_GetFuncRequest, - responseSerialize: serialize_fonoster_funcs_v1beta1_Func, - responseDeserialize: deserialize_fonoster_funcs_v1beta1_Func, - }, - // Orders the functions subsystem to download and deploy a function -deployFunc: { - path: '/fonoster.funcs.v1beta1.Funcs/DeployFunc', - requestStream: false, - responseStream: true, - requestType: funcs_pb.DeployFuncRequest, - responseType: funcs_pb.DeployStream, - requestSerialize: serialize_fonoster_funcs_v1beta1_DeployFuncRequest, - requestDeserialize: deserialize_fonoster_funcs_v1beta1_DeployFuncRequest, - responseSerialize: serialize_fonoster_funcs_v1beta1_DeployStream, - responseDeserialize: deserialize_fonoster_funcs_v1beta1_DeployStream, - }, - // Peforms a hard delete of the function -deleteFunc: { - path: '/fonoster.funcs.v1beta1.Funcs/DeleteFunc', - requestStream: false, - responseStream: false, - requestType: funcs_pb.DeleteFuncRequest, - responseType: common_pb.Empty, - requestSerialize: serialize_fonoster_funcs_v1beta1_DeleteFuncRequest, - requestDeserialize: deserialize_fonoster_funcs_v1beta1_DeleteFuncRequest, - responseSerialize: serialize_fonoster_common_v1beta1_Empty, - responseDeserialize: deserialize_fonoster_common_v1beta1_Empty, - }, - // Gets a stream of logs -getFuncLogs: { - path: '/fonoster.funcs.v1beta1.Funcs/GetFuncLogs', - requestStream: false, - responseStream: true, - requestType: funcs_pb.GetFuncLogsRequest, - responseType: funcs_pb.FuncLog, - requestSerialize: serialize_fonoster_funcs_v1beta1_GetFuncLogsRequest, - requestDeserialize: deserialize_fonoster_funcs_v1beta1_GetFuncLogsRequest, - responseSerialize: serialize_fonoster_funcs_v1beta1_FuncLog, - responseDeserialize: deserialize_fonoster_funcs_v1beta1_FuncLog, - }, - // Creates a one time scoped token for access to the registry -createRegistryToken: { - path: '/fonoster.funcs.v1beta1.Funcs/CreateRegistryToken', - requestStream: false, - responseStream: false, - requestType: funcs_pb.CreateRegistryTokenRequest, - responseType: funcs_pb.CreateRegistryTokenResponse, - requestSerialize: serialize_fonoster_funcs_v1beta1_CreateRegistryTokenRequest, - requestDeserialize: deserialize_fonoster_funcs_v1beta1_CreateRegistryTokenRequest, - responseSerialize: serialize_fonoster_funcs_v1beta1_CreateRegistryTokenResponse, - responseDeserialize: deserialize_fonoster_funcs_v1beta1_CreateRegistryTokenResponse, - }, -}; - -exports.FuncsClient = grpc.makeGenericClientConstructor(FuncsService); diff --git a/mods/funcs/src/service/protos/funcs_pb.d.ts b/mods/funcs/src/service/protos/funcs_pb.d.ts deleted file mode 100644 index 24bb92d97..000000000 --- a/mods/funcs/src/service/protos/funcs_pb.d.ts +++ /dev/null @@ -1,329 +0,0 @@ -// package: fonoster.funcs.v1beta1 -// file: funcs.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as common_pb from "./common_pb"; - -export class ListFuncsRequest extends jspb.Message { - getPageSize(): number; - setPageSize(value: number): ListFuncsRequest; - getPageToken(): string; - setPageToken(value: string): ListFuncsRequest; - getView(): common_pb.View; - setView(value: common_pb.View): ListFuncsRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListFuncsRequest.AsObject; - static toObject(includeInstance: boolean, msg: ListFuncsRequest): ListFuncsRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListFuncsRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListFuncsRequest; - static deserializeBinaryFromReader(message: ListFuncsRequest, reader: jspb.BinaryReader): ListFuncsRequest; -} - -export namespace ListFuncsRequest { - export type AsObject = { - pageSize: number, - pageToken: string, - view: common_pb.View, - } -} - -export class ListFuncsResponse extends jspb.Message { - clearFuncsList(): void; - getFuncsList(): Array; - setFuncsList(value: Array): ListFuncsResponse; - addFuncs(value?: Func, index?: number): Func; - getNextPageToken(): string; - setNextPageToken(value: string): ListFuncsResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListFuncsResponse.AsObject; - static toObject(includeInstance: boolean, msg: ListFuncsResponse): ListFuncsResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListFuncsResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListFuncsResponse; - static deserializeBinaryFromReader(message: ListFuncsResponse, reader: jspb.BinaryReader): ListFuncsResponse; -} - -export namespace ListFuncsResponse { - export type AsObject = { - funcsList: Array, - nextPageToken: string, - } -} - -export class GetFuncLogsRequest extends jspb.Message { - getName(): string; - setName(value: string): GetFuncLogsRequest; - getSince(): string; - setSince(value: string): GetFuncLogsRequest; - getTail(): number; - setTail(value: number): GetFuncLogsRequest; - getFollow(): boolean; - setFollow(value: boolean): GetFuncLogsRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetFuncLogsRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetFuncLogsRequest): GetFuncLogsRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetFuncLogsRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetFuncLogsRequest; - static deserializeBinaryFromReader(message: GetFuncLogsRequest, reader: jspb.BinaryReader): GetFuncLogsRequest; -} - -export namespace GetFuncLogsRequest { - export type AsObject = { - name: string, - since: string, - tail: number, - follow: boolean, - } -} - -export class GetFuncRequest extends jspb.Message { - getName(): string; - setName(value: string): GetFuncRequest; - getView(): common_pb.View; - setView(value: common_pb.View): GetFuncRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetFuncRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetFuncRequest): GetFuncRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetFuncRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetFuncRequest; - static deserializeBinaryFromReader(message: GetFuncRequest, reader: jspb.BinaryReader): GetFuncRequest; -} - -export namespace GetFuncRequest { - export type AsObject = { - name: string, - view: common_pb.View, - } -} - -export class DeployFuncRequest extends jspb.Message { - getName(): string; - setName(value: string): DeployFuncRequest; - getSchedule(): string; - setSchedule(value: string): DeployFuncRequest; - - hasLimits(): boolean; - clearLimits(): void; - getLimits(): Resource | undefined; - setLimits(value?: Resource): DeployFuncRequest; - - hasRequests(): boolean; - clearRequests(): void; - getRequests(): Resource | undefined; - setRequests(value?: Resource): DeployFuncRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DeployFuncRequest.AsObject; - static toObject(includeInstance: boolean, msg: DeployFuncRequest): DeployFuncRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DeployFuncRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DeployFuncRequest; - static deserializeBinaryFromReader(message: DeployFuncRequest, reader: jspb.BinaryReader): DeployFuncRequest; -} - -export namespace DeployFuncRequest { - export type AsObject = { - name: string, - schedule: string, - limits?: Resource.AsObject, - requests?: Resource.AsObject, - } -} - -export class DeleteFuncRequest extends jspb.Message { - getName(): string; - setName(value: string): DeleteFuncRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DeleteFuncRequest.AsObject; - static toObject(includeInstance: boolean, msg: DeleteFuncRequest): DeleteFuncRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DeleteFuncRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DeleteFuncRequest; - static deserializeBinaryFromReader(message: DeleteFuncRequest, reader: jspb.BinaryReader): DeleteFuncRequest; -} - -export namespace DeleteFuncRequest { - export type AsObject = { - name: string, - } -} - -export class CreateRegistryTokenRequest extends jspb.Message { - getFuncName(): string; - setFuncName(value: string): CreateRegistryTokenRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateRegistryTokenRequest.AsObject; - static toObject(includeInstance: boolean, msg: CreateRegistryTokenRequest): CreateRegistryTokenRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateRegistryTokenRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateRegistryTokenRequest; - static deserializeBinaryFromReader(message: CreateRegistryTokenRequest, reader: jspb.BinaryReader): CreateRegistryTokenRequest; -} - -export namespace CreateRegistryTokenRequest { - export type AsObject = { - funcName: string, - } -} - -export class CreateRegistryTokenResponse extends jspb.Message { - getToken(): string; - setToken(value: string): CreateRegistryTokenResponse; - getImage(): string; - setImage(value: string): CreateRegistryTokenResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateRegistryTokenResponse.AsObject; - static toObject(includeInstance: boolean, msg: CreateRegistryTokenResponse): CreateRegistryTokenResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateRegistryTokenResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateRegistryTokenResponse; - static deserializeBinaryFromReader(message: CreateRegistryTokenResponse, reader: jspb.BinaryReader): CreateRegistryTokenResponse; -} - -export namespace CreateRegistryTokenResponse { - export type AsObject = { - token: string, - image: string, - } -} - -export class Func extends jspb.Message { - getName(): string; - setName(value: string): Func; - getImage(): string; - setImage(value: string): Func; - getInvocationCount(): number; - setInvocationCount(value: number): Func; - getReplicas(): number; - setReplicas(value: number): Func; - getAvailableReplicas(): number; - setAvailableReplicas(value: number): Func; - - hasLimits(): boolean; - clearLimits(): void; - getLimits(): Resource | undefined; - setLimits(value?: Resource): Func; - - hasRequests(): boolean; - clearRequests(): void; - getRequests(): Resource | undefined; - setRequests(value?: Resource): Func; - getSchedule(): string; - setSchedule(value: string): Func; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Func.AsObject; - static toObject(includeInstance: boolean, msg: Func): Func.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Func, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Func; - static deserializeBinaryFromReader(message: Func, reader: jspb.BinaryReader): Func; -} - -export namespace Func { - export type AsObject = { - name: string, - image: string, - invocationCount: number, - replicas: number, - availableReplicas: number, - limits?: Resource.AsObject, - requests?: Resource.AsObject, - schedule: string, - } -} - -export class Resource extends jspb.Message { - getMemory(): string; - setMemory(value: string): Resource; - getCpu(): string; - setCpu(value: string): Resource; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Resource.AsObject; - static toObject(includeInstance: boolean, msg: Resource): Resource.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Resource, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Resource; - static deserializeBinaryFromReader(message: Resource, reader: jspb.BinaryReader): Resource; -} - -export namespace Resource { - export type AsObject = { - memory: string, - cpu: string, - } -} - -export class FuncLog extends jspb.Message { - getName(): string; - setName(value: string): FuncLog; - getInstance(): string; - setInstance(value: string): FuncLog; - getTimestamp(): string; - setTimestamp(value: string): FuncLog; - getText(): string; - setText(value: string): FuncLog; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): FuncLog.AsObject; - static toObject(includeInstance: boolean, msg: FuncLog): FuncLog.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: FuncLog, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): FuncLog; - static deserializeBinaryFromReader(message: FuncLog, reader: jspb.BinaryReader): FuncLog; -} - -export namespace FuncLog { - export type AsObject = { - name: string, - instance: string, - timestamp: string, - text: string, - } -} - -export class DeployStream extends jspb.Message { - getText(): string; - setText(value: string): DeployStream; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DeployStream.AsObject; - static toObject(includeInstance: boolean, msg: DeployStream): DeployStream.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DeployStream, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DeployStream; - static deserializeBinaryFromReader(message: DeployStream, reader: jspb.BinaryReader): DeployStream; -} - -export namespace DeployStream { - export type AsObject = { - text: string, - } -} diff --git a/mods/funcs/src/service/protos/funcs_pb.js b/mods/funcs/src/service/protos/funcs_pb.js deleted file mode 100644 index 0ebaa1bed..000000000 --- a/mods/funcs/src/service/protos/funcs_pb.js +++ /dev/null @@ -1,2622 +0,0 @@ -// source: funcs.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -goog.object.extend(proto, google_api_annotations_pb); -var common_pb = require('./common_pb.js'); -goog.object.extend(proto, common_pb); -goog.exportSymbol('proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest', null, global); -goog.exportSymbol('proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse', null, global); -goog.exportSymbol('proto.fonoster.funcs.v1beta1.DeleteFuncRequest', null, global); -goog.exportSymbol('proto.fonoster.funcs.v1beta1.DeployFuncRequest', null, global); -goog.exportSymbol('proto.fonoster.funcs.v1beta1.DeployStream', null, global); -goog.exportSymbol('proto.fonoster.funcs.v1beta1.Func', null, global); -goog.exportSymbol('proto.fonoster.funcs.v1beta1.FuncLog', null, global); -goog.exportSymbol('proto.fonoster.funcs.v1beta1.GetFuncLogsRequest', null, global); -goog.exportSymbol('proto.fonoster.funcs.v1beta1.GetFuncRequest', null, global); -goog.exportSymbol('proto.fonoster.funcs.v1beta1.ListFuncsRequest', null, global); -goog.exportSymbol('proto.fonoster.funcs.v1beta1.ListFuncsResponse', null, global); -goog.exportSymbol('proto.fonoster.funcs.v1beta1.Resource', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.funcs.v1beta1.ListFuncsRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.funcs.v1beta1.ListFuncsRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.funcs.v1beta1.ListFuncsRequest.displayName = 'proto.fonoster.funcs.v1beta1.ListFuncsRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.funcs.v1beta1.ListFuncsResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.funcs.v1beta1.ListFuncsResponse.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.funcs.v1beta1.ListFuncsResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.funcs.v1beta1.ListFuncsResponse.displayName = 'proto.fonoster.funcs.v1beta1.ListFuncsResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.funcs.v1beta1.GetFuncLogsRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.displayName = 'proto.fonoster.funcs.v1beta1.GetFuncLogsRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.funcs.v1beta1.GetFuncRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.funcs.v1beta1.GetFuncRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.funcs.v1beta1.GetFuncRequest.displayName = 'proto.fonoster.funcs.v1beta1.GetFuncRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.funcs.v1beta1.DeployFuncRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.funcs.v1beta1.DeployFuncRequest.displayName = 'proto.fonoster.funcs.v1beta1.DeployFuncRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.funcs.v1beta1.DeleteFuncRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.funcs.v1beta1.DeleteFuncRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.funcs.v1beta1.DeleteFuncRequest.displayName = 'proto.fonoster.funcs.v1beta1.DeleteFuncRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest.displayName = 'proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.displayName = 'proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.funcs.v1beta1.Func = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.funcs.v1beta1.Func, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.funcs.v1beta1.Func.displayName = 'proto.fonoster.funcs.v1beta1.Func'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.funcs.v1beta1.Resource = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.funcs.v1beta1.Resource, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.funcs.v1beta1.Resource.displayName = 'proto.fonoster.funcs.v1beta1.Resource'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.funcs.v1beta1.FuncLog = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.funcs.v1beta1.FuncLog, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.funcs.v1beta1.FuncLog.displayName = 'proto.fonoster.funcs.v1beta1.FuncLog'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.funcs.v1beta1.DeployStream = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.funcs.v1beta1.DeployStream, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.funcs.v1beta1.DeployStream.displayName = 'proto.fonoster.funcs.v1beta1.DeployStream'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.funcs.v1beta1.ListFuncsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.funcs.v1beta1.ListFuncsRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.funcs.v1beta1.ListFuncsRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.ListFuncsRequest.toObject = function(includeInstance, msg) { - var f, obj = { - pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), - pageToken: jspb.Message.getFieldWithDefault(msg, 2, ""), - view: jspb.Message.getFieldWithDefault(msg, 3, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.funcs.v1beta1.ListFuncsRequest} - */ -proto.fonoster.funcs.v1beta1.ListFuncsRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.funcs.v1beta1.ListFuncsRequest; - return proto.fonoster.funcs.v1beta1.ListFuncsRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.funcs.v1beta1.ListFuncsRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.funcs.v1beta1.ListFuncsRequest} - */ -proto.fonoster.funcs.v1beta1.ListFuncsRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setPageSize(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPageToken(value); - break; - case 3: - var value = /** @type {!proto.fonoster.common.v1beta1.View} */ (reader.readEnum()); - msg.setView(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.funcs.v1beta1.ListFuncsRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.funcs.v1beta1.ListFuncsRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.funcs.v1beta1.ListFuncsRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.ListFuncsRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getPageSize(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getView(); - if (f !== 0.0) { - writer.writeEnum( - 3, - f - ); - } -}; - - -/** - * optional int32 page_size = 1; - * @return {number} - */ -proto.fonoster.funcs.v1beta1.ListFuncsRequest.prototype.getPageSize = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.funcs.v1beta1.ListFuncsRequest} returns this - */ -proto.fonoster.funcs.v1beta1.ListFuncsRequest.prototype.setPageSize = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string page_token = 2; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.ListFuncsRequest.prototype.getPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.ListFuncsRequest} returns this - */ -proto.fonoster.funcs.v1beta1.ListFuncsRequest.prototype.setPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional fonoster.common.v1beta1.View view = 3; - * @return {!proto.fonoster.common.v1beta1.View} - */ -proto.fonoster.funcs.v1beta1.ListFuncsRequest.prototype.getView = function() { - return /** @type {!proto.fonoster.common.v1beta1.View} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {!proto.fonoster.common.v1beta1.View} value - * @return {!proto.fonoster.funcs.v1beta1.ListFuncsRequest} returns this - */ -proto.fonoster.funcs.v1beta1.ListFuncsRequest.prototype.setView = function(value) { - return jspb.Message.setProto3EnumField(this, 3, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.funcs.v1beta1.ListFuncsResponse.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.funcs.v1beta1.ListFuncsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.funcs.v1beta1.ListFuncsResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.funcs.v1beta1.ListFuncsResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.ListFuncsResponse.toObject = function(includeInstance, msg) { - var f, obj = { - funcsList: jspb.Message.toObjectList(msg.getFuncsList(), - proto.fonoster.funcs.v1beta1.Func.toObject, includeInstance), - nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.funcs.v1beta1.ListFuncsResponse} - */ -proto.fonoster.funcs.v1beta1.ListFuncsResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.funcs.v1beta1.ListFuncsResponse; - return proto.fonoster.funcs.v1beta1.ListFuncsResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.funcs.v1beta1.ListFuncsResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.funcs.v1beta1.ListFuncsResponse} - */ -proto.fonoster.funcs.v1beta1.ListFuncsResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.fonoster.funcs.v1beta1.Func; - reader.readMessage(value,proto.fonoster.funcs.v1beta1.Func.deserializeBinaryFromReader); - msg.addFuncs(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setNextPageToken(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.funcs.v1beta1.ListFuncsResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.funcs.v1beta1.ListFuncsResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.funcs.v1beta1.ListFuncsResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.ListFuncsResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getFuncsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.fonoster.funcs.v1beta1.Func.serializeBinaryToWriter - ); - } - f = message.getNextPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * repeated Func funcs = 1; - * @return {!Array} - */ -proto.fonoster.funcs.v1beta1.ListFuncsResponse.prototype.getFuncsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.fonoster.funcs.v1beta1.Func, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.funcs.v1beta1.ListFuncsResponse} returns this -*/ -proto.fonoster.funcs.v1beta1.ListFuncsResponse.prototype.setFuncsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.fonoster.funcs.v1beta1.Func=} opt_value - * @param {number=} opt_index - * @return {!proto.fonoster.funcs.v1beta1.Func} - */ -proto.fonoster.funcs.v1beta1.ListFuncsResponse.prototype.addFuncs = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.funcs.v1beta1.Func, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.funcs.v1beta1.ListFuncsResponse} returns this - */ -proto.fonoster.funcs.v1beta1.ListFuncsResponse.prototype.clearFuncsList = function() { - return this.setFuncsList([]); -}; - - -/** - * optional string next_page_token = 2; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.ListFuncsResponse.prototype.getNextPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.ListFuncsResponse} returns this - */ -proto.fonoster.funcs.v1beta1.ListFuncsResponse.prototype.setNextPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.funcs.v1beta1.GetFuncLogsRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - since: jspb.Message.getFieldWithDefault(msg, 2, ""), - tail: jspb.Message.getFieldWithDefault(msg, 3, 0), - follow: jspb.Message.getBooleanFieldWithDefault(msg, 4, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.funcs.v1beta1.GetFuncLogsRequest} - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.funcs.v1beta1.GetFuncLogsRequest; - return proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.funcs.v1beta1.GetFuncLogsRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.funcs.v1beta1.GetFuncLogsRequest} - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSince(value); - break; - case 3: - var value = /** @type {number} */ (reader.readInt32()); - msg.setTail(value); - break; - case 4: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFollow(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.funcs.v1beta1.GetFuncLogsRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSince(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTail(); - if (f !== 0) { - writer.writeInt32( - 3, - f - ); - } - f = message.getFollow(); - if (f) { - writer.writeBool( - 4, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.GetFuncLogsRequest} returns this - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string since = 2; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.prototype.getSince = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.GetFuncLogsRequest} returns this - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.prototype.setSince = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional int32 tail = 3; - * @return {number} - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.prototype.getTail = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.funcs.v1beta1.GetFuncLogsRequest} returns this - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.prototype.setTail = function(value) { - return jspb.Message.setProto3IntField(this, 3, value); -}; - - -/** - * optional bool follow = 4; - * @return {boolean} - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.prototype.getFollow = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.fonoster.funcs.v1beta1.GetFuncLogsRequest} returns this - */ -proto.fonoster.funcs.v1beta1.GetFuncLogsRequest.prototype.setFollow = function(value) { - return jspb.Message.setProto3BooleanField(this, 4, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.funcs.v1beta1.GetFuncRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.funcs.v1beta1.GetFuncRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.funcs.v1beta1.GetFuncRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.GetFuncRequest.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - view: jspb.Message.getFieldWithDefault(msg, 2, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.funcs.v1beta1.GetFuncRequest} - */ -proto.fonoster.funcs.v1beta1.GetFuncRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.funcs.v1beta1.GetFuncRequest; - return proto.fonoster.funcs.v1beta1.GetFuncRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.funcs.v1beta1.GetFuncRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.funcs.v1beta1.GetFuncRequest} - */ -proto.fonoster.funcs.v1beta1.GetFuncRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {!proto.fonoster.common.v1beta1.View} */ (reader.readEnum()); - msg.setView(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.funcs.v1beta1.GetFuncRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.funcs.v1beta1.GetFuncRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.funcs.v1beta1.GetFuncRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.GetFuncRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getView(); - if (f !== 0.0) { - writer.writeEnum( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.GetFuncRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.GetFuncRequest} returns this - */ -proto.fonoster.funcs.v1beta1.GetFuncRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional fonoster.common.v1beta1.View view = 2; - * @return {!proto.fonoster.common.v1beta1.View} - */ -proto.fonoster.funcs.v1beta1.GetFuncRequest.prototype.getView = function() { - return /** @type {!proto.fonoster.common.v1beta1.View} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** - * @param {!proto.fonoster.common.v1beta1.View} value - * @return {!proto.fonoster.funcs.v1beta1.GetFuncRequest} returns this - */ -proto.fonoster.funcs.v1beta1.GetFuncRequest.prototype.setView = function(value) { - return jspb.Message.setProto3EnumField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.funcs.v1beta1.DeployFuncRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.funcs.v1beta1.DeployFuncRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - schedule: jspb.Message.getFieldWithDefault(msg, 2, ""), - limits: (f = msg.getLimits()) && proto.fonoster.funcs.v1beta1.Resource.toObject(includeInstance, f), - requests: (f = msg.getRequests()) && proto.fonoster.funcs.v1beta1.Resource.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.funcs.v1beta1.DeployFuncRequest} - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.funcs.v1beta1.DeployFuncRequest; - return proto.fonoster.funcs.v1beta1.DeployFuncRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.funcs.v1beta1.DeployFuncRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.funcs.v1beta1.DeployFuncRequest} - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSchedule(value); - break; - case 3: - var value = new proto.fonoster.funcs.v1beta1.Resource; - reader.readMessage(value,proto.fonoster.funcs.v1beta1.Resource.deserializeBinaryFromReader); - msg.setLimits(value); - break; - case 4: - var value = new proto.fonoster.funcs.v1beta1.Resource; - reader.readMessage(value,proto.fonoster.funcs.v1beta1.Resource.deserializeBinaryFromReader); - msg.setRequests(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.funcs.v1beta1.DeployFuncRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.funcs.v1beta1.DeployFuncRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchedule(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getLimits(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.fonoster.funcs.v1beta1.Resource.serializeBinaryToWriter - ); - } - f = message.getRequests(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.fonoster.funcs.v1beta1.Resource.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.DeployFuncRequest} returns this - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string schedule = 2; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.getSchedule = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.DeployFuncRequest} returns this - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.setSchedule = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional Resource limits = 3; - * @return {?proto.fonoster.funcs.v1beta1.Resource} - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.getLimits = function() { - return /** @type{?proto.fonoster.funcs.v1beta1.Resource} */ ( - jspb.Message.getWrapperField(this, proto.fonoster.funcs.v1beta1.Resource, 3)); -}; - - -/** - * @param {?proto.fonoster.funcs.v1beta1.Resource|undefined} value - * @return {!proto.fonoster.funcs.v1beta1.DeployFuncRequest} returns this -*/ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.setLimits = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.funcs.v1beta1.DeployFuncRequest} returns this - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.clearLimits = function() { - return this.setLimits(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.hasLimits = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional Resource requests = 4; - * @return {?proto.fonoster.funcs.v1beta1.Resource} - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.getRequests = function() { - return /** @type{?proto.fonoster.funcs.v1beta1.Resource} */ ( - jspb.Message.getWrapperField(this, proto.fonoster.funcs.v1beta1.Resource, 4)); -}; - - -/** - * @param {?proto.fonoster.funcs.v1beta1.Resource|undefined} value - * @return {!proto.fonoster.funcs.v1beta1.DeployFuncRequest} returns this -*/ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.setRequests = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.funcs.v1beta1.DeployFuncRequest} returns this - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.clearRequests = function() { - return this.setRequests(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.funcs.v1beta1.DeployFuncRequest.prototype.hasRequests = function() { - return jspb.Message.getField(this, 4) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.funcs.v1beta1.DeleteFuncRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.funcs.v1beta1.DeleteFuncRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.funcs.v1beta1.DeleteFuncRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.DeleteFuncRequest.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.funcs.v1beta1.DeleteFuncRequest} - */ -proto.fonoster.funcs.v1beta1.DeleteFuncRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.funcs.v1beta1.DeleteFuncRequest; - return proto.fonoster.funcs.v1beta1.DeleteFuncRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.funcs.v1beta1.DeleteFuncRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.funcs.v1beta1.DeleteFuncRequest} - */ -proto.fonoster.funcs.v1beta1.DeleteFuncRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.funcs.v1beta1.DeleteFuncRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.funcs.v1beta1.DeleteFuncRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.funcs.v1beta1.DeleteFuncRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.DeleteFuncRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.DeleteFuncRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.DeleteFuncRequest} returns this - */ -proto.fonoster.funcs.v1beta1.DeleteFuncRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest.toObject = function(includeInstance, msg) { - var f, obj = { - funcName: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest} - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest; - return proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest} - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setFuncName(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getFuncName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string func_name = 1; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest.prototype.getFuncName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest} returns this - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenRequest.prototype.setFuncName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.toObject = function(includeInstance, msg) { - var f, obj = { - token: jspb.Message.getFieldWithDefault(msg, 1, ""), - image: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse} - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse; - return proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse} - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setToken(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setImage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getToken(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getImage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string token = 1; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.prototype.getToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse} returns this - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.prototype.setToken = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string image = 2; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.prototype.getImage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse} returns this - */ -proto.fonoster.funcs.v1beta1.CreateRegistryTokenResponse.prototype.setImage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.funcs.v1beta1.Func.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.funcs.v1beta1.Func.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.funcs.v1beta1.Func} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.Func.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - image: jspb.Message.getFieldWithDefault(msg, 2, ""), - invocationCount: jspb.Message.getFieldWithDefault(msg, 3, 0), - replicas: jspb.Message.getFieldWithDefault(msg, 4, 0), - availableReplicas: jspb.Message.getFieldWithDefault(msg, 5, 0), - limits: (f = msg.getLimits()) && proto.fonoster.funcs.v1beta1.Resource.toObject(includeInstance, f), - requests: (f = msg.getRequests()) && proto.fonoster.funcs.v1beta1.Resource.toObject(includeInstance, f), - schedule: jspb.Message.getFieldWithDefault(msg, 8, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.funcs.v1beta1.Func} - */ -proto.fonoster.funcs.v1beta1.Func.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.funcs.v1beta1.Func; - return proto.fonoster.funcs.v1beta1.Func.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.funcs.v1beta1.Func} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.funcs.v1beta1.Func} - */ -proto.fonoster.funcs.v1beta1.Func.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setImage(value); - break; - case 3: - var value = /** @type {number} */ (reader.readInt32()); - msg.setInvocationCount(value); - break; - case 4: - var value = /** @type {number} */ (reader.readInt32()); - msg.setReplicas(value); - break; - case 5: - var value = /** @type {number} */ (reader.readInt32()); - msg.setAvailableReplicas(value); - break; - case 6: - var value = new proto.fonoster.funcs.v1beta1.Resource; - reader.readMessage(value,proto.fonoster.funcs.v1beta1.Resource.deserializeBinaryFromReader); - msg.setLimits(value); - break; - case 7: - var value = new proto.fonoster.funcs.v1beta1.Resource; - reader.readMessage(value,proto.fonoster.funcs.v1beta1.Resource.deserializeBinaryFromReader); - msg.setRequests(value); - break; - case 8: - var value = /** @type {string} */ (reader.readString()); - msg.setSchedule(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.funcs.v1beta1.Func.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.funcs.v1beta1.Func.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.funcs.v1beta1.Func} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.Func.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getImage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getInvocationCount(); - if (f !== 0) { - writer.writeInt32( - 3, - f - ); - } - f = message.getReplicas(); - if (f !== 0) { - writer.writeInt32( - 4, - f - ); - } - f = message.getAvailableReplicas(); - if (f !== 0) { - writer.writeInt32( - 5, - f - ); - } - f = message.getLimits(); - if (f != null) { - writer.writeMessage( - 6, - f, - proto.fonoster.funcs.v1beta1.Resource.serializeBinaryToWriter - ); - } - f = message.getRequests(); - if (f != null) { - writer.writeMessage( - 7, - f, - proto.fonoster.funcs.v1beta1.Resource.serializeBinaryToWriter - ); - } - f = message.getSchedule(); - if (f.length > 0) { - writer.writeString( - 8, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.Func.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.Func} returns this - */ -proto.fonoster.funcs.v1beta1.Func.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string image = 2; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.Func.prototype.getImage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.Func} returns this - */ -proto.fonoster.funcs.v1beta1.Func.prototype.setImage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional int32 invocation_count = 3; - * @return {number} - */ -proto.fonoster.funcs.v1beta1.Func.prototype.getInvocationCount = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.funcs.v1beta1.Func} returns this - */ -proto.fonoster.funcs.v1beta1.Func.prototype.setInvocationCount = function(value) { - return jspb.Message.setProto3IntField(this, 3, value); -}; - - -/** - * optional int32 replicas = 4; - * @return {number} - */ -proto.fonoster.funcs.v1beta1.Func.prototype.getReplicas = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.funcs.v1beta1.Func} returns this - */ -proto.fonoster.funcs.v1beta1.Func.prototype.setReplicas = function(value) { - return jspb.Message.setProto3IntField(this, 4, value); -}; - - -/** - * optional int32 available_replicas = 5; - * @return {number} - */ -proto.fonoster.funcs.v1beta1.Func.prototype.getAvailableReplicas = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.funcs.v1beta1.Func} returns this - */ -proto.fonoster.funcs.v1beta1.Func.prototype.setAvailableReplicas = function(value) { - return jspb.Message.setProto3IntField(this, 5, value); -}; - - -/** - * optional Resource limits = 6; - * @return {?proto.fonoster.funcs.v1beta1.Resource} - */ -proto.fonoster.funcs.v1beta1.Func.prototype.getLimits = function() { - return /** @type{?proto.fonoster.funcs.v1beta1.Resource} */ ( - jspb.Message.getWrapperField(this, proto.fonoster.funcs.v1beta1.Resource, 6)); -}; - - -/** - * @param {?proto.fonoster.funcs.v1beta1.Resource|undefined} value - * @return {!proto.fonoster.funcs.v1beta1.Func} returns this -*/ -proto.fonoster.funcs.v1beta1.Func.prototype.setLimits = function(value) { - return jspb.Message.setWrapperField(this, 6, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.funcs.v1beta1.Func} returns this - */ -proto.fonoster.funcs.v1beta1.Func.prototype.clearLimits = function() { - return this.setLimits(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.funcs.v1beta1.Func.prototype.hasLimits = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional Resource requests = 7; - * @return {?proto.fonoster.funcs.v1beta1.Resource} - */ -proto.fonoster.funcs.v1beta1.Func.prototype.getRequests = function() { - return /** @type{?proto.fonoster.funcs.v1beta1.Resource} */ ( - jspb.Message.getWrapperField(this, proto.fonoster.funcs.v1beta1.Resource, 7)); -}; - - -/** - * @param {?proto.fonoster.funcs.v1beta1.Resource|undefined} value - * @return {!proto.fonoster.funcs.v1beta1.Func} returns this -*/ -proto.fonoster.funcs.v1beta1.Func.prototype.setRequests = function(value) { - return jspb.Message.setWrapperField(this, 7, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.funcs.v1beta1.Func} returns this - */ -proto.fonoster.funcs.v1beta1.Func.prototype.clearRequests = function() { - return this.setRequests(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.funcs.v1beta1.Func.prototype.hasRequests = function() { - return jspb.Message.getField(this, 7) != null; -}; - - -/** - * optional string schedule = 8; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.Func.prototype.getSchedule = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.Func} returns this - */ -proto.fonoster.funcs.v1beta1.Func.prototype.setSchedule = function(value) { - return jspb.Message.setProto3StringField(this, 8, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.funcs.v1beta1.Resource.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.funcs.v1beta1.Resource.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.funcs.v1beta1.Resource} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.Resource.toObject = function(includeInstance, msg) { - var f, obj = { - memory: jspb.Message.getFieldWithDefault(msg, 1, ""), - cpu: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.funcs.v1beta1.Resource} - */ -proto.fonoster.funcs.v1beta1.Resource.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.funcs.v1beta1.Resource; - return proto.fonoster.funcs.v1beta1.Resource.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.funcs.v1beta1.Resource} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.funcs.v1beta1.Resource} - */ -proto.fonoster.funcs.v1beta1.Resource.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setMemory(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setCpu(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.funcs.v1beta1.Resource.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.funcs.v1beta1.Resource.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.funcs.v1beta1.Resource} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.Resource.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getMemory(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getCpu(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string memory = 1; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.Resource.prototype.getMemory = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.Resource} returns this - */ -proto.fonoster.funcs.v1beta1.Resource.prototype.setMemory = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string cpu = 2; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.Resource.prototype.getCpu = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.Resource} returns this - */ -proto.fonoster.funcs.v1beta1.Resource.prototype.setCpu = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.funcs.v1beta1.FuncLog.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.funcs.v1beta1.FuncLog.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.funcs.v1beta1.FuncLog} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.FuncLog.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - instance: jspb.Message.getFieldWithDefault(msg, 2, ""), - timestamp: jspb.Message.getFieldWithDefault(msg, 3, ""), - text: jspb.Message.getFieldWithDefault(msg, 4, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.funcs.v1beta1.FuncLog} - */ -proto.fonoster.funcs.v1beta1.FuncLog.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.funcs.v1beta1.FuncLog; - return proto.fonoster.funcs.v1beta1.FuncLog.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.funcs.v1beta1.FuncLog} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.funcs.v1beta1.FuncLog} - */ -proto.fonoster.funcs.v1beta1.FuncLog.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setInstance(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTimestamp(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setText(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.funcs.v1beta1.FuncLog.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.funcs.v1beta1.FuncLog.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.funcs.v1beta1.FuncLog} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.FuncLog.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInstance(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTimestamp(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getText(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.FuncLog.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.FuncLog} returns this - */ -proto.fonoster.funcs.v1beta1.FuncLog.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string instance = 2; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.FuncLog.prototype.getInstance = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.FuncLog} returns this - */ -proto.fonoster.funcs.v1beta1.FuncLog.prototype.setInstance = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string timestamp = 3; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.FuncLog.prototype.getTimestamp = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.FuncLog} returns this - */ -proto.fonoster.funcs.v1beta1.FuncLog.prototype.setTimestamp = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string text = 4; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.FuncLog.prototype.getText = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.FuncLog} returns this - */ -proto.fonoster.funcs.v1beta1.FuncLog.prototype.setText = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.funcs.v1beta1.DeployStream.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.funcs.v1beta1.DeployStream.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.funcs.v1beta1.DeployStream} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.DeployStream.toObject = function(includeInstance, msg) { - var f, obj = { - text: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.funcs.v1beta1.DeployStream} - */ -proto.fonoster.funcs.v1beta1.DeployStream.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.funcs.v1beta1.DeployStream; - return proto.fonoster.funcs.v1beta1.DeployStream.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.funcs.v1beta1.DeployStream} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.funcs.v1beta1.DeployStream} - */ -proto.fonoster.funcs.v1beta1.DeployStream.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setText(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.funcs.v1beta1.DeployStream.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.funcs.v1beta1.DeployStream.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.funcs.v1beta1.DeployStream} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.funcs.v1beta1.DeployStream.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getText(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string text = 1; - * @return {string} - */ -proto.fonoster.funcs.v1beta1.DeployStream.prototype.getText = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.funcs.v1beta1.DeployStream} returns this - */ -proto.fonoster.funcs.v1beta1.DeployStream.prototype.setText = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -goog.object.extend(exports, proto.fonoster.funcs.v1beta1); diff --git a/mods/funcs/src/service/protos/google/api/annotations_grpc_pb.js b/mods/funcs/src/service/protos/google/api/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/funcs/src/service/protos/google/api/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/funcs/src/service/protos/google/api/annotations_pb.d.ts b/mods/funcs/src/service/protos/google/api/annotations_pb.d.ts deleted file mode 100644 index 06072f3bd..000000000 --- a/mods/funcs/src/service/protos/google/api/annotations_pb.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// package: google.api -// file: google/api/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_api_http_pb from "../../google/api/http_pb"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const http: jspb.ExtensionFieldInfo; diff --git a/mods/funcs/src/service/protos/google/api/annotations_pb.js b/mods/funcs/src/service/protos/google/api/annotations_pb.js deleted file mode 100644 index 99e4c1824..000000000 --- a/mods/funcs/src/service/protos/google/api/annotations_pb.js +++ /dev/null @@ -1,48 +0,0 @@ -// source: google/api/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_http_pb = require('../../google/api/http_pb.js'); -goog.object.extend(proto, google_api_http_pb); -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.http', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `http`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.google.api.http = new jspb.ExtensionFieldInfo( - 72295728, - {http: 0}, - google_api_http_pb.HttpRule, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - google_api_http_pb.HttpRule.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[72295728] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.http, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - google_api_http_pb.HttpRule.serializeBinaryToWriter, - google_api_http_pb.HttpRule.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[72295728] = proto.google.api.http; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/funcs/src/service/protos/google/api/field_behavior_grpc_pb.js b/mods/funcs/src/service/protos/google/api/field_behavior_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/funcs/src/service/protos/google/api/field_behavior_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/funcs/src/service/protos/google/api/field_behavior_pb.d.ts b/mods/funcs/src/service/protos/google/api/field_behavior_pb.d.ts deleted file mode 100644 index 9b853705f..000000000 --- a/mods/funcs/src/service/protos/google/api/field_behavior_pb.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -// package: google.api -// file: google/api/field_behavior.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const fieldBehavior: jspb.ExtensionFieldInfo; - -export enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, -} diff --git a/mods/funcs/src/service/protos/google/api/field_behavior_pb.js b/mods/funcs/src/service/protos/google/api/field_behavior_pb.js deleted file mode 100644 index 44160cc41..000000000 --- a/mods/funcs/src/service/protos/google/api/field_behavior_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// source: google/api/field_behavior.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.FieldBehavior', null, global); -goog.exportSymbol('proto.google.api.fieldBehaviorList', null, global); -/** - * @enum {number} - */ -proto.google.api.FieldBehavior = { - FIELD_BEHAVIOR_UNSPECIFIED: 0, - OPTIONAL: 1, - REQUIRED: 2, - OUTPUT_ONLY: 3, - INPUT_ONLY: 4, - IMMUTABLE: 5, - UNORDERED_LIST: 6, - NON_EMPTY_DEFAULT: 7 -}; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `fieldBehaviorList`. - * @type {!jspb.ExtensionFieldInfo>} - */ -proto.google.api.fieldBehaviorList = new jspb.ExtensionFieldInfo( - 1052, - {fieldBehaviorList: 0}, - null, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - null), - 1); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1052] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.fieldBehaviorList, - jspb.BinaryReader.prototype.readPackedEnum, - jspb.BinaryWriter.prototype.writePackedEnum, - undefined, - undefined, - true); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1052] = proto.google.api.fieldBehaviorList; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/funcs/src/service/protos/google/api/http_grpc_pb.js b/mods/funcs/src/service/protos/google/api/http_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/funcs/src/service/protos/google/api/http_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/funcs/src/service/protos/google/api/http_pb.d.ts b/mods/funcs/src/service/protos/google/api/http_pb.d.ts deleted file mode 100644 index 02c3b1ece..000000000 --- a/mods/funcs/src/service/protos/google/api/http_pb.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -// package: google.api -// file: google/api/http.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Http extends jspb.Message { - clearRulesList(): void; - getRulesList(): Array; - setRulesList(value: Array): Http; - addRules(value?: HttpRule, index?: number): HttpRule; - getFullyDecodeReservedExpansion(): boolean; - setFullyDecodeReservedExpansion(value: boolean): Http; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Http.AsObject; - static toObject(includeInstance: boolean, msg: Http): Http.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Http; - static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http; -} - -export namespace Http { - export type AsObject = { - rulesList: Array, - fullyDecodeReservedExpansion: boolean, - } -} - -export class HttpRule extends jspb.Message { - getSelector(): string; - setSelector(value: string): HttpRule; - - hasGet(): boolean; - clearGet(): void; - getGet(): string; - setGet(value: string): HttpRule; - - hasPut(): boolean; - clearPut(): void; - getPut(): string; - setPut(value: string): HttpRule; - - hasPost(): boolean; - clearPost(): void; - getPost(): string; - setPost(value: string): HttpRule; - - hasDelete(): boolean; - clearDelete(): void; - getDelete(): string; - setDelete(value: string): HttpRule; - - hasPatch(): boolean; - clearPatch(): void; - getPatch(): string; - setPatch(value: string): HttpRule; - - hasCustom(): boolean; - clearCustom(): void; - getCustom(): CustomHttpPattern | undefined; - setCustom(value?: CustomHttpPattern): HttpRule; - getBody(): string; - setBody(value: string): HttpRule; - getResponseBody(): string; - setResponseBody(value: string): HttpRule; - clearAdditionalBindingsList(): void; - getAdditionalBindingsList(): Array; - setAdditionalBindingsList(value: Array): HttpRule; - addAdditionalBindings(value?: HttpRule, index?: number): HttpRule; - - getPatternCase(): HttpRule.PatternCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpRule.AsObject; - static toObject(includeInstance: boolean, msg: HttpRule): HttpRule.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpRule, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpRule; - static deserializeBinaryFromReader(message: HttpRule, reader: jspb.BinaryReader): HttpRule; -} - -export namespace HttpRule { - export type AsObject = { - selector: string, - get: string, - put: string, - post: string, - pb_delete: string, - patch: string, - custom?: CustomHttpPattern.AsObject, - body: string, - responseBody: string, - additionalBindingsList: Array, - } - - export enum PatternCase { - PATTERN_NOT_SET = 0, - GET = 2, - PUT = 3, - POST = 4, - DELETE = 5, - PATCH = 6, - CUSTOM = 8, - } - -} - -export class CustomHttpPattern extends jspb.Message { - getKind(): string; - setKind(value: string): CustomHttpPattern; - getPath(): string; - setPath(value: string): CustomHttpPattern; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CustomHttpPattern.AsObject; - static toObject(includeInstance: boolean, msg: CustomHttpPattern): CustomHttpPattern.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CustomHttpPattern, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CustomHttpPattern; - static deserializeBinaryFromReader(message: CustomHttpPattern, reader: jspb.BinaryReader): CustomHttpPattern; -} - -export namespace CustomHttpPattern { - export type AsObject = { - kind: string, - path: string, - } -} diff --git a/mods/funcs/src/service/protos/google/api/http_pb.js b/mods/funcs/src/service/protos/google/api/http_pb.js deleted file mode 100644 index 0359c5eec..000000000 --- a/mods/funcs/src/service/protos/google/api/http_pb.js +++ /dev/null @@ -1,1006 +0,0 @@ -// source: google/api/http.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.google.api.CustomHttpPattern', null, global); -goog.exportSymbol('proto.google.api.Http', null, global); -goog.exportSymbol('proto.google.api.HttpRule', null, global); -goog.exportSymbol('proto.google.api.HttpRule.PatternCase', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.Http = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Http.repeatedFields_, null); -}; -goog.inherits(proto.google.api.Http, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.Http.displayName = 'proto.google.api.Http'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpRule = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpRule.repeatedFields_, proto.google.api.HttpRule.oneofGroups_); -}; -goog.inherits(proto.google.api.HttpRule, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpRule.displayName = 'proto.google.api.HttpRule'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.CustomHttpPattern = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.google.api.CustomHttpPattern, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.CustomHttpPattern.displayName = 'proto.google.api.CustomHttpPattern'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.Http.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.Http.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.Http.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.Http} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.toObject = function(includeInstance, msg) { - var f, obj = { - rulesList: jspb.Message.toObjectList(msg.getRulesList(), - proto.google.api.HttpRule.toObject, includeInstance), - fullyDecodeReservedExpansion: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.Http; - return proto.google.api.Http.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.Http} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addRules(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFullyDecodeReservedExpansion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.Http.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.Http.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.Http} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRulesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } - f = message.getFullyDecodeReservedExpansion(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * repeated HttpRule rules = 1; - * @return {!Array} - */ -proto.google.api.Http.prototype.getRulesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.Http} returns this -*/ -proto.google.api.Http.prototype.setRulesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.Http.prototype.addRules = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.clearRulesList = function() { - return this.setRulesList([]); -}; - - -/** - * optional bool fully_decode_reserved_expansion = 2; - * @return {boolean} - */ -proto.google.api.Http.prototype.getFullyDecodeReservedExpansion = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.setFullyDecodeReservedExpansion = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpRule.repeatedFields_ = [11]; - -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.google.api.HttpRule.oneofGroups_ = [[2,3,4,5,6,8]]; - -/** - * @enum {number} - */ -proto.google.api.HttpRule.PatternCase = { - PATTERN_NOT_SET: 0, - GET: 2, - PUT: 3, - POST: 4, - DELETE: 5, - PATCH: 6, - CUSTOM: 8 -}; - -/** - * @return {proto.google.api.HttpRule.PatternCase} - */ -proto.google.api.HttpRule.prototype.getPatternCase = function() { - return /** @type {proto.google.api.HttpRule.PatternCase} */(jspb.Message.computeOneofCase(this, proto.google.api.HttpRule.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpRule.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpRule.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpRule} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.toObject = function(includeInstance, msg) { - var f, obj = { - selector: jspb.Message.getFieldWithDefault(msg, 1, ""), - get: jspb.Message.getFieldWithDefault(msg, 2, ""), - put: jspb.Message.getFieldWithDefault(msg, 3, ""), - post: jspb.Message.getFieldWithDefault(msg, 4, ""), - pb_delete: jspb.Message.getFieldWithDefault(msg, 5, ""), - patch: jspb.Message.getFieldWithDefault(msg, 6, ""), - custom: (f = msg.getCustom()) && proto.google.api.CustomHttpPattern.toObject(includeInstance, f), - body: jspb.Message.getFieldWithDefault(msg, 7, ""), - responseBody: jspb.Message.getFieldWithDefault(msg, 12, ""), - additionalBindingsList: jspb.Message.toObjectList(msg.getAdditionalBindingsList(), - proto.google.api.HttpRule.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpRule; - return proto.google.api.HttpRule.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpRule} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSelector(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setGet(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPut(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPost(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDelete(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPatch(value); - break; - case 8: - var value = new proto.google.api.CustomHttpPattern; - reader.readMessage(value,proto.google.api.CustomHttpPattern.deserializeBinaryFromReader); - msg.setCustom(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBody(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setResponseBody(value); - break; - case 11: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addAdditionalBindings(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpRule.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpRule.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpRule} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSelector(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeString( - 3, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeString( - 4, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 5)); - if (f != null) { - writer.writeString( - 5, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 6)); - if (f != null) { - writer.writeString( - 6, - f - ); - } - f = message.getCustom(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.google.api.CustomHttpPattern.serializeBinaryToWriter - ); - } - f = message.getBody(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getResponseBody(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getAdditionalBindingsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 11, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string selector = 1; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getSelector = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setSelector = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string get = 2; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getGet = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setGet = function(value) { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearGet = function() { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasGet = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string put = 3; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPut = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPut = function(value) { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPut = function() { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPut = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional string post = 4; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPost = function(value) { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPost = function() { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPost = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string delete = 5; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getDelete = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setDelete = function(value) { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearDelete = function() { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasDelete = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string patch = 6; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPatch = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPatch = function(value) { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPatch = function() { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPatch = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional CustomHttpPattern custom = 8; - * @return {?proto.google.api.CustomHttpPattern} - */ -proto.google.api.HttpRule.prototype.getCustom = function() { - return /** @type{?proto.google.api.CustomHttpPattern} */ ( - jspb.Message.getWrapperField(this, proto.google.api.CustomHttpPattern, 8)); -}; - - -/** - * @param {?proto.google.api.CustomHttpPattern|undefined} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setCustom = function(value) { - return jspb.Message.setOneofWrapperField(this, 8, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearCustom = function() { - return this.setCustom(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasCustom = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional string body = 7; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setBody = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string response_body = 12; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getResponseBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setResponseBody = function(value) { - return jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * repeated HttpRule additional_bindings = 11; - * @return {!Array} - */ -proto.google.api.HttpRule.prototype.getAdditionalBindingsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 11)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setAdditionalBindingsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 11, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.prototype.addAdditionalBindings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearAdditionalBindingsList = function() { - return this.setAdditionalBindingsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.CustomHttpPattern.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.CustomHttpPattern.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.CustomHttpPattern} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.toObject = function(includeInstance, msg) { - var f, obj = { - kind: jspb.Message.getFieldWithDefault(msg, 1, ""), - path: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.CustomHttpPattern; - return proto.google.api.CustomHttpPattern.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.CustomHttpPattern} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKind(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.CustomHttpPattern.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.CustomHttpPattern.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.CustomHttpPattern} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKind(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string kind = 1; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getKind = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setKind = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string path = 2; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/funcs/src/service/protos/google/api/httpbody_grpc_pb.js b/mods/funcs/src/service/protos/google/api/httpbody_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/funcs/src/service/protos/google/api/httpbody_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/funcs/src/service/protos/google/api/httpbody_pb.d.ts b/mods/funcs/src/service/protos/google/api/httpbody_pb.d.ts deleted file mode 100644 index 98d973068..000000000 --- a/mods/funcs/src/service/protos/google/api/httpbody_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// package: google.api -// file: google/api/httpbody.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb"; - -export class HttpBody extends jspb.Message { - getContentType(): string; - setContentType(value: string): HttpBody; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): HttpBody; - clearExtensionsList(): void; - getExtensionsList(): Array; - setExtensionsList(value: Array): HttpBody; - addExtensions(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpBody.AsObject; - static toObject(includeInstance: boolean, msg: HttpBody): HttpBody.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpBody, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpBody; - static deserializeBinaryFromReader(message: HttpBody, reader: jspb.BinaryReader): HttpBody; -} - -export namespace HttpBody { - export type AsObject = { - contentType: string, - data: Uint8Array | string, - extensionsList: Array, - } -} diff --git a/mods/funcs/src/service/protos/google/api/httpbody_pb.js b/mods/funcs/src/service/protos/google/api/httpbody_pb.js deleted file mode 100644 index 5539f5936..000000000 --- a/mods/funcs/src/service/protos/google/api/httpbody_pb.js +++ /dev/null @@ -1,286 +0,0 @@ -// source: google/api/httpbody.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js'); -goog.object.extend(proto, google_protobuf_any_pb); -goog.exportSymbol('proto.google.api.HttpBody', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpBody = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpBody.repeatedFields_, null); -}; -goog.inherits(proto.google.api.HttpBody, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpBody.displayName = 'proto.google.api.HttpBody'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpBody.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpBody.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpBody.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpBody} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.toObject = function(includeInstance, msg) { - var f, obj = { - contentType: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64(), - extensionsList: jspb.Message.toObjectList(msg.getExtensionsList(), - google_protobuf_any_pb.Any.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpBody; - return proto.google.api.HttpBody.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpBody} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setContentType(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 3: - var value = new google_protobuf_any_pb.Any; - reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader); - msg.addExtensions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpBody.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpBody} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContentType(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getExtensionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - google_protobuf_any_pb.Any.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string content_type = 1; - * @return {string} - */ -proto.google.api.HttpBody.prototype.getContentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setContentType = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.google.api.HttpBody.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.google.api.HttpBody.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setData = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * repeated google.protobuf.Any extensions = 3; - * @return {!Array} - */ -proto.google.api.HttpBody.prototype.getExtensionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpBody} returns this -*/ -proto.google.api.HttpBody.prototype.setExtensionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.google.protobuf.Any=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.Any} - */ -proto.google.api.HttpBody.prototype.addExtensions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.clearExtensionsList = function() { - return this.setExtensionsList([]); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js b/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts b/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts deleted file mode 100644 index 8e3a35012..000000000 --- a/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; -import * as protoc_gen_openapiv2_options_openapiv2_pb from "../../protoc-gen-openapiv2/options/openapiv2_pb"; - -export const openapiv2Swagger: jspb.ExtensionFieldInfo; - -export const openapiv2Operation: jspb.ExtensionFieldInfo; - -export const openapiv2Schema: jspb.ExtensionFieldInfo; - -export const openapiv2Tag: jspb.ExtensionFieldInfo; - -export const openapiv2Field: jspb.ExtensionFieldInfo; diff --git a/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js b/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js deleted file mode 100644 index e92ccec18..000000000 --- a/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js +++ /dev/null @@ -1,152 +0,0 @@ -// source: protoc-gen-openapiv2/options/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -var protoc$gen$openapiv2_options_openapiv2_pb = require('../../protoc-gen-openapiv2/options/openapiv2_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_openapiv2_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Swagger`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Swagger: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.toObject), - 0); - -google_protobuf_descriptor_pb.FileOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FileOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Operation`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Operation: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Operation, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Operation.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Schema`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Schema: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Schema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Schema.toObject), - 0); - -google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MessageOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Tag`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Tag: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Tag, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Tag.toObject), - 0); - -google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.ServiceOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Field`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Field: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.toObject), - 0); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js b/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts b/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts deleted file mode 100644 index 3c3972ea9..000000000 --- a/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +++ /dev/null @@ -1,685 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/openapiv2.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class Swagger extends jspb.Message { - getSwagger(): string; - setSwagger(value: string): Swagger; - - hasInfo(): boolean; - clearInfo(): void; - getInfo(): Info | undefined; - setInfo(value?: Info): Swagger; - getHost(): string; - setHost(value: string): Swagger; - getBasePath(): string; - setBasePath(value: string): Swagger; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Swagger; - addSchemes(value: Scheme, index?: number): Scheme; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Swagger; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Swagger; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - - hasSecurityDefinitions(): boolean; - clearSecurityDefinitions(): void; - getSecurityDefinitions(): SecurityDefinitions | undefined; - setSecurityDefinitions(value?: SecurityDefinitions): Swagger; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Swagger; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Swagger; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Swagger.AsObject; - static toObject(includeInstance: boolean, msg: Swagger): Swagger.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Swagger, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Swagger; - static deserializeBinaryFromReader(message: Swagger, reader: jspb.BinaryReader): Swagger; -} - -export namespace Swagger { - export type AsObject = { - swagger: string, - info?: Info.AsObject, - host: string, - basePath: string, - schemesList: Array, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - securityDefinitions?: SecurityDefinitions.AsObject, - securityList: Array, - externalDocs?: ExternalDocumentation.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Operation extends jspb.Message { - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): Operation; - addTags(value: string, index?: number): string; - getSummary(): string; - setSummary(value: string): Operation; - getDescription(): string; - setDescription(value: string): Operation; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Operation; - getOperationId(): string; - setOperationId(value: string): Operation; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Operation; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Operation; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Operation; - addSchemes(value: Scheme, index?: number): Scheme; - getDeprecated(): boolean; - setDeprecated(value: boolean): Operation; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Operation; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Operation.AsObject; - static toObject(includeInstance: boolean, msg: Operation): Operation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Operation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Operation; - static deserializeBinaryFromReader(message: Operation, reader: jspb.BinaryReader): Operation; -} - -export namespace Operation { - export type AsObject = { - tagsList: Array, - summary: string, - description: string, - externalDocs?: ExternalDocumentation.AsObject, - operationId: string, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - schemesList: Array, - deprecated: boolean, - securityList: Array, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Header extends jspb.Message { - getDescription(): string; - setDescription(value: string): Header; - getType(): string; - setType(value: string): Header; - getFormat(): string; - setFormat(value: string): Header; - getDefault(): string; - setDefault(value: string): Header; - getPattern(): string; - setPattern(value: string): Header; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Header.AsObject; - static toObject(includeInstance: boolean, msg: Header): Header.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Header, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Header; - static deserializeBinaryFromReader(message: Header, reader: jspb.BinaryReader): Header; -} - -export namespace Header { - export type AsObject = { - description: string, - type: string, - format: string, - pb_default: string, - pattern: string, - } -} - -export class Response extends jspb.Message { - getDescription(): string; - setDescription(value: string): Response; - - hasSchema(): boolean; - clearSchema(): void; - getSchema(): Schema | undefined; - setSchema(value?: Schema): Response; - - getHeadersMap(): jspb.Map; - clearHeadersMap(): void; - - getExamplesMap(): jspb.Map; - clearExamplesMap(): void; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Response.AsObject; - static toObject(includeInstance: boolean, msg: Response): Response.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Response, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Response; - static deserializeBinaryFromReader(message: Response, reader: jspb.BinaryReader): Response; -} - -export namespace Response { - export type AsObject = { - description: string, - schema?: Schema.AsObject, - - headersMap: Array<[string, Header.AsObject]>, - - examplesMap: Array<[string, string]>, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Info extends jspb.Message { - getTitle(): string; - setTitle(value: string): Info; - getDescription(): string; - setDescription(value: string): Info; - getTermsOfService(): string; - setTermsOfService(value: string): Info; - - hasContact(): boolean; - clearContact(): void; - getContact(): Contact | undefined; - setContact(value?: Contact): Info; - - hasLicense(): boolean; - clearLicense(): void; - getLicense(): License | undefined; - setLicense(value?: License): Info; - getVersion(): string; - setVersion(value: string): Info; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Info.AsObject; - static toObject(includeInstance: boolean, msg: Info): Info.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Info, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Info; - static deserializeBinaryFromReader(message: Info, reader: jspb.BinaryReader): Info; -} - -export namespace Info { - export type AsObject = { - title: string, - description: string, - termsOfService: string, - contact?: Contact.AsObject, - license?: License.AsObject, - version: string, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Contact extends jspb.Message { - getName(): string; - setName(value: string): Contact; - getUrl(): string; - setUrl(value: string): Contact; - getEmail(): string; - setEmail(value: string): Contact; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contact.AsObject; - static toObject(includeInstance: boolean, msg: Contact): Contact.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contact, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contact; - static deserializeBinaryFromReader(message: Contact, reader: jspb.BinaryReader): Contact; -} - -export namespace Contact { - export type AsObject = { - name: string, - url: string, - email: string, - } -} - -export class License extends jspb.Message { - getName(): string; - setName(value: string): License; - getUrl(): string; - setUrl(value: string): License; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): License.AsObject; - static toObject(includeInstance: boolean, msg: License): License.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: License, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): License; - static deserializeBinaryFromReader(message: License, reader: jspb.BinaryReader): License; -} - -export namespace License { - export type AsObject = { - name: string, - url: string, - } -} - -export class ExternalDocumentation extends jspb.Message { - getDescription(): string; - setDescription(value: string): ExternalDocumentation; - getUrl(): string; - setUrl(value: string): ExternalDocumentation; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ExternalDocumentation.AsObject; - static toObject(includeInstance: boolean, msg: ExternalDocumentation): ExternalDocumentation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ExternalDocumentation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ExternalDocumentation; - static deserializeBinaryFromReader(message: ExternalDocumentation, reader: jspb.BinaryReader): ExternalDocumentation; -} - -export namespace ExternalDocumentation { - export type AsObject = { - description: string, - url: string, - } -} - -export class Schema extends jspb.Message { - - hasJsonSchema(): boolean; - clearJsonSchema(): void; - getJsonSchema(): JSONSchema | undefined; - setJsonSchema(value?: JSONSchema): Schema; - getDiscriminator(): string; - setDiscriminator(value: string): Schema; - getReadOnly(): boolean; - setReadOnly(value: boolean): Schema; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Schema; - getExample(): string; - setExample(value: string): Schema; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Schema.AsObject; - static toObject(includeInstance: boolean, msg: Schema): Schema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Schema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Schema; - static deserializeBinaryFromReader(message: Schema, reader: jspb.BinaryReader): Schema; -} - -export namespace Schema { - export type AsObject = { - jsonSchema?: JSONSchema.AsObject, - discriminator: string, - readOnly: boolean, - externalDocs?: ExternalDocumentation.AsObject, - example: string, - } -} - -export class JSONSchema extends jspb.Message { - getRef(): string; - setRef(value: string): JSONSchema; - getTitle(): string; - setTitle(value: string): JSONSchema; - getDescription(): string; - setDescription(value: string): JSONSchema; - getDefault(): string; - setDefault(value: string): JSONSchema; - getReadOnly(): boolean; - setReadOnly(value: boolean): JSONSchema; - getExample(): string; - setExample(value: string): JSONSchema; - getMultipleOf(): number; - setMultipleOf(value: number): JSONSchema; - getMaximum(): number; - setMaximum(value: number): JSONSchema; - getExclusiveMaximum(): boolean; - setExclusiveMaximum(value: boolean): JSONSchema; - getMinimum(): number; - setMinimum(value: number): JSONSchema; - getExclusiveMinimum(): boolean; - setExclusiveMinimum(value: boolean): JSONSchema; - getMaxLength(): number; - setMaxLength(value: number): JSONSchema; - getMinLength(): number; - setMinLength(value: number): JSONSchema; - getPattern(): string; - setPattern(value: string): JSONSchema; - getMaxItems(): number; - setMaxItems(value: number): JSONSchema; - getMinItems(): number; - setMinItems(value: number): JSONSchema; - getUniqueItems(): boolean; - setUniqueItems(value: boolean): JSONSchema; - getMaxProperties(): number; - setMaxProperties(value: number): JSONSchema; - getMinProperties(): number; - setMinProperties(value: number): JSONSchema; - clearRequiredList(): void; - getRequiredList(): Array; - setRequiredList(value: Array): JSONSchema; - addRequired(value: string, index?: number): string; - clearArrayList(): void; - getArrayList(): Array; - setArrayList(value: Array): JSONSchema; - addArray(value: string, index?: number): string; - clearTypeList(): void; - getTypeList(): Array; - setTypeList(value: Array): JSONSchema; - addType(value: JSONSchema.JSONSchemaSimpleTypes, index?: number): JSONSchema.JSONSchemaSimpleTypes; - getFormat(): string; - setFormat(value: string): JSONSchema; - clearEnumList(): void; - getEnumList(): Array; - setEnumList(value: Array): JSONSchema; - addEnum(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): JSONSchema.AsObject; - static toObject(includeInstance: boolean, msg: JSONSchema): JSONSchema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: JSONSchema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): JSONSchema; - static deserializeBinaryFromReader(message: JSONSchema, reader: jspb.BinaryReader): JSONSchema; -} - -export namespace JSONSchema { - export type AsObject = { - ref: string, - title: string, - description: string, - pb_default: string, - readOnly: boolean, - example: string, - multipleOf: number, - maximum: number, - exclusiveMaximum: boolean, - minimum: number, - exclusiveMinimum: boolean, - maxLength: number, - minLength: number, - pattern: string, - maxItems: number, - minItems: number, - uniqueItems: boolean, - maxProperties: number, - minProperties: number, - requiredList: Array, - arrayList: Array, - typeList: Array, - format: string, - pb_enumList: Array, - } - - export enum JSONSchemaSimpleTypes { - UNKNOWN = 0, - ARRAY = 1, - BOOLEAN = 2, - INTEGER = 3, - NULL = 4, - NUMBER = 5, - OBJECT = 6, - STRING = 7, - } - -} - -export class Tag extends jspb.Message { - getDescription(): string; - setDescription(value: string): Tag; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Tag; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Tag.AsObject; - static toObject(includeInstance: boolean, msg: Tag): Tag.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Tag, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Tag; - static deserializeBinaryFromReader(message: Tag, reader: jspb.BinaryReader): Tag; -} - -export namespace Tag { - export type AsObject = { - description: string, - externalDocs?: ExternalDocumentation.AsObject, - } -} - -export class SecurityDefinitions extends jspb.Message { - - getSecurityMap(): jspb.Map; - clearSecurityMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityDefinitions.AsObject; - static toObject(includeInstance: boolean, msg: SecurityDefinitions): SecurityDefinitions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityDefinitions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityDefinitions; - static deserializeBinaryFromReader(message: SecurityDefinitions, reader: jspb.BinaryReader): SecurityDefinitions; -} - -export namespace SecurityDefinitions { - export type AsObject = { - - securityMap: Array<[string, SecurityScheme.AsObject]>, - } -} - -export class SecurityScheme extends jspb.Message { - getType(): SecurityScheme.Type; - setType(value: SecurityScheme.Type): SecurityScheme; - getDescription(): string; - setDescription(value: string): SecurityScheme; - getName(): string; - setName(value: string): SecurityScheme; - getIn(): SecurityScheme.In; - setIn(value: SecurityScheme.In): SecurityScheme; - getFlow(): SecurityScheme.Flow; - setFlow(value: SecurityScheme.Flow): SecurityScheme; - getAuthorizationUrl(): string; - setAuthorizationUrl(value: string): SecurityScheme; - getTokenUrl(): string; - setTokenUrl(value: string): SecurityScheme; - - hasScopes(): boolean; - clearScopes(): void; - getScopes(): Scopes | undefined; - setScopes(value?: Scopes): SecurityScheme; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityScheme.AsObject; - static toObject(includeInstance: boolean, msg: SecurityScheme): SecurityScheme.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityScheme, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityScheme; - static deserializeBinaryFromReader(message: SecurityScheme, reader: jspb.BinaryReader): SecurityScheme; -} - -export namespace SecurityScheme { - export type AsObject = { - type: SecurityScheme.Type, - description: string, - name: string, - pb_in: SecurityScheme.In, - flow: SecurityScheme.Flow, - authorizationUrl: string, - tokenUrl: string, - scopes?: Scopes.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } - - export enum Type { - TYPE_INVALID = 0, - TYPE_BASIC = 1, - TYPE_API_KEY = 2, - TYPE_OAUTH2 = 3, - } - - export enum In { - IN_INVALID = 0, - IN_QUERY = 1, - IN_HEADER = 2, - } - - export enum Flow { - FLOW_INVALID = 0, - FLOW_IMPLICIT = 1, - FLOW_PASSWORD = 2, - FLOW_APPLICATION = 3, - FLOW_ACCESS_CODE = 4, - } - -} - -export class SecurityRequirement extends jspb.Message { - - getSecurityRequirementMap(): jspb.Map; - clearSecurityRequirementMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirement.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirement): SecurityRequirement.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirement, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirement; - static deserializeBinaryFromReader(message: SecurityRequirement, reader: jspb.BinaryReader): SecurityRequirement; -} - -export namespace SecurityRequirement { - export type AsObject = { - - securityRequirementMap: Array<[string, SecurityRequirement.SecurityRequirementValue.AsObject]>, - } - - - export class SecurityRequirementValue extends jspb.Message { - clearScopeList(): void; - getScopeList(): Array; - setScopeList(value: Array): SecurityRequirementValue; - addScope(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirementValue.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirementValue): SecurityRequirementValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirementValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirementValue; - static deserializeBinaryFromReader(message: SecurityRequirementValue, reader: jspb.BinaryReader): SecurityRequirementValue; - } - - export namespace SecurityRequirementValue { - export type AsObject = { - scopeList: Array, - } - } - -} - -export class Scopes extends jspb.Message { - - getScopeMap(): jspb.Map; - clearScopeMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Scopes.AsObject; - static toObject(includeInstance: boolean, msg: Scopes): Scopes.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Scopes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Scopes; - static deserializeBinaryFromReader(message: Scopes, reader: jspb.BinaryReader): Scopes; -} - -export namespace Scopes { - export type AsObject = { - - scopeMap: Array<[string, string]>, - } -} - -export enum Scheme { - UNKNOWN = 0, - HTTP = 1, - HTTPS = 2, - WS = 3, - WSS = 4, -} diff --git a/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js b/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js deleted file mode 100644 index be8a6bfd2..000000000 --- a/mods/funcs/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js +++ /dev/null @@ -1,5367 +0,0 @@ -// source: protoc-gen-openapiv2/options/openapiv2.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Contact', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Header', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Info', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.License', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Response', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Tag', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Operation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Operation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Header, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Header'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Response, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Response'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Info, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Info'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Contact'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.License, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.License.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.License'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Schema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Tag, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Tag'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_ = [5,6,7,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject = function(includeInstance, msg) { - var f, obj = { - swagger: jspb.Message.getFieldWithDefault(msg, 1, ""), - info: (f = msg.getInfo()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(includeInstance, f), - host: jspb.Message.getFieldWithDefault(msg, 3, ""), - basePath: jspb.Message.getFieldWithDefault(msg, 4, ""), - schemesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - securityDefinitions: (f = msg.getSecurityDefinitions()) && proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(includeInstance, f), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSwagger(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader); - msg.setInfo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setBasePath(value); - break; - case 5: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 10: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 11: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader); - msg.setSecurityDefinitions(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 14: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 15: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSwagger(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInfo(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBasePath(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSecurityDefinitions(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 14, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string swagger = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSwagger = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSwagger = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Info info = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getInfo = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Info, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearInfo = function() { - return this.setInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasInfo = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string host = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string base_path = 4; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getBasePath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setBasePath = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated Scheme schemes = 5; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 10; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 10, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * optional SecurityDefinitions security_definitions = 11; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityDefinitions = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, 11)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityDefinitions = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityDefinitions = function() { - return this.setSecurityDefinitions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasSecurityDefinitions = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * optional ExternalDocumentation external_docs = 14; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 14)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 14, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 14) != null; -}; - - -/** - * map extensions = 15; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 15, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_ = [1,6,7,10,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject = function(includeInstance, msg) { - var f, obj = { - tagsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - summary: jspb.Message.getFieldWithDefault(msg, 2, ""), - description: jspb.Message.getFieldWithDefault(msg, 3, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - operationId: jspb.Message.getFieldWithDefault(msg, 5, ""), - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - schemesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f, - deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 11, false), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Operation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSummary(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setOperationId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 9: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 10: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDeprecated(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 13: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getSummary(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getOperationId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 10, - f - ); - } - f = message.getDeprecated(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * repeated string tags = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getTagsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setTagsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addTags = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearTagsList = function() { - return this.setTagsList([]); -}; - - -/** - * optional string summary = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSummary = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSummary = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string description = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string operation_id = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getOperationId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setOperationId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * repeated Scheme schemes = 10; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 10, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 10, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * optional bool deprecated = 11; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDeprecated = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDeprecated = function(value) { - return jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * map extensions = 13; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 13, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, ""), - format: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 6, ""), - pattern: jspb.Message.getFieldWithDefault(msg, 13, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Header; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string type = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string format = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string default = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string pattern = 13; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 13, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - schema: (f = msg.getSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(includeInstance, f), - headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject) : [], - examplesMap: (f = msg.getExamplesMap()) ? f.toObject(includeInstance, undefined) : [], - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Response; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader); - msg.setSchema(value); - break; - case 3: - var value = msg.getHeadersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Header()); - }); - break; - case 4: - var value = msg.getExamplesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - case 5: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchema(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter - ); - } - f = message.getHeadersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter); - } - f = message.getExamplesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Schema schema = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setSchema = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearSchema = function() { - return this.setSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.hasSchema = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * map headers = 3; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getHeadersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 3, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Header)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearHeadersMap = function() { - this.getHeadersMap().clear(); - return this;}; - - -/** - * map examples = 4; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExamplesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 4, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExamplesMap = function() { - this.getExamplesMap().clear(); - return this;}; - - -/** - * map extensions = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject = function(includeInstance, msg) { - var f, obj = { - title: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - termsOfService: jspb.Message.getFieldWithDefault(msg, 3, ""), - contact: (f = msg.getContact()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(includeInstance, f), - license: (f = msg.getLicense()) && proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(includeInstance, f), - version: jspb.Message.getFieldWithDefault(msg, 6, ""), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTermsOfService(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader); - msg.setContact(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader); - msg.setLicense(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 7: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTermsOfService(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getContact(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter - ); - } - f = message.getLicense(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string title = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string terms_of_service = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTermsOfService = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTermsOfService = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional Contact contact = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getContact = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setContact = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearContact = function() { - return this.setContact(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasContact = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional License license = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getLicense = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.License} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.License, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.License|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setLicense = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearLicense = function() { - return this.setLicense(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasLicense = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string version = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setVersion = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * map extensions = 7; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 7, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject = function(includeInstance, msg) { - var f, obj = { - jsonSchema: (f = msg.getJsonSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(includeInstance, f), - discriminator: jspb.Message.getFieldWithDefault(msg, 2, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - example: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader); - msg.setJsonSchema(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDiscriminator(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsonSchema(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter - ); - } - f = message.getDiscriminator(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional JSONSchema json_schema = 1; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getJsonSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, 1)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setJsonSchema = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearJsonSchema = function() { - return this.setJsonSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasJsonSchema = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string discriminator = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getDiscriminator = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setDiscriminator = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool read_only = 3; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string example = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_ = [26,34,35,46]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 3, ""), - title: jspb.Message.getFieldWithDefault(msg, 5, ""), - description: jspb.Message.getFieldWithDefault(msg, 6, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 7, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - example: jspb.Message.getFieldWithDefault(msg, 9, ""), - multipleOf: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0), - maximum: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0), - exclusiveMaximum: jspb.Message.getBooleanFieldWithDefault(msg, 12, false), - minimum: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), - exclusiveMinimum: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - maxLength: jspb.Message.getFieldWithDefault(msg, 15, 0), - minLength: jspb.Message.getFieldWithDefault(msg, 16, 0), - pattern: jspb.Message.getFieldWithDefault(msg, 17, ""), - maxItems: jspb.Message.getFieldWithDefault(msg, 20, 0), - minItems: jspb.Message.getFieldWithDefault(msg, 21, 0), - uniqueItems: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), - maxProperties: jspb.Message.getFieldWithDefault(msg, 24, 0), - minProperties: jspb.Message.getFieldWithDefault(msg, 25, 0), - requiredList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, - arrayList: (f = jspb.Message.getRepeatedField(msg, 34)) == null ? undefined : f, - typeList: (f = jspb.Message.getRepeatedField(msg, 35)) == null ? undefined : f, - format: jspb.Message.getFieldWithDefault(msg, 36, ""), - enumList: (f = jspb.Message.getRepeatedField(msg, 46)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - case 10: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMultipleOf(value); - break; - case 11: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMaximum(value); - break; - case 12: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMaximum(value); - break; - case 13: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMinimum(value); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMinimum(value); - break; - case 15: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxLength(value); - break; - case 16: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinLength(value); - break; - case 17: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - case 20: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxItems(value); - break; - case 21: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinItems(value); - break; - case 22: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUniqueItems(value); - break; - case 24: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxProperties(value); - break; - case 25: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinProperties(value); - break; - case 26: - var value = /** @type {string} */ (reader.readString()); - msg.addRequired(value); - break; - case 34: - var value = /** @type {string} */ (reader.readString()); - msg.addArray(value); - break; - case 35: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addType(values[i]); - } - break; - case 36: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 46: - var value = /** @type {string} */ (reader.readString()); - msg.addEnum(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getMultipleOf(); - if (f !== 0.0) { - writer.writeDouble( - 10, - f - ); - } - f = message.getMaximum(); - if (f !== 0.0) { - writer.writeDouble( - 11, - f - ); - } - f = message.getExclusiveMaximum(); - if (f) { - writer.writeBool( - 12, - f - ); - } - f = message.getMinimum(); - if (f !== 0.0) { - writer.writeDouble( - 13, - f - ); - } - f = message.getExclusiveMinimum(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getMaxLength(); - if (f !== 0) { - writer.writeUint64( - 15, - f - ); - } - f = message.getMinLength(); - if (f !== 0) { - writer.writeUint64( - 16, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 17, - f - ); - } - f = message.getMaxItems(); - if (f !== 0) { - writer.writeUint64( - 20, - f - ); - } - f = message.getMinItems(); - if (f !== 0) { - writer.writeUint64( - 21, - f - ); - } - f = message.getUniqueItems(); - if (f) { - writer.writeBool( - 22, - f - ); - } - f = message.getMaxProperties(); - if (f !== 0) { - writer.writeUint64( - 24, - f - ); - } - f = message.getMinProperties(); - if (f !== 0) { - writer.writeUint64( - 25, - f - ); - } - f = message.getRequiredList(); - if (f.length > 0) { - writer.writeRepeatedString( - 26, - f - ); - } - f = message.getArrayList(); - if (f.length > 0) { - writer.writeRepeatedString( - 34, - f - ); - } - f = message.getTypeList(); - if (f.length > 0) { - writer.writePackedEnum( - 35, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 36, - f - ); - } - f = message.getEnumList(); - if (f.length > 0) { - writer.writeRepeatedString( - 46, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes = { - UNKNOWN: 0, - ARRAY: 1, - BOOLEAN: 2, - INTEGER: 3, - NULL: 4, - NUMBER: 5, - OBJECT: 6, - STRING: 7 -}; - -/** - * optional string ref = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string title = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string description = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string default = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional bool read_only = 8; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - -/** - * optional string example = 9; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional double multiple_of = 10; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMultipleOf = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMultipleOf = function(value) { - return jspb.Message.setProto3FloatField(this, 10, value); -}; - - -/** - * optional double maximum = 11; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaximum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaximum = function(value) { - return jspb.Message.setProto3FloatField(this, 11, value); -}; - - -/** - * optional bool exclusive_maximum = 12; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMaximum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMaximum = function(value) { - return jspb.Message.setProto3BooleanField(this, 12, value); -}; - - -/** - * optional double minimum = 13; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinimum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinimum = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); -}; - - -/** - * optional bool exclusive_minimum = 14; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMinimum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMinimum = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * optional uint64 max_length = 15; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxLength = function(value) { - return jspb.Message.setProto3IntField(this, 15, value); -}; - - -/** - * optional uint64 min_length = 16; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinLength = function(value) { - return jspb.Message.setProto3IntField(this, 16, value); -}; - - -/** - * optional string pattern = 17; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 17, value); -}; - - -/** - * optional uint64 max_items = 20; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxItems = function(value) { - return jspb.Message.setProto3IntField(this, 20, value); -}; - - -/** - * optional uint64 min_items = 21; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinItems = function(value) { - return jspb.Message.setProto3IntField(this, 21, value); -}; - - -/** - * optional bool unique_items = 22; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getUniqueItems = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setUniqueItems = function(value) { - return jspb.Message.setProto3BooleanField(this, 22, value); -}; - - -/** - * optional uint64 max_properties = 24; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxProperties = function(value) { - return jspb.Message.setProto3IntField(this, 24, value); -}; - - -/** - * optional uint64 min_properties = 25; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinProperties = function(value) { - return jspb.Message.setProto3IntField(this, 25, value); -}; - - -/** - * repeated string required = 26; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRequiredList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 26)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRequiredList = function(value) { - return jspb.Message.setField(this, 26, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addRequired = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 26, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearRequiredList = function() { - return this.setRequiredList([]); -}; - - -/** - * repeated string array = 34; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getArrayList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 34)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setArrayList = function(value) { - return jspb.Message.setField(this, 34, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addArray = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 34, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearArrayList = function() { - return this.setArrayList([]); -}; - - -/** - * repeated JSONSchemaSimpleTypes type = 35; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTypeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 35)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTypeList = function(value) { - return jspb.Message.setField(this, 35, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addType = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 35, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearTypeList = function() { - return this.setTypeList([]); -}; - - -/** - * optional string format = 36; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 36, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 36, value); -}; - - -/** - * repeated string enum = 46; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getEnumList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 46)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setEnumList = function(value) { - return jspb.Message.setField(this, 46, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addEnum = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 46, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearEnumList = function() { - return this.setEnumList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Tag; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 3; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 3)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject = function(includeInstance, msg) { - var f, obj = { - securityMap: (f = msg.getSecurityMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter); - } -}; - - -/** - * map security = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.getSecurityMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.clearSecurityMap = function() { - this.getSecurityMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject = function(includeInstance, msg) { - var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_in: jspb.Message.getFieldWithDefault(msg, 4, 0), - flow: jspb.Message.getFieldWithDefault(msg, 5, 0), - authorizationUrl: jspb.Message.getFieldWithDefault(msg, 6, ""), - tokenUrl: jspb.Message.getFieldWithDefault(msg, 7, ""), - scopes: (f = msg.getScopes()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (reader.readEnum()); - msg.setIn(value); - break; - case 5: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (reader.readEnum()); - msg.setFlow(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthorizationUrl(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setTokenUrl(value); - break; - case 8: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader); - msg.setScopes(value); - break; - case 9: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIn(); - if (f !== 0.0) { - writer.writeEnum( - 4, - f - ); - } - f = message.getFlow(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } - f = message.getAuthorizationUrl(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getTokenUrl(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getScopes(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type = { - TYPE_INVALID: 0, - TYPE_BASIC: 1, - TYPE_API_KEY: 2, - TYPE_OAUTH2: 3 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In = { - IN_INVALID: 0, - IN_QUERY: 1, - IN_HEADER: 2 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow = { - FLOW_INVALID: 0, - FLOW_IMPLICIT: 1, - FLOW_PASSWORD: 2, - FLOW_APPLICATION: 3, - FLOW_ACCESS_CODE: 4 -}; - -/** - * optional Type type = 1; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getType = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional In in = 4; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getIn = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setIn = function(value) { - return jspb.Message.setProto3EnumField(this, 4, value); -}; - - -/** - * optional Flow flow = 5; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getFlow = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setFlow = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); -}; - - -/** - * optional string authorization_url = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getAuthorizationUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setAuthorizationUrl = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string token_url = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getTokenUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setTokenUrl = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional Scopes scopes = 8; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getScopes = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, 8)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setScopes = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearScopes = function() { - return this.setScopes(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.hasScopes = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * map extensions = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject = function(includeInstance, msg) { - var f, obj = { - securityRequirementMap: (f = msg.getSecurityRequirementMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityRequirementMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityRequirementMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject = function(includeInstance, msg) { - var f, obj = { - scopeList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addScope(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } -}; - - -/** - * repeated string scope = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.getScopeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.setScopeList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.addScope = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.clearScopeList = function() { - return this.setScopeList([]); -}; - - -/** - * map security_requirement = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.getSecurityRequirementMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.clearSecurityRequirementMap = function() { - this.getSecurityRequirementMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject = function(includeInstance, msg) { - var f, obj = { - scopeMap: (f = msg.getScopeMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getScopeMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map scope = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.getScopeMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.clearScopeMap = function() { - this.getScopeMap().clear(); - return this;}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme = { - UNKNOWN: 0, - HTTP: 1, - HTTPS: 2, - WS: 3, - WSS: 4 -}; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/funcs/src/service/registry.ts b/mods/funcs/src/service/registry.ts deleted file mode 100644 index 9ee2646b9..000000000 --- a/mods/funcs/src/service/registry.ts +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Docker from "dockerode"; -import fs from "fs"; -import logger from "@fonoster/logger"; -import { ServerStream } from "./funcs"; -import { FonosterError } from "@fonoster/errors"; -import walk from "walk"; -import { promisify } from "util"; - -const sleep = promisify(setTimeout); - -export interface BuildInfo { - image: string; - pathToFunc: string; - registry: string; - username?: string; - secret?: string; - token?: string; -} - -const getAuth = (request: BuildInfo) => { - logger.verbose( - `@fonoster/funcs image build [constructing auth obj for ${request.registry}]` - ); - return { - username: request.username, - password: request.secret, - serveraddress: "https://index.docker.io/v1" - }; -}; - -const ls = (pathToFunc: string): Promise => { - const walker = walk.walk(pathToFunc); - const files = []; - - return new Promise((resolve, reject) => { - walker.on( - "file", - (root: string, stats: { name: string }, next: () => void) => { - let base = root.substring(pathToFunc.length + 1); - base = base.length > 0 ? base + "/" : ""; - const file = base + stats.name; - - logger.verbose( - `@fonoster/storage walk [base = ${base}, name = ${stats.name}]` - ); - - files.push(file); - next(); - } - ); - - walker.on("errors", (e: any) => { - reject(e); - }); - - walker.on("end", () => { - logger.verbose(`@fonoster/storage walk [finished walking ${pathToFunc}]`); - logger.verbose(`@fonoster/funcs walk [ files = ${files}`); - resolve(files); - }); - }); -}; - -// Push image function -export default async function (request: BuildInfo, serverStream: ServerStream) { - const attempts = [1, 2, 3]; - let index; - for (index in attempts) { - // Sometime the image is not inmediatly available so we try a few times - logger.verbose( - `@fonoster/funcs publish [waiting for files to be ready (try #${attempts[index]})` - ); - - logger.verbose( - `@fonoster/funcs registry [is file ${ - request.pathToFunc - } present? ${fs.existsSync(request.pathToFunc)}` - ); - - if (fs.existsSync(request.pathToFunc)) { - break; - } else { - // Wait for 10 seconds for minio to be ready - await sleep(10000); - } - } - - const files = await ls(request.pathToFunc); - - serverStream.write("loaded function files"); - serverStream.write("connecting to the builder daemon"); - serverStream.write("sending files to builder daemon"); - serverStream.write("building image"); - serverStream.write("required function keys added"); - - const docker = new Docker({ socketPath: "/var/run/docker.sock" }); - try { - const stream = await docker.buildImage( - { - context: request.pathToFunc, - src: files - }, - { t: request.image } - ); - - await new Promise((resolve, reject) => { - docker.modem.followProgress(stream, (err, res) => - err ? reject(err) : resolve(res) - ); - }); - - serverStream.write("build complete"); - const image = docker.getImage(request.image); - - serverStream.write("obtaining authentication handler"); - const auth = getAuth(request); - - const stream2 = await image.push({ - tag: "latest", - authconfig: auth - }); - - await new Promise((resolve, reject) => { - docker.modem.followProgress(stream2, (err, res) => - err ? reject(err) : resolve(res) - ); - }); - } catch (e) { - logger.error(JSON.stringify(e)); - throw new FonosterError( - `Unable to pulish image ${request.image} to registry ${request.registry}` - ); - } finally { - // Clean all the files - fs.rmdirSync(request.pathToFunc, { recursive: true }); - } -} diff --git a/mods/funcs/src/service/runner.ts b/mods/funcs/src/service/runner.ts deleted file mode 100644 index 2c3500c02..000000000 --- a/mods/funcs/src/service/runner.ts +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env node -import { Tracer as T } from "@fonoster/common"; -T.init("funcs-service"); - -import { AuthMiddleware } from "@fonoster/auth"; -import { runServices } from "@fonoster/common"; -import { getSalt } from "@fonoster/certs"; -import { FuncsService } from "./protos/funcs_grpc_pb"; -import FuncsServer from "./funcs"; - -const services = [ - { - name: "Funcs", - version: "v1beta1", - service: FuncsService, - server: new FuncsServer() - } -]; - -const middleware = { - name: "Authentication", - middlewareObj: new AuthMiddleware(getSalt()).middleware -}; - -runServices(services, [middleware]); diff --git a/mods/funcs/src/utils/auth.ts b/mods/funcs/src/utils/auth.ts deleted file mode 100644 index 9435ee2ad..000000000 --- a/mods/funcs/src/utils/auth.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Jwt, AuthUtils } from "@fonoster/auth"; -import { getSalt, AUTH_ISS } from "@fonoster/certs"; - -// Obtains a set of credentials for the docker image -// TODO: Role should be a constant somewhere -export default async function (accesKeyId: string) { - const auth = new AuthUtils(new Jwt()); - const token = await auth.createToken( - accesKeyId, - AUTH_ISS, - "FUNCTION", - getSalt() - ); - return token.accessToken; -} diff --git a/mods/funcs/src/utils/utils.ts b/mods/funcs/src/utils/utils.ts deleted file mode 100644 index 2a5b3cc88..000000000 --- a/mods/funcs/src/utils/utils.ts +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import FuncsPB, { Func } from "../service/protos/funcs_pb"; -import { DeployFuncRequest, FuncParameters } from "../client/types"; -import fs from "fs-extra"; -import path from "path"; -import tar from "tar"; -import { FonosterError, ErrorCodes } from "@fonoster/errors"; -import cron from "cron-validate"; -import createAccessKeySecret from "./auth"; -import { FunctionDefinition } from "openfaas-client"; - -export const buildDeployFuncRequest = (request: DeployFuncRequest) => { - const limits = new FuncsPB.Resource(); - const requests = new FuncsPB.Resource(); - - if (request.limits) { - limits.setCpu(request.limits.cpu); - limits.setMemory(request.limits.memory); - } - - if (request.requests) { - requests.setCpu(request.requests.cpu); - requests.setMemory(request.requests.memory); - } - - const dfr = new FuncsPB.DeployFuncRequest(); - dfr.setName(request.name); - dfr.setLimits(limits); - dfr.setRequests(requests); - dfr.setSchedule(request.schedule); - return dfr; -}; - -export const assertValidFuncName = (name: string) => { - if (/[^a-z0-9_]/.test(name)) - throw new FonosterError( - "function name must be a-z0-9_", - ErrorCodes.INVALID_ARGUMENT - ); -}; - -export const assertValidSchedule = (schedule: string) => { - if (schedule && !cron(schedule).isValid()) { - throw new FonosterError( - "function schedule is not valid (invalid cron expression)", - ErrorCodes.INVALID_ARGUMENT - ); - } -}; - -// @deprecated -export const validateFunc = (pathToFunc: string) => { - const packagePath = path.join(pathToFunc, "package.json"); - let pInfo; - - // Expects an existing valid package.json - const packageInfo = (p: string) => JSON.parse(`${fs.readFileSync(p)}`); - - try { - pInfo = packageInfo(packagePath); - } catch (err) { - throw new Error( - `Unable to obtain function info. Ensure package.json exists in '${pathToFunc}', and that is well formatted` - ); - } - - if (!pInfo.main) throw new Error('Missing "main" entry at package.json'); - - const mainScript = `${pathToFunc}/${pInfo.main}`; - - if (!fs.existsSync(mainScript)) - throw new Error(`Cannot find main script at "${mainScript}"`); - - if (!fs.existsSync(pathToFunc) || !fs.lstatSync(pathToFunc).isDirectory()) { - throw new Error(`${pathToFunc} does not exist or is not a directory`); - } - - if (!fs.existsSync(packagePath)) { - throw new Error(`not package.json found in ${pathToFunc}`); - } -}; - -export const cleanupTmpDirSync = (dirName: string) => { - if (fs.existsSync(`/tmp/${dirName}`)) - fs.rmdirSync(`/tmp/${dirName}`, { recursive: true }); - if (fs.existsSync(`/tmp/${dirName}.tgz`)) - fs.unlinkSync(`/tmp/${dirName}.tgz`); -}; - -export const copyFuncAtTmp = async (funcPath: string, dirName: string) => { - await fs.copy(funcPath, `/tmp/${dirName}`, { - filter: (currentPath) => !currentPath.includes("node_modules") - }); - await tar.create({ file: `/tmp/${dirName}.tgz`, cwd: "/tmp" }, [dirName]); -}; - -export const getFuncName = (accessKeyId: string, name: string) => - `fn${accessKeyId}${name}`; - -export const getImageName = (accessKeyId: string, name: string) => - `${process.env.DOCKER_REGISTRY_ORG}/fn${accessKeyId}${name}`; - -export const getBuildDir = (accessKeyId: string, funcName: string) => - process.env.NODE_ENV === "dev" - ? "/tmp/example" - : path.join(process.env.FUNCS_WORKDIR, accessKeyId, funcName); - -export const buildFaasDeployParameters = async (params: FuncParameters) => { - const endpoint = process.env.PUBLIC_URL.replace("http://", "").replace( - "https://", - "" - ); - - const parameters: FunctionDefinition = { - service: getFuncName(params.accessKeyId, params.request.getName()), - image: getImageName(params.accessKeyId, params.request.getName()), - limits: { - memory: undefined, - cpu: undefined - }, - requests: { - memory: undefined, - cpu: undefined - }, - envProcess: undefined, - labels: { - funcName: params.request.getName() - }, - envVars: { - ACCESS_KEY_ID: params.accessKeyId, - ACCESS_KEY_SECRET: await createAccessKeySecret(params.accessKeyId), - APISERVER_ENDPOINT: endpoint - }, - annotations: { - topic: undefined, - schedule: undefined - } - }; - const limits = params.request.getLimits(); - const requests = params.request.getRequests(); - - if (params.request.getSchedule()) { - parameters.annotations = { - topic: "cron-function", - schedule: params.request.getSchedule() - }; - } - if (limits && limits.getMemory()) - parameters.limits.memory = limits.getMemory(); - if (limits && limits.getCpu()) parameters.limits.cpu = limits.getCpu(); - if (requests && requests.getMemory()) - parameters.requests.memory = requests.getMemory(); - if (requests && requests.getCpu()) - parameters.requests.cpu = requests.getCpu(); - - return parameters; -}; - -export const rawFuncToFunc = (rawFunc: any) => { - const func = new Func(); - func.setName(rawFunc.labels.funcName); - func.setImage(rawFunc.image); - func.setInvocationCount(rawFunc.invocationCount); - func.setReplicas(rawFunc.replicas); - func.setAvailableReplicas(rawFunc.availableReplicas); - if (rawFunc.annotations && rawFunc.annotations.schedule) { - func.setSchedule(rawFunc.annotations.schedule); - } - return func; -}; diff --git a/mods/funcs/test/client.int.test.ts b/mods/funcs/test/client.int.test.ts deleted file mode 100644 index bdbfcd201..000000000 --- a/mods/funcs/test/client.int.test.ts +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import Funcs from "../src/client/funcs"; -import { DeployFuncRequest, GetFuncRequest } from "../src/client/types"; -import logger from "@fonoster/logger"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/funcs/client", () => { - afterEach(() => sandbox.restore()); - - it("should fail because path doesn't exist a function", async () => { - const request: DeployFuncRequest = { - name: "function1", - path: __dirname + "/../etc/testfunc1" - }; - - const funcs = new Funcs(); - expect(funcs.deployFunc(request)).to.eventually.rejectedWith( - "Unable to obtain function info." - ); - }); - - it("should deploy a function and set a schedule", (done) => { - const request: DeployFuncRequest = { - path: __dirname + "/../etc/example", - name: "get_intent", - schedule: "0 0 */1 * *" - }; - - const funcs = new Funcs(); - funcs.deployFunc(request).then((stream) => { - stream.onMessage((msg) => { - logger.info(msg.text); - }); - stream.onFinish(() => { - logger.info("end"); - done(); - }); - stream.onError((e: Error) => { - logger.error("end"); - done(e); - }); - }); - }); - - it("should get a function by name", async () => { - const request: GetFuncRequest = { - name: "get_intent" - }; - const funcs = new Funcs(); - const result = await funcs.getFunc(request); - expect(result).to.have.property("name").to.be.equal("get_intent"); - }); - - it("will retrive a list of logs", (done) => { - const request = { - name: "get_intent", - tail: 10, - follow: true, - since: "" - }; - - const funcs = new Funcs(); - - funcs.getFuncLogs(request).then((stream) => { - stream.onMessage((msg) => { - logger.info(msg.text); - }); - stream.onFinish(() => { - logger.info("end"); - done(); - }); - stream.onError((e: Error) => { - logger.error("end"); - done(e); - }); - }); - // For now test by observation :( - }); -}); diff --git a/mods/funcs/test/client.unit.test.ts b/mods/funcs/test/client.unit.test.ts deleted file mode 100644 index 9305dfaa1..000000000 --- a/mods/funcs/test/client.unit.test.ts +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { APIClient } from "@fonoster/common"; -import Funcs, { buildDeployFuncRequest, FuncsPB } from "../src/client/funcs"; -import { DeployFuncRequest } from "../src/client/types"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -const funcObj = new FuncsPB.Func(); -funcObj.setName("fn001"); -funcObj.setImage("docker.io/functions/fn001"); -funcObj.setAvailableReplicas(1); -funcObj.setReplicas(1); -funcObj.setInvocationCount(1000); -funcObj.setSchedule("* * * * *"); - -describe("@fonoster/funcs/client", () => { - afterEach(() => sandbox.restore()); - - it("returns a function object a DeployFuncRequest", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const request: DeployFuncRequest = { - name: "function1", - path: "...", - schedule: "0 0 */1 * *", - limits: { - memory: "10Mi", - cpu: "110m" - }, - requests: { - memory: "5Mi", - cpu: "100m" - } - }; - const func = buildDeployFuncRequest(request); - - expect(func.getName()).to.be.equal(request.name); - expect(func.getSchedule()).to.be.equal(request.schedule); - expect(func.getLimits().getMemory()).to.be.equal(request.limits.memory); - expect(func.getLimits().getCpu()).to.be.equal(request.limits.cpu); - expect(func.getRequests().getMemory()).to.be.equal(request.requests.memory); - expect(func.getRequests().getCpu()).to.be.equal(request.requests.cpu); - }); - - it("should get a function by name", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - sandbox.stub(APIClient.prototype, "getService").returns({ - getFunc: (req, meta, callback) => { - callback(null, funcObj); - } - }); - - const funcs = new Funcs(); - const result = await funcs.getFunc({ name: funcObj.getName() }); - expect(result).to.have.property("name").to.be.equal(funcObj.getName()); - expect(result).to.have.property("image").to.be.equal(funcObj.getImage()); - expect(result) - .to.have.property("invocationCount") - .to.be.equal(funcObj.getInvocationCount()); - expect(result) - .to.have.property("replicas") - .to.be.equal(funcObj.getReplicas()); - expect(result) - .to.have.property("schedule") - .to.be.equal(funcObj.getSchedule()); - expect(result) - .to.have.property("availableReplicas") - .to.be.equal(funcObj.getAvailableReplicas()); - }); - - it("should delete a function", async () => { - const response = { - name: funcObj.getName() - }; - sandbox.stub(APIClient.prototype, "init").returns(); - const stubFunc = sandbox.stub(APIClient.prototype, "getService").returns({ - deleteFunc: (req, meta, callback) => { - callback(null, response); - } - }); - - const funcs = new Funcs(); - const result = await funcs.deleteFunc({ name: funcObj.getName() }); - - expect(stubFunc).to.be.calledTwice; - expect(result).to.have.property("name").to.be.equal(response.name); - }); - - it("should get a list of functions", async () => { - const request = { - pageSize: 0, - pageToken: "1", - view: 0 - }; - - sandbox.stub(APIClient.prototype, "init").returns(); - const stubFunc = sandbox.stub(APIClient.prototype, "getService").returns({ - listFuncs: (req, meta, callback) => { - callback(null, { - getNextPageToken: () => { - return "1"; - }, - getFuncsList: () => [funcObj] - }); - } - }); - - const funcs = new Funcs(); - const result = await funcs.listFuncs(request); - expect(stubFunc).to.be.calledTwice; - expect(result) - .to.have.property("nextPageToken") - .to.be.equal(request.pageToken); - expect(result.funcs[0]) - .to.have.property("name") - .to.be.equal(funcObj.getName()); - expect(result.funcs[0]) - .to.have.property("invocationCount") - .to.be.equal(funcObj.getInvocationCount()); - expect(result.funcs[0]) - .to.have.property("replicas") - .to.be.equal(funcObj.getReplicas()); - expect(result.funcs[0]) - .to.have.property("availableReplicas") - .to.be.equal(funcObj.getAvailableReplicas()); - }); -}); diff --git a/mods/funcs/test/service.unit.test.ts b/mods/funcs/test/service.unit.test.ts deleted file mode 100644 index 988ba6d59..000000000 --- a/mods/funcs/test/service.unit.test.ts +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import FuncsService from "../src/service/funcs"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/funcs/service", () => { - afterEach(() => sandbox.restore()); - - it("needs testing", async () => {}); -}); diff --git a/mods/funcs/tsconfig.json b/mods/funcs/tsconfig.json deleted file mode 100644 index 86a25fbf4..000000000 --- a/mods/funcs/tsconfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../common" }, - { "path": "../auth" }, - { "path": "../certs" }, - { "path": "../logger" }, - { "path": "../core" }, - { "path": "../errors" }, - { "path": "../storage" } - ], - "exclude": ["node_modules", "dist", "test", "etc"] -} diff --git a/mods/googleasr/.npmignore b/mods/googleasr/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/googleasr/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/googleasr/CHANGELOG.md b/mods/googleasr/CHANGELOG.md deleted file mode 100644 index 17ab502fb..000000000 --- a/mods/googleasr/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -# 0.2.20 - -Initial release. \ No newline at end of file diff --git a/mods/googleasr/README.md b/mods/googleasr/README.md deleted file mode 100644 index fd7ad7d5c..000000000 --- a/mods/googleasr/README.md +++ /dev/null @@ -1,35 +0,0 @@ -Voice application plugin that accurately convert speech into text using an API powered by Google’s AI technologies. - -## Installation - -```bash -npm install @fonoster/googleasr -``` - -or - -```bash -yarn add @fonoster/googleasr -``` - -## Usage - -```javascript -const { VoiceServer } = require("@fonoster/voice"); -const GoogleASR = require("@fonoster/googleasr"); -const voiceServer = new VoiceServer({ base: '/voiceapp' }); - -// Set the server to use the speech APIS -const speechConfig = { keyFilename: "./google.json" }; -voiceServer.use(new GoogleASR(speechConfig)); - -voiceServer.listen(async(req, res) => { - console.log(req); - await res.answer(); - // To use this verb you MUST have a TTS plugin - const speech = await res.gather(); - - console.log("User input: " + speech"); - await res.hangup(); -}); -``` diff --git a/mods/googleasr/assets/logo.png b/mods/googleasr/assets/logo.png deleted file mode 100644 index d6793d551..000000000 Binary files a/mods/googleasr/assets/logo.png and /dev/null differ diff --git a/mods/googleasr/package-lock.json b/mods/googleasr/package-lock.json deleted file mode 100644 index f16e27f6b..000000000 --- a/mods/googleasr/package-lock.json +++ /dev/null @@ -1,1876 +0,0 @@ -{ - "name": "@fonoster/googleasr", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/googleasr", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@google-cloud/speech": "^4.10.1", - "bson-objectid": "^2.0.2", - "node-record-lpcm16": "^1.0.1", - "sync": "^0.2.5" - }, - "devDependencies": {} - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.6", - "@speedymonster/grpc-interceptors": "^0.2.5", - "atob": "^2.1.2", - "deepmerge": "^4.2.2" - } - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.3.3" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@google-cloud/common": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.9.0.tgz", - "integrity": "sha512-R9PfmCKbpOizvcLY+fz/TS4HdOQhvmf4EY4xEXvWnotGbGXujuTLJTJ2URy8BGT8TDxlh6gjjfEwjJ8McnNPIg==", - "dependencies": { - "@google-cloud/projectify": "^2.0.0", - "@google-cloud/promisify": "^2.0.0", - "arrify": "^2.0.1", - "duplexify": "^4.1.1", - "ent": "^2.2.0", - "extend": "^3.0.2", - "google-auth-library": "^7.9.2", - "retry-request": "^4.2.2", - "teeny-request": "^7.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@google-cloud/projectify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz", - "integrity": "sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@google-cloud/promisify": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz", - "integrity": "sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@google-cloud/speech": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/@google-cloud/speech/-/speech-4.10.2.tgz", - "integrity": "sha512-cFw/OvXy00suUyktbQJo1dGXhGEZ14gHD4BedTRYsUNGxRZlYTrF1HqCe46bKoHgxYZfbo9anhf7NMDIWfXwtA==", - "dependencies": { - "@google-cloud/common": "^3.0.0", - "@types/pumpify": "^1.4.1", - "google-gax": "^2.30.1", - "protobufjs": "^6.8.6", - "pumpify": "^2.0.0", - "stream-events": "^1.0.4", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.6.12", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.12.tgz", - "integrity": "sha512-JmvQ03OTSpVd9JTlj/K3IWHSz4Gk/JMLUTtW7Zb0KvO1LcOYGATh5cNuRYzCAeDR3O8wq+q8FZe97eO9MBrkUw==", - "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@grpc/grpc-js/node_modules/protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@grpc/grpc-js/node_modules/protobufjs/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz", - "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.11.3", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@types/duplexify": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.1.tgz", - "integrity": "sha512-n0zoEj/fMdMOvqbHxmqnza/kXyoGgJmEpsXjpP+gEqE1Ye4yNqc7xWipKnUoMpWhMuzJQSfK2gMrwlElly7OGQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" - }, - "node_modules/@types/pumpify": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@types/pumpify/-/pumpify-1.4.1.tgz", - "integrity": "sha512-l7u/Dnh1OG9T7VH6TvulR0g8oE8hgIW5409mSUKi8Vxw2+JV18aTa06Sv5bvNjrD0zbsB/cuZ/iTFQgFNfzIuw==", - "dependencies": { - "@types/duplexify": "*", - "@types/node": "*" - } - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "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/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "engines": { - "node": ">=8" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", - "engines": { - "node": "*" - } - }, - "node_modules/bson-objectid": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.4.tgz", - "integrity": "sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==" - }, - "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": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "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/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, - "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/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "peer": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" - }, - "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/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/fast-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" - }, - "node_modules/fibers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.1.tgz", - "integrity": "sha512-VMC7Frt87Oo0AOJ6EcPFbi+tZmkQ4tD85aatwyWL6I9cYMJmm2e+pXUJsfGZ36U7MffXtjou2XIiWJMtHriErw==", - "hasInstallScript": true, - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/gaxios": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", - "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", - "dependencies": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gcp-metadata": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", - "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", - "dependencies": { - "gaxios": "^4.0.0", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "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/google-auth-library": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz", - "integrity": "sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==", - "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^4.0.0", - "gcp-metadata": "^4.2.0", - "gtoken": "^5.0.4", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/google-gax": { - "version": "2.30.5", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-2.30.5.tgz", - "integrity": "sha512-Jey13YrAN2hfpozHzbtrwEfEHdStJh1GwaQ2+Akh1k0Tv/EuNVSuBtHZoKSBm5wBMvNsxTsEIZ/152NrYyZgxQ==", - "dependencies": { - "@grpc/grpc-js": "~1.6.0", - "@grpc/proto-loader": "^0.6.12", - "@types/long": "^4.0.0", - "abort-controller": "^3.0.0", - "duplexify": "^4.0.0", - "fast-text-encoding": "^1.0.3", - "google-auth-library": "^7.14.0", - "is-stream-ended": "^0.1.4", - "node-fetch": "^2.6.1", - "object-hash": "^3.0.0", - "proto3-json-serializer": "^0.1.8", - "protobufjs": "6.11.3", - "retry-request": "^4.0.0" - }, - "bin": { - "compileProtos": "build/tools/compileProtos.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/google-p12-pem": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", - "integrity": "sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ==", - "dependencies": { - "node-forge": "^1.0.0" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gtoken": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", - "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", - "dependencies": { - "gaxios": "^4.0.0", - "google-p12-pem": "^3.1.3", - "jws": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.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/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-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-stream-ended": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", - "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" - }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "dependencies": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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/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/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "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/node-record-lpcm16": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/node-record-lpcm16/-/node-record-lpcm16-1.0.1.tgz", - "integrity": "sha512-H75GMOP8ErnF67m21+qSgj4USnzv5RLfm7OkEItdIi+soNKoJZpMQPX6umM8Cn9nVPSgd/dBUtc1msst5MmABA==", - "dependencies": { - "debug": "^2.6.8" - } - }, - "node_modules/node-record-lpcm16/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/node-record-lpcm16/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/proto3-json-serializer": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-0.1.9.tgz", - "integrity": "sha512-A60IisqvnuI45qNRygJjrnNjX2TMdQGMY+57tR3nul3ZgO2zXkR9OGR8AXxJhkqx84g0FTnrfi3D5fWMSdANdQ==", - "dependencies": { - "protobufjs": "^6.11.2" - } - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz", - "integrity": "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==", - "dependencies": { - "duplexify": "^4.1.1", - "inherits": "^2.0.3", - "pump": "^3.0.0" - } - }, - "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/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/retry-request": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz", - "integrity": "sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==", - "dependencies": { - "debug": "^4.1.1", - "extend": "^3.0.2" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "optional": true, - "peer": true - }, - "node_modules/stream-events": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", - "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", - "dependencies": { - "stubs": "^3.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "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/stubs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" - }, - "node_modules/sync": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/sync/-/sync-0.2.5.tgz", - "integrity": "sha1-ORC7m2ar7lZULi5w8M5UkDElLfY=", - "dependencies": { - "fibers": ">=0.6" - }, - "engines": { - "node": ">=0.5.2" - } - }, - "node_modules/teeny-request": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.3.tgz", - "integrity": "sha512-Ew3aoFzgQEatLA5OBIjdr1DWJUaC1xardG+qbPPo5k/y/3fMwXLxpjh5UB5dVfElktLaQbbMs80chkz53ByvSg==", - "dependencies": { - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "stream-events": "^1.0.5", - "uuid": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "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/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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/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" - } - } - }, - "dependencies": { - "@google-cloud/common": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.9.0.tgz", - "integrity": "sha512-R9PfmCKbpOizvcLY+fz/TS4HdOQhvmf4EY4xEXvWnotGbGXujuTLJTJ2URy8BGT8TDxlh6gjjfEwjJ8McnNPIg==", - "requires": { - "@google-cloud/projectify": "^2.0.0", - "@google-cloud/promisify": "^2.0.0", - "arrify": "^2.0.1", - "duplexify": "^4.1.1", - "ent": "^2.2.0", - "extend": "^3.0.2", - "google-auth-library": "^7.9.2", - "retry-request": "^4.2.2", - "teeny-request": "^7.0.0" - } - }, - "@google-cloud/projectify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz", - "integrity": "sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ==" - }, - "@google-cloud/promisify": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz", - "integrity": "sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==" - }, - "@google-cloud/speech": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/@google-cloud/speech/-/speech-4.10.2.tgz", - "integrity": "sha512-cFw/OvXy00suUyktbQJo1dGXhGEZ14gHD4BedTRYsUNGxRZlYTrF1HqCe46bKoHgxYZfbo9anhf7NMDIWfXwtA==", - "requires": { - "@google-cloud/common": "^3.0.0", - "@types/pumpify": "^1.4.1", - "google-gax": "^2.30.1", - "protobufjs": "^6.8.6", - "pumpify": "^2.0.0", - "stream-events": "^1.0.4", - "uuid": "^8.3.2" - } - }, - "@grpc/grpc-js": { - "version": "1.6.12", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.12.tgz", - "integrity": "sha512-JmvQ03OTSpVd9JTlj/K3IWHSz4Gk/JMLUTtW7Zb0KvO1LcOYGATh5cNuRYzCAeDR3O8wq+q8FZe97eO9MBrkUw==", - "requires": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "dependencies": { - "@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - } - }, - "protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - } - } - } - } - }, - "@grpc/proto-loader": { - "version": "0.6.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz", - "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.11.3", - "yargs": "^16.2.0" - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" - }, - "@types/duplexify": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.1.tgz", - "integrity": "sha512-n0zoEj/fMdMOvqbHxmqnza/kXyoGgJmEpsXjpP+gEqE1Ye4yNqc7xWipKnUoMpWhMuzJQSfK2gMrwlElly7OGQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" - }, - "@types/pumpify": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@types/pumpify/-/pumpify-1.4.1.tgz", - "integrity": "sha512-l7u/Dnh1OG9T7VH6TvulR0g8oE8hgIW5409mSUKi8Vxw2+JV18aTa06Sv5bvNjrD0zbsB/cuZ/iTFQgFNfzIuw==", - "requires": { - "@types/duplexify": "*", - "@types/node": "*" - } - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "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==" - } - } - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" - }, - "bson-objectid": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.4.tgz", - "integrity": "sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==" - }, - "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": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "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" - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, - "duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", - "requires": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, - "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==" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "peer": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "fast-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" - }, - "fibers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.1.tgz", - "integrity": "sha512-VMC7Frt87Oo0AOJ6EcPFbi+tZmkQ4tD85aatwyWL6I9cYMJmm2e+pXUJsfGZ36U7MffXtjou2XIiWJMtHriErw==", - "requires": { - "detect-libc": "^1.0.3" - } - }, - "gaxios": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", - "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", - "requires": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.1" - } - }, - "gcp-metadata": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", - "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", - "requires": { - "gaxios": "^4.0.0", - "json-bigint": "^1.0.0" - } - }, - "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==" - }, - "google-auth-library": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz", - "integrity": "sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==", - "requires": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^4.0.0", - "gcp-metadata": "^4.2.0", - "gtoken": "^5.0.4", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" - } - }, - "google-gax": { - "version": "2.30.5", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-2.30.5.tgz", - "integrity": "sha512-Jey13YrAN2hfpozHzbtrwEfEHdStJh1GwaQ2+Akh1k0Tv/EuNVSuBtHZoKSBm5wBMvNsxTsEIZ/152NrYyZgxQ==", - "requires": { - "@grpc/grpc-js": "~1.6.0", - "@grpc/proto-loader": "^0.6.12", - "@types/long": "^4.0.0", - "abort-controller": "^3.0.0", - "duplexify": "^4.0.0", - "fast-text-encoding": "^1.0.3", - "google-auth-library": "^7.14.0", - "is-stream-ended": "^0.1.4", - "node-fetch": "^2.6.1", - "object-hash": "^3.0.0", - "proto3-json-serializer": "^0.1.8", - "protobufjs": "6.11.3", - "retry-request": "^4.0.0" - } - }, - "google-p12-pem": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", - "integrity": "sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ==", - "requires": { - "node-forge": "^1.0.0" - } - }, - "gtoken": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", - "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", - "requires": { - "gaxios": "^4.0.0", - "google-p12-pem": "^3.1.3", - "jws": "^4.0.0" - } - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "peer": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "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-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-stream-ended": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", - "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" - }, - "json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "requires": { - "bignumber.js": "^9.0.0" - } - }, - "jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "requires": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" - }, - "node-record-lpcm16": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/node-record-lpcm16/-/node-record-lpcm16-1.0.1.tgz", - "integrity": "sha512-H75GMOP8ErnF67m21+qSgj4USnzv5RLfm7OkEItdIi+soNKoJZpMQPX6umM8Cn9nVPSgd/dBUtc1msst5MmABA==", - "requires": { - "debug": "^2.6.8" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "proto3-json-serializer": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-0.1.9.tgz", - "integrity": "sha512-A60IisqvnuI45qNRygJjrnNjX2TMdQGMY+57tR3nul3ZgO2zXkR9OGR8AXxJhkqx84g0FTnrfi3D5fWMSdANdQ==", - "requires": { - "protobufjs": "^6.11.2" - } - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz", - "integrity": "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==", - "requires": { - "duplexify": "^4.1.1", - "inherits": "^2.0.3", - "pump": "^3.0.0" - } - }, - "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" - } - }, - "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==" - }, - "retry-request": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz", - "integrity": "sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==", - "requires": { - "debug": "^4.1.1", - "extend": "^3.0.2" - } - }, - "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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "optional": true, - "peer": true - }, - "stream-events": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", - "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", - "requires": { - "stubs": "^3.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "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" - } - }, - "stubs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" - }, - "sync": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/sync/-/sync-0.2.5.tgz", - "integrity": "sha1-ORC7m2ar7lZULi5w8M5UkDElLfY=", - "requires": { - "fibers": ">=0.6" - } - }, - "teeny-request": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.3.tgz", - "integrity": "sha512-Ew3aoFzgQEatLA5OBIjdr1DWJUaC1xardG+qbPPo5k/y/3fMwXLxpjh5UB5dVfElktLaQbbMs80chkz53ByvSg==", - "requires": { - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "stream-events": "^1.0.5", - "uuid": "^8.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.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" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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==" - } - } -} diff --git a/mods/googleasr/package.json b/mods/googleasr/package.json deleted file mode 100644 index 8a1fcbda8..000000000 --- a/mods/googleasr/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "@fonoster/googleasr", - "version": "0.3.22", - "description": "Wrapper for Google ASR", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/asr", - "types": "dist/asr", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/common": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@google-cloud/speech": "^4.10.1", - "bson-objectid": "^2.0.2", - "node-record-lpcm16": "^1.0.1", - "sync": "^0.2.5" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/googleasr/src/asr.ts b/mods/googleasr/src/asr.ts deleted file mode 100644 index 73f9ba7d1..000000000 --- a/mods/googleasr/src/asr.ts +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { GoogleSpeechTracker } from "./tracker"; -import { GoogleSpeechConfig } from "./types"; -import { Plugin, SpeechProvider, SpeechTracker } from "@fonoster/common"; - -const defaultSpeechConfig: GoogleSpeechConfig = { - languageCode: "en-US" -}; - -class GoogleASR extends Plugin implements SpeechProvider { - opts: GoogleSpeechConfig; - constructor(options: GoogleSpeechConfig) { - super("asr", "googleasr"); - const merge = require("deepmerge"); - this.opts = merge(defaultSpeechConfig, options || {}); - } - - // This allows to change the speech behavior at the tracker level - createSpeechTracker(options?: GoogleSpeechConfig): SpeechTracker { - const merge = require("deepmerge"); - const opt = merge(this.opts, options || {}); - return new GoogleSpeechTracker(opt); - } -} - -export default GoogleASR; -export { GoogleSpeechTracker, GoogleSpeechConfig }; - -// WARNING: Workaround to support commonjs clients -module.exports = GoogleASR; -module.exports.GoogleSpeechTracker = GoogleSpeechTracker; diff --git a/mods/googleasr/src/stream_recognize.ts b/mods/googleasr/src/stream_recognize.ts deleted file mode 100644 index f5228d4b8..000000000 --- a/mods/googleasr/src/stream_recognize.ts +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Transform } from "stream"; -import logger from "@fonoster/logger"; -import { GoogleSpeechConfig } from "./types"; -const speech = require("@google-cloud/speech").v1p1beta1; - -// Sending a dummy package with a different size breaks the -// Google Speech. -// -// WARNING: This is the package size comming from asterisk, but -// keep in mind that length (640) might be different for other encoding -// types. -const emptyBuffer = Buffer.alloc(640, 0); - -export default class StreamRecognize { - speechClient: any; - request: { config: GoogleSpeechConfig; interimResults: boolean }; - recognizeStream: any; - restartCounter: number; - audioInput: any[]; - lastAudioInput: any[]; - resultEndTime: number; - isFinalEndTime: number; - finalRequestEndTime: number; - newStream: boolean; - bridgingOffset: number; - lastTranscriptWasFinal: boolean; - streamingLimit: number; - audioInputStreamTransform: any; - transcriptCallback: any; - resultsCallback: any; - socket: any; - cb: (stream: any) => void; - currentTimer: NodeJS.Timeout; - constructor( - config: GoogleSpeechConfig, - socket, - transcriptCallback, - resultsCallback - ) { - this.speechClient = new speech.SpeechClient(config); - this.request = { - config, - interimResults: false - }; - this.recognizeStream = null; - this.restartCounter = 0; - this.audioInput = []; - this.lastAudioInput = []; - this.resultEndTime = 0; - this.isFinalEndTime = 0; - this.finalRequestEndTime = 0; - this.newStream = true; - this.bridgingOffset = 0; - this.lastTranscriptWasFinal = false; - this.streamingLimit = 290000; // 4.8 minutes - - this.audioInputStreamTransform = new Transform({ - transform: (chunk, encoding, callback) => { - this.transformer(chunk, encoding, callback); - } - }); - - this.transcriptCallback = transcriptCallback; - this.resultsCallback = resultsCallback; - this.startStream(); - this.socket = socket; - // This connects the socket to the Stream Transform - socket.pipe(this.audioInputStreamTransform); - - // TODO: We should clear this interval once we finish using the class - setInterval(() => { - if (this.recognizeStream) { - this.recognizeStream.write(emptyBuffer); - } - }, 5000); - } - - startStream() { - // Clear current audioInput - this.audioInput = []; - - this.cb = (stream) => { - const results = this.speechCallback(stream); - if (this.transcriptCallback && results[0] && results[0].alternatives[0]) { - this.transcriptCallback( - results[0].alternatives[0].transcript.trimStart(), - results[0].isFinal - ); - } - - if (this.resultsCallback) { - this.resultsCallback(results); - } - }; - - // Restart stream when streamingLimit expires - this.currentTimer = setTimeout(() => { - this.restartStream(); - }, this.streamingLimit); - - // Initiate (Reinitiate) a recognize stream - this.recognizeStream = this.speechClient - .streamingRecognize(this.request) - .on("error", (err) => { - if (err.code === 11) { - // this.restartStream(); - } else { - // If we get any errors we restart the stream. - // This will tipically happen if no audio is sent for - // a period if 10 seconds. - this.restartStream(); - logger.silly(err); - } - }) - .on("data", this.cb); - } - - speechCallback(stream) { - this.resultEndTime = - stream.results[0].resultEndTime.seconds * 1000 + - Math.round(stream.results[0].resultEndTime.nanos / 1000000); - - if (stream.results[0].isFinal) { - this.isFinalEndTime = this.resultEndTime; - this.lastTranscriptWasFinal = true; - } else { - this.lastTranscriptWasFinal = false; - } - return stream.results; - } - - /* - * The transformer accumulates and keeps track - * of the audio chunks to make sure we don't lose anything - * when we restart the stream. - */ - transformer(chunk, encoding, callback) { - // WARNING: This synchronization logic is causing the class - // to send repeated streams inmediatly after restarting the - // recognition. - /*if (this.newStream && this.lastAudioInput.length !== 0) { - // Approximate math to calculate time of chunks - const chunkTime = this.streamingLimit / this.lastAudioInput.length; - if (chunkTime !== 0) { - if (this.bridgingOffset < 0) { - this.bridgingOffset = 0; - } - if (this.bridgingOffset > this.finalRequestEndTime) { - this.bridgingOffset = this.finalRequestEndTime; - } - const chunksFromMS = Math.floor( - (this.finalRequestEndTime - this.bridgingOffset) / chunkTime - ); - this.bridgingOffset = Math.floor( - (this.lastAudioInput.length - chunksFromMS) * chunkTime - ); - for (let i = chunksFromMS; i < this.lastAudioInput.length; i++) { - this.recognizeStream.write(this.lastAudioInput[i]); - } - } - this.newStream = false; - } - this.audioInput.push(chunk);*/ - - if (this.recognizeStream) { - this.recognizeStream.write(chunk); - } - - callback(); - } - - restartStream() { - this.stop(); - - if (this.resultEndTime > 0) { - this.finalRequestEndTime = this.isFinalEndTime; - } - this.resultEndTime = 0; - this.lastAudioInput = []; - this.lastAudioInput = this.audioInput; - - this.restartCounter++; - - logger.silly( - `${this.streamingLimit * this.restartCounter}: RESTARTING REQUEST\n` - ); - - this.newStream = true; - this.startStream(); - } - - stop() { - logger.silly("destroying stream recognize"); - if (this.recognizeStream) { - this.recognizeStream.end(); - this.recognizeStream.removeListener("data", this.cb); - this.recognizeStream = null; - } - } -} diff --git a/mods/googleasr/src/stream_speech_result.ts b/mods/googleasr/src/stream_speech_result.ts deleted file mode 100644 index 59953c103..000000000 --- a/mods/googleasr/src/stream_speech_result.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { StreamSpeechResult } from "@fonoster/common"; -import { Stream } from "stream"; - -export default class StreamSpeechImpl implements StreamSpeechResult { - stream: Stream; - constructor() { - this.stream = new Stream(); - } - - close() { - this.stream.removeAllListeners(); - } - - on(event: string, callback: Function) { - if (event === "transcript") { - this.stream.on("data", (data) => { - callback(data); - }); - } - - if (event === "error") { - this.stream.on("error", (error: Error) => { - callback(error); - }); - } - } - - emit(data: any) { - this.stream.emit("data", data); - } -} diff --git a/mods/googleasr/src/tracker.ts b/mods/googleasr/src/tracker.ts deleted file mode 100644 index ed9ecee71..000000000 --- a/mods/googleasr/src/tracker.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { GoogleSpeechConfig, TrackerConfig } from "./types"; -import { - SpeechTracker, - SpeechResult, - StreamSpeechResult -} from "@fonoster/common"; -import { Stream } from "stream"; -import speech from "@google-cloud/speech"; -import StreamRecognize from "./stream_recognize"; -import StreamSpeechImpl from "./stream_speech_result"; - -const defaultTrackerConfig = { - config: { - encoding: "LINEAR16", - sampleRateHertz: 16000, - languageCode: "en-US" - }, - interimResults: false -}; - -export class GoogleSpeechTracker implements SpeechTracker { - client: any; - config: TrackerConfig; - constructor(config: GoogleSpeechConfig) { - const merge = require("deepmerge"); - this.config = merge(defaultTrackerConfig, { config } || {}); - this.client = new speech.SpeechClient(this.config.config); - } - - streamTranscribe(stream: Stream): StreamSpeechResult { - let s = new StreamSpeechImpl(); - new StreamRecognize( - this.config.config, - stream, - async (transcript: string, isFinal: boolean) => { - s.emit({ transcript, isFinal }); - }, - (result) => { - // We are not yet doing diarization - } - ); - - return s; - } - - transcribe(stream: Stream): Promise { - return new Promise((resolve, reject) => { - const recognizeStream = this.client - .streamingRecognize(this.config) - .on("error", (e: Error) => reject(e)) - .on("data", (data: Record) => { - if (data.results[0]?.alternatives[0]) { - const result = { - transcript: data.results[0].alternatives[0].transcript, - isFinal: true - }; - resolve(result); - } else { - resolve({ transcript: "", isFinal: true }); - } - }); - stream.pipe(recognizeStream); - }); - } -} diff --git a/mods/googleasr/src/types.ts b/mods/googleasr/src/types.ts deleted file mode 100644 index 9ab5a452b..000000000 --- a/mods/googleasr/src/types.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface GoogleSpeechConfig { - keyFilename?: string; - languageCode: string; -} - -export interface TrackerConfig { - config: { - encoding: "LINEAR16"; - sampleRateHertz: 16000; - languageCode: string; - keyFilename?: string; - }; - interimResults: boolean; -} diff --git a/mods/googleasr/test/tracker.int.test.ts b/mods/googleasr/test/tracker.int.test.ts deleted file mode 100644 index 0f7b9e9a1..000000000 --- a/mods/googleasr/test/tracker.int.test.ts +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { GoogleSpeechTracker } from "../src/tracker"; -import { GoogleSpeechConfig } from "../src/types"; -import recorder from "node-record-lpcm16"; -import logger from "../../dispatcher/node_modules/@fonoster/logger/src"; -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -const speechConfig: GoogleSpeechConfig = { - keyFilename: "/Users/pedrosanders/Projects/voice/google.json", - languageCode: "en-US" -}; - -describe("@fonoster/googleasr", () => { - afterEach(() => sandbox.restore()); - it("returns a speech result for a given stream", async () => { - logger.info("Begin to talk now"); - const speechTracker = new GoogleSpeechTracker(speechConfig); - const recorderStream = recorder - .record({ - sampleRateHertz: 16000, - threshold: 0, - verbose: false, - recordProgram: "rec", // Try also "arecord" or "sox" - silence: "10.0" - }) - .stream(); - - const result = await speechTracker.transcribe(recorderStream); - logger.info( - `The transcript result is: ${JSON.stringify(result.transcript)}` - ); - expect(result).to.have.property("transcript").not.to.be.null; - }); - - it("returns a speech result for a given stream", (done) => { - logger.info("Begin to talk now"); - const speechTracker = new GoogleSpeechTracker(speechConfig); - const recorderStream = recorder - .record({ - sampleRateHertz: 16000, - threshold: 0, - verbose: false, - recordProgram: "rec", // Try also "arecord" or "sox" - silence: "10.0" - }) - .stream(); - - const stream = speechTracker.streamTranscribe(recorderStream); - - stream.on("transcript", (result) => { - logger.verbose( - `The transcript result is: ${JSON.stringify(result.transcript)}` - ); - expect(result).to.have.property("transcript").not.to.be.null; - if (result.text === "close") { - stream.close(); - done(); - } - }); - }); -}); diff --git a/mods/googleasr/tsconfig.json b/mods/googleasr/tsconfig.json deleted file mode 100644 index 20e92d4b6..000000000 --- a/mods/googleasr/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { - "path": "../logger" - }, - { - "path": "../common" - } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/googletts/.npmignore b/mods/googletts/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/googletts/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/googletts/CHANGELOG.md b/mods/googletts/CHANGELOG.md deleted file mode 100644 index 6b0b1a114..000000000 --- a/mods/googletts/CHANGELOG.md +++ /dev/null @@ -1,17 +0,0 @@ -# Changelog - -## 0.2.27 - -- Fix bug with isSSML function - -## 0.2.25 - -- Added support for SSML input - -## 0.2.22 - -- Fixed [issues #247](https://github.com/fonoster/fonoster/issues/247) - -## 0.2.20 - -Initial release. \ No newline at end of file diff --git a/mods/googletts/README.md b/mods/googletts/README.md deleted file mode 100644 index 70454189d..000000000 --- a/mods/googletts/README.md +++ /dev/null @@ -1,33 +0,0 @@ -Voice application plugin that converts text into natural-sounding speech using an API powered by Google’s AI technologies. - -## Installation - -```bash -npm install @fonoster/googletts -``` - -or - -```bash -yarn add @fonoster/googletts -``` - -## Usage - -```javascript -const { VoiceServer } = require("@fonoster/voice"); -const GoogleTTS = require("@fonoster/googletts"); - -const voiceServer = new VoiceServer({ base: '/voiceapp' }); - -// Set the server to use Google's TTS -const speechConfig = { keyFilename: "./google.json" }; -voiceServer.use(new GoogleTTS(speechConfig)); - -voiceServer.listen(async(req, res) => { - console.log(req); - await res.answer(); - await res.say("Hi! This is google text to speech"); - await res.hangup(); -}); -``` diff --git a/mods/googletts/assets/logo.png b/mods/googletts/assets/logo.png deleted file mode 100644 index d6793d551..000000000 Binary files a/mods/googletts/assets/logo.png and /dev/null differ diff --git a/mods/googletts/package-lock.json b/mods/googletts/package-lock.json deleted file mode 100644 index 069e9ba55..000000000 --- a/mods/googletts/package-lock.json +++ /dev/null @@ -1,1489 +0,0 @@ -{ - "name": "@fonoster/googletts", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/googletts", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@google-cloud/text-to-speech": "^3.2.2", - "deepmerge": "^4.2.2" - }, - "devDependencies": {} - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - }, - "devDependencies": { - "minipass": "3.3.4" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "../tts": { - "name": "@fonoster/tts", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "flat": "^5.0.2", - "sox-audio": "^0.3.0" - } - }, - "node_modules/@google-cloud/text-to-speech": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@google-cloud/text-to-speech/-/text-to-speech-3.4.0.tgz", - "integrity": "sha512-0N5QEZxTdv89lG5Dcd7VEaTkL7LuPXWlTf7fmar7reAhsUVh9PeqJJttCXxPaHQ1LY+czvxDzswysHvVdYxL+Q==", - "dependencies": { - "google-gax": "^2.24.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.6.12", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.12.tgz", - "integrity": "sha512-JmvQ03OTSpVd9JTlj/K3IWHSz4Gk/JMLUTtW7Zb0KvO1LcOYGATh5cNuRYzCAeDR3O8wq+q8FZe97eO9MBrkUw==", - "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@grpc/grpc-js/node_modules/protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@grpc/grpc-js/node_modules/protobufjs/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz", - "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.11.3", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "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/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "engines": { - "node": ">=8" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", - "engines": { - "node": "*" - } - }, - "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": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "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/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/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/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, - "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/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "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/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/fast-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" - }, - "node_modules/gaxios": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", - "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", - "dependencies": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gcp-metadata": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", - "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", - "dependencies": { - "gaxios": "^4.0.0", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "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/google-auth-library": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.0.tgz", - "integrity": "sha512-or8r7qUqGVI3W8lVSdPh0ZpeFyQHeE73g5c0p+bLNTTUFXJ+GSeDQmZRZ2p4H8cF/RJYa4PNvi/A1ar1uVNLFA==", - "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^4.0.0", - "gcp-metadata": "^4.2.0", - "gtoken": "^5.0.4", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/google-gax": { - "version": "2.30.5", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-2.30.5.tgz", - "integrity": "sha512-Jey13YrAN2hfpozHzbtrwEfEHdStJh1GwaQ2+Akh1k0Tv/EuNVSuBtHZoKSBm5wBMvNsxTsEIZ/152NrYyZgxQ==", - "dependencies": { - "@grpc/grpc-js": "~1.6.0", - "@grpc/proto-loader": "^0.6.12", - "@types/long": "^4.0.0", - "abort-controller": "^3.0.0", - "duplexify": "^4.0.0", - "fast-text-encoding": "^1.0.3", - "google-auth-library": "^7.14.0", - "is-stream-ended": "^0.1.4", - "node-fetch": "^2.6.1", - "object-hash": "^3.0.0", - "proto3-json-serializer": "^0.1.8", - "protobufjs": "6.11.3", - "retry-request": "^4.0.0" - }, - "bin": { - "compileProtos": "build/tools/compileProtos.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/google-p12-pem": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", - "integrity": "sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ==", - "dependencies": { - "node-forge": "^1.0.0" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gtoken": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", - "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", - "dependencies": { - "gaxios": "^4.0.0", - "google-p12-pem": "^3.1.3", - "jws": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "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/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-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-stream-ended": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", - "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" - }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "dependencies": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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/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/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "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/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/proto3-json-serializer": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-0.1.8.tgz", - "integrity": "sha512-ACilkB6s1U1gWnl5jtICpnDai4VCxmI9GFxuEaYdxtDG2oVI3sVFIUsvUZcQbJgtPM6p+zqKbjTKQZp6Y4FpQw==", - "dependencies": { - "protobufjs": "^6.11.2" - } - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "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/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/retry-request": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz", - "integrity": "sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==", - "dependencies": { - "debug": "^4.1.1", - "extend": "^3.0.2" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "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/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "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/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "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/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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/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" - } - } - }, - "dependencies": { - "@google-cloud/text-to-speech": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@google-cloud/text-to-speech/-/text-to-speech-3.4.0.tgz", - "integrity": "sha512-0N5QEZxTdv89lG5Dcd7VEaTkL7LuPXWlTf7fmar7reAhsUVh9PeqJJttCXxPaHQ1LY+czvxDzswysHvVdYxL+Q==", - "requires": { - "google-gax": "^2.24.1" - } - }, - "@grpc/grpc-js": { - "version": "1.6.12", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.12.tgz", - "integrity": "sha512-JmvQ03OTSpVd9JTlj/K3IWHSz4Gk/JMLUTtW7Zb0KvO1LcOYGATh5cNuRYzCAeDR3O8wq+q8FZe97eO9MBrkUw==", - "requires": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "dependencies": { - "@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - } - }, - "protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - } - } - } - } - }, - "@grpc/proto-loader": { - "version": "0.6.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz", - "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.11.3", - "yargs": "^16.2.0" - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "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" - } - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" - }, - "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": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "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" - } - }, - "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==" - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", - "requires": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, - "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==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "fast-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" - }, - "gaxios": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", - "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", - "requires": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.1" - } - }, - "gcp-metadata": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", - "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", - "requires": { - "gaxios": "^4.0.0", - "json-bigint": "^1.0.0" - } - }, - "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==" - }, - "google-auth-library": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.0.tgz", - "integrity": "sha512-or8r7qUqGVI3W8lVSdPh0ZpeFyQHeE73g5c0p+bLNTTUFXJ+GSeDQmZRZ2p4H8cF/RJYa4PNvi/A1ar1uVNLFA==", - "requires": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^4.0.0", - "gcp-metadata": "^4.2.0", - "gtoken": "^5.0.4", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" - } - }, - "google-gax": { - "version": "2.30.5", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-2.30.5.tgz", - "integrity": "sha512-Jey13YrAN2hfpozHzbtrwEfEHdStJh1GwaQ2+Akh1k0Tv/EuNVSuBtHZoKSBm5wBMvNsxTsEIZ/152NrYyZgxQ==", - "requires": { - "@grpc/grpc-js": "~1.6.0", - "@grpc/proto-loader": "^0.6.12", - "@types/long": "^4.0.0", - "abort-controller": "^3.0.0", - "duplexify": "^4.0.0", - "fast-text-encoding": "^1.0.3", - "google-auth-library": "^7.14.0", - "is-stream-ended": "^0.1.4", - "node-fetch": "^2.6.1", - "object-hash": "^3.0.0", - "proto3-json-serializer": "^0.1.8", - "protobufjs": "6.11.3", - "retry-request": "^4.0.0" - } - }, - "google-p12-pem": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", - "integrity": "sha512-MC0jISvzymxePDVembypNefkAQp+DRP7dBE+zNUPaIjEspIlYg0++OrsNr248V9tPbz6iqtZ7rX1hxWA5B8qBQ==", - "requires": { - "node-forge": "^1.0.0" - } - }, - "gtoken": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", - "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", - "requires": { - "gaxios": "^4.0.0", - "google-p12-pem": "^3.1.3", - "jws": "^4.0.0" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "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-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-stream-ended": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", - "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" - }, - "json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "requires": { - "bignumber.js": "^9.0.0" - } - }, - "jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "requires": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" - }, - "object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "proto3-json-serializer": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-0.1.8.tgz", - "integrity": "sha512-ACilkB6s1U1gWnl5jtICpnDai4VCxmI9GFxuEaYdxtDG2oVI3sVFIUsvUZcQbJgtPM6p+zqKbjTKQZp6Y4FpQw==", - "requires": { - "protobufjs": "^6.11.2" - } - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "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" - } - }, - "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==" - }, - "retry-request": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz", - "integrity": "sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==", - "requires": { - "debug": "^4.1.1", - "extend": "^3.0.2" - } - }, - "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==" - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "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" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.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" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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==" - } - } -} diff --git a/mods/googletts/package.json b/mods/googletts/package.json deleted file mode 100644 index d116d72b6..000000000 --- a/mods/googletts/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "@fonoster/googletts", - "version": "0.3.22", - "description": "Wrapper for Google TTS", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/tts", - "types": "dist/tts", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/common": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@fonoster/tts": "^0.3.22", - "@google-cloud/text-to-speech": "^3.2.2", - "deepmerge": "^4.2.2" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/googletts/src/tts.ts b/mods/googletts/src/tts.ts deleted file mode 100644 index 992c987d9..000000000 --- a/mods/googletts/src/tts.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import fs from "fs"; -import util from "util"; -import textToSpeech, {v1} from "@google-cloud/text-to-speech"; -import { SynthResult, AbstractTTS } from "@fonoster/tts"; -import logger from "@fonoster/logger"; -import { GoogleTTSConfig } from "./types"; -import { isSSML } from "./utils"; -const merge = require("deepmerge"); - -const defaultVoice = { languageCode: "en-US", ssmlGender: "NEUTRAL" }; - -/** - * @classdesc Optional TTS engine for Fonoster. - * - * @extends AbstractTTS - * @example - * const GoogleTTS = require("@fonoster/googletts"); - * - * new GoogleTTS().synthesize("Hello world") - * .then((result) => console.log("path: " + result.pathToFile)) - * .catch(console.error); - */ -class GoogleTTS extends AbstractTTS { - client: v1.TextToSpeechClient; - /** - * Constructs a new GoogleTTS object. - * - * @see module:tts:AbstractTTS - */ - constructor(config: GoogleTTSConfig) { - super("tts", "googletts", config); - this.client = new textToSpeech.TextToSpeechClient(config as any); - } - /** - * @inherit - */ - async synthesizeSpeech(text: string, options: any, filename: string, pathToFile: string): Promise { - logger.verbose( - `@fonoster/tts.GoogleTTS.synthesize [input: ${text}, isSSML=${isSSML( - text - )} options: ${JSON.stringify(options)}]` - ); - - const voice = merge(defaultVoice, options || {}); - const input = isSSML(text) ? { ssml: text } : { text: text }; - - const request = { - voice, - input, - audioConfig: { audioEncoding: "LINEAR16" } - }; - - // Performs the text-to-speech request - const [response] = await this.client.synthesizeSpeech(request as any); - // Write the binary audio content to a local file - const writeFile = util.promisify(fs.writeFile); - await writeFile(pathToFile, response.audioContent, "binary"); - return { filename, pathToFile }; - } -} - -export default GoogleTTS; - -// WARNING: Workaround to support commonjs clients -module.exports = GoogleTTS; diff --git a/mods/googletts/src/types.ts b/mods/googletts/src/types.ts deleted file mode 100644 index 86fde1581..000000000 --- a/mods/googletts/src/types.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface GoogleTTSConfig { - keyFilename?: string; - projectId?: string; - // Location of resulting sound - path?: string; -} - -export interface SynthOptions { - name?: string; - ssmlGender?: "MALE" | "FEMALE"; - naturalSampleRateHertz?: number; - languageCodes?: string[]; -} diff --git a/mods/googletts/src/utils.ts b/mods/googletts/src/utils.ts deleted file mode 100644 index 823201933..000000000 --- a/mods/googletts/src/utils.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export const isSSML = (text: string) => { - const v = text.trim(); - return v.startsWith("<") && v.endsWith(">"); -}; diff --git a/mods/googletts/test/tts.int.test.ts b/mods/googletts/test/tts.int.test.ts deleted file mode 100644 index 79dc6d4e9..000000000 --- a/mods/googletts/test/tts.int.test.ts +++ /dev/null @@ -1,58 +0,0 @@ -import GoogleTTS from "../src/tts"; -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { join } from "path"; -//import http from 'http' -//import fs from 'fs' -//import path from 'path' -//import textToSpeech from '@google-cloud/text-to-speech' -const { transcode } = require("@fonoster/tts"); - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -if (process.env.NODE_ENV === "dev") { - require("dotenv").config({ path: join(__dirname, "..", "..", ".env") }); -} - -describe("@fonoster/googletts", () => { - afterEach(() => sandbox.restore()); - - /*it('rejects if the TTS because could not find default credentials', () => { - process.env.GOOGLE_APPLICATION_CREDENTIALS = void(0) - const client = new textToSpeech.TextToSpeechClient() - const join = sandbox.spy(path, 'join') - const synthesizeSpeech = sandbox.spy(client, 'synthesizeSpeech') - const writeFile = sandbox.spy(fs, 'writeFile') - const tts = new GoogleTTS() - - expect(tts.synthesize('hello world')).to.eventually.rejectedWith( - 'Could not load the default credentials.' - ) - expect(join).to.have.been.calledTwice - expect(writeFile).to.not.have.been.called - expect(synthesizeSpeech).to.not.have.been.called - })*/ - - it("synthesizes text or ssml and returns path to the new file", async () => { - const config = { - projectId: "clever-tube-275321", - keyFilename: "/Users/pedrosanders/Projects/fonoster/credentials.json" - }; - - const tts = new GoogleTTS(config); - const result = await tts.synthesize( - ' Hello, thanks for calling! How can I help you? ', - { - ssmlGender: "FEMALE" - } - ); - - expect(result).to.have.property("filename"); - expect(result).to.have.property("pathToFile"); - }); -}); diff --git a/mods/googletts/test/tts.unit.test.ts b/mods/googletts/test/tts.unit.test.ts deleted file mode 100644 index 868f0d6fd..000000000 --- a/mods/googletts/test/tts.unit.test.ts +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import GoogleTTS from "../src/tts"; -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import textToSpeech from "@google-cloud/text-to-speech"; -import fs from "fs"; -import path from "path"; -import { isSSML } from "../src/utils"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -chai.should(); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/googletts", () => { - afterEach(() => sandbox.restore()); - - it.skip("rejects if the TTS because could not find any credentials", async () => { - const client = new textToSpeech.TextToSpeechClient(); - const join = sandbox.spy(path, "join"); - const synthesizeSpeech = sandbox.spy(client, "synthesizeSpeech"); - const writeFile = sandbox.spy(fs, "writeFile"); - const tts = new GoogleTTS({ - projectId: "", - keyFilename: "" - }); - - await expect(tts.synthesize("hello world")).to.be.eventually.rejectedWith( - "Could not load the default credentials." - ); - expect(join).to.have.been.called; - expect(writeFile).to.not.have.been.called; - expect(synthesizeSpeech).to.not.have.been.called; - }); - - it("synthesizes text and returns path to file", async () => { - const synthesizeSpeechStub = sandbox - .stub(textToSpeech.TextToSpeechClient.prototype, "synthesizeSpeech") - .resolves([{ audioContent: "some-audio" }]); - const fsStub = sandbox - .stub(fs, "existsSync") - .returns(false); - const writeFile = sandbox.spy(fs, "writeFile"); - const join = sandbox.spy(path, "join"); - const config = { - projectId: "project-id", - keyFilename: "path-to-file" - }; - - const tts = new GoogleTTS(config); - const result = await tts.synthesize( - "Hello Kayla, how are you doing today?", - { - ssmlGender: "FEMALE" - } - ); - - expect(join).to.have.been.calledOnce; - expect(writeFile).to.have.been.calledOnce; - expect(synthesizeSpeechStub).to.have.been.calledOnce; - expect(fsStub).to.have.been.calledOnce; - expect(result).to.have.property("filename").to.not.be.null; - expect(result).to.have.property("pathToFile").to.not.be.null; - }); - - it("file already exist, not synthesizes text and returns path to file", async () => { - const synthesizeSpeechStub = sandbox - .stub(textToSpeech.TextToSpeechClient.prototype, "synthesizeSpeech") - .resolves([{ audioContent: "some-audio" }]); - const fsStub = sandbox - .stub(fs, "existsSync") - .returns(true); - const writeFile = sandbox.spy(fs, "writeFile"); - const join = sandbox.spy(path, "join"); - const config = { - projectId: "project-id", - keyFilename: "path-to-file" - }; - - const tts = new GoogleTTS(config); - const result = await tts.synthesize( - "Hello Kayla, how are you doing today?", - { - ssmlGender: "FEMALE" - } - ); - - expect(join).to.have.been.calledOnce; - expect(writeFile).to.not.have.been.calledOnce; - expect(synthesizeSpeechStub).to.not.have.been.calledOnce; - expect(fsStub).to.have.been.calledOnce; - expect(result).to.have.property("filename").to.not.be.null; - expect(result).to.have.property("pathToFile").to.not.be.null; - }); - - it("checks if input is ssml", async () => { - const input1 = - ' Hello, thanks for calling! How can I help you? '; - const input2 = '... '; - - expect(isSSML("Hi there")).to.be.true; - expect(isSSML(input1)).to.be.true; - expect(isSSML(input2)).to.be.true; - expect(isSSML("Hi there")).to.be.false; - }); -}); diff --git a/mods/googletts/tsconfig.json b/mods/googletts/tsconfig.json deleted file mode 100644 index ed98bffc3..000000000 --- a/mods/googletts/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { - "path": "../tts" - }, - { - "path": "../logger" - }, - { - "path": "../common" - } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/common/.lerna-changed-buster-192 b/mods/identity/.lerna-changed-buster-5577 similarity index 100% rename from mods/common/.lerna-changed-buster-192 rename to mods/identity/.lerna-changed-buster-5577 diff --git a/mods/identity/.npmignore b/mods/identity/.npmignore new file mode 100644 index 000000000..51256b514 --- /dev/null +++ b/mods/identity/.npmignore @@ -0,0 +1,6 @@ +.nyc_output +coverage +src +test +*.log +.ts \ No newline at end of file diff --git a/mods/identity/README.md b/mods/identity/README.md new file mode 100644 index 000000000..e20404db5 --- /dev/null +++ b/mods/identity/README.md @@ -0,0 +1,160 @@ +[![Discord](https://img.shields.io/discord/1016419835455996076?color=5865F2&label=Discord&logo=discord&logoColor=white)](https://discord.gg/4QWgSz4hTC) ![GitHub](https://img.shields.io/github/license/fonoster/fonoster?color=%2347b96d) ![Twitter Follow](https://img.shields.io/twitter/follow/fonoster?style=social) + +This document provides a high-level overview of the Identity module, which is helpful for maintainers, contributors, and developers who want to understand its architecture and design or contribute to it. + +This module is part of the [Fonoster](https://fonoster.com) project. It does not do much by itself. It is intended to be combined with other modules to create a complete solution. For more information about the project, please visit [https://github.com/fonoster/fonoster](https://github.com/fonoster/fonoster). + +
+

+ +

+
+ +## About Identity + +The Fonoster Identity Module provides the cornerstone for secure user management, authentication, and authorization within the Fonoster Ecosystem. It is designed with flexibility and scalability to accommodate the diverse and evolving needs of the various Fonoster projects. + +## Key Features + +This module offers comprehensive identity management functionality, including creating, reading, updating, and deleting user and workspace entities. Users may represent individual accounts or service accounts. Workspaces provide a way to organize users and streamline permission administration logically. A user can belong to multiple workspaces. + +The Identity module ensures secure authentication by employing industry-standard JSON Web Tokens (JWTs). It supports a variety of authentication mechanisms, including username and password, Multi-Factor Authentication (MFA) for added security, OAuth2 for integration with external identity providers, and token exchange to accommodate diverse scenarios. + +Authorization is implemented through a Role-Based Access Control (RBAC) model, allowing for granular control over user and service actions. Predefined roles offer convenience, while the option to create custom roles provides maximum flexibility. + +## Users, Workspaces, and Roles + +Individual users or services connecting to the Identity service will require a Role. As you will see in the next section, a Role has a set of allowed actions. + +Take the following example: + +In the case of Fonoster, we might have the Owner, Admin, and Member as Roles associated with a Workspace. In such cases, the Owner will be able to perform all actions, the Admin will be allowed to perform all actions except removing the Workspace, and members will have the ability to make changes to specific resources but not be able to see billing information. + +## Resource Ownership + +All resources created within Fonoster have an owner. The owner may be a user or a workspace. For example, a user may own a workspace/workspace, and a workspace can own applications, phone numbers, domains, etc. + +Creating a resource within a workspace automatically marks it with the workspace's identifier (the accessKeyId).  + +> The `accessKeyId` for a user always starts with the prefix `US`, while the `accessKeyId` for a workspace starts with the prefix `WO`, which helps identify the resource owner type. + +## Role-Based Access Control + +Fonoster Identity relies on Role-Based Access Control (RBAC) to offer granular control over parts of the system. The following type can describe the policy for RBAC within Fonoster Identity. + +```typescript +[ { "name": "string", "description": "string", "access": string [] } ] +``` + +The access array consists of the path for an individual gRPC function. + +Policy Example: + +```json +{ + "name": "user", + "description": "Access to User and Workspace endpoints", + "access": [ + "/fonoster.identity.v1beta2.Identity/GetUser", + "/fonoster.identity.v1beta2.Identity/UpdateUser", + "/fonoster.identity.v1beta2.Identity/DeleteUser", + "/fonoster.identity.v1beta2.Identity/CreateWorkspace", + "/fonoster.identity.v1beta2.Identity/GetWorkspace", + "/fonoster.identity.v1beta2.Identity/UpdateWorkspace", + "/fonoster.identity.v1beta2.Identity/ListWorkspaces", + "/fonoster.identity.v1beta2.Identity/RefreshToken", + // Additional access here + ] +} +``` + +## ID, Access, and Refresh Tokens + +The Identity module employs JSON Web Tokens (JWTs) for secure and flexible authentication. It strategically utilizes three types of tokens: ID, access, and refresh. Each token type serves a distinct purpose in the authentication process. + +ID tokens identify the user and contain information about their identity. Typically short-lived, issued upon successful authentication. The following is an example of an ID token: + +```json +{ + "iss": "https://identity-global.fonoster.com", + "sub": "00000000-0000-0000-0000-000000000000", + "aud": "api", + "tokenUse": "id", + "accessKeyId": "US00000000000000000000000000000000", + "email": "johndoe@example.com", + "emailVerified": false, + "phoneNumber": null, + "phoneNumberVerified": false, + "iat": 1723477780, + "exp": 1723478680 +} + +``` + +Access tokens enhance security with short lifespans (e.g., minutes to an 15m). They contain claims about the user or service, represented as a JSON object. The following is an example of an access token: + +```json +{ + "iss": "https://identity-global.fonoster.com", + "sub": "00000000-0000-0000-0000-000000000000", + "aud": "api", + "tokenUse": "access", + "accessKeyId": "US00000000000000000000000000000000", + "access": [ + { + "accessKeyId": "WO00000000000000000000000000000000", + "role": "OWNER" + } + ], + "iat": 1723477780, + "exp": 1723478680 +} +``` + +Here, `sub` is the user identifier, `aud` is the intended audience, and `access` contains a list of workspaces and their associated roles. + +Refresh tokens have the specific function of obtaining new access tokens upon expiry. They possess longer lifespans than access tokens, potentially spanning days, weeks, or months, minimizing the frequency with which users need to re-enter their credentials. Due to their extended validity, refresh tokens warrant secure storage and careful management. + +By default, refresh tokens are issued with a 24-hour expiration time. You can adjust this value to suit your security requirements. + +An example of a refresh token: + +```json +{ + "iss": "https://identity-global.fonoster.com", + "sub": "00000000-0000-0000-0000-000000000000", + "aud": "api", + "tokenUse": "refresh", + "accessKeyId": "US00000000000000000000000000000000", + "iat": 1723477780, + "exp": 1723564180 +} +``` + +Like the access token, the `sub` is the user identifier, the `aud` is the intended audience. + +## Token Exchange + +The Identity module supports a variety of mechanisms to obtain initial access and refresh tokens. A conventional method involves a user supplying their username and password in exchange for an access token and a refresh token. + +The module can enforce Multi-Factor Authentication (MFA) for enhanced security, requiring users to provide their username, password, and a time-based MFA code. Upon successful authentication, the module issues an access token and a refresh token. + +The Identity module also supports OAuth2 code exchange, enabling integration with external identity providers. In this scenario, a user authenticates with the third-party provider and receives an authorization code to exchange with the Identity module for an access and refresh token. + +The Identity Module simplifies the renewal process for expired access tokens. Users present a valid refresh token to receive a new access and refresh token pair. If your authentication strategy includes API keys, the module can also facilitate exchanging them for tokens. + +## Refresh-Token Rotation Policy + +Fonoster Identity uses a time-based refresh token, which means a refresh token will expire after a fixed amount of time. The Identity service must provide a mechanism to invalidate existing refresh tokens to address scenarios like compromised devices or accounts. + +## Token Verification + +The Identity module employs the RS256 algorithm to sign JWTs, guaranteeing their authenticity and integrity. A system can retrieve the public key from the issuer's `fonoster.identity.v1beta2.Identity.GetPublicKey` gRPC endpoint and use it to validate a token. + +The verification process involves two steps: first, confirming the token's signature using the correct private key, and second, validating claims such as the issuer, intended audience, and expiration time to establish the token's overall validity. + +> Fonoster's SDK must provide the necessary utility to automate this process + +## Security Practices + +To uphold security standards, Fonoster Identity mandates using HTTPS in all communications to safeguard tokens during transmission. We apply the principle of least privilege by granting tokens only the minimum permissions necessary to perform a specific task. We maintain comprehensive logging and monitoring of authentication events, token activities, and potential anomalies, essential for security auditing and swift incident response. diff --git a/mods/identity/migrations/20241017020107_init/migration.sql b/mods/identity/migrations/20241017020107_init/migration.sql new file mode 100644 index 000000000..b00370c86 --- /dev/null +++ b/mods/identity/migrations/20241017020107_init/migration.sql @@ -0,0 +1,127 @@ +-- CreateEnum +CREATE TYPE "VerificationType" AS ENUM ('EMAIL', 'PHONE'); + +-- CreateEnum +CREATE TYPE "workspace_member_status" AS ENUM ('PENDING', 'ACTIVE'); + +-- CreateEnum +CREATE TYPE "workspace_member_role" AS ENUM ('OWNER', 'ADMIN', 'USER'); + +-- CreateEnum +CREATE TYPE "api_key_role" AS ENUM ('WORKSPACE_ADMIN'); + +-- CreateTable +CREATE TABLE "users" ( + "ref" TEXT NOT NULL, + "access_key_id" VARCHAR(255) NOT NULL, + "name" VARCHAR(60) NOT NULL, + "email" VARCHAR(255) NOT NULL, + "email_verified" BOOLEAN NOT NULL DEFAULT false, + "password_hash" TEXT NOT NULL, + "phone_number" VARCHAR(20), + "phone_number_verified" BOOLEAN NOT NULL DEFAULT false, + "avatar" VARCHAR(255), + "created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "users_pkey" PRIMARY KEY ("ref") +); + +-- CreateTable +CREATE TABLE "workspaces" ( + "ref" TEXT NOT NULL, + "access_key_id" VARCHAR(255) NOT NULL, + "name" VARCHAR(60) NOT NULL, + "created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "owner_ref" TEXT NOT NULL, + + CONSTRAINT "workspaces_pkey" PRIMARY KEY ("ref") +); + +-- CreateTable +CREATE TABLE "workspace_members" ( + "ref" TEXT NOT NULL, + "status" "workspace_member_status" NOT NULL DEFAULT 'PENDING', + "role" "workspace_member_role" NOT NULL DEFAULT 'USER', + "created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "user_ref" TEXT NOT NULL, + "workspace_ref" TEXT NOT NULL, + + CONSTRAINT "workspace_members_pkey" PRIMARY KEY ("ref") +); + +-- CreateTable +CREATE TABLE "api_keys" ( + "ref" TEXT NOT NULL, + "access_key_id" VARCHAR(255) NOT NULL, + "access_key_secret" VARCHAR(255) NOT NULL, + "role" "api_key_role" NOT NULL DEFAULT 'WORKSPACE_ADMIN', + "created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "expires_at" TIMESTAMPTZ(3), + "workspace_ref" TEXT NOT NULL, + + CONSTRAINT "api_keys_pkey" PRIMARY KEY ("ref") +); + +-- CreateTable +CREATE TABLE "verification_codes" ( + "ref" TEXT NOT NULL, + "type" "VerificationType" NOT NULL, + "code" VARCHAR(6) NOT NULL, + "value" VARCHAR(255) NOT NULL, + "expires_at" TIMESTAMPTZ(3) NOT NULL, + "created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "verification_codes_pkey" PRIMARY KEY ("ref") +); + +-- CreateIndex +CREATE UNIQUE INDEX "users_access_key_id_key" ON "users"("access_key_id"); + +-- CreateIndex +CREATE UNIQUE INDEX "users_email_key" ON "users"("email"); + +-- CreateIndex +CREATE INDEX "users_email_idx" ON "users" USING HASH ("email"); + +-- CreateIndex +CREATE INDEX "users_access_key_id_idx" ON "users" USING HASH ("access_key_id"); + +-- CreateIndex +CREATE UNIQUE INDEX "workspaces_access_key_id_key" ON "workspaces"("access_key_id"); + +-- CreateIndex +CREATE INDEX "workspaces_access_key_id_idx" ON "workspaces" USING HASH ("access_key_id"); + +-- CreateIndex +CREATE INDEX "workspaces_owner_ref_idx" ON "workspaces" USING HASH ("owner_ref"); + +-- CreateIndex +CREATE UNIQUE INDEX "workspace_members_user_ref_workspace_ref_key" ON "workspace_members"("user_ref", "workspace_ref"); + +-- CreateIndex +CREATE UNIQUE INDEX "api_keys_access_key_id_key" ON "api_keys"("access_key_id"); + +-- CreateIndex +CREATE INDEX "api_keys_access_key_id_idx" ON "api_keys" USING HASH ("access_key_id"); + +-- CreateIndex +CREATE INDEX "api_keys_workspace_ref_idx" ON "api_keys" USING HASH ("workspace_ref"); + +-- CreateIndex +CREATE INDEX "verification_codes_code_idx" ON "verification_codes" USING HASH ("code"); + +-- AddForeignKey +ALTER TABLE "workspaces" ADD CONSTRAINT "workspaces_owner_ref_fkey" FOREIGN KEY ("owner_ref") REFERENCES "users"("ref") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "workspace_members" ADD CONSTRAINT "workspace_members_user_ref_fkey" FOREIGN KEY ("user_ref") REFERENCES "users"("ref") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "workspace_members" ADD CONSTRAINT "workspace_members_workspace_ref_fkey" FOREIGN KEY ("workspace_ref") REFERENCES "workspaces"("ref") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "api_keys" ADD CONSTRAINT "api_keys_workspace_ref_fkey" FOREIGN KEY ("workspace_ref") REFERENCES "workspaces"("ref") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/mods/identity/migrations/20241223160315_added_user_extended_field/migration.sql b/mods/identity/migrations/20241223160315_added_user_extended_field/migration.sql new file mode 100644 index 000000000..565d31ae5 --- /dev/null +++ b/mods/identity/migrations/20241223160315_added_user_extended_field/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "users" ADD COLUMN "extended" JSONB; diff --git a/mods/identity/migrations/migration_lock.toml b/mods/identity/migrations/migration_lock.toml new file mode 100644 index 000000000..648c57fd5 --- /dev/null +++ b/mods/identity/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (e.g., Git) +provider = "postgresql" \ No newline at end of file diff --git a/mods/identity/package.json b/mods/identity/package.json new file mode 100644 index 000000000..b87e344f4 --- /dev/null +++ b/mods/identity/package.json @@ -0,0 +1,52 @@ +{ + "name": "@fonoster/identity", + "version": "0.9.0", + "description": "Identity service for Fonoster", + "author": "Pedro Sanders ", + "homepage": "https://github.com/fonoster/fonoster#readme", + "license": "MIT", + "main": "dist/index", + "types": "dist/index", + "directories": { + "src": "src", + "test": "test" + }, + "scripts": { + "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", + "build": "tsc -b tsconfig.json", + "clean": "rimraf ./dist node_modules tsconfig.tsbuildinfo" + }, + "bin": { + "fonoster": "./dist/index.js" + }, + "dependencies": { + "@fonoster/common": "^0.9.0", + "@fonoster/logger": "^0.9.0", + "@fonoster/types": "^0.9.0", + "@grpc/grpc-js": "~1.10.6", + "@prisma/client": "^6.0.1", + "jsonwebtoken": "^9.0.2", + "jwt-decode": "^4.0.0", + "nanoid": "^3.3.6", + "prisma-field-encryption": "^1.5.2", + "zod": "^3.24.1", + "zod-validation-error": "^3.4.0" + }, + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/fonoster/fonoster.git" + }, + "bugs": { + "url": "https://github.com/fonoster/fonoster/issues" + }, + "devDependencies": { + "@types/jsonwebtoken": "^9.0.6" + }, + "gitHead": "d4aa82f7926c0f451d2f580c59ab812c74a7f579" +} diff --git a/mods/identity/schema.prisma b/mods/identity/schema.prisma new file mode 100644 index 000000000..4efa1dd93 --- /dev/null +++ b/mods/identity/schema.prisma @@ -0,0 +1,127 @@ +generator client { + provider = "prisma-client-js" + output = "src/generated/@prisma/client" +} + +datasource db { + provider = "postgresql" + url = env("APISERVER_IDENTITY_DATABASE_URL") +} + +model User { + ref String @id @default(uuid()) + accessKeyId String @unique @map("access_key_id") @db.VarChar(255) + name String @db.VarChar(60) + email String @unique @db.VarChar(255) + emailVerified Boolean @default(false) @map("email_verified") + password String @map("password_hash") /// @encrypted + phoneNumber String? @map("phone_number") @db.VarChar(20) + phoneNumberVerified Boolean @default(false) @map("phone_number_verified") + avatar String? @db.VarChar(255) + createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) + updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz(3) + extended Json? + + // Relations + ownedWorkspaces Workspace[] // Workspaces owned by the user + memberships WorkspaceMember[] // Workspaces the user is a member of + + // Indexes and maps + @@index([email], type: Hash) + @@index([accessKeyId], type: Hash) + @@map("users") +} + +model Workspace { + ref String @id @default(uuid()) + accessKeyId String @unique @map("access_key_id") @db.VarChar(255) + name String @db.VarChar(60) + createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) + updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz(3) + + // Relations + owner User @relation(fields: [ownerRef], references: [ref], onDelete: Cascade) + ownerRef String @map("owner_ref") + members WorkspaceMember[] + apiKeys ApiKey[] + + // Indexes and maps + @@index([accessKeyId], type: Hash) + @@index([ownerRef], type: Hash) + @@map("workspaces") +} + +model WorkspaceMember { + ref String @id @default(uuid()) + status WorkspaceMemberStatus @default(PENDING) + role WorkspaceMemberRole @default(USER) + createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) + updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz(3) + + // Relations + user User @relation(fields: [userRef], references: [ref], onDelete: Cascade) + userRef String @map("user_ref") + workspace Workspace @relation(fields: [workspaceRef], references: [ref], onDelete: Cascade) + workspaceRef String @map("workspace_ref") + + @@unique([userRef, workspaceRef]) + @@map("workspace_members") +} + +model ApiKey { + ref String @id @default(uuid()) + accessKeyId String @unique @map("access_key_id") @db.VarChar(255) + accessKeySecret String @map("access_key_secret") @db.VarChar(255) /// @encrypted + role ApiKeyRole @default(WORKSPACE_ADMIN) + createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) + updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz(3) + expiresAt DateTime? @map("expires_at") @db.Timestamptz(3) + + // Relations + workspace Workspace @relation(fields: [workspaceRef], references: [ref], onDelete: Cascade) + workspaceRef String @map("workspace_ref") + + // Indexes and maps + @@index([accessKeyId], type: Hash) + @@index([workspaceRef], type: Hash) + @@map("api_keys") +} + +model VerificationCode { + ref String @id @default(uuid()) + type VerificationType + code String @db.VarChar(6) + value String @db.VarChar(255) + expiresAt DateTime @map("expires_at") @db.Timestamptz(3) + createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) + + // Indexes and maps + @@index([code], type: Hash) + @@map("verification_codes") +} + +enum VerificationType { + EMAIL + PHONE +} + +enum WorkspaceMemberStatus { + PENDING + ACTIVE + + @@map("workspace_member_status") +} + +enum WorkspaceMemberRole { + OWNER + ADMIN + USER + + @@map("workspace_member_role") +} + +enum ApiKeyRole { + WORKSPACE_ADMIN + + @@map("api_key_role") +} diff --git a/mods/identity/src/apikeys/createCreateApiKey.ts b/mods/identity/src/apikeys/createCreateApiKey.ts new file mode 100644 index 000000000..2677d33e1 --- /dev/null +++ b/mods/identity/src/apikeys/createCreateApiKey.ts @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getAccessKeyIdFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { CreateApiKeyRequest, CreateApiKeyResponse } from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { Prisma } from "../db"; +import { + AccessKeyIdType, + generateAccessKeyId +} from "../utils/generateAccessKeyId"; +import { generateAccessKeySecret } from "../utils/generateAccessKeySecret"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createCreateApiKey(prisma: Prisma) { + const createApiKey = async ( + call: { request: CreateApiKeyRequest }, + callback: (error: GrpcErrorMessage, response?: CreateApiKeyResponse) => void + ) => { + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + const { request } = call; + const { role, expiresAt } = request; + + logger.info("creating new ApiKey", { accessKeyId, role, expiresAt }); + + const workspace = await prisma.workspace.findUnique({ + where: { accessKeyId } + }); + + const { ref } = workspace; + + const response = await prisma.apiKey.create({ + data: { + workspaceRef: ref, + role, + accessKeyId: generateAccessKeyId(AccessKeyIdType.API_KEY), + accessKeySecret: generateAccessKeySecret(), + expiresAt: expiresAt ? new Date(expiresAt) : null + } + }); + + callback(null, { + ref: response.ref, + accessKeyId: response.accessKeyId, + accessKeySecret: response.accessKeySecret + }); + }; + + return withErrorHandlingAndValidation( + createApiKey, + V.createApiKeyRequestSchema + ); +} + +export { CreateApiKeyRequest, CreateApiKeyResponse, createCreateApiKey }; diff --git a/mods/identity/src/apikeys/createDeleteApiKey.ts b/mods/identity/src/apikeys/createDeleteApiKey.ts new file mode 100644 index 000000000..2479c1fca --- /dev/null +++ b/mods/identity/src/apikeys/createDeleteApiKey.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject } from "@fonoster/types"; +import { Prisma } from "../db"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createDeleteApiKey(prisma: Prisma) { + const deleteApiKey = async ( + call: { request: BaseApiObject }, + callback: (error: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { request } = call; + const { ref } = request; + + logger.info("deleting ApiKey", { ref }); + + await prisma.apiKey.delete({ + where: { + ref + } + }); + + callback(null, { ref }); + }; + + return withErrorHandlingAndValidation(deleteApiKey, V.emptySchema); +} + +export { createDeleteApiKey }; diff --git a/mods/identity/src/apikeys/createListApiKeys.ts b/mods/identity/src/apikeys/createListApiKeys.ts new file mode 100644 index 000000000..b92da6beb --- /dev/null +++ b/mods/identity/src/apikeys/createListApiKeys.ts @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getAccessKeyIdFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { + ApiRoleEnum, + ListApiKeysRequest, + ListApiKeysResponse +} from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { Prisma } from "../db"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createListApiKeys(prisma: Prisma) { + const listApiKeys = async ( + call: { request: ListApiKeysRequest }, + callback: (error: GrpcErrorMessage, response?: ListApiKeysResponse) => void + ) => { + const { pageSize, pageToken } = call.request; + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + logger.verbose("list keys for workspace", { accessKeyId }); + + const workspace = await prisma.workspace.findUnique({ + where: { + accessKeyId + } + }); + + const keys = await prisma.apiKey.findMany({ + where: { + workspaceRef: workspace.ref + }, + take: pageSize, + skip: pageToken ? 1 : 0, + cursor: pageToken ? { ref: pageToken } : undefined + }); + + const items = keys.map((key) => ({ + ...key, + role: key.role as ApiRoleEnum + })); + + const response: ListApiKeysResponse = { + items, + nextPageToken: items[items.length - 1]?.ref + }; + + callback(null, response); + }; + + return withErrorHandlingAndValidation(listApiKeys, V.listRequestSchema); +} + +export { createListApiKeys }; diff --git a/mods/identity/src/apikeys/createRegenerateApiKey.ts b/mods/identity/src/apikeys/createRegenerateApiKey.ts new file mode 100644 index 000000000..e2977efd7 --- /dev/null +++ b/mods/identity/src/apikeys/createRegenerateApiKey.ts @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject, RegenerateApiKeyResponse } from "@fonoster/types"; +import { Prisma } from "../db"; +import { generateAccessKeySecret } from "../utils/generateAccessKeySecret"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createRegenerateApiKey(prisma: Prisma) { + const regenerateApiKey = async ( + call: { request: BaseApiObject }, + callback: ( + error: GrpcErrorMessage, + response?: RegenerateApiKeyResponse + ) => void + ) => { + const { request } = call; + const { ref } = request; + + logger.info("regenerating ApiKey", { ref }); + + const response = await prisma.apiKey.update({ + where: { + ref + }, + data: { + accessKeySecret: generateAccessKeySecret() + } + }); + + callback(null, { + ref: response.ref, + accessKeyId: response.accessKeyId, + accessKeySecret: response.accessKeySecret + }); + }; + + return withErrorHandlingAndValidation(regenerateApiKey, V.emptySchema); +} + +export { createRegenerateApiKey }; diff --git a/mods/identity/src/apikeys/index.ts b/mods/identity/src/apikeys/index.ts new file mode 100644 index 000000000..2017f3967 --- /dev/null +++ b/mods/identity/src/apikeys/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./createCreateApiKey"; +export * from "./createDeleteApiKey"; +export * from "./createListApiKeys"; +export * from "./createRegenerateApiKey"; diff --git a/mods/identity/src/constants.ts b/mods/identity/src/constants.ts new file mode 100644 index 000000000..ae77241fd --- /dev/null +++ b/mods/identity/src/constants.ts @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export const SIGN_ALGORITHM = "RS256"; +export const VERIFICATION_CODE_EXPIRATION = 5 * 60 * 1000; diff --git a/mods/identity/src/db.ts b/mods/identity/src/db.ts new file mode 100644 index 000000000..666e3ec89 --- /dev/null +++ b/mods/identity/src/db.ts @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Prisma as DMMF, PrismaClient } from "./generated/@prisma/client"; +import { fieldEncryptionExtension } from "prisma-field-encryption"; +import { CLOAK_ENCRYPTION_KEY } from "./envs"; + +// Check the link for details on dmff: +// https://www.npmjs.com/package/prisma-field-encryption#custom-prisma-client-location +const prisma = new PrismaClient().$extends( + fieldEncryptionExtension({ + encryptionKey: CLOAK_ENCRYPTION_KEY, + dmmf: DMMF.dmmf + }) +); + +type Prisma = typeof prisma; + +export { Prisma, prisma }; diff --git a/mods/identity/src/envs.ts b/mods/identity/src/envs.ts new file mode 100644 index 000000000..9a63accbd --- /dev/null +++ b/mods/identity/src/envs.ts @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const getEnvString = ( + moduleKey: string, + serverKey: string, + defaultValue?: string +): string => { + return process.env[moduleKey] || process.env[serverKey] || defaultValue || ""; +}; + +const getEnvBoolean = ( + moduleKey: string, + serverKey: string, + defaultValue = false +): boolean => { + const moduleValue = process.env[moduleKey]; + const serverValue = process.env[serverKey]; + return moduleValue === "true" || serverValue === "true" || defaultValue; +}; + +export const CLOAK_ENCRYPTION_KEY = getEnvString( + "CLOAK_ENCRYPTION_KEY", + "APISERVER_CLOAK_ENCRYPTION_KEY" +); + +export const IDENTITY_MFA_REQUIRED = getEnvBoolean( + "IDENTITY_MFA_REQUIRED", + "APISERVER_IDENTITY_MFA_REQUIRED" +); + +export const IDENTITY_OAUTH2_GITHUB_CLIENT_ID = getEnvString( + "IDENTITY_OAUTH2_GITHUB_CLIENT_ID", + "APISERVER_IDENTITY_OAUTH2_GITHUB_CLIENT_ID" +); + +export const IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET = getEnvString( + "IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET", + "APISERVER_IDENTITY_OAUTH2_GITHUB_CLIENT_SECRET" +); + +export const IDENTITY_USER_VERIFICATION_REQUIRED = getEnvBoolean( + "IDENTITY_USER_VERIFICATION_REQUIRED", + "APISERVER_IDENTITY_USER_VERIFICATION_REQUIRED" +); + +export const IDENTITY_WORKSPACE_INVITATION_URL = getEnvString( + "IDENTITY_WORKSPACE_INVITATION_URL", + "APISERVER_IDENTITY_WORKSPACE_INVITATION_URL" +); + +export const IDENTITY_WORKSPACE_INVITE_EXPIRATION = getEnvString( + "IDENTITY_WORKSPACE_INVITE_EXPIRATION", + "APISERVER_IDENTITY_WORKSPACE_INVITE_EXPIRATION", + "1d" +); diff --git a/mods/identity/src/exchanges/createExchangeApiKey.ts b/mods/identity/src/exchanges/createExchangeApiKey.ts new file mode 100644 index 000000000..90faeffed --- /dev/null +++ b/mods/identity/src/exchanges/createExchangeApiKey.ts @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import * as grpc from "@grpc/grpc-js"; +import { exchangeTokens } from "./exchangeTokens"; +import { + ExchangeApiKeysRequest, + ExchangeResponse, + IdentityConfig +} from "./types"; +import { Prisma } from "../db"; +import { createGetApiKeyByAccessKeyId } from "../utils/createGetApiKeyByAccessKeyId"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createExchangeApiKey(prisma: Prisma, identityConfig: IdentityConfig) { + const exchangeApiKey = async ( + call: { request: ExchangeApiKeysRequest }, + callback: (error: GrpcErrorMessage, response?: ExchangeResponse) => void + ) => { + const { request } = call; + const { accessKeyId, accessKeySecret } = request; + + logger.verbose("call to exchangeApiKey", { accessKeyId }); + + const key = await createGetApiKeyByAccessKeyId(prisma)(accessKeyId); + + if (key?.accessKeySecret !== accessKeySecret?.trim()) { + return callback({ + code: grpc.status.PERMISSION_DENIED, + message: "Invalid credentials" + }); + } + + callback(null, await exchangeTokens(prisma, identityConfig)(accessKeyId)); + }; + + return withErrorHandlingAndValidation( + exchangeApiKey, + V.exchangeApiKeysRequestSchema + ); +} + +export { createExchangeApiKey }; diff --git a/mods/identity/src/exchanges/createExchangeCredentials.ts b/mods/identity/src/exchanges/createExchangeCredentials.ts new file mode 100644 index 000000000..f4871156d --- /dev/null +++ b/mods/identity/src/exchanges/createExchangeCredentials.ts @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + exchangeCredentialsRequestSchema, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import * as grpc from "@grpc/grpc-js"; +import { exchangeTokens } from "./exchangeTokens"; +import { + ExchangeCredentialsRequest, + ExchangeResponse, + IdentityConfig +} from "./types"; +import { Prisma } from "../db"; +import { IDENTITY_USER_VERIFICATION_REQUIRED } from "../envs"; +import { createIsValidVerificationCode } from "../utils/createIsValidVerificationCode"; +import { createGetUserByEmail } from "../utils/createGetUserByEmail"; +import { ContactType } from "../verification"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +const verificationRequiredButNotProvided = (user: { + emailVerified: boolean; + phoneNumberVerified: boolean; +}) => + IDENTITY_USER_VERIFICATION_REQUIRED && + (!user.emailVerified || !user.phoneNumberVerified); + +function createExchangeCredentials( + prisma: Prisma, + identityConfig: IdentityConfig +) { + const isValidVerificationCode = createIsValidVerificationCode(prisma); + + const exchangeCredentials = async ( + call: { request: ExchangeCredentialsRequest }, + callback: (error?: GrpcErrorMessage, response?: ExchangeResponse) => void + ) => { + const { request } = call; + const { username: email, password, verificationCode } = request; + + logger.verbose("call to exchangeCredentials", { username: email }); + + const user = await createGetUserByEmail(prisma)(email); + + if (!user || user.password !== password?.trim()) { + return callback({ + code: grpc.status.PERMISSION_DENIED, + message: "Invalid credentials" + }); + } + + if (verificationRequiredButNotProvided(user)) { + return callback({ + code: grpc.status.PERMISSION_DENIED, + message: "User contact information not verified" + }); + } + + if (IDENTITY_USER_VERIFICATION_REQUIRED) { + const isValid = await isValidVerificationCode({ + type: ContactType.EMAIL, + value: email, + code: verificationCode + }); + + if (!isValid) { + return callback({ + code: grpc.status.PERMISSION_DENIED, + message: "Invalid verification code" + }); + } + } + + callback( + null, + await exchangeTokens(prisma, identityConfig)(user.accessKeyId) + ); + }; + + return withErrorHandlingAndValidation( + exchangeCredentials, + exchangeCredentialsRequestSchema + ); +} + +export { createExchangeCredentials }; diff --git a/mods/identity/src/exchanges/createExchangeOauth2Code.ts b/mods/identity/src/exchanges/createExchangeOauth2Code.ts new file mode 100644 index 000000000..bc78c7626 --- /dev/null +++ b/mods/identity/src/exchanges/createExchangeOauth2Code.ts @@ -0,0 +1,97 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + exchangeOauth2RequestSchema, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import * as grpc from "@grpc/grpc-js"; +import { exchangeTokens } from "./exchangeTokens"; +import { + ExchangeOauth2CodeRequest, + ExchangeResponse, + IdentityConfig +} from "./types"; +import { Prisma } from "../db"; +import { createGetUserByEmail } from "../utils/createGetUserByEmail"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createExchangeOauth2Code( + prisma: Prisma, + identityConfig: IdentityConfig +) { + const exchangeOauth2Code = async ( + call: { request: ExchangeOauth2CodeRequest }, + callback: (error?: GrpcErrorMessage, response?: ExchangeResponse) => void + ) => { + const { request } = call; + const { provider, username: email, code } = request; + + logger.verbose("call to exchangeOauth2Code", { provider }); + + const tokenResponse = await fetch( + "https://github.com/login/oauth/access_token", + { + method: "POST", + headers: { + "Content-Type": "application/json", + Accept: "application/json" + }, + body: JSON.stringify({ + client_id: identityConfig.githubOauth2Config.clientId, + client_secret: identityConfig.githubOauth2Config.clientSecret, + code + }) + } + ); + + const tokenData = await tokenResponse.json(); + const accessToken = tokenData?.access_token; + + const userResponse = await fetch("https://api.github.com/user", { + headers: { + Authorization: `token ${accessToken}` + } + }); + + const userData = await userResponse.json(); + const user = await createGetUserByEmail(prisma)(email); + + if (userData.email !== email || !user) { + return callback({ + code: grpc.status.PERMISSION_DENIED, + message: "Invalid credentials" + }); + } + + callback( + null, + await exchangeTokens(prisma, identityConfig)(user.accessKeyId) + ); + }; + + return withErrorHandlingAndValidation( + exchangeOauth2Code, + exchangeOauth2RequestSchema + ); +} + +export { createExchangeOauth2Code }; diff --git a/mods/identity/src/exchanges/createExchangeRefreshToken.ts b/mods/identity/src/exchanges/createExchangeRefreshToken.ts new file mode 100644 index 000000000..8b7b17ec5 --- /dev/null +++ b/mods/identity/src/exchanges/createExchangeRefreshToken.ts @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + exchangeRefreshTokenRequestSchema, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import jwt from "jsonwebtoken"; +import { exchangeTokens } from "./exchangeTokens"; +import { + ExchangeRefreshTokenRequest, + ExchangeResponse, + IdentityConfig +} from "./types"; +import { SIGN_ALGORITHM } from "../constants"; +import { Prisma } from "../db"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createExchangeRefreshToken( + prisma: Prisma, + identityConfig: IdentityConfig +) { + const exchangeRefreshToken = async ( + call: { request: ExchangeRefreshTokenRequest }, + callback: (error?: GrpcErrorMessage, response?: ExchangeResponse) => void + ) => { + const { privateKey } = identityConfig; + const { request } = call; + const { refreshToken: oldRefreshToken } = request; + + const oldRefreshTokenDecoded = jwt.verify(oldRefreshToken, privateKey, { + algorithms: [SIGN_ALGORITHM] + }) as { accessKeyId: string }; + + const { accessKeyId } = oldRefreshTokenDecoded; + + logger.verbose("call to exchangeRefreshToken", { accessKeyId }); + + callback(null, await exchangeTokens(prisma, identityConfig)(accessKeyId)); + }; + + return withErrorHandlingAndValidation( + exchangeRefreshToken, + exchangeRefreshTokenRequestSchema + ); +} + +export { createExchangeRefreshToken }; diff --git a/mods/identity/src/exchanges/exchangeTokens.ts b/mods/identity/src/exchanges/exchangeTokens.ts new file mode 100644 index 000000000..bb9de4e02 --- /dev/null +++ b/mods/identity/src/exchanges/exchangeTokens.ts @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import jwt from "jsonwebtoken"; +import * as AK from "./payloads/apikeys"; +import * as US from "./payloads/users"; +import { IdentityConfig } from "./types"; +import { Prisma } from "../db"; + +const SIGN_ALGORITHM = "RS256"; + +// prettier-ignore +function exchangeTokens(prisma: Prisma, identityConfig: IdentityConfig) { + return async (accessKeyId: string) => { + const { privateKey, idTokenExpiresIn, accessTokenExpiresIn, refreshTokenExpiresIn } = identityConfig; + + const idTokenSignOptions = { algorithm: SIGN_ALGORITHM, expiresIn: idTokenExpiresIn } as jwt.SignOptions; + const accessTokenSignOptions = { algorithm: SIGN_ALGORITHM, expiresIn: accessTokenExpiresIn } as jwt.SignOptions; + const refreshTokenSignOptions = { algorithm: SIGN_ALGORITHM, expiresIn: refreshTokenExpiresIn } as jwt.SignOptions; + + let idToken = null; + let accessToken = null; + let refreshToken = null; + + if (accessKeyId.startsWith("US")) { + const idTokenPayload = await US.createGetIdTokenPayload(prisma, identityConfig)(accessKeyId); + const accessTokenPayload = await US.createGetAccessTokenPayload(prisma, identityConfig)(accessKeyId); + const refreshTokenPayload = await US.createGetRefreshTokenPayload(prisma, identityConfig)(accessKeyId); + + idToken = jwt.sign(idTokenPayload, privateKey, idTokenSignOptions); + accessToken = jwt.sign(accessTokenPayload, privateKey, accessTokenSignOptions); + refreshToken = jwt.sign(refreshTokenPayload, privateKey, refreshTokenSignOptions); + } else { + const accessTokenPayload = await AK.createGetAccessTokenPayload(prisma, identityConfig)(accessKeyId); + const refreshTokenPayload = await AK.createGetRefreshTokenPayload(prisma, identityConfig)(accessKeyId); + + accessToken = jwt.sign(accessTokenPayload, privateKey, accessTokenSignOptions); + refreshToken = jwt.sign(refreshTokenPayload, privateKey, refreshTokenSignOptions); + } + + return { + idToken, + accessToken, + refreshToken + }; + } +} + +export { exchangeTokens }; diff --git a/mods/identity/src/exchanges/index.ts b/mods/identity/src/exchanges/index.ts new file mode 100644 index 000000000..a56c4d2de --- /dev/null +++ b/mods/identity/src/exchanges/index.ts @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./createExchangeApiKey"; +export * from "./createExchangeCredentials"; +export * from "./createExchangeOauth2Code"; +export * from "./createExchangeRefreshToken"; +export * from "./types"; diff --git a/mods/identity/src/exchanges/payloads/apikeys/createGetAccessTokenPayload.ts b/mods/identity/src/exchanges/payloads/apikeys/createGetAccessTokenPayload.ts new file mode 100644 index 000000000..884d143ac --- /dev/null +++ b/mods/identity/src/exchanges/payloads/apikeys/createGetAccessTokenPayload.ts @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { WorkspaceRoleEnum } from "@fonoster/types"; +import { Prisma } from "../../../db"; +import { AccessToken, TokenUseEnum } from "@fonoster/common/"; +import { IdentityConfig } from "../../types"; + +function createGetAccessTokenPayload( + prisma: Prisma, + identityConfig: IdentityConfig +) { + return async function getAccessTokenPayload( + accessKeyId: string + ): Promise { + const apiKey = await prisma.apiKey.findFirst({ + where: { + accessKeyId + }, + include: { + workspace: true + } + }); + + if (!apiKey) { + return null; + } + + const { issuer, audience } = identityConfig; + const { ref, workspace } = apiKey; + + const access = [ + { + accessKeyId: workspace.accessKeyId, + role: apiKey.role as WorkspaceRoleEnum + } + ]; + + return { + iss: issuer, + sub: ref, + aud: audience, + tokenUse: TokenUseEnum.ACCESS, + accessKeyId, + access + } as AccessToken; + }; +} + +export { createGetAccessTokenPayload }; diff --git a/mods/identity/src/exchanges/payloads/apikeys/createGetRefreshTokenPayload.ts b/mods/identity/src/exchanges/payloads/apikeys/createGetRefreshTokenPayload.ts new file mode 100644 index 000000000..44cd1fa69 --- /dev/null +++ b/mods/identity/src/exchanges/payloads/apikeys/createGetRefreshTokenPayload.ts @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Prisma } from "../../../db"; +import { IdentityConfig } from "../../types"; +import { RefreshToken } from "@fonoster/common"; +import { buildRefreshTokenPayload } from "../buildRefreshTokenPayload"; + +function createGetRefreshTokenPayload( + prisma: Prisma, + identityConfig: IdentityConfig +) { + return async function createGetRefreshTokenPayload( + accessKeyId: string + ): Promise { + const apiKey = await prisma.apiKey.findFirst({ + where: { + accessKeyId + } + }); + + if (!apiKey) { + return null; + } + + const { ref: identityRef } = apiKey; + + return buildRefreshTokenPayload({ + identityConfig, + accessKeyId, + identityRef + }); + }; +} + +export { createGetRefreshTokenPayload }; diff --git a/mods/identity/src/exchanges/payloads/apikeys/index.ts b/mods/identity/src/exchanges/payloads/apikeys/index.ts new file mode 100644 index 000000000..da445e7e4 --- /dev/null +++ b/mods/identity/src/exchanges/payloads/apikeys/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./createGetAccessTokenPayload"; +export * from "./createGetRefreshTokenPayload"; diff --git a/mods/identity/src/exchanges/payloads/buildRefreshTokenPayload.ts b/mods/identity/src/exchanges/payloads/buildRefreshTokenPayload.ts new file mode 100644 index 000000000..1f77b07fd --- /dev/null +++ b/mods/identity/src/exchanges/payloads/buildRefreshTokenPayload.ts @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { RefreshToken, TokenUseEnum } from "@fonoster/common"; +import { IdentityConfig } from "../types"; + +function buildRefreshTokenPayload(params: { + identityConfig: IdentityConfig; + accessKeyId: string; + identityRef: string; +}) { + const { identityConfig, accessKeyId, identityRef } = params; + const { issuer, audience } = identityConfig; + + return { + iss: issuer, + sub: identityRef, + aud: audience, + tokenUse: TokenUseEnum.REFRESH, + accessKeyId + } as RefreshToken; +} + +export { buildRefreshTokenPayload }; diff --git a/mods/identity/src/exchanges/payloads/users/createGetAccessTokenPayload.ts b/mods/identity/src/exchanges/payloads/users/createGetAccessTokenPayload.ts new file mode 100644 index 000000000..913a96667 --- /dev/null +++ b/mods/identity/src/exchanges/payloads/users/createGetAccessTokenPayload.ts @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { WorkspaceMemberStatus, WorkspaceRoleEnum } from "@fonoster/types"; +import { Prisma } from "../../../db"; +import { AccessToken, TokenUseEnum } from "@fonoster/common"; +import { IdentityConfig } from "../../types"; + +function createGetAccessTokenPayload( + prisma: Prisma, + identityConfig: IdentityConfig +) { + return async function createGetAccessTokenPayload( + accessKeyId: string + ): Promise { + const user = await prisma.user.findFirst({ + where: { + accessKeyId + }, + include: { + ownedWorkspaces: true, + memberships: { + include: { + workspace: true + } + } + } + }); + + if (!user) { + return null; + } + + const { issuer, audience } = identityConfig; + const { ref, ownedWorkspaces, memberships } = user; + + const access = ownedWorkspaces.map((workspace) => ({ + accessKeyId: workspace.accessKeyId, + role: WorkspaceRoleEnum.OWNER + })); + + memberships.forEach((membership) => { + membership.status === WorkspaceMemberStatus.ACTIVE && + access.push({ + accessKeyId: membership.workspace.accessKeyId, + role: membership.role as WorkspaceRoleEnum + }); + }); + + return { + iss: issuer, + sub: ref, + aud: audience, + tokenUse: TokenUseEnum.ACCESS, + accessKeyId, + access + } as AccessToken; + }; +} + +export { createGetAccessTokenPayload }; diff --git a/mods/identity/src/exchanges/payloads/users/createGetIdTokenPayload.ts b/mods/identity/src/exchanges/payloads/users/createGetIdTokenPayload.ts new file mode 100644 index 000000000..3328db3a1 --- /dev/null +++ b/mods/identity/src/exchanges/payloads/users/createGetIdTokenPayload.ts @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Prisma } from "../../../db"; +import { IdToken, TokenUseEnum } from "@fonoster/common"; +import { IdentityConfig } from "../../types"; + +function createGetIdTokenPayload( + prisma: Prisma, + identityConfig: IdentityConfig +) { + return async function getIdTokenPayload( + accessKeyId: string + ): Promise { + const user = await prisma.user.findFirst({ + where: { + accessKeyId + } + }); + + if (!user) { + return null; + } + + const { issuer, audience } = identityConfig; + const { ref, email, phoneNumber, emailVerified, phoneNumberVerified } = + user; + + return { + iss: issuer, + sub: ref, + aud: audience, + tokenUse: TokenUseEnum.ID, + accessKeyId, + email, + emailVerified, + phoneNumber, + phoneNumberVerified + } as IdToken; + }; +} + +export { createGetIdTokenPayload }; diff --git a/mods/identity/src/exchanges/payloads/users/createGetRefreshTokenPayload.ts b/mods/identity/src/exchanges/payloads/users/createGetRefreshTokenPayload.ts new file mode 100644 index 000000000..b1fdcd2ef --- /dev/null +++ b/mods/identity/src/exchanges/payloads/users/createGetRefreshTokenPayload.ts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Prisma } from "../../../db"; +import { RefreshToken, TokenUseEnum } from "@fonoster/common"; +import { IdentityConfig } from "../../types"; + +function createGetRefreshTokenPayload( + prisma: Prisma, + identityConfig: IdentityConfig +) { + return async function getRefreshTokenPayload( + accessKeyId: string + ): Promise { + const user = await prisma.user.findFirst({ + where: { + accessKeyId + } + }); + + if (!user) { + return null; + } + + const { issuer, audience } = identityConfig; + const { ref } = user; + + return { + iss: issuer, + sub: ref, + aud: audience, + tokenUse: TokenUseEnum.REFRESH, + accessKeyId + } as RefreshToken; + }; +} + +export { createGetRefreshTokenPayload }; diff --git a/mods/identity/src/exchanges/payloads/users/index.ts b/mods/identity/src/exchanges/payloads/users/index.ts new file mode 100644 index 000000000..7f331626f --- /dev/null +++ b/mods/identity/src/exchanges/payloads/users/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./createGetAccessTokenPayload"; +export * from "./createGetIdTokenPayload"; +export * from "./createGetRefreshTokenPayload"; diff --git a/mods/identity/src/exchanges/types.ts b/mods/identity/src/exchanges/types.ts new file mode 100644 index 000000000..fd9b23b5a --- /dev/null +++ b/mods/identity/src/exchanges/types.ts @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Validators as V } from "@fonoster/common"; +import { z } from "zod"; + +type IdentityConfig = { + issuer: string; + audience: string; + privateKey: string; + publicKey: string; + encryptionKey: string; + accessTokenExpiresIn: number | string; + refreshTokenExpiresIn: number | string; + idTokenExpiresIn: number | string; + smtpConfig: { + sender: string; + host: string; + port: number; + secure: boolean; + auth: { + user: string; + pass: string; + }; + }; + twilioSmsConfig?: { + accountSid: string; + authToken: string; + sender: string; + }; + githubOauth2Config?: { + clientId: string; + clientSecret: string; + }; +}; + +type ExchangeApiKeysRequest = z.infer; + +type ExchangeOauth2CodeRequest = z.infer; + +type ExchangeCredentialsRequest = z.infer< + typeof V.exchangeCredentialsRequestSchema +>; + +type ExchangeResponse = { + idToken: string; + accessToken: string; + refreshToken: string; +}; + +type ExchangeRefreshTokenRequest = z.infer< + typeof V.exchangeRefreshTokenRequestSchema +>; + +export { + ExchangeApiKeysRequest, + ExchangeCredentialsRequest, + ExchangeOauth2CodeRequest, + ExchangeRefreshTokenRequest, + ExchangeResponse, + IdentityConfig +}; diff --git a/mods/identity/src/generated/@prisma/client/default.d.ts b/mods/identity/src/generated/@prisma/client/default.d.ts new file mode 100644 index 000000000..bc20c6c16 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/default.d.ts @@ -0,0 +1 @@ +export * from "./index" \ No newline at end of file diff --git a/mods/identity/src/generated/@prisma/client/default.js b/mods/identity/src/generated/@prisma/client/default.js new file mode 100644 index 000000000..fa52f0cd2 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/default.js @@ -0,0 +1 @@ +module.exports = { ...require('.') } \ No newline at end of file diff --git a/mods/identity/src/generated/@prisma/client/edge.d.ts b/mods/identity/src/generated/@prisma/client/edge.d.ts new file mode 100644 index 000000000..274b8fa61 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/edge.d.ts @@ -0,0 +1 @@ +export * from "./default" \ No newline at end of file diff --git a/mods/identity/src/generated/@prisma/client/edge.js b/mods/identity/src/generated/@prisma/client/edge.js new file mode 100644 index 000000000..6d2b9e437 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/edge.js @@ -0,0 +1,268 @@ + +Object.defineProperty(exports, "__esModule", { value: true }); + +const { + PrismaClientKnownRequestError, + PrismaClientUnknownRequestError, + PrismaClientRustPanicError, + PrismaClientInitializationError, + PrismaClientValidationError, + getPrismaClient, + sqltag, + empty, + join, + raw, + skip, + Decimal, + Debug, + objectEnumValues, + makeStrictEnum, + Extensions, + warnOnce, + defineDmmfProperty, + Public, + getRuntime +} = require('./runtime/edge.js') + + +const Prisma = {} + +exports.Prisma = Prisma +exports.$Enums = {} + +/** + * Prisma Client JS version: 6.1.0 + * Query Engine version: 11f085a2012c0f4778414c8db2651556ee0ef959 + */ +Prisma.prismaVersion = { + client: "6.1.0", + engine: "11f085a2012c0f4778414c8db2651556ee0ef959" +} + +Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError; +Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError +Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError +Prisma.PrismaClientInitializationError = PrismaClientInitializationError +Prisma.PrismaClientValidationError = PrismaClientValidationError +Prisma.Decimal = Decimal + +/** + * Re-export of sql-template-tag + */ +Prisma.sql = sqltag +Prisma.empty = empty +Prisma.join = join +Prisma.raw = raw +Prisma.validator = Public.validator + +/** +* Extensions +*/ +Prisma.getExtensionContext = Extensions.getExtensionContext +Prisma.defineExtension = Extensions.defineExtension + +/** + * Shorthand utilities for JSON filtering + */ +Prisma.DbNull = objectEnumValues.instances.DbNull +Prisma.JsonNull = objectEnumValues.instances.JsonNull +Prisma.AnyNull = objectEnumValues.instances.AnyNull + +Prisma.NullTypes = { + DbNull: objectEnumValues.classes.DbNull, + JsonNull: objectEnumValues.classes.JsonNull, + AnyNull: objectEnumValues.classes.AnyNull +} + + + + + +/** + * Enums + */ +exports.Prisma.TransactionIsolationLevel = makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); + +exports.Prisma.UserScalarFieldEnum = { + ref: 'ref', + accessKeyId: 'accessKeyId', + name: 'name', + email: 'email', + emailVerified: 'emailVerified', + password: 'password', + phoneNumber: 'phoneNumber', + phoneNumberVerified: 'phoneNumberVerified', + avatar: 'avatar', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + extended: 'extended' +}; + +exports.Prisma.WorkspaceScalarFieldEnum = { + ref: 'ref', + accessKeyId: 'accessKeyId', + name: 'name', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + ownerRef: 'ownerRef' +}; + +exports.Prisma.WorkspaceMemberScalarFieldEnum = { + ref: 'ref', + status: 'status', + role: 'role', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + userRef: 'userRef', + workspaceRef: 'workspaceRef' +}; + +exports.Prisma.ApiKeyScalarFieldEnum = { + ref: 'ref', + accessKeyId: 'accessKeyId', + accessKeySecret: 'accessKeySecret', + role: 'role', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + expiresAt: 'expiresAt', + workspaceRef: 'workspaceRef' +}; + +exports.Prisma.VerificationCodeScalarFieldEnum = { + ref: 'ref', + type: 'type', + code: 'code', + value: 'value', + expiresAt: 'expiresAt', + createdAt: 'createdAt' +}; + +exports.Prisma.SortOrder = { + asc: 'asc', + desc: 'desc' +}; + +exports.Prisma.NullableJsonNullValueInput = { + DbNull: Prisma.DbNull, + JsonNull: Prisma.JsonNull +}; + +exports.Prisma.QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; + +exports.Prisma.JsonNullValueFilter = { + DbNull: Prisma.DbNull, + JsonNull: Prisma.JsonNull, + AnyNull: Prisma.AnyNull +}; + +exports.Prisma.NullsOrder = { + first: 'first', + last: 'last' +}; +exports.VerificationType = exports.$Enums.VerificationType = { + EMAIL: 'EMAIL', + PHONE: 'PHONE' +}; + +exports.WorkspaceMemberStatus = exports.$Enums.WorkspaceMemberStatus = { + PENDING: 'PENDING', + ACTIVE: 'ACTIVE' +}; + +exports.WorkspaceMemberRole = exports.$Enums.WorkspaceMemberRole = { + OWNER: 'OWNER', + ADMIN: 'ADMIN', + USER: 'USER' +}; + +exports.ApiKeyRole = exports.$Enums.ApiKeyRole = { + WORKSPACE_ADMIN: 'WORKSPACE_ADMIN' +}; + +exports.Prisma.ModelName = { + User: 'User', + Workspace: 'Workspace', + WorkspaceMember: 'WorkspaceMember', + ApiKey: 'ApiKey', + VerificationCode: 'VerificationCode' +}; +/** + * Create the Client + */ +const config = { + "generator": { + "name": "client", + "provider": { + "fromEnvVar": null, + "value": "prisma-client-js" + }, + "output": { + "value": "/Users/psanders/Projects/fonoster/mods/identity/src/generated/@prisma/client", + "fromEnvVar": null + }, + "config": { + "engineType": "library" + }, + "binaryTargets": [ + { + "fromEnvVar": null, + "value": "darwin-arm64", + "native": true + } + ], + "previewFeatures": [], + "sourceFilePath": "/Users/psanders/Projects/fonoster/mods/identity/schema.prisma", + "isCustomOutput": true + }, + "relativeEnvPaths": { + "rootEnvPath": null, + "schemaEnvPath": "../../../../../../.env" + }, + "relativePath": "../../../..", + "clientVersion": "6.1.0", + "engineVersion": "11f085a2012c0f4778414c8db2651556ee0ef959", + "datasourceNames": [ + "db" + ], + "activeProvider": "postgresql", + "postinstall": false, + "inlineDatasources": { + "db": { + "url": { + "fromEnvVar": "APISERVER_IDENTITY_DATABASE_URL", + "value": null + } + } + }, + "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"src/generated/@prisma/client\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"APISERVER_IDENTITY_DATABASE_URL\")\n}\n\nmodel User {\n ref String @id @default(uuid())\n accessKeyId String @unique @map(\"access_key_id\") @db.VarChar(255)\n name String @db.VarChar(60)\n email String @unique @db.VarChar(255)\n emailVerified Boolean @default(false) @map(\"email_verified\")\n password String @map(\"password_hash\") /// @encrypted\n phoneNumber String? @map(\"phone_number\") @db.VarChar(20)\n phoneNumberVerified Boolean @default(false) @map(\"phone_number_verified\")\n avatar String? @db.VarChar(255)\n createdAt DateTime @default(now()) @map(\"created_at\") @db.Timestamptz(3)\n updatedAt DateTime @default(now()) @map(\"updated_at\") @db.Timestamptz(3)\n extended Json?\n\n // Relations\n ownedWorkspaces Workspace[] // Workspaces owned by the user\n memberships WorkspaceMember[] // Workspaces the user is a member of\n\n // Indexes and maps\n @@index([email], type: Hash)\n @@index([accessKeyId], type: Hash)\n @@map(\"users\")\n}\n\nmodel Workspace {\n ref String @id @default(uuid())\n accessKeyId String @unique @map(\"access_key_id\") @db.VarChar(255)\n name String @db.VarChar(60)\n createdAt DateTime @default(now()) @map(\"created_at\") @db.Timestamptz(3)\n updatedAt DateTime @default(now()) @map(\"updated_at\") @db.Timestamptz(3)\n\n // Relations\n owner User @relation(fields: [ownerRef], references: [ref], onDelete: Cascade)\n ownerRef String @map(\"owner_ref\")\n members WorkspaceMember[]\n apiKeys ApiKey[]\n\n // Indexes and maps\n @@index([accessKeyId], type: Hash)\n @@index([ownerRef], type: Hash)\n @@map(\"workspaces\")\n}\n\nmodel WorkspaceMember {\n ref String @id @default(uuid())\n status WorkspaceMemberStatus @default(PENDING)\n role WorkspaceMemberRole @default(USER)\n createdAt DateTime @default(now()) @map(\"created_at\") @db.Timestamptz(3)\n updatedAt DateTime @default(now()) @map(\"updated_at\") @db.Timestamptz(3)\n\n // Relations\n user User @relation(fields: [userRef], references: [ref], onDelete: Cascade)\n userRef String @map(\"user_ref\")\n workspace Workspace @relation(fields: [workspaceRef], references: [ref], onDelete: Cascade)\n workspaceRef String @map(\"workspace_ref\")\n\n @@unique([userRef, workspaceRef])\n @@map(\"workspace_members\")\n}\n\nmodel ApiKey {\n ref String @id @default(uuid())\n accessKeyId String @unique @map(\"access_key_id\") @db.VarChar(255)\n accessKeySecret String @map(\"access_key_secret\") @db.VarChar(255) /// @encrypted\n role ApiKeyRole @default(WORKSPACE_ADMIN)\n createdAt DateTime @default(now()) @map(\"created_at\") @db.Timestamptz(3)\n updatedAt DateTime @default(now()) @map(\"updated_at\") @db.Timestamptz(3)\n expiresAt DateTime? @map(\"expires_at\") @db.Timestamptz(3)\n\n // Relations\n workspace Workspace @relation(fields: [workspaceRef], references: [ref], onDelete: Cascade)\n workspaceRef String @map(\"workspace_ref\")\n\n // Indexes and maps\n @@index([accessKeyId], type: Hash)\n @@index([workspaceRef], type: Hash)\n @@map(\"api_keys\")\n}\n\nmodel VerificationCode {\n ref String @id @default(uuid())\n type VerificationType\n code String @db.VarChar(6)\n value String @db.VarChar(255)\n expiresAt DateTime @map(\"expires_at\") @db.Timestamptz(3)\n createdAt DateTime @default(now()) @map(\"created_at\") @db.Timestamptz(3)\n\n // Indexes and maps\n @@index([code], type: Hash)\n @@map(\"verification_codes\")\n}\n\nenum VerificationType {\n EMAIL\n PHONE\n}\n\nenum WorkspaceMemberStatus {\n PENDING\n ACTIVE\n\n @@map(\"workspace_member_status\")\n}\n\nenum WorkspaceMemberRole {\n OWNER\n ADMIN\n USER\n\n @@map(\"workspace_member_role\")\n}\n\nenum ApiKeyRole {\n WORKSPACE_ADMIN\n\n @@map(\"api_key_role\")\n}\n", + "inlineSchemaHash": "1098b113241be08edaeab5102f7a2c1c0269e3855b8d7ab7f3f41f61fa060583", + "copyEngine": true +} +config.dirname = '/' + +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":\"users\",\"schema\":null,\"fields\":[{\"name\":\"ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessKeyId\",\"dbName\":\"access_key_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"60\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"emailVerified\",\"dbName\":\"email_verified\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"password\",\"dbName\":\"password_hash\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false,\"documentation\":\"@encrypted\"},{\"name\":\"phoneNumber\",\"dbName\":\"phone_number\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"20\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"phoneNumberVerified\",\"dbName\":\"phone_number_verified\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"avatar\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"extended\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ownedWorkspaces\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Workspace\",\"nativeType\":null,\"relationName\":\"UserToWorkspace\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"memberships\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"WorkspaceMember\",\"nativeType\":null,\"relationName\":\"UserToWorkspaceMember\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Workspace\":{\"dbName\":\"workspaces\",\"schema\":null,\"fields\":[{\"name\":\"ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessKeyId\",\"dbName\":\"access_key_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"60\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"owner\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserToWorkspace\",\"relationFromFields\":[\"ownerRef\"],\"relationToFields\":[\"ref\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ownerRef\",\"dbName\":\"owner_ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"members\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"WorkspaceMember\",\"nativeType\":null,\"relationName\":\"WorkspaceToWorkspaceMember\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"apiKeys\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"ApiKey\",\"nativeType\":null,\"relationName\":\"ApiKeyToWorkspace\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"WorkspaceMember\":{\"dbName\":\"workspace_members\",\"schema\":null,\"fields\":[{\"name\":\"ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"WorkspaceMemberStatus\",\"nativeType\":null,\"default\":\"PENDING\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"role\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"WorkspaceMemberRole\",\"nativeType\":null,\"default\":\"USER\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserToWorkspaceMember\",\"relationFromFields\":[\"userRef\"],\"relationToFields\":[\"ref\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userRef\",\"dbName\":\"user_ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"workspace\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Workspace\",\"nativeType\":null,\"relationName\":\"WorkspaceToWorkspaceMember\",\"relationFromFields\":[\"workspaceRef\"],\"relationToFields\":[\"ref\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"workspaceRef\",\"dbName\":\"workspace_ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"userRef\",\"workspaceRef\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"userRef\",\"workspaceRef\"]}],\"isGenerated\":false},\"ApiKey\":{\"dbName\":\"api_keys\",\"schema\":null,\"fields\":[{\"name\":\"ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessKeyId\",\"dbName\":\"access_key_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessKeySecret\",\"dbName\":\"access_key_secret\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false,\"documentation\":\"@encrypted\"},{\"name\":\"role\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"ApiKeyRole\",\"nativeType\":null,\"default\":\"WORKSPACE_ADMIN\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expiresAt\",\"dbName\":\"expires_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"workspace\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Workspace\",\"nativeType\":null,\"relationName\":\"ApiKeyToWorkspace\",\"relationFromFields\":[\"workspaceRef\"],\"relationToFields\":[\"ref\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"workspaceRef\",\"dbName\":\"workspace_ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"VerificationCode\":{\"dbName\":\"verification_codes\",\"schema\":null,\"fields\":[{\"name\":\"ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"VerificationType\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"code\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"6\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"value\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expiresAt\",\"dbName\":\"expires_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{\"VerificationType\":{\"values\":[{\"name\":\"EMAIL\",\"dbName\":null},{\"name\":\"PHONE\",\"dbName\":null}],\"dbName\":null},\"WorkspaceMemberStatus\":{\"values\":[{\"name\":\"PENDING\",\"dbName\":null},{\"name\":\"ACTIVE\",\"dbName\":null}],\"dbName\":\"workspace_member_status\"},\"WorkspaceMemberRole\":{\"values\":[{\"name\":\"OWNER\",\"dbName\":null},{\"name\":\"ADMIN\",\"dbName\":null},{\"name\":\"USER\",\"dbName\":null}],\"dbName\":\"workspace_member_role\"},\"ApiKeyRole\":{\"values\":[{\"name\":\"WORKSPACE_ADMIN\",\"dbName\":null}],\"dbName\":\"api_key_role\"}},\"types\":{}}") +defineDmmfProperty(exports.Prisma, config.runtimeDataModel) +config.engineWasm = undefined + +config.injectableEdgeEnv = () => ({ + parsed: { + APISERVER_IDENTITY_DATABASE_URL: typeof globalThis !== 'undefined' && globalThis['APISERVER_IDENTITY_DATABASE_URL'] || typeof process !== 'undefined' && process.env && process.env.APISERVER_IDENTITY_DATABASE_URL || undefined + } +}) + +if (typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined) { + Debug.enable(typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined) +} + +const PrismaClient = getPrismaClient(config) +exports.PrismaClient = PrismaClient +Object.assign(exports, Prisma) + diff --git a/mods/identity/src/generated/@prisma/client/index-browser.js b/mods/identity/src/generated/@prisma/client/index-browser.js new file mode 100644 index 000000000..d895b5952 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/index-browser.js @@ -0,0 +1,256 @@ + +Object.defineProperty(exports, "__esModule", { value: true }); + +const { + Decimal, + objectEnumValues, + makeStrictEnum, + Public, + getRuntime, + skip +} = require('./runtime/index-browser.js') + + +const Prisma = {} + +exports.Prisma = Prisma +exports.$Enums = {} + +/** + * Prisma Client JS version: 6.1.0 + * Query Engine version: 11f085a2012c0f4778414c8db2651556ee0ef959 + */ +Prisma.prismaVersion = { + client: "6.1.0", + engine: "11f085a2012c0f4778414c8db2651556ee0ef959" +} + +Prisma.PrismaClientKnownRequestError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientKnownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)}; +Prisma.PrismaClientUnknownRequestError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientUnknownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientRustPanicError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientRustPanicError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientInitializationError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientInitializationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientValidationError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientValidationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.Decimal = Decimal + +/** + * Re-export of sql-template-tag + */ +Prisma.sql = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`sqltag is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.empty = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`empty is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.join = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`join is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.raw = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`raw is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.validator = Public.validator + +/** +* Extensions +*/ +Prisma.getExtensionContext = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`Extensions.getExtensionContext is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.defineExtension = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`Extensions.defineExtension is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} + +/** + * Shorthand utilities for JSON filtering + */ +Prisma.DbNull = objectEnumValues.instances.DbNull +Prisma.JsonNull = objectEnumValues.instances.JsonNull +Prisma.AnyNull = objectEnumValues.instances.AnyNull + +Prisma.NullTypes = { + DbNull: objectEnumValues.classes.DbNull, + JsonNull: objectEnumValues.classes.JsonNull, + AnyNull: objectEnumValues.classes.AnyNull +} + + + +/** + * Enums + */ + +exports.Prisma.TransactionIsolationLevel = makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); + +exports.Prisma.UserScalarFieldEnum = { + ref: 'ref', + accessKeyId: 'accessKeyId', + name: 'name', + email: 'email', + emailVerified: 'emailVerified', + password: 'password', + phoneNumber: 'phoneNumber', + phoneNumberVerified: 'phoneNumberVerified', + avatar: 'avatar', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + extended: 'extended' +}; + +exports.Prisma.WorkspaceScalarFieldEnum = { + ref: 'ref', + accessKeyId: 'accessKeyId', + name: 'name', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + ownerRef: 'ownerRef' +}; + +exports.Prisma.WorkspaceMemberScalarFieldEnum = { + ref: 'ref', + status: 'status', + role: 'role', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + userRef: 'userRef', + workspaceRef: 'workspaceRef' +}; + +exports.Prisma.ApiKeyScalarFieldEnum = { + ref: 'ref', + accessKeyId: 'accessKeyId', + accessKeySecret: 'accessKeySecret', + role: 'role', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + expiresAt: 'expiresAt', + workspaceRef: 'workspaceRef' +}; + +exports.Prisma.VerificationCodeScalarFieldEnum = { + ref: 'ref', + type: 'type', + code: 'code', + value: 'value', + expiresAt: 'expiresAt', + createdAt: 'createdAt' +}; + +exports.Prisma.SortOrder = { + asc: 'asc', + desc: 'desc' +}; + +exports.Prisma.NullableJsonNullValueInput = { + DbNull: Prisma.DbNull, + JsonNull: Prisma.JsonNull +}; + +exports.Prisma.QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; + +exports.Prisma.JsonNullValueFilter = { + DbNull: Prisma.DbNull, + JsonNull: Prisma.JsonNull, + AnyNull: Prisma.AnyNull +}; + +exports.Prisma.NullsOrder = { + first: 'first', + last: 'last' +}; +exports.WorkspaceMemberStatus = exports.$Enums.WorkspaceMemberStatus = { + PENDING: 'PENDING', + ACTIVE: 'ACTIVE' +}; + +exports.WorkspaceMemberRole = exports.$Enums.WorkspaceMemberRole = { + OWNER: 'OWNER', + ADMIN: 'ADMIN', + USER: 'USER' +}; + +exports.ApiKeyRole = exports.$Enums.ApiKeyRole = { + WORKSPACE_ADMIN: 'WORKSPACE_ADMIN' +}; + +exports.VerificationType = exports.$Enums.VerificationType = { + EMAIL: 'EMAIL', + PHONE: 'PHONE' +}; + +exports.Prisma.ModelName = { + User: 'User', + Workspace: 'Workspace', + WorkspaceMember: 'WorkspaceMember', + ApiKey: 'ApiKey', + VerificationCode: 'VerificationCode' +}; + +/** + * This is a stub Prisma Client that will error at runtime if called. + */ +class PrismaClient { + constructor() { + return new Proxy(this, { + get(target, prop) { + let message + const runtime = getRuntime() + if (runtime.isEdge) { + message = `PrismaClient is not configured to run in ${runtime.prettyName}. In order to run Prisma Client on edge runtime, either: +- Use Prisma Accelerate: https://pris.ly/d/accelerate +- Use Driver Adapters: https://pris.ly/d/driver-adapters +`; + } else { + message = 'PrismaClient is unable to run in this browser environment, or has been bundled for the browser (running in `' + runtime.prettyName + '`).' + } + + message += ` +If this is unexpected, please open an issue: https://pris.ly/prisma-prisma-bug-report` + + throw new Error(message) + } + }) + } +} + +exports.PrismaClient = PrismaClient + +Object.assign(exports, Prisma) diff --git a/mods/identity/src/generated/@prisma/client/index.d.ts b/mods/identity/src/generated/@prisma/client/index.d.ts new file mode 100644 index 000000000..12a1a2d3b --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/index.d.ts @@ -0,0 +1,8789 @@ + +/** + * Client +**/ + +import * as runtime from './runtime/library.js'; +import $Types = runtime.Types // general types +import $Public = runtime.Types.Public +import $Utils = runtime.Types.Utils +import $Extensions = runtime.Types.Extensions +import $Result = runtime.Types.Result + +export type PrismaPromise = $Public.PrismaPromise + + +/** + * Model User + * + */ +export type User = $Result.DefaultSelection +/** + * Model Workspace + * + */ +export type Workspace = $Result.DefaultSelection +/** + * Model WorkspaceMember + * + */ +export type WorkspaceMember = $Result.DefaultSelection +/** + * Model ApiKey + * + */ +export type ApiKey = $Result.DefaultSelection +/** + * Model VerificationCode + * + */ +export type VerificationCode = $Result.DefaultSelection + +/** + * Enums + */ +export namespace $Enums { + export const VerificationType: { + EMAIL: 'EMAIL', + PHONE: 'PHONE' +}; + +export type VerificationType = (typeof VerificationType)[keyof typeof VerificationType] + + +export const WorkspaceMemberStatus: { + PENDING: 'PENDING', + ACTIVE: 'ACTIVE' +}; + +export type WorkspaceMemberStatus = (typeof WorkspaceMemberStatus)[keyof typeof WorkspaceMemberStatus] + + +export const WorkspaceMemberRole: { + OWNER: 'OWNER', + ADMIN: 'ADMIN', + USER: 'USER' +}; + +export type WorkspaceMemberRole = (typeof WorkspaceMemberRole)[keyof typeof WorkspaceMemberRole] + + +export const ApiKeyRole: { + WORKSPACE_ADMIN: 'WORKSPACE_ADMIN' +}; + +export type ApiKeyRole = (typeof ApiKeyRole)[keyof typeof ApiKeyRole] + +} + +export type VerificationType = $Enums.VerificationType + +export const VerificationType: typeof $Enums.VerificationType + +export type WorkspaceMemberStatus = $Enums.WorkspaceMemberStatus + +export const WorkspaceMemberStatus: typeof $Enums.WorkspaceMemberStatus + +export type WorkspaceMemberRole = $Enums.WorkspaceMemberRole + +export const WorkspaceMemberRole: typeof $Enums.WorkspaceMemberRole + +export type ApiKeyRole = $Enums.ApiKeyRole + +export const ApiKeyRole: typeof $Enums.ApiKeyRole + +/** + * ## Prisma Client ʲˢ + * + * Type-safe database client for TypeScript & Node.js + * @example + * ``` + * const prisma = new PrismaClient() + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client). + */ +export class PrismaClient< + ClientOptions extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions, + U = 'log' extends keyof ClientOptions ? ClientOptions['log'] extends Array ? Prisma.GetEvents : never : never, + ExtArgs extends $Extensions.InternalArgs = $Extensions.DefaultArgs +> { + [K: symbol]: { types: Prisma.TypeMap['other'] } + + /** + * ## Prisma Client ʲˢ + * + * Type-safe database client for TypeScript & Node.js + * @example + * ``` + * const prisma = new PrismaClient() + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + * + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client). + */ + + constructor(optionsArg ?: Prisma.Subset); + $on(eventType: V, callback: (event: V extends 'query' ? Prisma.QueryEvent : Prisma.LogEvent) => void): void; + + /** + * Connect with the database + */ + $connect(): $Utils.JsPromise; + + /** + * Disconnect from the database + */ + $disconnect(): $Utils.JsPromise; + + /** + * Add a middleware + * @deprecated since 4.16.0. For new code, prefer client extensions instead. + * @see https://pris.ly/d/extensions + */ + $use(cb: Prisma.Middleware): void + +/** + * Executes a prepared raw query and returns the number of affected rows. + * @example + * ``` + * const result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};` + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $executeRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise; + + /** + * Executes a raw query and returns the number of affected rows. + * Susceptible to SQL injections, see documentation. + * @example + * ``` + * const result = await prisma.$executeRawUnsafe('UPDATE User SET cool = $1 WHERE email = $2 ;', true, 'user@email.com') + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $executeRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise; + + /** + * Performs a prepared raw query and returns the `SELECT` data. + * @example + * ``` + * const result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};` + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $queryRaw(query: TemplateStringsArray | Prisma.Sql, ...values: any[]): Prisma.PrismaPromise; + + /** + * Performs a raw query and returns the `SELECT` data. + * Susceptible to SQL injections, see documentation. + * @example + * ``` + * const result = await prisma.$queryRawUnsafe('SELECT * FROM User WHERE id = $1 OR email = $2;', 1, 'user@email.com') + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/raw-database-access). + */ + $queryRawUnsafe(query: string, ...values: any[]): Prisma.PrismaPromise; + + + /** + * Allows the running of a sequence of read/write operations that are guaranteed to either succeed or fail as a whole. + * @example + * ``` + * const [george, bob, alice] = await prisma.$transaction([ + * prisma.user.create({ data: { name: 'George' } }), + * prisma.user.create({ data: { name: 'Bob' } }), + * prisma.user.create({ data: { name: 'Alice' } }), + * ]) + * ``` + * + * Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client/transactions). + */ + $transaction

[]>(arg: [...P], options?: { isolationLevel?: Prisma.TransactionIsolationLevel }): $Utils.JsPromise> + + $transaction(fn: (prisma: Omit) => $Utils.JsPromise, options?: { maxWait?: number, timeout?: number, isolationLevel?: Prisma.TransactionIsolationLevel }): $Utils.JsPromise + + + $extends: $Extensions.ExtendsHook<"extends", Prisma.TypeMapCb, ExtArgs> + + /** + * `prisma.user`: Exposes CRUD operations for the **User** model. + * Example usage: + * ```ts + * // Fetch zero or more Users + * const users = await prisma.user.findMany() + * ``` + */ + get user(): Prisma.UserDelegate; + + /** + * `prisma.workspace`: Exposes CRUD operations for the **Workspace** model. + * Example usage: + * ```ts + * // Fetch zero or more Workspaces + * const workspaces = await prisma.workspace.findMany() + * ``` + */ + get workspace(): Prisma.WorkspaceDelegate; + + /** + * `prisma.workspaceMember`: Exposes CRUD operations for the **WorkspaceMember** model. + * Example usage: + * ```ts + * // Fetch zero or more WorkspaceMembers + * const workspaceMembers = await prisma.workspaceMember.findMany() + * ``` + */ + get workspaceMember(): Prisma.WorkspaceMemberDelegate; + + /** + * `prisma.apiKey`: Exposes CRUD operations for the **ApiKey** model. + * Example usage: + * ```ts + * // Fetch zero or more ApiKeys + * const apiKeys = await prisma.apiKey.findMany() + * ``` + */ + get apiKey(): Prisma.ApiKeyDelegate; + + /** + * `prisma.verificationCode`: Exposes CRUD operations for the **VerificationCode** model. + * Example usage: + * ```ts + * // Fetch zero or more VerificationCodes + * const verificationCodes = await prisma.verificationCode.findMany() + * ``` + */ + get verificationCode(): Prisma.VerificationCodeDelegate; +} + +export namespace Prisma { + export import DMMF = runtime.DMMF + + export type PrismaPromise = $Public.PrismaPromise + + /** + * Validator + */ + export import validator = runtime.Public.validator + + /** + * Prisma Errors + */ + export import PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError + export import PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError + export import PrismaClientRustPanicError = runtime.PrismaClientRustPanicError + export import PrismaClientInitializationError = runtime.PrismaClientInitializationError + export import PrismaClientValidationError = runtime.PrismaClientValidationError + + /** + * Re-export of sql-template-tag + */ + export import sql = runtime.sqltag + export import empty = runtime.empty + export import join = runtime.join + export import raw = runtime.raw + export import Sql = runtime.Sql + + + + /** + * Decimal.js + */ + export import Decimal = runtime.Decimal + + export type DecimalJsLike = runtime.DecimalJsLike + + /** + * Metrics + */ + export type Metrics = runtime.Metrics + export type Metric = runtime.Metric + export type MetricHistogram = runtime.MetricHistogram + export type MetricHistogramBucket = runtime.MetricHistogramBucket + + /** + * Extensions + */ + export import Extension = $Extensions.UserArgs + export import getExtensionContext = runtime.Extensions.getExtensionContext + export import Args = $Public.Args + export import Payload = $Public.Payload + export import Result = $Public.Result + export import Exact = $Public.Exact + + /** + * Prisma Client JS version: 6.1.0 + * Query Engine version: 11f085a2012c0f4778414c8db2651556ee0ef959 + */ + export type PrismaVersion = { + client: string + } + + export const prismaVersion: PrismaVersion + + /** + * Utility Types + */ + + + export import JsonObject = runtime.JsonObject + export import JsonArray = runtime.JsonArray + export import JsonValue = runtime.JsonValue + export import InputJsonObject = runtime.InputJsonObject + export import InputJsonArray = runtime.InputJsonArray + export import InputJsonValue = runtime.InputJsonValue + + /** + * Types of the values used to represent different kinds of `null` values when working with JSON fields. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + namespace NullTypes { + /** + * Type of `Prisma.DbNull`. + * + * You cannot use other instances of this class. Please use the `Prisma.DbNull` value. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + class DbNull { + private DbNull: never + private constructor() + } + + /** + * Type of `Prisma.JsonNull`. + * + * You cannot use other instances of this class. Please use the `Prisma.JsonNull` value. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + class JsonNull { + private JsonNull: never + private constructor() + } + + /** + * Type of `Prisma.AnyNull`. + * + * You cannot use other instances of this class. Please use the `Prisma.AnyNull` value. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + class AnyNull { + private AnyNull: never + private constructor() + } + } + + /** + * Helper for filtering JSON entries that have `null` on the database (empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + export const DbNull: NullTypes.DbNull + + /** + * Helper for filtering JSON entries that have JSON `null` values (not empty on the db) + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + export const JsonNull: NullTypes.JsonNull + + /** + * Helper for filtering JSON entries that are `Prisma.DbNull` or `Prisma.JsonNull` + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field + */ + export const AnyNull: NullTypes.AnyNull + + type SelectAndInclude = { + select: any + include: any + } + + type SelectAndOmit = { + select: any + omit: any + } + + /** + * Get the type of the value, that the Promise holds. + */ + export type PromiseType> = T extends PromiseLike ? U : T; + + /** + * Get the return type of a function which returns a Promise. + */ + export type PromiseReturnType $Utils.JsPromise> = PromiseType> + + /** + * From T, pick a set of properties whose keys are in the union K + */ + type Prisma__Pick = { + [P in K]: T[P]; + }; + + + export type Enumerable = T | Array; + + export type RequiredKeys = { + [K in keyof T]-?: {} extends Prisma__Pick ? never : K + }[keyof T] + + export type TruthyKeys = keyof { + [K in keyof T as T[K] extends false | undefined | null ? never : K]: K + } + + export type TrueKeys = TruthyKeys>> + + /** + * Subset + * @desc From `T` pick properties that exist in `U`. Simple version of Intersection + */ + export type Subset = { + [key in keyof T]: key extends keyof U ? T[key] : never; + }; + + /** + * SelectSubset + * @desc From `T` pick properties that exist in `U`. Simple version of Intersection. + * Additionally, it validates, if both select and include are present. If the case, it errors. + */ + export type SelectSubset = { + [key in keyof T]: key extends keyof U ? T[key] : never + } & + (T extends SelectAndInclude + ? 'Please either choose `select` or `include`.' + : T extends SelectAndOmit + ? 'Please either choose `select` or `omit`.' + : {}) + + /** + * Subset + Intersection + * @desc From `T` pick properties that exist in `U` and intersect `K` + */ + export type SubsetIntersection = { + [key in keyof T]: key extends keyof U ? T[key] : never + } & + K + + type Without = { [P in Exclude]?: never }; + + /** + * XOR is needed to have a real mutually exclusive union type + * https://stackoverflow.com/questions/42123407/does-typescript-support-mutually-exclusive-types + */ + type XOR = + T extends object ? + U extends object ? + (Without & U) | (Without & T) + : U : T + + + /** + * Is T a Record? + */ + type IsObject = T extends Array + ? False + : T extends Date + ? False + : T extends Uint8Array + ? False + : T extends BigInt + ? False + : T extends object + ? True + : False + + + /** + * If it's T[], return T + */ + export type UnEnumerate = T extends Array ? U : T + + /** + * From ts-toolbelt + */ + + type __Either = Omit & + { + // Merge all but K + [P in K]: Prisma__Pick // With K possibilities + }[K] + + type EitherStrict = Strict<__Either> + + type EitherLoose = ComputeRaw<__Either> + + type _Either< + O extends object, + K extends Key, + strict extends Boolean + > = { + 1: EitherStrict + 0: EitherLoose + }[strict] + + type Either< + O extends object, + K extends Key, + strict extends Boolean = 1 + > = O extends unknown ? _Either : never + + export type Union = any + + type PatchUndefined = { + [K in keyof O]: O[K] extends undefined ? At : O[K] + } & {} + + /** Helper Types for "Merge" **/ + export type IntersectOf = ( + U extends unknown ? (k: U) => void : never + ) extends (k: infer I) => void + ? I + : never + + export type Overwrite = { + [K in keyof O]: K extends keyof O1 ? O1[K] : O[K]; + } & {}; + + type _Merge = IntersectOf; + }>>; + + type Key = string | number | symbol; + type AtBasic = K extends keyof O ? O[K] : never; + type AtStrict = O[K & keyof O]; + type AtLoose = O extends unknown ? AtStrict : never; + export type At = { + 1: AtStrict; + 0: AtLoose; + }[strict]; + + export type ComputeRaw = A extends Function ? A : { + [K in keyof A]: A[K]; + } & {}; + + export type OptionalFlat = { + [K in keyof O]?: O[K]; + } & {}; + + type _Record = { + [P in K]: T; + }; + + // cause typescript not to expand types and preserve names + type NoExpand = T extends unknown ? T : never; + + // this type assumes the passed object is entirely optional + type AtLeast = NoExpand< + O extends unknown + ? | (K extends keyof O ? { [P in K]: O[P] } & O : O) + | {[P in keyof O as P extends K ? K : never]-?: O[P]} & O + : never>; + + type _Strict = U extends unknown ? U & OptionalFlat<_Record, keyof U>, never>> : never; + + export type Strict = ComputeRaw<_Strict>; + /** End Helper Types for "Merge" **/ + + export type Merge = ComputeRaw<_Merge>>; + + /** + A [[Boolean]] + */ + export type Boolean = True | False + + // /** + // 1 + // */ + export type True = 1 + + /** + 0 + */ + export type False = 0 + + export type Not = { + 0: 1 + 1: 0 + }[B] + + export type Extends = [A1] extends [never] + ? 0 // anything `never` is false + : A1 extends A2 + ? 1 + : 0 + + export type Has = Not< + Extends, U1> + > + + export type Or = { + 0: { + 0: 0 + 1: 1 + } + 1: { + 0: 1 + 1: 1 + } + }[B1][B2] + + export type Keys = U extends unknown ? keyof U : never + + type Cast = A extends B ? A : B; + + export const type: unique symbol; + + + + /** + * Used by group by + */ + + export type GetScalarType = O extends object ? { + [P in keyof T]: P extends keyof O + ? O[P] + : never + } : never + + type FieldPaths< + T, + U = Omit + > = IsObject extends True ? U : T + + type GetHavingFields = { + [K in keyof T]: Or< + Or, Extends<'AND', K>>, + Extends<'NOT', K> + > extends True + ? // infer is only needed to not hit TS limit + // based on the brilliant idea of Pierre-Antoine Mills + // https://github.com/microsoft/TypeScript/issues/30188#issuecomment-478938437 + T[K] extends infer TK + ? GetHavingFields extends object ? Merge> : never> + : never + : {} extends FieldPaths + ? never + : K + }[keyof T] + + /** + * Convert tuple to union + */ + type _TupleToUnion = T extends (infer E)[] ? E : never + type TupleToUnion = _TupleToUnion + type MaybeTupleToUnion = T extends any[] ? TupleToUnion : T + + /** + * Like `Pick`, but additionally can also accept an array of keys + */ + type PickEnumerable | keyof T> = Prisma__Pick> + + /** + * Exclude all keys with underscores + */ + type ExcludeUnderscoreKeys = T extends `_${string}` ? never : T + + + export type FieldRef = runtime.FieldRef + + type FieldRefInputType = Model extends never ? never : FieldRef + + + export const ModelName: { + User: 'User', + Workspace: 'Workspace', + WorkspaceMember: 'WorkspaceMember', + ApiKey: 'ApiKey', + VerificationCode: 'VerificationCode' + }; + + export type ModelName = (typeof ModelName)[keyof typeof ModelName] + + + export type Datasources = { + db?: Datasource + } + + interface TypeMapCb extends $Utils.Fn<{extArgs: $Extensions.InternalArgs, clientOptions: PrismaClientOptions }, $Utils.Record> { + returns: Prisma.TypeMap + } + + export type TypeMap = { + meta: { + modelProps: "user" | "workspace" | "workspaceMember" | "apiKey" | "verificationCode" + txIsolationLevel: Prisma.TransactionIsolationLevel + } + model: { + User: { + payload: Prisma.$UserPayload + fields: Prisma.UserFieldRefs + operations: { + findUnique: { + args: Prisma.UserFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.UserFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.UserFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.UserFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.UserFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.UserCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.UserCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.UserCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.UserDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.UserUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.UserDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.UserUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.UserUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.UserAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.UserGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.UserCountArgs + result: $Utils.Optional | number + } + } + } + Workspace: { + payload: Prisma.$WorkspacePayload + fields: Prisma.WorkspaceFieldRefs + operations: { + findUnique: { + args: Prisma.WorkspaceFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.WorkspaceFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.WorkspaceFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.WorkspaceFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.WorkspaceFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.WorkspaceCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.WorkspaceCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.WorkspaceCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.WorkspaceDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.WorkspaceUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.WorkspaceDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.WorkspaceUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.WorkspaceUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.WorkspaceAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.WorkspaceGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.WorkspaceCountArgs + result: $Utils.Optional | number + } + } + } + WorkspaceMember: { + payload: Prisma.$WorkspaceMemberPayload + fields: Prisma.WorkspaceMemberFieldRefs + operations: { + findUnique: { + args: Prisma.WorkspaceMemberFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.WorkspaceMemberFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.WorkspaceMemberFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.WorkspaceMemberFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.WorkspaceMemberFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.WorkspaceMemberCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.WorkspaceMemberCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.WorkspaceMemberCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.WorkspaceMemberDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.WorkspaceMemberUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.WorkspaceMemberDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.WorkspaceMemberUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.WorkspaceMemberUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.WorkspaceMemberAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.WorkspaceMemberGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.WorkspaceMemberCountArgs + result: $Utils.Optional | number + } + } + } + ApiKey: { + payload: Prisma.$ApiKeyPayload + fields: Prisma.ApiKeyFieldRefs + operations: { + findUnique: { + args: Prisma.ApiKeyFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.ApiKeyFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.ApiKeyFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.ApiKeyFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.ApiKeyFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.ApiKeyCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.ApiKeyCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.ApiKeyCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.ApiKeyDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.ApiKeyUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.ApiKeyDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.ApiKeyUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.ApiKeyUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.ApiKeyAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.ApiKeyGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.ApiKeyCountArgs + result: $Utils.Optional | number + } + } + } + VerificationCode: { + payload: Prisma.$VerificationCodePayload + fields: Prisma.VerificationCodeFieldRefs + operations: { + findUnique: { + args: Prisma.VerificationCodeFindUniqueArgs + result: $Utils.PayloadToResult | null + } + findUniqueOrThrow: { + args: Prisma.VerificationCodeFindUniqueOrThrowArgs + result: $Utils.PayloadToResult + } + findFirst: { + args: Prisma.VerificationCodeFindFirstArgs + result: $Utils.PayloadToResult | null + } + findFirstOrThrow: { + args: Prisma.VerificationCodeFindFirstOrThrowArgs + result: $Utils.PayloadToResult + } + findMany: { + args: Prisma.VerificationCodeFindManyArgs + result: $Utils.PayloadToResult[] + } + create: { + args: Prisma.VerificationCodeCreateArgs + result: $Utils.PayloadToResult + } + createMany: { + args: Prisma.VerificationCodeCreateManyArgs + result: BatchPayload + } + createManyAndReturn: { + args: Prisma.VerificationCodeCreateManyAndReturnArgs + result: $Utils.PayloadToResult[] + } + delete: { + args: Prisma.VerificationCodeDeleteArgs + result: $Utils.PayloadToResult + } + update: { + args: Prisma.VerificationCodeUpdateArgs + result: $Utils.PayloadToResult + } + deleteMany: { + args: Prisma.VerificationCodeDeleteManyArgs + result: BatchPayload + } + updateMany: { + args: Prisma.VerificationCodeUpdateManyArgs + result: BatchPayload + } + upsert: { + args: Prisma.VerificationCodeUpsertArgs + result: $Utils.PayloadToResult + } + aggregate: { + args: Prisma.VerificationCodeAggregateArgs + result: $Utils.Optional + } + groupBy: { + args: Prisma.VerificationCodeGroupByArgs + result: $Utils.Optional[] + } + count: { + args: Prisma.VerificationCodeCountArgs + result: $Utils.Optional | number + } + } + } + } + } & { + other: { + payload: any + operations: { + $executeRaw: { + args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]], + result: any + } + $executeRawUnsafe: { + args: [query: string, ...values: any[]], + result: any + } + $queryRaw: { + args: [query: TemplateStringsArray | Prisma.Sql, ...values: any[]], + result: any + } + $queryRawUnsafe: { + args: [query: string, ...values: any[]], + result: any + } + } + } + } + export const defineExtension: $Extensions.ExtendsHook<"define", Prisma.TypeMapCb, $Extensions.DefaultArgs> + export type DefaultPrismaClient = PrismaClient + export type ErrorFormat = 'pretty' | 'colorless' | 'minimal' + export interface PrismaClientOptions { + /** + * Overwrites the datasource url from your schema.prisma file + */ + datasources?: Datasources + /** + * Overwrites the datasource url from your schema.prisma file + */ + datasourceUrl?: string + /** + * @default "colorless" + */ + errorFormat?: ErrorFormat + /** + * @example + * ``` + * // Defaults to stdout + * log: ['query', 'info', 'warn', 'error'] + * + * // Emit as events + * log: [ + * { emit: 'stdout', level: 'query' }, + * { emit: 'stdout', level: 'info' }, + * { emit: 'stdout', level: 'warn' } + * { emit: 'stdout', level: 'error' } + * ] + * ``` + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/logging#the-log-option). + */ + log?: (LogLevel | LogDefinition)[] + /** + * The default values for transactionOptions + * maxWait ?= 2000 + * timeout ?= 5000 + */ + transactionOptions?: { + maxWait?: number + timeout?: number + isolationLevel?: Prisma.TransactionIsolationLevel + } + } + + + /* Types for Logging */ + export type LogLevel = 'info' | 'query' | 'warn' | 'error' + export type LogDefinition = { + level: LogLevel + emit: 'stdout' | 'event' + } + + export type GetLogType = T extends LogDefinition ? T['emit'] extends 'event' ? T['level'] : never : never + export type GetEvents = T extends Array ? + GetLogType | GetLogType | GetLogType | GetLogType + : never + + export type QueryEvent = { + timestamp: Date + query: string + params: string + duration: number + target: string + } + + export type LogEvent = { + timestamp: Date + message: string + target: string + } + /* End Types for Logging */ + + + export type PrismaAction = + | 'findUnique' + | 'findUniqueOrThrow' + | 'findMany' + | 'findFirst' + | 'findFirstOrThrow' + | 'create' + | 'createMany' + | 'createManyAndReturn' + | 'update' + | 'updateMany' + | 'upsert' + | 'delete' + | 'deleteMany' + | 'executeRaw' + | 'queryRaw' + | 'aggregate' + | 'count' + | 'runCommandRaw' + | 'findRaw' + | 'groupBy' + + /** + * These options are being passed into the middleware as "params" + */ + export type MiddlewareParams = { + model?: ModelName + action: PrismaAction + args: any + dataPath: string[] + runInTransaction: boolean + } + + /** + * The `T` type makes sure, that the `return proceed` is not forgotten in the middleware implementation + */ + export type Middleware = ( + params: MiddlewareParams, + next: (params: MiddlewareParams) => $Utils.JsPromise, + ) => $Utils.JsPromise + + // tested in getLogLevel.test.ts + export function getLogLevel(log: Array): LogLevel | undefined; + + /** + * `PrismaClient` proxy available in interactive transactions. + */ + export type TransactionClient = Omit + + export type Datasource = { + url?: string + } + + /** + * Count Types + */ + + + /** + * Count Type UserCountOutputType + */ + + export type UserCountOutputType = { + ownedWorkspaces: number + memberships: number + } + + export type UserCountOutputTypeSelect = { + ownedWorkspaces?: boolean | UserCountOutputTypeCountOwnedWorkspacesArgs + memberships?: boolean | UserCountOutputTypeCountMembershipsArgs + } + + // Custom InputTypes + /** + * UserCountOutputType without action + */ + export type UserCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the UserCountOutputType + */ + select?: UserCountOutputTypeSelect | null + } + + /** + * UserCountOutputType without action + */ + export type UserCountOutputTypeCountOwnedWorkspacesArgs = { + where?: WorkspaceWhereInput + } + + /** + * UserCountOutputType without action + */ + export type UserCountOutputTypeCountMembershipsArgs = { + where?: WorkspaceMemberWhereInput + } + + + /** + * Count Type WorkspaceCountOutputType + */ + + export type WorkspaceCountOutputType = { + members: number + apiKeys: number + } + + export type WorkspaceCountOutputTypeSelect = { + members?: boolean | WorkspaceCountOutputTypeCountMembersArgs + apiKeys?: boolean | WorkspaceCountOutputTypeCountApiKeysArgs + } + + // Custom InputTypes + /** + * WorkspaceCountOutputType without action + */ + export type WorkspaceCountOutputTypeDefaultArgs = { + /** + * Select specific fields to fetch from the WorkspaceCountOutputType + */ + select?: WorkspaceCountOutputTypeSelect | null + } + + /** + * WorkspaceCountOutputType without action + */ + export type WorkspaceCountOutputTypeCountMembersArgs = { + where?: WorkspaceMemberWhereInput + } + + /** + * WorkspaceCountOutputType without action + */ + export type WorkspaceCountOutputTypeCountApiKeysArgs = { + where?: ApiKeyWhereInput + } + + + /** + * Models + */ + + /** + * Model User + */ + + export type AggregateUser = { + _count: UserCountAggregateOutputType | null + _min: UserMinAggregateOutputType | null + _max: UserMaxAggregateOutputType | null + } + + export type UserMinAggregateOutputType = { + ref: string | null + accessKeyId: string | null + name: string | null + email: string | null + emailVerified: boolean | null + password: string | null + phoneNumber: string | null + phoneNumberVerified: boolean | null + avatar: string | null + createdAt: Date | null + updatedAt: Date | null + } + + export type UserMaxAggregateOutputType = { + ref: string | null + accessKeyId: string | null + name: string | null + email: string | null + emailVerified: boolean | null + password: string | null + phoneNumber: string | null + phoneNumberVerified: boolean | null + avatar: string | null + createdAt: Date | null + updatedAt: Date | null + } + + export type UserCountAggregateOutputType = { + ref: number + accessKeyId: number + name: number + email: number + emailVerified: number + password: number + phoneNumber: number + phoneNumberVerified: number + avatar: number + createdAt: number + updatedAt: number + extended: number + _all: number + } + + + export type UserMinAggregateInputType = { + ref?: true + accessKeyId?: true + name?: true + email?: true + emailVerified?: true + password?: true + phoneNumber?: true + phoneNumberVerified?: true + avatar?: true + createdAt?: true + updatedAt?: true + } + + export type UserMaxAggregateInputType = { + ref?: true + accessKeyId?: true + name?: true + email?: true + emailVerified?: true + password?: true + phoneNumber?: true + phoneNumberVerified?: true + avatar?: true + createdAt?: true + updatedAt?: true + } + + export type UserCountAggregateInputType = { + ref?: true + accessKeyId?: true + name?: true + email?: true + emailVerified?: true + password?: true + phoneNumber?: true + phoneNumberVerified?: true + avatar?: true + createdAt?: true + updatedAt?: true + extended?: true + _all?: true + } + + export type UserAggregateArgs = { + /** + * Filter which User to aggregate. + */ + where?: UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Users + **/ + _count?: true | UserCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: UserMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: UserMaxAggregateInputType + } + + export type GetUserAggregateType = { + [P in keyof T & keyof AggregateUser]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type UserGroupByArgs = { + where?: UserWhereInput + orderBy?: UserOrderByWithAggregationInput | UserOrderByWithAggregationInput[] + by: UserScalarFieldEnum[] | UserScalarFieldEnum + having?: UserScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: UserCountAggregateInputType | true + _min?: UserMinAggregateInputType + _max?: UserMaxAggregateInputType + } + + export type UserGroupByOutputType = { + ref: string + accessKeyId: string + name: string + email: string + emailVerified: boolean + password: string + phoneNumber: string | null + phoneNumberVerified: boolean + avatar: string | null + createdAt: Date + updatedAt: Date + extended: JsonValue | null + _count: UserCountAggregateOutputType | null + _min: UserMinAggregateOutputType | null + _max: UserMaxAggregateOutputType | null + } + + type GetUserGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof UserGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type UserSelect = $Extensions.GetSelect<{ + ref?: boolean + accessKeyId?: boolean + name?: boolean + email?: boolean + emailVerified?: boolean + password?: boolean + phoneNumber?: boolean + phoneNumberVerified?: boolean + avatar?: boolean + createdAt?: boolean + updatedAt?: boolean + extended?: boolean + ownedWorkspaces?: boolean | User$ownedWorkspacesArgs + memberships?: boolean | User$membershipsArgs + _count?: boolean | UserCountOutputTypeDefaultArgs + }, ExtArgs["result"]["user"]> + + export type UserSelectCreateManyAndReturn = $Extensions.GetSelect<{ + ref?: boolean + accessKeyId?: boolean + name?: boolean + email?: boolean + emailVerified?: boolean + password?: boolean + phoneNumber?: boolean + phoneNumberVerified?: boolean + avatar?: boolean + createdAt?: boolean + updatedAt?: boolean + extended?: boolean + }, ExtArgs["result"]["user"]> + + export type UserSelectScalar = { + ref?: boolean + accessKeyId?: boolean + name?: boolean + email?: boolean + emailVerified?: boolean + password?: boolean + phoneNumber?: boolean + phoneNumberVerified?: boolean + avatar?: boolean + createdAt?: boolean + updatedAt?: boolean + extended?: boolean + } + + export type UserInclude = { + ownedWorkspaces?: boolean | User$ownedWorkspacesArgs + memberships?: boolean | User$membershipsArgs + _count?: boolean | UserCountOutputTypeDefaultArgs + } + export type UserIncludeCreateManyAndReturn = {} + + export type $UserPayload = { + name: "User" + objects: { + ownedWorkspaces: Prisma.$WorkspacePayload[] + memberships: Prisma.$WorkspaceMemberPayload[] + } + scalars: $Extensions.GetPayloadResult<{ + ref: string + accessKeyId: string + name: string + email: string + emailVerified: boolean + /** + * @encrypted + */ + password: string + phoneNumber: string | null + phoneNumberVerified: boolean + avatar: string | null + createdAt: Date + updatedAt: Date + extended: Prisma.JsonValue | null + }, ExtArgs["result"]["user"]> + composites: {} + } + + type UserGetPayload = $Result.GetResult + + type UserCountArgs = + Omit & { + select?: UserCountAggregateInputType | true + } + + export interface UserDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['User'], meta: { name: 'User' } } + /** + * Find zero or one User that matches the filter. + * @param {UserFindUniqueArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findUnique"> | null, null, ExtArgs> + + /** + * Find one User that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {UserFindUniqueOrThrowArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow">, never, ExtArgs> + + /** + * Find the first User that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindFirstArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findFirst"> | null, null, ExtArgs> + + /** + * Find the first User that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindFirstOrThrowArgs} args - Arguments to find a User + * @example + * // Get one User + * const user = await prisma.user.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "findFirstOrThrow">, never, ExtArgs> + + /** + * Find zero or more Users that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Users + * const users = await prisma.user.findMany() + * + * // Get first 10 Users + * const users = await prisma.user.findMany({ take: 10 }) + * + * // Only select the `ref` + * const userWithRefOnly = await prisma.user.findMany({ select: { ref: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany">> + + /** + * Create a User. + * @param {UserCreateArgs} args - Arguments to create a User. + * @example + * // Create one User + * const User = await prisma.user.create({ + * data: { + * // ... data to create a User + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "create">, never, ExtArgs> + + /** + * Create many Users. + * @param {UserCreateManyArgs} args - Arguments to create many Users. + * @example + * // Create many Users + * const user = await prisma.user.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Users and returns the data saved in the database. + * @param {UserCreateManyAndReturnArgs} args - Arguments to create many Users. + * @example + * // Create many Users + * const user = await prisma.user.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Users and only return the `ref` + * const userWithRefOnly = await prisma.user.createManyAndReturn({ + * select: { ref: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn">> + + /** + * Delete a User. + * @param {UserDeleteArgs} args - Arguments to delete one User. + * @example + * // Delete one User + * const User = await prisma.user.delete({ + * where: { + * // ... filter to delete one User + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "delete">, never, ExtArgs> + + /** + * Update one User. + * @param {UserUpdateArgs} args - Arguments to update one User. + * @example + * // Update one User + * const user = await prisma.user.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "update">, never, ExtArgs> + + /** + * Delete zero or more Users. + * @param {UserDeleteManyArgs} args - Arguments to filter Users to delete. + * @example + * // Delete a few Users + * const { count } = await prisma.user.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Users. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Users + * const user = await prisma.user.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one User. + * @param {UserUpsertArgs} args - Arguments to update or create a User. + * @example + * // Update or create a User + * const user = await prisma.user.upsert({ + * create: { + * // ... data to create a User + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the User we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__UserClient<$Result.GetResult, T, "upsert">, never, ExtArgs> + + + /** + * Count the number of Users. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserCountArgs} args - Arguments to filter Users to count. + * @example + * // Count the number of Users + * const count = await prisma.user.count({ + * where: { + * // ... the filter for the Users we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a User. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by User. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {UserGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends UserGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: UserGroupByArgs['orderBy'] } + : { orderBy?: UserGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetUserGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the User model + */ + readonly fields: UserFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for User. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__UserClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + ownedWorkspaces = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany"> | Null> + memberships = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany"> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the User model + */ + interface UserFieldRefs { + readonly ref: FieldRef<"User", 'String'> + readonly accessKeyId: FieldRef<"User", 'String'> + readonly name: FieldRef<"User", 'String'> + readonly email: FieldRef<"User", 'String'> + readonly emailVerified: FieldRef<"User", 'Boolean'> + readonly password: FieldRef<"User", 'String'> + readonly phoneNumber: FieldRef<"User", 'String'> + readonly phoneNumberVerified: FieldRef<"User", 'Boolean'> + readonly avatar: FieldRef<"User", 'String'> + readonly createdAt: FieldRef<"User", 'DateTime'> + readonly updatedAt: FieldRef<"User", 'DateTime'> + readonly extended: FieldRef<"User", 'Json'> + } + + + // Custom InputTypes + /** + * User findUnique + */ + export type UserFindUniqueArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which User to fetch. + */ + where: UserWhereUniqueInput + } + + /** + * User findUniqueOrThrow + */ + export type UserFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which User to fetch. + */ + where: UserWhereUniqueInput + } + + /** + * User findFirst + */ + export type UserFindFirstArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which User to fetch. + */ + where?: UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Users. + */ + cursor?: UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Users. + */ + distinct?: UserScalarFieldEnum | UserScalarFieldEnum[] + } + + /** + * User findFirstOrThrow + */ + export type UserFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which User to fetch. + */ + where?: UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Users. + */ + cursor?: UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Users. + */ + distinct?: UserScalarFieldEnum | UserScalarFieldEnum[] + } + + /** + * User findMany + */ + export type UserFindManyArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter, which Users to fetch. + */ + where?: UserWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Users to fetch. + */ + orderBy?: UserOrderByWithRelationInput | UserOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Users. + */ + cursor?: UserWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Users from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Users. + */ + skip?: number + distinct?: UserScalarFieldEnum | UserScalarFieldEnum[] + } + + /** + * User create + */ + export type UserCreateArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * The data needed to create a User. + */ + data: XOR + } + + /** + * User createMany + */ + export type UserCreateManyArgs = { + /** + * The data used to create many Users. + */ + data: UserCreateManyInput | UserCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * User createManyAndReturn + */ + export type UserCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelectCreateManyAndReturn | null + /** + * The data used to create many Users. + */ + data: UserCreateManyInput | UserCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * User update + */ + export type UserUpdateArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * The data needed to update a User. + */ + data: XOR + /** + * Choose, which User to update. + */ + where: UserWhereUniqueInput + } + + /** + * User updateMany + */ + export type UserUpdateManyArgs = { + /** + * The data used to update Users. + */ + data: XOR + /** + * Filter which Users to update + */ + where?: UserWhereInput + } + + /** + * User upsert + */ + export type UserUpsertArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * The filter to search for the User to update in case it exists. + */ + where: UserWhereUniqueInput + /** + * In case the User found by the `where` argument doesn't exist, create a new User with this data. + */ + create: XOR + /** + * In case the User was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * User delete + */ + export type UserDeleteArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + /** + * Filter which User to delete. + */ + where: UserWhereUniqueInput + } + + /** + * User deleteMany + */ + export type UserDeleteManyArgs = { + /** + * Filter which Users to delete + */ + where?: UserWhereInput + } + + /** + * User.ownedWorkspaces + */ + export type User$ownedWorkspacesArgs = { + /** + * Select specific fields to fetch from the Workspace + */ + select?: WorkspaceSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceInclude | null + where?: WorkspaceWhereInput + orderBy?: WorkspaceOrderByWithRelationInput | WorkspaceOrderByWithRelationInput[] + cursor?: WorkspaceWhereUniqueInput + take?: number + skip?: number + distinct?: WorkspaceScalarFieldEnum | WorkspaceScalarFieldEnum[] + } + + /** + * User.memberships + */ + export type User$membershipsArgs = { + /** + * Select specific fields to fetch from the WorkspaceMember + */ + select?: WorkspaceMemberSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceMemberInclude | null + where?: WorkspaceMemberWhereInput + orderBy?: WorkspaceMemberOrderByWithRelationInput | WorkspaceMemberOrderByWithRelationInput[] + cursor?: WorkspaceMemberWhereUniqueInput + take?: number + skip?: number + distinct?: WorkspaceMemberScalarFieldEnum | WorkspaceMemberScalarFieldEnum[] + } + + /** + * User without action + */ + export type UserDefaultArgs = { + /** + * Select specific fields to fetch from the User + */ + select?: UserSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: UserInclude | null + } + + + /** + * Model Workspace + */ + + export type AggregateWorkspace = { + _count: WorkspaceCountAggregateOutputType | null + _min: WorkspaceMinAggregateOutputType | null + _max: WorkspaceMaxAggregateOutputType | null + } + + export type WorkspaceMinAggregateOutputType = { + ref: string | null + accessKeyId: string | null + name: string | null + createdAt: Date | null + updatedAt: Date | null + ownerRef: string | null + } + + export type WorkspaceMaxAggregateOutputType = { + ref: string | null + accessKeyId: string | null + name: string | null + createdAt: Date | null + updatedAt: Date | null + ownerRef: string | null + } + + export type WorkspaceCountAggregateOutputType = { + ref: number + accessKeyId: number + name: number + createdAt: number + updatedAt: number + ownerRef: number + _all: number + } + + + export type WorkspaceMinAggregateInputType = { + ref?: true + accessKeyId?: true + name?: true + createdAt?: true + updatedAt?: true + ownerRef?: true + } + + export type WorkspaceMaxAggregateInputType = { + ref?: true + accessKeyId?: true + name?: true + createdAt?: true + updatedAt?: true + ownerRef?: true + } + + export type WorkspaceCountAggregateInputType = { + ref?: true + accessKeyId?: true + name?: true + createdAt?: true + updatedAt?: true + ownerRef?: true + _all?: true + } + + export type WorkspaceAggregateArgs = { + /** + * Filter which Workspace to aggregate. + */ + where?: WorkspaceWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Workspaces to fetch. + */ + orderBy?: WorkspaceOrderByWithRelationInput | WorkspaceOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: WorkspaceWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Workspaces from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Workspaces. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned Workspaces + **/ + _count?: true | WorkspaceCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: WorkspaceMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: WorkspaceMaxAggregateInputType + } + + export type GetWorkspaceAggregateType = { + [P in keyof T & keyof AggregateWorkspace]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type WorkspaceGroupByArgs = { + where?: WorkspaceWhereInput + orderBy?: WorkspaceOrderByWithAggregationInput | WorkspaceOrderByWithAggregationInput[] + by: WorkspaceScalarFieldEnum[] | WorkspaceScalarFieldEnum + having?: WorkspaceScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: WorkspaceCountAggregateInputType | true + _min?: WorkspaceMinAggregateInputType + _max?: WorkspaceMaxAggregateInputType + } + + export type WorkspaceGroupByOutputType = { + ref: string + accessKeyId: string + name: string + createdAt: Date + updatedAt: Date + ownerRef: string + _count: WorkspaceCountAggregateOutputType | null + _min: WorkspaceMinAggregateOutputType | null + _max: WorkspaceMaxAggregateOutputType | null + } + + type GetWorkspaceGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof WorkspaceGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type WorkspaceSelect = $Extensions.GetSelect<{ + ref?: boolean + accessKeyId?: boolean + name?: boolean + createdAt?: boolean + updatedAt?: boolean + ownerRef?: boolean + owner?: boolean | UserDefaultArgs + members?: boolean | Workspace$membersArgs + apiKeys?: boolean | Workspace$apiKeysArgs + _count?: boolean | WorkspaceCountOutputTypeDefaultArgs + }, ExtArgs["result"]["workspace"]> + + export type WorkspaceSelectCreateManyAndReturn = $Extensions.GetSelect<{ + ref?: boolean + accessKeyId?: boolean + name?: boolean + createdAt?: boolean + updatedAt?: boolean + ownerRef?: boolean + owner?: boolean | UserDefaultArgs + }, ExtArgs["result"]["workspace"]> + + export type WorkspaceSelectScalar = { + ref?: boolean + accessKeyId?: boolean + name?: boolean + createdAt?: boolean + updatedAt?: boolean + ownerRef?: boolean + } + + export type WorkspaceInclude = { + owner?: boolean | UserDefaultArgs + members?: boolean | Workspace$membersArgs + apiKeys?: boolean | Workspace$apiKeysArgs + _count?: boolean | WorkspaceCountOutputTypeDefaultArgs + } + export type WorkspaceIncludeCreateManyAndReturn = { + owner?: boolean | UserDefaultArgs + } + + export type $WorkspacePayload = { + name: "Workspace" + objects: { + owner: Prisma.$UserPayload + members: Prisma.$WorkspaceMemberPayload[] + apiKeys: Prisma.$ApiKeyPayload[] + } + scalars: $Extensions.GetPayloadResult<{ + ref: string + accessKeyId: string + name: string + createdAt: Date + updatedAt: Date + ownerRef: string + }, ExtArgs["result"]["workspace"]> + composites: {} + } + + type WorkspaceGetPayload = $Result.GetResult + + type WorkspaceCountArgs = + Omit & { + select?: WorkspaceCountAggregateInputType | true + } + + export interface WorkspaceDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['Workspace'], meta: { name: 'Workspace' } } + /** + * Find zero or one Workspace that matches the filter. + * @param {WorkspaceFindUniqueArgs} args - Arguments to find a Workspace + * @example + * // Get one Workspace + * const workspace = await prisma.workspace.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__WorkspaceClient<$Result.GetResult, T, "findUnique"> | null, null, ExtArgs> + + /** + * Find one Workspace that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {WorkspaceFindUniqueOrThrowArgs} args - Arguments to find a Workspace + * @example + * // Get one Workspace + * const workspace = await prisma.workspace.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__WorkspaceClient<$Result.GetResult, T, "findUniqueOrThrow">, never, ExtArgs> + + /** + * Find the first Workspace that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceFindFirstArgs} args - Arguments to find a Workspace + * @example + * // Get one Workspace + * const workspace = await prisma.workspace.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__WorkspaceClient<$Result.GetResult, T, "findFirst"> | null, null, ExtArgs> + + /** + * Find the first Workspace that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceFindFirstOrThrowArgs} args - Arguments to find a Workspace + * @example + * // Get one Workspace + * const workspace = await prisma.workspace.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__WorkspaceClient<$Result.GetResult, T, "findFirstOrThrow">, never, ExtArgs> + + /** + * Find zero or more Workspaces that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all Workspaces + * const workspaces = await prisma.workspace.findMany() + * + * // Get first 10 Workspaces + * const workspaces = await prisma.workspace.findMany({ take: 10 }) + * + * // Only select the `ref` + * const workspaceWithRefOnly = await prisma.workspace.findMany({ select: { ref: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany">> + + /** + * Create a Workspace. + * @param {WorkspaceCreateArgs} args - Arguments to create a Workspace. + * @example + * // Create one Workspace + * const Workspace = await prisma.workspace.create({ + * data: { + * // ... data to create a Workspace + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__WorkspaceClient<$Result.GetResult, T, "create">, never, ExtArgs> + + /** + * Create many Workspaces. + * @param {WorkspaceCreateManyArgs} args - Arguments to create many Workspaces. + * @example + * // Create many Workspaces + * const workspace = await prisma.workspace.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many Workspaces and returns the data saved in the database. + * @param {WorkspaceCreateManyAndReturnArgs} args - Arguments to create many Workspaces. + * @example + * // Create many Workspaces + * const workspace = await prisma.workspace.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many Workspaces and only return the `ref` + * const workspaceWithRefOnly = await prisma.workspace.createManyAndReturn({ + * select: { ref: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn">> + + /** + * Delete a Workspace. + * @param {WorkspaceDeleteArgs} args - Arguments to delete one Workspace. + * @example + * // Delete one Workspace + * const Workspace = await prisma.workspace.delete({ + * where: { + * // ... filter to delete one Workspace + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__WorkspaceClient<$Result.GetResult, T, "delete">, never, ExtArgs> + + /** + * Update one Workspace. + * @param {WorkspaceUpdateArgs} args - Arguments to update one Workspace. + * @example + * // Update one Workspace + * const workspace = await prisma.workspace.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__WorkspaceClient<$Result.GetResult, T, "update">, never, ExtArgs> + + /** + * Delete zero or more Workspaces. + * @param {WorkspaceDeleteManyArgs} args - Arguments to filter Workspaces to delete. + * @example + * // Delete a few Workspaces + * const { count } = await prisma.workspace.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more Workspaces. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many Workspaces + * const workspace = await prisma.workspace.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one Workspace. + * @param {WorkspaceUpsertArgs} args - Arguments to update or create a Workspace. + * @example + * // Update or create a Workspace + * const workspace = await prisma.workspace.upsert({ + * create: { + * // ... data to create a Workspace + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the Workspace we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__WorkspaceClient<$Result.GetResult, T, "upsert">, never, ExtArgs> + + + /** + * Count the number of Workspaces. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceCountArgs} args - Arguments to filter Workspaces to count. + * @example + * // Count the number of Workspaces + * const count = await prisma.workspace.count({ + * where: { + * // ... the filter for the Workspaces we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a Workspace. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by Workspace. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends WorkspaceGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: WorkspaceGroupByArgs['orderBy'] } + : { orderBy?: WorkspaceGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetWorkspaceGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the Workspace model + */ + readonly fields: WorkspaceFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for Workspace. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__WorkspaceClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + owner = {}>(args?: Subset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow"> | Null, Null, ExtArgs> + members = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany"> | Null> + apiKeys = {}>(args?: Subset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany"> | Null> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the Workspace model + */ + interface WorkspaceFieldRefs { + readonly ref: FieldRef<"Workspace", 'String'> + readonly accessKeyId: FieldRef<"Workspace", 'String'> + readonly name: FieldRef<"Workspace", 'String'> + readonly createdAt: FieldRef<"Workspace", 'DateTime'> + readonly updatedAt: FieldRef<"Workspace", 'DateTime'> + readonly ownerRef: FieldRef<"Workspace", 'String'> + } + + + // Custom InputTypes + /** + * Workspace findUnique + */ + export type WorkspaceFindUniqueArgs = { + /** + * Select specific fields to fetch from the Workspace + */ + select?: WorkspaceSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceInclude | null + /** + * Filter, which Workspace to fetch. + */ + where: WorkspaceWhereUniqueInput + } + + /** + * Workspace findUniqueOrThrow + */ + export type WorkspaceFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the Workspace + */ + select?: WorkspaceSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceInclude | null + /** + * Filter, which Workspace to fetch. + */ + where: WorkspaceWhereUniqueInput + } + + /** + * Workspace findFirst + */ + export type WorkspaceFindFirstArgs = { + /** + * Select specific fields to fetch from the Workspace + */ + select?: WorkspaceSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceInclude | null + /** + * Filter, which Workspace to fetch. + */ + where?: WorkspaceWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Workspaces to fetch. + */ + orderBy?: WorkspaceOrderByWithRelationInput | WorkspaceOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Workspaces. + */ + cursor?: WorkspaceWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Workspaces from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Workspaces. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Workspaces. + */ + distinct?: WorkspaceScalarFieldEnum | WorkspaceScalarFieldEnum[] + } + + /** + * Workspace findFirstOrThrow + */ + export type WorkspaceFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the Workspace + */ + select?: WorkspaceSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceInclude | null + /** + * Filter, which Workspace to fetch. + */ + where?: WorkspaceWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Workspaces to fetch. + */ + orderBy?: WorkspaceOrderByWithRelationInput | WorkspaceOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for Workspaces. + */ + cursor?: WorkspaceWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Workspaces from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Workspaces. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of Workspaces. + */ + distinct?: WorkspaceScalarFieldEnum | WorkspaceScalarFieldEnum[] + } + + /** + * Workspace findMany + */ + export type WorkspaceFindManyArgs = { + /** + * Select specific fields to fetch from the Workspace + */ + select?: WorkspaceSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceInclude | null + /** + * Filter, which Workspaces to fetch. + */ + where?: WorkspaceWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of Workspaces to fetch. + */ + orderBy?: WorkspaceOrderByWithRelationInput | WorkspaceOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing Workspaces. + */ + cursor?: WorkspaceWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` Workspaces from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` Workspaces. + */ + skip?: number + distinct?: WorkspaceScalarFieldEnum | WorkspaceScalarFieldEnum[] + } + + /** + * Workspace create + */ + export type WorkspaceCreateArgs = { + /** + * Select specific fields to fetch from the Workspace + */ + select?: WorkspaceSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceInclude | null + /** + * The data needed to create a Workspace. + */ + data: XOR + } + + /** + * Workspace createMany + */ + export type WorkspaceCreateManyArgs = { + /** + * The data used to create many Workspaces. + */ + data: WorkspaceCreateManyInput | WorkspaceCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * Workspace createManyAndReturn + */ + export type WorkspaceCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the Workspace + */ + select?: WorkspaceSelectCreateManyAndReturn | null + /** + * The data used to create many Workspaces. + */ + data: WorkspaceCreateManyInput | WorkspaceCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceIncludeCreateManyAndReturn | null + } + + /** + * Workspace update + */ + export type WorkspaceUpdateArgs = { + /** + * Select specific fields to fetch from the Workspace + */ + select?: WorkspaceSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceInclude | null + /** + * The data needed to update a Workspace. + */ + data: XOR + /** + * Choose, which Workspace to update. + */ + where: WorkspaceWhereUniqueInput + } + + /** + * Workspace updateMany + */ + export type WorkspaceUpdateManyArgs = { + /** + * The data used to update Workspaces. + */ + data: XOR + /** + * Filter which Workspaces to update + */ + where?: WorkspaceWhereInput + } + + /** + * Workspace upsert + */ + export type WorkspaceUpsertArgs = { + /** + * Select specific fields to fetch from the Workspace + */ + select?: WorkspaceSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceInclude | null + /** + * The filter to search for the Workspace to update in case it exists. + */ + where: WorkspaceWhereUniqueInput + /** + * In case the Workspace found by the `where` argument doesn't exist, create a new Workspace with this data. + */ + create: XOR + /** + * In case the Workspace was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * Workspace delete + */ + export type WorkspaceDeleteArgs = { + /** + * Select specific fields to fetch from the Workspace + */ + select?: WorkspaceSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceInclude | null + /** + * Filter which Workspace to delete. + */ + where: WorkspaceWhereUniqueInput + } + + /** + * Workspace deleteMany + */ + export type WorkspaceDeleteManyArgs = { + /** + * Filter which Workspaces to delete + */ + where?: WorkspaceWhereInput + } + + /** + * Workspace.members + */ + export type Workspace$membersArgs = { + /** + * Select specific fields to fetch from the WorkspaceMember + */ + select?: WorkspaceMemberSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceMemberInclude | null + where?: WorkspaceMemberWhereInput + orderBy?: WorkspaceMemberOrderByWithRelationInput | WorkspaceMemberOrderByWithRelationInput[] + cursor?: WorkspaceMemberWhereUniqueInput + take?: number + skip?: number + distinct?: WorkspaceMemberScalarFieldEnum | WorkspaceMemberScalarFieldEnum[] + } + + /** + * Workspace.apiKeys + */ + export type Workspace$apiKeysArgs = { + /** + * Select specific fields to fetch from the ApiKey + */ + select?: ApiKeySelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: ApiKeyInclude | null + where?: ApiKeyWhereInput + orderBy?: ApiKeyOrderByWithRelationInput | ApiKeyOrderByWithRelationInput[] + cursor?: ApiKeyWhereUniqueInput + take?: number + skip?: number + distinct?: ApiKeyScalarFieldEnum | ApiKeyScalarFieldEnum[] + } + + /** + * Workspace without action + */ + export type WorkspaceDefaultArgs = { + /** + * Select specific fields to fetch from the Workspace + */ + select?: WorkspaceSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceInclude | null + } + + + /** + * Model WorkspaceMember + */ + + export type AggregateWorkspaceMember = { + _count: WorkspaceMemberCountAggregateOutputType | null + _min: WorkspaceMemberMinAggregateOutputType | null + _max: WorkspaceMemberMaxAggregateOutputType | null + } + + export type WorkspaceMemberMinAggregateOutputType = { + ref: string | null + status: $Enums.WorkspaceMemberStatus | null + role: $Enums.WorkspaceMemberRole | null + createdAt: Date | null + updatedAt: Date | null + userRef: string | null + workspaceRef: string | null + } + + export type WorkspaceMemberMaxAggregateOutputType = { + ref: string | null + status: $Enums.WorkspaceMemberStatus | null + role: $Enums.WorkspaceMemberRole | null + createdAt: Date | null + updatedAt: Date | null + userRef: string | null + workspaceRef: string | null + } + + export type WorkspaceMemberCountAggregateOutputType = { + ref: number + status: number + role: number + createdAt: number + updatedAt: number + userRef: number + workspaceRef: number + _all: number + } + + + export type WorkspaceMemberMinAggregateInputType = { + ref?: true + status?: true + role?: true + createdAt?: true + updatedAt?: true + userRef?: true + workspaceRef?: true + } + + export type WorkspaceMemberMaxAggregateInputType = { + ref?: true + status?: true + role?: true + createdAt?: true + updatedAt?: true + userRef?: true + workspaceRef?: true + } + + export type WorkspaceMemberCountAggregateInputType = { + ref?: true + status?: true + role?: true + createdAt?: true + updatedAt?: true + userRef?: true + workspaceRef?: true + _all?: true + } + + export type WorkspaceMemberAggregateArgs = { + /** + * Filter which WorkspaceMember to aggregate. + */ + where?: WorkspaceMemberWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of WorkspaceMembers to fetch. + */ + orderBy?: WorkspaceMemberOrderByWithRelationInput | WorkspaceMemberOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: WorkspaceMemberWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` WorkspaceMembers from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` WorkspaceMembers. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned WorkspaceMembers + **/ + _count?: true | WorkspaceMemberCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: WorkspaceMemberMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: WorkspaceMemberMaxAggregateInputType + } + + export type GetWorkspaceMemberAggregateType = { + [P in keyof T & keyof AggregateWorkspaceMember]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type WorkspaceMemberGroupByArgs = { + where?: WorkspaceMemberWhereInput + orderBy?: WorkspaceMemberOrderByWithAggregationInput | WorkspaceMemberOrderByWithAggregationInput[] + by: WorkspaceMemberScalarFieldEnum[] | WorkspaceMemberScalarFieldEnum + having?: WorkspaceMemberScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: WorkspaceMemberCountAggregateInputType | true + _min?: WorkspaceMemberMinAggregateInputType + _max?: WorkspaceMemberMaxAggregateInputType + } + + export type WorkspaceMemberGroupByOutputType = { + ref: string + status: $Enums.WorkspaceMemberStatus + role: $Enums.WorkspaceMemberRole + createdAt: Date + updatedAt: Date + userRef: string + workspaceRef: string + _count: WorkspaceMemberCountAggregateOutputType | null + _min: WorkspaceMemberMinAggregateOutputType | null + _max: WorkspaceMemberMaxAggregateOutputType | null + } + + type GetWorkspaceMemberGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof WorkspaceMemberGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type WorkspaceMemberSelect = $Extensions.GetSelect<{ + ref?: boolean + status?: boolean + role?: boolean + createdAt?: boolean + updatedAt?: boolean + userRef?: boolean + workspaceRef?: boolean + user?: boolean | UserDefaultArgs + workspace?: boolean | WorkspaceDefaultArgs + }, ExtArgs["result"]["workspaceMember"]> + + export type WorkspaceMemberSelectCreateManyAndReturn = $Extensions.GetSelect<{ + ref?: boolean + status?: boolean + role?: boolean + createdAt?: boolean + updatedAt?: boolean + userRef?: boolean + workspaceRef?: boolean + user?: boolean | UserDefaultArgs + workspace?: boolean | WorkspaceDefaultArgs + }, ExtArgs["result"]["workspaceMember"]> + + export type WorkspaceMemberSelectScalar = { + ref?: boolean + status?: boolean + role?: boolean + createdAt?: boolean + updatedAt?: boolean + userRef?: boolean + workspaceRef?: boolean + } + + export type WorkspaceMemberInclude = { + user?: boolean | UserDefaultArgs + workspace?: boolean | WorkspaceDefaultArgs + } + export type WorkspaceMemberIncludeCreateManyAndReturn = { + user?: boolean | UserDefaultArgs + workspace?: boolean | WorkspaceDefaultArgs + } + + export type $WorkspaceMemberPayload = { + name: "WorkspaceMember" + objects: { + user: Prisma.$UserPayload + workspace: Prisma.$WorkspacePayload + } + scalars: $Extensions.GetPayloadResult<{ + ref: string + status: $Enums.WorkspaceMemberStatus + role: $Enums.WorkspaceMemberRole + createdAt: Date + updatedAt: Date + userRef: string + workspaceRef: string + }, ExtArgs["result"]["workspaceMember"]> + composites: {} + } + + type WorkspaceMemberGetPayload = $Result.GetResult + + type WorkspaceMemberCountArgs = + Omit & { + select?: WorkspaceMemberCountAggregateInputType | true + } + + export interface WorkspaceMemberDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['WorkspaceMember'], meta: { name: 'WorkspaceMember' } } + /** + * Find zero or one WorkspaceMember that matches the filter. + * @param {WorkspaceMemberFindUniqueArgs} args - Arguments to find a WorkspaceMember + * @example + * // Get one WorkspaceMember + * const workspaceMember = await prisma.workspaceMember.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__WorkspaceMemberClient<$Result.GetResult, T, "findUnique"> | null, null, ExtArgs> + + /** + * Find one WorkspaceMember that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {WorkspaceMemberFindUniqueOrThrowArgs} args - Arguments to find a WorkspaceMember + * @example + * // Get one WorkspaceMember + * const workspaceMember = await prisma.workspaceMember.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__WorkspaceMemberClient<$Result.GetResult, T, "findUniqueOrThrow">, never, ExtArgs> + + /** + * Find the first WorkspaceMember that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceMemberFindFirstArgs} args - Arguments to find a WorkspaceMember + * @example + * // Get one WorkspaceMember + * const workspaceMember = await prisma.workspaceMember.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__WorkspaceMemberClient<$Result.GetResult, T, "findFirst"> | null, null, ExtArgs> + + /** + * Find the first WorkspaceMember that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceMemberFindFirstOrThrowArgs} args - Arguments to find a WorkspaceMember + * @example + * // Get one WorkspaceMember + * const workspaceMember = await prisma.workspaceMember.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__WorkspaceMemberClient<$Result.GetResult, T, "findFirstOrThrow">, never, ExtArgs> + + /** + * Find zero or more WorkspaceMembers that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceMemberFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all WorkspaceMembers + * const workspaceMembers = await prisma.workspaceMember.findMany() + * + * // Get first 10 WorkspaceMembers + * const workspaceMembers = await prisma.workspaceMember.findMany({ take: 10 }) + * + * // Only select the `ref` + * const workspaceMemberWithRefOnly = await prisma.workspaceMember.findMany({ select: { ref: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany">> + + /** + * Create a WorkspaceMember. + * @param {WorkspaceMemberCreateArgs} args - Arguments to create a WorkspaceMember. + * @example + * // Create one WorkspaceMember + * const WorkspaceMember = await prisma.workspaceMember.create({ + * data: { + * // ... data to create a WorkspaceMember + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__WorkspaceMemberClient<$Result.GetResult, T, "create">, never, ExtArgs> + + /** + * Create many WorkspaceMembers. + * @param {WorkspaceMemberCreateManyArgs} args - Arguments to create many WorkspaceMembers. + * @example + * // Create many WorkspaceMembers + * const workspaceMember = await prisma.workspaceMember.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many WorkspaceMembers and returns the data saved in the database. + * @param {WorkspaceMemberCreateManyAndReturnArgs} args - Arguments to create many WorkspaceMembers. + * @example + * // Create many WorkspaceMembers + * const workspaceMember = await prisma.workspaceMember.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many WorkspaceMembers and only return the `ref` + * const workspaceMemberWithRefOnly = await prisma.workspaceMember.createManyAndReturn({ + * select: { ref: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn">> + + /** + * Delete a WorkspaceMember. + * @param {WorkspaceMemberDeleteArgs} args - Arguments to delete one WorkspaceMember. + * @example + * // Delete one WorkspaceMember + * const WorkspaceMember = await prisma.workspaceMember.delete({ + * where: { + * // ... filter to delete one WorkspaceMember + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__WorkspaceMemberClient<$Result.GetResult, T, "delete">, never, ExtArgs> + + /** + * Update one WorkspaceMember. + * @param {WorkspaceMemberUpdateArgs} args - Arguments to update one WorkspaceMember. + * @example + * // Update one WorkspaceMember + * const workspaceMember = await prisma.workspaceMember.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__WorkspaceMemberClient<$Result.GetResult, T, "update">, never, ExtArgs> + + /** + * Delete zero or more WorkspaceMembers. + * @param {WorkspaceMemberDeleteManyArgs} args - Arguments to filter WorkspaceMembers to delete. + * @example + * // Delete a few WorkspaceMembers + * const { count } = await prisma.workspaceMember.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more WorkspaceMembers. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceMemberUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many WorkspaceMembers + * const workspaceMember = await prisma.workspaceMember.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one WorkspaceMember. + * @param {WorkspaceMemberUpsertArgs} args - Arguments to update or create a WorkspaceMember. + * @example + * // Update or create a WorkspaceMember + * const workspaceMember = await prisma.workspaceMember.upsert({ + * create: { + * // ... data to create a WorkspaceMember + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the WorkspaceMember we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__WorkspaceMemberClient<$Result.GetResult, T, "upsert">, never, ExtArgs> + + + /** + * Count the number of WorkspaceMembers. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceMemberCountArgs} args - Arguments to filter WorkspaceMembers to count. + * @example + * // Count the number of WorkspaceMembers + * const count = await prisma.workspaceMember.count({ + * where: { + * // ... the filter for the WorkspaceMembers we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a WorkspaceMember. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceMemberAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by WorkspaceMember. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {WorkspaceMemberGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends WorkspaceMemberGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: WorkspaceMemberGroupByArgs['orderBy'] } + : { orderBy?: WorkspaceMemberGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetWorkspaceMemberGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the WorkspaceMember model + */ + readonly fields: WorkspaceMemberFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for WorkspaceMember. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__WorkspaceMemberClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + user = {}>(args?: Subset>): Prisma__UserClient<$Result.GetResult, T, "findUniqueOrThrow"> | Null, Null, ExtArgs> + workspace = {}>(args?: Subset>): Prisma__WorkspaceClient<$Result.GetResult, T, "findUniqueOrThrow"> | Null, Null, ExtArgs> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the WorkspaceMember model + */ + interface WorkspaceMemberFieldRefs { + readonly ref: FieldRef<"WorkspaceMember", 'String'> + readonly status: FieldRef<"WorkspaceMember", 'WorkspaceMemberStatus'> + readonly role: FieldRef<"WorkspaceMember", 'WorkspaceMemberRole'> + readonly createdAt: FieldRef<"WorkspaceMember", 'DateTime'> + readonly updatedAt: FieldRef<"WorkspaceMember", 'DateTime'> + readonly userRef: FieldRef<"WorkspaceMember", 'String'> + readonly workspaceRef: FieldRef<"WorkspaceMember", 'String'> + } + + + // Custom InputTypes + /** + * WorkspaceMember findUnique + */ + export type WorkspaceMemberFindUniqueArgs = { + /** + * Select specific fields to fetch from the WorkspaceMember + */ + select?: WorkspaceMemberSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceMemberInclude | null + /** + * Filter, which WorkspaceMember to fetch. + */ + where: WorkspaceMemberWhereUniqueInput + } + + /** + * WorkspaceMember findUniqueOrThrow + */ + export type WorkspaceMemberFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the WorkspaceMember + */ + select?: WorkspaceMemberSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceMemberInclude | null + /** + * Filter, which WorkspaceMember to fetch. + */ + where: WorkspaceMemberWhereUniqueInput + } + + /** + * WorkspaceMember findFirst + */ + export type WorkspaceMemberFindFirstArgs = { + /** + * Select specific fields to fetch from the WorkspaceMember + */ + select?: WorkspaceMemberSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceMemberInclude | null + /** + * Filter, which WorkspaceMember to fetch. + */ + where?: WorkspaceMemberWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of WorkspaceMembers to fetch. + */ + orderBy?: WorkspaceMemberOrderByWithRelationInput | WorkspaceMemberOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for WorkspaceMembers. + */ + cursor?: WorkspaceMemberWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` WorkspaceMembers from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` WorkspaceMembers. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of WorkspaceMembers. + */ + distinct?: WorkspaceMemberScalarFieldEnum | WorkspaceMemberScalarFieldEnum[] + } + + /** + * WorkspaceMember findFirstOrThrow + */ + export type WorkspaceMemberFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the WorkspaceMember + */ + select?: WorkspaceMemberSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceMemberInclude | null + /** + * Filter, which WorkspaceMember to fetch. + */ + where?: WorkspaceMemberWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of WorkspaceMembers to fetch. + */ + orderBy?: WorkspaceMemberOrderByWithRelationInput | WorkspaceMemberOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for WorkspaceMembers. + */ + cursor?: WorkspaceMemberWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` WorkspaceMembers from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` WorkspaceMembers. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of WorkspaceMembers. + */ + distinct?: WorkspaceMemberScalarFieldEnum | WorkspaceMemberScalarFieldEnum[] + } + + /** + * WorkspaceMember findMany + */ + export type WorkspaceMemberFindManyArgs = { + /** + * Select specific fields to fetch from the WorkspaceMember + */ + select?: WorkspaceMemberSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceMemberInclude | null + /** + * Filter, which WorkspaceMembers to fetch. + */ + where?: WorkspaceMemberWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of WorkspaceMembers to fetch. + */ + orderBy?: WorkspaceMemberOrderByWithRelationInput | WorkspaceMemberOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing WorkspaceMembers. + */ + cursor?: WorkspaceMemberWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` WorkspaceMembers from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` WorkspaceMembers. + */ + skip?: number + distinct?: WorkspaceMemberScalarFieldEnum | WorkspaceMemberScalarFieldEnum[] + } + + /** + * WorkspaceMember create + */ + export type WorkspaceMemberCreateArgs = { + /** + * Select specific fields to fetch from the WorkspaceMember + */ + select?: WorkspaceMemberSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceMemberInclude | null + /** + * The data needed to create a WorkspaceMember. + */ + data: XOR + } + + /** + * WorkspaceMember createMany + */ + export type WorkspaceMemberCreateManyArgs = { + /** + * The data used to create many WorkspaceMembers. + */ + data: WorkspaceMemberCreateManyInput | WorkspaceMemberCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * WorkspaceMember createManyAndReturn + */ + export type WorkspaceMemberCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the WorkspaceMember + */ + select?: WorkspaceMemberSelectCreateManyAndReturn | null + /** + * The data used to create many WorkspaceMembers. + */ + data: WorkspaceMemberCreateManyInput | WorkspaceMemberCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceMemberIncludeCreateManyAndReturn | null + } + + /** + * WorkspaceMember update + */ + export type WorkspaceMemberUpdateArgs = { + /** + * Select specific fields to fetch from the WorkspaceMember + */ + select?: WorkspaceMemberSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceMemberInclude | null + /** + * The data needed to update a WorkspaceMember. + */ + data: XOR + /** + * Choose, which WorkspaceMember to update. + */ + where: WorkspaceMemberWhereUniqueInput + } + + /** + * WorkspaceMember updateMany + */ + export type WorkspaceMemberUpdateManyArgs = { + /** + * The data used to update WorkspaceMembers. + */ + data: XOR + /** + * Filter which WorkspaceMembers to update + */ + where?: WorkspaceMemberWhereInput + } + + /** + * WorkspaceMember upsert + */ + export type WorkspaceMemberUpsertArgs = { + /** + * Select specific fields to fetch from the WorkspaceMember + */ + select?: WorkspaceMemberSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceMemberInclude | null + /** + * The filter to search for the WorkspaceMember to update in case it exists. + */ + where: WorkspaceMemberWhereUniqueInput + /** + * In case the WorkspaceMember found by the `where` argument doesn't exist, create a new WorkspaceMember with this data. + */ + create: XOR + /** + * In case the WorkspaceMember was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * WorkspaceMember delete + */ + export type WorkspaceMemberDeleteArgs = { + /** + * Select specific fields to fetch from the WorkspaceMember + */ + select?: WorkspaceMemberSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceMemberInclude | null + /** + * Filter which WorkspaceMember to delete. + */ + where: WorkspaceMemberWhereUniqueInput + } + + /** + * WorkspaceMember deleteMany + */ + export type WorkspaceMemberDeleteManyArgs = { + /** + * Filter which WorkspaceMembers to delete + */ + where?: WorkspaceMemberWhereInput + } + + /** + * WorkspaceMember without action + */ + export type WorkspaceMemberDefaultArgs = { + /** + * Select specific fields to fetch from the WorkspaceMember + */ + select?: WorkspaceMemberSelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: WorkspaceMemberInclude | null + } + + + /** + * Model ApiKey + */ + + export type AggregateApiKey = { + _count: ApiKeyCountAggregateOutputType | null + _min: ApiKeyMinAggregateOutputType | null + _max: ApiKeyMaxAggregateOutputType | null + } + + export type ApiKeyMinAggregateOutputType = { + ref: string | null + accessKeyId: string | null + accessKeySecret: string | null + role: $Enums.ApiKeyRole | null + createdAt: Date | null + updatedAt: Date | null + expiresAt: Date | null + workspaceRef: string | null + } + + export type ApiKeyMaxAggregateOutputType = { + ref: string | null + accessKeyId: string | null + accessKeySecret: string | null + role: $Enums.ApiKeyRole | null + createdAt: Date | null + updatedAt: Date | null + expiresAt: Date | null + workspaceRef: string | null + } + + export type ApiKeyCountAggregateOutputType = { + ref: number + accessKeyId: number + accessKeySecret: number + role: number + createdAt: number + updatedAt: number + expiresAt: number + workspaceRef: number + _all: number + } + + + export type ApiKeyMinAggregateInputType = { + ref?: true + accessKeyId?: true + accessKeySecret?: true + role?: true + createdAt?: true + updatedAt?: true + expiresAt?: true + workspaceRef?: true + } + + export type ApiKeyMaxAggregateInputType = { + ref?: true + accessKeyId?: true + accessKeySecret?: true + role?: true + createdAt?: true + updatedAt?: true + expiresAt?: true + workspaceRef?: true + } + + export type ApiKeyCountAggregateInputType = { + ref?: true + accessKeyId?: true + accessKeySecret?: true + role?: true + createdAt?: true + updatedAt?: true + expiresAt?: true + workspaceRef?: true + _all?: true + } + + export type ApiKeyAggregateArgs = { + /** + * Filter which ApiKey to aggregate. + */ + where?: ApiKeyWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ApiKeys to fetch. + */ + orderBy?: ApiKeyOrderByWithRelationInput | ApiKeyOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: ApiKeyWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ApiKeys from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ApiKeys. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned ApiKeys + **/ + _count?: true | ApiKeyCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: ApiKeyMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: ApiKeyMaxAggregateInputType + } + + export type GetApiKeyAggregateType = { + [P in keyof T & keyof AggregateApiKey]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type ApiKeyGroupByArgs = { + where?: ApiKeyWhereInput + orderBy?: ApiKeyOrderByWithAggregationInput | ApiKeyOrderByWithAggregationInput[] + by: ApiKeyScalarFieldEnum[] | ApiKeyScalarFieldEnum + having?: ApiKeyScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: ApiKeyCountAggregateInputType | true + _min?: ApiKeyMinAggregateInputType + _max?: ApiKeyMaxAggregateInputType + } + + export type ApiKeyGroupByOutputType = { + ref: string + accessKeyId: string + accessKeySecret: string + role: $Enums.ApiKeyRole + createdAt: Date + updatedAt: Date + expiresAt: Date | null + workspaceRef: string + _count: ApiKeyCountAggregateOutputType | null + _min: ApiKeyMinAggregateOutputType | null + _max: ApiKeyMaxAggregateOutputType | null + } + + type GetApiKeyGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof ApiKeyGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type ApiKeySelect = $Extensions.GetSelect<{ + ref?: boolean + accessKeyId?: boolean + accessKeySecret?: boolean + role?: boolean + createdAt?: boolean + updatedAt?: boolean + expiresAt?: boolean + workspaceRef?: boolean + workspace?: boolean | WorkspaceDefaultArgs + }, ExtArgs["result"]["apiKey"]> + + export type ApiKeySelectCreateManyAndReturn = $Extensions.GetSelect<{ + ref?: boolean + accessKeyId?: boolean + accessKeySecret?: boolean + role?: boolean + createdAt?: boolean + updatedAt?: boolean + expiresAt?: boolean + workspaceRef?: boolean + workspace?: boolean | WorkspaceDefaultArgs + }, ExtArgs["result"]["apiKey"]> + + export type ApiKeySelectScalar = { + ref?: boolean + accessKeyId?: boolean + accessKeySecret?: boolean + role?: boolean + createdAt?: boolean + updatedAt?: boolean + expiresAt?: boolean + workspaceRef?: boolean + } + + export type ApiKeyInclude = { + workspace?: boolean | WorkspaceDefaultArgs + } + export type ApiKeyIncludeCreateManyAndReturn = { + workspace?: boolean | WorkspaceDefaultArgs + } + + export type $ApiKeyPayload = { + name: "ApiKey" + objects: { + workspace: Prisma.$WorkspacePayload + } + scalars: $Extensions.GetPayloadResult<{ + ref: string + accessKeyId: string + /** + * @encrypted + */ + accessKeySecret: string + role: $Enums.ApiKeyRole + createdAt: Date + updatedAt: Date + expiresAt: Date | null + workspaceRef: string + }, ExtArgs["result"]["apiKey"]> + composites: {} + } + + type ApiKeyGetPayload = $Result.GetResult + + type ApiKeyCountArgs = + Omit & { + select?: ApiKeyCountAggregateInputType | true + } + + export interface ApiKeyDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['ApiKey'], meta: { name: 'ApiKey' } } + /** + * Find zero or one ApiKey that matches the filter. + * @param {ApiKeyFindUniqueArgs} args - Arguments to find a ApiKey + * @example + * // Get one ApiKey + * const apiKey = await prisma.apiKey.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__ApiKeyClient<$Result.GetResult, T, "findUnique"> | null, null, ExtArgs> + + /** + * Find one ApiKey that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {ApiKeyFindUniqueOrThrowArgs} args - Arguments to find a ApiKey + * @example + * // Get one ApiKey + * const apiKey = await prisma.apiKey.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__ApiKeyClient<$Result.GetResult, T, "findUniqueOrThrow">, never, ExtArgs> + + /** + * Find the first ApiKey that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ApiKeyFindFirstArgs} args - Arguments to find a ApiKey + * @example + * // Get one ApiKey + * const apiKey = await prisma.apiKey.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__ApiKeyClient<$Result.GetResult, T, "findFirst"> | null, null, ExtArgs> + + /** + * Find the first ApiKey that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ApiKeyFindFirstOrThrowArgs} args - Arguments to find a ApiKey + * @example + * // Get one ApiKey + * const apiKey = await prisma.apiKey.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__ApiKeyClient<$Result.GetResult, T, "findFirstOrThrow">, never, ExtArgs> + + /** + * Find zero or more ApiKeys that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ApiKeyFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all ApiKeys + * const apiKeys = await prisma.apiKey.findMany() + * + * // Get first 10 ApiKeys + * const apiKeys = await prisma.apiKey.findMany({ take: 10 }) + * + * // Only select the `ref` + * const apiKeyWithRefOnly = await prisma.apiKey.findMany({ select: { ref: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany">> + + /** + * Create a ApiKey. + * @param {ApiKeyCreateArgs} args - Arguments to create a ApiKey. + * @example + * // Create one ApiKey + * const ApiKey = await prisma.apiKey.create({ + * data: { + * // ... data to create a ApiKey + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__ApiKeyClient<$Result.GetResult, T, "create">, never, ExtArgs> + + /** + * Create many ApiKeys. + * @param {ApiKeyCreateManyArgs} args - Arguments to create many ApiKeys. + * @example + * // Create many ApiKeys + * const apiKey = await prisma.apiKey.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many ApiKeys and returns the data saved in the database. + * @param {ApiKeyCreateManyAndReturnArgs} args - Arguments to create many ApiKeys. + * @example + * // Create many ApiKeys + * const apiKey = await prisma.apiKey.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many ApiKeys and only return the `ref` + * const apiKeyWithRefOnly = await prisma.apiKey.createManyAndReturn({ + * select: { ref: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn">> + + /** + * Delete a ApiKey. + * @param {ApiKeyDeleteArgs} args - Arguments to delete one ApiKey. + * @example + * // Delete one ApiKey + * const ApiKey = await prisma.apiKey.delete({ + * where: { + * // ... filter to delete one ApiKey + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__ApiKeyClient<$Result.GetResult, T, "delete">, never, ExtArgs> + + /** + * Update one ApiKey. + * @param {ApiKeyUpdateArgs} args - Arguments to update one ApiKey. + * @example + * // Update one ApiKey + * const apiKey = await prisma.apiKey.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__ApiKeyClient<$Result.GetResult, T, "update">, never, ExtArgs> + + /** + * Delete zero or more ApiKeys. + * @param {ApiKeyDeleteManyArgs} args - Arguments to filter ApiKeys to delete. + * @example + * // Delete a few ApiKeys + * const { count } = await prisma.apiKey.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more ApiKeys. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ApiKeyUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many ApiKeys + * const apiKey = await prisma.apiKey.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one ApiKey. + * @param {ApiKeyUpsertArgs} args - Arguments to update or create a ApiKey. + * @example + * // Update or create a ApiKey + * const apiKey = await prisma.apiKey.upsert({ + * create: { + * // ... data to create a ApiKey + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the ApiKey we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__ApiKeyClient<$Result.GetResult, T, "upsert">, never, ExtArgs> + + + /** + * Count the number of ApiKeys. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ApiKeyCountArgs} args - Arguments to filter ApiKeys to count. + * @example + * // Count the number of ApiKeys + * const count = await prisma.apiKey.count({ + * where: { + * // ... the filter for the ApiKeys we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a ApiKey. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ApiKeyAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by ApiKey. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {ApiKeyGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends ApiKeyGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: ApiKeyGroupByArgs['orderBy'] } + : { orderBy?: ApiKeyGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetApiKeyGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the ApiKey model + */ + readonly fields: ApiKeyFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for ApiKey. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__ApiKeyClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + workspace = {}>(args?: Subset>): Prisma__WorkspaceClient<$Result.GetResult, T, "findUniqueOrThrow"> | Null, Null, ExtArgs> + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the ApiKey model + */ + interface ApiKeyFieldRefs { + readonly ref: FieldRef<"ApiKey", 'String'> + readonly accessKeyId: FieldRef<"ApiKey", 'String'> + readonly accessKeySecret: FieldRef<"ApiKey", 'String'> + readonly role: FieldRef<"ApiKey", 'ApiKeyRole'> + readonly createdAt: FieldRef<"ApiKey", 'DateTime'> + readonly updatedAt: FieldRef<"ApiKey", 'DateTime'> + readonly expiresAt: FieldRef<"ApiKey", 'DateTime'> + readonly workspaceRef: FieldRef<"ApiKey", 'String'> + } + + + // Custom InputTypes + /** + * ApiKey findUnique + */ + export type ApiKeyFindUniqueArgs = { + /** + * Select specific fields to fetch from the ApiKey + */ + select?: ApiKeySelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: ApiKeyInclude | null + /** + * Filter, which ApiKey to fetch. + */ + where: ApiKeyWhereUniqueInput + } + + /** + * ApiKey findUniqueOrThrow + */ + export type ApiKeyFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the ApiKey + */ + select?: ApiKeySelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: ApiKeyInclude | null + /** + * Filter, which ApiKey to fetch. + */ + where: ApiKeyWhereUniqueInput + } + + /** + * ApiKey findFirst + */ + export type ApiKeyFindFirstArgs = { + /** + * Select specific fields to fetch from the ApiKey + */ + select?: ApiKeySelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: ApiKeyInclude | null + /** + * Filter, which ApiKey to fetch. + */ + where?: ApiKeyWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ApiKeys to fetch. + */ + orderBy?: ApiKeyOrderByWithRelationInput | ApiKeyOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for ApiKeys. + */ + cursor?: ApiKeyWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ApiKeys from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ApiKeys. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of ApiKeys. + */ + distinct?: ApiKeyScalarFieldEnum | ApiKeyScalarFieldEnum[] + } + + /** + * ApiKey findFirstOrThrow + */ + export type ApiKeyFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the ApiKey + */ + select?: ApiKeySelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: ApiKeyInclude | null + /** + * Filter, which ApiKey to fetch. + */ + where?: ApiKeyWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ApiKeys to fetch. + */ + orderBy?: ApiKeyOrderByWithRelationInput | ApiKeyOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for ApiKeys. + */ + cursor?: ApiKeyWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ApiKeys from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ApiKeys. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of ApiKeys. + */ + distinct?: ApiKeyScalarFieldEnum | ApiKeyScalarFieldEnum[] + } + + /** + * ApiKey findMany + */ + export type ApiKeyFindManyArgs = { + /** + * Select specific fields to fetch from the ApiKey + */ + select?: ApiKeySelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: ApiKeyInclude | null + /** + * Filter, which ApiKeys to fetch. + */ + where?: ApiKeyWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of ApiKeys to fetch. + */ + orderBy?: ApiKeyOrderByWithRelationInput | ApiKeyOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing ApiKeys. + */ + cursor?: ApiKeyWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` ApiKeys from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` ApiKeys. + */ + skip?: number + distinct?: ApiKeyScalarFieldEnum | ApiKeyScalarFieldEnum[] + } + + /** + * ApiKey create + */ + export type ApiKeyCreateArgs = { + /** + * Select specific fields to fetch from the ApiKey + */ + select?: ApiKeySelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: ApiKeyInclude | null + /** + * The data needed to create a ApiKey. + */ + data: XOR + } + + /** + * ApiKey createMany + */ + export type ApiKeyCreateManyArgs = { + /** + * The data used to create many ApiKeys. + */ + data: ApiKeyCreateManyInput | ApiKeyCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * ApiKey createManyAndReturn + */ + export type ApiKeyCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the ApiKey + */ + select?: ApiKeySelectCreateManyAndReturn | null + /** + * The data used to create many ApiKeys. + */ + data: ApiKeyCreateManyInput | ApiKeyCreateManyInput[] + skipDuplicates?: boolean + /** + * Choose, which related nodes to fetch as well + */ + include?: ApiKeyIncludeCreateManyAndReturn | null + } + + /** + * ApiKey update + */ + export type ApiKeyUpdateArgs = { + /** + * Select specific fields to fetch from the ApiKey + */ + select?: ApiKeySelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: ApiKeyInclude | null + /** + * The data needed to update a ApiKey. + */ + data: XOR + /** + * Choose, which ApiKey to update. + */ + where: ApiKeyWhereUniqueInput + } + + /** + * ApiKey updateMany + */ + export type ApiKeyUpdateManyArgs = { + /** + * The data used to update ApiKeys. + */ + data: XOR + /** + * Filter which ApiKeys to update + */ + where?: ApiKeyWhereInput + } + + /** + * ApiKey upsert + */ + export type ApiKeyUpsertArgs = { + /** + * Select specific fields to fetch from the ApiKey + */ + select?: ApiKeySelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: ApiKeyInclude | null + /** + * The filter to search for the ApiKey to update in case it exists. + */ + where: ApiKeyWhereUniqueInput + /** + * In case the ApiKey found by the `where` argument doesn't exist, create a new ApiKey with this data. + */ + create: XOR + /** + * In case the ApiKey was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * ApiKey delete + */ + export type ApiKeyDeleteArgs = { + /** + * Select specific fields to fetch from the ApiKey + */ + select?: ApiKeySelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: ApiKeyInclude | null + /** + * Filter which ApiKey to delete. + */ + where: ApiKeyWhereUniqueInput + } + + /** + * ApiKey deleteMany + */ + export type ApiKeyDeleteManyArgs = { + /** + * Filter which ApiKeys to delete + */ + where?: ApiKeyWhereInput + } + + /** + * ApiKey without action + */ + export type ApiKeyDefaultArgs = { + /** + * Select specific fields to fetch from the ApiKey + */ + select?: ApiKeySelect | null + /** + * Choose, which related nodes to fetch as well + */ + include?: ApiKeyInclude | null + } + + + /** + * Model VerificationCode + */ + + export type AggregateVerificationCode = { + _count: VerificationCodeCountAggregateOutputType | null + _min: VerificationCodeMinAggregateOutputType | null + _max: VerificationCodeMaxAggregateOutputType | null + } + + export type VerificationCodeMinAggregateOutputType = { + ref: string | null + type: $Enums.VerificationType | null + code: string | null + value: string | null + expiresAt: Date | null + createdAt: Date | null + } + + export type VerificationCodeMaxAggregateOutputType = { + ref: string | null + type: $Enums.VerificationType | null + code: string | null + value: string | null + expiresAt: Date | null + createdAt: Date | null + } + + export type VerificationCodeCountAggregateOutputType = { + ref: number + type: number + code: number + value: number + expiresAt: number + createdAt: number + _all: number + } + + + export type VerificationCodeMinAggregateInputType = { + ref?: true + type?: true + code?: true + value?: true + expiresAt?: true + createdAt?: true + } + + export type VerificationCodeMaxAggregateInputType = { + ref?: true + type?: true + code?: true + value?: true + expiresAt?: true + createdAt?: true + } + + export type VerificationCodeCountAggregateInputType = { + ref?: true + type?: true + code?: true + value?: true + expiresAt?: true + createdAt?: true + _all?: true + } + + export type VerificationCodeAggregateArgs = { + /** + * Filter which VerificationCode to aggregate. + */ + where?: VerificationCodeWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of VerificationCodes to fetch. + */ + orderBy?: VerificationCodeOrderByWithRelationInput | VerificationCodeOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the start position + */ + cursor?: VerificationCodeWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` VerificationCodes from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` VerificationCodes. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Count returned VerificationCodes + **/ + _count?: true | VerificationCodeCountAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the minimum value + **/ + _min?: VerificationCodeMinAggregateInputType + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/aggregations Aggregation Docs} + * + * Select which fields to find the maximum value + **/ + _max?: VerificationCodeMaxAggregateInputType + } + + export type GetVerificationCodeAggregateType = { + [P in keyof T & keyof AggregateVerificationCode]: P extends '_count' | 'count' + ? T[P] extends true + ? number + : GetScalarType + : GetScalarType + } + + + + + export type VerificationCodeGroupByArgs = { + where?: VerificationCodeWhereInput + orderBy?: VerificationCodeOrderByWithAggregationInput | VerificationCodeOrderByWithAggregationInput[] + by: VerificationCodeScalarFieldEnum[] | VerificationCodeScalarFieldEnum + having?: VerificationCodeScalarWhereWithAggregatesInput + take?: number + skip?: number + _count?: VerificationCodeCountAggregateInputType | true + _min?: VerificationCodeMinAggregateInputType + _max?: VerificationCodeMaxAggregateInputType + } + + export type VerificationCodeGroupByOutputType = { + ref: string + type: $Enums.VerificationType + code: string + value: string + expiresAt: Date + createdAt: Date + _count: VerificationCodeCountAggregateOutputType | null + _min: VerificationCodeMinAggregateOutputType | null + _max: VerificationCodeMaxAggregateOutputType | null + } + + type GetVerificationCodeGroupByPayload = Prisma.PrismaPromise< + Array< + PickEnumerable & + { + [P in ((keyof T) & (keyof VerificationCodeGroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : GetScalarType + : GetScalarType + } + > + > + + + export type VerificationCodeSelect = $Extensions.GetSelect<{ + ref?: boolean + type?: boolean + code?: boolean + value?: boolean + expiresAt?: boolean + createdAt?: boolean + }, ExtArgs["result"]["verificationCode"]> + + export type VerificationCodeSelectCreateManyAndReturn = $Extensions.GetSelect<{ + ref?: boolean + type?: boolean + code?: boolean + value?: boolean + expiresAt?: boolean + createdAt?: boolean + }, ExtArgs["result"]["verificationCode"]> + + export type VerificationCodeSelectScalar = { + ref?: boolean + type?: boolean + code?: boolean + value?: boolean + expiresAt?: boolean + createdAt?: boolean + } + + + export type $VerificationCodePayload = { + name: "VerificationCode" + objects: {} + scalars: $Extensions.GetPayloadResult<{ + ref: string + type: $Enums.VerificationType + code: string + value: string + expiresAt: Date + createdAt: Date + }, ExtArgs["result"]["verificationCode"]> + composites: {} + } + + type VerificationCodeGetPayload = $Result.GetResult + + type VerificationCodeCountArgs = + Omit & { + select?: VerificationCodeCountAggregateInputType | true + } + + export interface VerificationCodeDelegate { + [K: symbol]: { types: Prisma.TypeMap['model']['VerificationCode'], meta: { name: 'VerificationCode' } } + /** + * Find zero or one VerificationCode that matches the filter. + * @param {VerificationCodeFindUniqueArgs} args - Arguments to find a VerificationCode + * @example + * // Get one VerificationCode + * const verificationCode = await prisma.verificationCode.findUnique({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUnique(args: SelectSubset>): Prisma__VerificationCodeClient<$Result.GetResult, T, "findUnique"> | null, null, ExtArgs> + + /** + * Find one VerificationCode that matches the filter or throw an error with `error.code='P2025'` + * if no matches were found. + * @param {VerificationCodeFindUniqueOrThrowArgs} args - Arguments to find a VerificationCode + * @example + * // Get one VerificationCode + * const verificationCode = await prisma.verificationCode.findUniqueOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findUniqueOrThrow(args: SelectSubset>): Prisma__VerificationCodeClient<$Result.GetResult, T, "findUniqueOrThrow">, never, ExtArgs> + + /** + * Find the first VerificationCode that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationCodeFindFirstArgs} args - Arguments to find a VerificationCode + * @example + * // Get one VerificationCode + * const verificationCode = await prisma.verificationCode.findFirst({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirst(args?: SelectSubset>): Prisma__VerificationCodeClient<$Result.GetResult, T, "findFirst"> | null, null, ExtArgs> + + /** + * Find the first VerificationCode that matches the filter or + * throw `PrismaKnownClientError` with `P2025` code if no matches were found. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationCodeFindFirstOrThrowArgs} args - Arguments to find a VerificationCode + * @example + * // Get one VerificationCode + * const verificationCode = await prisma.verificationCode.findFirstOrThrow({ + * where: { + * // ... provide filter here + * } + * }) + */ + findFirstOrThrow(args?: SelectSubset>): Prisma__VerificationCodeClient<$Result.GetResult, T, "findFirstOrThrow">, never, ExtArgs> + + /** + * Find zero or more VerificationCodes that matches the filter. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationCodeFindManyArgs} args - Arguments to filter and select certain fields only. + * @example + * // Get all VerificationCodes + * const verificationCodes = await prisma.verificationCode.findMany() + * + * // Get first 10 VerificationCodes + * const verificationCodes = await prisma.verificationCode.findMany({ take: 10 }) + * + * // Only select the `ref` + * const verificationCodeWithRefOnly = await prisma.verificationCode.findMany({ select: { ref: true } }) + * + */ + findMany(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "findMany">> + + /** + * Create a VerificationCode. + * @param {VerificationCodeCreateArgs} args - Arguments to create a VerificationCode. + * @example + * // Create one VerificationCode + * const VerificationCode = await prisma.verificationCode.create({ + * data: { + * // ... data to create a VerificationCode + * } + * }) + * + */ + create(args: SelectSubset>): Prisma__VerificationCodeClient<$Result.GetResult, T, "create">, never, ExtArgs> + + /** + * Create many VerificationCodes. + * @param {VerificationCodeCreateManyArgs} args - Arguments to create many VerificationCodes. + * @example + * // Create many VerificationCodes + * const verificationCode = await prisma.verificationCode.createMany({ + * data: [ + * // ... provide data here + * ] + * }) + * + */ + createMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Create many VerificationCodes and returns the data saved in the database. + * @param {VerificationCodeCreateManyAndReturnArgs} args - Arguments to create many VerificationCodes. + * @example + * // Create many VerificationCodes + * const verificationCode = await prisma.verificationCode.createManyAndReturn({ + * data: [ + * // ... provide data here + * ] + * }) + * + * // Create many VerificationCodes and only return the `ref` + * const verificationCodeWithRefOnly = await prisma.verificationCode.createManyAndReturn({ + * select: { ref: true }, + * data: [ + * // ... provide data here + * ] + * }) + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * + */ + createManyAndReturn(args?: SelectSubset>): Prisma.PrismaPromise<$Result.GetResult, T, "createManyAndReturn">> + + /** + * Delete a VerificationCode. + * @param {VerificationCodeDeleteArgs} args - Arguments to delete one VerificationCode. + * @example + * // Delete one VerificationCode + * const VerificationCode = await prisma.verificationCode.delete({ + * where: { + * // ... filter to delete one VerificationCode + * } + * }) + * + */ + delete(args: SelectSubset>): Prisma__VerificationCodeClient<$Result.GetResult, T, "delete">, never, ExtArgs> + + /** + * Update one VerificationCode. + * @param {VerificationCodeUpdateArgs} args - Arguments to update one VerificationCode. + * @example + * // Update one VerificationCode + * const verificationCode = await prisma.verificationCode.update({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + update(args: SelectSubset>): Prisma__VerificationCodeClient<$Result.GetResult, T, "update">, never, ExtArgs> + + /** + * Delete zero or more VerificationCodes. + * @param {VerificationCodeDeleteManyArgs} args - Arguments to filter VerificationCodes to delete. + * @example + * // Delete a few VerificationCodes + * const { count } = await prisma.verificationCode.deleteMany({ + * where: { + * // ... provide filter here + * } + * }) + * + */ + deleteMany(args?: SelectSubset>): Prisma.PrismaPromise + + /** + * Update zero or more VerificationCodes. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationCodeUpdateManyArgs} args - Arguments to update one or more rows. + * @example + * // Update many VerificationCodes + * const verificationCode = await prisma.verificationCode.updateMany({ + * where: { + * // ... provide filter here + * }, + * data: { + * // ... provide data here + * } + * }) + * + */ + updateMany(args: SelectSubset>): Prisma.PrismaPromise + + /** + * Create or update one VerificationCode. + * @param {VerificationCodeUpsertArgs} args - Arguments to update or create a VerificationCode. + * @example + * // Update or create a VerificationCode + * const verificationCode = await prisma.verificationCode.upsert({ + * create: { + * // ... data to create a VerificationCode + * }, + * update: { + * // ... in case it already exists, update + * }, + * where: { + * // ... the filter for the VerificationCode we want to update + * } + * }) + */ + upsert(args: SelectSubset>): Prisma__VerificationCodeClient<$Result.GetResult, T, "upsert">, never, ExtArgs> + + + /** + * Count the number of VerificationCodes. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationCodeCountArgs} args - Arguments to filter VerificationCodes to count. + * @example + * // Count the number of VerificationCodes + * const count = await prisma.verificationCode.count({ + * where: { + * // ... the filter for the VerificationCodes we want to count + * } + * }) + **/ + count( + args?: Subset, + ): Prisma.PrismaPromise< + T extends $Utils.Record<'select', any> + ? T['select'] extends true + ? number + : GetScalarType + : number + > + + /** + * Allows you to perform aggregations operations on a VerificationCode. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationCodeAggregateArgs} args - Select which aggregations you would like to apply and on what fields. + * @example + * // Ordered by age ascending + * // Where email contains prisma.io + * // Limited to the 10 users + * const aggregations = await prisma.user.aggregate({ + * _avg: { + * age: true, + * }, + * where: { + * email: { + * contains: "prisma.io", + * }, + * }, + * orderBy: { + * age: "asc", + * }, + * take: 10, + * }) + **/ + aggregate(args: Subset): Prisma.PrismaPromise> + + /** + * Group by VerificationCode. + * Note, that providing `undefined` is treated as the value not being there. + * Read more here: https://pris.ly/d/null-undefined + * @param {VerificationCodeGroupByArgs} args - Group by arguments. + * @example + * // Group by city, order by createdAt, get count + * const result = await prisma.user.groupBy({ + * by: ['city', 'createdAt'], + * orderBy: { + * createdAt: true + * }, + * _count: { + * _all: true + * }, + * }) + * + **/ + groupBy< + T extends VerificationCodeGroupByArgs, + HasSelectOrTake extends Or< + Extends<'skip', Keys>, + Extends<'take', Keys> + >, + OrderByArg extends True extends HasSelectOrTake + ? { orderBy: VerificationCodeGroupByArgs['orderBy'] } + : { orderBy?: VerificationCodeGroupByArgs['orderBy'] }, + OrderFields extends ExcludeUnderscoreKeys>>, + ByFields extends MaybeTupleToUnion, + ByValid extends Has, + HavingFields extends GetHavingFields, + HavingValid extends Has, + ByEmpty extends T['by'] extends never[] ? True : False, + InputErrors extends ByEmpty extends True + ? `Error: "by" must not be empty.` + : HavingValid extends False + ? { + [P in HavingFields]: P extends ByFields + ? never + : P extends string + ? `Error: Field "${P}" used in "having" needs to be provided in "by".` + : [ + Error, + 'Field ', + P, + ` in "having" needs to be provided in "by"`, + ] + }[HavingFields] + : 'take' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "take", you also need to provide "orderBy"' + : 'skip' extends Keys + ? 'orderBy' extends Keys + ? ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + : 'Error: If you provide "skip", you also need to provide "orderBy"' + : ByValid extends True + ? {} + : { + [P in OrderFields]: P extends ByFields + ? never + : `Error: Field "${P}" in "orderBy" needs to be provided in "by"` + }[OrderFields] + >(args: SubsetIntersection & InputErrors): {} extends InputErrors ? GetVerificationCodeGroupByPayload : Prisma.PrismaPromise + /** + * Fields of the VerificationCode model + */ + readonly fields: VerificationCodeFieldRefs; + } + + /** + * The delegate class that acts as a "Promise-like" for VerificationCode. + * Why is this prefixed with `Prisma__`? + * Because we want to prevent naming conflicts as mentioned in + * https://github.com/prisma/prisma-client-js/issues/707 + */ + export interface Prisma__VerificationCodeClient extends Prisma.PrismaPromise { + readonly [Symbol.toStringTag]: "PrismaPromise" + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback for only the rejection of the Promise. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): $Utils.JsPromise + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onfinally?: (() => void) | undefined | null): $Utils.JsPromise + } + + + + + /** + * Fields of the VerificationCode model + */ + interface VerificationCodeFieldRefs { + readonly ref: FieldRef<"VerificationCode", 'String'> + readonly type: FieldRef<"VerificationCode", 'VerificationType'> + readonly code: FieldRef<"VerificationCode", 'String'> + readonly value: FieldRef<"VerificationCode", 'String'> + readonly expiresAt: FieldRef<"VerificationCode", 'DateTime'> + readonly createdAt: FieldRef<"VerificationCode", 'DateTime'> + } + + + // Custom InputTypes + /** + * VerificationCode findUnique + */ + export type VerificationCodeFindUniqueArgs = { + /** + * Select specific fields to fetch from the VerificationCode + */ + select?: VerificationCodeSelect | null + /** + * Filter, which VerificationCode to fetch. + */ + where: VerificationCodeWhereUniqueInput + } + + /** + * VerificationCode findUniqueOrThrow + */ + export type VerificationCodeFindUniqueOrThrowArgs = { + /** + * Select specific fields to fetch from the VerificationCode + */ + select?: VerificationCodeSelect | null + /** + * Filter, which VerificationCode to fetch. + */ + where: VerificationCodeWhereUniqueInput + } + + /** + * VerificationCode findFirst + */ + export type VerificationCodeFindFirstArgs = { + /** + * Select specific fields to fetch from the VerificationCode + */ + select?: VerificationCodeSelect | null + /** + * Filter, which VerificationCode to fetch. + */ + where?: VerificationCodeWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of VerificationCodes to fetch. + */ + orderBy?: VerificationCodeOrderByWithRelationInput | VerificationCodeOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for VerificationCodes. + */ + cursor?: VerificationCodeWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` VerificationCodes from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` VerificationCodes. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of VerificationCodes. + */ + distinct?: VerificationCodeScalarFieldEnum | VerificationCodeScalarFieldEnum[] + } + + /** + * VerificationCode findFirstOrThrow + */ + export type VerificationCodeFindFirstOrThrowArgs = { + /** + * Select specific fields to fetch from the VerificationCode + */ + select?: VerificationCodeSelect | null + /** + * Filter, which VerificationCode to fetch. + */ + where?: VerificationCodeWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of VerificationCodes to fetch. + */ + orderBy?: VerificationCodeOrderByWithRelationInput | VerificationCodeOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for searching for VerificationCodes. + */ + cursor?: VerificationCodeWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` VerificationCodes from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` VerificationCodes. + */ + skip?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/distinct Distinct Docs} + * + * Filter by unique combinations of VerificationCodes. + */ + distinct?: VerificationCodeScalarFieldEnum | VerificationCodeScalarFieldEnum[] + } + + /** + * VerificationCode findMany + */ + export type VerificationCodeFindManyArgs = { + /** + * Select specific fields to fetch from the VerificationCode + */ + select?: VerificationCodeSelect | null + /** + * Filter, which VerificationCodes to fetch. + */ + where?: VerificationCodeWhereInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/sorting Sorting Docs} + * + * Determine the order of VerificationCodes to fetch. + */ + orderBy?: VerificationCodeOrderByWithRelationInput | VerificationCodeOrderByWithRelationInput[] + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination#cursor-based-pagination Cursor Docs} + * + * Sets the position for listing VerificationCodes. + */ + cursor?: VerificationCodeWhereUniqueInput + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Take `±n` VerificationCodes from the position of the cursor. + */ + take?: number + /** + * {@link https://www.prisma.io/docs/concepts/components/prisma-client/pagination Pagination Docs} + * + * Skip the first `n` VerificationCodes. + */ + skip?: number + distinct?: VerificationCodeScalarFieldEnum | VerificationCodeScalarFieldEnum[] + } + + /** + * VerificationCode create + */ + export type VerificationCodeCreateArgs = { + /** + * Select specific fields to fetch from the VerificationCode + */ + select?: VerificationCodeSelect | null + /** + * The data needed to create a VerificationCode. + */ + data: XOR + } + + /** + * VerificationCode createMany + */ + export type VerificationCodeCreateManyArgs = { + /** + * The data used to create many VerificationCodes. + */ + data: VerificationCodeCreateManyInput | VerificationCodeCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * VerificationCode createManyAndReturn + */ + export type VerificationCodeCreateManyAndReturnArgs = { + /** + * Select specific fields to fetch from the VerificationCode + */ + select?: VerificationCodeSelectCreateManyAndReturn | null + /** + * The data used to create many VerificationCodes. + */ + data: VerificationCodeCreateManyInput | VerificationCodeCreateManyInput[] + skipDuplicates?: boolean + } + + /** + * VerificationCode update + */ + export type VerificationCodeUpdateArgs = { + /** + * Select specific fields to fetch from the VerificationCode + */ + select?: VerificationCodeSelect | null + /** + * The data needed to update a VerificationCode. + */ + data: XOR + /** + * Choose, which VerificationCode to update. + */ + where: VerificationCodeWhereUniqueInput + } + + /** + * VerificationCode updateMany + */ + export type VerificationCodeUpdateManyArgs = { + /** + * The data used to update VerificationCodes. + */ + data: XOR + /** + * Filter which VerificationCodes to update + */ + where?: VerificationCodeWhereInput + } + + /** + * VerificationCode upsert + */ + export type VerificationCodeUpsertArgs = { + /** + * Select specific fields to fetch from the VerificationCode + */ + select?: VerificationCodeSelect | null + /** + * The filter to search for the VerificationCode to update in case it exists. + */ + where: VerificationCodeWhereUniqueInput + /** + * In case the VerificationCode found by the `where` argument doesn't exist, create a new VerificationCode with this data. + */ + create: XOR + /** + * In case the VerificationCode was found with the provided `where` argument, update it with this data. + */ + update: XOR + } + + /** + * VerificationCode delete + */ + export type VerificationCodeDeleteArgs = { + /** + * Select specific fields to fetch from the VerificationCode + */ + select?: VerificationCodeSelect | null + /** + * Filter which VerificationCode to delete. + */ + where: VerificationCodeWhereUniqueInput + } + + /** + * VerificationCode deleteMany + */ + export type VerificationCodeDeleteManyArgs = { + /** + * Filter which VerificationCodes to delete + */ + where?: VerificationCodeWhereInput + } + + /** + * VerificationCode without action + */ + export type VerificationCodeDefaultArgs = { + /** + * Select specific fields to fetch from the VerificationCode + */ + select?: VerificationCodeSelect | null + } + + + /** + * Enums + */ + + export const TransactionIsolationLevel: { + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' + }; + + export type TransactionIsolationLevel = (typeof TransactionIsolationLevel)[keyof typeof TransactionIsolationLevel] + + + export const UserScalarFieldEnum: { + ref: 'ref', + accessKeyId: 'accessKeyId', + name: 'name', + email: 'email', + emailVerified: 'emailVerified', + password: 'password', + phoneNumber: 'phoneNumber', + phoneNumberVerified: 'phoneNumberVerified', + avatar: 'avatar', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + extended: 'extended' + }; + + export type UserScalarFieldEnum = (typeof UserScalarFieldEnum)[keyof typeof UserScalarFieldEnum] + + + export const WorkspaceScalarFieldEnum: { + ref: 'ref', + accessKeyId: 'accessKeyId', + name: 'name', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + ownerRef: 'ownerRef' + }; + + export type WorkspaceScalarFieldEnum = (typeof WorkspaceScalarFieldEnum)[keyof typeof WorkspaceScalarFieldEnum] + + + export const WorkspaceMemberScalarFieldEnum: { + ref: 'ref', + status: 'status', + role: 'role', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + userRef: 'userRef', + workspaceRef: 'workspaceRef' + }; + + export type WorkspaceMemberScalarFieldEnum = (typeof WorkspaceMemberScalarFieldEnum)[keyof typeof WorkspaceMemberScalarFieldEnum] + + + export const ApiKeyScalarFieldEnum: { + ref: 'ref', + accessKeyId: 'accessKeyId', + accessKeySecret: 'accessKeySecret', + role: 'role', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + expiresAt: 'expiresAt', + workspaceRef: 'workspaceRef' + }; + + export type ApiKeyScalarFieldEnum = (typeof ApiKeyScalarFieldEnum)[keyof typeof ApiKeyScalarFieldEnum] + + + export const VerificationCodeScalarFieldEnum: { + ref: 'ref', + type: 'type', + code: 'code', + value: 'value', + expiresAt: 'expiresAt', + createdAt: 'createdAt' + }; + + export type VerificationCodeScalarFieldEnum = (typeof VerificationCodeScalarFieldEnum)[keyof typeof VerificationCodeScalarFieldEnum] + + + export const SortOrder: { + asc: 'asc', + desc: 'desc' + }; + + export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder] + + + export const NullableJsonNullValueInput: { + DbNull: typeof DbNull, + JsonNull: typeof JsonNull + }; + + export type NullableJsonNullValueInput = (typeof NullableJsonNullValueInput)[keyof typeof NullableJsonNullValueInput] + + + export const QueryMode: { + default: 'default', + insensitive: 'insensitive' + }; + + export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode] + + + export const JsonNullValueFilter: { + DbNull: typeof DbNull, + JsonNull: typeof JsonNull, + AnyNull: typeof AnyNull + }; + + export type JsonNullValueFilter = (typeof JsonNullValueFilter)[keyof typeof JsonNullValueFilter] + + + export const NullsOrder: { + first: 'first', + last: 'last' + }; + + export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder] + + + /** + * Field references + */ + + + /** + * Reference to a field of type 'String' + */ + export type StringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String'> + + + + /** + * Reference to a field of type 'String[]' + */ + export type ListStringFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'String[]'> + + + + /** + * Reference to a field of type 'Boolean' + */ + export type BooleanFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Boolean'> + + + + /** + * Reference to a field of type 'DateTime' + */ + export type DateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime'> + + + + /** + * Reference to a field of type 'DateTime[]' + */ + export type ListDateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'DateTime[]'> + + + + /** + * Reference to a field of type 'Json' + */ + export type JsonFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Json'> + + + + /** + * Reference to a field of type 'WorkspaceMemberStatus' + */ + export type EnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'WorkspaceMemberStatus'> + + + + /** + * Reference to a field of type 'WorkspaceMemberStatus[]' + */ + export type ListEnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'WorkspaceMemberStatus[]'> + + + + /** + * Reference to a field of type 'WorkspaceMemberRole' + */ + export type EnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'WorkspaceMemberRole'> + + + + /** + * Reference to a field of type 'WorkspaceMemberRole[]' + */ + export type ListEnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'WorkspaceMemberRole[]'> + + + + /** + * Reference to a field of type 'ApiKeyRole' + */ + export type EnumApiKeyRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ApiKeyRole'> + + + + /** + * Reference to a field of type 'ApiKeyRole[]' + */ + export type ListEnumApiKeyRoleFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'ApiKeyRole[]'> + + + + /** + * Reference to a field of type 'VerificationType' + */ + export type EnumVerificationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'VerificationType'> + + + + /** + * Reference to a field of type 'VerificationType[]' + */ + export type ListEnumVerificationTypeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'VerificationType[]'> + + + + /** + * Reference to a field of type 'Int' + */ + export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int'> + + + + /** + * Reference to a field of type 'Int[]' + */ + export type ListIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int[]'> + + /** + * Deep Input Types + */ + + + export type UserWhereInput = { + AND?: UserWhereInput | UserWhereInput[] + OR?: UserWhereInput[] + NOT?: UserWhereInput | UserWhereInput[] + ref?: StringFilter<"User"> | string + accessKeyId?: StringFilter<"User"> | string + name?: StringFilter<"User"> | string + email?: StringFilter<"User"> | string + emailVerified?: BoolFilter<"User"> | boolean + password?: StringFilter<"User"> | string + phoneNumber?: StringNullableFilter<"User"> | string | null + phoneNumberVerified?: BoolFilter<"User"> | boolean + avatar?: StringNullableFilter<"User"> | string | null + createdAt?: DateTimeFilter<"User"> | Date | string + updatedAt?: DateTimeFilter<"User"> | Date | string + extended?: JsonNullableFilter<"User"> + ownedWorkspaces?: WorkspaceListRelationFilter + memberships?: WorkspaceMemberListRelationFilter + } + + export type UserOrderByWithRelationInput = { + ref?: SortOrder + accessKeyId?: SortOrder + name?: SortOrder + email?: SortOrder + emailVerified?: SortOrder + password?: SortOrder + phoneNumber?: SortOrderInput | SortOrder + phoneNumberVerified?: SortOrder + avatar?: SortOrderInput | SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + extended?: SortOrderInput | SortOrder + ownedWorkspaces?: WorkspaceOrderByRelationAggregateInput + memberships?: WorkspaceMemberOrderByRelationAggregateInput + } + + export type UserWhereUniqueInput = Prisma.AtLeast<{ + ref?: string + accessKeyId?: string + email?: string + AND?: UserWhereInput | UserWhereInput[] + OR?: UserWhereInput[] + NOT?: UserWhereInput | UserWhereInput[] + name?: StringFilter<"User"> | string + emailVerified?: BoolFilter<"User"> | boolean + password?: StringFilter<"User"> | string + phoneNumber?: StringNullableFilter<"User"> | string | null + phoneNumberVerified?: BoolFilter<"User"> | boolean + avatar?: StringNullableFilter<"User"> | string | null + createdAt?: DateTimeFilter<"User"> | Date | string + updatedAt?: DateTimeFilter<"User"> | Date | string + extended?: JsonNullableFilter<"User"> + ownedWorkspaces?: WorkspaceListRelationFilter + memberships?: WorkspaceMemberListRelationFilter + }, "ref" | "accessKeyId" | "email"> + + export type UserOrderByWithAggregationInput = { + ref?: SortOrder + accessKeyId?: SortOrder + name?: SortOrder + email?: SortOrder + emailVerified?: SortOrder + password?: SortOrder + phoneNumber?: SortOrderInput | SortOrder + phoneNumberVerified?: SortOrder + avatar?: SortOrderInput | SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + extended?: SortOrderInput | SortOrder + _count?: UserCountOrderByAggregateInput + _max?: UserMaxOrderByAggregateInput + _min?: UserMinOrderByAggregateInput + } + + export type UserScalarWhereWithAggregatesInput = { + AND?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[] + OR?: UserScalarWhereWithAggregatesInput[] + NOT?: UserScalarWhereWithAggregatesInput | UserScalarWhereWithAggregatesInput[] + ref?: StringWithAggregatesFilter<"User"> | string + accessKeyId?: StringWithAggregatesFilter<"User"> | string + name?: StringWithAggregatesFilter<"User"> | string + email?: StringWithAggregatesFilter<"User"> | string + emailVerified?: BoolWithAggregatesFilter<"User"> | boolean + password?: StringWithAggregatesFilter<"User"> | string + phoneNumber?: StringNullableWithAggregatesFilter<"User"> | string | null + phoneNumberVerified?: BoolWithAggregatesFilter<"User"> | boolean + avatar?: StringNullableWithAggregatesFilter<"User"> | string | null + createdAt?: DateTimeWithAggregatesFilter<"User"> | Date | string + updatedAt?: DateTimeWithAggregatesFilter<"User"> | Date | string + extended?: JsonNullableWithAggregatesFilter<"User"> + } + + export type WorkspaceWhereInput = { + AND?: WorkspaceWhereInput | WorkspaceWhereInput[] + OR?: WorkspaceWhereInput[] + NOT?: WorkspaceWhereInput | WorkspaceWhereInput[] + ref?: StringFilter<"Workspace"> | string + accessKeyId?: StringFilter<"Workspace"> | string + name?: StringFilter<"Workspace"> | string + createdAt?: DateTimeFilter<"Workspace"> | Date | string + updatedAt?: DateTimeFilter<"Workspace"> | Date | string + ownerRef?: StringFilter<"Workspace"> | string + owner?: XOR + members?: WorkspaceMemberListRelationFilter + apiKeys?: ApiKeyListRelationFilter + } + + export type WorkspaceOrderByWithRelationInput = { + ref?: SortOrder + accessKeyId?: SortOrder + name?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + ownerRef?: SortOrder + owner?: UserOrderByWithRelationInput + members?: WorkspaceMemberOrderByRelationAggregateInput + apiKeys?: ApiKeyOrderByRelationAggregateInput + } + + export type WorkspaceWhereUniqueInput = Prisma.AtLeast<{ + ref?: string + accessKeyId?: string + AND?: WorkspaceWhereInput | WorkspaceWhereInput[] + OR?: WorkspaceWhereInput[] + NOT?: WorkspaceWhereInput | WorkspaceWhereInput[] + name?: StringFilter<"Workspace"> | string + createdAt?: DateTimeFilter<"Workspace"> | Date | string + updatedAt?: DateTimeFilter<"Workspace"> | Date | string + ownerRef?: StringFilter<"Workspace"> | string + owner?: XOR + members?: WorkspaceMemberListRelationFilter + apiKeys?: ApiKeyListRelationFilter + }, "ref" | "accessKeyId"> + + export type WorkspaceOrderByWithAggregationInput = { + ref?: SortOrder + accessKeyId?: SortOrder + name?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + ownerRef?: SortOrder + _count?: WorkspaceCountOrderByAggregateInput + _max?: WorkspaceMaxOrderByAggregateInput + _min?: WorkspaceMinOrderByAggregateInput + } + + export type WorkspaceScalarWhereWithAggregatesInput = { + AND?: WorkspaceScalarWhereWithAggregatesInput | WorkspaceScalarWhereWithAggregatesInput[] + OR?: WorkspaceScalarWhereWithAggregatesInput[] + NOT?: WorkspaceScalarWhereWithAggregatesInput | WorkspaceScalarWhereWithAggregatesInput[] + ref?: StringWithAggregatesFilter<"Workspace"> | string + accessKeyId?: StringWithAggregatesFilter<"Workspace"> | string + name?: StringWithAggregatesFilter<"Workspace"> | string + createdAt?: DateTimeWithAggregatesFilter<"Workspace"> | Date | string + updatedAt?: DateTimeWithAggregatesFilter<"Workspace"> | Date | string + ownerRef?: StringWithAggregatesFilter<"Workspace"> | string + } + + export type WorkspaceMemberWhereInput = { + AND?: WorkspaceMemberWhereInput | WorkspaceMemberWhereInput[] + OR?: WorkspaceMemberWhereInput[] + NOT?: WorkspaceMemberWhereInput | WorkspaceMemberWhereInput[] + ref?: StringFilter<"WorkspaceMember"> | string + status?: EnumWorkspaceMemberStatusFilter<"WorkspaceMember"> | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleFilter<"WorkspaceMember"> | $Enums.WorkspaceMemberRole + createdAt?: DateTimeFilter<"WorkspaceMember"> | Date | string + updatedAt?: DateTimeFilter<"WorkspaceMember"> | Date | string + userRef?: StringFilter<"WorkspaceMember"> | string + workspaceRef?: StringFilter<"WorkspaceMember"> | string + user?: XOR + workspace?: XOR + } + + export type WorkspaceMemberOrderByWithRelationInput = { + ref?: SortOrder + status?: SortOrder + role?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + userRef?: SortOrder + workspaceRef?: SortOrder + user?: UserOrderByWithRelationInput + workspace?: WorkspaceOrderByWithRelationInput + } + + export type WorkspaceMemberWhereUniqueInput = Prisma.AtLeast<{ + ref?: string + userRef_workspaceRef?: WorkspaceMemberUserRefWorkspaceRefCompoundUniqueInput + AND?: WorkspaceMemberWhereInput | WorkspaceMemberWhereInput[] + OR?: WorkspaceMemberWhereInput[] + NOT?: WorkspaceMemberWhereInput | WorkspaceMemberWhereInput[] + status?: EnumWorkspaceMemberStatusFilter<"WorkspaceMember"> | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleFilter<"WorkspaceMember"> | $Enums.WorkspaceMemberRole + createdAt?: DateTimeFilter<"WorkspaceMember"> | Date | string + updatedAt?: DateTimeFilter<"WorkspaceMember"> | Date | string + userRef?: StringFilter<"WorkspaceMember"> | string + workspaceRef?: StringFilter<"WorkspaceMember"> | string + user?: XOR + workspace?: XOR + }, "ref" | "userRef_workspaceRef"> + + export type WorkspaceMemberOrderByWithAggregationInput = { + ref?: SortOrder + status?: SortOrder + role?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + userRef?: SortOrder + workspaceRef?: SortOrder + _count?: WorkspaceMemberCountOrderByAggregateInput + _max?: WorkspaceMemberMaxOrderByAggregateInput + _min?: WorkspaceMemberMinOrderByAggregateInput + } + + export type WorkspaceMemberScalarWhereWithAggregatesInput = { + AND?: WorkspaceMemberScalarWhereWithAggregatesInput | WorkspaceMemberScalarWhereWithAggregatesInput[] + OR?: WorkspaceMemberScalarWhereWithAggregatesInput[] + NOT?: WorkspaceMemberScalarWhereWithAggregatesInput | WorkspaceMemberScalarWhereWithAggregatesInput[] + ref?: StringWithAggregatesFilter<"WorkspaceMember"> | string + status?: EnumWorkspaceMemberStatusWithAggregatesFilter<"WorkspaceMember"> | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleWithAggregatesFilter<"WorkspaceMember"> | $Enums.WorkspaceMemberRole + createdAt?: DateTimeWithAggregatesFilter<"WorkspaceMember"> | Date | string + updatedAt?: DateTimeWithAggregatesFilter<"WorkspaceMember"> | Date | string + userRef?: StringWithAggregatesFilter<"WorkspaceMember"> | string + workspaceRef?: StringWithAggregatesFilter<"WorkspaceMember"> | string + } + + export type ApiKeyWhereInput = { + AND?: ApiKeyWhereInput | ApiKeyWhereInput[] + OR?: ApiKeyWhereInput[] + NOT?: ApiKeyWhereInput | ApiKeyWhereInput[] + ref?: StringFilter<"ApiKey"> | string + accessKeyId?: StringFilter<"ApiKey"> | string + accessKeySecret?: StringFilter<"ApiKey"> | string + role?: EnumApiKeyRoleFilter<"ApiKey"> | $Enums.ApiKeyRole + createdAt?: DateTimeFilter<"ApiKey"> | Date | string + updatedAt?: DateTimeFilter<"ApiKey"> | Date | string + expiresAt?: DateTimeNullableFilter<"ApiKey"> | Date | string | null + workspaceRef?: StringFilter<"ApiKey"> | string + workspace?: XOR + } + + export type ApiKeyOrderByWithRelationInput = { + ref?: SortOrder + accessKeyId?: SortOrder + accessKeySecret?: SortOrder + role?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + expiresAt?: SortOrderInput | SortOrder + workspaceRef?: SortOrder + workspace?: WorkspaceOrderByWithRelationInput + } + + export type ApiKeyWhereUniqueInput = Prisma.AtLeast<{ + ref?: string + accessKeyId?: string + AND?: ApiKeyWhereInput | ApiKeyWhereInput[] + OR?: ApiKeyWhereInput[] + NOT?: ApiKeyWhereInput | ApiKeyWhereInput[] + accessKeySecret?: StringFilter<"ApiKey"> | string + role?: EnumApiKeyRoleFilter<"ApiKey"> | $Enums.ApiKeyRole + createdAt?: DateTimeFilter<"ApiKey"> | Date | string + updatedAt?: DateTimeFilter<"ApiKey"> | Date | string + expiresAt?: DateTimeNullableFilter<"ApiKey"> | Date | string | null + workspaceRef?: StringFilter<"ApiKey"> | string + workspace?: XOR + }, "ref" | "accessKeyId"> + + export type ApiKeyOrderByWithAggregationInput = { + ref?: SortOrder + accessKeyId?: SortOrder + accessKeySecret?: SortOrder + role?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + expiresAt?: SortOrderInput | SortOrder + workspaceRef?: SortOrder + _count?: ApiKeyCountOrderByAggregateInput + _max?: ApiKeyMaxOrderByAggregateInput + _min?: ApiKeyMinOrderByAggregateInput + } + + export type ApiKeyScalarWhereWithAggregatesInput = { + AND?: ApiKeyScalarWhereWithAggregatesInput | ApiKeyScalarWhereWithAggregatesInput[] + OR?: ApiKeyScalarWhereWithAggregatesInput[] + NOT?: ApiKeyScalarWhereWithAggregatesInput | ApiKeyScalarWhereWithAggregatesInput[] + ref?: StringWithAggregatesFilter<"ApiKey"> | string + accessKeyId?: StringWithAggregatesFilter<"ApiKey"> | string + accessKeySecret?: StringWithAggregatesFilter<"ApiKey"> | string + role?: EnumApiKeyRoleWithAggregatesFilter<"ApiKey"> | $Enums.ApiKeyRole + createdAt?: DateTimeWithAggregatesFilter<"ApiKey"> | Date | string + updatedAt?: DateTimeWithAggregatesFilter<"ApiKey"> | Date | string + expiresAt?: DateTimeNullableWithAggregatesFilter<"ApiKey"> | Date | string | null + workspaceRef?: StringWithAggregatesFilter<"ApiKey"> | string + } + + export type VerificationCodeWhereInput = { + AND?: VerificationCodeWhereInput | VerificationCodeWhereInput[] + OR?: VerificationCodeWhereInput[] + NOT?: VerificationCodeWhereInput | VerificationCodeWhereInput[] + ref?: StringFilter<"VerificationCode"> | string + type?: EnumVerificationTypeFilter<"VerificationCode"> | $Enums.VerificationType + code?: StringFilter<"VerificationCode"> | string + value?: StringFilter<"VerificationCode"> | string + expiresAt?: DateTimeFilter<"VerificationCode"> | Date | string + createdAt?: DateTimeFilter<"VerificationCode"> | Date | string + } + + export type VerificationCodeOrderByWithRelationInput = { + ref?: SortOrder + type?: SortOrder + code?: SortOrder + value?: SortOrder + expiresAt?: SortOrder + createdAt?: SortOrder + } + + export type VerificationCodeWhereUniqueInput = Prisma.AtLeast<{ + ref?: string + AND?: VerificationCodeWhereInput | VerificationCodeWhereInput[] + OR?: VerificationCodeWhereInput[] + NOT?: VerificationCodeWhereInput | VerificationCodeWhereInput[] + type?: EnumVerificationTypeFilter<"VerificationCode"> | $Enums.VerificationType + code?: StringFilter<"VerificationCode"> | string + value?: StringFilter<"VerificationCode"> | string + expiresAt?: DateTimeFilter<"VerificationCode"> | Date | string + createdAt?: DateTimeFilter<"VerificationCode"> | Date | string + }, "ref"> + + export type VerificationCodeOrderByWithAggregationInput = { + ref?: SortOrder + type?: SortOrder + code?: SortOrder + value?: SortOrder + expiresAt?: SortOrder + createdAt?: SortOrder + _count?: VerificationCodeCountOrderByAggregateInput + _max?: VerificationCodeMaxOrderByAggregateInput + _min?: VerificationCodeMinOrderByAggregateInput + } + + export type VerificationCodeScalarWhereWithAggregatesInput = { + AND?: VerificationCodeScalarWhereWithAggregatesInput | VerificationCodeScalarWhereWithAggregatesInput[] + OR?: VerificationCodeScalarWhereWithAggregatesInput[] + NOT?: VerificationCodeScalarWhereWithAggregatesInput | VerificationCodeScalarWhereWithAggregatesInput[] + ref?: StringWithAggregatesFilter<"VerificationCode"> | string + type?: EnumVerificationTypeWithAggregatesFilter<"VerificationCode"> | $Enums.VerificationType + code?: StringWithAggregatesFilter<"VerificationCode"> | string + value?: StringWithAggregatesFilter<"VerificationCode"> | string + expiresAt?: DateTimeWithAggregatesFilter<"VerificationCode"> | Date | string + createdAt?: DateTimeWithAggregatesFilter<"VerificationCode"> | Date | string + } + + export type UserCreateInput = { + ref?: string + accessKeyId: string + name: string + email: string + emailVerified?: boolean + password: string + phoneNumber?: string | null + phoneNumberVerified?: boolean + avatar?: string | null + createdAt?: Date | string + updatedAt?: Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + ownedWorkspaces?: WorkspaceCreateNestedManyWithoutOwnerInput + memberships?: WorkspaceMemberCreateNestedManyWithoutUserInput + } + + export type UserUncheckedCreateInput = { + ref?: string + accessKeyId: string + name: string + email: string + emailVerified?: boolean + password: string + phoneNumber?: string | null + phoneNumberVerified?: boolean + avatar?: string | null + createdAt?: Date | string + updatedAt?: Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + ownedWorkspaces?: WorkspaceUncheckedCreateNestedManyWithoutOwnerInput + memberships?: WorkspaceMemberUncheckedCreateNestedManyWithoutUserInput + } + + export type UserUpdateInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + email?: StringFieldUpdateOperationsInput | string + emailVerified?: BoolFieldUpdateOperationsInput | boolean + password?: StringFieldUpdateOperationsInput | string + phoneNumber?: NullableStringFieldUpdateOperationsInput | string | null + phoneNumberVerified?: BoolFieldUpdateOperationsInput | boolean + avatar?: NullableStringFieldUpdateOperationsInput | string | null + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + ownedWorkspaces?: WorkspaceUpdateManyWithoutOwnerNestedInput + memberships?: WorkspaceMemberUpdateManyWithoutUserNestedInput + } + + export type UserUncheckedUpdateInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + email?: StringFieldUpdateOperationsInput | string + emailVerified?: BoolFieldUpdateOperationsInput | boolean + password?: StringFieldUpdateOperationsInput | string + phoneNumber?: NullableStringFieldUpdateOperationsInput | string | null + phoneNumberVerified?: BoolFieldUpdateOperationsInput | boolean + avatar?: NullableStringFieldUpdateOperationsInput | string | null + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + ownedWorkspaces?: WorkspaceUncheckedUpdateManyWithoutOwnerNestedInput + memberships?: WorkspaceMemberUncheckedUpdateManyWithoutUserNestedInput + } + + export type UserCreateManyInput = { + ref?: string + accessKeyId: string + name: string + email: string + emailVerified?: boolean + password: string + phoneNumber?: string | null + phoneNumberVerified?: boolean + avatar?: string | null + createdAt?: Date | string + updatedAt?: Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + } + + export type UserUpdateManyMutationInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + email?: StringFieldUpdateOperationsInput | string + emailVerified?: BoolFieldUpdateOperationsInput | boolean + password?: StringFieldUpdateOperationsInput | string + phoneNumber?: NullableStringFieldUpdateOperationsInput | string | null + phoneNumberVerified?: BoolFieldUpdateOperationsInput | boolean + avatar?: NullableStringFieldUpdateOperationsInput | string | null + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + } + + export type UserUncheckedUpdateManyInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + email?: StringFieldUpdateOperationsInput | string + emailVerified?: BoolFieldUpdateOperationsInput | boolean + password?: StringFieldUpdateOperationsInput | string + phoneNumber?: NullableStringFieldUpdateOperationsInput | string | null + phoneNumberVerified?: BoolFieldUpdateOperationsInput | boolean + avatar?: NullableStringFieldUpdateOperationsInput | string | null + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + } + + export type WorkspaceCreateInput = { + ref?: string + accessKeyId: string + name: string + createdAt?: Date | string + updatedAt?: Date | string + owner: UserCreateNestedOneWithoutOwnedWorkspacesInput + members?: WorkspaceMemberCreateNestedManyWithoutWorkspaceInput + apiKeys?: ApiKeyCreateNestedManyWithoutWorkspaceInput + } + + export type WorkspaceUncheckedCreateInput = { + ref?: string + accessKeyId: string + name: string + createdAt?: Date | string + updatedAt?: Date | string + ownerRef: string + members?: WorkspaceMemberUncheckedCreateNestedManyWithoutWorkspaceInput + apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutWorkspaceInput + } + + export type WorkspaceUpdateInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + owner?: UserUpdateOneRequiredWithoutOwnedWorkspacesNestedInput + members?: WorkspaceMemberUpdateManyWithoutWorkspaceNestedInput + apiKeys?: ApiKeyUpdateManyWithoutWorkspaceNestedInput + } + + export type WorkspaceUncheckedUpdateInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + ownerRef?: StringFieldUpdateOperationsInput | string + members?: WorkspaceMemberUncheckedUpdateManyWithoutWorkspaceNestedInput + apiKeys?: ApiKeyUncheckedUpdateManyWithoutWorkspaceNestedInput + } + + export type WorkspaceCreateManyInput = { + ref?: string + accessKeyId: string + name: string + createdAt?: Date | string + updatedAt?: Date | string + ownerRef: string + } + + export type WorkspaceUpdateManyMutationInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type WorkspaceUncheckedUpdateManyInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + ownerRef?: StringFieldUpdateOperationsInput | string + } + + export type WorkspaceMemberCreateInput = { + ref?: string + status?: $Enums.WorkspaceMemberStatus + role?: $Enums.WorkspaceMemberRole + createdAt?: Date | string + updatedAt?: Date | string + user: UserCreateNestedOneWithoutMembershipsInput + workspace: WorkspaceCreateNestedOneWithoutMembersInput + } + + export type WorkspaceMemberUncheckedCreateInput = { + ref?: string + status?: $Enums.WorkspaceMemberStatus + role?: $Enums.WorkspaceMemberRole + createdAt?: Date | string + updatedAt?: Date | string + userRef: string + workspaceRef: string + } + + export type WorkspaceMemberUpdateInput = { + ref?: StringFieldUpdateOperationsInput | string + status?: EnumWorkspaceMemberStatusFieldUpdateOperationsInput | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleFieldUpdateOperationsInput | $Enums.WorkspaceMemberRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + user?: UserUpdateOneRequiredWithoutMembershipsNestedInput + workspace?: WorkspaceUpdateOneRequiredWithoutMembersNestedInput + } + + export type WorkspaceMemberUncheckedUpdateInput = { + ref?: StringFieldUpdateOperationsInput | string + status?: EnumWorkspaceMemberStatusFieldUpdateOperationsInput | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleFieldUpdateOperationsInput | $Enums.WorkspaceMemberRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + userRef?: StringFieldUpdateOperationsInput | string + workspaceRef?: StringFieldUpdateOperationsInput | string + } + + export type WorkspaceMemberCreateManyInput = { + ref?: string + status?: $Enums.WorkspaceMemberStatus + role?: $Enums.WorkspaceMemberRole + createdAt?: Date | string + updatedAt?: Date | string + userRef: string + workspaceRef: string + } + + export type WorkspaceMemberUpdateManyMutationInput = { + ref?: StringFieldUpdateOperationsInput | string + status?: EnumWorkspaceMemberStatusFieldUpdateOperationsInput | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleFieldUpdateOperationsInput | $Enums.WorkspaceMemberRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type WorkspaceMemberUncheckedUpdateManyInput = { + ref?: StringFieldUpdateOperationsInput | string + status?: EnumWorkspaceMemberStatusFieldUpdateOperationsInput | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleFieldUpdateOperationsInput | $Enums.WorkspaceMemberRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + userRef?: StringFieldUpdateOperationsInput | string + workspaceRef?: StringFieldUpdateOperationsInput | string + } + + export type ApiKeyCreateInput = { + ref?: string + accessKeyId: string + accessKeySecret: string + role?: $Enums.ApiKeyRole + createdAt?: Date | string + updatedAt?: Date | string + expiresAt?: Date | string | null + workspace: WorkspaceCreateNestedOneWithoutApiKeysInput + } + + export type ApiKeyUncheckedCreateInput = { + ref?: string + accessKeyId: string + accessKeySecret: string + role?: $Enums.ApiKeyRole + createdAt?: Date | string + updatedAt?: Date | string + expiresAt?: Date | string | null + workspaceRef: string + } + + export type ApiKeyUpdateInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + accessKeySecret?: StringFieldUpdateOperationsInput | string + role?: EnumApiKeyRoleFieldUpdateOperationsInput | $Enums.ApiKeyRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + workspace?: WorkspaceUpdateOneRequiredWithoutApiKeysNestedInput + } + + export type ApiKeyUncheckedUpdateInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + accessKeySecret?: StringFieldUpdateOperationsInput | string + role?: EnumApiKeyRoleFieldUpdateOperationsInput | $Enums.ApiKeyRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + workspaceRef?: StringFieldUpdateOperationsInput | string + } + + export type ApiKeyCreateManyInput = { + ref?: string + accessKeyId: string + accessKeySecret: string + role?: $Enums.ApiKeyRole + createdAt?: Date | string + updatedAt?: Date | string + expiresAt?: Date | string | null + workspaceRef: string + } + + export type ApiKeyUpdateManyMutationInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + accessKeySecret?: StringFieldUpdateOperationsInput | string + role?: EnumApiKeyRoleFieldUpdateOperationsInput | $Enums.ApiKeyRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + } + + export type ApiKeyUncheckedUpdateManyInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + accessKeySecret?: StringFieldUpdateOperationsInput | string + role?: EnumApiKeyRoleFieldUpdateOperationsInput | $Enums.ApiKeyRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + workspaceRef?: StringFieldUpdateOperationsInput | string + } + + export type VerificationCodeCreateInput = { + ref?: string + type: $Enums.VerificationType + code: string + value: string + expiresAt: Date | string + createdAt?: Date | string + } + + export type VerificationCodeUncheckedCreateInput = { + ref?: string + type: $Enums.VerificationType + code: string + value: string + expiresAt: Date | string + createdAt?: Date | string + } + + export type VerificationCodeUpdateInput = { + ref?: StringFieldUpdateOperationsInput | string + type?: EnumVerificationTypeFieldUpdateOperationsInput | $Enums.VerificationType + code?: StringFieldUpdateOperationsInput | string + value?: StringFieldUpdateOperationsInput | string + expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type VerificationCodeUncheckedUpdateInput = { + ref?: StringFieldUpdateOperationsInput | string + type?: EnumVerificationTypeFieldUpdateOperationsInput | $Enums.VerificationType + code?: StringFieldUpdateOperationsInput | string + value?: StringFieldUpdateOperationsInput | string + expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type VerificationCodeCreateManyInput = { + ref?: string + type: $Enums.VerificationType + code: string + value: string + expiresAt: Date | string + createdAt?: Date | string + } + + export type VerificationCodeUpdateManyMutationInput = { + ref?: StringFieldUpdateOperationsInput | string + type?: EnumVerificationTypeFieldUpdateOperationsInput | $Enums.VerificationType + code?: StringFieldUpdateOperationsInput | string + value?: StringFieldUpdateOperationsInput | string + expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type VerificationCodeUncheckedUpdateManyInput = { + ref?: StringFieldUpdateOperationsInput | string + type?: EnumVerificationTypeFieldUpdateOperationsInput | $Enums.VerificationType + code?: StringFieldUpdateOperationsInput | string + value?: StringFieldUpdateOperationsInput | string + expiresAt?: DateTimeFieldUpdateOperationsInput | Date | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type StringFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> + in?: string[] | ListStringFieldRefInput<$PrismaModel> + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + mode?: QueryMode + not?: NestedStringFilter<$PrismaModel> | string + } + + export type BoolFilter<$PrismaModel = never> = { + equals?: boolean | BooleanFieldRefInput<$PrismaModel> + not?: NestedBoolFilter<$PrismaModel> | boolean + } + + export type StringNullableFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> | null + in?: string[] | ListStringFieldRefInput<$PrismaModel> | null + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + mode?: QueryMode + not?: NestedStringNullableFilter<$PrismaModel> | string | null + } + + export type DateTimeFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeFilter<$PrismaModel> | Date | string + } + export type JsonNullableFilter<$PrismaModel = never> = + | PatchUndefined< + Either>, Exclude>, 'path'>>, + Required> + > + | OptionalFlat>, 'path'>> + + export type JsonNullableFilterBase<$PrismaModel = never> = { + equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter + path?: string[] + string_contains?: string | StringFieldRefInput<$PrismaModel> + string_starts_with?: string | StringFieldRefInput<$PrismaModel> + string_ends_with?: string | StringFieldRefInput<$PrismaModel> + array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null + array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null + array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null + lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel> + lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel> + gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel> + gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel> + not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter + } + + export type WorkspaceListRelationFilter = { + every?: WorkspaceWhereInput + some?: WorkspaceWhereInput + none?: WorkspaceWhereInput + } + + export type WorkspaceMemberListRelationFilter = { + every?: WorkspaceMemberWhereInput + some?: WorkspaceMemberWhereInput + none?: WorkspaceMemberWhereInput + } + + export type SortOrderInput = { + sort: SortOrder + nulls?: NullsOrder + } + + export type WorkspaceOrderByRelationAggregateInput = { + _count?: SortOrder + } + + export type WorkspaceMemberOrderByRelationAggregateInput = { + _count?: SortOrder + } + + export type UserCountOrderByAggregateInput = { + ref?: SortOrder + accessKeyId?: SortOrder + name?: SortOrder + email?: SortOrder + emailVerified?: SortOrder + password?: SortOrder + phoneNumber?: SortOrder + phoneNumberVerified?: SortOrder + avatar?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + extended?: SortOrder + } + + export type UserMaxOrderByAggregateInput = { + ref?: SortOrder + accessKeyId?: SortOrder + name?: SortOrder + email?: SortOrder + emailVerified?: SortOrder + password?: SortOrder + phoneNumber?: SortOrder + phoneNumberVerified?: SortOrder + avatar?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + } + + export type UserMinOrderByAggregateInput = { + ref?: SortOrder + accessKeyId?: SortOrder + name?: SortOrder + email?: SortOrder + emailVerified?: SortOrder + password?: SortOrder + phoneNumber?: SortOrder + phoneNumberVerified?: SortOrder + avatar?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + } + + export type StringWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> + in?: string[] | ListStringFieldRefInput<$PrismaModel> + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + mode?: QueryMode + not?: NestedStringWithAggregatesFilter<$PrismaModel> | string + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedStringFilter<$PrismaModel> + _max?: NestedStringFilter<$PrismaModel> + } + + export type BoolWithAggregatesFilter<$PrismaModel = never> = { + equals?: boolean | BooleanFieldRefInput<$PrismaModel> + not?: NestedBoolWithAggregatesFilter<$PrismaModel> | boolean + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedBoolFilter<$PrismaModel> + _max?: NestedBoolFilter<$PrismaModel> + } + + export type StringNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> | null + in?: string[] | ListStringFieldRefInput<$PrismaModel> | null + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + mode?: QueryMode + not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null + _count?: NestedIntNullableFilter<$PrismaModel> + _min?: NestedStringNullableFilter<$PrismaModel> + _max?: NestedStringNullableFilter<$PrismaModel> + } + + export type DateTimeWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedDateTimeFilter<$PrismaModel> + _max?: NestedDateTimeFilter<$PrismaModel> + } + export type JsonNullableWithAggregatesFilter<$PrismaModel = never> = + | PatchUndefined< + Either>, Exclude>, 'path'>>, + Required> + > + | OptionalFlat>, 'path'>> + + export type JsonNullableWithAggregatesFilterBase<$PrismaModel = never> = { + equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter + path?: string[] + string_contains?: string | StringFieldRefInput<$PrismaModel> + string_starts_with?: string | StringFieldRefInput<$PrismaModel> + string_ends_with?: string | StringFieldRefInput<$PrismaModel> + array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null + array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null + array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null + lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel> + lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel> + gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel> + gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel> + not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter + _count?: NestedIntNullableFilter<$PrismaModel> + _min?: NestedJsonNullableFilter<$PrismaModel> + _max?: NestedJsonNullableFilter<$PrismaModel> + } + + export type UserScalarRelationFilter = { + is?: UserWhereInput + isNot?: UserWhereInput + } + + export type ApiKeyListRelationFilter = { + every?: ApiKeyWhereInput + some?: ApiKeyWhereInput + none?: ApiKeyWhereInput + } + + export type ApiKeyOrderByRelationAggregateInput = { + _count?: SortOrder + } + + export type WorkspaceCountOrderByAggregateInput = { + ref?: SortOrder + accessKeyId?: SortOrder + name?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + ownerRef?: SortOrder + } + + export type WorkspaceMaxOrderByAggregateInput = { + ref?: SortOrder + accessKeyId?: SortOrder + name?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + ownerRef?: SortOrder + } + + export type WorkspaceMinOrderByAggregateInput = { + ref?: SortOrder + accessKeyId?: SortOrder + name?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + ownerRef?: SortOrder + } + + export type EnumWorkspaceMemberStatusFilter<$PrismaModel = never> = { + equals?: $Enums.WorkspaceMemberStatus | EnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> + in?: $Enums.WorkspaceMemberStatus[] | ListEnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> + notIn?: $Enums.WorkspaceMemberStatus[] | ListEnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> + not?: NestedEnumWorkspaceMemberStatusFilter<$PrismaModel> | $Enums.WorkspaceMemberStatus + } + + export type EnumWorkspaceMemberRoleFilter<$PrismaModel = never> = { + equals?: $Enums.WorkspaceMemberRole | EnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> + in?: $Enums.WorkspaceMemberRole[] | ListEnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> + notIn?: $Enums.WorkspaceMemberRole[] | ListEnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> + not?: NestedEnumWorkspaceMemberRoleFilter<$PrismaModel> | $Enums.WorkspaceMemberRole + } + + export type WorkspaceScalarRelationFilter = { + is?: WorkspaceWhereInput + isNot?: WorkspaceWhereInput + } + + export type WorkspaceMemberUserRefWorkspaceRefCompoundUniqueInput = { + userRef: string + workspaceRef: string + } + + export type WorkspaceMemberCountOrderByAggregateInput = { + ref?: SortOrder + status?: SortOrder + role?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + userRef?: SortOrder + workspaceRef?: SortOrder + } + + export type WorkspaceMemberMaxOrderByAggregateInput = { + ref?: SortOrder + status?: SortOrder + role?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + userRef?: SortOrder + workspaceRef?: SortOrder + } + + export type WorkspaceMemberMinOrderByAggregateInput = { + ref?: SortOrder + status?: SortOrder + role?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + userRef?: SortOrder + workspaceRef?: SortOrder + } + + export type EnumWorkspaceMemberStatusWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.WorkspaceMemberStatus | EnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> + in?: $Enums.WorkspaceMemberStatus[] | ListEnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> + notIn?: $Enums.WorkspaceMemberStatus[] | ListEnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> + not?: NestedEnumWorkspaceMemberStatusWithAggregatesFilter<$PrismaModel> | $Enums.WorkspaceMemberStatus + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedEnumWorkspaceMemberStatusFilter<$PrismaModel> + _max?: NestedEnumWorkspaceMemberStatusFilter<$PrismaModel> + } + + export type EnumWorkspaceMemberRoleWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.WorkspaceMemberRole | EnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> + in?: $Enums.WorkspaceMemberRole[] | ListEnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> + notIn?: $Enums.WorkspaceMemberRole[] | ListEnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> + not?: NestedEnumWorkspaceMemberRoleWithAggregatesFilter<$PrismaModel> | $Enums.WorkspaceMemberRole + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedEnumWorkspaceMemberRoleFilter<$PrismaModel> + _max?: NestedEnumWorkspaceMemberRoleFilter<$PrismaModel> + } + + export type EnumApiKeyRoleFilter<$PrismaModel = never> = { + equals?: $Enums.ApiKeyRole | EnumApiKeyRoleFieldRefInput<$PrismaModel> + in?: $Enums.ApiKeyRole[] | ListEnumApiKeyRoleFieldRefInput<$PrismaModel> + notIn?: $Enums.ApiKeyRole[] | ListEnumApiKeyRoleFieldRefInput<$PrismaModel> + not?: NestedEnumApiKeyRoleFilter<$PrismaModel> | $Enums.ApiKeyRole + } + + export type DateTimeNullableFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null + } + + export type ApiKeyCountOrderByAggregateInput = { + ref?: SortOrder + accessKeyId?: SortOrder + accessKeySecret?: SortOrder + role?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + expiresAt?: SortOrder + workspaceRef?: SortOrder + } + + export type ApiKeyMaxOrderByAggregateInput = { + ref?: SortOrder + accessKeyId?: SortOrder + accessKeySecret?: SortOrder + role?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + expiresAt?: SortOrder + workspaceRef?: SortOrder + } + + export type ApiKeyMinOrderByAggregateInput = { + ref?: SortOrder + accessKeyId?: SortOrder + accessKeySecret?: SortOrder + role?: SortOrder + createdAt?: SortOrder + updatedAt?: SortOrder + expiresAt?: SortOrder + workspaceRef?: SortOrder + } + + export type EnumApiKeyRoleWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.ApiKeyRole | EnumApiKeyRoleFieldRefInput<$PrismaModel> + in?: $Enums.ApiKeyRole[] | ListEnumApiKeyRoleFieldRefInput<$PrismaModel> + notIn?: $Enums.ApiKeyRole[] | ListEnumApiKeyRoleFieldRefInput<$PrismaModel> + not?: NestedEnumApiKeyRoleWithAggregatesFilter<$PrismaModel> | $Enums.ApiKeyRole + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedEnumApiKeyRoleFilter<$PrismaModel> + _max?: NestedEnumApiKeyRoleFilter<$PrismaModel> + } + + export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null + _count?: NestedIntNullableFilter<$PrismaModel> + _min?: NestedDateTimeNullableFilter<$PrismaModel> + _max?: NestedDateTimeNullableFilter<$PrismaModel> + } + + export type EnumVerificationTypeFilter<$PrismaModel = never> = { + equals?: $Enums.VerificationType | EnumVerificationTypeFieldRefInput<$PrismaModel> + in?: $Enums.VerificationType[] | ListEnumVerificationTypeFieldRefInput<$PrismaModel> + notIn?: $Enums.VerificationType[] | ListEnumVerificationTypeFieldRefInput<$PrismaModel> + not?: NestedEnumVerificationTypeFilter<$PrismaModel> | $Enums.VerificationType + } + + export type VerificationCodeCountOrderByAggregateInput = { + ref?: SortOrder + type?: SortOrder + code?: SortOrder + value?: SortOrder + expiresAt?: SortOrder + createdAt?: SortOrder + } + + export type VerificationCodeMaxOrderByAggregateInput = { + ref?: SortOrder + type?: SortOrder + code?: SortOrder + value?: SortOrder + expiresAt?: SortOrder + createdAt?: SortOrder + } + + export type VerificationCodeMinOrderByAggregateInput = { + ref?: SortOrder + type?: SortOrder + code?: SortOrder + value?: SortOrder + expiresAt?: SortOrder + createdAt?: SortOrder + } + + export type EnumVerificationTypeWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.VerificationType | EnumVerificationTypeFieldRefInput<$PrismaModel> + in?: $Enums.VerificationType[] | ListEnumVerificationTypeFieldRefInput<$PrismaModel> + notIn?: $Enums.VerificationType[] | ListEnumVerificationTypeFieldRefInput<$PrismaModel> + not?: NestedEnumVerificationTypeWithAggregatesFilter<$PrismaModel> | $Enums.VerificationType + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedEnumVerificationTypeFilter<$PrismaModel> + _max?: NestedEnumVerificationTypeFilter<$PrismaModel> + } + + export type WorkspaceCreateNestedManyWithoutOwnerInput = { + create?: XOR | WorkspaceCreateWithoutOwnerInput[] | WorkspaceUncheckedCreateWithoutOwnerInput[] + connectOrCreate?: WorkspaceCreateOrConnectWithoutOwnerInput | WorkspaceCreateOrConnectWithoutOwnerInput[] + createMany?: WorkspaceCreateManyOwnerInputEnvelope + connect?: WorkspaceWhereUniqueInput | WorkspaceWhereUniqueInput[] + } + + export type WorkspaceMemberCreateNestedManyWithoutUserInput = { + create?: XOR | WorkspaceMemberCreateWithoutUserInput[] | WorkspaceMemberUncheckedCreateWithoutUserInput[] + connectOrCreate?: WorkspaceMemberCreateOrConnectWithoutUserInput | WorkspaceMemberCreateOrConnectWithoutUserInput[] + createMany?: WorkspaceMemberCreateManyUserInputEnvelope + connect?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + } + + export type WorkspaceUncheckedCreateNestedManyWithoutOwnerInput = { + create?: XOR | WorkspaceCreateWithoutOwnerInput[] | WorkspaceUncheckedCreateWithoutOwnerInput[] + connectOrCreate?: WorkspaceCreateOrConnectWithoutOwnerInput | WorkspaceCreateOrConnectWithoutOwnerInput[] + createMany?: WorkspaceCreateManyOwnerInputEnvelope + connect?: WorkspaceWhereUniqueInput | WorkspaceWhereUniqueInput[] + } + + export type WorkspaceMemberUncheckedCreateNestedManyWithoutUserInput = { + create?: XOR | WorkspaceMemberCreateWithoutUserInput[] | WorkspaceMemberUncheckedCreateWithoutUserInput[] + connectOrCreate?: WorkspaceMemberCreateOrConnectWithoutUserInput | WorkspaceMemberCreateOrConnectWithoutUserInput[] + createMany?: WorkspaceMemberCreateManyUserInputEnvelope + connect?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + } + + export type StringFieldUpdateOperationsInput = { + set?: string + } + + export type BoolFieldUpdateOperationsInput = { + set?: boolean + } + + export type NullableStringFieldUpdateOperationsInput = { + set?: string | null + } + + export type DateTimeFieldUpdateOperationsInput = { + set?: Date | string + } + + export type WorkspaceUpdateManyWithoutOwnerNestedInput = { + create?: XOR | WorkspaceCreateWithoutOwnerInput[] | WorkspaceUncheckedCreateWithoutOwnerInput[] + connectOrCreate?: WorkspaceCreateOrConnectWithoutOwnerInput | WorkspaceCreateOrConnectWithoutOwnerInput[] + upsert?: WorkspaceUpsertWithWhereUniqueWithoutOwnerInput | WorkspaceUpsertWithWhereUniqueWithoutOwnerInput[] + createMany?: WorkspaceCreateManyOwnerInputEnvelope + set?: WorkspaceWhereUniqueInput | WorkspaceWhereUniqueInput[] + disconnect?: WorkspaceWhereUniqueInput | WorkspaceWhereUniqueInput[] + delete?: WorkspaceWhereUniqueInput | WorkspaceWhereUniqueInput[] + connect?: WorkspaceWhereUniqueInput | WorkspaceWhereUniqueInput[] + update?: WorkspaceUpdateWithWhereUniqueWithoutOwnerInput | WorkspaceUpdateWithWhereUniqueWithoutOwnerInput[] + updateMany?: WorkspaceUpdateManyWithWhereWithoutOwnerInput | WorkspaceUpdateManyWithWhereWithoutOwnerInput[] + deleteMany?: WorkspaceScalarWhereInput | WorkspaceScalarWhereInput[] + } + + export type WorkspaceMemberUpdateManyWithoutUserNestedInput = { + create?: XOR | WorkspaceMemberCreateWithoutUserInput[] | WorkspaceMemberUncheckedCreateWithoutUserInput[] + connectOrCreate?: WorkspaceMemberCreateOrConnectWithoutUserInput | WorkspaceMemberCreateOrConnectWithoutUserInput[] + upsert?: WorkspaceMemberUpsertWithWhereUniqueWithoutUserInput | WorkspaceMemberUpsertWithWhereUniqueWithoutUserInput[] + createMany?: WorkspaceMemberCreateManyUserInputEnvelope + set?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + disconnect?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + delete?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + connect?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + update?: WorkspaceMemberUpdateWithWhereUniqueWithoutUserInput | WorkspaceMemberUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: WorkspaceMemberUpdateManyWithWhereWithoutUserInput | WorkspaceMemberUpdateManyWithWhereWithoutUserInput[] + deleteMany?: WorkspaceMemberScalarWhereInput | WorkspaceMemberScalarWhereInput[] + } + + export type WorkspaceUncheckedUpdateManyWithoutOwnerNestedInput = { + create?: XOR | WorkspaceCreateWithoutOwnerInput[] | WorkspaceUncheckedCreateWithoutOwnerInput[] + connectOrCreate?: WorkspaceCreateOrConnectWithoutOwnerInput | WorkspaceCreateOrConnectWithoutOwnerInput[] + upsert?: WorkspaceUpsertWithWhereUniqueWithoutOwnerInput | WorkspaceUpsertWithWhereUniqueWithoutOwnerInput[] + createMany?: WorkspaceCreateManyOwnerInputEnvelope + set?: WorkspaceWhereUniqueInput | WorkspaceWhereUniqueInput[] + disconnect?: WorkspaceWhereUniqueInput | WorkspaceWhereUniqueInput[] + delete?: WorkspaceWhereUniqueInput | WorkspaceWhereUniqueInput[] + connect?: WorkspaceWhereUniqueInput | WorkspaceWhereUniqueInput[] + update?: WorkspaceUpdateWithWhereUniqueWithoutOwnerInput | WorkspaceUpdateWithWhereUniqueWithoutOwnerInput[] + updateMany?: WorkspaceUpdateManyWithWhereWithoutOwnerInput | WorkspaceUpdateManyWithWhereWithoutOwnerInput[] + deleteMany?: WorkspaceScalarWhereInput | WorkspaceScalarWhereInput[] + } + + export type WorkspaceMemberUncheckedUpdateManyWithoutUserNestedInput = { + create?: XOR | WorkspaceMemberCreateWithoutUserInput[] | WorkspaceMemberUncheckedCreateWithoutUserInput[] + connectOrCreate?: WorkspaceMemberCreateOrConnectWithoutUserInput | WorkspaceMemberCreateOrConnectWithoutUserInput[] + upsert?: WorkspaceMemberUpsertWithWhereUniqueWithoutUserInput | WorkspaceMemberUpsertWithWhereUniqueWithoutUserInput[] + createMany?: WorkspaceMemberCreateManyUserInputEnvelope + set?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + disconnect?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + delete?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + connect?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + update?: WorkspaceMemberUpdateWithWhereUniqueWithoutUserInput | WorkspaceMemberUpdateWithWhereUniqueWithoutUserInput[] + updateMany?: WorkspaceMemberUpdateManyWithWhereWithoutUserInput | WorkspaceMemberUpdateManyWithWhereWithoutUserInput[] + deleteMany?: WorkspaceMemberScalarWhereInput | WorkspaceMemberScalarWhereInput[] + } + + export type UserCreateNestedOneWithoutOwnedWorkspacesInput = { + create?: XOR + connectOrCreate?: UserCreateOrConnectWithoutOwnedWorkspacesInput + connect?: UserWhereUniqueInput + } + + export type WorkspaceMemberCreateNestedManyWithoutWorkspaceInput = { + create?: XOR | WorkspaceMemberCreateWithoutWorkspaceInput[] | WorkspaceMemberUncheckedCreateWithoutWorkspaceInput[] + connectOrCreate?: WorkspaceMemberCreateOrConnectWithoutWorkspaceInput | WorkspaceMemberCreateOrConnectWithoutWorkspaceInput[] + createMany?: WorkspaceMemberCreateManyWorkspaceInputEnvelope + connect?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + } + + export type ApiKeyCreateNestedManyWithoutWorkspaceInput = { + create?: XOR | ApiKeyCreateWithoutWorkspaceInput[] | ApiKeyUncheckedCreateWithoutWorkspaceInput[] + connectOrCreate?: ApiKeyCreateOrConnectWithoutWorkspaceInput | ApiKeyCreateOrConnectWithoutWorkspaceInput[] + createMany?: ApiKeyCreateManyWorkspaceInputEnvelope + connect?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[] + } + + export type WorkspaceMemberUncheckedCreateNestedManyWithoutWorkspaceInput = { + create?: XOR | WorkspaceMemberCreateWithoutWorkspaceInput[] | WorkspaceMemberUncheckedCreateWithoutWorkspaceInput[] + connectOrCreate?: WorkspaceMemberCreateOrConnectWithoutWorkspaceInput | WorkspaceMemberCreateOrConnectWithoutWorkspaceInput[] + createMany?: WorkspaceMemberCreateManyWorkspaceInputEnvelope + connect?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + } + + export type ApiKeyUncheckedCreateNestedManyWithoutWorkspaceInput = { + create?: XOR | ApiKeyCreateWithoutWorkspaceInput[] | ApiKeyUncheckedCreateWithoutWorkspaceInput[] + connectOrCreate?: ApiKeyCreateOrConnectWithoutWorkspaceInput | ApiKeyCreateOrConnectWithoutWorkspaceInput[] + createMany?: ApiKeyCreateManyWorkspaceInputEnvelope + connect?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[] + } + + export type UserUpdateOneRequiredWithoutOwnedWorkspacesNestedInput = { + create?: XOR + connectOrCreate?: UserCreateOrConnectWithoutOwnedWorkspacesInput + upsert?: UserUpsertWithoutOwnedWorkspacesInput + connect?: UserWhereUniqueInput + update?: XOR, UserUncheckedUpdateWithoutOwnedWorkspacesInput> + } + + export type WorkspaceMemberUpdateManyWithoutWorkspaceNestedInput = { + create?: XOR | WorkspaceMemberCreateWithoutWorkspaceInput[] | WorkspaceMemberUncheckedCreateWithoutWorkspaceInput[] + connectOrCreate?: WorkspaceMemberCreateOrConnectWithoutWorkspaceInput | WorkspaceMemberCreateOrConnectWithoutWorkspaceInput[] + upsert?: WorkspaceMemberUpsertWithWhereUniqueWithoutWorkspaceInput | WorkspaceMemberUpsertWithWhereUniqueWithoutWorkspaceInput[] + createMany?: WorkspaceMemberCreateManyWorkspaceInputEnvelope + set?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + disconnect?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + delete?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + connect?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + update?: WorkspaceMemberUpdateWithWhereUniqueWithoutWorkspaceInput | WorkspaceMemberUpdateWithWhereUniqueWithoutWorkspaceInput[] + updateMany?: WorkspaceMemberUpdateManyWithWhereWithoutWorkspaceInput | WorkspaceMemberUpdateManyWithWhereWithoutWorkspaceInput[] + deleteMany?: WorkspaceMemberScalarWhereInput | WorkspaceMemberScalarWhereInput[] + } + + export type ApiKeyUpdateManyWithoutWorkspaceNestedInput = { + create?: XOR | ApiKeyCreateWithoutWorkspaceInput[] | ApiKeyUncheckedCreateWithoutWorkspaceInput[] + connectOrCreate?: ApiKeyCreateOrConnectWithoutWorkspaceInput | ApiKeyCreateOrConnectWithoutWorkspaceInput[] + upsert?: ApiKeyUpsertWithWhereUniqueWithoutWorkspaceInput | ApiKeyUpsertWithWhereUniqueWithoutWorkspaceInput[] + createMany?: ApiKeyCreateManyWorkspaceInputEnvelope + set?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[] + disconnect?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[] + delete?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[] + connect?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[] + update?: ApiKeyUpdateWithWhereUniqueWithoutWorkspaceInput | ApiKeyUpdateWithWhereUniqueWithoutWorkspaceInput[] + updateMany?: ApiKeyUpdateManyWithWhereWithoutWorkspaceInput | ApiKeyUpdateManyWithWhereWithoutWorkspaceInput[] + deleteMany?: ApiKeyScalarWhereInput | ApiKeyScalarWhereInput[] + } + + export type WorkspaceMemberUncheckedUpdateManyWithoutWorkspaceNestedInput = { + create?: XOR | WorkspaceMemberCreateWithoutWorkspaceInput[] | WorkspaceMemberUncheckedCreateWithoutWorkspaceInput[] + connectOrCreate?: WorkspaceMemberCreateOrConnectWithoutWorkspaceInput | WorkspaceMemberCreateOrConnectWithoutWorkspaceInput[] + upsert?: WorkspaceMemberUpsertWithWhereUniqueWithoutWorkspaceInput | WorkspaceMemberUpsertWithWhereUniqueWithoutWorkspaceInput[] + createMany?: WorkspaceMemberCreateManyWorkspaceInputEnvelope + set?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + disconnect?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + delete?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + connect?: WorkspaceMemberWhereUniqueInput | WorkspaceMemberWhereUniqueInput[] + update?: WorkspaceMemberUpdateWithWhereUniqueWithoutWorkspaceInput | WorkspaceMemberUpdateWithWhereUniqueWithoutWorkspaceInput[] + updateMany?: WorkspaceMemberUpdateManyWithWhereWithoutWorkspaceInput | WorkspaceMemberUpdateManyWithWhereWithoutWorkspaceInput[] + deleteMany?: WorkspaceMemberScalarWhereInput | WorkspaceMemberScalarWhereInput[] + } + + export type ApiKeyUncheckedUpdateManyWithoutWorkspaceNestedInput = { + create?: XOR | ApiKeyCreateWithoutWorkspaceInput[] | ApiKeyUncheckedCreateWithoutWorkspaceInput[] + connectOrCreate?: ApiKeyCreateOrConnectWithoutWorkspaceInput | ApiKeyCreateOrConnectWithoutWorkspaceInput[] + upsert?: ApiKeyUpsertWithWhereUniqueWithoutWorkspaceInput | ApiKeyUpsertWithWhereUniqueWithoutWorkspaceInput[] + createMany?: ApiKeyCreateManyWorkspaceInputEnvelope + set?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[] + disconnect?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[] + delete?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[] + connect?: ApiKeyWhereUniqueInput | ApiKeyWhereUniqueInput[] + update?: ApiKeyUpdateWithWhereUniqueWithoutWorkspaceInput | ApiKeyUpdateWithWhereUniqueWithoutWorkspaceInput[] + updateMany?: ApiKeyUpdateManyWithWhereWithoutWorkspaceInput | ApiKeyUpdateManyWithWhereWithoutWorkspaceInput[] + deleteMany?: ApiKeyScalarWhereInput | ApiKeyScalarWhereInput[] + } + + export type UserCreateNestedOneWithoutMembershipsInput = { + create?: XOR + connectOrCreate?: UserCreateOrConnectWithoutMembershipsInput + connect?: UserWhereUniqueInput + } + + export type WorkspaceCreateNestedOneWithoutMembersInput = { + create?: XOR + connectOrCreate?: WorkspaceCreateOrConnectWithoutMembersInput + connect?: WorkspaceWhereUniqueInput + } + + export type EnumWorkspaceMemberStatusFieldUpdateOperationsInput = { + set?: $Enums.WorkspaceMemberStatus + } + + export type EnumWorkspaceMemberRoleFieldUpdateOperationsInput = { + set?: $Enums.WorkspaceMemberRole + } + + export type UserUpdateOneRequiredWithoutMembershipsNestedInput = { + create?: XOR + connectOrCreate?: UserCreateOrConnectWithoutMembershipsInput + upsert?: UserUpsertWithoutMembershipsInput + connect?: UserWhereUniqueInput + update?: XOR, UserUncheckedUpdateWithoutMembershipsInput> + } + + export type WorkspaceUpdateOneRequiredWithoutMembersNestedInput = { + create?: XOR + connectOrCreate?: WorkspaceCreateOrConnectWithoutMembersInput + upsert?: WorkspaceUpsertWithoutMembersInput + connect?: WorkspaceWhereUniqueInput + update?: XOR, WorkspaceUncheckedUpdateWithoutMembersInput> + } + + export type WorkspaceCreateNestedOneWithoutApiKeysInput = { + create?: XOR + connectOrCreate?: WorkspaceCreateOrConnectWithoutApiKeysInput + connect?: WorkspaceWhereUniqueInput + } + + export type EnumApiKeyRoleFieldUpdateOperationsInput = { + set?: $Enums.ApiKeyRole + } + + export type NullableDateTimeFieldUpdateOperationsInput = { + set?: Date | string | null + } + + export type WorkspaceUpdateOneRequiredWithoutApiKeysNestedInput = { + create?: XOR + connectOrCreate?: WorkspaceCreateOrConnectWithoutApiKeysInput + upsert?: WorkspaceUpsertWithoutApiKeysInput + connect?: WorkspaceWhereUniqueInput + update?: XOR, WorkspaceUncheckedUpdateWithoutApiKeysInput> + } + + export type EnumVerificationTypeFieldUpdateOperationsInput = { + set?: $Enums.VerificationType + } + + export type NestedStringFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> + in?: string[] | ListStringFieldRefInput<$PrismaModel> + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + not?: NestedStringFilter<$PrismaModel> | string + } + + export type NestedBoolFilter<$PrismaModel = never> = { + equals?: boolean | BooleanFieldRefInput<$PrismaModel> + not?: NestedBoolFilter<$PrismaModel> | boolean + } + + export type NestedStringNullableFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> | null + in?: string[] | ListStringFieldRefInput<$PrismaModel> | null + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + not?: NestedStringNullableFilter<$PrismaModel> | string | null + } + + export type NestedDateTimeFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeFilter<$PrismaModel> | Date | string + } + + export type NestedStringWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> + in?: string[] | ListStringFieldRefInput<$PrismaModel> + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + not?: NestedStringWithAggregatesFilter<$PrismaModel> | string + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedStringFilter<$PrismaModel> + _max?: NestedStringFilter<$PrismaModel> + } + + export type NestedIntFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> + in?: number[] | ListIntFieldRefInput<$PrismaModel> + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntFilter<$PrismaModel> | number + } + + export type NestedBoolWithAggregatesFilter<$PrismaModel = never> = { + equals?: boolean | BooleanFieldRefInput<$PrismaModel> + not?: NestedBoolWithAggregatesFilter<$PrismaModel> | boolean + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedBoolFilter<$PrismaModel> + _max?: NestedBoolFilter<$PrismaModel> + } + + export type NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: string | StringFieldRefInput<$PrismaModel> | null + in?: string[] | ListStringFieldRefInput<$PrismaModel> | null + notIn?: string[] | ListStringFieldRefInput<$PrismaModel> | null + lt?: string | StringFieldRefInput<$PrismaModel> + lte?: string | StringFieldRefInput<$PrismaModel> + gt?: string | StringFieldRefInput<$PrismaModel> + gte?: string | StringFieldRefInput<$PrismaModel> + contains?: string | StringFieldRefInput<$PrismaModel> + startsWith?: string | StringFieldRefInput<$PrismaModel> + endsWith?: string | StringFieldRefInput<$PrismaModel> + not?: NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null + _count?: NestedIntNullableFilter<$PrismaModel> + _min?: NestedStringNullableFilter<$PrismaModel> + _max?: NestedStringNullableFilter<$PrismaModel> + } + + export type NestedIntNullableFilter<$PrismaModel = never> = { + equals?: number | IntFieldRefInput<$PrismaModel> | null + in?: number[] | ListIntFieldRefInput<$PrismaModel> | null + notIn?: number[] | ListIntFieldRefInput<$PrismaModel> | null + lt?: number | IntFieldRefInput<$PrismaModel> + lte?: number | IntFieldRefInput<$PrismaModel> + gt?: number | IntFieldRefInput<$PrismaModel> + gte?: number | IntFieldRefInput<$PrismaModel> + not?: NestedIntNullableFilter<$PrismaModel> | number | null + } + + export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeWithAggregatesFilter<$PrismaModel> | Date | string + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedDateTimeFilter<$PrismaModel> + _max?: NestedDateTimeFilter<$PrismaModel> + } + export type NestedJsonNullableFilter<$PrismaModel = never> = + | PatchUndefined< + Either>, Exclude>, 'path'>>, + Required> + > + | OptionalFlat>, 'path'>> + + export type NestedJsonNullableFilterBase<$PrismaModel = never> = { + equals?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter + path?: string[] + string_contains?: string | StringFieldRefInput<$PrismaModel> + string_starts_with?: string | StringFieldRefInput<$PrismaModel> + string_ends_with?: string | StringFieldRefInput<$PrismaModel> + array_contains?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null + array_starts_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null + array_ends_with?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | null + lt?: InputJsonValue | JsonFieldRefInput<$PrismaModel> + lte?: InputJsonValue | JsonFieldRefInput<$PrismaModel> + gt?: InputJsonValue | JsonFieldRefInput<$PrismaModel> + gte?: InputJsonValue | JsonFieldRefInput<$PrismaModel> + not?: InputJsonValue | JsonFieldRefInput<$PrismaModel> | JsonNullValueFilter + } + + export type NestedEnumWorkspaceMemberStatusFilter<$PrismaModel = never> = { + equals?: $Enums.WorkspaceMemberStatus | EnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> + in?: $Enums.WorkspaceMemberStatus[] | ListEnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> + notIn?: $Enums.WorkspaceMemberStatus[] | ListEnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> + not?: NestedEnumWorkspaceMemberStatusFilter<$PrismaModel> | $Enums.WorkspaceMemberStatus + } + + export type NestedEnumWorkspaceMemberRoleFilter<$PrismaModel = never> = { + equals?: $Enums.WorkspaceMemberRole | EnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> + in?: $Enums.WorkspaceMemberRole[] | ListEnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> + notIn?: $Enums.WorkspaceMemberRole[] | ListEnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> + not?: NestedEnumWorkspaceMemberRoleFilter<$PrismaModel> | $Enums.WorkspaceMemberRole + } + + export type NestedEnumWorkspaceMemberStatusWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.WorkspaceMemberStatus | EnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> + in?: $Enums.WorkspaceMemberStatus[] | ListEnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> + notIn?: $Enums.WorkspaceMemberStatus[] | ListEnumWorkspaceMemberStatusFieldRefInput<$PrismaModel> + not?: NestedEnumWorkspaceMemberStatusWithAggregatesFilter<$PrismaModel> | $Enums.WorkspaceMemberStatus + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedEnumWorkspaceMemberStatusFilter<$PrismaModel> + _max?: NestedEnumWorkspaceMemberStatusFilter<$PrismaModel> + } + + export type NestedEnumWorkspaceMemberRoleWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.WorkspaceMemberRole | EnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> + in?: $Enums.WorkspaceMemberRole[] | ListEnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> + notIn?: $Enums.WorkspaceMemberRole[] | ListEnumWorkspaceMemberRoleFieldRefInput<$PrismaModel> + not?: NestedEnumWorkspaceMemberRoleWithAggregatesFilter<$PrismaModel> | $Enums.WorkspaceMemberRole + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedEnumWorkspaceMemberRoleFilter<$PrismaModel> + _max?: NestedEnumWorkspaceMemberRoleFilter<$PrismaModel> + } + + export type NestedEnumApiKeyRoleFilter<$PrismaModel = never> = { + equals?: $Enums.ApiKeyRole | EnumApiKeyRoleFieldRefInput<$PrismaModel> + in?: $Enums.ApiKeyRole[] | ListEnumApiKeyRoleFieldRefInput<$PrismaModel> + notIn?: $Enums.ApiKeyRole[] | ListEnumApiKeyRoleFieldRefInput<$PrismaModel> + not?: NestedEnumApiKeyRoleFilter<$PrismaModel> | $Enums.ApiKeyRole + } + + export type NestedDateTimeNullableFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null + } + + export type NestedEnumApiKeyRoleWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.ApiKeyRole | EnumApiKeyRoleFieldRefInput<$PrismaModel> + in?: $Enums.ApiKeyRole[] | ListEnumApiKeyRoleFieldRefInput<$PrismaModel> + notIn?: $Enums.ApiKeyRole[] | ListEnumApiKeyRoleFieldRefInput<$PrismaModel> + not?: NestedEnumApiKeyRoleWithAggregatesFilter<$PrismaModel> | $Enums.ApiKeyRole + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedEnumApiKeyRoleFilter<$PrismaModel> + _max?: NestedEnumApiKeyRoleFilter<$PrismaModel> + } + + export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = { + equals?: Date | string | DateTimeFieldRefInput<$PrismaModel> | null + in?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + notIn?: Date[] | string[] | ListDateTimeFieldRefInput<$PrismaModel> | null + lt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + lte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gt?: Date | string | DateTimeFieldRefInput<$PrismaModel> + gte?: Date | string | DateTimeFieldRefInput<$PrismaModel> + not?: NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null + _count?: NestedIntNullableFilter<$PrismaModel> + _min?: NestedDateTimeNullableFilter<$PrismaModel> + _max?: NestedDateTimeNullableFilter<$PrismaModel> + } + + export type NestedEnumVerificationTypeFilter<$PrismaModel = never> = { + equals?: $Enums.VerificationType | EnumVerificationTypeFieldRefInput<$PrismaModel> + in?: $Enums.VerificationType[] | ListEnumVerificationTypeFieldRefInput<$PrismaModel> + notIn?: $Enums.VerificationType[] | ListEnumVerificationTypeFieldRefInput<$PrismaModel> + not?: NestedEnumVerificationTypeFilter<$PrismaModel> | $Enums.VerificationType + } + + export type NestedEnumVerificationTypeWithAggregatesFilter<$PrismaModel = never> = { + equals?: $Enums.VerificationType | EnumVerificationTypeFieldRefInput<$PrismaModel> + in?: $Enums.VerificationType[] | ListEnumVerificationTypeFieldRefInput<$PrismaModel> + notIn?: $Enums.VerificationType[] | ListEnumVerificationTypeFieldRefInput<$PrismaModel> + not?: NestedEnumVerificationTypeWithAggregatesFilter<$PrismaModel> | $Enums.VerificationType + _count?: NestedIntFilter<$PrismaModel> + _min?: NestedEnumVerificationTypeFilter<$PrismaModel> + _max?: NestedEnumVerificationTypeFilter<$PrismaModel> + } + + export type WorkspaceCreateWithoutOwnerInput = { + ref?: string + accessKeyId: string + name: string + createdAt?: Date | string + updatedAt?: Date | string + members?: WorkspaceMemberCreateNestedManyWithoutWorkspaceInput + apiKeys?: ApiKeyCreateNestedManyWithoutWorkspaceInput + } + + export type WorkspaceUncheckedCreateWithoutOwnerInput = { + ref?: string + accessKeyId: string + name: string + createdAt?: Date | string + updatedAt?: Date | string + members?: WorkspaceMemberUncheckedCreateNestedManyWithoutWorkspaceInput + apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutWorkspaceInput + } + + export type WorkspaceCreateOrConnectWithoutOwnerInput = { + where: WorkspaceWhereUniqueInput + create: XOR + } + + export type WorkspaceCreateManyOwnerInputEnvelope = { + data: WorkspaceCreateManyOwnerInput | WorkspaceCreateManyOwnerInput[] + skipDuplicates?: boolean + } + + export type WorkspaceMemberCreateWithoutUserInput = { + ref?: string + status?: $Enums.WorkspaceMemberStatus + role?: $Enums.WorkspaceMemberRole + createdAt?: Date | string + updatedAt?: Date | string + workspace: WorkspaceCreateNestedOneWithoutMembersInput + } + + export type WorkspaceMemberUncheckedCreateWithoutUserInput = { + ref?: string + status?: $Enums.WorkspaceMemberStatus + role?: $Enums.WorkspaceMemberRole + createdAt?: Date | string + updatedAt?: Date | string + workspaceRef: string + } + + export type WorkspaceMemberCreateOrConnectWithoutUserInput = { + where: WorkspaceMemberWhereUniqueInput + create: XOR + } + + export type WorkspaceMemberCreateManyUserInputEnvelope = { + data: WorkspaceMemberCreateManyUserInput | WorkspaceMemberCreateManyUserInput[] + skipDuplicates?: boolean + } + + export type WorkspaceUpsertWithWhereUniqueWithoutOwnerInput = { + where: WorkspaceWhereUniqueInput + update: XOR + create: XOR + } + + export type WorkspaceUpdateWithWhereUniqueWithoutOwnerInput = { + where: WorkspaceWhereUniqueInput + data: XOR + } + + export type WorkspaceUpdateManyWithWhereWithoutOwnerInput = { + where: WorkspaceScalarWhereInput + data: XOR + } + + export type WorkspaceScalarWhereInput = { + AND?: WorkspaceScalarWhereInput | WorkspaceScalarWhereInput[] + OR?: WorkspaceScalarWhereInput[] + NOT?: WorkspaceScalarWhereInput | WorkspaceScalarWhereInput[] + ref?: StringFilter<"Workspace"> | string + accessKeyId?: StringFilter<"Workspace"> | string + name?: StringFilter<"Workspace"> | string + createdAt?: DateTimeFilter<"Workspace"> | Date | string + updatedAt?: DateTimeFilter<"Workspace"> | Date | string + ownerRef?: StringFilter<"Workspace"> | string + } + + export type WorkspaceMemberUpsertWithWhereUniqueWithoutUserInput = { + where: WorkspaceMemberWhereUniqueInput + update: XOR + create: XOR + } + + export type WorkspaceMemberUpdateWithWhereUniqueWithoutUserInput = { + where: WorkspaceMemberWhereUniqueInput + data: XOR + } + + export type WorkspaceMemberUpdateManyWithWhereWithoutUserInput = { + where: WorkspaceMemberScalarWhereInput + data: XOR + } + + export type WorkspaceMemberScalarWhereInput = { + AND?: WorkspaceMemberScalarWhereInput | WorkspaceMemberScalarWhereInput[] + OR?: WorkspaceMemberScalarWhereInput[] + NOT?: WorkspaceMemberScalarWhereInput | WorkspaceMemberScalarWhereInput[] + ref?: StringFilter<"WorkspaceMember"> | string + status?: EnumWorkspaceMemberStatusFilter<"WorkspaceMember"> | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleFilter<"WorkspaceMember"> | $Enums.WorkspaceMemberRole + createdAt?: DateTimeFilter<"WorkspaceMember"> | Date | string + updatedAt?: DateTimeFilter<"WorkspaceMember"> | Date | string + userRef?: StringFilter<"WorkspaceMember"> | string + workspaceRef?: StringFilter<"WorkspaceMember"> | string + } + + export type UserCreateWithoutOwnedWorkspacesInput = { + ref?: string + accessKeyId: string + name: string + email: string + emailVerified?: boolean + password: string + phoneNumber?: string | null + phoneNumberVerified?: boolean + avatar?: string | null + createdAt?: Date | string + updatedAt?: Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + memberships?: WorkspaceMemberCreateNestedManyWithoutUserInput + } + + export type UserUncheckedCreateWithoutOwnedWorkspacesInput = { + ref?: string + accessKeyId: string + name: string + email: string + emailVerified?: boolean + password: string + phoneNumber?: string | null + phoneNumberVerified?: boolean + avatar?: string | null + createdAt?: Date | string + updatedAt?: Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + memberships?: WorkspaceMemberUncheckedCreateNestedManyWithoutUserInput + } + + export type UserCreateOrConnectWithoutOwnedWorkspacesInput = { + where: UserWhereUniqueInput + create: XOR + } + + export type WorkspaceMemberCreateWithoutWorkspaceInput = { + ref?: string + status?: $Enums.WorkspaceMemberStatus + role?: $Enums.WorkspaceMemberRole + createdAt?: Date | string + updatedAt?: Date | string + user: UserCreateNestedOneWithoutMembershipsInput + } + + export type WorkspaceMemberUncheckedCreateWithoutWorkspaceInput = { + ref?: string + status?: $Enums.WorkspaceMemberStatus + role?: $Enums.WorkspaceMemberRole + createdAt?: Date | string + updatedAt?: Date | string + userRef: string + } + + export type WorkspaceMemberCreateOrConnectWithoutWorkspaceInput = { + where: WorkspaceMemberWhereUniqueInput + create: XOR + } + + export type WorkspaceMemberCreateManyWorkspaceInputEnvelope = { + data: WorkspaceMemberCreateManyWorkspaceInput | WorkspaceMemberCreateManyWorkspaceInput[] + skipDuplicates?: boolean + } + + export type ApiKeyCreateWithoutWorkspaceInput = { + ref?: string + accessKeyId: string + accessKeySecret: string + role?: $Enums.ApiKeyRole + createdAt?: Date | string + updatedAt?: Date | string + expiresAt?: Date | string | null + } + + export type ApiKeyUncheckedCreateWithoutWorkspaceInput = { + ref?: string + accessKeyId: string + accessKeySecret: string + role?: $Enums.ApiKeyRole + createdAt?: Date | string + updatedAt?: Date | string + expiresAt?: Date | string | null + } + + export type ApiKeyCreateOrConnectWithoutWorkspaceInput = { + where: ApiKeyWhereUniqueInput + create: XOR + } + + export type ApiKeyCreateManyWorkspaceInputEnvelope = { + data: ApiKeyCreateManyWorkspaceInput | ApiKeyCreateManyWorkspaceInput[] + skipDuplicates?: boolean + } + + export type UserUpsertWithoutOwnedWorkspacesInput = { + update: XOR + create: XOR + where?: UserWhereInput + } + + export type UserUpdateToOneWithWhereWithoutOwnedWorkspacesInput = { + where?: UserWhereInput + data: XOR + } + + export type UserUpdateWithoutOwnedWorkspacesInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + email?: StringFieldUpdateOperationsInput | string + emailVerified?: BoolFieldUpdateOperationsInput | boolean + password?: StringFieldUpdateOperationsInput | string + phoneNumber?: NullableStringFieldUpdateOperationsInput | string | null + phoneNumberVerified?: BoolFieldUpdateOperationsInput | boolean + avatar?: NullableStringFieldUpdateOperationsInput | string | null + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + memberships?: WorkspaceMemberUpdateManyWithoutUserNestedInput + } + + export type UserUncheckedUpdateWithoutOwnedWorkspacesInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + email?: StringFieldUpdateOperationsInput | string + emailVerified?: BoolFieldUpdateOperationsInput | boolean + password?: StringFieldUpdateOperationsInput | string + phoneNumber?: NullableStringFieldUpdateOperationsInput | string | null + phoneNumberVerified?: BoolFieldUpdateOperationsInput | boolean + avatar?: NullableStringFieldUpdateOperationsInput | string | null + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + memberships?: WorkspaceMemberUncheckedUpdateManyWithoutUserNestedInput + } + + export type WorkspaceMemberUpsertWithWhereUniqueWithoutWorkspaceInput = { + where: WorkspaceMemberWhereUniqueInput + update: XOR + create: XOR + } + + export type WorkspaceMemberUpdateWithWhereUniqueWithoutWorkspaceInput = { + where: WorkspaceMemberWhereUniqueInput + data: XOR + } + + export type WorkspaceMemberUpdateManyWithWhereWithoutWorkspaceInput = { + where: WorkspaceMemberScalarWhereInput + data: XOR + } + + export type ApiKeyUpsertWithWhereUniqueWithoutWorkspaceInput = { + where: ApiKeyWhereUniqueInput + update: XOR + create: XOR + } + + export type ApiKeyUpdateWithWhereUniqueWithoutWorkspaceInput = { + where: ApiKeyWhereUniqueInput + data: XOR + } + + export type ApiKeyUpdateManyWithWhereWithoutWorkspaceInput = { + where: ApiKeyScalarWhereInput + data: XOR + } + + export type ApiKeyScalarWhereInput = { + AND?: ApiKeyScalarWhereInput | ApiKeyScalarWhereInput[] + OR?: ApiKeyScalarWhereInput[] + NOT?: ApiKeyScalarWhereInput | ApiKeyScalarWhereInput[] + ref?: StringFilter<"ApiKey"> | string + accessKeyId?: StringFilter<"ApiKey"> | string + accessKeySecret?: StringFilter<"ApiKey"> | string + role?: EnumApiKeyRoleFilter<"ApiKey"> | $Enums.ApiKeyRole + createdAt?: DateTimeFilter<"ApiKey"> | Date | string + updatedAt?: DateTimeFilter<"ApiKey"> | Date | string + expiresAt?: DateTimeNullableFilter<"ApiKey"> | Date | string | null + workspaceRef?: StringFilter<"ApiKey"> | string + } + + export type UserCreateWithoutMembershipsInput = { + ref?: string + accessKeyId: string + name: string + email: string + emailVerified?: boolean + password: string + phoneNumber?: string | null + phoneNumberVerified?: boolean + avatar?: string | null + createdAt?: Date | string + updatedAt?: Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + ownedWorkspaces?: WorkspaceCreateNestedManyWithoutOwnerInput + } + + export type UserUncheckedCreateWithoutMembershipsInput = { + ref?: string + accessKeyId: string + name: string + email: string + emailVerified?: boolean + password: string + phoneNumber?: string | null + phoneNumberVerified?: boolean + avatar?: string | null + createdAt?: Date | string + updatedAt?: Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + ownedWorkspaces?: WorkspaceUncheckedCreateNestedManyWithoutOwnerInput + } + + export type UserCreateOrConnectWithoutMembershipsInput = { + where: UserWhereUniqueInput + create: XOR + } + + export type WorkspaceCreateWithoutMembersInput = { + ref?: string + accessKeyId: string + name: string + createdAt?: Date | string + updatedAt?: Date | string + owner: UserCreateNestedOneWithoutOwnedWorkspacesInput + apiKeys?: ApiKeyCreateNestedManyWithoutWorkspaceInput + } + + export type WorkspaceUncheckedCreateWithoutMembersInput = { + ref?: string + accessKeyId: string + name: string + createdAt?: Date | string + updatedAt?: Date | string + ownerRef: string + apiKeys?: ApiKeyUncheckedCreateNestedManyWithoutWorkspaceInput + } + + export type WorkspaceCreateOrConnectWithoutMembersInput = { + where: WorkspaceWhereUniqueInput + create: XOR + } + + export type UserUpsertWithoutMembershipsInput = { + update: XOR + create: XOR + where?: UserWhereInput + } + + export type UserUpdateToOneWithWhereWithoutMembershipsInput = { + where?: UserWhereInput + data: XOR + } + + export type UserUpdateWithoutMembershipsInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + email?: StringFieldUpdateOperationsInput | string + emailVerified?: BoolFieldUpdateOperationsInput | boolean + password?: StringFieldUpdateOperationsInput | string + phoneNumber?: NullableStringFieldUpdateOperationsInput | string | null + phoneNumberVerified?: BoolFieldUpdateOperationsInput | boolean + avatar?: NullableStringFieldUpdateOperationsInput | string | null + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + ownedWorkspaces?: WorkspaceUpdateManyWithoutOwnerNestedInput + } + + export type UserUncheckedUpdateWithoutMembershipsInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + email?: StringFieldUpdateOperationsInput | string + emailVerified?: BoolFieldUpdateOperationsInput | boolean + password?: StringFieldUpdateOperationsInput | string + phoneNumber?: NullableStringFieldUpdateOperationsInput | string | null + phoneNumberVerified?: BoolFieldUpdateOperationsInput | boolean + avatar?: NullableStringFieldUpdateOperationsInput | string | null + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + extended?: NullableJsonNullValueInput | InputJsonValue + ownedWorkspaces?: WorkspaceUncheckedUpdateManyWithoutOwnerNestedInput + } + + export type WorkspaceUpsertWithoutMembersInput = { + update: XOR + create: XOR + where?: WorkspaceWhereInput + } + + export type WorkspaceUpdateToOneWithWhereWithoutMembersInput = { + where?: WorkspaceWhereInput + data: XOR + } + + export type WorkspaceUpdateWithoutMembersInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + owner?: UserUpdateOneRequiredWithoutOwnedWorkspacesNestedInput + apiKeys?: ApiKeyUpdateManyWithoutWorkspaceNestedInput + } + + export type WorkspaceUncheckedUpdateWithoutMembersInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + ownerRef?: StringFieldUpdateOperationsInput | string + apiKeys?: ApiKeyUncheckedUpdateManyWithoutWorkspaceNestedInput + } + + export type WorkspaceCreateWithoutApiKeysInput = { + ref?: string + accessKeyId: string + name: string + createdAt?: Date | string + updatedAt?: Date | string + owner: UserCreateNestedOneWithoutOwnedWorkspacesInput + members?: WorkspaceMemberCreateNestedManyWithoutWorkspaceInput + } + + export type WorkspaceUncheckedCreateWithoutApiKeysInput = { + ref?: string + accessKeyId: string + name: string + createdAt?: Date | string + updatedAt?: Date | string + ownerRef: string + members?: WorkspaceMemberUncheckedCreateNestedManyWithoutWorkspaceInput + } + + export type WorkspaceCreateOrConnectWithoutApiKeysInput = { + where: WorkspaceWhereUniqueInput + create: XOR + } + + export type WorkspaceUpsertWithoutApiKeysInput = { + update: XOR + create: XOR + where?: WorkspaceWhereInput + } + + export type WorkspaceUpdateToOneWithWhereWithoutApiKeysInput = { + where?: WorkspaceWhereInput + data: XOR + } + + export type WorkspaceUpdateWithoutApiKeysInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + owner?: UserUpdateOneRequiredWithoutOwnedWorkspacesNestedInput + members?: WorkspaceMemberUpdateManyWithoutWorkspaceNestedInput + } + + export type WorkspaceUncheckedUpdateWithoutApiKeysInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + ownerRef?: StringFieldUpdateOperationsInput | string + members?: WorkspaceMemberUncheckedUpdateManyWithoutWorkspaceNestedInput + } + + export type WorkspaceCreateManyOwnerInput = { + ref?: string + accessKeyId: string + name: string + createdAt?: Date | string + updatedAt?: Date | string + } + + export type WorkspaceMemberCreateManyUserInput = { + ref?: string + status?: $Enums.WorkspaceMemberStatus + role?: $Enums.WorkspaceMemberRole + createdAt?: Date | string + updatedAt?: Date | string + workspaceRef: string + } + + export type WorkspaceUpdateWithoutOwnerInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + members?: WorkspaceMemberUpdateManyWithoutWorkspaceNestedInput + apiKeys?: ApiKeyUpdateManyWithoutWorkspaceNestedInput + } + + export type WorkspaceUncheckedUpdateWithoutOwnerInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + members?: WorkspaceMemberUncheckedUpdateManyWithoutWorkspaceNestedInput + apiKeys?: ApiKeyUncheckedUpdateManyWithoutWorkspaceNestedInput + } + + export type WorkspaceUncheckedUpdateManyWithoutOwnerInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + name?: StringFieldUpdateOperationsInput | string + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + } + + export type WorkspaceMemberUpdateWithoutUserInput = { + ref?: StringFieldUpdateOperationsInput | string + status?: EnumWorkspaceMemberStatusFieldUpdateOperationsInput | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleFieldUpdateOperationsInput | $Enums.WorkspaceMemberRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + workspace?: WorkspaceUpdateOneRequiredWithoutMembersNestedInput + } + + export type WorkspaceMemberUncheckedUpdateWithoutUserInput = { + ref?: StringFieldUpdateOperationsInput | string + status?: EnumWorkspaceMemberStatusFieldUpdateOperationsInput | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleFieldUpdateOperationsInput | $Enums.WorkspaceMemberRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + workspaceRef?: StringFieldUpdateOperationsInput | string + } + + export type WorkspaceMemberUncheckedUpdateManyWithoutUserInput = { + ref?: StringFieldUpdateOperationsInput | string + status?: EnumWorkspaceMemberStatusFieldUpdateOperationsInput | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleFieldUpdateOperationsInput | $Enums.WorkspaceMemberRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + workspaceRef?: StringFieldUpdateOperationsInput | string + } + + export type WorkspaceMemberCreateManyWorkspaceInput = { + ref?: string + status?: $Enums.WorkspaceMemberStatus + role?: $Enums.WorkspaceMemberRole + createdAt?: Date | string + updatedAt?: Date | string + userRef: string + } + + export type ApiKeyCreateManyWorkspaceInput = { + ref?: string + accessKeyId: string + accessKeySecret: string + role?: $Enums.ApiKeyRole + createdAt?: Date | string + updatedAt?: Date | string + expiresAt?: Date | string | null + } + + export type WorkspaceMemberUpdateWithoutWorkspaceInput = { + ref?: StringFieldUpdateOperationsInput | string + status?: EnumWorkspaceMemberStatusFieldUpdateOperationsInput | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleFieldUpdateOperationsInput | $Enums.WorkspaceMemberRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + user?: UserUpdateOneRequiredWithoutMembershipsNestedInput + } + + export type WorkspaceMemberUncheckedUpdateWithoutWorkspaceInput = { + ref?: StringFieldUpdateOperationsInput | string + status?: EnumWorkspaceMemberStatusFieldUpdateOperationsInput | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleFieldUpdateOperationsInput | $Enums.WorkspaceMemberRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + userRef?: StringFieldUpdateOperationsInput | string + } + + export type WorkspaceMemberUncheckedUpdateManyWithoutWorkspaceInput = { + ref?: StringFieldUpdateOperationsInput | string + status?: EnumWorkspaceMemberStatusFieldUpdateOperationsInput | $Enums.WorkspaceMemberStatus + role?: EnumWorkspaceMemberRoleFieldUpdateOperationsInput | $Enums.WorkspaceMemberRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + userRef?: StringFieldUpdateOperationsInput | string + } + + export type ApiKeyUpdateWithoutWorkspaceInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + accessKeySecret?: StringFieldUpdateOperationsInput | string + role?: EnumApiKeyRoleFieldUpdateOperationsInput | $Enums.ApiKeyRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + } + + export type ApiKeyUncheckedUpdateWithoutWorkspaceInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + accessKeySecret?: StringFieldUpdateOperationsInput | string + role?: EnumApiKeyRoleFieldUpdateOperationsInput | $Enums.ApiKeyRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + } + + export type ApiKeyUncheckedUpdateManyWithoutWorkspaceInput = { + ref?: StringFieldUpdateOperationsInput | string + accessKeyId?: StringFieldUpdateOperationsInput | string + accessKeySecret?: StringFieldUpdateOperationsInput | string + role?: EnumApiKeyRoleFieldUpdateOperationsInput | $Enums.ApiKeyRole + createdAt?: DateTimeFieldUpdateOperationsInput | Date | string + updatedAt?: DateTimeFieldUpdateOperationsInput | Date | string + expiresAt?: NullableDateTimeFieldUpdateOperationsInput | Date | string | null + } + + + + /** + * Batch Payload for updateMany & deleteMany & createMany + */ + + export type BatchPayload = { + count: number + } + + /** + * DMMF + */ + export const dmmf: runtime.BaseDMMF +} \ No newline at end of file diff --git a/mods/identity/src/generated/@prisma/client/index.js b/mods/identity/src/generated/@prisma/client/index.js new file mode 100644 index 000000000..cea2aa385 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/index.js @@ -0,0 +1,289 @@ + +Object.defineProperty(exports, "__esModule", { value: true }); + +const { + PrismaClientKnownRequestError, + PrismaClientUnknownRequestError, + PrismaClientRustPanicError, + PrismaClientInitializationError, + PrismaClientValidationError, + getPrismaClient, + sqltag, + empty, + join, + raw, + skip, + Decimal, + Debug, + objectEnumValues, + makeStrictEnum, + Extensions, + warnOnce, + defineDmmfProperty, + Public, + getRuntime +} = require('./runtime/library.js') + + +const Prisma = {} + +exports.Prisma = Prisma +exports.$Enums = {} + +/** + * Prisma Client JS version: 6.1.0 + * Query Engine version: 11f085a2012c0f4778414c8db2651556ee0ef959 + */ +Prisma.prismaVersion = { + client: "6.1.0", + engine: "11f085a2012c0f4778414c8db2651556ee0ef959" +} + +Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError; +Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError +Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError +Prisma.PrismaClientInitializationError = PrismaClientInitializationError +Prisma.PrismaClientValidationError = PrismaClientValidationError +Prisma.Decimal = Decimal + +/** + * Re-export of sql-template-tag + */ +Prisma.sql = sqltag +Prisma.empty = empty +Prisma.join = join +Prisma.raw = raw +Prisma.validator = Public.validator + +/** +* Extensions +*/ +Prisma.getExtensionContext = Extensions.getExtensionContext +Prisma.defineExtension = Extensions.defineExtension + +/** + * Shorthand utilities for JSON filtering + */ +Prisma.DbNull = objectEnumValues.instances.DbNull +Prisma.JsonNull = objectEnumValues.instances.JsonNull +Prisma.AnyNull = objectEnumValues.instances.AnyNull + +Prisma.NullTypes = { + DbNull: objectEnumValues.classes.DbNull, + JsonNull: objectEnumValues.classes.JsonNull, + AnyNull: objectEnumValues.classes.AnyNull +} + + + + + const path = require('path') + +/** + * Enums + */ +exports.Prisma.TransactionIsolationLevel = makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); + +exports.Prisma.UserScalarFieldEnum = { + ref: 'ref', + accessKeyId: 'accessKeyId', + name: 'name', + email: 'email', + emailVerified: 'emailVerified', + password: 'password', + phoneNumber: 'phoneNumber', + phoneNumberVerified: 'phoneNumberVerified', + avatar: 'avatar', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + extended: 'extended' +}; + +exports.Prisma.WorkspaceScalarFieldEnum = { + ref: 'ref', + accessKeyId: 'accessKeyId', + name: 'name', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + ownerRef: 'ownerRef' +}; + +exports.Prisma.WorkspaceMemberScalarFieldEnum = { + ref: 'ref', + status: 'status', + role: 'role', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + userRef: 'userRef', + workspaceRef: 'workspaceRef' +}; + +exports.Prisma.ApiKeyScalarFieldEnum = { + ref: 'ref', + accessKeyId: 'accessKeyId', + accessKeySecret: 'accessKeySecret', + role: 'role', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + expiresAt: 'expiresAt', + workspaceRef: 'workspaceRef' +}; + +exports.Prisma.VerificationCodeScalarFieldEnum = { + ref: 'ref', + type: 'type', + code: 'code', + value: 'value', + expiresAt: 'expiresAt', + createdAt: 'createdAt' +}; + +exports.Prisma.SortOrder = { + asc: 'asc', + desc: 'desc' +}; + +exports.Prisma.NullableJsonNullValueInput = { + DbNull: Prisma.DbNull, + JsonNull: Prisma.JsonNull +}; + +exports.Prisma.QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; + +exports.Prisma.JsonNullValueFilter = { + DbNull: Prisma.DbNull, + JsonNull: Prisma.JsonNull, + AnyNull: Prisma.AnyNull +}; + +exports.Prisma.NullsOrder = { + first: 'first', + last: 'last' +}; +exports.VerificationType = exports.$Enums.VerificationType = { + EMAIL: 'EMAIL', + PHONE: 'PHONE' +}; + +exports.WorkspaceMemberStatus = exports.$Enums.WorkspaceMemberStatus = { + PENDING: 'PENDING', + ACTIVE: 'ACTIVE' +}; + +exports.WorkspaceMemberRole = exports.$Enums.WorkspaceMemberRole = { + OWNER: 'OWNER', + ADMIN: 'ADMIN', + USER: 'USER' +}; + +exports.ApiKeyRole = exports.$Enums.ApiKeyRole = { + WORKSPACE_ADMIN: 'WORKSPACE_ADMIN' +}; + +exports.Prisma.ModelName = { + User: 'User', + Workspace: 'Workspace', + WorkspaceMember: 'WorkspaceMember', + ApiKey: 'ApiKey', + VerificationCode: 'VerificationCode' +}; +/** + * Create the Client + */ +const config = { + "generator": { + "name": "client", + "provider": { + "fromEnvVar": null, + "value": "prisma-client-js" + }, + "output": { + "value": "/Users/psanders/Projects/fonoster/mods/identity/src/generated/@prisma/client", + "fromEnvVar": null + }, + "config": { + "engineType": "library" + }, + "binaryTargets": [ + { + "fromEnvVar": null, + "value": "darwin-arm64", + "native": true + } + ], + "previewFeatures": [], + "sourceFilePath": "/Users/psanders/Projects/fonoster/mods/identity/schema.prisma", + "isCustomOutput": true + }, + "relativeEnvPaths": { + "rootEnvPath": null, + "schemaEnvPath": "../../../../../../.env" + }, + "relativePath": "../../../..", + "clientVersion": "6.1.0", + "engineVersion": "11f085a2012c0f4778414c8db2651556ee0ef959", + "datasourceNames": [ + "db" + ], + "activeProvider": "postgresql", + "postinstall": false, + "inlineDatasources": { + "db": { + "url": { + "fromEnvVar": "APISERVER_IDENTITY_DATABASE_URL", + "value": null + } + } + }, + "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"src/generated/@prisma/client\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n url = env(\"APISERVER_IDENTITY_DATABASE_URL\")\n}\n\nmodel User {\n ref String @id @default(uuid())\n accessKeyId String @unique @map(\"access_key_id\") @db.VarChar(255)\n name String @db.VarChar(60)\n email String @unique @db.VarChar(255)\n emailVerified Boolean @default(false) @map(\"email_verified\")\n password String @map(\"password_hash\") /// @encrypted\n phoneNumber String? @map(\"phone_number\") @db.VarChar(20)\n phoneNumberVerified Boolean @default(false) @map(\"phone_number_verified\")\n avatar String? @db.VarChar(255)\n createdAt DateTime @default(now()) @map(\"created_at\") @db.Timestamptz(3)\n updatedAt DateTime @default(now()) @map(\"updated_at\") @db.Timestamptz(3)\n extended Json?\n\n // Relations\n ownedWorkspaces Workspace[] // Workspaces owned by the user\n memberships WorkspaceMember[] // Workspaces the user is a member of\n\n // Indexes and maps\n @@index([email], type: Hash)\n @@index([accessKeyId], type: Hash)\n @@map(\"users\")\n}\n\nmodel Workspace {\n ref String @id @default(uuid())\n accessKeyId String @unique @map(\"access_key_id\") @db.VarChar(255)\n name String @db.VarChar(60)\n createdAt DateTime @default(now()) @map(\"created_at\") @db.Timestamptz(3)\n updatedAt DateTime @default(now()) @map(\"updated_at\") @db.Timestamptz(3)\n\n // Relations\n owner User @relation(fields: [ownerRef], references: [ref], onDelete: Cascade)\n ownerRef String @map(\"owner_ref\")\n members WorkspaceMember[]\n apiKeys ApiKey[]\n\n // Indexes and maps\n @@index([accessKeyId], type: Hash)\n @@index([ownerRef], type: Hash)\n @@map(\"workspaces\")\n}\n\nmodel WorkspaceMember {\n ref String @id @default(uuid())\n status WorkspaceMemberStatus @default(PENDING)\n role WorkspaceMemberRole @default(USER)\n createdAt DateTime @default(now()) @map(\"created_at\") @db.Timestamptz(3)\n updatedAt DateTime @default(now()) @map(\"updated_at\") @db.Timestamptz(3)\n\n // Relations\n user User @relation(fields: [userRef], references: [ref], onDelete: Cascade)\n userRef String @map(\"user_ref\")\n workspace Workspace @relation(fields: [workspaceRef], references: [ref], onDelete: Cascade)\n workspaceRef String @map(\"workspace_ref\")\n\n @@unique([userRef, workspaceRef])\n @@map(\"workspace_members\")\n}\n\nmodel ApiKey {\n ref String @id @default(uuid())\n accessKeyId String @unique @map(\"access_key_id\") @db.VarChar(255)\n accessKeySecret String @map(\"access_key_secret\") @db.VarChar(255) /// @encrypted\n role ApiKeyRole @default(WORKSPACE_ADMIN)\n createdAt DateTime @default(now()) @map(\"created_at\") @db.Timestamptz(3)\n updatedAt DateTime @default(now()) @map(\"updated_at\") @db.Timestamptz(3)\n expiresAt DateTime? @map(\"expires_at\") @db.Timestamptz(3)\n\n // Relations\n workspace Workspace @relation(fields: [workspaceRef], references: [ref], onDelete: Cascade)\n workspaceRef String @map(\"workspace_ref\")\n\n // Indexes and maps\n @@index([accessKeyId], type: Hash)\n @@index([workspaceRef], type: Hash)\n @@map(\"api_keys\")\n}\n\nmodel VerificationCode {\n ref String @id @default(uuid())\n type VerificationType\n code String @db.VarChar(6)\n value String @db.VarChar(255)\n expiresAt DateTime @map(\"expires_at\") @db.Timestamptz(3)\n createdAt DateTime @default(now()) @map(\"created_at\") @db.Timestamptz(3)\n\n // Indexes and maps\n @@index([code], type: Hash)\n @@map(\"verification_codes\")\n}\n\nenum VerificationType {\n EMAIL\n PHONE\n}\n\nenum WorkspaceMemberStatus {\n PENDING\n ACTIVE\n\n @@map(\"workspace_member_status\")\n}\n\nenum WorkspaceMemberRole {\n OWNER\n ADMIN\n USER\n\n @@map(\"workspace_member_role\")\n}\n\nenum ApiKeyRole {\n WORKSPACE_ADMIN\n\n @@map(\"api_key_role\")\n}\n", + "inlineSchemaHash": "1098b113241be08edaeab5102f7a2c1c0269e3855b8d7ab7f3f41f61fa060583", + "copyEngine": true +} + +const fs = require('fs') + +config.dirname = __dirname +if (!fs.existsSync(path.join(__dirname, 'schema.prisma'))) { + const alternativePaths = [ + "mods/identity/src/generated/@prisma/client", + "identity/src/generated/@prisma/client", + ] + + const alternativePath = alternativePaths.find((altPath) => { + return fs.existsSync(path.join(process.cwd(), altPath, 'schema.prisma')) + }) ?? alternativePaths[0] + + config.dirname = path.join(process.cwd(), alternativePath) + config.isBundled = true +} + +config.runtimeDataModel = JSON.parse("{\"models\":{\"User\":{\"dbName\":\"users\",\"schema\":null,\"fields\":[{\"name\":\"ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessKeyId\",\"dbName\":\"access_key_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"60\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"emailVerified\",\"dbName\":\"email_verified\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"password\",\"dbName\":\"password_hash\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false,\"documentation\":\"@encrypted\"},{\"name\":\"phoneNumber\",\"dbName\":\"phone_number\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"20\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"phoneNumberVerified\",\"dbName\":\"phone_number_verified\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"avatar\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"extended\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Json\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ownedWorkspaces\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Workspace\",\"nativeType\":null,\"relationName\":\"UserToWorkspace\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"memberships\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"WorkspaceMember\",\"nativeType\":null,\"relationName\":\"UserToWorkspaceMember\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"Workspace\":{\"dbName\":\"workspaces\",\"schema\":null,\"fields\":[{\"name\":\"ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessKeyId\",\"dbName\":\"access_key_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"60\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"owner\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserToWorkspace\",\"relationFromFields\":[\"ownerRef\"],\"relationToFields\":[\"ref\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ownerRef\",\"dbName\":\"owner_ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"members\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"WorkspaceMember\",\"nativeType\":null,\"relationName\":\"WorkspaceToWorkspaceMember\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"apiKeys\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"ApiKey\",\"nativeType\":null,\"relationName\":\"ApiKeyToWorkspace\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"WorkspaceMember\":{\"dbName\":\"workspace_members\",\"schema\":null,\"fields\":[{\"name\":\"ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"WorkspaceMemberStatus\",\"nativeType\":null,\"default\":\"PENDING\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"role\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"WorkspaceMemberRole\",\"nativeType\":null,\"default\":\"USER\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"User\",\"nativeType\":null,\"relationName\":\"UserToWorkspaceMember\",\"relationFromFields\":[\"userRef\"],\"relationToFields\":[\"ref\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"userRef\",\"dbName\":\"user_ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"workspace\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Workspace\",\"nativeType\":null,\"relationName\":\"WorkspaceToWorkspaceMember\",\"relationFromFields\":[\"workspaceRef\"],\"relationToFields\":[\"ref\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"workspaceRef\",\"dbName\":\"workspace_ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"userRef\",\"workspaceRef\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"userRef\",\"workspaceRef\"]}],\"isGenerated\":false},\"ApiKey\":{\"dbName\":\"api_keys\",\"schema\":null,\"fields\":[{\"name\":\"ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessKeyId\",\"dbName\":\"access_key_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"accessKeySecret\",\"dbName\":\"access_key_secret\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false,\"documentation\":\"@encrypted\"},{\"name\":\"role\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"ApiKeyRole\",\"nativeType\":null,\"default\":\"WORKSPACE_ADMIN\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updatedAt\",\"dbName\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expiresAt\",\"dbName\":\"expires_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"workspace\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Workspace\",\"nativeType\":null,\"relationName\":\"ApiKeyToWorkspace\",\"relationFromFields\":[\"workspaceRef\"],\"relationToFields\":[\"ref\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"workspaceRef\",\"dbName\":\"workspace_ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"VerificationCode\":{\"dbName\":\"verification_codes\",\"schema\":null,\"fields\":[{\"name\":\"ref\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"type\",\"kind\":\"enum\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"VerificationType\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"code\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"6\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"value\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":[\"VarChar\",[\"255\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"expiresAt\",\"dbName\":\"expires_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdAt\",\"dbName\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"DateTime\",\"nativeType\":[\"Timestamptz\",[\"3\"]],\"default\":{\"name\":\"now\",\"args\":[]},\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false}},\"enums\":{\"VerificationType\":{\"values\":[{\"name\":\"EMAIL\",\"dbName\":null},{\"name\":\"PHONE\",\"dbName\":null}],\"dbName\":null},\"WorkspaceMemberStatus\":{\"values\":[{\"name\":\"PENDING\",\"dbName\":null},{\"name\":\"ACTIVE\",\"dbName\":null}],\"dbName\":\"workspace_member_status\"},\"WorkspaceMemberRole\":{\"values\":[{\"name\":\"OWNER\",\"dbName\":null},{\"name\":\"ADMIN\",\"dbName\":null},{\"name\":\"USER\",\"dbName\":null}],\"dbName\":\"workspace_member_role\"},\"ApiKeyRole\":{\"values\":[{\"name\":\"WORKSPACE_ADMIN\",\"dbName\":null}],\"dbName\":\"api_key_role\"}},\"types\":{}}") +defineDmmfProperty(exports.Prisma, config.runtimeDataModel) +config.engineWasm = undefined + + +const { warnEnvConflicts } = require('./runtime/library.js') + +warnEnvConflicts({ + rootEnvPath: config.relativeEnvPaths.rootEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.rootEnvPath), + schemaEnvPath: config.relativeEnvPaths.schemaEnvPath && path.resolve(config.dirname, config.relativeEnvPaths.schemaEnvPath) +}) + +const PrismaClient = getPrismaClient(config) +exports.PrismaClient = PrismaClient +Object.assign(exports, Prisma) + +// file annotations for bundling tools to include these files +path.join(__dirname, "libquery_engine-darwin-arm64.dylib.node"); +path.join(process.cwd(), "mods/identity/src/generated/@prisma/client/libquery_engine-darwin-arm64.dylib.node") +// file annotations for bundling tools to include these files +path.join(__dirname, "schema.prisma"); +path.join(process.cwd(), "mods/identity/src/generated/@prisma/client/schema.prisma") diff --git a/mods/identity/src/generated/@prisma/client/libquery_engine-darwin-arm64.dylib.node b/mods/identity/src/generated/@prisma/client/libquery_engine-darwin-arm64.dylib.node new file mode 100755 index 000000000..c721c7565 Binary files /dev/null and b/mods/identity/src/generated/@prisma/client/libquery_engine-darwin-arm64.dylib.node differ diff --git a/mods/identity/src/generated/@prisma/client/package.json b/mods/identity/src/generated/@prisma/client/package.json new file mode 100644 index 000000000..738ec9be4 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/package.json @@ -0,0 +1,97 @@ +{ + "name": "prisma-client-dd5b7453817aa395eb1a2c82908ba5600a22513c89c6774e29f457d7d2171137", + "main": "index.js", + "types": "index.d.ts", + "browser": "index-browser.js", + "exports": { + "./package.json": "./package.json", + ".": { + "require": { + "node": "./index.js", + "edge-light": "./wasm.js", + "workerd": "./wasm.js", + "worker": "./wasm.js", + "browser": "./index-browser.js", + "default": "./index.js" + }, + "import": { + "node": "./index.js", + "edge-light": "./wasm.js", + "workerd": "./wasm.js", + "worker": "./wasm.js", + "browser": "./index-browser.js", + "default": "./index.js" + }, + "default": "./index.js" + }, + "./edge": { + "types": "./edge.d.ts", + "require": "./edge.js", + "import": "./edge.js", + "default": "./edge.js" + }, + "./react-native": { + "types": "./react-native.d.ts", + "require": "./react-native.js", + "import": "./react-native.js", + "default": "./react-native.js" + }, + "./extension": { + "types": "./extension.d.ts", + "require": "./extension.js", + "import": "./extension.js", + "default": "./extension.js" + }, + "./index-browser": { + "types": "./index.d.ts", + "require": "./index-browser.js", + "import": "./index-browser.js", + "default": "./index-browser.js" + }, + "./index": { + "types": "./index.d.ts", + "require": "./index.js", + "import": "./index.js", + "default": "./index.js" + }, + "./wasm": { + "types": "./wasm.d.ts", + "require": "./wasm.js", + "import": "./wasm.js", + "default": "./wasm.js" + }, + "./runtime/library": { + "types": "./runtime/library.d.ts", + "require": "./runtime/library.js", + "import": "./runtime/library.js", + "default": "./runtime/library.js" + }, + "./runtime/binary": { + "types": "./runtime/binary.d.ts", + "require": "./runtime/binary.js", + "import": "./runtime/binary.js", + "default": "./runtime/binary.js" + }, + "./generator-build": { + "require": "./generator-build/index.js", + "import": "./generator-build/index.js", + "default": "./generator-build/index.js" + }, + "./sql": { + "require": { + "types": "./sql.d.ts", + "node": "./sql.js", + "default": "./sql.js" + }, + "import": { + "types": "./sql.d.ts", + "node": "./sql.mjs", + "default": "./sql.mjs" + }, + "default": "./sql.js" + }, + "./*": "./*" + }, + "version": "6.1.0", + "sideEffects": false +} \ No newline at end of file diff --git a/mods/identity/src/generated/@prisma/client/runtime/edge-esm.js b/mods/identity/src/generated/@prisma/client/runtime/edge-esm.js new file mode 100644 index 000000000..7c1a2e756 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/runtime/edge-esm.js @@ -0,0 +1,31 @@ +var ea=Object.create;var Kr=Object.defineProperty;var ta=Object.getOwnPropertyDescriptor;var ra=Object.getOwnPropertyNames;var na=Object.getPrototypeOf,ia=Object.prototype.hasOwnProperty;var Ae=(e,t)=>()=>(e&&(t=e(e=0)),t);var _e=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),zr=(e,t)=>{for(var r in t)Kr(e,r,{get:t[r],enumerable:!0})},oa=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ra(t))!ia.call(e,i)&&i!==r&&Kr(e,i,{get:()=>t[i],enumerable:!(n=ta(t,i))||n.enumerable});return e};var Le=(e,t,r)=>(r=e!=null?ea(na(e)):{},oa(t||!e||!e.__esModule?Kr(r,"default",{value:e,enumerable:!0}):r,e));var y,u=Ae(()=>{"use strict";y={nextTick:(e,...t)=>{setTimeout(()=>{e(...t)},0)},env:{},version:"",cwd:()=>"/",stderr:{},argv:["/bin/node"]}});var b,c=Ae(()=>{"use strict";b=globalThis.performance??(()=>{let e=Date.now();return{now:()=>Date.now()-e}})()});var E,p=Ae(()=>{"use strict";E=()=>{};E.prototype=E});var m=Ae(()=>{"use strict"});var hi=_e(Ke=>{"use strict";f();u();c();p();m();var ri=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),sa=ri(e=>{"use strict";e.byteLength=l,e.toByteArray=g,e.fromByteArray=S;var t=[],r=[],n=typeof Uint8Array<"u"?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(o=0,s=i.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var M=A.indexOf("=");M===-1&&(M=R);var N=M===R?0:4-M%4;return[M,N]}function l(A){var R=a(A),M=R[0],N=R[1];return(M+N)*3/4-N}function d(A,R,M){return(R+M)*3/4-M}function g(A){var R,M=a(A),N=M[0],B=M[1],D=new n(d(A,N,B)),I=0,ie=B>0?N-4:N,J;for(J=0;J>16&255,D[I++]=R>>8&255,D[I++]=R&255;return B===2&&(R=r[A.charCodeAt(J)]<<2|r[A.charCodeAt(J+1)]>>4,D[I++]=R&255),B===1&&(R=r[A.charCodeAt(J)]<<10|r[A.charCodeAt(J+1)]<<4|r[A.charCodeAt(J+2)]>>2,D[I++]=R>>8&255,D[I++]=R&255),D}function h(A){return t[A>>18&63]+t[A>>12&63]+t[A>>6&63]+t[A&63]}function v(A,R,M){for(var N,B=[],D=R;Die?ie:I+D));return N===1?(R=A[M-1],B.push(t[R>>2]+t[R<<4&63]+"==")):N===2&&(R=(A[M-2]<<8)+A[M-1],B.push(t[R>>10]+t[R>>4&63]+t[R<<2&63]+"=")),B.join("")}}),aa=ri(e=>{e.read=function(t,r,n,i,o){var s,a,l=o*8-i-1,d=(1<>1,h=-7,v=n?o-1:0,S=n?-1:1,A=t[r+v];for(v+=S,s=A&(1<<-h)-1,A>>=-h,h+=l;h>0;s=s*256+t[r+v],v+=S,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=i;h>0;a=a*256+t[r+v],v+=S,h-=8);if(s===0)s=1-g;else{if(s===d)return a?NaN:(A?-1:1)*(1/0);a=a+Math.pow(2,i),s=s-g}return(A?-1:1)*a*Math.pow(2,s-i)},e.write=function(t,r,n,i,o,s){var a,l,d,g=s*8-o-1,h=(1<>1,S=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,A=i?0:s-1,R=i?1:-1,M=r<0||r===0&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(l=isNaN(r)?1:0,a=h):(a=Math.floor(Math.log(r)/Math.LN2),r*(d=Math.pow(2,-a))<1&&(a--,d*=2),a+v>=1?r+=S/d:r+=S*Math.pow(2,1-v),r*d>=2&&(a++,d/=2),a+v>=h?(l=0,a=h):a+v>=1?(l=(r*d-1)*Math.pow(2,o),a=a+v):(l=r*Math.pow(2,v-1)*Math.pow(2,o),a=0));o>=8;t[n+A]=l&255,A+=R,l/=256,o-=8);for(a=a<0;t[n+A]=a&255,A+=R,a/=256,g-=8);t[n+A-R]|=M*128}}),Yr=sa(),We=aa(),Zn=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ke.Buffer=T;Ke.SlowBuffer=fa;Ke.INSPECT_MAX_BYTES=50;var or=2147483647;Ke.kMaxLength=or;T.TYPED_ARRAY_SUPPORT=la();!T.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function la(){try{let e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch{return!1}}Object.defineProperty(T.prototype,"parent",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.buffer}});Object.defineProperty(T.prototype,"offset",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.byteOffset}});function be(e){if(e>or)throw new RangeError('The value "'+e+'" is invalid for option "size"');let t=new Uint8Array(e);return Object.setPrototypeOf(t,T.prototype),t}function T(e,t,r){if(typeof e=="number"){if(typeof t=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return en(e)}return ni(e,t,r)}T.poolSize=8192;function ni(e,t,r){if(typeof e=="string")return ca(e,t);if(ArrayBuffer.isView(e))return pa(e);if(e==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(me(e,ArrayBuffer)||e&&me(e.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(me(e,SharedArrayBuffer)||e&&me(e.buffer,SharedArrayBuffer)))return oi(e,t,r);if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=e.valueOf&&e.valueOf();if(n!=null&&n!==e)return T.from(n,t,r);let i=ma(e);if(i)return i;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]=="function")return T.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}T.from=function(e,t,r){return ni(e,t,r)};Object.setPrototypeOf(T.prototype,Uint8Array.prototype);Object.setPrototypeOf(T,Uint8Array);function ii(e){if(typeof e!="number")throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function ua(e,t,r){return ii(e),e<=0?be(e):t!==void 0?typeof r=="string"?be(e).fill(t,r):be(e).fill(t):be(e)}T.alloc=function(e,t,r){return ua(e,t,r)};function en(e){return ii(e),be(e<0?0:tn(e)|0)}T.allocUnsafe=function(e){return en(e)};T.allocUnsafeSlow=function(e){return en(e)};function ca(e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!T.isEncoding(t))throw new TypeError("Unknown encoding: "+t);let r=si(e,t)|0,n=be(r),i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}function Zr(e){let t=e.length<0?0:tn(e.length)|0,r=be(t);for(let n=0;n=or)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+or.toString(16)+" bytes");return e|0}function fa(e){return+e!=e&&(e=0),T.alloc(+e)}T.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==T.prototype};T.compare=function(e,t){if(me(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),me(t,Uint8Array)&&(t=T.from(t,t.offset,t.byteLength)),!T.isBuffer(e)||!T.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let r=e.length,n=t.length;for(let i=0,o=Math.min(r,n);in.length?(T.isBuffer(o)||(o=T.from(o)),o.copy(n,i)):Uint8Array.prototype.set.call(n,o,i);else if(T.isBuffer(o))o.copy(n,i);else throw new TypeError('"list" argument must be an Array of Buffers');i+=o.length}return n};function si(e,t){if(T.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||me(e,ArrayBuffer))return e.byteLength;if(typeof e!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);let r=e.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Xr(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return gi(e).length;default:if(i)return n?-1:Xr(e).length;t=(""+t).toLowerCase(),i=!0}}T.byteLength=si;function da(e,t,r){let n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return Ta(this,t,r);case"utf8":case"utf-8":return li(this,t,r);case"ascii":return Pa(this,t,r);case"latin1":case"binary":return va(this,t,r);case"base64":return ba(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ca(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}T.prototype._isBuffer=!0;function Be(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}T.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tt&&(e+=" ... "),""};Zn&&(T.prototype[Zn]=T.prototype.inspect);T.prototype.compare=function(e,t,r,n,i){if(me(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),!T.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(t===void 0&&(t=0),r===void 0&&(r=e?e.length:0),n===void 0&&(n=0),i===void 0&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;let o=i-n,s=r-t,a=Math.min(o,s),l=this.slice(n,i),d=e.slice(t,r);for(let g=0;g2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,nn(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=T.from(t,n)),T.isBuffer(t))return t.length===0?-1:Xn(e,t,r,n,i);if(typeof t=="number")return t=t&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):Xn(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function Xn(e,t,r,n,i){let o=1,s=e.length,a=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;o=2,s/=2,a/=2,r/=2}function l(g,h){return o===1?g[h]:g.readUInt16BE(h*o)}let d;if(i){let g=-1;for(d=r;ds&&(r=s-a),d=r;d>=0;d--){let g=!0;for(let h=0;hi&&(n=i)):n=i;let o=t.length;n>o/2&&(n=o/2);let s;for(s=0;s>>0,isFinite(r)?(r=r>>>0,n===void 0&&(n="utf8")):(n=r,r=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let i=this.length-t;if((r===void 0||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return ga(this,e,t,r);case"utf8":case"utf-8":return ha(this,e,t,r);case"ascii":case"latin1":case"binary":return ya(this,e,t,r);case"base64":return wa(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ea(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}};T.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ba(e,t,r){return t===0&&r===e.length?Yr.fromByteArray(e):Yr.fromByteArray(e.slice(t,r))}function li(e,t,r){r=Math.min(e.length,r);let n=[],i=t;for(;i239?4:o>223?3:o>191?2:1;if(i+a<=r){let l,d,g,h;switch(a){case 1:o<128&&(s=o);break;case 2:l=e[i+1],(l&192)===128&&(h=(o&31)<<6|l&63,h>127&&(s=h));break;case 3:l=e[i+1],d=e[i+2],(l&192)===128&&(d&192)===128&&(h=(o&15)<<12|(l&63)<<6|d&63,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:l=e[i+1],d=e[i+2],g=e[i+3],(l&192)===128&&(d&192)===128&&(g&192)===128&&(h=(o&15)<<18|(l&63)<<12|(d&63)<<6|g&63,h>65535&&h<1114112&&(s=h))}}s===null?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),i+=a}return xa(n)}var ei=4096;function xa(e){let t=e.length;if(t<=ei)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn)&&(r=n);let i="";for(let o=t;or&&(e=r),t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),tr)throw new RangeError("Trying to access beyond buffer length")}T.prototype.readUintLE=T.prototype.readUIntLE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n};T.prototype.readUint8=T.prototype.readUInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]};T.prototype.readUint16LE=T.prototype.readUInt16LE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]|this[e+1]<<8};T.prototype.readUint16BE=T.prototype.readUInt16BE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]<<8|this[e+1]};T.prototype.readUint32LE=T.prototype.readUInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};T.prototype.readUint32BE=T.prototype.readUInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};T.prototype.readBigUInt64LE=Re(function(e){e=e>>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&Et(e,this.length-8);let n=t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,i=this[++e]+this[++e]*2**8+this[++e]*2**16+r*2**24;return BigInt(n)+(BigInt(i)<>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&Et(e,this.length-8);let n=t*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],i=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+r;return(BigInt(n)<>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o=i&&(n-=Math.pow(2,8*t)),n};T.prototype.readIntBE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=t,i=1,o=this[e+--n];for(;n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o};T.prototype.readInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};T.prototype.readInt16LE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e]|this[e+1]<<8;return r&32768?r|4294901760:r};T.prototype.readInt16BE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e+1]|this[e]<<8;return r&32768?r|4294901760:r};T.prototype.readInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};T.prototype.readInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};T.prototype.readBigInt64LE=Re(function(e){e=e>>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&Et(e,this.length-8);let n=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(r<<24);return(BigInt(n)<>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&Et(e,this.length-8);let n=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(n)<>>0,t||W(e,4,this.length),We.read(this,e,!0,23,4)};T.prototype.readFloatBE=function(e,t){return e=e>>>0,t||W(e,4,this.length),We.read(this,e,!1,23,4)};T.prototype.readDoubleLE=function(e,t){return e=e>>>0,t||W(e,8,this.length),We.read(this,e,!0,52,8)};T.prototype.readDoubleBE=function(e,t){return e=e>>>0,t||W(e,8,this.length),We.read(this,e,!1,52,8)};function te(e,t,r,n,i,o){if(!T.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}T.prototype.writeUintLE=T.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;te(this,e,t,r,s,0)}let i=1,o=0;for(this[t]=e&255;++o>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;te(this,e,t,r,s,0)}let i=r-1,o=1;for(this[t+i]=e&255;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r};T.prototype.writeUint8=T.prototype.writeUInt8=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,1,255,0),this[t]=e&255,t+1};T.prototype.writeUint16LE=T.prototype.writeUInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeUint16BE=T.prototype.writeUInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeUint32LE=T.prototype.writeUInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4};T.prototype.writeUint32BE=T.prototype.writeUInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};function ui(e,t,r,n,i){di(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,r}function ci(e,t,r,n,i){di(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o=o>>8,e[r+6]=o,o=o>>8,e[r+5]=o,o=o>>8,e[r+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s=s>>8,e[r+2]=s,s=s>>8,e[r+1]=s,s=s>>8,e[r]=s,r+8}T.prototype.writeBigUInt64LE=Re(function(e,t=0){return ui(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeBigUInt64BE=Re(function(e,t=0){return ci(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);te(this,e,t,r,a-1,-a)}let i=0,o=1,s=0;for(this[t]=e&255;++i>0)-s&255;return t+r};T.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);te(this,e,t,r,a-1,-a)}let i=r-1,o=1,s=0;for(this[t+i]=e&255;--i>=0&&(o*=256);)e<0&&s===0&&this[t+i+1]!==0&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+r};T.prototype.writeInt8=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=e&255,t+1};T.prototype.writeInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4};T.prototype.writeInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};T.prototype.writeBigInt64LE=Re(function(e,t=0){return ui(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});T.prototype.writeBigInt64BE=Re(function(e,t=0){return ci(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function pi(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function mi(e,t,r,n,i){return t=+t,r=r>>>0,i||pi(e,t,r,4,34028234663852886e22,-34028234663852886e22),We.write(e,t,r,n,23,4),r+4}T.prototype.writeFloatLE=function(e,t,r){return mi(this,e,t,!0,r)};T.prototype.writeFloatBE=function(e,t,r){return mi(this,e,t,!1,r)};function fi(e,t,r,n,i){return t=+t,r=r>>>0,i||pi(e,t,r,8,17976931348623157e292,-17976931348623157e292),We.write(e,t,r,n,52,8),r+8}T.prototype.writeDoubleLE=function(e,t,r){return fi(this,e,t,!0,r)};T.prototype.writeDoubleBE=function(e,t,r){return fi(this,e,t,!1,r)};T.prototype.copy=function(e,t,r,n){if(!T.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),!n&&n!==0&&(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>0,r=r===void 0?this.length:r>>>0,e||(e=0);let i;if(typeof e=="number")for(i=t;i2**32?i=ti(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=ti(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);function ti(e){let t="",r=e.length,n=e[0]==="-"?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function Aa(e,t,r){He(t,"offset"),(e[t]===void 0||e[t+r]===void 0)&&Et(t,e.length-(r+1))}function di(e,t,r,n,i,o){if(e>r||e3?t===0||t===BigInt(0)?a=`>= 0${s} and < 2${s} ** ${(o+1)*8}${s}`:a=`>= -(2${s} ** ${(o+1)*8-1}${s}) and < 2 ** ${(o+1)*8-1}${s}`:a=`>= ${t}${s} and <= ${r}${s}`,new Qe.ERR_OUT_OF_RANGE("value",a,e)}Aa(n,i,o)}function He(e,t){if(typeof e!="number")throw new Qe.ERR_INVALID_ARG_TYPE(t,"number",e)}function Et(e,t,r){throw Math.floor(e)!==e?(He(e,r),new Qe.ERR_OUT_OF_RANGE(r||"offset","an integer",e)):t<0?new Qe.ERR_BUFFER_OUT_OF_BOUNDS:new Qe.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}var Ra=/[^+/0-9A-Za-z-_]/g;function Sa(e){if(e=e.split("=")[0],e=e.trim().replace(Ra,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function Xr(e,t){t=t||1/0;let r,n=e.length,i=null,o=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}else if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return o}function Ia(e){let t=[];for(let r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function gi(e){return Yr.toByteArray(Sa(e))}function sr(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function me(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function nn(e){return e!==e}var ka=function(){let e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function Re(e){return typeof BigInt>"u"?Da:e}function Da(){throw new Error("BigInt not supported")}});var w,f=Ae(()=>{"use strict";w=Le(hi())});function Ma(){return!1}var Na,Fa,Pi,vi=Ae(()=>{"use strict";f();u();c();p();m();Na={},Fa={existsSync:Ma,promises:Na},Pi=Fa});function qa(...e){return e.join("/")}function Va(...e){return e.join("/")}var Bi,ja,Ja,xt,Ui=Ae(()=>{"use strict";f();u();c();p();m();Bi="/",ja={sep:Bi},Ja={resolve:qa,posix:ja,join:Va,sep:Bi},xt=Ja});var pr,qi=Ae(()=>{"use strict";f();u();c();p();m();pr=class{constructor(){this.events={}}on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),this}emit(t,...r){return this.events[t]?(this.events[t].forEach(n=>{n(...r)}),!0):!1}}});var ji=_e((sf,Vi)=>{"use strict";f();u();c();p();m();Vi.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var Qi=_e((wf,Gi)=>{"use strict";f();u();c();p();m();Gi.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var Hi=_e((Tf,Wi)=>{"use strict";f();u();c();p();m();var za=Qi();Wi.exports=e=>typeof e=="string"?e.replace(za(),""):e});var yn=_e((ch,po)=>{"use strict";f();u();c();p();m();po.exports=function(){function e(t,r,n,i,o){return tn?n+1:t+1:i===o?r:r+1}return function(t,r){if(t===r)return 0;if(t.length>r.length){var n=t;t=r,r=n}for(var i=t.length,o=r.length;i>0&&t.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s{Vu.exports={name:"@prisma/engines-version",version:"6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"11f085a2012c0f4778414c8db2651556ee0ef959"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.67",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var Bo=_e(()=>{"use strict";f();u();c();p();m()});f();u();c();p();m();var Ei={};zr(Ei,{defineExtension:()=>yi,getExtensionContext:()=>wi});f();u();c();p();m();f();u();c();p();m();function yi(e){return typeof e=="function"?e:t=>t.$extends(e)}f();u();c();p();m();function wi(e){return e}var xi={};zr(xi,{validator:()=>bi});f();u();c();p();m();f();u();c();p();m();function bi(...e){return t=>t}f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();var on,Ti,Ci,Ai,Ri=!0;typeof y<"u"&&({FORCE_COLOR:on,NODE_DISABLE_COLORS:Ti,NO_COLOR:Ci,TERM:Ai}=y.env||{},Ri=y.stdout&&y.stdout.isTTY);var _a={enabled:!Ti&&Ci==null&&Ai!=="dumb"&&(on!=null&&on!=="0"||Ri)};function V(e,t){let r=new RegExp(`\\x1b\\[${t}m`,"g"),n=`\x1B[${e}m`,i=`\x1B[${t}m`;return function(o){return!_a.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(r,i+n):o)+i}}var Vp=V(0,0),ar=V(1,22),lr=V(2,22),jp=V(3,23),Si=V(4,24),Jp=V(7,27),Gp=V(8,28),Qp=V(9,29),Wp=V(30,39),ze=V(31,39),Ii=V(32,39),Oi=V(33,39),ki=V(34,39),Hp=V(35,39),Di=V(36,39),Kp=V(37,39),Mi=V(90,39),zp=V(90,39),Yp=V(40,49),Zp=V(41,49),Xp=V(42,49),em=V(43,49),tm=V(44,49),rm=V(45,49),nm=V(46,49),im=V(47,49);f();u();c();p();m();var La=100,Ni=["green","yellow","blue","magenta","cyan","red"],ur=[],Fi=Date.now(),Ba=0,sn=typeof y<"u"?y.env:{};globalThis.DEBUG??=sn.DEBUG??"";globalThis.DEBUG_COLORS??=sn.DEBUG_COLORS?sn.DEBUG_COLORS==="true":!0;var bt={enable(e){typeof e=="string"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG="",e},enabled(e){let t=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),r=t.some(i=>i===""||i[0]==="-"?!1:e.match(RegExp(i.split("*").join(".*")+"$"))),n=t.some(i=>i===""||i[0]!=="-"?!1:e.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return r&&!n},log:(...e)=>{let[t,r,...n]=e;(console.warn??console.log)(`${t} ${r}`,...n)},formatters:{}};function Ua(e){let t={color:Ni[Ba++%Ni.length],enabled:bt.enabled(e),namespace:e,log:bt.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=t;if(n.length!==0&&ur.push([o,...n]),ur.length>La&&ur.shift(),bt.enabled(o)||i){let l=n.map(g=>typeof g=="string"?g:$a(g)),d=`+${Date.now()-Fi}ms`;Fi=Date.now(),a(o,...l,d)}};return new Proxy(r,{get:(n,i)=>t[i],set:(n,i,o)=>t[i]=o})}var _i=new Proxy(Ua,{get:(e,t)=>bt[t],set:(e,t,r)=>bt[t]=r});function $a(e,t=2){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))return"[Circular *]";r.add(i)}else if(typeof i=="bigint")return i.toString();return i},t)}function Li(){ur.length=0}var Z=_i;f();u();c();p();m();f();u();c();p();m();var $i="library";function Pt(e){let t=Ga();return t||(e?.config.engineType==="library"?"library":e?.config.engineType==="binary"?"binary":$i)}function Ga(){let e=y.env.PRISMA_CLIENT_ENGINE_TYPE;return e==="library"?"library":e==="binary"?"binary":void 0}f();u();c();p();m();f();u();c();p();m();var cr;(t=>{let e;(I=>(I.findUnique="findUnique",I.findUniqueOrThrow="findUniqueOrThrow",I.findFirst="findFirst",I.findFirstOrThrow="findFirstOrThrow",I.findMany="findMany",I.create="create",I.createMany="createMany",I.createManyAndReturn="createManyAndReturn",I.update="update",I.updateMany="updateMany",I.upsert="upsert",I.delete="delete",I.deleteMany="deleteMany",I.groupBy="groupBy",I.count="count",I.aggregate="aggregate",I.findRaw="findRaw",I.aggregateRaw="aggregateRaw"))(e=t.ModelAction||={})})(cr||={});var Tt={};zr(Tt,{error:()=>Ha,info:()=>Wa,log:()=>Qa,query:()=>Ka,should:()=>Ji,tags:()=>vt,warn:()=>an});f();u();c();p();m();var vt={error:ze("prisma:error"),warn:Oi("prisma:warn"),info:Di("prisma:info"),query:ki("prisma:query")},Ji={warn:()=>!y.env.PRISMA_DISABLE_WARNINGS};function Qa(...e){console.log(...e)}function an(e,...t){Ji.warn()&&console.warn(`${vt.warn} ${e}`,...t)}function Wa(e,...t){console.info(`${vt.info} ${e}`,...t)}function Ha(e,...t){console.error(`${vt.error} ${e}`,...t)}function Ka(e,...t){console.log(`${vt.query} ${e}`,...t)}f();u();c();p();m();function xe(e,t){throw new Error(t)}f();u();c();p();m();function ln(e,t){return Object.prototype.hasOwnProperty.call(e,t)}f();u();c();p();m();var un=(e,t)=>e.reduce((r,n)=>(r[t(n)]=n,r),{});f();u();c();p();m();function Ye(e,t){let r={};for(let n of Object.keys(e))r[n]=t(e[n],n);return r}f();u();c();p();m();function cn(e,t){if(e.length===0)return;let r=e[0];for(let n=1;n{Ki.has(e)||(Ki.add(e),an(t,...r))};var G=class e extends Error{constructor(t,r,n){super(t),this.name="PrismaClientInitializationError",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};_(G,"PrismaClientInitializationError");f();u();c();p();m();var oe=class extends Error{constructor(t,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(t),this.name="PrismaClientKnownRequestError",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};_(oe,"PrismaClientKnownRequestError");f();u();c();p();m();var Se=class extends Error{constructor(t,r){super(t),this.name="PrismaClientRustPanicError",this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};_(Se,"PrismaClientRustPanicError");f();u();c();p();m();var se=class extends Error{constructor(t,{clientVersion:r,batchRequestIdx:n}){super(t),this.name="PrismaClientUnknownRequestError",this.clientVersion=r,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};_(se,"PrismaClientUnknownRequestError");f();u();c();p();m();var X=class extends Error{constructor(r,{clientVersion:n}){super(r);this.name="PrismaClientValidationError";this.clientVersion=n}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};_(X,"PrismaClientValidationError");f();u();c();p();m();f();u();c();p();m();var Ze=9e15,De=1e9,pn="0123456789abcdef",dr="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",gr="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",mn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Ze,maxE:Ze,crypto:!1},eo,Pe,F=!0,yr="[DecimalError] ",ke=yr+"Invalid argument: ",to=yr+"Precision limit exceeded",ro=yr+"crypto unavailable",no="[object Decimal]",Y=Math.floor,Q=Math.pow,Ya=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Za=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Xa=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,io=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,pe=1e7,k=7,el=9007199254740991,tl=dr.length-1,fn=gr.length-1,C={toStringTag:no};C.absoluteValue=C.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),O(e)};C.ceil=function(){return O(new this.constructor(this),this.e+1,2)};C.clampedTo=C.clamp=function(e,t){var r,n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(ke+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new i(n)};C.comparedTo=C.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,d=e.s;if(!s||!a)return!l||!d?NaN:l!==d?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-d:0;if(l!==d)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,t=0,r=na[t]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};C.cosine=C.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+k,n.rounding=1,r=rl(n,uo(n,r)),n.precision=e,n.rounding=t,O(Pe==2||Pe==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};C.cubeRoot=C.cbrt=function(){var e,t,r,n,i,o,s,a,l,d,g=this,h=g.constructor;if(!g.isFinite()||g.isZero())return new h(g);for(F=!1,o=g.s*Q(g.s*g,1/3),!o||Math.abs(o)==1/0?(r=K(g.d),e=g.e,(o=(e-r.length+1)%3)&&(r+=o==1||o==-2?"0":"00"),o=Q(r,1/3),e=Y((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?r="5e"+e:(r=o.toExponential(),r=r.slice(0,r.indexOf("e")+1)+e),n=new h(r),n.s=g.s):n=new h(o.toString()),s=(e=h.precision)+3;;)if(a=n,l=a.times(a).times(a),d=l.plus(g),n=$(d.plus(g).times(a),d.plus(l),s+2,1),K(a.d).slice(0,s)===(r=K(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r=="9999"||!i&&r=="4999"){if(!i&&(O(a,e+1,0),a.times(a).times(a).eq(g))){n=a;break}s+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(O(n,e+1,1),t=!n.times(n).times(n).eq(g));break}return F=!0,O(n,e,h.rounding,t)};C.decimalPlaces=C.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-Y(this.e/k))*k,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};C.dividedBy=C.div=function(e){return $(this,new this.constructor(e))};C.dividedToIntegerBy=C.divToInt=function(e){var t=this,r=t.constructor;return O($(t,new r(e),0,1,1),r.precision,r.rounding)};C.equals=C.eq=function(e){return this.cmp(e)===0};C.floor=function(){return O(new this.constructor(this),this.e+1,3)};C.greaterThan=C.gt=function(e){return this.cmp(e)>0};C.greaterThanOrEqualTo=C.gte=function(e){var t=this.cmp(e);return t==1||t===0};C.hyperbolicCosine=C.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/Er(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=Xe(s,1,o.times(t),new s(1),!0);for(var l,d=e,g=new s(8);d--;)l=o.times(o),o=a.minus(l.times(g.minus(l.times(g))));return O(o,s.precision=r,s.rounding=n,!0)};C.hyperbolicSine=C.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=Xe(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/Er(5,e)),i=Xe(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),d=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(d))))}return o.precision=t,o.rounding=r,O(i,t,r,!0)};C.hyperbolicTangent=C.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,$(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};C.inverseCosine=C.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),i=r.precision,o=r.rounding;return n!==-1?n===0?t.isNeg()?ce(r,i,o):new r(0):new r(NaN):t.isZero()?ce(r,i+4,o).times(.5):(r.precision=i+6,r.rounding=1,t=t.asin(),e=ce(r,i+4,o).times(.5),r.precision=i,r.rounding=o,e.minus(t))};C.inverseHyperbolicCosine=C.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,F=!1,r=r.times(r).minus(1).sqrt().plus(r),F=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};C.inverseHyperbolicSine=C.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,F=!1,r=r.times(r).plus(1).sqrt().plus(r),F=!0,n.precision=e,n.rounding=t,r.ln())};C.inverseHyperbolicTangent=C.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?O(new o(i),e,t,!0):(o.precision=r=n-i.e,i=$(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};C.inverseSine=C.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,t!==-1?t===0?(e=ce(o,r+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))};C.inverseTangent=C.atan=function(){var e,t,r,n,i,o,s,a,l,d=this,g=d.constructor,h=g.precision,v=g.rounding;if(d.isFinite()){if(d.isZero())return new g(d);if(d.abs().eq(1)&&h+4<=fn)return s=ce(g,h+4,v).times(.25),s.s=d.s,s}else{if(!d.s)return new g(NaN);if(h+4<=fn)return s=ce(g,h+4,v).times(.5),s.s=d.s,s}for(g.precision=a=h+10,g.rounding=1,r=Math.min(28,a/k+2|0),e=r;e;--e)d=d.div(d.times(d).plus(1).sqrt().plus(1));for(F=!1,t=Math.ceil(a/k),n=1,l=d.times(d),s=new g(d),i=d;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<this.d.length-2};C.isNaN=function(){return!this.s};C.isNegative=C.isNeg=function(){return this.s<0};C.isPositive=C.isPos=function(){return this.s>0};C.isZero=function(){return!!this.d&&this.d[0]===0};C.lessThan=C.lt=function(e){return this.cmp(e)<0};C.lessThanOrEqualTo=C.lte=function(e){return this.cmp(e)<1};C.logarithm=C.log=function(e){var t,r,n,i,o,s,a,l,d=this,g=d.constructor,h=g.precision,v=g.rounding,S=5;if(e==null)e=new g(10),t=!0;else{if(e=new g(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new g(NaN);t=e.eq(10)}if(r=d.d,d.s<0||!r||!r[0]||d.eq(1))return new g(r&&!r[0]?-1/0:d.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10===0;)i/=10;o=i!==1}if(F=!1,a=h+S,s=Oe(d,a),n=t?hr(g,a+10):Oe(e,a),l=$(s,n,a,1),Ct(l.d,i=h,v))do if(a+=10,s=Oe(d,a),n=t?hr(g,a+10):Oe(e,a),l=$(s,n,a,1),!o){+K(l.d).slice(i+1,i+15)+1==1e14&&(l=O(l,h+1,0));break}while(Ct(l.d,i+=10,v));return F=!0,O(l,h,v)};C.minus=C.sub=function(e){var t,r,n,i,o,s,a,l,d,g,h,v,S=this,A=S.constructor;if(e=new A(e),!S.d||!e.d)return!S.s||!e.s?e=new A(NaN):S.d?e.s=-e.s:e=new A(e.d||S.s!==e.s?S:NaN),e;if(S.s!=e.s)return e.s=-e.s,S.plus(e);if(d=S.d,v=e.d,a=A.precision,l=A.rounding,!d[0]||!v[0]){if(v[0])e.s=-e.s;else if(d[0])e=new A(S);else return new A(l===3?-0:0);return F?O(e,a,l):e}if(r=Y(e.e/k),g=Y(S.e/k),d=d.slice(),o=g-r,o){for(h=o<0,h?(t=d,o=-o,s=v.length):(t=v,r=g,s=d.length),n=Math.max(Math.ceil(a/k),s)+2,o>n&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for(n=d.length,s=v.length,h=n0;--n)d[s++]=0;for(n=v.length;n>o;){if(d[--n]s?o+1:s+1,i>s&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for(s=d.length,i=g.length,s-i<0&&(i=s,r=g,g=d,d=r),t=0;i;)t=(d[--i]=d[i]+g[i]+t)/pe|0,d[i]%=pe;for(t&&(d.unshift(t),++n),s=d.length;d[--s]==0;)d.pop();return e.d=d,e.e=wr(d,n),F?O(e,a,l):e};C.precision=C.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(ke+e);return r.d?(t=oo(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};C.round=function(){var e=this,t=e.constructor;return O(new t(e),e.e+1,t.rounding)};C.sine=C.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+k,n.rounding=1,r=il(n,uo(n,r)),n.precision=e,n.rounding=t,O(Pe>2?r.neg():r,e,t,!0)):new n(NaN)};C.squareRoot=C.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,l=s.e,d=s.s,g=s.constructor;if(d!==1||!a||!a[0])return new g(!d||d<0&&(!a||a[0])?NaN:a?s:1/0);for(F=!1,d=Math.sqrt(+s),d==0||d==1/0?(t=K(a),(t.length+l)%2==0&&(t+="0"),d=Math.sqrt(t),l=Y((l+1)/2)-(l<0||l%2),d==1/0?t="5e"+l:(t=d.toExponential(),t=t.slice(0,t.indexOf("e")+1)+l),n=new g(t)):n=new g(d.toString()),r=(l=g.precision)+3;;)if(o=n,n=o.plus($(s,o,r+2,1)).times(.5),K(o.d).slice(0,r)===(t=K(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t=="9999"||!i&&t=="4999"){if(!i&&(O(o,l+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(O(n,l+1,1),e=!n.times(n).eq(s));break}return F=!0,O(n,l,g.rounding,e)};C.tangent=C.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=$(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,O(Pe==2||Pe==4?r.neg():r,e,t,!0)):new n(NaN)};C.times=C.mul=function(e){var t,r,n,i,o,s,a,l,d,g=this,h=g.constructor,v=g.d,S=(e=new h(e)).d;if(e.s*=g.s,!v||!v[0]||!S||!S[0])return new h(!e.s||v&&!v[0]&&!S||S&&!S[0]&&!v?NaN:!v||!S?e.s/0:e.s*0);for(r=Y(g.e/k)+Y(e.e/k),l=v.length,d=S.length,l=0;){for(t=0,i=l+n;i>n;)a=o[i]+S[n]*v[i-n-1]+t,o[i--]=a%pe|0,t=a/pe|0;o[i]=(o[i]+t)%pe|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=wr(o,r),F?O(e,h.precision,h.rounding):e};C.toBinary=function(e,t){return hn(this,2,e,t)};C.toDecimalPlaces=C.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(re(e,0,De),t===void 0?t=n.rounding:re(t,0,8),O(r,e+r.e+1,t))};C.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=fe(n,!0):(re(e,0,De),t===void 0?t=i.rounding:re(t,0,8),n=O(new i(n),e+1,t),r=fe(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r};C.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?r=fe(i):(re(e,0,De),t===void 0?t=o.rounding:re(t,0,8),n=O(new o(i),e+i.e+1,t),r=fe(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r};C.toFraction=function(e){var t,r,n,i,o,s,a,l,d,g,h,v,S=this,A=S.d,R=S.constructor;if(!A)return new R(S);if(d=r=new R(1),n=l=new R(0),t=new R(n),o=t.e=oo(A)-S.e-1,s=o%k,t.d[0]=Q(10,s<0?k+s:s),e==null)e=o>0?t:d;else{if(a=new R(e),!a.isInt()||a.lt(d))throw Error(ke+a);e=a.gt(t)?o>0?t:d:a}for(F=!1,a=new R(K(A)),g=R.precision,R.precision=o=A.length*k*2;h=$(a,t,0,1,1),i=r.plus(h.times(n)),i.cmp(e)!=1;)r=n,n=i,i=d,d=l.plus(h.times(i)),l=i,i=t,t=a.minus(h.times(i)),a=i;return i=$(e.minus(r),n,0,1,1),l=l.plus(i.times(d)),r=r.plus(i.times(n)),l.s=d.s=S.s,v=$(d,n,o,1).minus(S).abs().cmp($(l,r,o,1).minus(S).abs())<1?[d,n]:[l,r],R.precision=g,F=!0,v};C.toHexadecimal=C.toHex=function(e,t){return hn(this,16,e,t)};C.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:re(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(F=!1,r=$(r,e,0,t,1).times(e),F=!0,O(r)):(e.s=r.s,r=e),r};C.toNumber=function(){return+this};C.toOctal=function(e,t){return hn(this,8,e,t)};C.toPower=C.pow=function(e){var t,r,n,i,o,s,a=this,l=a.constructor,d=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(Q(+a,d));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return O(a,n,o);if(t=Y(e.e/k),t>=e.d.length-1&&(r=d<0?-d:d)<=el)return i=so(l,a,r,n),e.s<0?new l(1).div(i):O(i,n,o);if(s=a.s,s<0){if(tl.maxE+1||t0?s/0:0):(F=!1,l.rounding=a.s=1,r=Math.min(12,(t+"").length),i=dn(e.times(Oe(a,n+r)),n),i.d&&(i=O(i,n+5,1),Ct(i.d,n,o)&&(t=n+10,i=O(dn(e.times(Oe(a,t+r)),t),t+5,1),+K(i.d).slice(n+1,n+15)+1==1e14&&(i=O(i,n+1,0)))),i.s=s,F=!0,l.rounding=o,O(i,n,o))};C.toPrecision=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=fe(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(re(e,1,De),t===void 0?t=i.rounding:re(t,0,8),n=O(new i(n),e,t),r=fe(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r};C.toSignificantDigits=C.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(re(e,1,De),t===void 0?t=n.rounding:re(t,0,8)),O(new n(r),e,t)};C.toString=function(){var e=this,t=e.constructor,r=fe(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r};C.truncated=C.trunc=function(){return O(new this.constructor(this),this.e+1,1)};C.valueOf=C.toJSON=function(){var e=this,t=e.constructor,r=fe(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};function K(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;tr)throw Error(ke+e)}function Ct(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=k,i=0):(i=Math.ceil((t+1)/k),t%=k),o=Q(10,k-t),a=e[i]%o|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==Q(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==Q(10,t-3)-1,s}function fr(e,t,r){for(var n,i=[0],o,s=0,a=e.length;sr-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}function rl(e,t){var r,n,i;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),i=(1/Er(4,r)).toString()):(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=Xe(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var $=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function t(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;ai[a]?1:-1;break}return l}function r(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]1;)n.shift()}return function(n,i,o,s,a,l){var d,g,h,v,S,A,R,M,N,B,D,I,ie,J,Qr,rr,wt,Wr,ue,nr,ir=n.constructor,Hr=n.s==i.s?1:-1,z=n.d,q=i.d;if(!z||!z[0]||!q||!q[0])return new ir(!n.s||!i.s||(z?q&&z[0]==q[0]:!q)?NaN:z&&z[0]==0||!q?Hr*0:Hr/0);for(l?(S=1,g=n.e-i.e):(l=pe,S=k,g=Y(n.e/S)-Y(i.e/S)),ue=q.length,wt=z.length,N=new ir(Hr),B=N.d=[],h=0;q[h]==(z[h]||0);h++);if(q[h]>(z[h]||0)&&g--,o==null?(J=o=ir.precision,s=ir.rounding):a?J=o+(n.e-i.e)+1:J=o,J<0)B.push(1),A=!0;else{if(J=J/S+2|0,h=0,ue==1){for(v=0,q=q[0],J++;(h1&&(q=e(q,v,l),z=e(z,v,l),ue=q.length,wt=z.length),rr=ue,D=z.slice(0,ue),I=D.length;I=l/2&&++Wr;do v=0,d=t(q,D,ue,I),d<0?(ie=D[0],ue!=I&&(ie=ie*l+(D[1]||0)),v=ie/Wr|0,v>1?(v>=l&&(v=l-1),R=e(q,v,l),M=R.length,I=D.length,d=t(R,D,M,I),d==1&&(v--,r(R,ue=10;v/=10)h++;N.e=h+g*S-1,O(N,a?o+N.e+1:o,s,A)}return N}}();function O(e,t,r,n){var i,o,s,a,l,d,g,h,v,S=e.constructor;e:if(t!=null){if(h=e.d,!h)return e;for(i=1,a=h[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=k,s=t,g=h[v=0],l=g/Q(10,i-s-1)%10|0;else if(v=Math.ceil((o+1)/k),a=h.length,v>=a)if(n){for(;a++<=v;)h.push(0);g=l=0,i=1,o%=k,s=o-k+1}else break e;else{for(g=a=h[v],i=1;a>=10;a/=10)i++;o%=k,s=o-k+i,l=s<0?0:g/Q(10,i-s-1)%10|0}if(n=n||t<0||h[v+1]!==void 0||(s<0?g:g%Q(10,i-s-1)),d=r<4?(l||n)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||n||r==6&&(o>0?s>0?g/Q(10,i-s):0:h[v-1])%10&1||r==(e.s<0?8:7)),t<1||!h[0])return h.length=0,d?(t-=e.e+1,h[0]=Q(10,(k-t%k)%k),e.e=-t||0):h[0]=e.e=0,e;if(o==0?(h.length=v,a=1,v--):(h.length=v+1,a=Q(10,k-o),h[v]=s>0?(g/Q(10,i-s)%Q(10,s)|0)*a:0),d)for(;;)if(v==0){for(o=1,s=h[0];s>=10;s/=10)o++;for(s=h[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,h[0]==pe&&(h[0]=1));break}else{if(h[v]+=a,h[v]!=pe)break;h[v--]=0,a=1}for(o=h.length;h[--o]===0;)h.pop()}return F&&(e.e>S.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+Ie(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+Ie(-i-1)+o,r&&(n=r-s)>0&&(o+=Ie(n))):i>=s?(o+=Ie(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+Ie(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=Ie(n))),o}function wr(e,t){var r=e[0];for(t*=k;r>=10;r/=10)t++;return t}function hr(e,t,r){if(t>tl)throw F=!0,r&&(e.precision=r),Error(to);return O(new e(dr),t,1,!0)}function ce(e,t,r){if(t>fn)throw Error(to);return O(new e(gr),t,r,!0)}function oo(e){var t=e.length-1,r=t*k+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function Ie(e){for(var t="";e--;)t+="0";return t}function so(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/k+4);for(F=!1;;){if(r%2&&(o=o.times(t),Zi(o.d,s)&&(i=!0)),r=Y(r/2),r===0){r=o.d.length-1,i&&o.d[r]===0&&++o.d[r];break}t=t.times(t),Zi(t.d,s)}return F=!0,o}function Yi(e){return e.d[e.d.length-1]&1}function ao(e,t,r){for(var n,i=new e(t[0]),o=0;++o17)return new v(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(F=!1,l=A):l=t,a=new v(.03125);e.e>-2;)e=e.times(a),h+=5;for(n=Math.log(Q(2,h))/Math.LN10*2+5|0,l+=n,r=o=s=new v(1),v.precision=l;;){if(o=O(o.times(e),l,1),r=r.times(++g),a=s.plus($(o,r,l,1)),K(a.d).slice(0,l)===K(s.d).slice(0,l)){for(i=h;i--;)s=O(s.times(s),l,1);if(t==null)if(d<3&&Ct(s.d,l-n,S,d))v.precision=l+=10,r=o=a=new v(1),g=0,d++;else return O(s,v.precision=A,S,F=!0);else return v.precision=A,s}s=a}}function Oe(e,t){var r,n,i,o,s,a,l,d,g,h,v,S=1,A=10,R=e,M=R.d,N=R.constructor,B=N.rounding,D=N.precision;if(R.s<0||!M||!M[0]||!R.e&&M[0]==1&&M.length==1)return new N(M&&!M[0]?-1/0:R.s!=1?NaN:M?0:R);if(t==null?(F=!1,g=D):g=t,N.precision=g+=A,r=K(M),n=r.charAt(0),Math.abs(o=R.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)R=R.times(e),r=K(R.d),n=r.charAt(0),S++;o=R.e,n>1?(R=new N("0."+r),o++):R=new N(n+"."+r.slice(1))}else return d=hr(N,g+2,D).times(o+""),R=Oe(new N(n+"."+r.slice(1)),g-A).plus(d),N.precision=D,t==null?O(R,D,B,F=!0):R;for(h=R,l=s=R=$(R.minus(1),R.plus(1),g,1),v=O(R.times(R),g,1),i=3;;){if(s=O(s.times(v),g,1),d=l.plus($(s,new N(i),g,1)),K(d.d).slice(0,g)===K(l.d).slice(0,g))if(l=l.times(2),o!==0&&(l=l.plus(hr(N,g+2,D).times(o+""))),l=$(l,new N(S),g,1),t==null)if(Ct(l.d,g-A,B,a))N.precision=g+=A,d=s=R=$(h.minus(1),h.plus(1),g,1),v=O(R.times(R),g,1),i=a=1;else return O(l,N.precision=D,B,F=!0);else return N.precision=D,l;l=d,i+=2}}function lo(e){return String(e.s*e.s/0)}function gn(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(n,i),t){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%k,r<0&&(n+=k),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),io.test(t))return gn(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Za.test(t))r=16,t=t.toLowerCase();else if(Ya.test(t))r=2;else if(Xa.test(t))r=8;else throw Error(ke+t);for(o=t.search(/p/i),o>0?(l=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,n=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=so(n,new n(r),o,o*2)),d=fr(t,r,pe),g=d.length-1,o=g;d[o]===0;--o)d.pop();return o<0?new n(e.s*0):(e.e=wr(d,g),e.d=d,F=!1,s&&(e=$(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?Q(2,l):Ue.pow(2,l))),F=!0,e)}function il(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:Xe(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/Er(5,r)),t=Xe(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function Xe(e,t,r,n,i){var o,s,a,l,d=1,g=e.precision,h=Math.ceil(g/k);for(F=!1,l=r.times(r),a=new e(n);;){if(s=$(a.times(l),new e(t++*t++),g,1),a=i?n.plus(s):n.minus(s),n=$(s.times(l),new e(t++*t++),g,1),s=a.plus(n),s.d[h]!==void 0){for(o=h;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,d++}return F=!0,s.d.length=h+1,s}function Er(e,t){for(var r=e;--t;)r*=e;return r}function uo(e,t){var r,n=t.s<0,i=ce(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return Pe=n?4:1,t;if(r=t.divToInt(i),r.isZero())Pe=n?3:2;else{if(t=t.minus(r.times(i)),t.lte(o))return Pe=Yi(r)?n?2:3:n?4:1,t;Pe=Yi(r)?n?1:4:n?3:2}return t.minus(i).abs()}function hn(e,t,r,n){var i,o,s,a,l,d,g,h,v,S=e.constructor,A=r!==void 0;if(A?(re(r,1,De),n===void 0?n=S.rounding:re(n,0,8)):(r=S.precision,n=S.rounding),!e.isFinite())g=lo(e);else{for(g=fe(e),s=g.indexOf("."),A?(i=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):i=t,s>=0&&(g=g.replace(".",""),v=new S(1),v.e=g.length-s,v.d=fr(fe(v),10,i),v.e=v.d.length),h=fr(g,10,i),o=l=h.length;h[--l]==0;)h.pop();if(!h[0])g=A?"0p+0":"0";else{if(s<0?o--:(e=new S(e),e.d=h,e.e=o,e=$(e,v,r,n,0,i),h=e.d,o=e.e,d=eo),s=h[r],a=i/2,d=d||h[r+1]!==void 0,d=n<4?(s!==void 0||d)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||d||n===6&&h[r-1]&1||n===(e.s<0?8:7)),h.length=r,d)for(;++h[--r]>i-1;)h[r]=0,r||(++o,h.unshift(1));for(l=h.length;!h[l-1];--l);for(s=0,g="";s1)if(t==16||t==8){for(s=t==16?4:3,--l;l%s;l++)g+="0";for(h=fr(g,i,t),l=h.length;!h[l-1];--l);for(s=1,g="1.";sl)for(o-=l;o--;)g+="0";else ot)return e.length=t,!0}function ol(e){return new this(e).abs()}function sl(e){return new this(e).acos()}function al(e){return new this(e).acosh()}function ll(e,t){return new this(e).plus(t)}function ul(e){return new this(e).asin()}function cl(e){return new this(e).asinh()}function pl(e){return new this(e).atan()}function ml(e){return new this(e).atanh()}function fl(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=ce(this,o,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?ce(this,n,i):new this(0),r.s=e.s):!e.d||t.isZero()?(r=ce(this,o,1).times(.5),r.s=e.s):t.s<0?(this.precision=o,this.rounding=1,r=this.atan($(e,t,o,1)),t=ce(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan($(e,t,o,1)),r}function dl(e){return new this(e).cbrt()}function gl(e){return O(e=new this(e),e.e+1,2)}function hl(e,t,r){return new this(e).clamp(t,r)}function yl(e){if(!e||typeof e!="object")throw Error(yr+"Object expected");var t,r,n,i=e.defaults===!0,o=["precision",1,De,"rounding",0,8,"toExpNeg",-Ze,0,"toExpPos",0,Ze,"maxE",0,Ze,"minE",-Ze,0,"modulo",0,9];for(t=0;t=o[t+1]&&n<=o[t+2])this[r]=n;else throw Error(ke+r+": "+n);if(r="crypto",i&&(this[r]=mn[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(ro);else this[r]=!1;else throw Error(ke+r+": "+n);return this}function wl(e){return new this(e).cos()}function El(e){return new this(e).cosh()}function co(e){var t,r,n;function i(o){var s,a,l,d=this;if(!(d instanceof i))return new i(o);if(d.constructor=i,Xi(o)){d.s=o.s,F?!o.d||o.e>i.maxE?(d.e=NaN,d.d=null):o.e=10;a/=10)s++;F?s>i.maxE?(d.e=NaN,d.d=null):s=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(ro);else for(;o=10;i/=10)n++;ne.highlight()},Hl={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function Kl({message:e,originalMethod:t,isPanic:r,callArguments:n}){return{functionName:`prisma.${t}()`,message:e,isPanic:r??!1,callArguments:n}}function zl({functionName:e,location:t,message:r,isPanic:n,contextLines:i,callArguments:o},s){let a=[""],l=t?" in":":";if(n?(a.push(s.red(`Oops, an unknown error occurred! This is ${s.bold("on us")}, you did nothing wrong.`)),a.push(s.red(`It occurred in the ${s.bold(`\`${e}\``)} invocation${l}`))):a.push(s.red(`Invalid ${s.bold(`\`${e}\``)} invocation${l}`)),t&&a.push(s.underline(Yl(t))),i){a.push("");let d=[i.toString()];o&&(d.push(o),d.push(s.dim(")"))),a.push(d.join("")),o&&a.push("")}else a.push(""),o&&a.push(o),a.push("");return a.push(r),a.join(` +`)}function Yl(e){let t=[e.fileName];return e.lineNumber&&t.push(String(e.lineNumber)),e.columnNumber&&t.push(String(e.columnNumber)),t.join(":")}function xr(e){let t=e.showColors?Wl:Hl,r;return typeof $getTemplateParameters<"u"?r=$getTemplateParameters(e,t):r=Kl(e),zl(r,t)}f();u();c();p();m();var wo=Le(yn());f();u();c();p();m();function go(e,t,r){let n=ho(e),i=Zl(n),o=eu(i);o?Pr(o,t,r):t.addErrorMessage(()=>"Unknown error")}function ho(e){return e.errors.flatMap(t=>t.kind==="Union"?ho(t):[t])}function Zl(e){let t=new Map,r=[];for(let n of e){if(n.kind!=="InvalidArgumentType"){r.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=t.get(i);o?t.set(i,{...n,argument:{...n.argument,typeNames:Xl(o.argument.typeNames,n.argument.typeNames)}}):t.set(i,n)}return r.push(...t.values()),r}function Xl(e,t){return[...new Set(e.concat(t))]}function eu(e){return cn(e,(t,r)=>{let n=mo(t),i=mo(r);return n!==i?n-i:fo(t)-fo(r)})}function mo(e){let t=0;return Array.isArray(e.selectionPath)&&(t+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(t+=e.argumentPath.length),t}function fo(e){switch(e.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}f();u();c();p();m();var ae=class{constructor(t,r){this.name=t;this.value=r;this.isRequired=!1}makeRequired(){return this.isRequired=!0,this}write(t){let{colors:{green:r}}=t.context;t.addMarginSymbol(r(this.isRequired?"+":"?")),t.write(r(this.name)),this.isRequired||t.write(r("?")),t.write(r(": ")),typeof this.value=="string"?t.write(r(this.value)):t.write(this.value)}};f();u();c();p();m();f();u();c();p();m();var nt=class{constructor(t=0,r){this.context=r;this.lines=[];this.currentLine="";this.currentIndent=0;this.currentIndent=t}write(t){return typeof t=="string"?this.currentLine+=t:t.write(this),this}writeJoined(t,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(t){return this.marginSymbol=t,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let t=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+t.slice(1):t}};f();u();c();p();m();f();u();c();p();m();var vr=class{constructor(t){this.value=t}write(t){t.write(this.value)}markAsError(){this.value.markAsError()}};f();u();c();p();m();var Tr=e=>e,Cr={bold:Tr,red:Tr,green:Tr,dim:Tr,enabled:!1},yo={bold:ar,red:ze,green:Ii,dim:lr,enabled:!0},it={write(e){e.writeLine(",")}};f();u();c();p();m();var de=class{constructor(t){this.contents=t;this.isUnderlined=!1;this.color=t=>t}underline(){return this.isUnderlined=!0,this}setColor(t){return this.color=t,this}write(t){let r=t.getCurrentLineLength();t.write(this.color(this.contents)),this.isUnderlined&&t.afterNextNewline(()=>{t.write(" ".repeat(r)).writeLine(this.color("~".repeat(this.contents.length)))})}};f();u();c();p();m();var Me=class{constructor(){this.hasError=!1}markAsError(){return this.hasError=!0,this}};var ot=class extends Me{constructor(){super(...arguments);this.items=[]}addItem(r){return this.items.push(new vr(r)),this}getField(r){return this.items[r]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(n=>n.value.getPrintWidth()))+2}write(r){if(this.items.length===0){this.writeEmpty(r);return}this.writeWithItems(r)}writeEmpty(r){let n=new de("[]");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithItems(r){let{colors:n}=r.context;r.writeLine("[").withIndent(()=>r.writeJoined(it,this.items).newLine()).write("]"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(n.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var st=class e extends Me{constructor(){super(...arguments);this.fields={};this.suggestions=[]}addField(r){this.fields[r.name]=r}addSuggestion(r){this.suggestions.push(r)}getField(r){return this.fields[r]}getDeepField(r){let[n,...i]=r,o=this.getField(n);if(!o)return;let s=o;for(let a of i){let l;if(s.value instanceof e?l=s.value.getField(a):s.value instanceof ot&&(l=s.value.getField(Number(a))),!l)return;s=l}return s}getDeepFieldValue(r){return r.length===0?this:this.getDeepField(r)?.value}hasField(r){return!!this.getField(r)}removeAllFields(){this.fields={}}removeField(r){delete this.fields[r]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(r){return this.getField(r)?.value}getDeepSubSelectionValue(r){let n=this;for(let i of r){if(!(n instanceof e))return;let o=n.getSubSelectionValue(i);if(!o)return;n=o}return n}getDeepSelectionParent(r){let n=this.getSelectionParent();if(!n)return;let i=n;for(let o of r){let s=i.value.getFieldValue(o);if(!s||!(s instanceof e))return;let a=s.getSelectionParent();if(!a)return;i=a}return i}getSelectionParent(){let r=this.getField("select")?.value.asObject();if(r)return{kind:"select",value:r};let n=this.getField("include")?.value.asObject();if(n)return{kind:"include",value:n}}getSubSelectionValue(r){return this.getSelectionParent()?.value.fields[r].value}getPrintWidth(){let r=Object.values(this.fields);return r.length==0?2:Math.max(...r.map(i=>i.getPrintWidth()))+2}write(r){let n=Object.values(this.fields);if(n.length===0&&this.suggestions.length===0){this.writeEmpty(r);return}this.writeWithContents(r,n)}asObject(){return this}writeEmpty(r){let n=new de("{}");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithContents(r,n){r.writeLine("{").withIndent(()=>{r.writeJoined(it,[...n,...this.suggestions]).newLine()}),r.write("}"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(r.context.colors.red("~".repeat(this.getPrintWidth())))})}};f();u();c();p();m();var H=class extends Me{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new de(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};f();u();c();p();m();var Rt=class{constructor(){this.fields=[]}addField(t,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${t}: ${r}`))).addMarginSymbol(i(o("+")))}}),this}write(t){let{colors:{green:r}}=t.context;t.writeLine(r("{")).withIndent(()=>{t.writeJoined(it,this.fields).newLine()}).write(r("}")).addMarginSymbol(r("+"))}};function Pr(e,t,r){switch(e.kind){case"MutuallyExclusiveFields":ru(e,t);break;case"IncludeOnScalar":nu(e,t);break;case"EmptySelection":iu(e,t,r);break;case"UnknownSelectionField":lu(e,t);break;case"InvalidSelectionValue":uu(e,t);break;case"UnknownArgument":cu(e,t);break;case"UnknownInputField":pu(e,t);break;case"RequiredArgumentMissing":mu(e,t);break;case"InvalidArgumentType":fu(e,t);break;case"InvalidArgumentValue":du(e,t);break;case"ValueTooLarge":gu(e,t);break;case"SomeFieldsMissing":hu(e,t);break;case"TooManyFieldsGiven":yu(e,t);break;case"Union":go(e,t,r);break;default:throw new Error("not implemented: "+e.kind)}}function ru(e,t){let r=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();r&&(r.getField(e.firstField)?.markAsError(),r.getField(e.secondField)?.markAsError()),t.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function nu(e,t){let[r,n]=St(e.selectionPath),i=e.outputType,o=t.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new ae(s.name,"true"));t.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${It(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function iu(e,t,r){let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){ou(e,t,i);return}if(n.hasField("select")){su(e,t);return}}if(r?.[et(e.outputType.name)]){au(e,t);return}t.addErrorMessage(()=>`Unknown field at "${e.selectionPath.join(".")} selection"`)}function ou(e,t,r){r.removeAllFields();for(let n of e.outputType.fields)r.addSuggestion(new ae(n.name,"false"));t.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function su(e,t){let r=e.outputType,n=t.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),xo(n,r)),t.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(r.name)} must not be empty. ${It(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(r.name)} needs ${o.bold("at least one truthy value")}.`)}function au(e,t){let r=new Rt;for(let i of e.outputType.fields)i.isRelation||r.addField(i.name,"false");let n=new ae("omit",r).makeRequired();if(e.selectionPath.length===0)t.arguments.addSuggestion(n);else{let[i,o]=St(e.selectionPath),a=t.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new st;l.addSuggestion(n),a.value=l}}t.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function lu(e,t){let r=Po(e.selectionPath,t);if(r.parentKind!=="unknown"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case"select":xo(n,e.outputType);break;case"include":wu(n,e.outputType);break;case"omit":Eu(n,e.outputType);break}}t.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${r.fieldName}\``)}`];return r.parentKind!=="unknown"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`),i.push(It(n)),i.join(" ")})}function uu(e,t){let r=Po(e.selectionPath,t);r.parentKind!=="unknown"&&r.field.value.markAsError(),t.addErrorMessage(n=>`Invalid value for selection field \`${n.red(r.fieldName)}\`: ${e.underlyingError}`)}function cu(e,t){let r=e.argumentPath[0],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),bu(n,e.arguments)),t.addErrorMessage(i=>Eo(i,r,e.arguments.map(o=>o.name)))}function pu(e,t){let[r,n]=St(e.argumentPath),i=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&vo(o,e.inputType)}t.addErrorMessage(o=>Eo(o,n,e.inputType.fields.map(s=>s.name)))}function Eo(e,t,r){let n=[`Unknown argument \`${e.red(t)}\`.`],i=Pu(t,r);return i&&n.push(`Did you mean \`${e.green(i)}\`?`),r.length>0&&n.push(It(e)),n.join(" ")}function mu(e,t){let r;t.addErrorMessage(l=>r?.value instanceof H&&r.value.text==="null"?`Argument \`${l.green(o)}\` must not be ${l.red("null")}.`:`Argument \`${l.green(o)}\` is missing.`);let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=St(e.argumentPath),s=new Rt,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind==="object"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(" | "));a.addSuggestion(new ae(o,s).makeRequired())}else{let l=e.inputTypes.map(bo).join(" | ");a.addSuggestion(new ae(o,l).makeRequired())}}function bo(e){return e.kind==="list"?`${bo(e.elementType)}[]`:e.name}function fu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=Ar("or",e.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(r)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function du(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(r)}\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push("."),e.argument.typeNames.length>0){let s=Ar("or",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function gu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof H&&(i=s.text)}t.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(r)}\``),s.join(" ")})}function hu(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&vo(i,e.inputType)}t.addErrorMessage(i=>{let o=[`Argument \`${i.bold(r)}\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green("at least one of")} ${Ar("or",e.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(It(i)),o.join(" ")})}function yu(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}t.addErrorMessage(o=>{let s=[`Argument \`${o.bold(r)}\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${Ar("and",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push("one."):s.push(`${e.constraints.maxFieldCount}.`),s.join(" ")})}function xo(e,t){for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ae(r.name,"true"))}function wu(e,t){for(let r of t.fields)r.isRelation&&!e.hasField(r.name)&&e.addSuggestion(new ae(r.name,"true"))}function Eu(e,t){for(let r of t.fields)!e.hasField(r.name)&&!r.isRelation&&e.addSuggestion(new ae(r.name,"true"))}function bu(e,t){for(let r of t)e.hasField(r.name)||e.addSuggestion(new ae(r.name,r.typeNames.join(" | ")))}function Po(e,t){let[r,n]=St(e),i=t.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:"select",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:"include",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:"omit",field:l,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function vo(e,t){if(t.kind==="object")for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ae(r.name,r.typeNames.join(" | ")))}function St(e){let t=[...e],r=t.pop();if(!r)throw new Error("unexpected empty path");return[t,r]}function It({green:e,enabled:t}){return"Available options are "+(t?`listed in ${e("green")}`:"marked with ?")+"."}function Ar(e,t){if(t.length===1)return t[0];let r=[...t],n=r.pop();return`${r.join(", ")} ${e} ${n}`}var xu=3;function Pu(e,t){let r=1/0,n;for(let i of t){let o=(0,wo.default)(e,i);o>xu||o`}};function at(e){return e instanceof Ot}f();u();c();p();m();var Rr=Symbol(),wn=new WeakMap,Te=class{constructor(t){t===Rr?wn.set(this,`Prisma.${this._getName()}`):wn.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return wn.get(this)}},kt=class extends Te{_getNamespace(){return"NullTypes"}},Dt=class extends kt{};bn(Dt,"DbNull");var Mt=class extends kt{};bn(Mt,"JsonNull");var Nt=class extends kt{};bn(Nt,"AnyNull");var En={classes:{DbNull:Dt,JsonNull:Mt,AnyNull:Nt},instances:{DbNull:new Dt(Rr),JsonNull:new Mt(Rr),AnyNull:new Nt(Rr)}};function bn(e,t){Object.defineProperty(e,"name",{value:t,configurable:!0})}f();u();c();p();m();var Co=": ",Sr=class{constructor(t,r){this.name=t;this.value=r;this.hasError=!1}markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+Co.length}write(t){let r=new de(this.name);this.hasError&&r.underline().setColor(t.context.colors.red),t.write(r).write(Co).write(this.value)}};var xn=class{constructor(t){this.errorMessages=[];this.arguments=t}write(t){t.write(this.arguments)}addErrorMessage(t){this.errorMessages.push(t)}renderAllMessages(t){return this.errorMessages.map(r=>r(t)).join(` +`)}};function lt(e){return new xn(Ao(e))}function Ao(e){let t=new st;for(let[r,n]of Object.entries(e)){let i=new Sr(r,Ro(n));t.addField(i)}return t}function Ro(e){if(typeof e=="string")return new H(JSON.stringify(e));if(typeof e=="number"||typeof e=="boolean")return new H(String(e));if(typeof e=="bigint")return new H(`${e}n`);if(e===null)return new H("null");if(e===void 0)return new H("undefined");if(rt(e))return new H(`new Prisma.Decimal("${e.toFixed()}")`);if(e instanceof Uint8Array)return w.Buffer.isBuffer(e)?new H(`Buffer.alloc(${e.byteLength})`):new H(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let t=br(e)?e.toISOString():"Invalid Date";return new H(`new Date("${t}")`)}return e instanceof Te?new H(`Prisma.${e._getName()}`):at(e)?new H(`prisma.${To(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?vu(e):typeof e=="object"?Ao(e):new H(Object.prototype.toString.call(e))}function vu(e){let t=new ot;for(let r of e)t.addItem(Ro(r));return t}function Ir(e,t){let r=t==="pretty"?yo:Cr,n=e.renderAllMessages(r),i=new nt(0,{colors:r}).write(e).toString();return{message:n,args:i}}function Or({args:e,errors:t,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=lt(e);for(let h of t)Pr(h,a,s);let{message:l,args:d}=Ir(a,r),g=xr({message:l,callsite:n,originalMethod:i,showColors:r==="pretty",callArguments:d});throw new X(g,{clientVersion:o})}f();u();c();p();m();f();u();c();p();m();var ge=class{constructor(){this._map=new Map}get(t){return this._map.get(t)?.value}set(t,r){this._map.set(t,{value:r})}getOrCreate(t,r){let n=this._map.get(t);if(n)return n.value;let i=r();return this.set(t,i),i}};f();u();c();p();m();function Ft(e){let t;return{get(){return t||(t={value:e()}),t.value}}}f();u();c();p();m();function he(e){return e.replace(/^./,t=>t.toLowerCase())}f();u();c();p();m();function Io(e,t,r){let n=he(r);return!t.result||!(t.result.$allModels||t.result[n])?e:Tu({...e,...So(t.name,e,t.result.$allModels),...So(t.name,e,t.result[n])})}function Tu(e){let t=new ge,r=(n,i)=>t.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>r(o,i)):[n]));return Ye(e,n=>({...n,needs:r(n.name,new Set)}))}function So(e,t,r){return r?Ye(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:Cu(t,o,i)})):{}}function Cu(e,t,r){let n=e?.[t]?.compute;return n?i=>r({...i,[t]:n(i)}):r}function Oo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(e[n.name])for(let i of n.needs)r[i]=!0;return r}function ko(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(!e[n.name])for(let i of n.needs)delete r[i];return r}var kr=class{constructor(t,r){this.extension=t;this.previous=r;this.computedFieldsCache=new ge;this.modelExtensionsCache=new ge;this.queryCallbacksCache=new ge;this.clientExtensions=Ft(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());this.batchCallbacks=Ft(()=>{let t=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?t.concat(r):t})}getAllComputedFields(t){return this.computedFieldsCache.getOrCreate(t,()=>Io(this.previous?.getAllComputedFields(t),this.extension,t))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(t){return this.modelExtensionsCache.getOrCreate(t,()=>{let r=he(t);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(t):{...this.previous?.getAllModelExtensions(t),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(t,r){return this.queryCallbacksCache.getOrCreate(`${t}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(t,r)??[],i=[],o=this.extension.query;return!o||!(o[t]||o.$allModels||o[r]||o.$allOperations)?n:(o[t]!==void 0&&(o[t][r]!==void 0&&i.push(o[t][r]),o[t].$allOperations!==void 0&&i.push(o[t].$allOperations)),t!=="$none"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},ut=class e{constructor(t){this.head=t}static empty(){return new e}static single(t){return new e(new kr(t))}isEmpty(){return this.head===void 0}append(t){return new e(new kr(t,this.head))}getAllComputedFields(t){return this.head?.getAllComputedFields(t)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(t){return this.head?.getAllModelExtensions(t)}getAllQueryCallbacks(t,r){return this.head?.getAllQueryCallbacks(t,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};f();u();c();p();m();f();u();c();p();m();var Do=Symbol(),_t=class{constructor(t){if(t!==Do)throw new Error("Skip instance can not be constructed directly")}ifUndefined(t){return t===void 0?Pn:t}},Pn=new _t(Do);function ye(e){return e instanceof _t}var Au={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},Mo="explicitly `undefined` values are not allowed";function Tn({modelName:e,action:t,args:r,runtimeDataModel:n,extensions:i=ut.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:d,globalOmit:g}){let h=new vn({runtimeDataModel:n,modelName:e,action:t,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:d,globalOmit:g});return{modelName:e,action:Au[t],query:Lt(r,h)}}function Lt({select:e,include:t,...r}={},n){let i;return n.isPreviewFeatureOn("omitApi")&&(i=r.omit,delete r.omit),{arguments:Fo(r,n),selection:Ru(e,t,i,n)}}function Ru(e,t,r,n){return e?(t?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):r&&n.isPreviewFeatureOn("omitApi")&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),ku(e,n)):Su(n,t,r)}function Su(e,t,r){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),t&&Iu(n,t,e),e.isPreviewFeatureOn("omitApi")&&Ou(n,r,e),n}function Iu(e,t,r){for(let[n,i]of Object.entries(t)){if(ye(i))continue;let o=r.nestSelection(n);if(Cn(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!=="object"&&r.throwValidationError({kind:"IncludeOnScalar",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){e[n]=Lt(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=Lt(i,o)}}function Ou(e,t,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...t},o=ko(i,n);for(let[s,a]of Object.entries(o)){if(ye(a))continue;Cn(a,r.nestSelection(s));let l=r.findField(s);n?.[s]&&!l||(e[s]=!a)}}function ku(e,t){let r={},n=t.getComputedFields(),i=Oo(e,n);for(let[o,s]of Object.entries(i)){if(ye(s))continue;let a=t.nestSelection(o);Cn(s,a);let l=t.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||ye(s)){r[o]=!1;continue}if(s===!0){l?.kind==="object"?r[o]=Lt({},a):r[o]=!0;continue}r[o]=Lt(s,a)}}return r}function No(e,t){if(e===null)return null;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="bigint")return{$type:"BigInt",value:String(e)};if(tt(e)){if(br(e))return{$type:"DateTime",value:e.toISOString()};t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(at(e))return{$type:"FieldRef",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return Du(e,t);if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{$type:"Bytes",value:w.Buffer.from(r,n,i).toString("base64")}}if(Mu(e))return e.values;if(rt(e))return{$type:"Decimal",value:e.toFixed()};if(e instanceof Te){if(e!==En.instances[e._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:e._getName()}}if(Nu(e))return e.toJSON();if(typeof e=="object")return Fo(e,t);t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function Fo(e,t){if(e.$type)return{$type:"Raw",value:e};let r={};for(let n in e){let i=e[n],o=t.nestArgument(n);ye(i)||(i!==void 0?r[n]=No(i,o):t.isPreviewFeatureOn("strictUndefinedChecks")&&t.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:t.getSelectionPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:Mo}))}return r}function Du(e,t){let r=[];for(let n=0;n({name:t.name,typeName:"boolean",isRelation:t.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(t){return this.params.previewFeatures.includes(t)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(t){return this.modelOrType?.fields.find(r=>r.name===t)}nestSelection(t){let r=this.findField(t),n=r?.kind==="object"?r.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(t)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[et(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:xe(this.params.action,"Unknown action")}}nestArgument(t){return new e({...this.params,argumentPath:this.params.argumentPath.concat(t)})}};f();u();c();p();m();var Bt=class{constructor(t){this._engine=t}prometheus(t){return this._engine.metrics({format:"prometheus",...t})}json(t){return this._engine.metrics({format:"json",...t})}};f();u();c();p();m();function Fu(e){return{models:An(e.models),enums:An(e.enums),types:An(e.types)}}function An(e){let t={};for(let{name:r,...n}of e)t[r]=n;return t}function _u(e,t){let r=Ft(()=>Lu(t));Object.defineProperty(e,"dmmf",{get:()=>r.get()})}function Lu(e){return{datamodel:{models:Rn(e.models),enums:Rn(e.enums),types:Rn(e.types)}}}function Rn(e){return Object.entries(e).map(([t,r])=>({name:t,...r}))}f();u();c();p();m();var Sn=new WeakMap,Dr="$$PrismaTypedSql",In=class{constructor(t,r){Sn.set(this,{sql:t,values:r}),Object.defineProperty(this,Dr,{value:Dr})}get sql(){return Sn.get(this).sql}get values(){return Sn.get(this).values}};function Bu(e){return(...t)=>new In(e,t)}function _o(e){return e!=null&&e[Dr]===Dr}f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();function Ut(e){return{ok:!1,error:e,map(){return Ut(e)},flatMap(){return Ut(e)}}}var On=class{constructor(){this.registeredErrors=[]}consumeError(t){return this.registeredErrors[t]}registerNewError(t){let r=0;for(;this.registeredErrors[r]!==void 0;)r++;return this.registeredErrors[r]={error:t},r}},kn=e=>{let t=new On,r=we(t,e.transactionContext.bind(e)),n={adapterName:e.adapterName,errorRegistry:t,queryRaw:we(t,e.queryRaw.bind(e)),executeRaw:we(t,e.executeRaw.bind(e)),provider:e.provider,transactionContext:async(...i)=>(await r(...i)).map(s=>Uu(t,s))};return e.getConnectionInfo&&(n.getConnectionInfo=qu(t,e.getConnectionInfo.bind(e))),n},Uu=(e,t)=>{let r=we(e,t.startTransaction.bind(t));return{adapterName:t.adapterName,provider:t.provider,queryRaw:we(e,t.queryRaw.bind(t)),executeRaw:we(e,t.executeRaw.bind(t)),startTransaction:async(...n)=>(await r(...n)).map(o=>$u(e,o))}},$u=(e,t)=>({adapterName:t.adapterName,provider:t.provider,options:t.options,queryRaw:we(e,t.queryRaw.bind(t)),executeRaw:we(e,t.executeRaw.bind(t)),commit:we(e,t.commit.bind(t)),rollback:we(e,t.rollback.bind(t))});function we(e,t){return async(...r)=>{try{return await t(...r)}catch(n){let i=e.registerNewError(n);return Ut({kind:"GenericJs",id:i})}}}function qu(e,t){return(...r)=>{try{return t(...r)}catch(n){let i=e.registerNewError(n);return Ut({kind:"GenericJs",id:i})}}}var Xs=Le(Lo());var Tk=Le(Bo());qi();vi();Ui();f();u();c();p();m();var le=class e{constructor(t,r){if(t.length-1!==r.length)throw t.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${t.length} strings to have ${t.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=t[0];let i=0,o=0;for(;ie.getPropertyValue(r))},getPropertyDescriptor(r){return e.getPropertyDescriptor?.(r)}}}f();u();c();p();m();f();u();c();p();m();var Mr={enumerable:!0,configurable:!0,writable:!0};function Nr(e){let t=new Set(e);return{getOwnPropertyDescriptor:()=>Mr,has:(r,n)=>t.has(n),set:(r,n,i)=>t.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...t]}}var qo=Symbol.for("nodejs.util.inspect.custom");function Ee(e,t){let r=Gu(t),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=Vo(Reflect.ownKeys(o),r),a=Vo(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=r.get(s);return l?l.getPropertyDescriptor?{...Mr,...l?.getPropertyDescriptor(s)}:Mr:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)}});return i[qo]=function(){let o={...this};return delete o[qo],o},i}function Gu(e){let t=new Map;for(let r of e){let n=r.getKeys();for(let i of n)t.set(i,r)}return t}function Vo(e,t){return e.filter(r=>t.get(r)?.has?.(r)??!0)}f();u();c();p();m();function ct(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}f();u();c();p();m();function Fr(e,t){return{batch:e,transaction:t?.kind==="batch"?{isolationLevel:t.options.isolationLevel}:void 0}}f();u();c();p();m();function jo(e){if(e===void 0)return"";let t=lt(e);return new nt(0,{colors:Cr}).write(t).toString()}f();u();c();p();m();var Qu="P2037";function _r({error:e,user_facing_error:t},r,n){return t.error_code?new oe(Wu(t,n),{code:t.error_code,clientVersion:r,meta:t.meta,batchRequestIdx:t.batch_request_idx}):new se(e,{clientVersion:r,batchRequestIdx:t.batch_request_idx})}function Wu(e,t){let r=e.message;return(t==="postgresql"||t==="postgres"||t==="mysql")&&e.error_code===Qu&&(r+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();var Dn=class{getLocation(){return null}};function Ne(e){return typeof $EnabledCallSite=="function"&&e!=="minimal"?new $EnabledCallSite:new Dn}f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();var Jo={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function pt(e={}){let t=Ku(e);return Object.entries(t).reduce((n,[i,o])=>(Jo[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function Ku(e={}){return typeof e._count=="boolean"?{...e,_count:{_all:e._count}}:e}function Lr(e={}){return t=>(typeof e._count=="boolean"&&(t._count=t._count._all),t)}function Go(e,t){let r=Lr(e);return t({action:"aggregate",unpacker:r,argsMapper:pt})(e)}f();u();c();p();m();function zu(e={}){let{select:t,...r}=e;return typeof t=="object"?pt({...r,_count:t}):pt({...r,_count:{_all:!0}})}function Yu(e={}){return typeof e.select=="object"?t=>Lr(e)(t)._count:t=>Lr(e)(t)._count._all}function Qo(e,t){return t({action:"count",unpacker:Yu(e),argsMapper:zu})(e)}f();u();c();p();m();function Zu(e={}){let t=pt(e);if(Array.isArray(t.by))for(let r of t.by)typeof r=="string"&&(t.select[r]=!0);else typeof t.by=="string"&&(t.select[t.by]=!0);return t}function Xu(e={}){return t=>(typeof e?._count=="boolean"&&t.forEach(r=>{r._count=r._count._all}),t)}function Wo(e,t){return t({action:"groupBy",unpacker:Xu(e),argsMapper:Zu})(e)}function Ho(e,t,r){if(t==="aggregate")return n=>Go(n,r);if(t==="count")return n=>Qo(n,r);if(t==="groupBy")return n=>Wo(n,r)}f();u();c();p();m();function Ko(e,t){let r=t.fields.filter(i=>!i.relationName),n=un(r,i=>i.name);return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new Ot(e,o,s.type,s.isList,s.kind==="enum")},...Nr(Object.keys(n))})}f();u();c();p();m();f();u();c();p();m();var zo=e=>Array.isArray(e)?e:e.split("."),Mn=(e,t)=>zo(t).reduce((r,n)=>r&&r[n],e),Yo=(e,t,r)=>zo(t).reduceRight((n,i,o,s)=>Object.assign({},Mn(e,s.slice(0,o)),{[i]:n}),r);function ec(e,t){return e===void 0||t===void 0?[]:[...t,"select",e]}function tc(e,t,r){return t===void 0?e??{}:Yo(t,r,e||!0)}function Nn(e,t,r,n,i,o){let a=e._runtimeDataModel.models[t].fields.reduce((l,d)=>({...l,[d.name]:d}),{});return l=>{let d=Ne(e._errorFormat),g=ec(n,i),h=tc(l,o,g),v=r({dataPath:g,callsite:d})(h),S=rc(e,t);return new Proxy(v,{get(A,R){if(!S.includes(R))return A[R];let N=[a[R].type,r,R],B=[g,h];return Nn(e,...N,...B)},...Nr([...S,...Object.getOwnPropertyNames(v)])})}}function rc(e,t){return e._runtimeDataModel.models[t].fields.filter(r=>r.kind==="object").map(r=>r.name)}var nc=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],ic=["aggregate","count","groupBy"];function Fn(e,t){let r=e._extensions.getAllModelExtensions(t)??{},n=[oc(e,t),ac(e,t),$t(r),ee("name",()=>t),ee("$name",()=>t),ee("$parent",()=>e._appliedParent)];return Ee({},n)}function oc(e,t){let r=he(t),n=Object.keys(cr.ModelAction).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>l=>{let d=Ne(e._errorFormat);return e._createPrismaPromise(g=>{let h={args:l,dataPath:[],action:o,model:t,clientMethod:`${r}.${i}`,jsModelName:r,transaction:g,callsite:d};return e._request({...h,...a})})};return nc.includes(o)?Nn(e,t,s):sc(i)?Ho(e,i,s):s({})}}}function sc(e){return ic.includes(e)}function ac(e,t){return $e(ee("fields",()=>{let r=e._runtimeDataModel.models[t];return Ko(t,r)}))}f();u();c();p();m();function Zo(e){return e.replace(/^./,t=>t.toUpperCase())}var _n=Symbol();function qt(e){let t=[lc(e),ee(_n,()=>e),ee("$parent",()=>e._appliedParent)],r=e._extensions.getAllClientExtensions();return r&&t.push($t(r)),Ee(e,t)}function lc(e){let t=Object.keys(e._runtimeDataModel.models),r=t.map(he),n=[...new Set(t.concat(r))];return $e({getKeys(){return n},getPropertyValue(i){let o=Zo(i);if(e._runtimeDataModel.models[o]!==void 0)return Fn(e,o);if(e._runtimeDataModel.models[i]!==void 0)return Fn(e,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function Xo(e){return e[_n]?e[_n]:e}function es(e){if(typeof e=="function")return e(this);if(e.client?.__AccelerateEngine){let r=e.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let t=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return qt(t)}f();u();c();p();m();f();u();c();p();m();function ts({result:e,modelName:t,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(t);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let d=l.needs.filter(g=>n[g]);d.length>0&&a.push(ct(d))}else if(r){if(!r[l.name])continue;let d=l.needs.filter(g=>!r[g]);d.length>0&&a.push(ct(d))}uc(e,l.needs)&&s.push(cc(l,Ee(e,s)))}return s.length>0||a.length>0?Ee(e,[...s,...a]):e}function uc(e,t){return t.every(r=>ln(e,r))}function cc(e,t){return $e(ee(e.name,()=>e.compute(t)))}f();u();c();p();m();function Br({visitor:e,result:t,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(t)){for(let s=0;sg.name===o);if(!l||l.kind!=="object"||!l.relationName)continue;let d=typeof s=="object"?s:{};t[o]=Br({visitor:i,result:t[o],args:d,modelName:l.type,runtimeDataModel:n})}}function ns({result:e,modelName:t,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!="object"||!i.models[t]?e:Br({result:e,args:r??{},modelName:t,runtimeDataModel:i,visitor:(a,l,d)=>{let g=he(l);return ts({result:a,modelName:g,select:d.select,omit:d.select?void 0:{...o?.[g],...d.omit},extensions:n})}})}f();u();c();p();m();f();u();c();p();m();function is(e){if(e instanceof le)return pc(e);if(Array.isArray(e)){let r=[e[0]];for(let n=1;n{let o=t.customDataProxyFetch;return"transaction"in t&&i!==void 0&&(t.transaction?.kind==="batch"&&t.transaction.lock.then(),t.transaction=i),n===r.length?e._executeRequest(t):r[n]({model:t.model,operation:t.model?t.action:t.clientMethod,args:is(t.args??{}),__internalParams:t,query:(s,a=t)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=cs(o,l),a.args=s,ss(e,a,r,n+1)}})})}function as(e,t){let{jsModelName:r,action:n,clientMethod:i}=t,o=r?n:i;if(e._extensions.isEmpty())return e._executeRequest(t);let s=e._extensions.getAllQueryCallbacks(r??"$none",o);return ss(e,t,s)}function ls(e){return t=>{let r={requests:t},n=t[0].extensions.getAllBatchQueryCallbacks();return n.length?us(r,n,0,e):e(r)}}function us(e,t,r,n){if(r===t.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return t[r]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=cs(i,l),us(a,t,r+1,n)}})}var os=e=>e;function cs(e=os,t=os){return r=>e(t(r))}f();u();c();p();m();var ps=Z("prisma:client"),ms={Vercel:"vercel","Netlify CI":"netlify"};function fs({postinstall:e,ciName:t,clientVersion:r}){if(ps("checkPlatformCaching:postinstall",e),ps("checkPlatformCaching:ciName",t),e===!0&&t&&t in ms){let n=`Prisma has detected that this project was built on ${t}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${ms[t]}-build`;throw console.error(n),new G(n,r)}}f();u();c();p();m();function ds(e,t){return e?e.datasources?e.datasources:e.datasourceUrl?{[t[0]]:{url:e.datasourceUrl}}:{}:{}}f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();var mc="Cloudflare-Workers",fc="node";function gs(){return typeof Netlify=="object"?"netlify":typeof EdgeRuntime=="string"?"edge-light":globalThis.navigator?.userAgent===mc?"workerd":globalThis.Deno?"deno":globalThis.__lagon__?"lagon":globalThis.process?.release?.name===fc?"node":globalThis.Bun?"bun":globalThis.fastly?"fastly":"unknown"}var dc={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function Ln(){let e=gs();return{id:e,prettyName:dc[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();function mt({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw Ln().id==="workerd"?new G(`error: Environment variable not found: ${s.fromEnvVar}. + +In Cloudflare module Workers, environment variables are available only in the Worker's \`env\` parameter of \`fetch\`. +To solve this, provide the connection string directly: https://pris.ly/d/cloudflare-datasource-url`,n):new G(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new G("error: Missing URL environment variable, value, or override.",n);return i}f();u();c();p();m();f();u();c();p();m();var Ur=class extends Error{constructor(t,r){super(t),this.clientVersion=r.clientVersion,this.cause=r.cause}get[Symbol.toStringTag](){return this.name}};var ne=class extends Ur{constructor(t,r){super(t,r),this.isRetryable=r.isRetryable??!0}};f();u();c();p();m();f();u();c();p();m();function L(e,t){return{...e,isRetryable:t}}var ft=class extends ne{constructor(r){super("This request must be retried",L(r,!0));this.name="ForcedRetryError";this.code="P5001"}};_(ft,"ForcedRetryError");f();u();c();p();m();var qe=class extends ne{constructor(r,n){super(r,L(n,!1));this.name="InvalidDatasourceError";this.code="P6001"}};_(qe,"InvalidDatasourceError");f();u();c();p();m();var Ve=class extends ne{constructor(r,n){super(r,L(n,!1));this.name="NotImplementedYetError";this.code="P5004"}};_(Ve,"NotImplementedYetError");f();u();c();p();m();f();u();c();p();m();var j=class extends ne{constructor(t,r){super(t,r),this.response=r.response;let n=this.response.headers.get("prisma-request-id");if(n){let i=`(The request id was: ${n})`;this.message=this.message+" "+i}}};var je=class extends j{constructor(r){super("Schema needs to be uploaded",L(r,!0));this.name="SchemaMissingError";this.code="P5005"}};_(je,"SchemaMissingError");f();u();c();p();m();f();u();c();p();m();var Bn="This request could not be understood by the server",jt=class extends j{constructor(r,n,i){super(n||Bn,L(r,!1));this.name="BadRequestError";this.code="P5000";i&&(this.code=i)}};_(jt,"BadRequestError");f();u();c();p();m();var Jt=class extends j{constructor(r,n){super("Engine not started: healthcheck timeout",L(r,!0));this.name="HealthcheckTimeoutError";this.code="P5013";this.logs=n}};_(Jt,"HealthcheckTimeoutError");f();u();c();p();m();var Gt=class extends j{constructor(r,n,i){super(n,L(r,!0));this.name="EngineStartupError";this.code="P5014";this.logs=i}};_(Gt,"EngineStartupError");f();u();c();p();m();var Qt=class extends j{constructor(r){super("Engine version is not supported",L(r,!1));this.name="EngineVersionNotSupportedError";this.code="P5012"}};_(Qt,"EngineVersionNotSupportedError");f();u();c();p();m();var Un="Request timed out",Wt=class extends j{constructor(r,n=Un){super(n,L(r,!1));this.name="GatewayTimeoutError";this.code="P5009"}};_(Wt,"GatewayTimeoutError");f();u();c();p();m();var gc="Interactive transaction error",Ht=class extends j{constructor(r,n=gc){super(n,L(r,!1));this.name="InteractiveTransactionError";this.code="P5015"}};_(Ht,"InteractiveTransactionError");f();u();c();p();m();var hc="Request parameters are invalid",Kt=class extends j{constructor(r,n=hc){super(n,L(r,!1));this.name="InvalidRequestError";this.code="P5011"}};_(Kt,"InvalidRequestError");f();u();c();p();m();var $n="Requested resource does not exist",zt=class extends j{constructor(r,n=$n){super(n,L(r,!1));this.name="NotFoundError";this.code="P5003"}};_(zt,"NotFoundError");f();u();c();p();m();var qn="Unknown server error",dt=class extends j{constructor(r,n,i){super(n||qn,L(r,!0));this.name="ServerError";this.code="P5006";this.logs=i}};_(dt,"ServerError");f();u();c();p();m();var Vn="Unauthorized, check your connection string",Yt=class extends j{constructor(r,n=Vn){super(n,L(r,!1));this.name="UnauthorizedError";this.code="P5007"}};_(Yt,"UnauthorizedError");f();u();c();p();m();var jn="Usage exceeded, retry again later",Zt=class extends j{constructor(r,n=jn){super(n,L(r,!0));this.name="UsageExceededError";this.code="P5008"}};_(Zt,"UsageExceededError");async function yc(e){let t;try{t=await e.text()}catch{return{type:"EmptyError"}}try{let r=JSON.parse(t);if(typeof r=="string")switch(r){case"InternalDataProxyError":return{type:"DataProxyError",body:r};default:return{type:"UnknownTextError",body:r}}if(typeof r=="object"&&r!==null){if("is_panic"in r&&"message"in r&&"error_code"in r)return{type:"QueryEngineError",body:r};if("EngineNotStarted"in r||"InteractiveTransactionMisrouted"in r||"InvalidRequestError"in r){let n=Object.values(r)[0].reason;return typeof n=="string"&&!["SchemaMissing","EngineVersionNotSupported"].includes(n)?{type:"UnknownJsonError",body:r}:{type:"DataProxyError",body:r}}}return{type:"UnknownJsonError",body:r}}catch{return t===""?{type:"EmptyError"}:{type:"UnknownTextError",body:t}}}async function Xt(e,t){if(e.ok)return;let r={clientVersion:t,response:e},n=await yc(e);if(n.type==="QueryEngineError")throw new oe(n.body.message,{code:n.body.error_code,clientVersion:t});if(n.type==="DataProxyError"){if(n.body==="InternalDataProxyError")throw new dt(r,"Internal Data Proxy error");if("EngineNotStarted"in n.body){if(n.body.EngineNotStarted.reason==="SchemaMissing")return new je(r);if(n.body.EngineNotStarted.reason==="EngineVersionNotSupported")throw new Qt(r);if("EngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,logs:o}=n.body.EngineNotStarted.reason.EngineStartupError;throw new Gt(r,i,o)}if("KnownEngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,error_code:o}=n.body.EngineNotStarted.reason.KnownEngineStartupError;throw new G(i,t,o)}if("HealthcheckTimeout"in n.body.EngineNotStarted.reason){let{logs:i}=n.body.EngineNotStarted.reason.HealthcheckTimeout;throw new Jt(r,i)}}if("InteractiveTransactionMisrouted"in n.body){let i={IDParseError:"Could not parse interactive transaction ID",NoQueryEngineFoundError:"Could not find Query Engine for the specified host and transaction ID",TransactionStartError:"Could not start interactive transaction"};throw new Ht(r,i[n.body.InteractiveTransactionMisrouted.reason])}if("InvalidRequestError"in n.body)throw new Kt(r,n.body.InvalidRequestError.reason)}if(e.status===401||e.status===403)throw new Yt(r,gt(Vn,n));if(e.status===404)return new zt(r,gt($n,n));if(e.status===429)throw new Zt(r,gt(jn,n));if(e.status===504)throw new Wt(r,gt(Un,n));if(e.status>=500)throw new dt(r,gt(qn,n));if(e.status>=400)throw new jt(r,gt(Bn,n))}function gt(e,t){return t.type==="EmptyError"?e:`${e}: ${JSON.stringify(t)}`}f();u();c();p();m();function hs(e){let t=Math.pow(2,e)*50,r=Math.ceil(Math.random()*t)-Math.ceil(t/2),n=t+r;return new Promise(i=>setTimeout(()=>i(n),n))}f();u();c();p();m();var Ce="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function ys(e){let t=new TextEncoder().encode(e),r="",n=t.byteLength,i=n%3,o=n-i,s,a,l,d,g;for(let h=0;h>18,a=(g&258048)>>12,l=(g&4032)>>6,d=g&63,r+=Ce[s]+Ce[a]+Ce[l]+Ce[d];return i==1?(g=t[o],s=(g&252)>>2,a=(g&3)<<4,r+=Ce[s]+Ce[a]+"=="):i==2&&(g=t[o]<<8|t[o+1],s=(g&64512)>>10,a=(g&1008)>>4,l=(g&15)<<2,r+=Ce[s]+Ce[a]+Ce[l]+"="),r}f();u();c();p();m();function ws(e){if(!!e.generator?.previewFeatures.some(r=>r.toLowerCase().includes("metrics")))throw new G("The `metrics` preview feature is not yet available with Accelerate.\nPlease remove `metrics` from the `previewFeatures` in your schema.\n\nMore information about Accelerate: https://pris.ly/d/accelerate",e.clientVersion)}f();u();c();p();m();function wc(e){return e[0]*1e3+e[1]/1e6}function Jn(e){return new Date(wc(e))}f();u();c();p();m();var Es={"@prisma/debug":"workspace:*","@prisma/engines-version":"6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959","@prisma/fetch-engine":"workspace:*","@prisma/get-platform":"workspace:*"};f();u();c();p();m();f();u();c();p();m();var er=class extends ne{constructor(r,n){super(`Cannot fetch data from service: +${r}`,L(n,!0));this.name="RequestError";this.code="P5010"}};_(er,"RequestError");async function Je(e,t,r=n=>n){let{clientVersion:n,...i}=t,o=r(fetch);try{return await o(e,i)}catch(s){let a=s.message??"Unknown error";throw new er(a,{clientVersion:n,cause:s})}}var bc=/^[1-9][0-9]*\.[0-9]+\.[0-9]+$/,bs=Z("prisma:client:dataproxyEngine");async function xc(e,t){let r=Es["@prisma/engines-version"],n=t.clientVersion??"unknown";if(y.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION)return y.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION;if(e.includes("accelerate")&&n!=="0.0.0"&&n!=="in-memory")return n;let[i,o]=n?.split("-")??[];if(o===void 0&&bc.test(i))return i;if(o!==void 0||n==="0.0.0"||n==="in-memory"){if(e.startsWith("localhost")||e.startsWith("127.0.0.1"))return"0.0.0";let[s]=r.split("-")??[],[a,l,d]=s.split("."),g=Pc(`<=${a}.${l}.${d}`),h=await Je(g,{clientVersion:n});if(!h.ok)throw new Error(`Failed to fetch stable Prisma version, unpkg.com status ${h.status} ${h.statusText}, response body: ${await h.text()||""}`);let v=await h.text();bs("length of body fetched from unpkg.com",v.length);let S;try{S=JSON.parse(v)}catch(A){throw console.error("JSON.parse error: body fetched from unpkg.com: ",v),A}return S.version}throw new Ve("Only `major.minor.patch` versions are supported by Accelerate.",{clientVersion:n})}async function xs(e,t){let r=await xc(e,t);return bs("version",r),r}function Pc(e){return encodeURI(`https://unpkg.com/prisma@${e}/package.json`)}var Ps=3,$r=Z("prisma:client:dataproxyEngine"),Gn=class{constructor({apiKey:t,tracingHelper:r,logLevel:n,logQueries:i,engineHash:o}){this.apiKey=t,this.tracingHelper=r,this.logLevel=n,this.logQueries=i,this.engineHash=o}build({traceparent:t,interactiveTransaction:r}={}){let n={Authorization:`Bearer ${this.apiKey}`,"Prisma-Engine-Hash":this.engineHash};this.tracingHelper.isEnabled()&&(n.traceparent=t??this.tracingHelper.getTraceParent()),r&&(n["X-transaction-id"]=r.id);let i=this.buildCaptureSettings();return i.length>0&&(n["X-capture-telemetry"]=i.join(", ")),n}buildCaptureSettings(){let t=[];return this.tracingHelper.isEnabled()&&t.push("tracing"),this.logLevel&&t.push(this.logLevel),this.logQueries&&t.push("query"),t}},tr=class{constructor(t){this.name="DataProxyEngine";ws(t),this.config=t,this.env={...t.env,...typeof y<"u"?y.env:{}},this.inlineSchema=ys(t.inlineSchema),this.inlineDatasources=t.inlineDatasources,this.inlineSchemaHash=t.inlineSchemaHash,this.clientVersion=t.clientVersion,this.engineHash=t.engineVersion,this.logEmitter=t.logEmitter,this.tracingHelper=t.tracingHelper}apiKey(){return this.headerBuilder.apiKey}version(){return this.engineHash}async start(){this.startPromise!==void 0&&await this.startPromise,this.startPromise=(async()=>{let[t,r]=this.extractHostAndApiKey();this.host=t,this.headerBuilder=new Gn({apiKey:r,tracingHelper:this.tracingHelper,logLevel:this.config.logLevel,logQueries:this.config.logQueries,engineHash:this.engineHash}),this.remoteClientVersion=await xs(t,this.config),$r("host",this.host)})(),await this.startPromise}async stop(){}propagateResponseExtensions(t){t?.logs?.length&&t.logs.forEach(r=>{switch(r.level){case"debug":case"trace":$r(r);break;case"error":case"warn":case"info":{this.logEmitter.emit(r.level,{timestamp:Jn(r.timestamp),message:r.attributes.message??"",target:r.target});break}case"query":{this.logEmitter.emit("query",{query:r.attributes.query??"",timestamp:Jn(r.timestamp),duration:r.attributes.duration_ms??0,params:r.attributes.params??"",target:r.target});break}default:r.level}}),t?.traces?.length&&this.tracingHelper.dispatchEngineSpans(t.traces)}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the remote query engine')}async url(t){return await this.start(),`https://${this.host}/${this.remoteClientVersion}/${this.inlineSchemaHash}/${t}`}async uploadSchema(){let t={name:"schemaUpload",internal:!0};return this.tracingHelper.runInChildSpan(t,async()=>{let r=await Je(await this.url("schema"),{method:"PUT",headers:this.headerBuilder.build(),body:this.inlineSchema,clientVersion:this.clientVersion});r.ok||$r("schema response status",r.status);let n=await Xt(r,this.clientVersion);if(n)throw this.logEmitter.emit("warn",{message:`Error while uploading schema: ${n.message}`,timestamp:new Date,target:""}),n;this.logEmitter.emit("info",{message:`Schema (re)uploaded (hash: ${this.inlineSchemaHash})`,timestamp:new Date,target:""})})}request(t,{traceparent:r,interactiveTransaction:n,customDataProxyFetch:i}){return this.requestInternal({body:t,traceparent:r,interactiveTransaction:n,customDataProxyFetch:i})}async requestBatch(t,{traceparent:r,transaction:n,customDataProxyFetch:i}){let o=n?.kind==="itx"?n.options:void 0,s=Fr(t,n);return(await this.requestInternal({body:s,customDataProxyFetch:i,interactiveTransaction:o,traceparent:r})).map(l=>(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l?this.convertProtocolErrorsToClientError(l.errors):l))}requestInternal({body:t,traceparent:r,customDataProxyFetch:n,interactiveTransaction:i}){return this.withRetry({actionGerund:"querying",callback:async({logHttpCall:o})=>{let s=i?`${i.payload.endpoint}/graphql`:await this.url("graphql");o(s);let a=await Je(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r,interactiveTransaction:i}),body:JSON.stringify(t),clientVersion:this.clientVersion},n);a.ok||$r("graphql response status",a.status),await this.handleError(await Xt(a,this.clientVersion));let l=await a.json();if(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l)throw this.convertProtocolErrorsToClientError(l.errors);return"batchResult"in l?l.batchResult:l}})}async transaction(t,r,n){let i={start:"starting",commit:"committing",rollback:"rolling back"};return this.withRetry({actionGerund:`${i[t]} transaction`,callback:async({logHttpCall:o})=>{if(t==="start"){let s=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel}),a=await this.url("transaction/start");o(a);let l=await Je(a,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),body:s,clientVersion:this.clientVersion});await this.handleError(await Xt(l,this.clientVersion));let d=await l.json(),{extensions:g}=d;g&&this.propagateResponseExtensions(g);let h=d.id,v=d["data-proxy"].endpoint;return{id:h,payload:{endpoint:v}}}else{let s=`${n.payload.endpoint}/${t}`;o(s);let a=await Je(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),clientVersion:this.clientVersion});await this.handleError(await Xt(a,this.clientVersion));let l=await a.json(),{extensions:d}=l;d&&this.propagateResponseExtensions(d);return}}})}extractHostAndApiKey(){let t={clientVersion:this.clientVersion},r=Object.keys(this.inlineDatasources)[0],n=mt({inlineDatasources:this.inlineDatasources,overrideDatasources:this.config.overrideDatasources,clientVersion:this.clientVersion,env:this.env}),i;try{i=new URL(n)}catch{throw new qe(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t)}let{protocol:o,host:s,searchParams:a}=i;if(o!=="prisma:"&&o!=="prisma+postgres:")throw new qe(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t);let l=a.get("api_key");if(l===null||l.length<1)throw new qe(`Error validating datasource \`${r}\`: the URL must contain a valid API key`,t);return[s,l]}metrics(){throw new Ve("Metrics are not yet supported for Accelerate",{clientVersion:this.clientVersion})}async withRetry(t){for(let r=0;;r++){let n=i=>{this.logEmitter.emit("info",{message:`Calling ${i} (n=${r})`,timestamp:new Date,target:""})};try{return await t.callback({logHttpCall:n})}catch(i){if(!(i instanceof ne)||!i.isRetryable)throw i;if(r>=Ps)throw i instanceof ft?i.cause:i;this.logEmitter.emit("warn",{message:`Attempt ${r+1}/${Ps} failed for ${t.actionGerund}: ${i.message??"(unknown)"}`,timestamp:new Date,target:""});let o=await hs(r);this.logEmitter.emit("warn",{message:`Retrying after ${o}ms`,timestamp:new Date,target:""})}}}async handleError(t){if(t instanceof je)throw await this.uploadSchema(),new ft({clientVersion:this.clientVersion,cause:t});if(t)throw t}convertProtocolErrorsToClientError(t){return t.length===1?_r(t[0],this.config.clientVersion,this.config.activeProvider):new se(JSON.stringify(t),{clientVersion:this.config.clientVersion})}applyPendingMigrations(){throw new Error("Method not implemented.")}};function vs({copyEngine:e=!0},t){let r;try{r=mt({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...y.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||r?.startsWith("prisma+postgres://"));e&&n&&mr("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=Pt(t.generator),o=n||!e,s=!!t.adapter,a=i==="library",l=i==="binary";if(o&&s||s){let d;throw d=["Prisma Client was configured to use the `adapter` option but it was imported via its `/edge` endpoint.","Please either remove the `/edge` endpoint or remove the `adapter` from the Prisma Client constructor."],new X(d.join(` +`),{clientVersion:t.clientVersion})}if(o)return new tr(t);throw new X("Invalid client engine type, please use `library` or `binary`",{clientVersion:t.clientVersion})}f();u();c();p();m();function qr({generator:e}){return e?.previewFeatures??[]}f();u();c();p();m();var Ts=e=>({command:e});f();u();c();p();m();f();u();c();p();m();var Cs=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);f();u();c();p();m();function ht(e){try{return As(e,"fast")}catch{return As(e,"slow")}}function As(e,t){return JSON.stringify(e.map(r=>Ss(r,t)))}function Ss(e,t){if(Array.isArray(e))return e.map(r=>Ss(r,t));if(typeof e=="bigint")return{prisma__type:"bigint",prisma__value:e.toString()};if(tt(e))return{prisma__type:"date",prisma__value:e.toJSON()};if(ve.isDecimal(e))return{prisma__type:"decimal",prisma__value:e.toJSON()};if(w.Buffer.isBuffer(e))return{prisma__type:"bytes",prisma__value:e.toString("base64")};if(vc(e))return{prisma__type:"bytes",prisma__value:w.Buffer.from(e).toString("base64")};if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{prisma__type:"bytes",prisma__value:w.Buffer.from(r,n,i).toString("base64")}}return typeof e=="object"&&t==="slow"?Is(e):e}function vc(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function Is(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(Rs);let t={};for(let r of Object.keys(e))t[r]=Rs(e[r]);return t}function Rs(e){return typeof e=="bigint"?e.toString():Is(e)}f();u();c();p();m();var Tc=["$connect","$disconnect","$on","$transaction","$use","$extends"],Os=Tc;var Cc=/^(\s*alter\s)/i,ks=Z("prisma:client");function Qn(e,t,r,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&r.length>0&&Cc.exec(t))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var Wn=({clientMethod:e,activeProvider:t})=>r=>{let n="",i;if(_o(r))n=r.sql,i={values:ht(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:ht(s||[]),__prismaRawParameters__:!0}}else switch(t){case"sqlite":case"mysql":{n=r.sql,i={values:ht(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:ht(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=Cs(r),i={values:ht(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?ks(`prisma.${e}(${n}, ${i.values})`):ks(`prisma.${e}(${n})`),{query:n,parameters:i}},Ds={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new le(t,r)}},Ms={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};f();u();c();p();m();function Hn(e){return function(r){let n,i=(o=e)=>{try{return o===void 0||o?.kind==="itx"?n??=Ns(r(o)):Ns(r(o))}catch(s){return Promise.reject(s)}};return{then(o,s){return i().then(o,s)},catch(o){return i().catch(o)},finally(o){return i().finally(o)},requestTransaction(o){let s=i(o);return s.requestTransaction?s.requestTransaction(o):s},[Symbol.toStringTag]:"PrismaPromise"}}}function Ns(e){return typeof e.then=="function"?e:Promise.resolve(e)}f();u();c();p();m();var Ac={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(e,t){return t()}},Kn=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}dispatchEngineSpans(t){return this.getGlobalTracingHelper().dispatchEngineSpans(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){return globalThis.PRISMA_INSTRUMENTATION?.helper??Ac}};function Fs(){return new Kn}f();u();c();p();m();function _s(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}f();u();c();p();m();function Ls(e){return typeof e=="string"?e:e.reduce((t,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?t:t&&(r==="info"||t==="info")?"info":n},void 0)}f();u();c();p();m();var Vr=class{constructor(){this._middlewares=[]}use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};f();u();c();p();m();var $s=Le(Hi());f();u();c();p();m();function jr(e){return typeof e.batchRequestIdx=="number"}f();u();c();p();m();function Bs(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(zn(e.query.arguments)),t.push(zn(e.query.selection)),t.join("")}function zn(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n=="object"&&n!==null?`(${r} ${zn(n)})`:r}).join(" ")})`}f();u();c();p();m();var Rc={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateOne:!0,upsertOne:!0};function Yn(e){return Rc[e]}f();u();c();p();m();var Jr=class{constructor(t){this.options=t;this.tickActive=!1;this.batches={}}request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,y.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;iGe("bigint",r));case"bytes-array":return t.map(r=>Ge("bytes",r));case"decimal-array":return t.map(r=>Ge("decimal",r));case"datetime-array":return t.map(r=>Ge("datetime",r));case"date-array":return t.map(r=>Ge("date",r));case"time-array":return t.map(r=>Ge("time",r));default:return t}}function Us(e){let t=[],r=Sc(e);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(h=>h.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),d=n.some(h=>Yn(h.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:Oc(o),containsWrite:d,customDataProxyFetch:i})).map((h,v)=>{if(h instanceof Error)return h;try{return this.mapQueryEngineResult(n[v],h)}catch(S){return S}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?qs(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:Yn(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:Bs(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=this.unpack(i,t,r);return y.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(Ic(t),kc(t,i))throw t;if(t instanceof oe&&Dc(t)){let d=Vs(t.meta);Or({args:o,errors:[d],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let l=t.message;if(n&&(l=xr({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat==="pretty",message:l})),l=this.sanitizeMessage(l),t.code){let d=s?{modelName:s,...t.meta}:t.meta;throw new oe(l,{code:t.code,clientVersion:this.client._clientVersion,meta:d,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new Se(l,this.client._clientVersion);if(t instanceof se)throw new se(l,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof G)throw new G(l,this.client._clientVersion);if(t instanceof Se)throw new Se(l,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,$s.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(d=>d!=="select"&&d!=="include"),a=Mn(o,s),l=i==="queryRaw"?Us(a):At(a);return n?n(l):l}get[Symbol.toStringTag](){return"RequestHandler"}};function Oc(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:qs(e)};xe(e,"Unknown transaction kind")}}function qs(e){return{id:e.id,payload:e.payload}}function kc(e,t){return jr(e)&&t?.kind==="batch"&&e.batchRequestIdx!==t.index}function Dc(e){return e.code==="P2009"||e.code==="P2012"}function Vs(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map(Vs)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}f();u();c();p();m();var js="6.1.0";var Js=js;f();u();c();p();m();var Ks=Le(yn());f();u();c();p();m();var U=class extends Error{constructor(t){super(t+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};_(U,"PrismaClientConstructorValidationError");var Gs=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],Qs=["pretty","colorless","minimal"],Ws=["info","query","warn","error"],Nc={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new U(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=yt(r,t)||` Available datasources: ${t.join(", ")}`;throw new U(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new U(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new U(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new U(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(e,t)=>{if(e===null)return;if(e===void 0)throw new U('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!qr(t).includes("driverAdapters"))throw new U('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(Pt()==="binary")throw new U('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:e=>{if(typeof e<"u"&&typeof e!="string")throw new U(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!="string")throw new U(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`);if(!Qs.includes(e)){let t=yt(e,Qs);throw new U(`Invalid errorFormat ${e} provided to PrismaClient constructor.${t}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new U(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`);function t(r){if(typeof r=="string"&&!Ws.includes(r)){let n=yt(r,Ws);throw new U(`Invalid log level "${r}" provided to PrismaClient constructor.${n}`)}}for(let r of e){t(r);let n={level:t,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=yt(i,o);throw new U(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r=="object")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new U(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let t=e.maxWait;if(t!=null&&t<=0)throw new U(`Invalid value ${t} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=e.timeout;if(r!=null&&r<=0)throw new U(`Invalid value ${r} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,t)=>{if(typeof e!="object")throw new U('"omit" option is expected to be an object.');if(e===null)throw new U('"omit" option can not be `null`');let r=[];for(let[n,i]of Object.entries(e)){let o=_c(n,t.runtimeDataModel);if(!o){r.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(d=>d.name===s);if(!l){r.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(l.relationName){r.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&r.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(r.length>0)throw new U(Lc(e,r))},__internal:e=>{if(!e)return;let t=["debug","engine","configOverride"];if(typeof e!="object")throw new U(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`);for(let[r]of Object.entries(e))if(!t.includes(r)){let n=yt(r,t);throw new U(`Invalid property ${JSON.stringify(r)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function zs(e,t){for(let[r,n]of Object.entries(e)){if(!Gs.includes(r)){let i=yt(r,Gs);throw new U(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}Nc[r](n,t)}if(e.datasourceUrl&&e.datasources)throw new U('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function yt(e,t){if(t.length===0||typeof e!="string")return"";let r=Fc(e,t);return r?` Did you mean "${r}"?`:""}function Fc(e,t){if(t.length===0)return null;let r=t.map(i=>({value:i,distance:(0,Ks.default)(e,i)}));r.sort((i,o)=>i.distanceet(n)===t);if(r)return e[r]}function Lc(e,t){let r=lt(e);for(let o of t)switch(o.kind){case"UnknownModel":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Ir(r,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}f();u();c();p();m();function Ys(e){return e.length===0?Promise.resolve([]):new Promise((t,r)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?r(i):t(n)))},l=d=>{o||(o=!0,r(d))};for(let d=0;d{n[d]=g,a()},g=>{if(!jr(g)){l(g);return}g.batchRequestIdx===d?l(g):(i||(i=g),a())})})}var Fe=Z("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var Bc={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},Uc=Symbol.for("prisma.client.transaction.id"),$c={id:0,nextId(){return++this.id}};function qc(e){class t{constructor(n){this._originalClient=this;this._middlewares=new Vr;this._createPrismaPromise=Hn();this.$extends=es;e=n?.__internal?.configOverride?.(e)??e,fs(e),n&&zs(n,e);let i=new pr().on("error",()=>{});this._extensions=ut.empty(),this._previewFeatures=qr(e),this._clientVersion=e.clientVersion??Js,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=Fs();let o={rootEnvPath:e.relativeEnvPaths.rootEnvPath&&xt.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&xt.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=kn(n.adapter);let l=e.activeProvider==="postgresql"?"postgres":e.activeProvider;if(s.provider!==l)throw new G(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${l}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new G("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=e.injectableEdgeEnv?.();try{let l=n??{},d=l.__internal??{},g=d.debug===!0;g&&Z.enable("prisma:client");let h=xt.resolve(e.dirname,e.relativePath);Pi.existsSync(h)||(h=e.dirname),Fe("dirname",e.dirname),Fe("relativePath",e.relativePath),Fe("cwd",h);let v=d.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:y.env.NODE_ENV==="production"?this._errorFormat="minimal":y.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:h,dirname:e.dirname,enableDebugLogs:g,allowTriggerPanic:v.allowTriggerPanic,datamodelPath:xt.join(e.dirname,e.filename??"schema.prisma"),prismaPath:v.binaryPath??void 0,engineEndpoint:v.endpoint,generator:e.generator,showColors:this._errorFormat==="pretty",logLevel:l.log&&Ls(l.log),logQueries:l.log&&!!(typeof l.log=="string"?l.log==="query":l.log.find(S=>typeof S=="string"?S==="query":S.level==="query")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:ds(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:mt,getBatchRequestPayload:Fr,prismaGraphQLToJSError:_r,PrismaClientUnknownRequestError:se,PrismaClientInitializationError:G,PrismaClientKnownRequestError:oe,debug:Z("prisma:client:accelerateEngine"),engineVersion:Xs.version,clientVersion:e.clientVersion}},Fe("clientVersion",e.clientVersion),this._engine=vs(e,this._engineConfig),this._requestHandler=new Gr(this,i),l.log)for(let S of l.log){let A=typeof S=="string"?S:S.emit==="stdout"?S.level:null;A&&this.$on(A,R=>{Tt.log(`${Tt.tags[A]??""}`,R.message||R.query)})}this._metrics=new Bt(this._engine)}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=qt(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i)}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{Li()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:Wn({clientMethod:i,activeProvider:a}),callsite:Ne(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=Zs(n,i);return Qn(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new X("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(Qn(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!=="mongodb")throw new X(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:Ts,callsite:Ne(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:Wn({clientMethod:i,activeProvider:a}),callsite:Ne(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...Zs(n,i));throw new X("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new X("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=$c.nextId(),s=_s(n.length),a=n.map((l,d)=>{if(l?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let g=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,h={kind:"batch",id:o,index:d,isolationLevel:g,lock:s};return l.requestTransaction?.(h)??l});return Ys(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),l;try{let d={kind:"itx",...a};l=await n(this._createItxClient(d)),await this._engine.transaction("commit",o,a)}catch(d){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),d}return l}_createItxClient(n){return qt(Ee(Xo(this),[ee("_appliedParent",()=>this._appliedParent._createItxClient(n)),ee("_createPrismaPromise",()=>Hn(n)),ee(Uc,()=>n.id),ct(Os)]))}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??Bc,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async d=>{let g=this._middlewares.get(++a);if(g)return this._tracingHelper.runInChildSpan(s.middleware,M=>g(d,N=>(M?.end(),l(N))));let{runInTransaction:h,args:v,...S}=d,A={...n,...S};v&&(A.args=i.middlewareArgsToRequestArgs(v)),n.transaction!==void 0&&h===!1&&delete A.transaction;let R=await as(this,A);return A.model?ns({result:R,modelName:A.model,args:A.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):R};return this._tracingHelper.runInChildSpan(s.operation,()=>l(o))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:d,transaction:g,unpacker:h,otelParentCtx:v,customDataProxyFetch:S}){try{n=d?d(n):n;let A={name:"serialize"},R=this._tracingHelper.runInChildSpan(A,()=>Tn({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return Z.enabled("prisma:client")&&(Fe("Prisma Client call:"),Fe(`prisma.${i}(${jo(n)})`),Fe("Generated request:"),Fe(JSON.stringify(R,null,2)+` +`)),g?.kind==="batch"&&await g.lock,this._requestHandler.request({protocolQuery:R,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:g,unpacker:h,otelParentCtx:v,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:S})}catch(A){throw A.clientVersion=this._clientVersion,A}}get $metrics(){if(!this._hasPreviewFlag("metrics"))throw new X("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:this._clientVersion});return this._metrics}_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}}return t}function Zs(e,t){return Vc(e)?[new le(e,t),Ds]:[e,Ms]}function Vc(e){return Array.isArray(e)&&Array.isArray(e.raw)}f();u();c();p();m();var jc=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function Jc(e){return new Proxy(e,{get(t,r){if(r in t)return t[r];if(!jc.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}f();u();c();p();m();var export_warnEnvConflicts=void 0;export{_i as Debug,ve as Decimal,Ei as Extensions,Bt as MetricsClient,G as PrismaClientInitializationError,oe as PrismaClientKnownRequestError,Se as PrismaClientRustPanicError,se as PrismaClientUnknownRequestError,X as PrismaClientValidationError,xi as Public,le as Sql,_u as defineDmmfProperty,At as deserializeJsonResponse,Fu as dmmfToRuntimeDataModel,Ju as empty,qc as getPrismaClient,Ln as getRuntime,ju as join,Jc as makeStrictEnum,Bu as makeTypedQueryFactory,En as objectEnumValues,Uo as raw,Tn as serializeJsonQuery,Pn as skip,$o as sqltag,export_warnEnvConflicts as warnEnvConflicts,mr as warnOnce}; +//# sourceMappingURL=edge-esm.js.map diff --git a/mods/identity/src/generated/@prisma/client/runtime/edge.js b/mods/identity/src/generated/@prisma/client/runtime/edge.js new file mode 100644 index 000000000..9dc678171 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/runtime/edge.js @@ -0,0 +1,31 @@ +"use strict";var ua=Object.create;var sr=Object.defineProperty;var ca=Object.getOwnPropertyDescriptor;var pa=Object.getOwnPropertyNames;var ma=Object.getPrototypeOf,fa=Object.prototype.hasOwnProperty;var Re=(e,t)=>()=>(e&&(t=e(e=0)),t);var _e=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ar=(e,t)=>{for(var r in t)sr(e,r,{get:t[r],enumerable:!0})},ni=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of pa(t))!fa.call(e,i)&&i!==r&&sr(e,i,{get:()=>t[i],enumerable:!(n=ca(t,i))||n.enumerable});return e};var Le=(e,t,r)=>(r=e!=null?ua(ma(e)):{},ni(t||!e||!e.__esModule?sr(r,"default",{value:e,enumerable:!0}):r,e)),da=e=>ni(sr({},"__esModule",{value:!0}),e);var y,u=Re(()=>{"use strict";y={nextTick:(e,...t)=>{setTimeout(()=>{e(...t)},0)},env:{},version:"",cwd:()=>"/",stderr:{},argv:["/bin/node"]}});var b,c=Re(()=>{"use strict";b=globalThis.performance??(()=>{let e=Date.now();return{now:()=>Date.now()-e}})()});var E,p=Re(()=>{"use strict";E=()=>{};E.prototype=E});var m=Re(()=>{"use strict"});var Pi=_e(Ke=>{"use strict";f();u();c();p();m();var li=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ga=li(e=>{"use strict";e.byteLength=l,e.toByteArray=g,e.fromByteArray=S;var t=[],r=[],n=typeof Uint8Array<"u"?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(o=0,s=i.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var M=A.indexOf("=");M===-1&&(M=R);var N=M===R?0:4-M%4;return[M,N]}function l(A){var R=a(A),M=R[0],N=R[1];return(M+N)*3/4-N}function d(A,R,M){return(R+M)*3/4-M}function g(A){var R,M=a(A),N=M[0],B=M[1],D=new n(d(A,N,B)),I=0,ae=B>0?N-4:N,J;for(J=0;J>16&255,D[I++]=R>>8&255,D[I++]=R&255;return B===2&&(R=r[A.charCodeAt(J)]<<2|r[A.charCodeAt(J+1)]>>4,D[I++]=R&255),B===1&&(R=r[A.charCodeAt(J)]<<10|r[A.charCodeAt(J+1)]<<4|r[A.charCodeAt(J+2)]>>2,D[I++]=R>>8&255,D[I++]=R&255),D}function h(A){return t[A>>18&63]+t[A>>12&63]+t[A>>6&63]+t[A&63]}function v(A,R,M){for(var N,B=[],D=R;Dae?ae:I+D));return N===1?(R=A[M-1],B.push(t[R>>2]+t[R<<4&63]+"==")):N===2&&(R=(A[M-2]<<8)+A[M-1],B.push(t[R>>10]+t[R>>4&63]+t[R<<2&63]+"=")),B.join("")}}),ha=li(e=>{e.read=function(t,r,n,i,o){var s,a,l=o*8-i-1,d=(1<>1,h=-7,v=n?o-1:0,S=n?-1:1,A=t[r+v];for(v+=S,s=A&(1<<-h)-1,A>>=-h,h+=l;h>0;s=s*256+t[r+v],v+=S,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=i;h>0;a=a*256+t[r+v],v+=S,h-=8);if(s===0)s=1-g;else{if(s===d)return a?NaN:(A?-1:1)*(1/0);a=a+Math.pow(2,i),s=s-g}return(A?-1:1)*a*Math.pow(2,s-i)},e.write=function(t,r,n,i,o,s){var a,l,d,g=s*8-o-1,h=(1<>1,S=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,A=i?0:s-1,R=i?1:-1,M=r<0||r===0&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(l=isNaN(r)?1:0,a=h):(a=Math.floor(Math.log(r)/Math.LN2),r*(d=Math.pow(2,-a))<1&&(a--,d*=2),a+v>=1?r+=S/d:r+=S*Math.pow(2,1-v),r*d>=2&&(a++,d/=2),a+v>=h?(l=0,a=h):a+v>=1?(l=(r*d-1)*Math.pow(2,o),a=a+v):(l=r*Math.pow(2,v-1)*Math.pow(2,o),a=0));o>=8;t[n+A]=l&255,A+=R,l/=256,o-=8);for(a=a<0;t[n+A]=a&255,A+=R,a/=256,g-=8);t[n+A-R]|=M*128}}),tn=ga(),We=ha(),ii=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ke.Buffer=T;Ke.SlowBuffer=Pa;Ke.INSPECT_MAX_BYTES=50;var lr=2147483647;Ke.kMaxLength=lr;T.TYPED_ARRAY_SUPPORT=ya();!T.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function ya(){try{let e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch{return!1}}Object.defineProperty(T.prototype,"parent",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.buffer}});Object.defineProperty(T.prototype,"offset",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.byteOffset}});function xe(e){if(e>lr)throw new RangeError('The value "'+e+'" is invalid for option "size"');let t=new Uint8Array(e);return Object.setPrototypeOf(t,T.prototype),t}function T(e,t,r){if(typeof e=="number"){if(typeof t=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return on(e)}return ui(e,t,r)}T.poolSize=8192;function ui(e,t,r){if(typeof e=="string")return Ea(e,t);if(ArrayBuffer.isView(e))return ba(e);if(e==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(me(e,ArrayBuffer)||e&&me(e.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(me(e,SharedArrayBuffer)||e&&me(e.buffer,SharedArrayBuffer)))return pi(e,t,r);if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=e.valueOf&&e.valueOf();if(n!=null&&n!==e)return T.from(n,t,r);let i=xa(e);if(i)return i;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]=="function")return T.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}T.from=function(e,t,r){return ui(e,t,r)};Object.setPrototypeOf(T.prototype,Uint8Array.prototype);Object.setPrototypeOf(T,Uint8Array);function ci(e){if(typeof e!="number")throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function wa(e,t,r){return ci(e),e<=0?xe(e):t!==void 0?typeof r=="string"?xe(e).fill(t,r):xe(e).fill(t):xe(e)}T.alloc=function(e,t,r){return wa(e,t,r)};function on(e){return ci(e),xe(e<0?0:sn(e)|0)}T.allocUnsafe=function(e){return on(e)};T.allocUnsafeSlow=function(e){return on(e)};function Ea(e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!T.isEncoding(t))throw new TypeError("Unknown encoding: "+t);let r=mi(e,t)|0,n=xe(r),i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}function rn(e){let t=e.length<0?0:sn(e.length)|0,r=xe(t);for(let n=0;n=lr)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+lr.toString(16)+" bytes");return e|0}function Pa(e){return+e!=e&&(e=0),T.alloc(+e)}T.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==T.prototype};T.compare=function(e,t){if(me(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),me(t,Uint8Array)&&(t=T.from(t,t.offset,t.byteLength)),!T.isBuffer(e)||!T.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let r=e.length,n=t.length;for(let i=0,o=Math.min(r,n);in.length?(T.isBuffer(o)||(o=T.from(o)),o.copy(n,i)):Uint8Array.prototype.set.call(n,o,i);else if(T.isBuffer(o))o.copy(n,i);else throw new TypeError('"list" argument must be an Array of Buffers');i+=o.length}return n};function mi(e,t){if(T.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||me(e,ArrayBuffer))return e.byteLength;if(typeof e!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);let r=e.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return nn(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return xi(e).length;default:if(i)return n?-1:nn(e).length;t=(""+t).toLowerCase(),i=!0}}T.byteLength=mi;function va(e,t,r){let n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return Ma(this,t,r);case"utf8":case"utf-8":return di(this,t,r);case"ascii":return ka(this,t,r);case"latin1":case"binary":return Da(this,t,r);case"base64":return Ia(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Na(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}T.prototype._isBuffer=!0;function Be(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}T.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tt&&(e+=" ... "),""};ii&&(T.prototype[ii]=T.prototype.inspect);T.prototype.compare=function(e,t,r,n,i){if(me(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),!T.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(t===void 0&&(t=0),r===void 0&&(r=e?e.length:0),n===void 0&&(n=0),i===void 0&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;let o=i-n,s=r-t,a=Math.min(o,s),l=this.slice(n,i),d=e.slice(t,r);for(let g=0;g2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,ln(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=T.from(t,n)),T.isBuffer(t))return t.length===0?-1:oi(e,t,r,n,i);if(typeof t=="number")return t=t&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):oi(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function oi(e,t,r,n,i){let o=1,s=e.length,a=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;o=2,s/=2,a/=2,r/=2}function l(g,h){return o===1?g[h]:g.readUInt16BE(h*o)}let d;if(i){let g=-1;for(d=r;ds&&(r=s-a),d=r;d>=0;d--){let g=!0;for(let h=0;hi&&(n=i)):n=i;let o=t.length;n>o/2&&(n=o/2);let s;for(s=0;s>>0,isFinite(r)?(r=r>>>0,n===void 0&&(n="utf8")):(n=r,r=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let i=this.length-t;if((r===void 0||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return Ta(this,e,t,r);case"utf8":case"utf-8":return Ca(this,e,t,r);case"ascii":case"latin1":case"binary":return Aa(this,e,t,r);case"base64":return Ra(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Sa(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}};T.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Ia(e,t,r){return t===0&&r===e.length?tn.fromByteArray(e):tn.fromByteArray(e.slice(t,r))}function di(e,t,r){r=Math.min(e.length,r);let n=[],i=t;for(;i239?4:o>223?3:o>191?2:1;if(i+a<=r){let l,d,g,h;switch(a){case 1:o<128&&(s=o);break;case 2:l=e[i+1],(l&192)===128&&(h=(o&31)<<6|l&63,h>127&&(s=h));break;case 3:l=e[i+1],d=e[i+2],(l&192)===128&&(d&192)===128&&(h=(o&15)<<12|(l&63)<<6|d&63,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:l=e[i+1],d=e[i+2],g=e[i+3],(l&192)===128&&(d&192)===128&&(g&192)===128&&(h=(o&15)<<18|(l&63)<<12|(d&63)<<6|g&63,h>65535&&h<1114112&&(s=h))}}s===null?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),i+=a}return Oa(n)}var si=4096;function Oa(e){let t=e.length;if(t<=si)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn)&&(r=n);let i="";for(let o=t;or&&(e=r),t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),tr)throw new RangeError("Trying to access beyond buffer length")}T.prototype.readUintLE=T.prototype.readUIntLE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n};T.prototype.readUint8=T.prototype.readUInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]};T.prototype.readUint16LE=T.prototype.readUInt16LE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]|this[e+1]<<8};T.prototype.readUint16BE=T.prototype.readUInt16BE=function(e,t){return e=e>>>0,t||W(e,2,this.length),this[e]<<8|this[e+1]};T.prototype.readUint32LE=T.prototype.readUInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};T.prototype.readUint32BE=T.prototype.readUInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};T.prototype.readBigUInt64LE=Se(function(e){e=e>>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&xt(e,this.length-8);let n=t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,i=this[++e]+this[++e]*2**8+this[++e]*2**16+r*2**24;return BigInt(n)+(BigInt(i)<>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&xt(e,this.length-8);let n=t*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],i=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+r;return(BigInt(n)<>>0,t=t>>>0,r||W(e,t,this.length);let n=this[e],i=1,o=0;for(;++o=i&&(n-=Math.pow(2,8*t)),n};T.prototype.readIntBE=function(e,t,r){e=e>>>0,t=t>>>0,r||W(e,t,this.length);let n=t,i=1,o=this[e+--n];for(;n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o};T.prototype.readInt8=function(e,t){return e=e>>>0,t||W(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};T.prototype.readInt16LE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e]|this[e+1]<<8;return r&32768?r|4294901760:r};T.prototype.readInt16BE=function(e,t){e=e>>>0,t||W(e,2,this.length);let r=this[e+1]|this[e]<<8;return r&32768?r|4294901760:r};T.prototype.readInt32LE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};T.prototype.readInt32BE=function(e,t){return e=e>>>0,t||W(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};T.prototype.readBigInt64LE=Se(function(e){e=e>>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&xt(e,this.length-8);let n=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(r<<24);return(BigInt(n)<>>0,He(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&xt(e,this.length-8);let n=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(n)<>>0,t||W(e,4,this.length),We.read(this,e,!0,23,4)};T.prototype.readFloatBE=function(e,t){return e=e>>>0,t||W(e,4,this.length),We.read(this,e,!1,23,4)};T.prototype.readDoubleLE=function(e,t){return e=e>>>0,t||W(e,8,this.length),We.read(this,e,!0,52,8)};T.prototype.readDoubleBE=function(e,t){return e=e>>>0,t||W(e,8,this.length),We.read(this,e,!1,52,8)};function te(e,t,r,n,i,o){if(!T.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}T.prototype.writeUintLE=T.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;te(this,e,t,r,s,0)}let i=1,o=0;for(this[t]=e&255;++o>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;te(this,e,t,r,s,0)}let i=r-1,o=1;for(this[t+i]=e&255;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r};T.prototype.writeUint8=T.prototype.writeUInt8=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,1,255,0),this[t]=e&255,t+1};T.prototype.writeUint16LE=T.prototype.writeUInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeUint16BE=T.prototype.writeUInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeUint32LE=T.prototype.writeUInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4};T.prototype.writeUint32BE=T.prototype.writeUInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};function gi(e,t,r,n,i){bi(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,r}function hi(e,t,r,n,i){bi(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o=o>>8,e[r+6]=o,o=o>>8,e[r+5]=o,o=o>>8,e[r+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s=s>>8,e[r+2]=s,s=s>>8,e[r+1]=s,s=s>>8,e[r]=s,r+8}T.prototype.writeBigUInt64LE=Se(function(e,t=0){return gi(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeBigUInt64BE=Se(function(e,t=0){return hi(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);te(this,e,t,r,a-1,-a)}let i=0,o=1,s=0;for(this[t]=e&255;++i>0)-s&255;return t+r};T.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);te(this,e,t,r,a-1,-a)}let i=r-1,o=1,s=0;for(this[t+i]=e&255;--i>=0&&(o*=256);)e<0&&s===0&&this[t+i+1]!==0&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+r};T.prototype.writeInt8=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=e&255,t+1};T.prototype.writeInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4};T.prototype.writeInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||te(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};T.prototype.writeBigInt64LE=Se(function(e,t=0){return gi(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});T.prototype.writeBigInt64BE=Se(function(e,t=0){return hi(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function yi(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function wi(e,t,r,n,i){return t=+t,r=r>>>0,i||yi(e,t,r,4,34028234663852886e22,-34028234663852886e22),We.write(e,t,r,n,23,4),r+4}T.prototype.writeFloatLE=function(e,t,r){return wi(this,e,t,!0,r)};T.prototype.writeFloatBE=function(e,t,r){return wi(this,e,t,!1,r)};function Ei(e,t,r,n,i){return t=+t,r=r>>>0,i||yi(e,t,r,8,17976931348623157e292,-17976931348623157e292),We.write(e,t,r,n,52,8),r+8}T.prototype.writeDoubleLE=function(e,t,r){return Ei(this,e,t,!0,r)};T.prototype.writeDoubleBE=function(e,t,r){return Ei(this,e,t,!1,r)};T.prototype.copy=function(e,t,r,n){if(!T.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),!n&&n!==0&&(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>0,r=r===void 0?this.length:r>>>0,e||(e=0);let i;if(typeof e=="number")for(i=t;i2**32?i=ai(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=ai(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);function ai(e){let t="",r=e.length,n=e[0]==="-"?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function Fa(e,t,r){He(t,"offset"),(e[t]===void 0||e[t+r]===void 0)&&xt(t,e.length-(r+1))}function bi(e,t,r,n,i,o){if(e>r||e3?t===0||t===BigInt(0)?a=`>= 0${s} and < 2${s} ** ${(o+1)*8}${s}`:a=`>= -(2${s} ** ${(o+1)*8-1}${s}) and < 2 ** ${(o+1)*8-1}${s}`:a=`>= ${t}${s} and <= ${r}${s}`,new Qe.ERR_OUT_OF_RANGE("value",a,e)}Fa(n,i,o)}function He(e,t){if(typeof e!="number")throw new Qe.ERR_INVALID_ARG_TYPE(t,"number",e)}function xt(e,t,r){throw Math.floor(e)!==e?(He(e,r),new Qe.ERR_OUT_OF_RANGE(r||"offset","an integer",e)):t<0?new Qe.ERR_BUFFER_OUT_OF_BOUNDS:new Qe.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}var _a=/[^+/0-9A-Za-z-_]/g;function La(e){if(e=e.split("=")[0],e=e.trim().replace(_a,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function nn(e,t){t=t||1/0;let r,n=e.length,i=null,o=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}else if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return o}function Ba(e){let t=[];for(let r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function xi(e){return tn.toByteArray(La(e))}function ur(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function me(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function ln(e){return e!==e}var $a=function(){let e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function Se(e){return typeof BigInt>"u"?qa:e}function qa(){throw new Error("BigInt not supported")}});var w,f=Re(()=>{"use strict";w=Le(Pi())});function Va(){return!1}var ja,Ja,Ai,Ri=Re(()=>{"use strict";f();u();c();p();m();ja={},Ja={existsSync:Va,promises:ja},Ai=Ja});function za(...e){return e.join("/")}function Ya(...e){return e.join("/")}var qi,Za,Xa,vt,Vi=Re(()=>{"use strict";f();u();c();p();m();qi="/",Za={sep:qi},Xa={resolve:za,posix:Za,join:Ya,sep:qi},vt=Xa});var dr,Ji=Re(()=>{"use strict";f();u();c();p();m();dr=class{constructor(){this.events={}}on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),this}emit(t,...r){return this.events[t]?(this.events[t].forEach(n=>{n(...r)}),!0):!1}}});var Qi=_e((lf,Gi)=>{"use strict";f();u();c();p();m();Gi.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var Ki=_e((bf,Hi)=>{"use strict";f();u();c();p();m();Hi.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var Yi=_e((Af,zi)=>{"use strict";f();u();c();p();m();var ol=Ki();zi.exports=e=>typeof e=="string"?e.replace(ol(),""):e});var Tn=_e((mh,go)=>{"use strict";f();u();c();p();m();go.exports=function(){function e(t,r,n,i,o){return tn?n+1:t+1:i===o?r:r+1}return function(t,r){if(t===r)return 0;if(t.length>r.length){var n=t;t=r,r=n}for(var i=t.length,o=r.length;i>0&&t.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s{Hu.exports={name:"@prisma/engines-version",version:"6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"11f085a2012c0f4778414c8db2651556ee0ef959"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.67",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var Jo=_e(()=>{"use strict";f();u();c();p();m()});var Wc={};ar(Wc,{Debug:()=>fn,Decimal:()=>de,Extensions:()=>un,MetricsClient:()=>pt,PrismaClientInitializationError:()=>G,PrismaClientKnownRequestError:()=>re,PrismaClientRustPanicError:()=>ve,PrismaClientUnknownRequestError:()=>ne,PrismaClientValidationError:()=>Y,Public:()=>cn,Sql:()=>oe,defineDmmfProperty:()=>$o,deserializeJsonResponse:()=>et,dmmfToRuntimeDataModel:()=>Uo,empty:()=>Qo,getPrismaClient:()=>sa,getRuntime:()=>Jr,join:()=>Go,makeStrictEnum:()=>aa,makeTypedQueryFactory:()=>qo,objectEnumValues:()=>Or,raw:()=>_n,serializeJsonQuery:()=>_r,skip:()=>Fr,sqltag:()=>Ln,warnEnvConflicts:()=>void 0,warnOnce:()=>Rt});module.exports=da(Wc);f();u();c();p();m();var un={};ar(un,{defineExtension:()=>vi,getExtensionContext:()=>Ti});f();u();c();p();m();f();u();c();p();m();function vi(e){return typeof e=="function"?e:t=>t.$extends(e)}f();u();c();p();m();function Ti(e){return e}var cn={};ar(cn,{validator:()=>Ci});f();u();c();p();m();f();u();c();p();m();function Ci(...e){return t=>t}f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();var pn,Si,Ii,Oi,ki=!0;typeof y<"u"&&({FORCE_COLOR:pn,NODE_DISABLE_COLORS:Si,NO_COLOR:Ii,TERM:Oi}=y.env||{},ki=y.stdout&&y.stdout.isTTY);var Ga={enabled:!Si&&Ii==null&&Oi!=="dumb"&&(pn!=null&&pn!=="0"||ki)};function V(e,t){let r=new RegExp(`\\x1b\\[${t}m`,"g"),n=`\x1B[${e}m`,i=`\x1B[${t}m`;return function(o){return!Ga.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(r,i+n):o)+i}}var Jp=V(0,0),cr=V(1,22),pr=V(2,22),Gp=V(3,23),Di=V(4,24),Qp=V(7,27),Wp=V(8,28),Hp=V(9,29),Kp=V(30,39),ze=V(31,39),Mi=V(32,39),Ni=V(33,39),Fi=V(34,39),zp=V(35,39),_i=V(36,39),Yp=V(37,39),Li=V(90,39),Zp=V(90,39),Xp=V(40,49),em=V(41,49),tm=V(42,49),rm=V(43,49),nm=V(44,49),im=V(45,49),om=V(46,49),sm=V(47,49);f();u();c();p();m();var Qa=100,Bi=["green","yellow","blue","magenta","cyan","red"],mr=[],Ui=Date.now(),Wa=0,mn=typeof y<"u"?y.env:{};globalThis.DEBUG??=mn.DEBUG??"";globalThis.DEBUG_COLORS??=mn.DEBUG_COLORS?mn.DEBUG_COLORS==="true":!0;var Pt={enable(e){typeof e=="string"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG="",e},enabled(e){let t=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),r=t.some(i=>i===""||i[0]==="-"?!1:e.match(RegExp(i.split("*").join(".*")+"$"))),n=t.some(i=>i===""||i[0]!=="-"?!1:e.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return r&&!n},log:(...e)=>{let[t,r,...n]=e;(console.warn??console.log)(`${t} ${r}`,...n)},formatters:{}};function Ha(e){let t={color:Bi[Wa++%Bi.length],enabled:Pt.enabled(e),namespace:e,log:Pt.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=t;if(n.length!==0&&mr.push([o,...n]),mr.length>Qa&&mr.shift(),Pt.enabled(o)||i){let l=n.map(g=>typeof g=="string"?g:Ka(g)),d=`+${Date.now()-Ui}ms`;Ui=Date.now(),a(o,...l,d)}};return new Proxy(r,{get:(n,i)=>t[i],set:(n,i,o)=>t[i]=o})}var fn=new Proxy(Ha,{get:(e,t)=>Pt[t],set:(e,t,r)=>Pt[t]=r});function Ka(e,t=2){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))return"[Circular *]";r.add(i)}else if(typeof i=="bigint")return i.toString();return i},t)}function $i(){mr.length=0}var X=fn;f();u();c();p();m();f();u();c();p();m();var ji="library";function Tt(e){let t=el();return t||(e?.config.engineType==="library"?"library":e?.config.engineType==="binary"?"binary":ji)}function el(){let e=y.env.PRISMA_CLIENT_ENGINE_TYPE;return e==="library"?"library":e==="binary"?"binary":void 0}f();u();c();p();m();f();u();c();p();m();var fr;(t=>{let e;(I=>(I.findUnique="findUnique",I.findUniqueOrThrow="findUniqueOrThrow",I.findFirst="findFirst",I.findFirstOrThrow="findFirstOrThrow",I.findMany="findMany",I.create="create",I.createMany="createMany",I.createManyAndReturn="createManyAndReturn",I.update="update",I.updateMany="updateMany",I.upsert="upsert",I.delete="delete",I.deleteMany="deleteMany",I.groupBy="groupBy",I.count="count",I.aggregate="aggregate",I.findRaw="findRaw",I.aggregateRaw="aggregateRaw"))(e=t.ModelAction||={})})(fr||={});var At={};ar(At,{error:()=>nl,info:()=>rl,log:()=>tl,query:()=>il,should:()=>Wi,tags:()=>Ct,warn:()=>dn});f();u();c();p();m();var Ct={error:ze("prisma:error"),warn:Ni("prisma:warn"),info:_i("prisma:info"),query:Fi("prisma:query")},Wi={warn:()=>!y.env.PRISMA_DISABLE_WARNINGS};function tl(...e){console.log(...e)}function dn(e,...t){Wi.warn()&&console.warn(`${Ct.warn} ${e}`,...t)}function rl(e,...t){console.info(`${Ct.info} ${e}`,...t)}function nl(e,...t){console.error(`${Ct.error} ${e}`,...t)}function il(e,...t){console.log(`${Ct.query} ${e}`,...t)}f();u();c();p();m();function Pe(e,t){throw new Error(t)}f();u();c();p();m();function gn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}f();u();c();p();m();var hn=(e,t)=>e.reduce((r,n)=>(r[t(n)]=n,r),{});f();u();c();p();m();function Ye(e,t){let r={};for(let n of Object.keys(e))r[n]=t(e[n],n);return r}f();u();c();p();m();function yn(e,t){if(e.length===0)return;let r=e[0];for(let n=1;n{Zi.has(e)||(Zi.add(e),dn(t,...r))};var G=class e extends Error{constructor(t,r,n){super(t),this.name="PrismaClientInitializationError",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};_(G,"PrismaClientInitializationError");f();u();c();p();m();var re=class extends Error{constructor(t,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(t),this.name="PrismaClientKnownRequestError",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};_(re,"PrismaClientKnownRequestError");f();u();c();p();m();var ve=class extends Error{constructor(t,r){super(t),this.name="PrismaClientRustPanicError",this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};_(ve,"PrismaClientRustPanicError");f();u();c();p();m();var ne=class extends Error{constructor(t,{clientVersion:r,batchRequestIdx:n}){super(t),this.name="PrismaClientUnknownRequestError",this.clientVersion=r,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};_(ne,"PrismaClientUnknownRequestError");f();u();c();p();m();var Y=class extends Error{constructor(r,{clientVersion:n}){super(r);this.name="PrismaClientValidationError";this.clientVersion=n}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};_(Y,"PrismaClientValidationError");f();u();c();p();m();f();u();c();p();m();var Ze=9e15,De=1e9,wn="0123456789abcdef",hr="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",yr="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",En={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-Ze,maxE:Ze,crypto:!1},no,Te,F=!0,Er="[DecimalError] ",ke=Er+"Invalid argument: ",io=Er+"Precision limit exceeded",oo=Er+"crypto unavailable",so="[object Decimal]",Z=Math.floor,Q=Math.pow,sl=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,al=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,ll=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,ao=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,pe=1e7,k=7,ul=9007199254740991,cl=hr.length-1,bn=yr.length-1,C={toStringTag:so};C.absoluteValue=C.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),O(e)};C.ceil=function(){return O(new this.constructor(this),this.e+1,2)};C.clampedTo=C.clamp=function(e,t){var r,n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(ke+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new i(n)};C.comparedTo=C.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,d=e.s;if(!s||!a)return!l||!d?NaN:l!==d?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-d:0;if(l!==d)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,t=0,r=na[t]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};C.cosine=C.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+k,n.rounding=1,r=pl(n,mo(n,r)),n.precision=e,n.rounding=t,O(Te==2||Te==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};C.cubeRoot=C.cbrt=function(){var e,t,r,n,i,o,s,a,l,d,g=this,h=g.constructor;if(!g.isFinite()||g.isZero())return new h(g);for(F=!1,o=g.s*Q(g.s*g,1/3),!o||Math.abs(o)==1/0?(r=K(g.d),e=g.e,(o=(e-r.length+1)%3)&&(r+=o==1||o==-2?"0":"00"),o=Q(r,1/3),e=Z((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?r="5e"+e:(r=o.toExponential(),r=r.slice(0,r.indexOf("e")+1)+e),n=new h(r),n.s=g.s):n=new h(o.toString()),s=(e=h.precision)+3;;)if(a=n,l=a.times(a).times(a),d=l.plus(g),n=$(d.plus(g).times(a),d.plus(l),s+2,1),K(a.d).slice(0,s)===(r=K(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r=="9999"||!i&&r=="4999"){if(!i&&(O(a,e+1,0),a.times(a).times(a).eq(g))){n=a;break}s+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(O(n,e+1,1),t=!n.times(n).times(n).eq(g));break}return F=!0,O(n,e,h.rounding,t)};C.decimalPlaces=C.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-Z(this.e/k))*k,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};C.dividedBy=C.div=function(e){return $(this,new this.constructor(e))};C.dividedToIntegerBy=C.divToInt=function(e){var t=this,r=t.constructor;return O($(t,new r(e),0,1,1),r.precision,r.rounding)};C.equals=C.eq=function(e){return this.cmp(e)===0};C.floor=function(){return O(new this.constructor(this),this.e+1,3)};C.greaterThan=C.gt=function(e){return this.cmp(e)>0};C.greaterThanOrEqualTo=C.gte=function(e){var t=this.cmp(e);return t==1||t===0};C.hyperbolicCosine=C.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/xr(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=Xe(s,1,o.times(t),new s(1),!0);for(var l,d=e,g=new s(8);d--;)l=o.times(o),o=a.minus(l.times(g.minus(l.times(g))));return O(o,s.precision=r,s.rounding=n,!0)};C.hyperbolicSine=C.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=Xe(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/xr(5,e)),i=Xe(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),d=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(d))))}return o.precision=t,o.rounding=r,O(i,t,r,!0)};C.hyperbolicTangent=C.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,$(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};C.inverseCosine=C.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),i=r.precision,o=r.rounding;return n!==-1?n===0?t.isNeg()?ce(r,i,o):new r(0):new r(NaN):t.isZero()?ce(r,i+4,o).times(.5):(r.precision=i+6,r.rounding=1,t=t.asin(),e=ce(r,i+4,o).times(.5),r.precision=i,r.rounding=o,e.minus(t))};C.inverseHyperbolicCosine=C.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,F=!1,r=r.times(r).minus(1).sqrt().plus(r),F=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};C.inverseHyperbolicSine=C.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,F=!1,r=r.times(r).plus(1).sqrt().plus(r),F=!0,n.precision=e,n.rounding=t,r.ln())};C.inverseHyperbolicTangent=C.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?O(new o(i),e,t,!0):(o.precision=r=n-i.e,i=$(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};C.inverseSine=C.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,t!==-1?t===0?(e=ce(o,r+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))};C.inverseTangent=C.atan=function(){var e,t,r,n,i,o,s,a,l,d=this,g=d.constructor,h=g.precision,v=g.rounding;if(d.isFinite()){if(d.isZero())return new g(d);if(d.abs().eq(1)&&h+4<=bn)return s=ce(g,h+4,v).times(.25),s.s=d.s,s}else{if(!d.s)return new g(NaN);if(h+4<=bn)return s=ce(g,h+4,v).times(.5),s.s=d.s,s}for(g.precision=a=h+10,g.rounding=1,r=Math.min(28,a/k+2|0),e=r;e;--e)d=d.div(d.times(d).plus(1).sqrt().plus(1));for(F=!1,t=Math.ceil(a/k),n=1,l=d.times(d),s=new g(d),i=d;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<this.d.length-2};C.isNaN=function(){return!this.s};C.isNegative=C.isNeg=function(){return this.s<0};C.isPositive=C.isPos=function(){return this.s>0};C.isZero=function(){return!!this.d&&this.d[0]===0};C.lessThan=C.lt=function(e){return this.cmp(e)<0};C.lessThanOrEqualTo=C.lte=function(e){return this.cmp(e)<1};C.logarithm=C.log=function(e){var t,r,n,i,o,s,a,l,d=this,g=d.constructor,h=g.precision,v=g.rounding,S=5;if(e==null)e=new g(10),t=!0;else{if(e=new g(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new g(NaN);t=e.eq(10)}if(r=d.d,d.s<0||!r||!r[0]||d.eq(1))return new g(r&&!r[0]?-1/0:d.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10===0;)i/=10;o=i!==1}if(F=!1,a=h+S,s=Oe(d,a),n=t?wr(g,a+10):Oe(e,a),l=$(s,n,a,1),St(l.d,i=h,v))do if(a+=10,s=Oe(d,a),n=t?wr(g,a+10):Oe(e,a),l=$(s,n,a,1),!o){+K(l.d).slice(i+1,i+15)+1==1e14&&(l=O(l,h+1,0));break}while(St(l.d,i+=10,v));return F=!0,O(l,h,v)};C.minus=C.sub=function(e){var t,r,n,i,o,s,a,l,d,g,h,v,S=this,A=S.constructor;if(e=new A(e),!S.d||!e.d)return!S.s||!e.s?e=new A(NaN):S.d?e.s=-e.s:e=new A(e.d||S.s!==e.s?S:NaN),e;if(S.s!=e.s)return e.s=-e.s,S.plus(e);if(d=S.d,v=e.d,a=A.precision,l=A.rounding,!d[0]||!v[0]){if(v[0])e.s=-e.s;else if(d[0])e=new A(S);else return new A(l===3?-0:0);return F?O(e,a,l):e}if(r=Z(e.e/k),g=Z(S.e/k),d=d.slice(),o=g-r,o){for(h=o<0,h?(t=d,o=-o,s=v.length):(t=v,r=g,s=d.length),n=Math.max(Math.ceil(a/k),s)+2,o>n&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for(n=d.length,s=v.length,h=n0;--n)d[s++]=0;for(n=v.length;n>o;){if(d[--n]s?o+1:s+1,i>s&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for(s=d.length,i=g.length,s-i<0&&(i=s,r=g,g=d,d=r),t=0;i;)t=(d[--i]=d[i]+g[i]+t)/pe|0,d[i]%=pe;for(t&&(d.unshift(t),++n),s=d.length;d[--s]==0;)d.pop();return e.d=d,e.e=br(d,n),F?O(e,a,l):e};C.precision=C.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(ke+e);return r.d?(t=lo(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};C.round=function(){var e=this,t=e.constructor;return O(new t(e),e.e+1,t.rounding)};C.sine=C.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+k,n.rounding=1,r=fl(n,mo(n,r)),n.precision=e,n.rounding=t,O(Te>2?r.neg():r,e,t,!0)):new n(NaN)};C.squareRoot=C.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,l=s.e,d=s.s,g=s.constructor;if(d!==1||!a||!a[0])return new g(!d||d<0&&(!a||a[0])?NaN:a?s:1/0);for(F=!1,d=Math.sqrt(+s),d==0||d==1/0?(t=K(a),(t.length+l)%2==0&&(t+="0"),d=Math.sqrt(t),l=Z((l+1)/2)-(l<0||l%2),d==1/0?t="5e"+l:(t=d.toExponential(),t=t.slice(0,t.indexOf("e")+1)+l),n=new g(t)):n=new g(d.toString()),r=(l=g.precision)+3;;)if(o=n,n=o.plus($(s,o,r+2,1)).times(.5),K(o.d).slice(0,r)===(t=K(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t=="9999"||!i&&t=="4999"){if(!i&&(O(o,l+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(O(n,l+1,1),e=!n.times(n).eq(s));break}return F=!0,O(n,l,g.rounding,e)};C.tangent=C.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=$(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,O(Te==2||Te==4?r.neg():r,e,t,!0)):new n(NaN)};C.times=C.mul=function(e){var t,r,n,i,o,s,a,l,d,g=this,h=g.constructor,v=g.d,S=(e=new h(e)).d;if(e.s*=g.s,!v||!v[0]||!S||!S[0])return new h(!e.s||v&&!v[0]&&!S||S&&!S[0]&&!v?NaN:!v||!S?e.s/0:e.s*0);for(r=Z(g.e/k)+Z(e.e/k),l=v.length,d=S.length,l=0;){for(t=0,i=l+n;i>n;)a=o[i]+S[n]*v[i-n-1]+t,o[i--]=a%pe|0,t=a/pe|0;o[i]=(o[i]+t)%pe|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=br(o,r),F?O(e,h.precision,h.rounding):e};C.toBinary=function(e,t){return vn(this,2,e,t)};C.toDecimalPlaces=C.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(ie(e,0,De),t===void 0?t=n.rounding:ie(t,0,8),O(r,e+r.e+1,t))};C.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=fe(n,!0):(ie(e,0,De),t===void 0?t=i.rounding:ie(t,0,8),n=O(new i(n),e+1,t),r=fe(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r};C.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?r=fe(i):(ie(e,0,De),t===void 0?t=o.rounding:ie(t,0,8),n=O(new o(i),e+i.e+1,t),r=fe(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r};C.toFraction=function(e){var t,r,n,i,o,s,a,l,d,g,h,v,S=this,A=S.d,R=S.constructor;if(!A)return new R(S);if(d=r=new R(1),n=l=new R(0),t=new R(n),o=t.e=lo(A)-S.e-1,s=o%k,t.d[0]=Q(10,s<0?k+s:s),e==null)e=o>0?t:d;else{if(a=new R(e),!a.isInt()||a.lt(d))throw Error(ke+a);e=a.gt(t)?o>0?t:d:a}for(F=!1,a=new R(K(A)),g=R.precision,R.precision=o=A.length*k*2;h=$(a,t,0,1,1),i=r.plus(h.times(n)),i.cmp(e)!=1;)r=n,n=i,i=d,d=l.plus(h.times(i)),l=i,i=t,t=a.minus(h.times(i)),a=i;return i=$(e.minus(r),n,0,1,1),l=l.plus(i.times(d)),r=r.plus(i.times(n)),l.s=d.s=S.s,v=$(d,n,o,1).minus(S).abs().cmp($(l,r,o,1).minus(S).abs())<1?[d,n]:[l,r],R.precision=g,F=!0,v};C.toHexadecimal=C.toHex=function(e,t){return vn(this,16,e,t)};C.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:ie(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(F=!1,r=$(r,e,0,t,1).times(e),F=!0,O(r)):(e.s=r.s,r=e),r};C.toNumber=function(){return+this};C.toOctal=function(e,t){return vn(this,8,e,t)};C.toPower=C.pow=function(e){var t,r,n,i,o,s,a=this,l=a.constructor,d=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(Q(+a,d));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return O(a,n,o);if(t=Z(e.e/k),t>=e.d.length-1&&(r=d<0?-d:d)<=ul)return i=uo(l,a,r,n),e.s<0?new l(1).div(i):O(i,n,o);if(s=a.s,s<0){if(tl.maxE+1||t0?s/0:0):(F=!1,l.rounding=a.s=1,r=Math.min(12,(t+"").length),i=xn(e.times(Oe(a,n+r)),n),i.d&&(i=O(i,n+5,1),St(i.d,n,o)&&(t=n+10,i=O(xn(e.times(Oe(a,t+r)),t),t+5,1),+K(i.d).slice(n+1,n+15)+1==1e14&&(i=O(i,n+1,0)))),i.s=s,F=!0,l.rounding=o,O(i,n,o))};C.toPrecision=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=fe(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(ie(e,1,De),t===void 0?t=i.rounding:ie(t,0,8),n=O(new i(n),e,t),r=fe(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r};C.toSignificantDigits=C.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(ie(e,1,De),t===void 0?t=n.rounding:ie(t,0,8)),O(new n(r),e,t)};C.toString=function(){var e=this,t=e.constructor,r=fe(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r};C.truncated=C.trunc=function(){return O(new this.constructor(this),this.e+1,1)};C.valueOf=C.toJSON=function(){var e=this,t=e.constructor,r=fe(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};function K(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;tr)throw Error(ke+e)}function St(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=k,i=0):(i=Math.ceil((t+1)/k),t%=k),o=Q(10,k-t),a=e[i]%o|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==Q(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==Q(10,t-3)-1,s}function gr(e,t,r){for(var n,i=[0],o,s=0,a=e.length;sr-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}function pl(e,t){var r,n,i;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),i=(1/xr(4,r)).toString()):(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=Xe(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var $=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function t(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;ai[a]?1:-1;break}return l}function r(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]1;)n.shift()}return function(n,i,o,s,a,l){var d,g,h,v,S,A,R,M,N,B,D,I,ae,J,Zr,nr,bt,Xr,ue,ir,or=n.constructor,en=n.s==i.s?1:-1,z=n.d,q=i.d;if(!z||!z[0]||!q||!q[0])return new or(!n.s||!i.s||(z?q&&z[0]==q[0]:!q)?NaN:z&&z[0]==0||!q?en*0:en/0);for(l?(S=1,g=n.e-i.e):(l=pe,S=k,g=Z(n.e/S)-Z(i.e/S)),ue=q.length,bt=z.length,N=new or(en),B=N.d=[],h=0;q[h]==(z[h]||0);h++);if(q[h]>(z[h]||0)&&g--,o==null?(J=o=or.precision,s=or.rounding):a?J=o+(n.e-i.e)+1:J=o,J<0)B.push(1),A=!0;else{if(J=J/S+2|0,h=0,ue==1){for(v=0,q=q[0],J++;(h1&&(q=e(q,v,l),z=e(z,v,l),ue=q.length,bt=z.length),nr=ue,D=z.slice(0,ue),I=D.length;I=l/2&&++Xr;do v=0,d=t(q,D,ue,I),d<0?(ae=D[0],ue!=I&&(ae=ae*l+(D[1]||0)),v=ae/Xr|0,v>1?(v>=l&&(v=l-1),R=e(q,v,l),M=R.length,I=D.length,d=t(R,D,M,I),d==1&&(v--,r(R,ue=10;v/=10)h++;N.e=h+g*S-1,O(N,a?o+N.e+1:o,s,A)}return N}}();function O(e,t,r,n){var i,o,s,a,l,d,g,h,v,S=e.constructor;e:if(t!=null){if(h=e.d,!h)return e;for(i=1,a=h[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=k,s=t,g=h[v=0],l=g/Q(10,i-s-1)%10|0;else if(v=Math.ceil((o+1)/k),a=h.length,v>=a)if(n){for(;a++<=v;)h.push(0);g=l=0,i=1,o%=k,s=o-k+1}else break e;else{for(g=a=h[v],i=1;a>=10;a/=10)i++;o%=k,s=o-k+i,l=s<0?0:g/Q(10,i-s-1)%10|0}if(n=n||t<0||h[v+1]!==void 0||(s<0?g:g%Q(10,i-s-1)),d=r<4?(l||n)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||n||r==6&&(o>0?s>0?g/Q(10,i-s):0:h[v-1])%10&1||r==(e.s<0?8:7)),t<1||!h[0])return h.length=0,d?(t-=e.e+1,h[0]=Q(10,(k-t%k)%k),e.e=-t||0):h[0]=e.e=0,e;if(o==0?(h.length=v,a=1,v--):(h.length=v+1,a=Q(10,k-o),h[v]=s>0?(g/Q(10,i-s)%Q(10,s)|0)*a:0),d)for(;;)if(v==0){for(o=1,s=h[0];s>=10;s/=10)o++;for(s=h[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,h[0]==pe&&(h[0]=1));break}else{if(h[v]+=a,h[v]!=pe)break;h[v--]=0,a=1}for(o=h.length;h[--o]===0;)h.pop()}return F&&(e.e>S.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+Ie(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+Ie(-i-1)+o,r&&(n=r-s)>0&&(o+=Ie(n))):i>=s?(o+=Ie(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+Ie(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=Ie(n))),o}function br(e,t){var r=e[0];for(t*=k;r>=10;r/=10)t++;return t}function wr(e,t,r){if(t>cl)throw F=!0,r&&(e.precision=r),Error(io);return O(new e(hr),t,1,!0)}function ce(e,t,r){if(t>bn)throw Error(io);return O(new e(yr),t,r,!0)}function lo(e){var t=e.length-1,r=t*k+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function Ie(e){for(var t="";e--;)t+="0";return t}function uo(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/k+4);for(F=!1;;){if(r%2&&(o=o.times(t),to(o.d,s)&&(i=!0)),r=Z(r/2),r===0){r=o.d.length-1,i&&o.d[r]===0&&++o.d[r];break}t=t.times(t),to(t.d,s)}return F=!0,o}function eo(e){return e.d[e.d.length-1]&1}function co(e,t,r){for(var n,i=new e(t[0]),o=0;++o17)return new v(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(F=!1,l=A):l=t,a=new v(.03125);e.e>-2;)e=e.times(a),h+=5;for(n=Math.log(Q(2,h))/Math.LN10*2+5|0,l+=n,r=o=s=new v(1),v.precision=l;;){if(o=O(o.times(e),l,1),r=r.times(++g),a=s.plus($(o,r,l,1)),K(a.d).slice(0,l)===K(s.d).slice(0,l)){for(i=h;i--;)s=O(s.times(s),l,1);if(t==null)if(d<3&&St(s.d,l-n,S,d))v.precision=l+=10,r=o=a=new v(1),g=0,d++;else return O(s,v.precision=A,S,F=!0);else return v.precision=A,s}s=a}}function Oe(e,t){var r,n,i,o,s,a,l,d,g,h,v,S=1,A=10,R=e,M=R.d,N=R.constructor,B=N.rounding,D=N.precision;if(R.s<0||!M||!M[0]||!R.e&&M[0]==1&&M.length==1)return new N(M&&!M[0]?-1/0:R.s!=1?NaN:M?0:R);if(t==null?(F=!1,g=D):g=t,N.precision=g+=A,r=K(M),n=r.charAt(0),Math.abs(o=R.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)R=R.times(e),r=K(R.d),n=r.charAt(0),S++;o=R.e,n>1?(R=new N("0."+r),o++):R=new N(n+"."+r.slice(1))}else return d=wr(N,g+2,D).times(o+""),R=Oe(new N(n+"."+r.slice(1)),g-A).plus(d),N.precision=D,t==null?O(R,D,B,F=!0):R;for(h=R,l=s=R=$(R.minus(1),R.plus(1),g,1),v=O(R.times(R),g,1),i=3;;){if(s=O(s.times(v),g,1),d=l.plus($(s,new N(i),g,1)),K(d.d).slice(0,g)===K(l.d).slice(0,g))if(l=l.times(2),o!==0&&(l=l.plus(wr(N,g+2,D).times(o+""))),l=$(l,new N(S),g,1),t==null)if(St(l.d,g-A,B,a))N.precision=g+=A,d=s=R=$(h.minus(1),h.plus(1),g,1),v=O(R.times(R),g,1),i=a=1;else return O(l,N.precision=D,B,F=!0);else return N.precision=D,l;l=d,i+=2}}function po(e){return String(e.s*e.s/0)}function Pn(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(n,i),t){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%k,r<0&&(n+=k),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),ao.test(t))return Pn(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(al.test(t))r=16,t=t.toLowerCase();else if(sl.test(t))r=2;else if(ll.test(t))r=8;else throw Error(ke+t);for(o=t.search(/p/i),o>0?(l=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,n=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=uo(n,new n(r),o,o*2)),d=gr(t,r,pe),g=d.length-1,o=g;d[o]===0;--o)d.pop();return o<0?new n(e.s*0):(e.e=br(d,g),e.d=d,F=!1,s&&(e=$(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?Q(2,l):Ue.pow(2,l))),F=!0,e)}function fl(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:Xe(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/xr(5,r)),t=Xe(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function Xe(e,t,r,n,i){var o,s,a,l,d=1,g=e.precision,h=Math.ceil(g/k);for(F=!1,l=r.times(r),a=new e(n);;){if(s=$(a.times(l),new e(t++*t++),g,1),a=i?n.plus(s):n.minus(s),n=$(s.times(l),new e(t++*t++),g,1),s=a.plus(n),s.d[h]!==void 0){for(o=h;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,d++}return F=!0,s.d.length=h+1,s}function xr(e,t){for(var r=e;--t;)r*=e;return r}function mo(e,t){var r,n=t.s<0,i=ce(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return Te=n?4:1,t;if(r=t.divToInt(i),r.isZero())Te=n?3:2;else{if(t=t.minus(r.times(i)),t.lte(o))return Te=eo(r)?n?2:3:n?4:1,t;Te=eo(r)?n?1:4:n?3:2}return t.minus(i).abs()}function vn(e,t,r,n){var i,o,s,a,l,d,g,h,v,S=e.constructor,A=r!==void 0;if(A?(ie(r,1,De),n===void 0?n=S.rounding:ie(n,0,8)):(r=S.precision,n=S.rounding),!e.isFinite())g=po(e);else{for(g=fe(e),s=g.indexOf("."),A?(i=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):i=t,s>=0&&(g=g.replace(".",""),v=new S(1),v.e=g.length-s,v.d=gr(fe(v),10,i),v.e=v.d.length),h=gr(g,10,i),o=l=h.length;h[--l]==0;)h.pop();if(!h[0])g=A?"0p+0":"0";else{if(s<0?o--:(e=new S(e),e.d=h,e.e=o,e=$(e,v,r,n,0,i),h=e.d,o=e.e,d=no),s=h[r],a=i/2,d=d||h[r+1]!==void 0,d=n<4?(s!==void 0||d)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||d||n===6&&h[r-1]&1||n===(e.s<0?8:7)),h.length=r,d)for(;++h[--r]>i-1;)h[r]=0,r||(++o,h.unshift(1));for(l=h.length;!h[l-1];--l);for(s=0,g="";s1)if(t==16||t==8){for(s=t==16?4:3,--l;l%s;l++)g+="0";for(h=gr(g,i,t),l=h.length;!h[l-1];--l);for(s=1,g="1.";sl)for(o-=l;o--;)g+="0";else ot)return e.length=t,!0}function dl(e){return new this(e).abs()}function gl(e){return new this(e).acos()}function hl(e){return new this(e).acosh()}function yl(e,t){return new this(e).plus(t)}function wl(e){return new this(e).asin()}function El(e){return new this(e).asinh()}function bl(e){return new this(e).atan()}function xl(e){return new this(e).atanh()}function Pl(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=ce(this,o,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?ce(this,n,i):new this(0),r.s=e.s):!e.d||t.isZero()?(r=ce(this,o,1).times(.5),r.s=e.s):t.s<0?(this.precision=o,this.rounding=1,r=this.atan($(e,t,o,1)),t=ce(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan($(e,t,o,1)),r}function vl(e){return new this(e).cbrt()}function Tl(e){return O(e=new this(e),e.e+1,2)}function Cl(e,t,r){return new this(e).clamp(t,r)}function Al(e){if(!e||typeof e!="object")throw Error(Er+"Object expected");var t,r,n,i=e.defaults===!0,o=["precision",1,De,"rounding",0,8,"toExpNeg",-Ze,0,"toExpPos",0,Ze,"maxE",0,Ze,"minE",-Ze,0,"modulo",0,9];for(t=0;t=o[t+1]&&n<=o[t+2])this[r]=n;else throw Error(ke+r+": "+n);if(r="crypto",i&&(this[r]=En[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(oo);else this[r]=!1;else throw Error(ke+r+": "+n);return this}function Rl(e){return new this(e).cos()}function Sl(e){return new this(e).cosh()}function fo(e){var t,r,n;function i(o){var s,a,l,d=this;if(!(d instanceof i))return new i(o);if(d.constructor=i,ro(o)){d.s=o.s,F?!o.d||o.e>i.maxE?(d.e=NaN,d.d=null):o.e=10;a/=10)s++;F?s>i.maxE?(d.e=NaN,d.d=null):s=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(oo);else for(;o=10;i/=10)n++;ne.highlight()},nu={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function iu({message:e,originalMethod:t,isPanic:r,callArguments:n}){return{functionName:`prisma.${t}()`,message:e,isPanic:r??!1,callArguments:n}}function ou({functionName:e,location:t,message:r,isPanic:n,contextLines:i,callArguments:o},s){let a=[""],l=t?" in":":";if(n?(a.push(s.red(`Oops, an unknown error occurred! This is ${s.bold("on us")}, you did nothing wrong.`)),a.push(s.red(`It occurred in the ${s.bold(`\`${e}\``)} invocation${l}`))):a.push(s.red(`Invalid ${s.bold(`\`${e}\``)} invocation${l}`)),t&&a.push(s.underline(su(t))),i){a.push("");let d=[i.toString()];o&&(d.push(o),d.push(s.dim(")"))),a.push(d.join("")),o&&a.push("")}else a.push(""),o&&a.push(o),a.push("");return a.push(r),a.join(` +`)}function su(e){let t=[e.fileName];return e.lineNumber&&t.push(String(e.lineNumber)),e.columnNumber&&t.push(String(e.columnNumber)),t.join(":")}function vr(e){let t=e.showColors?ru:nu,r;return typeof $getTemplateParameters<"u"?r=$getTemplateParameters(e,t):r=iu(e),ou(r,t)}f();u();c();p();m();var xo=Le(Tn());f();u();c();p();m();function wo(e,t,r){let n=Eo(e),i=au(n),o=uu(i);o?Tr(o,t,r):t.addErrorMessage(()=>"Unknown error")}function Eo(e){return e.errors.flatMap(t=>t.kind==="Union"?Eo(t):[t])}function au(e){let t=new Map,r=[];for(let n of e){if(n.kind!=="InvalidArgumentType"){r.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=t.get(i);o?t.set(i,{...n,argument:{...n.argument,typeNames:lu(o.argument.typeNames,n.argument.typeNames)}}):t.set(i,n)}return r.push(...t.values()),r}function lu(e,t){return[...new Set(e.concat(t))]}function uu(e){return yn(e,(t,r)=>{let n=ho(t),i=ho(r);return n!==i?n-i:yo(t)-yo(r)})}function ho(e){let t=0;return Array.isArray(e.selectionPath)&&(t+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(t+=e.argumentPath.length),t}function yo(e){switch(e.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}f();u();c();p();m();var le=class{constructor(t,r){this.name=t;this.value=r;this.isRequired=!1}makeRequired(){return this.isRequired=!0,this}write(t){let{colors:{green:r}}=t.context;t.addMarginSymbol(r(this.isRequired?"+":"?")),t.write(r(this.name)),this.isRequired||t.write(r("?")),t.write(r(": ")),typeof this.value=="string"?t.write(r(this.value)):t.write(this.value)}};f();u();c();p();m();f();u();c();p();m();var it=class{constructor(t=0,r){this.context=r;this.lines=[];this.currentLine="";this.currentIndent=0;this.currentIndent=t}write(t){return typeof t=="string"?this.currentLine+=t:t.write(this),this}writeJoined(t,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(t){return this.marginSymbol=t,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let t=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+t.slice(1):t}};f();u();c();p();m();f();u();c();p();m();var Cr=class{constructor(t){this.value=t}write(t){t.write(this.value)}markAsError(){this.value.markAsError()}};f();u();c();p();m();var Ar=e=>e,Rr={bold:Ar,red:Ar,green:Ar,dim:Ar,enabled:!1},bo={bold:cr,red:ze,green:Mi,dim:pr,enabled:!0},ot={write(e){e.writeLine(",")}};f();u();c();p();m();var ge=class{constructor(t){this.contents=t;this.isUnderlined=!1;this.color=t=>t}underline(){return this.isUnderlined=!0,this}setColor(t){return this.color=t,this}write(t){let r=t.getCurrentLineLength();t.write(this.color(this.contents)),this.isUnderlined&&t.afterNextNewline(()=>{t.write(" ".repeat(r)).writeLine(this.color("~".repeat(this.contents.length)))})}};f();u();c();p();m();var Me=class{constructor(){this.hasError=!1}markAsError(){return this.hasError=!0,this}};var st=class extends Me{constructor(){super(...arguments);this.items=[]}addItem(r){return this.items.push(new Cr(r)),this}getField(r){return this.items[r]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(n=>n.value.getPrintWidth()))+2}write(r){if(this.items.length===0){this.writeEmpty(r);return}this.writeWithItems(r)}writeEmpty(r){let n=new ge("[]");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithItems(r){let{colors:n}=r.context;r.writeLine("[").withIndent(()=>r.writeJoined(ot,this.items).newLine()).write("]"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(n.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var at=class e extends Me{constructor(){super(...arguments);this.fields={};this.suggestions=[]}addField(r){this.fields[r.name]=r}addSuggestion(r){this.suggestions.push(r)}getField(r){return this.fields[r]}getDeepField(r){let[n,...i]=r,o=this.getField(n);if(!o)return;let s=o;for(let a of i){let l;if(s.value instanceof e?l=s.value.getField(a):s.value instanceof st&&(l=s.value.getField(Number(a))),!l)return;s=l}return s}getDeepFieldValue(r){return r.length===0?this:this.getDeepField(r)?.value}hasField(r){return!!this.getField(r)}removeAllFields(){this.fields={}}removeField(r){delete this.fields[r]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(r){return this.getField(r)?.value}getDeepSubSelectionValue(r){let n=this;for(let i of r){if(!(n instanceof e))return;let o=n.getSubSelectionValue(i);if(!o)return;n=o}return n}getDeepSelectionParent(r){let n=this.getSelectionParent();if(!n)return;let i=n;for(let o of r){let s=i.value.getFieldValue(o);if(!s||!(s instanceof e))return;let a=s.getSelectionParent();if(!a)return;i=a}return i}getSelectionParent(){let r=this.getField("select")?.value.asObject();if(r)return{kind:"select",value:r};let n=this.getField("include")?.value.asObject();if(n)return{kind:"include",value:n}}getSubSelectionValue(r){return this.getSelectionParent()?.value.fields[r].value}getPrintWidth(){let r=Object.values(this.fields);return r.length==0?2:Math.max(...r.map(i=>i.getPrintWidth()))+2}write(r){let n=Object.values(this.fields);if(n.length===0&&this.suggestions.length===0){this.writeEmpty(r);return}this.writeWithContents(r,n)}asObject(){return this}writeEmpty(r){let n=new ge("{}");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithContents(r,n){r.writeLine("{").withIndent(()=>{r.writeJoined(ot,[...n,...this.suggestions]).newLine()}),r.write("}"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(r.context.colors.red("~".repeat(this.getPrintWidth())))})}};f();u();c();p();m();var H=class extends Me{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new ge(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};f();u();c();p();m();var It=class{constructor(){this.fields=[]}addField(t,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${t}: ${r}`))).addMarginSymbol(i(o("+")))}}),this}write(t){let{colors:{green:r}}=t.context;t.writeLine(r("{")).withIndent(()=>{t.writeJoined(ot,this.fields).newLine()}).write(r("}")).addMarginSymbol(r("+"))}};function Tr(e,t,r){switch(e.kind){case"MutuallyExclusiveFields":pu(e,t);break;case"IncludeOnScalar":mu(e,t);break;case"EmptySelection":fu(e,t,r);break;case"UnknownSelectionField":yu(e,t);break;case"InvalidSelectionValue":wu(e,t);break;case"UnknownArgument":Eu(e,t);break;case"UnknownInputField":bu(e,t);break;case"RequiredArgumentMissing":xu(e,t);break;case"InvalidArgumentType":Pu(e,t);break;case"InvalidArgumentValue":vu(e,t);break;case"ValueTooLarge":Tu(e,t);break;case"SomeFieldsMissing":Cu(e,t);break;case"TooManyFieldsGiven":Au(e,t);break;case"Union":wo(e,t,r);break;default:throw new Error("not implemented: "+e.kind)}}function pu(e,t){let r=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();r&&(r.getField(e.firstField)?.markAsError(),r.getField(e.secondField)?.markAsError()),t.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function mu(e,t){let[r,n]=Ot(e.selectionPath),i=e.outputType,o=t.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new le(s.name,"true"));t.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${kt(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function fu(e,t,r){let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){du(e,t,i);return}if(n.hasField("select")){gu(e,t);return}}if(r?.[tt(e.outputType.name)]){hu(e,t);return}t.addErrorMessage(()=>`Unknown field at "${e.selectionPath.join(".")} selection"`)}function du(e,t,r){r.removeAllFields();for(let n of e.outputType.fields)r.addSuggestion(new le(n.name,"false"));t.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function gu(e,t){let r=e.outputType,n=t.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),To(n,r)),t.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(r.name)} must not be empty. ${kt(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(r.name)} needs ${o.bold("at least one truthy value")}.`)}function hu(e,t){let r=new It;for(let i of e.outputType.fields)i.isRelation||r.addField(i.name,"false");let n=new le("omit",r).makeRequired();if(e.selectionPath.length===0)t.arguments.addSuggestion(n);else{let[i,o]=Ot(e.selectionPath),a=t.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new at;l.addSuggestion(n),a.value=l}}t.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function yu(e,t){let r=Co(e.selectionPath,t);if(r.parentKind!=="unknown"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case"select":To(n,e.outputType);break;case"include":Ru(n,e.outputType);break;case"omit":Su(n,e.outputType);break}}t.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${r.fieldName}\``)}`];return r.parentKind!=="unknown"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`),i.push(kt(n)),i.join(" ")})}function wu(e,t){let r=Co(e.selectionPath,t);r.parentKind!=="unknown"&&r.field.value.markAsError(),t.addErrorMessage(n=>`Invalid value for selection field \`${n.red(r.fieldName)}\`: ${e.underlyingError}`)}function Eu(e,t){let r=e.argumentPath[0],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),Iu(n,e.arguments)),t.addErrorMessage(i=>Po(i,r,e.arguments.map(o=>o.name)))}function bu(e,t){let[r,n]=Ot(e.argumentPath),i=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&Ao(o,e.inputType)}t.addErrorMessage(o=>Po(o,n,e.inputType.fields.map(s=>s.name)))}function Po(e,t,r){let n=[`Unknown argument \`${e.red(t)}\`.`],i=ku(t,r);return i&&n.push(`Did you mean \`${e.green(i)}\`?`),r.length>0&&n.push(kt(e)),n.join(" ")}function xu(e,t){let r;t.addErrorMessage(l=>r?.value instanceof H&&r.value.text==="null"?`Argument \`${l.green(o)}\` must not be ${l.red("null")}.`:`Argument \`${l.green(o)}\` is missing.`);let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=Ot(e.argumentPath),s=new It,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind==="object"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(" | "));a.addSuggestion(new le(o,s).makeRequired())}else{let l=e.inputTypes.map(vo).join(" | ");a.addSuggestion(new le(o,l).makeRequired())}}function vo(e){return e.kind==="list"?`${vo(e.elementType)}[]`:e.name}function Pu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=Sr("or",e.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(r)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function vu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(r)}\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push("."),e.argument.typeNames.length>0){let s=Sr("or",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function Tu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof H&&(i=s.text)}t.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(r)}\``),s.join(" ")})}function Cu(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&Ao(i,e.inputType)}t.addErrorMessage(i=>{let o=[`Argument \`${i.bold(r)}\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green("at least one of")} ${Sr("or",e.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(kt(i)),o.join(" ")})}function Au(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}t.addErrorMessage(o=>{let s=[`Argument \`${o.bold(r)}\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${Sr("and",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push("one."):s.push(`${e.constraints.maxFieldCount}.`),s.join(" ")})}function To(e,t){for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new le(r.name,"true"))}function Ru(e,t){for(let r of t.fields)r.isRelation&&!e.hasField(r.name)&&e.addSuggestion(new le(r.name,"true"))}function Su(e,t){for(let r of t.fields)!e.hasField(r.name)&&!r.isRelation&&e.addSuggestion(new le(r.name,"true"))}function Iu(e,t){for(let r of t)e.hasField(r.name)||e.addSuggestion(new le(r.name,r.typeNames.join(" | ")))}function Co(e,t){let[r,n]=Ot(e),i=t.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:"select",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:"include",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:"omit",field:l,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function Ao(e,t){if(t.kind==="object")for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new le(r.name,r.typeNames.join(" | ")))}function Ot(e){let t=[...e],r=t.pop();if(!r)throw new Error("unexpected empty path");return[t,r]}function kt({green:e,enabled:t}){return"Available options are "+(t?`listed in ${e("green")}`:"marked with ?")+"."}function Sr(e,t){if(t.length===1)return t[0];let r=[...t],n=r.pop();return`${r.join(", ")} ${e} ${n}`}var Ou=3;function ku(e,t){let r=1/0,n;for(let i of t){let o=(0,xo.default)(e,i);o>Ou||o`}};function lt(e){return e instanceof Dt}f();u();c();p();m();var Ir=Symbol(),Cn=new WeakMap,Ce=class{constructor(t){t===Ir?Cn.set(this,`Prisma.${this._getName()}`):Cn.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return Cn.get(this)}},Mt=class extends Ce{_getNamespace(){return"NullTypes"}},Nt=class extends Mt{};An(Nt,"DbNull");var Ft=class extends Mt{};An(Ft,"JsonNull");var _t=class extends Mt{};An(_t,"AnyNull");var Or={classes:{DbNull:Nt,JsonNull:Ft,AnyNull:_t},instances:{DbNull:new Nt(Ir),JsonNull:new Ft(Ir),AnyNull:new _t(Ir)}};function An(e,t){Object.defineProperty(e,"name",{value:t,configurable:!0})}f();u();c();p();m();var So=": ",kr=class{constructor(t,r){this.name=t;this.value=r;this.hasError=!1}markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+So.length}write(t){let r=new ge(this.name);this.hasError&&r.underline().setColor(t.context.colors.red),t.write(r).write(So).write(this.value)}};var Rn=class{constructor(t){this.errorMessages=[];this.arguments=t}write(t){t.write(this.arguments)}addErrorMessage(t){this.errorMessages.push(t)}renderAllMessages(t){return this.errorMessages.map(r=>r(t)).join(` +`)}};function ut(e){return new Rn(Io(e))}function Io(e){let t=new at;for(let[r,n]of Object.entries(e)){let i=new kr(r,Oo(n));t.addField(i)}return t}function Oo(e){if(typeof e=="string")return new H(JSON.stringify(e));if(typeof e=="number"||typeof e=="boolean")return new H(String(e));if(typeof e=="bigint")return new H(`${e}n`);if(e===null)return new H("null");if(e===void 0)return new H("undefined");if(nt(e))return new H(`new Prisma.Decimal("${e.toFixed()}")`);if(e instanceof Uint8Array)return w.Buffer.isBuffer(e)?new H(`Buffer.alloc(${e.byteLength})`):new H(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let t=Pr(e)?e.toISOString():"Invalid Date";return new H(`new Date("${t}")`)}return e instanceof Ce?new H(`Prisma.${e._getName()}`):lt(e)?new H(`prisma.${Ro(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?Du(e):typeof e=="object"?Io(e):new H(Object.prototype.toString.call(e))}function Du(e){let t=new st;for(let r of e)t.addItem(Oo(r));return t}function Dr(e,t){let r=t==="pretty"?bo:Rr,n=e.renderAllMessages(r),i=new it(0,{colors:r}).write(e).toString();return{message:n,args:i}}function Mr({args:e,errors:t,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=ut(e);for(let h of t)Tr(h,a,s);let{message:l,args:d}=Dr(a,r),g=vr({message:l,callsite:n,originalMethod:i,showColors:r==="pretty",callArguments:d});throw new Y(g,{clientVersion:o})}f();u();c();p();m();f();u();c();p();m();var he=class{constructor(){this._map=new Map}get(t){return this._map.get(t)?.value}set(t,r){this._map.set(t,{value:r})}getOrCreate(t,r){let n=this._map.get(t);if(n)return n.value;let i=r();return this.set(t,i),i}};f();u();c();p();m();function Lt(e){let t;return{get(){return t||(t={value:e()}),t.value}}}f();u();c();p();m();function ye(e){return e.replace(/^./,t=>t.toLowerCase())}f();u();c();p();m();function Do(e,t,r){let n=ye(r);return!t.result||!(t.result.$allModels||t.result[n])?e:Mu({...e,...ko(t.name,e,t.result.$allModels),...ko(t.name,e,t.result[n])})}function Mu(e){let t=new he,r=(n,i)=>t.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>r(o,i)):[n]));return Ye(e,n=>({...n,needs:r(n.name,new Set)}))}function ko(e,t,r){return r?Ye(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:Nu(t,o,i)})):{}}function Nu(e,t,r){let n=e?.[t]?.compute;return n?i=>r({...i,[t]:n(i)}):r}function Mo(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(e[n.name])for(let i of n.needs)r[i]=!0;return r}function No(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(!e[n.name])for(let i of n.needs)delete r[i];return r}var Nr=class{constructor(t,r){this.extension=t;this.previous=r;this.computedFieldsCache=new he;this.modelExtensionsCache=new he;this.queryCallbacksCache=new he;this.clientExtensions=Lt(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());this.batchCallbacks=Lt(()=>{let t=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?t.concat(r):t})}getAllComputedFields(t){return this.computedFieldsCache.getOrCreate(t,()=>Do(this.previous?.getAllComputedFields(t),this.extension,t))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(t){return this.modelExtensionsCache.getOrCreate(t,()=>{let r=ye(t);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(t):{...this.previous?.getAllModelExtensions(t),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(t,r){return this.queryCallbacksCache.getOrCreate(`${t}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(t,r)??[],i=[],o=this.extension.query;return!o||!(o[t]||o.$allModels||o[r]||o.$allOperations)?n:(o[t]!==void 0&&(o[t][r]!==void 0&&i.push(o[t][r]),o[t].$allOperations!==void 0&&i.push(o[t].$allOperations)),t!=="$none"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},ct=class e{constructor(t){this.head=t}static empty(){return new e}static single(t){return new e(new Nr(t))}isEmpty(){return this.head===void 0}append(t){return new e(new Nr(t,this.head))}getAllComputedFields(t){return this.head?.getAllComputedFields(t)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(t){return this.head?.getAllModelExtensions(t)}getAllQueryCallbacks(t,r){return this.head?.getAllQueryCallbacks(t,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};f();u();c();p();m();f();u();c();p();m();var Fo=Symbol(),Bt=class{constructor(t){if(t!==Fo)throw new Error("Skip instance can not be constructed directly")}ifUndefined(t){return t===void 0?Fr:t}},Fr=new Bt(Fo);function we(e){return e instanceof Bt}var Fu={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},_o="explicitly `undefined` values are not allowed";function _r({modelName:e,action:t,args:r,runtimeDataModel:n,extensions:i=ct.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:d,globalOmit:g}){let h=new Sn({runtimeDataModel:n,modelName:e,action:t,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:d,globalOmit:g});return{modelName:e,action:Fu[t],query:Ut(r,h)}}function Ut({select:e,include:t,...r}={},n){let i;return n.isPreviewFeatureOn("omitApi")&&(i=r.omit,delete r.omit),{arguments:Bo(r,n),selection:_u(e,t,i,n)}}function _u(e,t,r,n){return e?(t?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):r&&n.isPreviewFeatureOn("omitApi")&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),$u(e,n)):Lu(n,t,r)}function Lu(e,t,r){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),t&&Bu(n,t,e),e.isPreviewFeatureOn("omitApi")&&Uu(n,r,e),n}function Bu(e,t,r){for(let[n,i]of Object.entries(t)){if(we(i))continue;let o=r.nestSelection(n);if(In(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!=="object"&&r.throwValidationError({kind:"IncludeOnScalar",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){e[n]=Ut(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=Ut(i,o)}}function Uu(e,t,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...t},o=No(i,n);for(let[s,a]of Object.entries(o)){if(we(a))continue;In(a,r.nestSelection(s));let l=r.findField(s);n?.[s]&&!l||(e[s]=!a)}}function $u(e,t){let r={},n=t.getComputedFields(),i=Mo(e,n);for(let[o,s]of Object.entries(i)){if(we(s))continue;let a=t.nestSelection(o);In(s,a);let l=t.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||we(s)){r[o]=!1;continue}if(s===!0){l?.kind==="object"?r[o]=Ut({},a):r[o]=!0;continue}r[o]=Ut(s,a)}}return r}function Lo(e,t){if(e===null)return null;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="bigint")return{$type:"BigInt",value:String(e)};if(rt(e)){if(Pr(e))return{$type:"DateTime",value:e.toISOString()};t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(lt(e))return{$type:"FieldRef",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return qu(e,t);if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{$type:"Bytes",value:w.Buffer.from(r,n,i).toString("base64")}}if(Vu(e))return e.values;if(nt(e))return{$type:"Decimal",value:e.toFixed()};if(e instanceof Ce){if(e!==Or.instances[e._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:e._getName()}}if(ju(e))return e.toJSON();if(typeof e=="object")return Bo(e,t);t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function Bo(e,t){if(e.$type)return{$type:"Raw",value:e};let r={};for(let n in e){let i=e[n],o=t.nestArgument(n);we(i)||(i!==void 0?r[n]=Lo(i,o):t.isPreviewFeatureOn("strictUndefinedChecks")&&t.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:t.getSelectionPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:_o}))}return r}function qu(e,t){let r=[];for(let n=0;n({name:t.name,typeName:"boolean",isRelation:t.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(t){return this.params.previewFeatures.includes(t)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(t){return this.modelOrType?.fields.find(r=>r.name===t)}nestSelection(t){let r=this.findField(t),n=r?.kind==="object"?r.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(t)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[tt(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:Pe(this.params.action,"Unknown action")}}nestArgument(t){return new e({...this.params,argumentPath:this.params.argumentPath.concat(t)})}};f();u();c();p();m();var pt=class{constructor(t){this._engine=t}prometheus(t){return this._engine.metrics({format:"prometheus",...t})}json(t){return this._engine.metrics({format:"json",...t})}};f();u();c();p();m();function Uo(e){return{models:On(e.models),enums:On(e.enums),types:On(e.types)}}function On(e){let t={};for(let{name:r,...n}of e)t[r]=n;return t}function $o(e,t){let r=Lt(()=>Ju(t));Object.defineProperty(e,"dmmf",{get:()=>r.get()})}function Ju(e){return{datamodel:{models:kn(e.models),enums:kn(e.enums),types:kn(e.types)}}}function kn(e){return Object.entries(e).map(([t,r])=>({name:t,...r}))}f();u();c();p();m();var Dn=new WeakMap,Lr="$$PrismaTypedSql",Mn=class{constructor(t,r){Dn.set(this,{sql:t,values:r}),Object.defineProperty(this,Lr,{value:Lr})}get sql(){return Dn.get(this).sql}get values(){return Dn.get(this).values}};function qo(e){return(...t)=>new Mn(e,t)}function Vo(e){return e!=null&&e[Lr]===Lr}f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();function $t(e){return{ok:!1,error:e,map(){return $t(e)},flatMap(){return $t(e)}}}var Nn=class{constructor(){this.registeredErrors=[]}consumeError(t){return this.registeredErrors[t]}registerNewError(t){let r=0;for(;this.registeredErrors[r]!==void 0;)r++;return this.registeredErrors[r]={error:t},r}},Fn=e=>{let t=new Nn,r=Ee(t,e.transactionContext.bind(e)),n={adapterName:e.adapterName,errorRegistry:t,queryRaw:Ee(t,e.queryRaw.bind(e)),executeRaw:Ee(t,e.executeRaw.bind(e)),provider:e.provider,transactionContext:async(...i)=>(await r(...i)).map(s=>Gu(t,s))};return e.getConnectionInfo&&(n.getConnectionInfo=Wu(t,e.getConnectionInfo.bind(e))),n},Gu=(e,t)=>{let r=Ee(e,t.startTransaction.bind(t));return{adapterName:t.adapterName,provider:t.provider,queryRaw:Ee(e,t.queryRaw.bind(t)),executeRaw:Ee(e,t.executeRaw.bind(t)),startTransaction:async(...n)=>(await r(...n)).map(o=>Qu(e,o))}},Qu=(e,t)=>({adapterName:t.adapterName,provider:t.provider,options:t.options,queryRaw:Ee(e,t.queryRaw.bind(t)),executeRaw:Ee(e,t.executeRaw.bind(t)),commit:Ee(e,t.commit.bind(t)),rollback:Ee(e,t.rollback.bind(t))});function Ee(e,t){return async(...r)=>{try{return await t(...r)}catch(n){let i=e.registerNewError(n);return $t({kind:"GenericJs",id:i})}}}function Wu(e,t){return(...r)=>{try{return t(...r)}catch(n){let i=e.registerNewError(n);return $t({kind:"GenericJs",id:i})}}}var oa=Le(jo());var Ak=Le(Jo());Ji();Ri();Vi();f();u();c();p();m();var oe=class e{constructor(t,r){if(t.length-1!==r.length)throw t.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${t.length} strings to have ${t.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=t[0];let i=0,o=0;for(;ie.getPropertyValue(r))},getPropertyDescriptor(r){return e.getPropertyDescriptor?.(r)}}}f();u();c();p();m();f();u();c();p();m();var Br={enumerable:!0,configurable:!0,writable:!0};function Ur(e){let t=new Set(e);return{getOwnPropertyDescriptor:()=>Br,has:(r,n)=>t.has(n),set:(r,n,i)=>t.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...t]}}var Wo=Symbol.for("nodejs.util.inspect.custom");function be(e,t){let r=Ku(t),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=Ho(Reflect.ownKeys(o),r),a=Ho(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=r.get(s);return l?l.getPropertyDescriptor?{...Br,...l?.getPropertyDescriptor(s)}:Br:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)}});return i[Wo]=function(){let o={...this};return delete o[Wo],o},i}function Ku(e){let t=new Map;for(let r of e){let n=r.getKeys();for(let i of n)t.set(i,r)}return t}function Ho(e,t){return e.filter(r=>t.get(r)?.has?.(r)??!0)}f();u();c();p();m();function mt(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}f();u();c();p();m();function $r(e,t){return{batch:e,transaction:t?.kind==="batch"?{isolationLevel:t.options.isolationLevel}:void 0}}f();u();c();p();m();function Ko(e){if(e===void 0)return"";let t=ut(e);return new it(0,{colors:Rr}).write(t).toString()}f();u();c();p();m();var zu="P2037";function qr({error:e,user_facing_error:t},r,n){return t.error_code?new re(Yu(t,n),{code:t.error_code,clientVersion:r,meta:t.meta,batchRequestIdx:t.batch_request_idx}):new ne(e,{clientVersion:r,batchRequestIdx:t.batch_request_idx})}function Yu(e,t){let r=e.message;return(t==="postgresql"||t==="postgres"||t==="mysql")&&e.error_code===zu&&(r+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();var Bn=class{getLocation(){return null}};function Ne(e){return typeof $EnabledCallSite=="function"&&e!=="minimal"?new $EnabledCallSite:new Bn}f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();var zo={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function ft(e={}){let t=Xu(e);return Object.entries(t).reduce((n,[i,o])=>(zo[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function Xu(e={}){return typeof e._count=="boolean"?{...e,_count:{_all:e._count}}:e}function Vr(e={}){return t=>(typeof e._count=="boolean"&&(t._count=t._count._all),t)}function Yo(e,t){let r=Vr(e);return t({action:"aggregate",unpacker:r,argsMapper:ft})(e)}f();u();c();p();m();function ec(e={}){let{select:t,...r}=e;return typeof t=="object"?ft({...r,_count:t}):ft({...r,_count:{_all:!0}})}function tc(e={}){return typeof e.select=="object"?t=>Vr(e)(t)._count:t=>Vr(e)(t)._count._all}function Zo(e,t){return t({action:"count",unpacker:tc(e),argsMapper:ec})(e)}f();u();c();p();m();function rc(e={}){let t=ft(e);if(Array.isArray(t.by))for(let r of t.by)typeof r=="string"&&(t.select[r]=!0);else typeof t.by=="string"&&(t.select[t.by]=!0);return t}function nc(e={}){return t=>(typeof e?._count=="boolean"&&t.forEach(r=>{r._count=r._count._all}),t)}function Xo(e,t){return t({action:"groupBy",unpacker:nc(e),argsMapper:rc})(e)}function es(e,t,r){if(t==="aggregate")return n=>Yo(n,r);if(t==="count")return n=>Zo(n,r);if(t==="groupBy")return n=>Xo(n,r)}f();u();c();p();m();function ts(e,t){let r=t.fields.filter(i=>!i.relationName),n=hn(r,i=>i.name);return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new Dt(e,o,s.type,s.isList,s.kind==="enum")},...Ur(Object.keys(n))})}f();u();c();p();m();f();u();c();p();m();var rs=e=>Array.isArray(e)?e:e.split("."),Un=(e,t)=>rs(t).reduce((r,n)=>r&&r[n],e),ns=(e,t,r)=>rs(t).reduceRight((n,i,o,s)=>Object.assign({},Un(e,s.slice(0,o)),{[i]:n}),r);function ic(e,t){return e===void 0||t===void 0?[]:[...t,"select",e]}function oc(e,t,r){return t===void 0?e??{}:ns(t,r,e||!0)}function $n(e,t,r,n,i,o){let a=e._runtimeDataModel.models[t].fields.reduce((l,d)=>({...l,[d.name]:d}),{});return l=>{let d=Ne(e._errorFormat),g=ic(n,i),h=oc(l,o,g),v=r({dataPath:g,callsite:d})(h),S=sc(e,t);return new Proxy(v,{get(A,R){if(!S.includes(R))return A[R];let N=[a[R].type,r,R],B=[g,h];return $n(e,...N,...B)},...Ur([...S,...Object.getOwnPropertyNames(v)])})}}function sc(e,t){return e._runtimeDataModel.models[t].fields.filter(r=>r.kind==="object").map(r=>r.name)}var ac=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],lc=["aggregate","count","groupBy"];function qn(e,t){let r=e._extensions.getAllModelExtensions(t)??{},n=[uc(e,t),pc(e,t),qt(r),ee("name",()=>t),ee("$name",()=>t),ee("$parent",()=>e._appliedParent)];return be({},n)}function uc(e,t){let r=ye(t),n=Object.keys(fr.ModelAction).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>l=>{let d=Ne(e._errorFormat);return e._createPrismaPromise(g=>{let h={args:l,dataPath:[],action:o,model:t,clientMethod:`${r}.${i}`,jsModelName:r,transaction:g,callsite:d};return e._request({...h,...a})})};return ac.includes(o)?$n(e,t,s):cc(i)?es(e,i,s):s({})}}}function cc(e){return lc.includes(e)}function pc(e,t){return $e(ee("fields",()=>{let r=e._runtimeDataModel.models[t];return ts(t,r)}))}f();u();c();p();m();function is(e){return e.replace(/^./,t=>t.toUpperCase())}var Vn=Symbol();function Vt(e){let t=[mc(e),ee(Vn,()=>e),ee("$parent",()=>e._appliedParent)],r=e._extensions.getAllClientExtensions();return r&&t.push(qt(r)),be(e,t)}function mc(e){let t=Object.keys(e._runtimeDataModel.models),r=t.map(ye),n=[...new Set(t.concat(r))];return $e({getKeys(){return n},getPropertyValue(i){let o=is(i);if(e._runtimeDataModel.models[o]!==void 0)return qn(e,o);if(e._runtimeDataModel.models[i]!==void 0)return qn(e,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function os(e){return e[Vn]?e[Vn]:e}function ss(e){if(typeof e=="function")return e(this);if(e.client?.__AccelerateEngine){let r=e.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let t=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return Vt(t)}f();u();c();p();m();f();u();c();p();m();function as({result:e,modelName:t,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(t);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let d=l.needs.filter(g=>n[g]);d.length>0&&a.push(mt(d))}else if(r){if(!r[l.name])continue;let d=l.needs.filter(g=>!r[g]);d.length>0&&a.push(mt(d))}fc(e,l.needs)&&s.push(dc(l,be(e,s)))}return s.length>0||a.length>0?be(e,[...s,...a]):e}function fc(e,t){return t.every(r=>gn(e,r))}function dc(e,t){return $e(ee(e.name,()=>e.compute(t)))}f();u();c();p();m();function jr({visitor:e,result:t,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(t)){for(let s=0;sg.name===o);if(!l||l.kind!=="object"||!l.relationName)continue;let d=typeof s=="object"?s:{};t[o]=jr({visitor:i,result:t[o],args:d,modelName:l.type,runtimeDataModel:n})}}function us({result:e,modelName:t,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!="object"||!i.models[t]?e:jr({result:e,args:r??{},modelName:t,runtimeDataModel:i,visitor:(a,l,d)=>{let g=ye(l);return as({result:a,modelName:g,select:d.select,omit:d.select?void 0:{...o?.[g],...d.omit},extensions:n})}})}f();u();c();p();m();f();u();c();p();m();function cs(e){if(e instanceof oe)return gc(e);if(Array.isArray(e)){let r=[e[0]];for(let n=1;n{let o=t.customDataProxyFetch;return"transaction"in t&&i!==void 0&&(t.transaction?.kind==="batch"&&t.transaction.lock.then(),t.transaction=i),n===r.length?e._executeRequest(t):r[n]({model:t.model,operation:t.model?t.action:t.clientMethod,args:cs(t.args??{}),__internalParams:t,query:(s,a=t)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=hs(o,l),a.args=s,ms(e,a,r,n+1)}})})}function fs(e,t){let{jsModelName:r,action:n,clientMethod:i}=t,o=r?n:i;if(e._extensions.isEmpty())return e._executeRequest(t);let s=e._extensions.getAllQueryCallbacks(r??"$none",o);return ms(e,t,s)}function ds(e){return t=>{let r={requests:t},n=t[0].extensions.getAllBatchQueryCallbacks();return n.length?gs(r,n,0,e):e(r)}}function gs(e,t,r,n){if(r===t.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return t[r]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=hs(i,l),gs(a,t,r+1,n)}})}var ps=e=>e;function hs(e=ps,t=ps){return r=>e(t(r))}f();u();c();p();m();var ys=X("prisma:client"),ws={Vercel:"vercel","Netlify CI":"netlify"};function Es({postinstall:e,ciName:t,clientVersion:r}){if(ys("checkPlatformCaching:postinstall",e),ys("checkPlatformCaching:ciName",t),e===!0&&t&&t in ws){let n=`Prisma has detected that this project was built on ${t}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${ws[t]}-build`;throw console.error(n),new G(n,r)}}f();u();c();p();m();function bs(e,t){return e?e.datasources?e.datasources:e.datasourceUrl?{[t[0]]:{url:e.datasourceUrl}}:{}:{}}f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();var hc="Cloudflare-Workers",yc="node";function xs(){return typeof Netlify=="object"?"netlify":typeof EdgeRuntime=="string"?"edge-light":globalThis.navigator?.userAgent===hc?"workerd":globalThis.Deno?"deno":globalThis.__lagon__?"lagon":globalThis.process?.release?.name===yc?"node":globalThis.Bun?"bun":globalThis.fastly?"fastly":"unknown"}var wc={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function Jr(){let e=xs();return{id:e,prettyName:wc[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}f();u();c();p();m();f();u();c();p();m();f();u();c();p();m();function dt({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw Jr().id==="workerd"?new G(`error: Environment variable not found: ${s.fromEnvVar}. + +In Cloudflare module Workers, environment variables are available only in the Worker's \`env\` parameter of \`fetch\`. +To solve this, provide the connection string directly: https://pris.ly/d/cloudflare-datasource-url`,n):new G(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new G("error: Missing URL environment variable, value, or override.",n);return i}f();u();c();p();m();f();u();c();p();m();var Gr=class extends Error{constructor(t,r){super(t),this.clientVersion=r.clientVersion,this.cause=r.cause}get[Symbol.toStringTag](){return this.name}};var se=class extends Gr{constructor(t,r){super(t,r),this.isRetryable=r.isRetryable??!0}};f();u();c();p();m();f();u();c();p();m();function L(e,t){return{...e,isRetryable:t}}var gt=class extends se{constructor(r){super("This request must be retried",L(r,!0));this.name="ForcedRetryError";this.code="P5001"}};_(gt,"ForcedRetryError");f();u();c();p();m();var qe=class extends se{constructor(r,n){super(r,L(n,!1));this.name="InvalidDatasourceError";this.code="P6001"}};_(qe,"InvalidDatasourceError");f();u();c();p();m();var Ve=class extends se{constructor(r,n){super(r,L(n,!1));this.name="NotImplementedYetError";this.code="P5004"}};_(Ve,"NotImplementedYetError");f();u();c();p();m();f();u();c();p();m();var j=class extends se{constructor(t,r){super(t,r),this.response=r.response;let n=this.response.headers.get("prisma-request-id");if(n){let i=`(The request id was: ${n})`;this.message=this.message+" "+i}}};var je=class extends j{constructor(r){super("Schema needs to be uploaded",L(r,!0));this.name="SchemaMissingError";this.code="P5005"}};_(je,"SchemaMissingError");f();u();c();p();m();f();u();c();p();m();var jn="This request could not be understood by the server",Jt=class extends j{constructor(r,n,i){super(n||jn,L(r,!1));this.name="BadRequestError";this.code="P5000";i&&(this.code=i)}};_(Jt,"BadRequestError");f();u();c();p();m();var Gt=class extends j{constructor(r,n){super("Engine not started: healthcheck timeout",L(r,!0));this.name="HealthcheckTimeoutError";this.code="P5013";this.logs=n}};_(Gt,"HealthcheckTimeoutError");f();u();c();p();m();var Qt=class extends j{constructor(r,n,i){super(n,L(r,!0));this.name="EngineStartupError";this.code="P5014";this.logs=i}};_(Qt,"EngineStartupError");f();u();c();p();m();var Wt=class extends j{constructor(r){super("Engine version is not supported",L(r,!1));this.name="EngineVersionNotSupportedError";this.code="P5012"}};_(Wt,"EngineVersionNotSupportedError");f();u();c();p();m();var Jn="Request timed out",Ht=class extends j{constructor(r,n=Jn){super(n,L(r,!1));this.name="GatewayTimeoutError";this.code="P5009"}};_(Ht,"GatewayTimeoutError");f();u();c();p();m();var Ec="Interactive transaction error",Kt=class extends j{constructor(r,n=Ec){super(n,L(r,!1));this.name="InteractiveTransactionError";this.code="P5015"}};_(Kt,"InteractiveTransactionError");f();u();c();p();m();var bc="Request parameters are invalid",zt=class extends j{constructor(r,n=bc){super(n,L(r,!1));this.name="InvalidRequestError";this.code="P5011"}};_(zt,"InvalidRequestError");f();u();c();p();m();var Gn="Requested resource does not exist",Yt=class extends j{constructor(r,n=Gn){super(n,L(r,!1));this.name="NotFoundError";this.code="P5003"}};_(Yt,"NotFoundError");f();u();c();p();m();var Qn="Unknown server error",ht=class extends j{constructor(r,n,i){super(n||Qn,L(r,!0));this.name="ServerError";this.code="P5006";this.logs=i}};_(ht,"ServerError");f();u();c();p();m();var Wn="Unauthorized, check your connection string",Zt=class extends j{constructor(r,n=Wn){super(n,L(r,!1));this.name="UnauthorizedError";this.code="P5007"}};_(Zt,"UnauthorizedError");f();u();c();p();m();var Hn="Usage exceeded, retry again later",Xt=class extends j{constructor(r,n=Hn){super(n,L(r,!0));this.name="UsageExceededError";this.code="P5008"}};_(Xt,"UsageExceededError");async function xc(e){let t;try{t=await e.text()}catch{return{type:"EmptyError"}}try{let r=JSON.parse(t);if(typeof r=="string")switch(r){case"InternalDataProxyError":return{type:"DataProxyError",body:r};default:return{type:"UnknownTextError",body:r}}if(typeof r=="object"&&r!==null){if("is_panic"in r&&"message"in r&&"error_code"in r)return{type:"QueryEngineError",body:r};if("EngineNotStarted"in r||"InteractiveTransactionMisrouted"in r||"InvalidRequestError"in r){let n=Object.values(r)[0].reason;return typeof n=="string"&&!["SchemaMissing","EngineVersionNotSupported"].includes(n)?{type:"UnknownJsonError",body:r}:{type:"DataProxyError",body:r}}}return{type:"UnknownJsonError",body:r}}catch{return t===""?{type:"EmptyError"}:{type:"UnknownTextError",body:t}}}async function er(e,t){if(e.ok)return;let r={clientVersion:t,response:e},n=await xc(e);if(n.type==="QueryEngineError")throw new re(n.body.message,{code:n.body.error_code,clientVersion:t});if(n.type==="DataProxyError"){if(n.body==="InternalDataProxyError")throw new ht(r,"Internal Data Proxy error");if("EngineNotStarted"in n.body){if(n.body.EngineNotStarted.reason==="SchemaMissing")return new je(r);if(n.body.EngineNotStarted.reason==="EngineVersionNotSupported")throw new Wt(r);if("EngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,logs:o}=n.body.EngineNotStarted.reason.EngineStartupError;throw new Qt(r,i,o)}if("KnownEngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,error_code:o}=n.body.EngineNotStarted.reason.KnownEngineStartupError;throw new G(i,t,o)}if("HealthcheckTimeout"in n.body.EngineNotStarted.reason){let{logs:i}=n.body.EngineNotStarted.reason.HealthcheckTimeout;throw new Gt(r,i)}}if("InteractiveTransactionMisrouted"in n.body){let i={IDParseError:"Could not parse interactive transaction ID",NoQueryEngineFoundError:"Could not find Query Engine for the specified host and transaction ID",TransactionStartError:"Could not start interactive transaction"};throw new Kt(r,i[n.body.InteractiveTransactionMisrouted.reason])}if("InvalidRequestError"in n.body)throw new zt(r,n.body.InvalidRequestError.reason)}if(e.status===401||e.status===403)throw new Zt(r,yt(Wn,n));if(e.status===404)return new Yt(r,yt(Gn,n));if(e.status===429)throw new Xt(r,yt(Hn,n));if(e.status===504)throw new Ht(r,yt(Jn,n));if(e.status>=500)throw new ht(r,yt(Qn,n));if(e.status>=400)throw new Jt(r,yt(jn,n))}function yt(e,t){return t.type==="EmptyError"?e:`${e}: ${JSON.stringify(t)}`}f();u();c();p();m();function Ps(e){let t=Math.pow(2,e)*50,r=Math.ceil(Math.random()*t)-Math.ceil(t/2),n=t+r;return new Promise(i=>setTimeout(()=>i(n),n))}f();u();c();p();m();var Ae="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function vs(e){let t=new TextEncoder().encode(e),r="",n=t.byteLength,i=n%3,o=n-i,s,a,l,d,g;for(let h=0;h>18,a=(g&258048)>>12,l=(g&4032)>>6,d=g&63,r+=Ae[s]+Ae[a]+Ae[l]+Ae[d];return i==1?(g=t[o],s=(g&252)>>2,a=(g&3)<<4,r+=Ae[s]+Ae[a]+"=="):i==2&&(g=t[o]<<8|t[o+1],s=(g&64512)>>10,a=(g&1008)>>4,l=(g&15)<<2,r+=Ae[s]+Ae[a]+Ae[l]+"="),r}f();u();c();p();m();function Ts(e){if(!!e.generator?.previewFeatures.some(r=>r.toLowerCase().includes("metrics")))throw new G("The `metrics` preview feature is not yet available with Accelerate.\nPlease remove `metrics` from the `previewFeatures` in your schema.\n\nMore information about Accelerate: https://pris.ly/d/accelerate",e.clientVersion)}f();u();c();p();m();function Pc(e){return e[0]*1e3+e[1]/1e6}function Kn(e){return new Date(Pc(e))}f();u();c();p();m();var Cs={"@prisma/debug":"workspace:*","@prisma/engines-version":"6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959","@prisma/fetch-engine":"workspace:*","@prisma/get-platform":"workspace:*"};f();u();c();p();m();f();u();c();p();m();var tr=class extends se{constructor(r,n){super(`Cannot fetch data from service: +${r}`,L(n,!0));this.name="RequestError";this.code="P5010"}};_(tr,"RequestError");async function Je(e,t,r=n=>n){let{clientVersion:n,...i}=t,o=r(fetch);try{return await o(e,i)}catch(s){let a=s.message??"Unknown error";throw new tr(a,{clientVersion:n,cause:s})}}var Tc=/^[1-9][0-9]*\.[0-9]+\.[0-9]+$/,As=X("prisma:client:dataproxyEngine");async function Cc(e,t){let r=Cs["@prisma/engines-version"],n=t.clientVersion??"unknown";if(y.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION)return y.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION;if(e.includes("accelerate")&&n!=="0.0.0"&&n!=="in-memory")return n;let[i,o]=n?.split("-")??[];if(o===void 0&&Tc.test(i))return i;if(o!==void 0||n==="0.0.0"||n==="in-memory"){if(e.startsWith("localhost")||e.startsWith("127.0.0.1"))return"0.0.0";let[s]=r.split("-")??[],[a,l,d]=s.split("."),g=Ac(`<=${a}.${l}.${d}`),h=await Je(g,{clientVersion:n});if(!h.ok)throw new Error(`Failed to fetch stable Prisma version, unpkg.com status ${h.status} ${h.statusText}, response body: ${await h.text()||""}`);let v=await h.text();As("length of body fetched from unpkg.com",v.length);let S;try{S=JSON.parse(v)}catch(A){throw console.error("JSON.parse error: body fetched from unpkg.com: ",v),A}return S.version}throw new Ve("Only `major.minor.patch` versions are supported by Accelerate.",{clientVersion:n})}async function Rs(e,t){let r=await Cc(e,t);return As("version",r),r}function Ac(e){return encodeURI(`https://unpkg.com/prisma@${e}/package.json`)}var Ss=3,Qr=X("prisma:client:dataproxyEngine"),zn=class{constructor({apiKey:t,tracingHelper:r,logLevel:n,logQueries:i,engineHash:o}){this.apiKey=t,this.tracingHelper=r,this.logLevel=n,this.logQueries=i,this.engineHash=o}build({traceparent:t,interactiveTransaction:r}={}){let n={Authorization:`Bearer ${this.apiKey}`,"Prisma-Engine-Hash":this.engineHash};this.tracingHelper.isEnabled()&&(n.traceparent=t??this.tracingHelper.getTraceParent()),r&&(n["X-transaction-id"]=r.id);let i=this.buildCaptureSettings();return i.length>0&&(n["X-capture-telemetry"]=i.join(", ")),n}buildCaptureSettings(){let t=[];return this.tracingHelper.isEnabled()&&t.push("tracing"),this.logLevel&&t.push(this.logLevel),this.logQueries&&t.push("query"),t}},rr=class{constructor(t){this.name="DataProxyEngine";Ts(t),this.config=t,this.env={...t.env,...typeof y<"u"?y.env:{}},this.inlineSchema=vs(t.inlineSchema),this.inlineDatasources=t.inlineDatasources,this.inlineSchemaHash=t.inlineSchemaHash,this.clientVersion=t.clientVersion,this.engineHash=t.engineVersion,this.logEmitter=t.logEmitter,this.tracingHelper=t.tracingHelper}apiKey(){return this.headerBuilder.apiKey}version(){return this.engineHash}async start(){this.startPromise!==void 0&&await this.startPromise,this.startPromise=(async()=>{let[t,r]=this.extractHostAndApiKey();this.host=t,this.headerBuilder=new zn({apiKey:r,tracingHelper:this.tracingHelper,logLevel:this.config.logLevel,logQueries:this.config.logQueries,engineHash:this.engineHash}),this.remoteClientVersion=await Rs(t,this.config),Qr("host",this.host)})(),await this.startPromise}async stop(){}propagateResponseExtensions(t){t?.logs?.length&&t.logs.forEach(r=>{switch(r.level){case"debug":case"trace":Qr(r);break;case"error":case"warn":case"info":{this.logEmitter.emit(r.level,{timestamp:Kn(r.timestamp),message:r.attributes.message??"",target:r.target});break}case"query":{this.logEmitter.emit("query",{query:r.attributes.query??"",timestamp:Kn(r.timestamp),duration:r.attributes.duration_ms??0,params:r.attributes.params??"",target:r.target});break}default:r.level}}),t?.traces?.length&&this.tracingHelper.dispatchEngineSpans(t.traces)}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the remote query engine')}async url(t){return await this.start(),`https://${this.host}/${this.remoteClientVersion}/${this.inlineSchemaHash}/${t}`}async uploadSchema(){let t={name:"schemaUpload",internal:!0};return this.tracingHelper.runInChildSpan(t,async()=>{let r=await Je(await this.url("schema"),{method:"PUT",headers:this.headerBuilder.build(),body:this.inlineSchema,clientVersion:this.clientVersion});r.ok||Qr("schema response status",r.status);let n=await er(r,this.clientVersion);if(n)throw this.logEmitter.emit("warn",{message:`Error while uploading schema: ${n.message}`,timestamp:new Date,target:""}),n;this.logEmitter.emit("info",{message:`Schema (re)uploaded (hash: ${this.inlineSchemaHash})`,timestamp:new Date,target:""})})}request(t,{traceparent:r,interactiveTransaction:n,customDataProxyFetch:i}){return this.requestInternal({body:t,traceparent:r,interactiveTransaction:n,customDataProxyFetch:i})}async requestBatch(t,{traceparent:r,transaction:n,customDataProxyFetch:i}){let o=n?.kind==="itx"?n.options:void 0,s=$r(t,n);return(await this.requestInternal({body:s,customDataProxyFetch:i,interactiveTransaction:o,traceparent:r})).map(l=>(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l?this.convertProtocolErrorsToClientError(l.errors):l))}requestInternal({body:t,traceparent:r,customDataProxyFetch:n,interactiveTransaction:i}){return this.withRetry({actionGerund:"querying",callback:async({logHttpCall:o})=>{let s=i?`${i.payload.endpoint}/graphql`:await this.url("graphql");o(s);let a=await Je(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r,interactiveTransaction:i}),body:JSON.stringify(t),clientVersion:this.clientVersion},n);a.ok||Qr("graphql response status",a.status),await this.handleError(await er(a,this.clientVersion));let l=await a.json();if(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l)throw this.convertProtocolErrorsToClientError(l.errors);return"batchResult"in l?l.batchResult:l}})}async transaction(t,r,n){let i={start:"starting",commit:"committing",rollback:"rolling back"};return this.withRetry({actionGerund:`${i[t]} transaction`,callback:async({logHttpCall:o})=>{if(t==="start"){let s=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel}),a=await this.url("transaction/start");o(a);let l=await Je(a,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),body:s,clientVersion:this.clientVersion});await this.handleError(await er(l,this.clientVersion));let d=await l.json(),{extensions:g}=d;g&&this.propagateResponseExtensions(g);let h=d.id,v=d["data-proxy"].endpoint;return{id:h,payload:{endpoint:v}}}else{let s=`${n.payload.endpoint}/${t}`;o(s);let a=await Je(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),clientVersion:this.clientVersion});await this.handleError(await er(a,this.clientVersion));let l=await a.json(),{extensions:d}=l;d&&this.propagateResponseExtensions(d);return}}})}extractHostAndApiKey(){let t={clientVersion:this.clientVersion},r=Object.keys(this.inlineDatasources)[0],n=dt({inlineDatasources:this.inlineDatasources,overrideDatasources:this.config.overrideDatasources,clientVersion:this.clientVersion,env:this.env}),i;try{i=new URL(n)}catch{throw new qe(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t)}let{protocol:o,host:s,searchParams:a}=i;if(o!=="prisma:"&&o!=="prisma+postgres:")throw new qe(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t);let l=a.get("api_key");if(l===null||l.length<1)throw new qe(`Error validating datasource \`${r}\`: the URL must contain a valid API key`,t);return[s,l]}metrics(){throw new Ve("Metrics are not yet supported for Accelerate",{clientVersion:this.clientVersion})}async withRetry(t){for(let r=0;;r++){let n=i=>{this.logEmitter.emit("info",{message:`Calling ${i} (n=${r})`,timestamp:new Date,target:""})};try{return await t.callback({logHttpCall:n})}catch(i){if(!(i instanceof se)||!i.isRetryable)throw i;if(r>=Ss)throw i instanceof gt?i.cause:i;this.logEmitter.emit("warn",{message:`Attempt ${r+1}/${Ss} failed for ${t.actionGerund}: ${i.message??"(unknown)"}`,timestamp:new Date,target:""});let o=await Ps(r);this.logEmitter.emit("warn",{message:`Retrying after ${o}ms`,timestamp:new Date,target:""})}}}async handleError(t){if(t instanceof je)throw await this.uploadSchema(),new gt({clientVersion:this.clientVersion,cause:t});if(t)throw t}convertProtocolErrorsToClientError(t){return t.length===1?qr(t[0],this.config.clientVersion,this.config.activeProvider):new ne(JSON.stringify(t),{clientVersion:this.config.clientVersion})}applyPendingMigrations(){throw new Error("Method not implemented.")}};function Is({copyEngine:e=!0},t){let r;try{r=dt({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...y.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||r?.startsWith("prisma+postgres://"));e&&n&&Rt("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=Tt(t.generator),o=n||!e,s=!!t.adapter,a=i==="library",l=i==="binary";if(o&&s||s){let d;throw d=["Prisma Client was configured to use the `adapter` option but it was imported via its `/edge` endpoint.","Please either remove the `/edge` endpoint or remove the `adapter` from the Prisma Client constructor."],new Y(d.join(` +`),{clientVersion:t.clientVersion})}if(o)return new rr(t);throw new Y("Invalid client engine type, please use `library` or `binary`",{clientVersion:t.clientVersion})}f();u();c();p();m();function Wr({generator:e}){return e?.previewFeatures??[]}f();u();c();p();m();var Os=e=>({command:e});f();u();c();p();m();f();u();c();p();m();var ks=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);f();u();c();p();m();function wt(e){try{return Ds(e,"fast")}catch{return Ds(e,"slow")}}function Ds(e,t){return JSON.stringify(e.map(r=>Ns(r,t)))}function Ns(e,t){if(Array.isArray(e))return e.map(r=>Ns(r,t));if(typeof e=="bigint")return{prisma__type:"bigint",prisma__value:e.toString()};if(rt(e))return{prisma__type:"date",prisma__value:e.toJSON()};if(de.isDecimal(e))return{prisma__type:"decimal",prisma__value:e.toJSON()};if(w.Buffer.isBuffer(e))return{prisma__type:"bytes",prisma__value:e.toString("base64")};if(Rc(e))return{prisma__type:"bytes",prisma__value:w.Buffer.from(e).toString("base64")};if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{prisma__type:"bytes",prisma__value:w.Buffer.from(r,n,i).toString("base64")}}return typeof e=="object"&&t==="slow"?Fs(e):e}function Rc(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function Fs(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(Ms);let t={};for(let r of Object.keys(e))t[r]=Ms(e[r]);return t}function Ms(e){return typeof e=="bigint"?e.toString():Fs(e)}f();u();c();p();m();var Sc=["$connect","$disconnect","$on","$transaction","$use","$extends"],_s=Sc;var Ic=/^(\s*alter\s)/i,Ls=X("prisma:client");function Yn(e,t,r,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&r.length>0&&Ic.exec(t))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var Zn=({clientMethod:e,activeProvider:t})=>r=>{let n="",i;if(Vo(r))n=r.sql,i={values:wt(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:wt(s||[]),__prismaRawParameters__:!0}}else switch(t){case"sqlite":case"mysql":{n=r.sql,i={values:wt(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:wt(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=ks(r),i={values:wt(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?Ls(`prisma.${e}(${n}, ${i.values})`):Ls(`prisma.${e}(${n})`),{query:n,parameters:i}},Bs={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new oe(t,r)}},Us={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};f();u();c();p();m();function Xn(e){return function(r){let n,i=(o=e)=>{try{return o===void 0||o?.kind==="itx"?n??=$s(r(o)):$s(r(o))}catch(s){return Promise.reject(s)}};return{then(o,s){return i().then(o,s)},catch(o){return i().catch(o)},finally(o){return i().finally(o)},requestTransaction(o){let s=i(o);return s.requestTransaction?s.requestTransaction(o):s},[Symbol.toStringTag]:"PrismaPromise"}}}function $s(e){return typeof e.then=="function"?e:Promise.resolve(e)}f();u();c();p();m();var Oc={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(e,t){return t()}},ei=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}dispatchEngineSpans(t){return this.getGlobalTracingHelper().dispatchEngineSpans(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){return globalThis.PRISMA_INSTRUMENTATION?.helper??Oc}};function qs(){return new ei}f();u();c();p();m();function Vs(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}f();u();c();p();m();function js(e){return typeof e=="string"?e:e.reduce((t,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?t:t&&(r==="info"||t==="info")?"info":n},void 0)}f();u();c();p();m();var Hr=class{constructor(){this._middlewares=[]}use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};f();u();c();p();m();var Qs=Le(Yi());f();u();c();p();m();function Kr(e){return typeof e.batchRequestIdx=="number"}f();u();c();p();m();function Js(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(ti(e.query.arguments)),t.push(ti(e.query.selection)),t.join("")}function ti(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n=="object"&&n!==null?`(${r} ${ti(n)})`:r}).join(" ")})`}f();u();c();p();m();var kc={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateOne:!0,upsertOne:!0};function ri(e){return kc[e]}f();u();c();p();m();var zr=class{constructor(t){this.options=t;this.tickActive=!1;this.batches={}}request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,y.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;iGe("bigint",r));case"bytes-array":return t.map(r=>Ge("bytes",r));case"decimal-array":return t.map(r=>Ge("decimal",r));case"datetime-array":return t.map(r=>Ge("datetime",r));case"date-array":return t.map(r=>Ge("date",r));case"time-array":return t.map(r=>Ge("time",r));default:return t}}function Gs(e){let t=[],r=Dc(e);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(h=>h.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),d=n.some(h=>ri(h.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:Nc(o),containsWrite:d,customDataProxyFetch:i})).map((h,v)=>{if(h instanceof Error)return h;try{return this.mapQueryEngineResult(n[v],h)}catch(S){return S}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?Ws(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:ri(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:Js(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=this.unpack(i,t,r);return y.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(Mc(t),Fc(t,i))throw t;if(t instanceof re&&_c(t)){let d=Hs(t.meta);Mr({args:o,errors:[d],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let l=t.message;if(n&&(l=vr({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat==="pretty",message:l})),l=this.sanitizeMessage(l),t.code){let d=s?{modelName:s,...t.meta}:t.meta;throw new re(l,{code:t.code,clientVersion:this.client._clientVersion,meta:d,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new ve(l,this.client._clientVersion);if(t instanceof ne)throw new ne(l,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof G)throw new G(l,this.client._clientVersion);if(t instanceof ve)throw new ve(l,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,Qs.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(d=>d!=="select"&&d!=="include"),a=Un(o,s),l=i==="queryRaw"?Gs(a):et(a);return n?n(l):l}get[Symbol.toStringTag](){return"RequestHandler"}};function Nc(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:Ws(e)};Pe(e,"Unknown transaction kind")}}function Ws(e){return{id:e.id,payload:e.payload}}function Fc(e,t){return Kr(e)&&t?.kind==="batch"&&e.batchRequestIdx!==t.index}function _c(e){return e.code==="P2009"||e.code==="P2012"}function Hs(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map(Hs)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}f();u();c();p();m();var Ks="6.1.0";var zs=Ks;f();u();c();p();m();var ta=Le(Tn());f();u();c();p();m();var U=class extends Error{constructor(t){super(t+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};_(U,"PrismaClientConstructorValidationError");var Ys=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],Zs=["pretty","colorless","minimal"],Xs=["info","query","warn","error"],Bc={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new U(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=Et(r,t)||` Available datasources: ${t.join(", ")}`;throw new U(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new U(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new U(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new U(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(e,t)=>{if(e===null)return;if(e===void 0)throw new U('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!Wr(t).includes("driverAdapters"))throw new U('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(Tt()==="binary")throw new U('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:e=>{if(typeof e<"u"&&typeof e!="string")throw new U(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!="string")throw new U(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`);if(!Zs.includes(e)){let t=Et(e,Zs);throw new U(`Invalid errorFormat ${e} provided to PrismaClient constructor.${t}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new U(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`);function t(r){if(typeof r=="string"&&!Xs.includes(r)){let n=Et(r,Xs);throw new U(`Invalid log level "${r}" provided to PrismaClient constructor.${n}`)}}for(let r of e){t(r);let n={level:t,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=Et(i,o);throw new U(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r=="object")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new U(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let t=e.maxWait;if(t!=null&&t<=0)throw new U(`Invalid value ${t} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=e.timeout;if(r!=null&&r<=0)throw new U(`Invalid value ${r} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,t)=>{if(typeof e!="object")throw new U('"omit" option is expected to be an object.');if(e===null)throw new U('"omit" option can not be `null`');let r=[];for(let[n,i]of Object.entries(e)){let o=$c(n,t.runtimeDataModel);if(!o){r.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(d=>d.name===s);if(!l){r.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(l.relationName){r.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&r.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(r.length>0)throw new U(qc(e,r))},__internal:e=>{if(!e)return;let t=["debug","engine","configOverride"];if(typeof e!="object")throw new U(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`);for(let[r]of Object.entries(e))if(!t.includes(r)){let n=Et(r,t);throw new U(`Invalid property ${JSON.stringify(r)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function ra(e,t){for(let[r,n]of Object.entries(e)){if(!Ys.includes(r)){let i=Et(r,Ys);throw new U(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}Bc[r](n,t)}if(e.datasourceUrl&&e.datasources)throw new U('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function Et(e,t){if(t.length===0||typeof e!="string")return"";let r=Uc(e,t);return r?` Did you mean "${r}"?`:""}function Uc(e,t){if(t.length===0)return null;let r=t.map(i=>({value:i,distance:(0,ta.default)(e,i)}));r.sort((i,o)=>i.distancett(n)===t);if(r)return e[r]}function qc(e,t){let r=ut(e);for(let o of t)switch(o.kind){case"UnknownModel":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Dr(r,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}f();u();c();p();m();function na(e){return e.length===0?Promise.resolve([]):new Promise((t,r)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?r(i):t(n)))},l=d=>{o||(o=!0,r(d))};for(let d=0;d{n[d]=g,a()},g=>{if(!Kr(g)){l(g);return}g.batchRequestIdx===d?l(g):(i||(i=g),a())})})}var Fe=X("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var Vc={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},jc=Symbol.for("prisma.client.transaction.id"),Jc={id:0,nextId(){return++this.id}};function sa(e){class t{constructor(n){this._originalClient=this;this._middlewares=new Hr;this._createPrismaPromise=Xn();this.$extends=ss;e=n?.__internal?.configOverride?.(e)??e,Es(e),n&&ra(n,e);let i=new dr().on("error",()=>{});this._extensions=ct.empty(),this._previewFeatures=Wr(e),this._clientVersion=e.clientVersion??zs,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=qs();let o={rootEnvPath:e.relativeEnvPaths.rootEnvPath&&vt.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&vt.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=Fn(n.adapter);let l=e.activeProvider==="postgresql"?"postgres":e.activeProvider;if(s.provider!==l)throw new G(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${l}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new G("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=e.injectableEdgeEnv?.();try{let l=n??{},d=l.__internal??{},g=d.debug===!0;g&&X.enable("prisma:client");let h=vt.resolve(e.dirname,e.relativePath);Ai.existsSync(h)||(h=e.dirname),Fe("dirname",e.dirname),Fe("relativePath",e.relativePath),Fe("cwd",h);let v=d.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:y.env.NODE_ENV==="production"?this._errorFormat="minimal":y.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:h,dirname:e.dirname,enableDebugLogs:g,allowTriggerPanic:v.allowTriggerPanic,datamodelPath:vt.join(e.dirname,e.filename??"schema.prisma"),prismaPath:v.binaryPath??void 0,engineEndpoint:v.endpoint,generator:e.generator,showColors:this._errorFormat==="pretty",logLevel:l.log&&js(l.log),logQueries:l.log&&!!(typeof l.log=="string"?l.log==="query":l.log.find(S=>typeof S=="string"?S==="query":S.level==="query")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:bs(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:dt,getBatchRequestPayload:$r,prismaGraphQLToJSError:qr,PrismaClientUnknownRequestError:ne,PrismaClientInitializationError:G,PrismaClientKnownRequestError:re,debug:X("prisma:client:accelerateEngine"),engineVersion:oa.version,clientVersion:e.clientVersion}},Fe("clientVersion",e.clientVersion),this._engine=Is(e,this._engineConfig),this._requestHandler=new Yr(this,i),l.log)for(let S of l.log){let A=typeof S=="string"?S:S.emit==="stdout"?S.level:null;A&&this.$on(A,R=>{At.log(`${At.tags[A]??""}`,R.message||R.query)})}this._metrics=new pt(this._engine)}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=Vt(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i)}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{$i()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:Zn({clientMethod:i,activeProvider:a}),callsite:Ne(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=ia(n,i);return Yn(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new Y("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(Yn(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!=="mongodb")throw new Y(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:Os,callsite:Ne(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:Zn({clientMethod:i,activeProvider:a}),callsite:Ne(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...ia(n,i));throw new Y("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new Y("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=Jc.nextId(),s=Vs(n.length),a=n.map((l,d)=>{if(l?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let g=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,h={kind:"batch",id:o,index:d,isolationLevel:g,lock:s};return l.requestTransaction?.(h)??l});return na(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),l;try{let d={kind:"itx",...a};l=await n(this._createItxClient(d)),await this._engine.transaction("commit",o,a)}catch(d){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),d}return l}_createItxClient(n){return Vt(be(os(this),[ee("_appliedParent",()=>this._appliedParent._createItxClient(n)),ee("_createPrismaPromise",()=>Xn(n)),ee(jc,()=>n.id),mt(_s)]))}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??Vc,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async d=>{let g=this._middlewares.get(++a);if(g)return this._tracingHelper.runInChildSpan(s.middleware,M=>g(d,N=>(M?.end(),l(N))));let{runInTransaction:h,args:v,...S}=d,A={...n,...S};v&&(A.args=i.middlewareArgsToRequestArgs(v)),n.transaction!==void 0&&h===!1&&delete A.transaction;let R=await fs(this,A);return A.model?us({result:R,modelName:A.model,args:A.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):R};return this._tracingHelper.runInChildSpan(s.operation,()=>l(o))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:d,transaction:g,unpacker:h,otelParentCtx:v,customDataProxyFetch:S}){try{n=d?d(n):n;let A={name:"serialize"},R=this._tracingHelper.runInChildSpan(A,()=>_r({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return X.enabled("prisma:client")&&(Fe("Prisma Client call:"),Fe(`prisma.${i}(${Ko(n)})`),Fe("Generated request:"),Fe(JSON.stringify(R,null,2)+` +`)),g?.kind==="batch"&&await g.lock,this._requestHandler.request({protocolQuery:R,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:g,unpacker:h,otelParentCtx:v,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:S})}catch(A){throw A.clientVersion=this._clientVersion,A}}get $metrics(){if(!this._hasPreviewFlag("metrics"))throw new Y("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:this._clientVersion});return this._metrics}_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}}return t}function ia(e,t){return Gc(e)?[new oe(e,t),Bs]:[e,Us]}function Gc(e){return Array.isArray(e)&&Array.isArray(e.raw)}f();u();c();p();m();var Qc=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function aa(e){return new Proxy(e,{get(t,r){if(r in t)return t[r];if(!Qc.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}f();u();c();p();m();0&&(module.exports={Debug,Decimal,Extensions,MetricsClient,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,defineDmmfProperty,deserializeJsonResponse,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce}); +//# sourceMappingURL=edge.js.map diff --git a/mods/identity/src/generated/@prisma/client/runtime/index-browser.d.ts b/mods/identity/src/generated/@prisma/client/runtime/index-browser.d.ts new file mode 100644 index 000000000..f033b86a5 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/runtime/index-browser.d.ts @@ -0,0 +1,365 @@ +declare class AnyNull extends NullTypesEnumValue { +} + +declare type Args = T extends { + [K: symbol]: { + types: { + operations: { + [K in F]: { + args: any; + }; + }; + }; + }; +} ? T[symbol]['types']['operations'][F]['args'] : any; + +declare class DbNull extends NullTypesEnumValue { +} + +export declare namespace Decimal { + export type Constructor = typeof Decimal; + export type Instance = Decimal; + export type Rounding = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; + export type Modulo = Rounding | 9; + export type Value = string | number | Decimal; + + // http://mikemcl.github.io/decimal.js/#constructor-properties + export interface Config { + precision?: number; + rounding?: Rounding; + toExpNeg?: number; + toExpPos?: number; + minE?: number; + maxE?: number; + crypto?: boolean; + modulo?: Modulo; + defaults?: boolean; + } +} + +export declare class Decimal { + readonly d: number[]; + readonly e: number; + readonly s: number; + + constructor(n: Decimal.Value); + + absoluteValue(): Decimal; + abs(): Decimal; + + ceil(): Decimal; + + clampedTo(min: Decimal.Value, max: Decimal.Value): Decimal; + clamp(min: Decimal.Value, max: Decimal.Value): Decimal; + + comparedTo(n: Decimal.Value): number; + cmp(n: Decimal.Value): number; + + cosine(): Decimal; + cos(): Decimal; + + cubeRoot(): Decimal; + cbrt(): Decimal; + + decimalPlaces(): number; + dp(): number; + + dividedBy(n: Decimal.Value): Decimal; + div(n: Decimal.Value): Decimal; + + dividedToIntegerBy(n: Decimal.Value): Decimal; + divToInt(n: Decimal.Value): Decimal; + + equals(n: Decimal.Value): boolean; + eq(n: Decimal.Value): boolean; + + floor(): Decimal; + + greaterThan(n: Decimal.Value): boolean; + gt(n: Decimal.Value): boolean; + + greaterThanOrEqualTo(n: Decimal.Value): boolean; + gte(n: Decimal.Value): boolean; + + hyperbolicCosine(): Decimal; + cosh(): Decimal; + + hyperbolicSine(): Decimal; + sinh(): Decimal; + + hyperbolicTangent(): Decimal; + tanh(): Decimal; + + inverseCosine(): Decimal; + acos(): Decimal; + + inverseHyperbolicCosine(): Decimal; + acosh(): Decimal; + + inverseHyperbolicSine(): Decimal; + asinh(): Decimal; + + inverseHyperbolicTangent(): Decimal; + atanh(): Decimal; + + inverseSine(): Decimal; + asin(): Decimal; + + inverseTangent(): Decimal; + atan(): Decimal; + + isFinite(): boolean; + + isInteger(): boolean; + isInt(): boolean; + + isNaN(): boolean; + + isNegative(): boolean; + isNeg(): boolean; + + isPositive(): boolean; + isPos(): boolean; + + isZero(): boolean; + + lessThan(n: Decimal.Value): boolean; + lt(n: Decimal.Value): boolean; + + lessThanOrEqualTo(n: Decimal.Value): boolean; + lte(n: Decimal.Value): boolean; + + logarithm(n?: Decimal.Value): Decimal; + log(n?: Decimal.Value): Decimal; + + minus(n: Decimal.Value): Decimal; + sub(n: Decimal.Value): Decimal; + + modulo(n: Decimal.Value): Decimal; + mod(n: Decimal.Value): Decimal; + + naturalExponential(): Decimal; + exp(): Decimal; + + naturalLogarithm(): Decimal; + ln(): Decimal; + + negated(): Decimal; + neg(): Decimal; + + plus(n: Decimal.Value): Decimal; + add(n: Decimal.Value): Decimal; + + precision(includeZeros?: boolean): number; + sd(includeZeros?: boolean): number; + + round(): Decimal; + + sine() : Decimal; + sin() : Decimal; + + squareRoot(): Decimal; + sqrt(): Decimal; + + tangent() : Decimal; + tan() : Decimal; + + times(n: Decimal.Value): Decimal; + mul(n: Decimal.Value) : Decimal; + + toBinary(significantDigits?: number): string; + toBinary(significantDigits: number, rounding: Decimal.Rounding): string; + + toDecimalPlaces(decimalPlaces?: number): Decimal; + toDecimalPlaces(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; + toDP(decimalPlaces?: number): Decimal; + toDP(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; + + toExponential(decimalPlaces?: number): string; + toExponential(decimalPlaces: number, rounding: Decimal.Rounding): string; + + toFixed(decimalPlaces?: number): string; + toFixed(decimalPlaces: number, rounding: Decimal.Rounding): string; + + toFraction(max_denominator?: Decimal.Value): Decimal[]; + + toHexadecimal(significantDigits?: number): string; + toHexadecimal(significantDigits: number, rounding: Decimal.Rounding): string; + toHex(significantDigits?: number): string; + toHex(significantDigits: number, rounding?: Decimal.Rounding): string; + + toJSON(): string; + + toNearest(n: Decimal.Value, rounding?: Decimal.Rounding): Decimal; + + toNumber(): number; + + toOctal(significantDigits?: number): string; + toOctal(significantDigits: number, rounding: Decimal.Rounding): string; + + toPower(n: Decimal.Value): Decimal; + pow(n: Decimal.Value): Decimal; + + toPrecision(significantDigits?: number): string; + toPrecision(significantDigits: number, rounding: Decimal.Rounding): string; + + toSignificantDigits(significantDigits?: number): Decimal; + toSignificantDigits(significantDigits: number, rounding: Decimal.Rounding): Decimal; + toSD(significantDigits?: number): Decimal; + toSD(significantDigits: number, rounding: Decimal.Rounding): Decimal; + + toString(): string; + + truncated(): Decimal; + trunc(): Decimal; + + valueOf(): string; + + static abs(n: Decimal.Value): Decimal; + static acos(n: Decimal.Value): Decimal; + static acosh(n: Decimal.Value): Decimal; + static add(x: Decimal.Value, y: Decimal.Value): Decimal; + static asin(n: Decimal.Value): Decimal; + static asinh(n: Decimal.Value): Decimal; + static atan(n: Decimal.Value): Decimal; + static atanh(n: Decimal.Value): Decimal; + static atan2(y: Decimal.Value, x: Decimal.Value): Decimal; + static cbrt(n: Decimal.Value): Decimal; + static ceil(n: Decimal.Value): Decimal; + static clamp(n: Decimal.Value, min: Decimal.Value, max: Decimal.Value): Decimal; + static clone(object?: Decimal.Config): Decimal.Constructor; + static config(object: Decimal.Config): Decimal.Constructor; + static cos(n: Decimal.Value): Decimal; + static cosh(n: Decimal.Value): Decimal; + static div(x: Decimal.Value, y: Decimal.Value): Decimal; + static exp(n: Decimal.Value): Decimal; + static floor(n: Decimal.Value): Decimal; + static hypot(...n: Decimal.Value[]): Decimal; + static isDecimal(object: any): object is Decimal; + static ln(n: Decimal.Value): Decimal; + static log(n: Decimal.Value, base?: Decimal.Value): Decimal; + static log2(n: Decimal.Value): Decimal; + static log10(n: Decimal.Value): Decimal; + static max(...n: Decimal.Value[]): Decimal; + static min(...n: Decimal.Value[]): Decimal; + static mod(x: Decimal.Value, y: Decimal.Value): Decimal; + static mul(x: Decimal.Value, y: Decimal.Value): Decimal; + static noConflict(): Decimal.Constructor; // Browser only + static pow(base: Decimal.Value, exponent: Decimal.Value): Decimal; + static random(significantDigits?: number): Decimal; + static round(n: Decimal.Value): Decimal; + static set(object: Decimal.Config): Decimal.Constructor; + static sign(n: Decimal.Value): number; + static sin(n: Decimal.Value): Decimal; + static sinh(n: Decimal.Value): Decimal; + static sqrt(n: Decimal.Value): Decimal; + static sub(x: Decimal.Value, y: Decimal.Value): Decimal; + static sum(...n: Decimal.Value[]): Decimal; + static tan(n: Decimal.Value): Decimal; + static tanh(n: Decimal.Value): Decimal; + static trunc(n: Decimal.Value): Decimal; + + static readonly default?: Decimal.Constructor; + static readonly Decimal?: Decimal.Constructor; + + static readonly precision: number; + static readonly rounding: Decimal.Rounding; + static readonly toExpNeg: number; + static readonly toExpPos: number; + static readonly minE: number; + static readonly maxE: number; + static readonly crypto: boolean; + static readonly modulo: Decimal.Modulo; + + static readonly ROUND_UP: 0; + static readonly ROUND_DOWN: 1; + static readonly ROUND_CEIL: 2; + static readonly ROUND_FLOOR: 3; + static readonly ROUND_HALF_UP: 4; + static readonly ROUND_HALF_DOWN: 5; + static readonly ROUND_HALF_EVEN: 6; + static readonly ROUND_HALF_CEIL: 7; + static readonly ROUND_HALF_FLOOR: 8; + static readonly EUCLID: 9; +} + +declare type Exact = (A extends unknown ? (W extends A ? { + [K in keyof A]: Exact; +} : W) : never) | (A extends Narrowable ? A : never); + +export declare function getRuntime(): GetRuntimeOutput; + +declare type GetRuntimeOutput = { + id: Runtime; + prettyName: string; + isEdge: boolean; +}; + +declare class JsonNull extends NullTypesEnumValue { +} + +/** + * Generates more strict variant of an enum which, unlike regular enum, + * throws on non-existing property access. This can be useful in following situations: + * - we have an API, that accepts both `undefined` and `SomeEnumType` as an input + * - enum values are generated dynamically from DMMF. + * + * In that case, if using normal enums and no compile-time typechecking, using non-existing property + * will result in `undefined` value being used, which will be accepted. Using strict enum + * in this case will help to have a runtime exception, telling you that you are probably doing something wrong. + * + * Note: if you need to check for existence of a value in the enum you can still use either + * `in` operator or `hasOwnProperty` function. + * + * @param definition + * @returns + */ +export declare function makeStrictEnum>(definition: T): T; + +declare type Narrowable = string | number | bigint | boolean | []; + +declare class NullTypesEnumValue extends ObjectEnumValue { + _getNamespace(): string; +} + +/** + * Base class for unique values of object-valued enums. + */ +declare abstract class ObjectEnumValue { + constructor(arg?: symbol); + abstract _getNamespace(): string; + _getName(): string; + toString(): string; +} + +export declare const objectEnumValues: { + classes: { + DbNull: typeof DbNull; + JsonNull: typeof JsonNull; + AnyNull: typeof AnyNull; + }; + instances: { + DbNull: DbNull; + JsonNull: JsonNull; + AnyNull: AnyNull; + }; +}; + +declare type Operation = 'findFirst' | 'findFirstOrThrow' | 'findUnique' | 'findUniqueOrThrow' | 'findMany' | 'create' | 'createMany' | 'createManyAndReturn' | 'update' | 'updateMany' | 'upsert' | 'delete' | 'deleteMany' | 'aggregate' | 'count' | 'groupBy' | '$queryRaw' | '$executeRaw' | '$queryRawUnsafe' | '$executeRawUnsafe' | 'findRaw' | 'aggregateRaw' | '$runCommandRaw'; + +declare namespace Public { + export { + validator + } +} +export { Public } + +declare type Runtime = "edge-routine" | "workerd" | "deno" | "lagon" | "react-native" | "netlify" | "electron" | "node" | "bun" | "edge-light" | "fastly" | "unknown"; + +declare function validator(): (select: Exact) => S; + +declare function validator, O extends keyof C[M] & Operation>(client: C, model: M, operation: O): (select: Exact>) => S; + +declare function validator, O extends keyof C[M] & Operation, P extends keyof Args>(client: C, model: M, operation: O, prop: P): (select: Exact[P]>) => S; + +export { } diff --git a/mods/identity/src/generated/@prisma/client/runtime/index-browser.js b/mods/identity/src/generated/@prisma/client/runtime/index-browser.js new file mode 100644 index 000000000..8f0457df0 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/runtime/index-browser.js @@ -0,0 +1,13 @@ +"use strict";var de=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var Ge=Object.getOwnPropertyNames;var Je=Object.prototype.hasOwnProperty;var Me=(e,n)=>{for(var i in n)de(e,i,{get:n[i],enumerable:!0})},Xe=(e,n,i,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of Ge(n))!Je.call(e,r)&&r!==i&&de(e,r,{get:()=>n[r],enumerable:!(t=We(n,r))||t.enumerable});return e};var Ke=e=>Xe(de({},"__esModule",{value:!0}),e);var Xn={};Me(Xn,{Decimal:()=>je,Public:()=>he,getRuntime:()=>be,makeStrictEnum:()=>Pe,objectEnumValues:()=>Oe});module.exports=Ke(Xn);var he={};Me(he,{validator:()=>Ce});function Ce(...e){return n=>n}var ne=Symbol(),pe=new WeakMap,ge=class{constructor(n){n===ne?pe.set(this,"Prisma.".concat(this._getName())):pe.set(this,"new Prisma.".concat(this._getNamespace(),".").concat(this._getName(),"()"))}_getName(){return this.constructor.name}toString(){return pe.get(this)}},G=class extends ge{_getNamespace(){return"NullTypes"}},J=class extends G{};me(J,"DbNull");var X=class extends G{};me(X,"JsonNull");var K=class extends G{};me(K,"AnyNull");var Oe={classes:{DbNull:J,JsonNull:X,AnyNull:K},instances:{DbNull:new J(ne),JsonNull:new X(ne),AnyNull:new K(ne)}};function me(e,n){Object.defineProperty(e,"name",{value:n,configurable:!0})}var xe=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function Pe(e){return new Proxy(e,{get(n,i){if(i in n)return n[i];if(!xe.has(i))throw new TypeError("Invalid enum value: ".concat(String(i)))}})}var Qe="Cloudflare-Workers",Ye="node";function Re(){var e,n,i;return typeof Netlify=="object"?"netlify":typeof EdgeRuntime=="string"?"edge-light":((e=globalThis.navigator)==null?void 0:e.userAgent)===Qe?"workerd":globalThis.Deno?"deno":globalThis.__lagon__?"lagon":((i=(n=globalThis.process)==null?void 0:n.release)==null?void 0:i.name)===Ye?"node":globalThis.Bun?"bun":globalThis.fastly?"fastly":"unknown"}var ze={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function be(){let e=Re();return{id:e,prettyName:ze[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}var H=9e15,$=1e9,we="0123456789abcdef",te="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",re="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Ne={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-H,maxE:H,crypto:!1},Te,Z,w=!0,oe="[DecimalError] ",V=oe+"Invalid argument: ",Le=oe+"Precision limit exceeded",De=oe+"crypto unavailable",Fe="[object Decimal]",b=Math.floor,C=Math.pow,ye=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,en=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,nn=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Ie=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,D=1e7,m=7,tn=9007199254740991,rn=te.length-1,ve=re.length-1,h={toStringTag:Fe};h.absoluteValue=h.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),p(e)};h.ceil=function(){return p(new this.constructor(this),this.e+1,2)};h.clampedTo=h.clamp=function(e,n){var i,t=this,r=t.constructor;if(e=new r(e),n=new r(n),!e.s||!n.s)return new r(NaN);if(e.gt(n))throw Error(V+n);return i=t.cmp(e),i<0?e:t.cmp(n)>0?n:new r(t)};h.comparedTo=h.cmp=function(e){var n,i,t,r,s=this,o=s.d,u=(e=new s.constructor(e)).d,l=s.s,f=e.s;if(!o||!u)return!l||!f?NaN:l!==f?l:o===u?0:!o^l<0?1:-1;if(!o[0]||!u[0])return o[0]?l:u[0]?-f:0;if(l!==f)return l;if(s.e!==e.e)return s.e>e.e^l<0?1:-1;for(t=o.length,r=u.length,n=0,i=tu[n]^l<0?1:-1;return t===r?0:t>r^l<0?1:-1};h.cosine=h.cos=function(){var e,n,i=this,t=i.constructor;return i.d?i.d[0]?(e=t.precision,n=t.rounding,t.precision=e+Math.max(i.e,i.sd())+m,t.rounding=1,i=sn(t,$e(t,i)),t.precision=e,t.rounding=n,p(Z==2||Z==3?i.neg():i,e,n,!0)):new t(1):new t(NaN)};h.cubeRoot=h.cbrt=function(){var e,n,i,t,r,s,o,u,l,f,c=this,a=c.constructor;if(!c.isFinite()||c.isZero())return new a(c);for(w=!1,s=c.s*C(c.s*c,1/3),!s||Math.abs(s)==1/0?(i=O(c.d),e=c.e,(s=(e-i.length+1)%3)&&(i+=s==1||s==-2?"0":"00"),s=C(i,1/3),e=b((e+1)/3)-(e%3==(e<0?-1:2)),s==1/0?i="5e"+e:(i=s.toExponential(),i=i.slice(0,i.indexOf("e")+1)+e),t=new a(i),t.s=c.s):t=new a(s.toString()),o=(e=a.precision)+3;;)if(u=t,l=u.times(u).times(u),f=l.plus(c),t=S(f.plus(c).times(u),f.plus(l),o+2,1),O(u.d).slice(0,o)===(i=O(t.d)).slice(0,o))if(i=i.slice(o-3,o+1),i=="9999"||!r&&i=="4999"){if(!r&&(p(u,e+1,0),u.times(u).times(u).eq(c))){t=u;break}o+=4,r=1}else{(!+i||!+i.slice(1)&&i.charAt(0)=="5")&&(p(t,e+1,1),n=!t.times(t).times(t).eq(c));break}return w=!0,p(t,e,a.rounding,n)};h.decimalPlaces=h.dp=function(){var e,n=this.d,i=NaN;if(n){if(e=n.length-1,i=(e-b(this.e/m))*m,e=n[e],e)for(;e%10==0;e/=10)i--;i<0&&(i=0)}return i};h.dividedBy=h.div=function(e){return S(this,new this.constructor(e))};h.dividedToIntegerBy=h.divToInt=function(e){var n=this,i=n.constructor;return p(S(n,new i(e),0,1,1),i.precision,i.rounding)};h.equals=h.eq=function(e){return this.cmp(e)===0};h.floor=function(){return p(new this.constructor(this),this.e+1,3)};h.greaterThan=h.gt=function(e){return this.cmp(e)>0};h.greaterThanOrEqualTo=h.gte=function(e){var n=this.cmp(e);return n==1||n===0};h.hyperbolicCosine=h.cosh=function(){var e,n,i,t,r,s=this,o=s.constructor,u=new o(1);if(!s.isFinite())return new o(s.s?1/0:NaN);if(s.isZero())return u;i=o.precision,t=o.rounding,o.precision=i+Math.max(s.e,s.sd())+4,o.rounding=1,r=s.d.length,r<32?(e=Math.ceil(r/3),n=(1/fe(4,e)).toString()):(e=16,n="2.3283064365386962890625e-10"),s=j(o,1,s.times(n),new o(1),!0);for(var l,f=e,c=new o(8);f--;)l=s.times(s),s=u.minus(l.times(c.minus(l.times(c))));return p(s,o.precision=i,o.rounding=t,!0)};h.hyperbolicSine=h.sinh=function(){var e,n,i,t,r=this,s=r.constructor;if(!r.isFinite()||r.isZero())return new s(r);if(n=s.precision,i=s.rounding,s.precision=n+Math.max(r.e,r.sd())+4,s.rounding=1,t=r.d.length,t<3)r=j(s,2,r,r,!0);else{e=1.4*Math.sqrt(t),e=e>16?16:e|0,r=r.times(1/fe(5,e)),r=j(s,2,r,r,!0);for(var o,u=new s(5),l=new s(16),f=new s(20);e--;)o=r.times(r),r=r.times(u.plus(o.times(l.times(o).plus(f))))}return s.precision=n,s.rounding=i,p(r,n,i,!0)};h.hyperbolicTangent=h.tanh=function(){var e,n,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(e=t.precision,n=t.rounding,t.precision=e+7,t.rounding=1,S(i.sinh(),i.cosh(),t.precision=e,t.rounding=n)):new t(i.s)};h.inverseCosine=h.acos=function(){var e,n=this,i=n.constructor,t=n.abs().cmp(1),r=i.precision,s=i.rounding;return t!==-1?t===0?n.isNeg()?L(i,r,s):new i(0):new i(NaN):n.isZero()?L(i,r+4,s).times(.5):(i.precision=r+6,i.rounding=1,n=n.asin(),e=L(i,r+4,s).times(.5),i.precision=r,i.rounding=s,e.minus(n))};h.inverseHyperbolicCosine=h.acosh=function(){var e,n,i=this,t=i.constructor;return i.lte(1)?new t(i.eq(1)?0:NaN):i.isFinite()?(e=t.precision,n=t.rounding,t.precision=e+Math.max(Math.abs(i.e),i.sd())+4,t.rounding=1,w=!1,i=i.times(i).minus(1).sqrt().plus(i),w=!0,t.precision=e,t.rounding=n,i.ln()):new t(i)};h.inverseHyperbolicSine=h.asinh=function(){var e,n,i=this,t=i.constructor;return!i.isFinite()||i.isZero()?new t(i):(e=t.precision,n=t.rounding,t.precision=e+2*Math.max(Math.abs(i.e),i.sd())+6,t.rounding=1,w=!1,i=i.times(i).plus(1).sqrt().plus(i),w=!0,t.precision=e,t.rounding=n,i.ln())};h.inverseHyperbolicTangent=h.atanh=function(){var e,n,i,t,r=this,s=r.constructor;return r.isFinite()?r.e>=0?new s(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=s.precision,n=s.rounding,t=r.sd(),Math.max(t,e)<2*-r.e-1?p(new s(r),e,n,!0):(s.precision=i=t-r.e,r=S(r.plus(1),new s(1).minus(r),i+e,1),s.precision=e+4,s.rounding=1,r=r.ln(),s.precision=e,s.rounding=n,r.times(.5))):new s(NaN)};h.inverseSine=h.asin=function(){var e,n,i,t,r=this,s=r.constructor;return r.isZero()?new s(r):(n=r.abs().cmp(1),i=s.precision,t=s.rounding,n!==-1?n===0?(e=L(s,i+4,t).times(.5),e.s=r.s,e):new s(NaN):(s.precision=i+6,s.rounding=1,r=r.div(new s(1).minus(r.times(r)).sqrt().plus(1)).atan(),s.precision=i,s.rounding=t,r.times(2)))};h.inverseTangent=h.atan=function(){var e,n,i,t,r,s,o,u,l,f=this,c=f.constructor,a=c.precision,d=c.rounding;if(f.isFinite()){if(f.isZero())return new c(f);if(f.abs().eq(1)&&a+4<=ve)return o=L(c,a+4,d).times(.25),o.s=f.s,o}else{if(!f.s)return new c(NaN);if(a+4<=ve)return o=L(c,a+4,d).times(.5),o.s=f.s,o}for(c.precision=u=a+10,c.rounding=1,i=Math.min(28,u/m+2|0),e=i;e;--e)f=f.div(f.times(f).plus(1).sqrt().plus(1));for(w=!1,n=Math.ceil(u/m),t=1,l=f.times(f),o=new c(f),r=f;e!==-1;)if(r=r.times(l),s=o.minus(r.div(t+=2)),r=r.times(l),o=s.plus(r.div(t+=2)),o.d[n]!==void 0)for(e=n;o.d[e]===s.d[e]&&e--;);return i&&(o=o.times(2<this.d.length-2};h.isNaN=function(){return!this.s};h.isNegative=h.isNeg=function(){return this.s<0};h.isPositive=h.isPos=function(){return this.s>0};h.isZero=function(){return!!this.d&&this.d[0]===0};h.lessThan=h.lt=function(e){return this.cmp(e)<0};h.lessThanOrEqualTo=h.lte=function(e){return this.cmp(e)<1};h.logarithm=h.log=function(e){var n,i,t,r,s,o,u,l,f=this,c=f.constructor,a=c.precision,d=c.rounding,g=5;if(e==null)e=new c(10),n=!0;else{if(e=new c(e),i=e.d,e.s<0||!i||!i[0]||e.eq(1))return new c(NaN);n=e.eq(10)}if(i=f.d,f.s<0||!i||!i[0]||f.eq(1))return new c(i&&!i[0]?-1/0:f.s!=1?NaN:i?0:1/0);if(n)if(i.length>1)s=!0;else{for(r=i[0];r%10===0;)r/=10;s=r!==1}if(w=!1,u=a+g,o=B(f,u),t=n?se(c,u+10):B(e,u),l=S(o,t,u,1),x(l.d,r=a,d))do if(u+=10,o=B(f,u),t=n?se(c,u+10):B(e,u),l=S(o,t,u,1),!s){+O(l.d).slice(r+1,r+15)+1==1e14&&(l=p(l,a+1,0));break}while(x(l.d,r+=10,d));return w=!0,p(l,a,d)};h.minus=h.sub=function(e){var n,i,t,r,s,o,u,l,f,c,a,d,g=this,v=g.constructor;if(e=new v(e),!g.d||!e.d)return!g.s||!e.s?e=new v(NaN):g.d?e.s=-e.s:e=new v(e.d||g.s!==e.s?g:NaN),e;if(g.s!=e.s)return e.s=-e.s,g.plus(e);if(f=g.d,d=e.d,u=v.precision,l=v.rounding,!f[0]||!d[0]){if(d[0])e.s=-e.s;else if(f[0])e=new v(g);else return new v(l===3?-0:0);return w?p(e,u,l):e}if(i=b(e.e/m),c=b(g.e/m),f=f.slice(),s=c-i,s){for(a=s<0,a?(n=f,s=-s,o=d.length):(n=d,i=c,o=f.length),t=Math.max(Math.ceil(u/m),o)+2,s>t&&(s=t,n.length=1),n.reverse(),t=s;t--;)n.push(0);n.reverse()}else{for(t=f.length,o=d.length,a=t0;--t)f[o++]=0;for(t=d.length;t>s;){if(f[--t]o?s+1:o+1,r>o&&(r=o,i.length=1),i.reverse();r--;)i.push(0);i.reverse()}for(o=f.length,r=c.length,o-r<0&&(r=o,i=c,c=f,f=i),n=0;r;)n=(f[--r]=f[r]+c[r]+n)/D|0,f[r]%=D;for(n&&(f.unshift(n),++t),o=f.length;f[--o]==0;)f.pop();return e.d=f,e.e=ue(f,t),w?p(e,u,l):e};h.precision=h.sd=function(e){var n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(V+e);return i.d?(n=Ze(i.d),e&&i.e+1>n&&(n=i.e+1)):n=NaN,n};h.round=function(){var e=this,n=e.constructor;return p(new n(e),e.e+1,n.rounding)};h.sine=h.sin=function(){var e,n,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(e=t.precision,n=t.rounding,t.precision=e+Math.max(i.e,i.sd())+m,t.rounding=1,i=un(t,$e(t,i)),t.precision=e,t.rounding=n,p(Z>2?i.neg():i,e,n,!0)):new t(NaN)};h.squareRoot=h.sqrt=function(){var e,n,i,t,r,s,o=this,u=o.d,l=o.e,f=o.s,c=o.constructor;if(f!==1||!u||!u[0])return new c(!f||f<0&&(!u||u[0])?NaN:u?o:1/0);for(w=!1,f=Math.sqrt(+o),f==0||f==1/0?(n=O(u),(n.length+l)%2==0&&(n+="0"),f=Math.sqrt(n),l=b((l+1)/2)-(l<0||l%2),f==1/0?n="5e"+l:(n=f.toExponential(),n=n.slice(0,n.indexOf("e")+1)+l),t=new c(n)):t=new c(f.toString()),i=(l=c.precision)+3;;)if(s=t,t=s.plus(S(o,s,i+2,1)).times(.5),O(s.d).slice(0,i)===(n=O(t.d)).slice(0,i))if(n=n.slice(i-3,i+1),n=="9999"||!r&&n=="4999"){if(!r&&(p(s,l+1,0),s.times(s).eq(o))){t=s;break}i+=4,r=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(p(t,l+1,1),e=!t.times(t).eq(o));break}return w=!0,p(t,l,c.rounding,e)};h.tangent=h.tan=function(){var e,n,i=this,t=i.constructor;return i.isFinite()?i.isZero()?new t(i):(e=t.precision,n=t.rounding,t.precision=e+10,t.rounding=1,i=i.sin(),i.s=1,i=S(i,new t(1).minus(i.times(i)).sqrt(),e+10,0),t.precision=e,t.rounding=n,p(Z==2||Z==4?i.neg():i,e,n,!0)):new t(NaN)};h.times=h.mul=function(e){var n,i,t,r,s,o,u,l,f,c=this,a=c.constructor,d=c.d,g=(e=new a(e)).d;if(e.s*=c.s,!d||!d[0]||!g||!g[0])return new a(!e.s||d&&!d[0]&&!g||g&&!g[0]&&!d?NaN:!d||!g?e.s/0:e.s*0);for(i=b(c.e/m)+b(e.e/m),l=d.length,f=g.length,l=0;){for(n=0,r=l+t;r>t;)u=s[r]+g[t]*d[r-t-1]+n,s[r--]=u%D|0,n=u/D|0;s[r]=(s[r]+n)%D|0}for(;!s[--o];)s.pop();return n?++i:s.shift(),e.d=s,e.e=ue(s,i),w?p(e,a.precision,a.rounding):e};h.toBinary=function(e,n){return ke(this,2,e,n)};h.toDecimalPlaces=h.toDP=function(e,n){var i=this,t=i.constructor;return i=new t(i),e===void 0?i:(_(e,0,$),n===void 0?n=t.rounding:_(n,0,8),p(i,e+i.e+1,n))};h.toExponential=function(e,n){var i,t=this,r=t.constructor;return e===void 0?i=F(t,!0):(_(e,0,$),n===void 0?n=r.rounding:_(n,0,8),t=p(new r(t),e+1,n),i=F(t,!0,e+1)),t.isNeg()&&!t.isZero()?"-"+i:i};h.toFixed=function(e,n){var i,t,r=this,s=r.constructor;return e===void 0?i=F(r):(_(e,0,$),n===void 0?n=s.rounding:_(n,0,8),t=p(new s(r),e+r.e+1,n),i=F(t,!1,e+t.e+1)),r.isNeg()&&!r.isZero()?"-"+i:i};h.toFraction=function(e){var n,i,t,r,s,o,u,l,f,c,a,d,g=this,v=g.d,N=g.constructor;if(!v)return new N(g);if(f=i=new N(1),t=l=new N(0),n=new N(t),s=n.e=Ze(v)-g.e-1,o=s%m,n.d[0]=C(10,o<0?m+o:o),e==null)e=s>0?n:f;else{if(u=new N(e),!u.isInt()||u.lt(f))throw Error(V+u);e=u.gt(n)?s>0?n:f:u}for(w=!1,u=new N(O(v)),c=N.precision,N.precision=s=v.length*m*2;a=S(u,n,0,1,1),r=i.plus(a.times(t)),r.cmp(e)!=1;)i=t,t=r,r=f,f=l.plus(a.times(r)),l=r,r=n,n=u.minus(a.times(r)),u=r;return r=S(e.minus(i),t,0,1,1),l=l.plus(r.times(f)),i=i.plus(r.times(t)),l.s=f.s=g.s,d=S(f,t,s,1).minus(g).abs().cmp(S(l,i,s,1).minus(g).abs())<1?[f,t]:[l,i],N.precision=c,w=!0,d};h.toHexadecimal=h.toHex=function(e,n){return ke(this,16,e,n)};h.toNearest=function(e,n){var i=this,t=i.constructor;if(i=new t(i),e==null){if(!i.d)return i;e=new t(1),n=t.rounding}else{if(e=new t(e),n===void 0?n=t.rounding:_(n,0,8),!i.d)return e.s?i:e;if(!e.d)return e.s&&(e.s=i.s),e}return e.d[0]?(w=!1,i=S(i,e,0,n,1).times(e),w=!0,p(i)):(e.s=i.s,i=e),i};h.toNumber=function(){return+this};h.toOctal=function(e,n){return ke(this,8,e,n)};h.toPower=h.pow=function(e){var n,i,t,r,s,o,u=this,l=u.constructor,f=+(e=new l(e));if(!u.d||!e.d||!u.d[0]||!e.d[0])return new l(C(+u,f));if(u=new l(u),u.eq(1))return u;if(t=l.precision,s=l.rounding,e.eq(1))return p(u,t,s);if(n=b(e.e/m),n>=e.d.length-1&&(i=f<0?-f:f)<=tn)return r=Ue(l,u,i,t),e.s<0?new l(1).div(r):p(r,t,s);if(o=u.s,o<0){if(nl.maxE+1||n0?o/0:0):(w=!1,l.rounding=u.s=1,i=Math.min(12,(n+"").length),r=Ee(e.times(B(u,t+i)),t),r.d&&(r=p(r,t+5,1),x(r.d,t,s)&&(n=t+10,r=p(Ee(e.times(B(u,n+i)),n),n+5,1),+O(r.d).slice(t+1,t+15)+1==1e14&&(r=p(r,t+1,0)))),r.s=o,w=!0,l.rounding=s,p(r,t,s))};h.toPrecision=function(e,n){var i,t=this,r=t.constructor;return e===void 0?i=F(t,t.e<=r.toExpNeg||t.e>=r.toExpPos):(_(e,1,$),n===void 0?n=r.rounding:_(n,0,8),t=p(new r(t),e,n),i=F(t,e<=t.e||t.e<=r.toExpNeg,e)),t.isNeg()&&!t.isZero()?"-"+i:i};h.toSignificantDigits=h.toSD=function(e,n){var i=this,t=i.constructor;return e===void 0?(e=t.precision,n=t.rounding):(_(e,1,$),n===void 0?n=t.rounding:_(n,0,8)),p(new t(i),e,n)};h.toString=function(){var e=this,n=e.constructor,i=F(e,e.e<=n.toExpNeg||e.e>=n.toExpPos);return e.isNeg()&&!e.isZero()?"-"+i:i};h.truncated=h.trunc=function(){return p(new this.constructor(this),this.e+1,1)};h.valueOf=h.toJSON=function(){var e=this,n=e.constructor,i=F(e,e.e<=n.toExpNeg||e.e>=n.toExpPos);return e.isNeg()?"-"+i:i};function O(e){var n,i,t,r=e.length-1,s="",o=e[0];if(r>0){for(s+=o,n=1;ni)throw Error(V+e)}function x(e,n,i,t){var r,s,o,u;for(s=e[0];s>=10;s/=10)--n;return--n<0?(n+=m,r=0):(r=Math.ceil((n+1)/m),n%=m),s=C(10,m-n),u=e[r]%s|0,t==null?n<3?(n==0?u=u/100|0:n==1&&(u=u/10|0),o=i<4&&u==99999||i>3&&u==49999||u==5e4||u==0):o=(i<4&&u+1==s||i>3&&u+1==s/2)&&(e[r+1]/s/100|0)==C(10,n-2)-1||(u==s/2||u==0)&&(e[r+1]/s/100|0)==0:n<4?(n==0?u=u/1e3|0:n==1?u=u/100|0:n==2&&(u=u/10|0),o=(t||i<4)&&u==9999||!t&&i>3&&u==4999):o=((t||i<4)&&u+1==s||!t&&i>3&&u+1==s/2)&&(e[r+1]/s/1e3|0)==C(10,n-3)-1,o}function ie(e,n,i){for(var t,r=[0],s,o=0,u=e.length;oi-1&&(r[t+1]===void 0&&(r[t+1]=0),r[t+1]+=r[t]/i|0,r[t]%=i)}return r.reverse()}function sn(e,n){var i,t,r;if(n.isZero())return n;t=n.d.length,t<32?(i=Math.ceil(t/3),r=(1/fe(4,i)).toString()):(i=16,r="2.3283064365386962890625e-10"),e.precision+=i,n=j(e,1,n.times(r),new e(1));for(var s=i;s--;){var o=n.times(n);n=o.times(o).minus(o).times(8).plus(1)}return e.precision-=i,n}var S=function(){function e(t,r,s){var o,u=0,l=t.length;for(t=t.slice();l--;)o=t[l]*r+u,t[l]=o%s|0,u=o/s|0;return u&&t.unshift(u),t}function n(t,r,s,o){var u,l;if(s!=o)l=s>o?1:-1;else for(u=l=0;ur[u]?1:-1;break}return l}function i(t,r,s,o){for(var u=0;s--;)t[s]-=u,u=t[s]1;)t.shift()}return function(t,r,s,o,u,l){var f,c,a,d,g,v,N,A,M,q,E,P,Y,I,le,z,W,ce,T,y,ee=t.constructor,ae=t.s==r.s?1:-1,R=t.d,k=r.d;if(!R||!R[0]||!k||!k[0])return new ee(!t.s||!r.s||(R?k&&R[0]==k[0]:!k)?NaN:R&&R[0]==0||!k?ae*0:ae/0);for(l?(g=1,c=t.e-r.e):(l=D,g=m,c=b(t.e/g)-b(r.e/g)),T=k.length,W=R.length,M=new ee(ae),q=M.d=[],a=0;k[a]==(R[a]||0);a++);if(k[a]>(R[a]||0)&&c--,s==null?(I=s=ee.precision,o=ee.rounding):u?I=s+(t.e-r.e)+1:I=s,I<0)q.push(1),v=!0;else{if(I=I/g+2|0,a=0,T==1){for(d=0,k=k[0],I++;(a1&&(k=e(k,d,l),R=e(R,d,l),T=k.length,W=R.length),z=T,E=R.slice(0,T),P=E.length;P=l/2&&++ce;do d=0,f=n(k,E,T,P),f<0?(Y=E[0],T!=P&&(Y=Y*l+(E[1]||0)),d=Y/ce|0,d>1?(d>=l&&(d=l-1),N=e(k,d,l),A=N.length,P=E.length,f=n(N,E,A,P),f==1&&(d--,i(N,T=10;d/=10)a++;M.e=a+c*g-1,p(M,u?s+M.e+1:s,o,v)}return M}}();function p(e,n,i,t){var r,s,o,u,l,f,c,a,d,g=e.constructor;e:if(n!=null){if(a=e.d,!a)return e;for(r=1,u=a[0];u>=10;u/=10)r++;if(s=n-r,s<0)s+=m,o=n,c=a[d=0],l=c/C(10,r-o-1)%10|0;else if(d=Math.ceil((s+1)/m),u=a.length,d>=u)if(t){for(;u++<=d;)a.push(0);c=l=0,r=1,s%=m,o=s-m+1}else break e;else{for(c=u=a[d],r=1;u>=10;u/=10)r++;s%=m,o=s-m+r,l=o<0?0:c/C(10,r-o-1)%10|0}if(t=t||n<0||a[d+1]!==void 0||(o<0?c:c%C(10,r-o-1)),f=i<4?(l||t)&&(i==0||i==(e.s<0?3:2)):l>5||l==5&&(i==4||t||i==6&&(s>0?o>0?c/C(10,r-o):0:a[d-1])%10&1||i==(e.s<0?8:7)),n<1||!a[0])return a.length=0,f?(n-=e.e+1,a[0]=C(10,(m-n%m)%m),e.e=-n||0):a[0]=e.e=0,e;if(s==0?(a.length=d,u=1,d--):(a.length=d+1,u=C(10,m-s),a[d]=o>0?(c/C(10,r-o)%C(10,o)|0)*u:0),f)for(;;)if(d==0){for(s=1,o=a[0];o>=10;o/=10)s++;for(o=a[0]+=u,u=1;o>=10;o/=10)u++;s!=u&&(e.e++,a[0]==D&&(a[0]=1));break}else{if(a[d]+=u,a[d]!=D)break;a[d--]=0,u=1}for(s=a.length;a[--s]===0;)a.pop()}return w&&(e.e>g.maxE?(e.d=null,e.e=NaN):e.e0?s=s.charAt(0)+"."+s.slice(1)+U(t):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(e.e<0?"e":"e+")+e.e):r<0?(s="0."+U(-r-1)+s,i&&(t=i-o)>0&&(s+=U(t))):r>=o?(s+=U(r+1-o),i&&(t=i-r-1)>0&&(s=s+"."+U(t))):((t=r+1)0&&(r+1===o&&(s+="."),s+=U(t))),s}function ue(e,n){var i=e[0];for(n*=m;i>=10;i/=10)n++;return n}function se(e,n,i){if(n>rn)throw w=!0,i&&(e.precision=i),Error(Le);return p(new e(te),n,1,!0)}function L(e,n,i){if(n>ve)throw Error(Le);return p(new e(re),n,i,!0)}function Ze(e){var n=e.length-1,i=n*m+1;if(n=e[n],n){for(;n%10==0;n/=10)i--;for(n=e[0];n>=10;n/=10)i++}return i}function U(e){for(var n="";e--;)n+="0";return n}function Ue(e,n,i,t){var r,s=new e(1),o=Math.ceil(t/m+4);for(w=!1;;){if(i%2&&(s=s.times(n),_e(s.d,o)&&(r=!0)),i=b(i/2),i===0){i=s.d.length-1,r&&s.d[i]===0&&++s.d[i];break}n=n.times(n),_e(n.d,o)}return w=!0,s}function Ae(e){return e.d[e.d.length-1]&1}function Be(e,n,i){for(var t,r=new e(n[0]),s=0;++s17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(n==null?(w=!1,l=v):l=n,u=new d(.03125);e.e>-2;)e=e.times(u),a+=5;for(t=Math.log(C(2,a))/Math.LN10*2+5|0,l+=t,i=s=o=new d(1),d.precision=l;;){if(s=p(s.times(e),l,1),i=i.times(++c),u=o.plus(S(s,i,l,1)),O(u.d).slice(0,l)===O(o.d).slice(0,l)){for(r=a;r--;)o=p(o.times(o),l,1);if(n==null)if(f<3&&x(o.d,l-t,g,f))d.precision=l+=10,i=s=u=new d(1),c=0,f++;else return p(o,d.precision=v,g,w=!0);else return d.precision=v,o}o=u}}function B(e,n){var i,t,r,s,o,u,l,f,c,a,d,g=1,v=10,N=e,A=N.d,M=N.constructor,q=M.rounding,E=M.precision;if(N.s<0||!A||!A[0]||!N.e&&A[0]==1&&A.length==1)return new M(A&&!A[0]?-1/0:N.s!=1?NaN:A?0:N);if(n==null?(w=!1,c=E):c=n,M.precision=c+=v,i=O(A),t=i.charAt(0),Math.abs(s=N.e)<15e14){for(;t<7&&t!=1||t==1&&i.charAt(1)>3;)N=N.times(e),i=O(N.d),t=i.charAt(0),g++;s=N.e,t>1?(N=new M("0."+i),s++):N=new M(t+"."+i.slice(1))}else return f=se(M,c+2,E).times(s+""),N=B(new M(t+"."+i.slice(1)),c-v).plus(f),M.precision=E,n==null?p(N,E,q,w=!0):N;for(a=N,l=o=N=S(N.minus(1),N.plus(1),c,1),d=p(N.times(N),c,1),r=3;;){if(o=p(o.times(d),c,1),f=l.plus(S(o,new M(r),c,1)),O(f.d).slice(0,c)===O(l.d).slice(0,c))if(l=l.times(2),s!==0&&(l=l.plus(se(M,c+2,E).times(s+""))),l=S(l,new M(g),c,1),n==null)if(x(l.d,c-v,q,u))M.precision=c+=v,f=o=N=S(a.minus(1),a.plus(1),c,1),d=p(N.times(N),c,1),r=u=1;else return p(l,M.precision=E,q,w=!0);else return M.precision=E,l;l=f,r+=2}}function Ve(e){return String(e.s*e.s/0)}function Se(e,n){var i,t,r;for((i=n.indexOf("."))>-1&&(n=n.replace(".","")),(t=n.search(/e/i))>0?(i<0&&(i=t),i+=+n.slice(t+1),n=n.substring(0,t)):i<0&&(i=n.length),t=0;n.charCodeAt(t)===48;t++);for(r=n.length;n.charCodeAt(r-1)===48;--r);if(n=n.slice(t,r),n){if(r-=t,e.e=i=i-t-1,e.d=[],t=(i+1)%m,i<0&&(t+=m),te.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(n=n.replace(/(\d)_(?=\d)/g,"$1"),Ie.test(n))return Se(e,n)}else if(n==="Infinity"||n==="NaN")return+n||(e.s=NaN),e.e=NaN,e.d=null,e;if(en.test(n))i=16,n=n.toLowerCase();else if(ye.test(n))i=2;else if(nn.test(n))i=8;else throw Error(V+n);for(s=n.search(/p/i),s>0?(l=+n.slice(s+1),n=n.substring(2,s)):n=n.slice(2),s=n.indexOf("."),o=s>=0,t=e.constructor,o&&(n=n.replace(".",""),u=n.length,s=u-s,r=Ue(t,new t(i),s,s*2)),f=ie(n,i,D),c=f.length-1,s=c;f[s]===0;--s)f.pop();return s<0?new t(e.s*0):(e.e=ue(f,c),e.d=f,w=!1,o&&(e=S(e,r,u*4)),l&&(e=e.times(Math.abs(l)<54?C(2,l):Q.pow(2,l))),w=!0,e)}function un(e,n){var i,t=n.d.length;if(t<3)return n.isZero()?n:j(e,2,n,n);i=1.4*Math.sqrt(t),i=i>16?16:i|0,n=n.times(1/fe(5,i)),n=j(e,2,n,n);for(var r,s=new e(5),o=new e(16),u=new e(20);i--;)r=n.times(n),n=n.times(s.plus(r.times(o.times(r).minus(u))));return n}function j(e,n,i,t,r){var s,o,u,l,f=1,c=e.precision,a=Math.ceil(c/m);for(w=!1,l=i.times(i),u=new e(t);;){if(o=S(u.times(l),new e(n++*n++),c,1),u=r?t.plus(o):t.minus(o),t=S(o.times(l),new e(n++*n++),c,1),o=u.plus(t),o.d[a]!==void 0){for(s=a;o.d[s]===u.d[s]&&s--;);if(s==-1)break}s=u,u=t,t=o,o=s,f++}return w=!0,o.d.length=a+1,o}function fe(e,n){for(var i=e;--n;)i*=e;return i}function $e(e,n){var i,t=n.s<0,r=L(e,e.precision,1),s=r.times(.5);if(n=n.abs(),n.lte(s))return Z=t?4:1,n;if(i=n.divToInt(r),i.isZero())Z=t?3:2;else{if(n=n.minus(i.times(r)),n.lte(s))return Z=Ae(i)?t?2:3:t?4:1,n;Z=Ae(i)?t?1:4:t?3:2}return n.minus(r).abs()}function ke(e,n,i,t){var r,s,o,u,l,f,c,a,d,g=e.constructor,v=i!==void 0;if(v?(_(i,1,$),t===void 0?t=g.rounding:_(t,0,8)):(i=g.precision,t=g.rounding),!e.isFinite())c=Ve(e);else{for(c=F(e),o=c.indexOf("."),v?(r=2,n==16?i=i*4-3:n==8&&(i=i*3-2)):r=n,o>=0&&(c=c.replace(".",""),d=new g(1),d.e=c.length-o,d.d=ie(F(d),10,r),d.e=d.d.length),a=ie(c,10,r),s=l=a.length;a[--l]==0;)a.pop();if(!a[0])c=v?"0p+0":"0";else{if(o<0?s--:(e=new g(e),e.d=a,e.e=s,e=S(e,d,i,t,0,r),a=e.d,s=e.e,f=Te),o=a[i],u=r/2,f=f||a[i+1]!==void 0,f=t<4?(o!==void 0||f)&&(t===0||t===(e.s<0?3:2)):o>u||o===u&&(t===4||f||t===6&&a[i-1]&1||t===(e.s<0?8:7)),a.length=i,f)for(;++a[--i]>r-1;)a[i]=0,i||(++s,a.unshift(1));for(l=a.length;!a[l-1];--l);for(o=0,c="";o1)if(n==16||n==8){for(o=n==16?4:3,--l;l%o;l++)c+="0";for(a=ie(c,r,n),l=a.length;!a[l-1];--l);for(o=1,c="1.";ol)for(s-=l;s--;)c+="0";else sn)return e.length=n,!0}function fn(e){return new this(e).abs()}function ln(e){return new this(e).acos()}function cn(e){return new this(e).acosh()}function an(e,n){return new this(e).plus(n)}function dn(e){return new this(e).asin()}function hn(e){return new this(e).asinh()}function pn(e){return new this(e).atan()}function gn(e){return new this(e).atanh()}function mn(e,n){e=new this(e),n=new this(n);var i,t=this.precision,r=this.rounding,s=t+4;return!e.s||!n.s?i=new this(NaN):!e.d&&!n.d?(i=L(this,s,1).times(n.s>0?.25:.75),i.s=e.s):!n.d||e.isZero()?(i=n.s<0?L(this,t,r):new this(0),i.s=e.s):!e.d||n.isZero()?(i=L(this,s,1).times(.5),i.s=e.s):n.s<0?(this.precision=s,this.rounding=1,i=this.atan(S(e,n,s,1)),n=L(this,s,1),this.precision=t,this.rounding=r,i=e.s<0?i.minus(n):i.plus(n)):i=this.atan(S(e,n,s,1)),i}function wn(e){return new this(e).cbrt()}function Nn(e){return p(e=new this(e),e.e+1,2)}function vn(e,n,i){return new this(e).clamp(n,i)}function En(e){if(!e||typeof e!="object")throw Error(oe+"Object expected");var n,i,t,r=e.defaults===!0,s=["precision",1,$,"rounding",0,8,"toExpNeg",-H,0,"toExpPos",0,H,"maxE",0,H,"minE",-H,0,"modulo",0,9];for(n=0;n=s[n+1]&&t<=s[n+2])this[i]=t;else throw Error(V+i+": "+t);if(i="crypto",r&&(this[i]=Ne[i]),(t=e[i])!==void 0)if(t===!0||t===!1||t===0||t===1)if(t)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[i]=!0;else throw Error(De);else this[i]=!1;else throw Error(V+i+": "+t);return this}function Sn(e){return new this(e).cos()}function kn(e){return new this(e).cosh()}function He(e){var n,i,t;function r(s){var o,u,l,f=this;if(!(f instanceof r))return new r(s);if(f.constructor=r,qe(s)){f.s=s.s,w?!s.d||s.e>r.maxE?(f.e=NaN,f.d=null):s.e=10;u/=10)o++;w?o>r.maxE?(f.e=NaN,f.d=null):o=429e7?n[s]=crypto.getRandomValues(new Uint32Array(1))[0]:u[s++]=r%1e7;else if(crypto.randomBytes){for(n=crypto.randomBytes(t*=4);s=214e7?crypto.randomBytes(4).copy(n,s):(u.push(r%1e7),s+=4);s=t/4}else throw Error(De);else for(;s=10;r/=10)t++;t + * MIT Licence + *) +*/ +//# sourceMappingURL=index-browser.js.map diff --git a/mods/identity/src/generated/@prisma/client/runtime/library.d.ts b/mods/identity/src/generated/@prisma/client/runtime/library.d.ts new file mode 100644 index 000000000..bb4fe6ad9 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/runtime/library.d.ts @@ -0,0 +1,3378 @@ +/** + * @param this + */ +declare function $extends(this: Client, extension: ExtensionArgs | ((client: Client) => Client)): Client; + +declare type AccelerateEngineConfig = { + inlineSchema: EngineConfig['inlineSchema']; + inlineSchemaHash: EngineConfig['inlineSchemaHash']; + env: EngineConfig['env']; + generator?: { + previewFeatures: string[]; + }; + inlineDatasources: EngineConfig['inlineDatasources']; + overrideDatasources: EngineConfig['overrideDatasources']; + clientVersion: EngineConfig['clientVersion']; + engineVersion: EngineConfig['engineVersion']; + logEmitter: EngineConfig['logEmitter']; + logQueries?: EngineConfig['logQueries']; + logLevel?: EngineConfig['logLevel']; + tracingHelper: EngineConfig['tracingHelper']; + accelerateUtils?: EngineConfig['accelerateUtils']; +}; + +export declare type Action = keyof typeof DMMF.ModelAction | 'executeRaw' | 'queryRaw' | 'runCommandRaw'; + +declare type ActiveConnectorType = Exclude; + +export declare type Aggregate = '_count' | '_max' | '_min' | '_avg' | '_sum'; + +export declare type AllModelsToStringIndex, K extends PropertyKey> = Args extends { + [P in K]: { + $allModels: infer AllModels; + }; +} ? { + [P in K]: Record; +} : {}; + +declare class AnyNull extends NullTypesEnumValue { +} + +export declare type ApplyOmit = Compute<{ + [K in keyof T as OmitValue extends true ? never : K]: T[K]; +}>; + +export declare type Args = T extends { + [K: symbol]: { + types: { + operations: { + [K in F]: { + args: any; + }; + }; + }; + }; +} ? T[symbol]['types']['operations'][F]['args'] : any; + +export declare type Args_3 = Args; + +/** + * Original `quaint::ValueType` enum tag from Prisma's `quaint`. + * Query arguments marked with this type are sanitized before being sent to the database. + * Notice while a query argument may be `null`, `ArgType` is guaranteed to be defined. + */ +declare type ArgType = 'Int32' | 'Int64' | 'Float' | 'Double' | 'Text' | 'Enum' | 'EnumArray' | 'Bytes' | 'Boolean' | 'Char' | 'Array' | 'Numeric' | 'Json' | 'Xml' | 'Uuid' | 'DateTime' | 'Date' | 'Time'; + +/** + * Attributes is a map from string to attribute values. + * + * Note: only the own enumerable keys are counted as valid attribute keys. + */ +declare interface Attributes { + [attributeKey: string]: AttributeValue | undefined; +} + +/** + * Attribute values may be any non-nullish primitive value except an object. + * + * null or undefined attribute values are invalid and will result in undefined behavior. + */ +declare type AttributeValue = string | number | boolean | Array | Array | Array; + +export declare type BaseDMMF = { + readonly datamodel: Omit; +}; + +declare type BatchArgs = { + queries: BatchQuery[]; + transaction?: { + isolationLevel?: IsolationLevel; + }; +}; + +declare type BatchInternalParams = { + requests: RequestParams[]; + customDataProxyFetch?: CustomDataProxyFetch; +}; + +declare type BatchQuery = { + model: string | undefined; + operation: string; + args: JsArgs | RawQueryArgs; +}; + +declare type BatchQueryEngineResult = QueryEngineResultData | Error; + +declare type BatchQueryOptionsCb = (args: BatchQueryOptionsCbArgs) => Promise; + +declare type BatchQueryOptionsCbArgs = { + args: BatchArgs; + query: (args: BatchArgs, __internalParams?: BatchInternalParams) => Promise; + __internalParams: BatchInternalParams; +}; + +declare type BatchTransactionOptions = { + isolationLevel?: Transaction_2.IsolationLevel; +}; + +declare interface BinaryTargetsEnvValue { + fromEnvVar: string | null; + value: string; + native?: boolean; +} + +export declare type Call = (F & { + params: P; +})['returns']; + +declare interface CallSite { + getLocation(): LocationInFile | null; +} + +export declare type Cast = A extends W ? A : W; + +declare type Client = ReturnType extends new () => infer T ? T : never; + +export declare type ClientArg = { + [MethodName in string]: unknown; +}; + +export declare type ClientArgs = { + client: ClientArg; +}; + +export declare type ClientBuiltInProp = keyof DynamicClientExtensionThisBuiltin; + +export declare type ClientOptionDef = undefined | { + [K in string]: any; +}; + +export declare type ClientOtherOps = { + $queryRaw(query: TemplateStringsArray | Sql, ...values: any[]): PrismaPromise; + $queryRawTyped(query: TypedSql): PrismaPromise; + $queryRawUnsafe(query: string, ...values: any[]): PrismaPromise; + $executeRaw(query: TemplateStringsArray | Sql, ...values: any[]): PrismaPromise; + $executeRawUnsafe(query: string, ...values: any[]): PrismaPromise; + $runCommandRaw(command: InputJsonObject): PrismaPromise; +}; + +declare type ColumnType = (typeof ColumnTypeEnum)[keyof typeof ColumnTypeEnum]; + +declare const ColumnTypeEnum: { + readonly Int32: 0; + readonly Int64: 1; + readonly Float: 2; + readonly Double: 3; + readonly Numeric: 4; + readonly Boolean: 5; + readonly Character: 6; + readonly Text: 7; + readonly Date: 8; + readonly Time: 9; + readonly DateTime: 10; + readonly Json: 11; + readonly Enum: 12; + readonly Bytes: 13; + readonly Set: 14; + readonly Uuid: 15; + readonly Int32Array: 64; + readonly Int64Array: 65; + readonly FloatArray: 66; + readonly DoubleArray: 67; + readonly NumericArray: 68; + readonly BooleanArray: 69; + readonly CharacterArray: 70; + readonly TextArray: 71; + readonly DateArray: 72; + readonly TimeArray: 73; + readonly DateTimeArray: 74; + readonly JsonArray: 75; + readonly EnumArray: 76; + readonly BytesArray: 77; + readonly UuidArray: 78; + readonly UnknownNumber: 128; +}; + +export declare type Compute = T extends Function ? T : { + [K in keyof T]: T[K]; +} & unknown; + +export declare type ComputeDeep = T extends Function ? T : { + [K in keyof T]: ComputeDeep; +} & unknown; + +declare type ComputedField = { + name: string; + needs: string[]; + compute: ResultArgsFieldCompute; +}; + +declare type ComputedFieldsMap = { + [fieldName: string]: ComputedField; +}; + +declare type ConnectionInfo = { + schemaName?: string; + maxBindValues?: number; +}; + +declare type ConnectorType = 'mysql' | 'mongodb' | 'sqlite' | 'postgresql' | 'postgres' | 'sqlserver' | 'cockroachdb'; + +declare interface Context { + /** + * Get a value from the context. + * + * @param key key which identifies a context value + */ + getValue(key: symbol): unknown; + /** + * Create a new context which inherits from this context and has + * the given key set to the given value. + * + * @param key context key for which to set the value + * @param value value to set for the given key + */ + setValue(key: symbol, value: unknown): Context; + /** + * Return a new context which inherits from this context but does + * not contain a value for the given key. + * + * @param key context key for which to clear a value + */ + deleteValue(key: symbol): Context; +} + +declare type Context_2 = T extends { + [K: symbol]: { + ctx: infer C; + }; +} ? C & T & { + /** + * @deprecated Use `$name` instead. + */ + name?: string; + $name?: string; + $parent?: unknown; +} : T & { + /** + * @deprecated Use `$name` instead. + */ + name?: string; + $name?: string; + $parent?: unknown; +}; + +export declare type Count = { + [K in keyof O]: Count; +} & {}; + +/** + * Custom fetch function for `DataProxyEngine`. + * + * We can't use the actual type of `globalThis.fetch` because this will result + * in API Extractor referencing Node.js type definitions in the `.d.ts` bundle + * for the client runtime. We can only use such types in internal types that + * don't end up exported anywhere. + + * It's also not possible to write a definition of `fetch` that would accept the + * actual `fetch` function from different environments such as Node.js and + * Cloudflare Workers (with their extensions to `RequestInit` and `Response`). + * `fetch` is used in both covariant and contravariant positions in + * `CustomDataProxyFetch`, making it invariant, so we need the exact same type. + * Even if we removed the argument and left `fetch` in covariant position only, + * then for an extension-supplied function to be assignable to `customDataProxyFetch`, + * the platform-specific (or custom) `fetch` function needs to be assignable + * to our `fetch` definition. This, in turn, requires the third-party `Response` + * to be a subtype of our `Response` (which is not a problem, we could declare + * a minimal `Response` type that only includes what we use) *and* requires the + * third-party `RequestInit` to be a supertype of our `RequestInit` (i.e. we + * have to declare all properties any `RequestInit` implementation in existence + * could possibly have), which is not possible. + * + * Since `@prisma/extension-accelerate` redefines the type of + * `__internalParams.customDataProxyFetch` to its own type anyway (probably for + * exactly this reason), our definition is never actually used and is completely + * ignored, so it doesn't matter, and we can just use `unknown` as the type of + * `fetch` here. + */ +declare type CustomDataProxyFetch = (fetch: unknown) => unknown; + +declare class DataLoader { + private options; + batches: { + [key: string]: Job[]; + }; + private tickActive; + constructor(options: DataLoaderOptions); + request(request: T): Promise; + private dispatchBatches; + get [Symbol.toStringTag](): string; +} + +declare type DataLoaderOptions = { + singleLoader: (request: T) => Promise; + batchLoader: (request: T[]) => Promise; + batchBy: (request: T) => string | undefined; + batchOrder: (requestA: T, requestB: T) => number; +}; + +declare type Datasource = { + url?: string; +}; + +declare type Datasources = { + [name in string]: Datasource; +}; + +declare class DbNull extends NullTypesEnumValue { +} + +export declare const Debug: typeof debugCreate & { + enable(namespace: any): void; + disable(): any; + enabled(namespace: string): boolean; + log: (...args: string[]) => void; + formatters: {}; +}; + +/** + * Create a new debug instance with the given namespace. + * + * @example + * ```ts + * import Debug from '@prisma/debug' + * const debug = Debug('prisma:client') + * debug('Hello World') + * ``` + */ +declare function debugCreate(namespace: string): ((...args: any[]) => void) & { + color: string; + enabled: boolean; + namespace: string; + log: (...args: string[]) => void; + extend: () => void; +}; + +export declare namespace Decimal { + export type Constructor = typeof Decimal; + export type Instance = Decimal; + export type Rounding = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; + export type Modulo = Rounding | 9; + export type Value = string | number | Decimal; + + // http://mikemcl.github.io/decimal.js/#constructor-properties + export interface Config { + precision?: number; + rounding?: Rounding; + toExpNeg?: number; + toExpPos?: number; + minE?: number; + maxE?: number; + crypto?: boolean; + modulo?: Modulo; + defaults?: boolean; + } +} + +export declare class Decimal { + readonly d: number[]; + readonly e: number; + readonly s: number; + + constructor(n: Decimal.Value); + + absoluteValue(): Decimal; + abs(): Decimal; + + ceil(): Decimal; + + clampedTo(min: Decimal.Value, max: Decimal.Value): Decimal; + clamp(min: Decimal.Value, max: Decimal.Value): Decimal; + + comparedTo(n: Decimal.Value): number; + cmp(n: Decimal.Value): number; + + cosine(): Decimal; + cos(): Decimal; + + cubeRoot(): Decimal; + cbrt(): Decimal; + + decimalPlaces(): number; + dp(): number; + + dividedBy(n: Decimal.Value): Decimal; + div(n: Decimal.Value): Decimal; + + dividedToIntegerBy(n: Decimal.Value): Decimal; + divToInt(n: Decimal.Value): Decimal; + + equals(n: Decimal.Value): boolean; + eq(n: Decimal.Value): boolean; + + floor(): Decimal; + + greaterThan(n: Decimal.Value): boolean; + gt(n: Decimal.Value): boolean; + + greaterThanOrEqualTo(n: Decimal.Value): boolean; + gte(n: Decimal.Value): boolean; + + hyperbolicCosine(): Decimal; + cosh(): Decimal; + + hyperbolicSine(): Decimal; + sinh(): Decimal; + + hyperbolicTangent(): Decimal; + tanh(): Decimal; + + inverseCosine(): Decimal; + acos(): Decimal; + + inverseHyperbolicCosine(): Decimal; + acosh(): Decimal; + + inverseHyperbolicSine(): Decimal; + asinh(): Decimal; + + inverseHyperbolicTangent(): Decimal; + atanh(): Decimal; + + inverseSine(): Decimal; + asin(): Decimal; + + inverseTangent(): Decimal; + atan(): Decimal; + + isFinite(): boolean; + + isInteger(): boolean; + isInt(): boolean; + + isNaN(): boolean; + + isNegative(): boolean; + isNeg(): boolean; + + isPositive(): boolean; + isPos(): boolean; + + isZero(): boolean; + + lessThan(n: Decimal.Value): boolean; + lt(n: Decimal.Value): boolean; + + lessThanOrEqualTo(n: Decimal.Value): boolean; + lte(n: Decimal.Value): boolean; + + logarithm(n?: Decimal.Value): Decimal; + log(n?: Decimal.Value): Decimal; + + minus(n: Decimal.Value): Decimal; + sub(n: Decimal.Value): Decimal; + + modulo(n: Decimal.Value): Decimal; + mod(n: Decimal.Value): Decimal; + + naturalExponential(): Decimal; + exp(): Decimal; + + naturalLogarithm(): Decimal; + ln(): Decimal; + + negated(): Decimal; + neg(): Decimal; + + plus(n: Decimal.Value): Decimal; + add(n: Decimal.Value): Decimal; + + precision(includeZeros?: boolean): number; + sd(includeZeros?: boolean): number; + + round(): Decimal; + + sine() : Decimal; + sin() : Decimal; + + squareRoot(): Decimal; + sqrt(): Decimal; + + tangent() : Decimal; + tan() : Decimal; + + times(n: Decimal.Value): Decimal; + mul(n: Decimal.Value) : Decimal; + + toBinary(significantDigits?: number): string; + toBinary(significantDigits: number, rounding: Decimal.Rounding): string; + + toDecimalPlaces(decimalPlaces?: number): Decimal; + toDecimalPlaces(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; + toDP(decimalPlaces?: number): Decimal; + toDP(decimalPlaces: number, rounding: Decimal.Rounding): Decimal; + + toExponential(decimalPlaces?: number): string; + toExponential(decimalPlaces: number, rounding: Decimal.Rounding): string; + + toFixed(decimalPlaces?: number): string; + toFixed(decimalPlaces: number, rounding: Decimal.Rounding): string; + + toFraction(max_denominator?: Decimal.Value): Decimal[]; + + toHexadecimal(significantDigits?: number): string; + toHexadecimal(significantDigits: number, rounding: Decimal.Rounding): string; + toHex(significantDigits?: number): string; + toHex(significantDigits: number, rounding?: Decimal.Rounding): string; + + toJSON(): string; + + toNearest(n: Decimal.Value, rounding?: Decimal.Rounding): Decimal; + + toNumber(): number; + + toOctal(significantDigits?: number): string; + toOctal(significantDigits: number, rounding: Decimal.Rounding): string; + + toPower(n: Decimal.Value): Decimal; + pow(n: Decimal.Value): Decimal; + + toPrecision(significantDigits?: number): string; + toPrecision(significantDigits: number, rounding: Decimal.Rounding): string; + + toSignificantDigits(significantDigits?: number): Decimal; + toSignificantDigits(significantDigits: number, rounding: Decimal.Rounding): Decimal; + toSD(significantDigits?: number): Decimal; + toSD(significantDigits: number, rounding: Decimal.Rounding): Decimal; + + toString(): string; + + truncated(): Decimal; + trunc(): Decimal; + + valueOf(): string; + + static abs(n: Decimal.Value): Decimal; + static acos(n: Decimal.Value): Decimal; + static acosh(n: Decimal.Value): Decimal; + static add(x: Decimal.Value, y: Decimal.Value): Decimal; + static asin(n: Decimal.Value): Decimal; + static asinh(n: Decimal.Value): Decimal; + static atan(n: Decimal.Value): Decimal; + static atanh(n: Decimal.Value): Decimal; + static atan2(y: Decimal.Value, x: Decimal.Value): Decimal; + static cbrt(n: Decimal.Value): Decimal; + static ceil(n: Decimal.Value): Decimal; + static clamp(n: Decimal.Value, min: Decimal.Value, max: Decimal.Value): Decimal; + static clone(object?: Decimal.Config): Decimal.Constructor; + static config(object: Decimal.Config): Decimal.Constructor; + static cos(n: Decimal.Value): Decimal; + static cosh(n: Decimal.Value): Decimal; + static div(x: Decimal.Value, y: Decimal.Value): Decimal; + static exp(n: Decimal.Value): Decimal; + static floor(n: Decimal.Value): Decimal; + static hypot(...n: Decimal.Value[]): Decimal; + static isDecimal(object: any): object is Decimal; + static ln(n: Decimal.Value): Decimal; + static log(n: Decimal.Value, base?: Decimal.Value): Decimal; + static log2(n: Decimal.Value): Decimal; + static log10(n: Decimal.Value): Decimal; + static max(...n: Decimal.Value[]): Decimal; + static min(...n: Decimal.Value[]): Decimal; + static mod(x: Decimal.Value, y: Decimal.Value): Decimal; + static mul(x: Decimal.Value, y: Decimal.Value): Decimal; + static noConflict(): Decimal.Constructor; // Browser only + static pow(base: Decimal.Value, exponent: Decimal.Value): Decimal; + static random(significantDigits?: number): Decimal; + static round(n: Decimal.Value): Decimal; + static set(object: Decimal.Config): Decimal.Constructor; + static sign(n: Decimal.Value): number; + static sin(n: Decimal.Value): Decimal; + static sinh(n: Decimal.Value): Decimal; + static sqrt(n: Decimal.Value): Decimal; + static sub(x: Decimal.Value, y: Decimal.Value): Decimal; + static sum(...n: Decimal.Value[]): Decimal; + static tan(n: Decimal.Value): Decimal; + static tanh(n: Decimal.Value): Decimal; + static trunc(n: Decimal.Value): Decimal; + + static readonly default?: Decimal.Constructor; + static readonly Decimal?: Decimal.Constructor; + + static readonly precision: number; + static readonly rounding: Decimal.Rounding; + static readonly toExpNeg: number; + static readonly toExpPos: number; + static readonly minE: number; + static readonly maxE: number; + static readonly crypto: boolean; + static readonly modulo: Decimal.Modulo; + + static readonly ROUND_UP: 0; + static readonly ROUND_DOWN: 1; + static readonly ROUND_CEIL: 2; + static readonly ROUND_FLOOR: 3; + static readonly ROUND_HALF_UP: 4; + static readonly ROUND_HALF_DOWN: 5; + static readonly ROUND_HALF_EVEN: 6; + static readonly ROUND_HALF_CEIL: 7; + static readonly ROUND_HALF_FLOOR: 8; + static readonly EUCLID: 9; +} + +/** + * Interface for any Decimal.js-like library + * Allows us to accept Decimal.js from different + * versions and some compatible alternatives + */ +export declare interface DecimalJsLike { + d: number[]; + e: number; + s: number; + toFixed(): string; +} + +export declare type DefaultArgs = InternalArgs<{}, {}, {}, {}>; + +export declare type DefaultSelection = Args extends { + omit: infer LocalOmit; +} ? ApplyOmit['default'], PatchFlat>>> : ApplyOmit['default'], ExtractGlobalOmit>>; + +export declare function defineDmmfProperty(target: object, runtimeDataModel: RuntimeDataModel): void; + +declare function defineExtension(ext: ExtensionArgs | ((client: Client) => Client)): (client: Client) => Client; + +declare const denylist: readonly ["$connect", "$disconnect", "$on", "$transaction", "$use", "$extends"]; + +export declare function deserializeJsonResponse(result: unknown): unknown; + +export declare type DevTypeMapDef = { + meta: { + modelProps: string; + }; + model: { + [Model in PropertyKey]: { + [Operation in PropertyKey]: DevTypeMapFnDef; + }; + }; + other: { + [Operation in PropertyKey]: DevTypeMapFnDef; + }; +}; + +export declare type DevTypeMapFnDef = { + args: any; + result: any; + payload: OperationPayload; +}; + +export declare namespace DMMF { + export type Document = ReadonlyDeep_2<{ + datamodel: Datamodel; + schema: Schema; + mappings: Mappings; + }>; + export type Mappings = ReadonlyDeep_2<{ + modelOperations: ModelMapping[]; + otherOperations: { + read: string[]; + write: string[]; + }; + }>; + export type OtherOperationMappings = ReadonlyDeep_2<{ + read: string[]; + write: string[]; + }>; + export type DatamodelEnum = ReadonlyDeep_2<{ + name: string; + values: EnumValue[]; + dbName?: string | null; + documentation?: string; + }>; + export type SchemaEnum = ReadonlyDeep_2<{ + name: string; + values: string[]; + }>; + export type EnumValue = ReadonlyDeep_2<{ + name: string; + dbName: string | null; + }>; + export type Datamodel = ReadonlyDeep_2<{ + models: Model[]; + enums: DatamodelEnum[]; + types: Model[]; + indexes: Index[]; + }>; + export type uniqueIndex = ReadonlyDeep_2<{ + name: string; + fields: string[]; + }>; + export type PrimaryKey = ReadonlyDeep_2<{ + name: string | null; + fields: string[]; + }>; + export type Model = ReadonlyDeep_2<{ + name: string; + dbName: string | null; + schema: string | null; + fields: Field[]; + uniqueFields: string[][]; + uniqueIndexes: uniqueIndex[]; + documentation?: string; + primaryKey: PrimaryKey | null; + isGenerated?: boolean; + }>; + export type FieldKind = 'scalar' | 'object' | 'enum' | 'unsupported'; + export type FieldNamespace = 'model' | 'prisma'; + export type FieldLocation = 'scalar' | 'inputObjectTypes' | 'outputObjectTypes' | 'enumTypes' | 'fieldRefTypes'; + export type Field = ReadonlyDeep_2<{ + kind: FieldKind; + name: string; + isRequired: boolean; + isList: boolean; + isUnique: boolean; + isId: boolean; + isReadOnly: boolean; + isGenerated?: boolean; + isUpdatedAt?: boolean; + /** + * Describes the data type in the same the way it is defined in the Prisma schema: + * BigInt, Boolean, Bytes, DateTime, Decimal, Float, Int, JSON, String, $ModelName + */ + type: string; + /** + * Native database type, if specified. + * For example, `@db.VarChar(191)` is encoded as `['VarChar', ['191']]`, + * `@db.Text` is encoded as `['Text', []]`. + */ + nativeType?: [string, string[]] | null; + dbName?: string | null; + hasDefaultValue: boolean; + default?: FieldDefault | FieldDefaultScalar | FieldDefaultScalar[]; + relationFromFields?: string[]; + relationToFields?: string[]; + relationOnDelete?: string; + relationName?: string; + documentation?: string; + }>; + export type FieldDefault = ReadonlyDeep_2<{ + name: string; + args: Array; + }>; + export type FieldDefaultScalar = string | boolean | number; + export type Index = ReadonlyDeep_2<{ + model: string; + type: IndexType; + isDefinedOnField: boolean; + name?: string; + dbName?: string; + algorithm?: string; + clustered?: boolean; + fields: IndexField[]; + }>; + export type IndexType = 'id' | 'normal' | 'unique' | 'fulltext'; + export type IndexField = ReadonlyDeep_2<{ + name: string; + sortOrder?: SortOrder; + length?: number; + operatorClass?: string; + }>; + export type SortOrder = 'asc' | 'desc'; + export type Schema = ReadonlyDeep_2<{ + rootQueryType?: string; + rootMutationType?: string; + inputObjectTypes: { + model?: InputType[]; + prisma: InputType[]; + }; + outputObjectTypes: { + model: OutputType[]; + prisma: OutputType[]; + }; + enumTypes: { + model?: SchemaEnum[]; + prisma: SchemaEnum[]; + }; + fieldRefTypes: { + prisma?: FieldRefType[]; + }; + }>; + export type Query = ReadonlyDeep_2<{ + name: string; + args: SchemaArg[]; + output: QueryOutput; + }>; + export type QueryOutput = ReadonlyDeep_2<{ + name: string; + isRequired: boolean; + isList: boolean; + }>; + export type TypeRef = { + isList: boolean; + type: string; + location: AllowedLocations; + namespace?: FieldNamespace; + }; + export type InputTypeRef = TypeRef<'scalar' | 'inputObjectTypes' | 'enumTypes' | 'fieldRefTypes'>; + export type SchemaArg = ReadonlyDeep_2<{ + name: string; + comment?: string; + isNullable: boolean; + isRequired: boolean; + inputTypes: InputTypeRef[]; + deprecation?: Deprecation; + }>; + export type OutputType = ReadonlyDeep_2<{ + name: string; + fields: SchemaField[]; + }>; + export type SchemaField = ReadonlyDeep_2<{ + name: string; + isNullable?: boolean; + outputType: OutputTypeRef; + args: SchemaArg[]; + deprecation?: Deprecation; + documentation?: string; + }>; + export type OutputTypeRef = TypeRef<'scalar' | 'outputObjectTypes' | 'enumTypes'>; + export type Deprecation = ReadonlyDeep_2<{ + sinceVersion: string; + reason: string; + plannedRemovalVersion?: string; + }>; + export type InputType = ReadonlyDeep_2<{ + name: string; + constraints: { + maxNumFields: number | null; + minNumFields: number | null; + fields?: string[]; + }; + meta?: { + source?: string; + }; + fields: SchemaArg[]; + }>; + export type FieldRefType = ReadonlyDeep_2<{ + name: string; + allowTypes: FieldRefAllowType[]; + fields: SchemaArg[]; + }>; + export type FieldRefAllowType = TypeRef<'scalar' | 'enumTypes'>; + export type ModelMapping = ReadonlyDeep_2<{ + model: string; + plural: string; + findUnique?: string | null; + findUniqueOrThrow?: string | null; + findFirst?: string | null; + findFirstOrThrow?: string | null; + findMany?: string | null; + create?: string | null; + createMany?: string | null; + createManyAndReturn?: string | null; + update?: string | null; + updateMany?: string | null; + upsert?: string | null; + delete?: string | null; + deleteMany?: string | null; + aggregate?: string | null; + groupBy?: string | null; + count?: string | null; + findRaw?: string | null; + aggregateRaw?: string | null; + }>; + export enum ModelAction { + findUnique = "findUnique", + findUniqueOrThrow = "findUniqueOrThrow", + findFirst = "findFirst", + findFirstOrThrow = "findFirstOrThrow", + findMany = "findMany", + create = "create", + createMany = "createMany", + createManyAndReturn = "createManyAndReturn", + update = "update", + updateMany = "updateMany", + upsert = "upsert", + delete = "delete", + deleteMany = "deleteMany", + groupBy = "groupBy", + count = "count",// TODO: count does not actually exist, why? + aggregate = "aggregate", + findRaw = "findRaw", + aggregateRaw = "aggregateRaw" + } +} + +export declare function dmmfToRuntimeDataModel(dmmfDataModel: DMMF.Datamodel): RuntimeDataModel; + +export declare interface DriverAdapter extends Queryable { + /** + * Starts new transaction. + */ + transactionContext(): Promise>; + /** + * Optional method that returns extra connection info + */ + getConnectionInfo?(): Result_4; +} + +/** Client */ +export declare type DynamicClientExtensionArgs, ClientOptions> = { + [P in keyof C_]: unknown; +} & { + [K: symbol]: { + ctx: Optional, ITXClientDenyList> & { + $parent: Optional, ITXClientDenyList>; + }; + }; +}; + +export declare type DynamicClientExtensionThis, ClientOptions> = { + [P in keyof ExtArgs['client']]: Return; +} & { + [P in Exclude]: DynamicModelExtensionThis, ExtArgs, ClientOptions>; +} & { + [P in Exclude]: P extends keyof ClientOtherOps ? ClientOtherOps[P] : never; +} & { + [P in Exclude]: DynamicClientExtensionThisBuiltin[P]; +} & { + [K: symbol]: { + types: TypeMap['other']; + }; +}; + +export declare type DynamicClientExtensionThisBuiltin, ClientOptions> = { + $extends: ExtendsHook<'extends', TypeMapCb, ExtArgs, Call, ClientOptions>; + $transaction

[]>(arg: [...P], options?: { + isolationLevel?: TypeMap['meta']['txIsolationLevel']; + }): Promise>; + $transaction(fn: (client: Omit, ITXClientDenyList>) => Promise, options?: { + maxWait?: number; + timeout?: number; + isolationLevel?: TypeMap['meta']['txIsolationLevel']; + }): Promise; + $disconnect(): Promise; + $connect(): Promise; +}; + +/** Model */ +export declare type DynamicModelExtensionArgs, ClientOptions> = { + [K in keyof M_]: K extends '$allModels' ? { + [P in keyof M_[K]]?: unknown; + } & { + [K: symbol]: {}; + } : K extends TypeMap['meta']['modelProps'] ? { + [P in keyof M_[K]]?: unknown; + } & { + [K: symbol]: { + ctx: DynamicModelExtensionThis, ExtArgs, ClientOptions> & { + $parent: DynamicClientExtensionThis; + } & { + $name: ModelKey; + } & { + /** + * @deprecated Use `$name` instead. + */ + name: ModelKey; + }; + }; + } : never; +}; + +export declare type DynamicModelExtensionFluentApi = { + [K in keyof TypeMap['model'][M]['payload']['objects']]: (args?: Exact>) => PrismaPromise, [K]> | Null> & DynamicModelExtensionFluentApi, ClientOptions>; +}; + +export declare type DynamicModelExtensionFnResult = P extends FluentOperation ? DynamicModelExtensionFluentApi & PrismaPromise | Null> : PrismaPromise>; + +export declare type DynamicModelExtensionFnResultBase = GetResult; + +export declare type DynamicModelExtensionFnResultNull

= P extends 'findUnique' | 'findFirst' ? null : never; + +export declare type DynamicModelExtensionOperationFn = {} extends TypeMap['model'][M]['operations'][P]['args'] ? (args?: Exact) => DynamicModelExtensionFnResult, ClientOptions> : (args: Exact) => DynamicModelExtensionFnResult, ClientOptions>; + +export declare type DynamicModelExtensionThis, ClientOptions> = { + [P in keyof ExtArgs['model'][Uncapitalize]]: Return][P]>; +} & { + [P in Exclude]>]: DynamicModelExtensionOperationFn; +} & { + [P in Exclude<'fields', keyof ExtArgs['model'][Uncapitalize]>]: TypeMap['model'][M]['fields']; +} & { + [K: symbol]: { + types: TypeMap['model'][M]; + }; +}; + +/** Query */ +export declare type DynamicQueryExtensionArgs = { + [K in keyof Q_]: K extends '$allOperations' ? (args: { + model?: string; + operation: string; + args: any; + query: (args: any) => PrismaPromise; + }) => Promise : K extends '$allModels' ? { + [P in keyof Q_[K] | keyof TypeMap['model'][keyof TypeMap['model']]['operations'] | '$allOperations']?: P extends '$allOperations' ? DynamicQueryExtensionCb : P extends keyof TypeMap['model'][keyof TypeMap['model']]['operations'] ? DynamicQueryExtensionCb : never; + } : K extends TypeMap['meta']['modelProps'] ? { + [P in keyof Q_[K] | keyof TypeMap['model'][ModelKey]['operations'] | '$allOperations']?: P extends '$allOperations' ? DynamicQueryExtensionCb, keyof TypeMap['model'][ModelKey]['operations']> : P extends keyof TypeMap['model'][ModelKey]['operations'] ? DynamicQueryExtensionCb, P> : never; + } : K extends keyof TypeMap['other']['operations'] ? DynamicQueryExtensionCb<[TypeMap], 0, 'other', K> : never; +}; + +export declare type DynamicQueryExtensionCb = >(args: A) => Promise; + +export declare type DynamicQueryExtensionCbArgs = (_1 extends unknown ? _2 extends unknown ? { + args: DynamicQueryExtensionCbArgsArgs; + model: _0 extends 0 ? undefined : _1; + operation: _2; + query: >(args: A) => PrismaPromise; +} : never : never) & { + query: (args: DynamicQueryExtensionCbArgsArgs) => PrismaPromise; +}; + +export declare type DynamicQueryExtensionCbArgsArgs = _2 extends '$queryRaw' | '$executeRaw' ? Sql : TypeMap[_0][_1]['operations'][_2]['args']; + +/** Result */ +export declare type DynamicResultExtensionArgs = { + [K in keyof R_]: { + [P in keyof R_[K]]?: { + needs?: DynamicResultExtensionNeeds, R_[K][P]>; + compute(data: DynamicResultExtensionData, R_[K][P]>): any; + }; + }; +}; + +export declare type DynamicResultExtensionData = GetFindResult; + +export declare type DynamicResultExtensionNeeds = { + [K in keyof S]: K extends keyof TypeMap['model'][M]['payload']['scalars'] ? S[K] : never; +} & { + [N in keyof TypeMap['model'][M]['payload']['scalars']]?: boolean; +}; + +/** + * Placeholder value for "no text". + */ +export declare const empty: Sql; + +export declare type EmptyToUnknown = T; + +declare interface Engine { + /** The name of the engine. This is meant to be consumed externally */ + readonly name: string; + onBeforeExit(callback: () => Promise): void; + start(): Promise; + stop(): Promise; + version(forceRun?: boolean): Promise | string; + request(query: JsonQuery, options: RequestOptions): Promise>; + requestBatch(queries: JsonQuery[], options: RequestBatchOptions): Promise[]>; + transaction(action: 'start', headers: Transaction_2.TransactionHeaders, options: Transaction_2.Options): Promise>; + transaction(action: 'commit', headers: Transaction_2.TransactionHeaders, info: Transaction_2.InteractiveTransactionInfo): Promise; + transaction(action: 'rollback', headers: Transaction_2.TransactionHeaders, info: Transaction_2.InteractiveTransactionInfo): Promise; + metrics(options: MetricsOptionsJson): Promise; + metrics(options: MetricsOptionsPrometheus): Promise; + applyPendingMigrations(): Promise; +} + +declare interface EngineConfig { + cwd: string; + dirname: string; + datamodelPath: string; + enableDebugLogs?: boolean; + allowTriggerPanic?: boolean; + prismaPath?: string; + generator?: GeneratorConfig; + overrideDatasources: Datasources; + showColors?: boolean; + logQueries?: boolean; + logLevel?: 'info' | 'warn'; + env: Record; + flags?: string[]; + clientVersion: string; + engineVersion: string; + previewFeatures?: string[]; + engineEndpoint?: string; + activeProvider?: string; + logEmitter: LogEmitter; + transactionOptions: Transaction_2.Options; + /** + * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-planetscale`. + * If set, this is only used in the library engine, and all queries would be performed through it, + * rather than Prisma's Rust drivers. + * @remarks only used by LibraryEngine.ts + */ + adapter?: ErrorCapturingDriverAdapter; + /** + * The contents of the schema encoded into a string + * @remarks only used by DataProxyEngine.ts + */ + inlineSchema: string; + /** + * The contents of the datasource url saved in a string + * @remarks only used by DataProxyEngine.ts + */ + inlineDatasources: GetPrismaClientConfig['inlineDatasources']; + /** + * The string hash that was produced for a given schema + * @remarks only used by DataProxyEngine.ts + */ + inlineSchemaHash: string; + /** + * The helper for interaction with OTEL tracing + * @remarks enabling is determined by the client and @prisma/instrumentation package + */ + tracingHelper: TracingHelper; + /** + * Information about whether we have not found a schema.prisma file in the + * default location, and that we fell back to finding the schema.prisma file + * in the current working directory. This usually means it has been bundled. + */ + isBundled?: boolean; + /** + * Web Assembly module loading configuration + */ + engineWasm?: WasmLoadingConfig; + /** + * Allows Accelerate to use runtime utilities from the client. These are + * necessary for the AccelerateEngine to function correctly. + */ + accelerateUtils?: { + resolveDatasourceUrl: typeof resolveDatasourceUrl; + getBatchRequestPayload: typeof getBatchRequestPayload; + prismaGraphQLToJSError: typeof prismaGraphQLToJSError; + PrismaClientUnknownRequestError: typeof PrismaClientUnknownRequestError; + PrismaClientInitializationError: typeof PrismaClientInitializationError; + PrismaClientKnownRequestError: typeof PrismaClientKnownRequestError; + debug: (...args: any[]) => void; + engineVersion: string; + clientVersion: string; + }; +} + +declare type EngineEvent = E extends QueryEventType ? QueryEvent : LogEvent; + +declare type EngineEventType = QueryEventType | LogEventType; + +declare type EngineProtocol = 'graphql' | 'json'; + +declare type EngineSpan = { + id: EngineSpanId; + parentId: string | null; + name: string; + startTime: HrTime; + endTime: HrTime; + kind: EngineSpanKind; + attributes?: Record; + links?: EngineSpanId[]; +}; + +declare type EngineSpanId = string; + +declare type EngineSpanKind = 'client' | 'internal'; + +declare type EnvPaths = { + rootEnvPath: string | null; + schemaEnvPath: string | undefined; +}; + +declare interface EnvValue { + fromEnvVar: null | string; + value: null | string; +} + +export declare type Equals = (() => T extends A ? 1 : 2) extends (() => T extends B ? 1 : 2) ? 1 : 0; + +declare type Error_2 = { + kind: 'GenericJs'; + id: number; +} | { + kind: 'UnsupportedNativeDataType'; + type: string; +} | { + kind: 'Postgres'; + code: string; + severity: string; + message: string; + detail: string | undefined; + column: string | undefined; + hint: string | undefined; +} | { + kind: 'Mysql'; + code: number; + message: string; + state: string; +} | { + kind: 'Sqlite'; + /** + * Sqlite extended error code: https://www.sqlite.org/rescode.html + */ + extendedCode: number; + message: string; +}; + +declare interface ErrorCapturingDriverAdapter extends DriverAdapter { + readonly errorRegistry: ErrorRegistry; +} + +declare type ErrorFormat = 'pretty' | 'colorless' | 'minimal'; + +declare type ErrorRecord = { + error: unknown; +}; + +declare interface ErrorRegistry { + consumeError(id: number): ErrorRecord | undefined; +} + +declare interface ErrorWithBatchIndex { + batchRequestIdx?: number; +} + +declare type EventCallback = [E] extends ['beforeExit'] ? () => Promise : [E] extends [LogLevel] ? (event: EngineEvent) => void : never; + +export declare type Exact = (A extends unknown ? (W extends A ? { + [K in keyof A]: Exact; +} : W) : never) | (A extends Narrowable ? A : never); + +/** + * Defines Exception. + * + * string or an object with one of (message or name or code) and optional stack + */ +declare type Exception = ExceptionWithCode | ExceptionWithMessage | ExceptionWithName | string; + +declare interface ExceptionWithCode { + code: string | number; + name?: string; + message?: string; + stack?: string; +} + +declare interface ExceptionWithMessage { + code?: string | number; + message: string; + name?: string; + stack?: string; +} + +declare interface ExceptionWithName { + code?: string | number; + message?: string; + name: string; + stack?: string; +} + +declare type ExtendedEventType = LogLevel | 'beforeExit'; + +declare type ExtendedSpanOptions = SpanOptions & { + /** The name of the span */ + name: string; + internal?: boolean; + middleware?: boolean; + /** Whether it propagates context (?=true) */ + active?: boolean; + /** The context to append the span to */ + context?: Context; +}; + +/** $extends, defineExtension */ +export declare interface ExtendsHook, TypeMap extends TypeMapDef = Call, ClientOptions = {}> { + extArgs: ExtArgs; + , MergedArgs extends InternalArgs = MergeExtArgs>(extension: ((client: DynamicClientExtensionThis) => { + $extends: { + extArgs: Args; + }; + }) | { + name?: string; + query?: DynamicQueryExtensionArgs; + result?: DynamicResultExtensionArgs & R; + model?: DynamicModelExtensionArgs & M; + client?: DynamicClientExtensionArgs & C; + }): { + extends: DynamicClientExtensionThis, TypeMapCb, MergedArgs, ClientOptions>; + define: (client: any) => { + $extends: { + extArgs: Args; + }; + }; + }[Variant]; +} + +export declare type ExtensionArgs = Optional; + +declare namespace Extensions { + export { + defineExtension, + getExtensionContext + } +} +export { Extensions } + +declare namespace Extensions_2 { + export { + InternalArgs, + DefaultArgs, + GetPayloadResultExtensionKeys, + GetPayloadResultExtensionObject, + GetPayloadResult, + GetSelect, + GetOmit, + DynamicQueryExtensionArgs, + DynamicQueryExtensionCb, + DynamicQueryExtensionCbArgs, + DynamicQueryExtensionCbArgsArgs, + DynamicResultExtensionArgs, + DynamicResultExtensionNeeds, + DynamicResultExtensionData, + DynamicModelExtensionArgs, + DynamicModelExtensionThis, + DynamicModelExtensionOperationFn, + DynamicModelExtensionFnResult, + DynamicModelExtensionFnResultBase, + DynamicModelExtensionFluentApi, + DynamicModelExtensionFnResultNull, + DynamicClientExtensionArgs, + DynamicClientExtensionThis, + ClientBuiltInProp, + DynamicClientExtensionThisBuiltin, + ExtendsHook, + MergeExtArgs, + AllModelsToStringIndex, + TypeMapDef, + DevTypeMapDef, + DevTypeMapFnDef, + ClientOptionDef, + ClientOtherOps, + TypeMapCbDef, + ModelKey, + RequiredExtensionArgs as UserArgs + } +} + +export declare type ExtractGlobalOmit = Options extends { + omit: { + [K in ModelName]: infer GlobalOmit; + }; +} ? GlobalOmit : {}; + +/** + * A reference to a specific field of a specific model + */ +export declare interface FieldRef { + readonly modelName: Model; + readonly name: string; + readonly typeName: FieldType; + readonly isList: boolean; +} + +export declare type FluentOperation = 'findUnique' | 'findUniqueOrThrow' | 'findFirst' | 'findFirstOrThrow' | 'create' | 'update' | 'upsert' | 'delete'; + +export declare interface Fn { + params: Params; + returns: Returns; +} + +declare interface GeneratorConfig { + name: string; + output: EnvValue | null; + isCustomOutput?: boolean; + provider: EnvValue; + config: { + /** `output` is a reserved name and will only be available directly at `generator.output` */ + output?: never; + /** `provider` is a reserved name and will only be available directly at `generator.provider` */ + provider?: never; + /** `binaryTargets` is a reserved name and will only be available directly at `generator.binaryTargets` */ + binaryTargets?: never; + /** `previewFeatures` is a reserved name and will only be available directly at `generator.previewFeatures` */ + previewFeatures?: never; + } & { + [key: string]: string | string[] | undefined; + }; + binaryTargets: BinaryTargetsEnvValue[]; + previewFeatures: string[]; + envPaths?: EnvPaths; + sourceFilePath: string; +} + +export declare type GetAggregateResult

= { + [K in keyof A as K extends Aggregate ? K : never]: K extends '_count' ? A[K] extends true ? number : Count : { + [J in keyof A[K] & string]: P['scalars'][J] | null; + }; +}; + +declare function getBatchRequestPayload(batch: JsonQuery[], transaction?: TransactionOptions_2): QueryEngineBatchRequest; + +export declare type GetBatchResult = { + count: number; +}; + +export declare type GetCountResult = A extends { + select: infer S; +} ? (S extends true ? number : Count) : number; + +declare function getExtensionContext(that: T): Context_2; + +export declare type GetFindResult

= Equals extends 1 ? DefaultSelection : A extends { + select: infer S extends object; +} & Record | { + include: infer I extends object; +} & Record ? { + [K in keyof S | keyof I as (S & I)[K] extends false | undefined | Skip | null ? never : K]: (S & I)[K] extends object ? P extends SelectablePayloadFields ? O extends OperationPayload ? GetFindResult[] : never : P extends SelectablePayloadFields ? O extends OperationPayload ? GetFindResult | SelectField & null : never : K extends '_count' ? Count> : never : P extends SelectablePayloadFields ? O extends OperationPayload ? DefaultSelection[] : never : P extends SelectablePayloadFields ? O extends OperationPayload ? DefaultSelection | SelectField & null : never : P extends { + scalars: { + [k in K]: infer O; + }; + } ? O : K extends '_count' ? Count : never; +} & (A extends { + include: any; +} & Record ? DefaultSelection : unknown) : DefaultSelection; + +export declare type GetGroupByResult

= A extends { + by: string[]; +} ? Array & { + [K in A['by'][number]]: P['scalars'][K]; +}> : A extends { + by: string; +} ? Array & { + [K in A['by']]: P['scalars'][K]; +}> : {}[]; + +export declare type GetOmit = { + [K in (string extends keyof R ? never : keyof R) | BaseKeys]?: boolean | ExtraType; +}; + +export declare type GetPayloadResult, R extends InternalArgs['result'][string]> = Omit> & GetPayloadResultExtensionObject; + +export declare type GetPayloadResultExtensionKeys = KR; + +export declare type GetPayloadResultExtensionObject = { + [K in GetPayloadResultExtensionKeys]: R[K] extends () => { + compute: (...args: any) => infer C; + } ? C : never; +}; + +export declare function getPrismaClient(config: GetPrismaClientConfig): { + new (optionsArg?: PrismaClientOptions): { + _originalClient: any; + _runtimeDataModel: RuntimeDataModel; + _requestHandler: RequestHandler; + _connectionPromise?: Promise | undefined; + _disconnectionPromise?: Promise | undefined; + _engineConfig: EngineConfig; + _accelerateEngineConfig: AccelerateEngineConfig; + _clientVersion: string; + _errorFormat: ErrorFormat; + _tracingHelper: TracingHelper; + _metrics: MetricsClient; + _middlewares: MiddlewareHandler; + _previewFeatures: string[]; + _activeProvider: string; + _globalOmit?: GlobalOmitOptions | undefined; + _extensions: MergedExtensionsList; + _engine: Engine; + /** + * A fully constructed/applied Client that references the parent + * PrismaClient. This is used for Client extensions only. + */ + _appliedParent: any; + _createPrismaPromise: PrismaPromiseFactory; + /** + * Hook a middleware into the client + * @param middleware to hook + */ + $use(middleware: QueryMiddleware): void; + $on(eventType: E, callback: EventCallback): void; + $connect(): Promise; + /** + * Disconnect from the database + */ + $disconnect(): Promise; + /** + * Executes a raw query and always returns a number + */ + $executeRawInternal(transaction: PrismaPromiseTransaction | undefined, clientMethod: string, args: RawQueryArgs, middlewareArgsMapper?: MiddlewareArgsMapper): Promise; + /** + * Executes a raw query provided through a safe tag function + * @see https://github.com/prisma/prisma/issues/7142 + * + * @param query + * @param values + * @returns + */ + $executeRaw(query: TemplateStringsArray | Sql, ...values: any[]): PrismaPromise_2; + /** + * Unsafe counterpart of `$executeRaw` that is susceptible to SQL injections + * @see https://github.com/prisma/prisma/issues/7142 + * + * @param query + * @param values + * @returns + */ + $executeRawUnsafe(query: string, ...values: RawValue[]): PrismaPromise_2; + /** + * Executes a raw command only for MongoDB + * + * @param command + * @returns + */ + $runCommandRaw(command: Record): PrismaPromise_2; + /** + * Executes a raw query and returns selected data + */ + $queryRawInternal(transaction: PrismaPromiseTransaction | undefined, clientMethod: string, args: RawQueryArgs, middlewareArgsMapper?: MiddlewareArgsMapper): Promise; + /** + * Executes a raw query provided through a safe tag function + * @see https://github.com/prisma/prisma/issues/7142 + * + * @param query + * @param values + * @returns + */ + $queryRaw(query: TemplateStringsArray | Sql, ...values: any[]): PrismaPromise_2; + /** + * Counterpart to $queryRaw, that returns strongly typed results + * @param typedSql + */ + $queryRawTyped(typedSql: UnknownTypedSql): PrismaPromise_2; + /** + * Unsafe counterpart of `$queryRaw` that is susceptible to SQL injections + * @see https://github.com/prisma/prisma/issues/7142 + * + * @param query + * @param values + * @returns + */ + $queryRawUnsafe(query: string, ...values: RawValue[]): PrismaPromise_2; + /** + * Execute a batch of requests in a transaction + * @param requests + * @param options + */ + _transactionWithArray({ promises, options, }: { + promises: Array>; + options?: BatchTransactionOptions; + }): Promise; + /** + * Perform a long-running transaction + * @param callback + * @param options + * @returns + */ + _transactionWithCallback({ callback, options, }: { + callback: (client: Client) => Promise; + options?: Options; + }): Promise; + _createItxClient(transaction: PrismaPromiseInteractiveTransaction): Client; + /** + * Execute queries within a transaction + * @param input a callback or a query list + * @param options to set timeouts (callback) + * @returns + */ + $transaction(input: any, options?: any): Promise; + /** + * Runs the middlewares over params before executing a request + * @param internalParams + * @returns + */ + _request(internalParams: InternalRequestParams): Promise; + _executeRequest({ args, clientMethod, dataPath, callsite, action, model, argsMapper, transaction, unpacker, otelParentCtx, customDataProxyFetch, }: InternalRequestParams): Promise; + readonly $metrics: MetricsClient; + /** + * Shortcut for checking a preview flag + * @param feature preview flag + * @returns + */ + _hasPreviewFlag(feature: string): boolean; + $applyPendingMigrations(): Promise; + $extends: typeof $extends; + readonly [Symbol.toStringTag]: string; + }; +}; + +/** + * Config that is stored into the generated client. When the generated client is + * loaded, this same config is passed to {@link getPrismaClient} which creates a + * closure with that config around a non-instantiated [[PrismaClient]]. + */ +declare type GetPrismaClientConfig = { + runtimeDataModel: RuntimeDataModel; + generator?: GeneratorConfig; + relativeEnvPaths: { + rootEnvPath?: string | null; + schemaEnvPath?: string | null; + }; + relativePath: string; + dirname: string; + filename?: string; + clientVersion: string; + engineVersion: string; + datasourceNames: string[]; + activeProvider: ActiveConnectorType; + /** + * The contents of the schema encoded into a string + * @remarks only used for the purpose of data proxy + */ + inlineSchema: string; + /** + * A special env object just for the data proxy edge runtime. + * Allows bundlers to inject their own env variables (Vercel). + * Allows platforms to declare global variables as env (Workers). + * @remarks only used for the purpose of data proxy + */ + injectableEdgeEnv?: () => LoadedEnv; + /** + * The contents of the datasource url saved in a string. + * This can either be an env var name or connection string. + * It is needed by the client to connect to the Data Proxy. + * @remarks only used for the purpose of data proxy + */ + inlineDatasources: { + [name in string]: { + url: EnvValue; + }; + }; + /** + * The string hash that was produced for a given schema + * @remarks only used for the purpose of data proxy + */ + inlineSchemaHash: string; + /** + * A marker to indicate that the client was not generated via `prisma + * generate` but was generated via `generate --postinstall` script instead. + * @remarks used to error for Vercel/Netlify for schema caching issues + */ + postinstall?: boolean; + /** + * Information about the CI where the Prisma Client has been generated. The + * name of the CI environment is stored at generation time because CI + * information is not always available at runtime. Moreover, the edge client + * has no notion of environment variables, so this works around that. + * @remarks used to error for Vercel/Netlify for schema caching issues + */ + ciName?: string; + /** + * Information about whether we have not found a schema.prisma file in the + * default location, and that we fell back to finding the schema.prisma file + * in the current working directory. This usually means it has been bundled. + */ + isBundled?: boolean; + /** + * A boolean that is `false` when the client was generated with --no-engine. At + * runtime, this means the client will be bound to be using the Data Proxy. + */ + copyEngine?: boolean; + /** + * Optional wasm loading configuration + */ + engineWasm?: WasmLoadingConfig; +}; + +export declare type GetResult = { + findUnique: GetFindResult | null; + findUniqueOrThrow: GetFindResult; + findFirst: GetFindResult | null; + findFirstOrThrow: GetFindResult; + findMany: GetFindResult[]; + create: GetFindResult; + createMany: GetBatchResult; + createManyAndReturn: GetFindResult[]; + update: GetFindResult; + updateMany: GetBatchResult; + upsert: GetFindResult; + delete: GetFindResult; + deleteMany: GetBatchResult; + aggregate: GetAggregateResult; + count: GetCountResult; + groupBy: GetGroupByResult; + $queryRaw: unknown; + $queryRawTyped: unknown; + $executeRaw: number; + $queryRawUnsafe: unknown; + $executeRawUnsafe: number; + $runCommandRaw: JsonObject; + findRaw: JsonObject; + aggregateRaw: JsonObject; +}[OperationName]; + +export declare function getRuntime(): GetRuntimeOutput; + +declare type GetRuntimeOutput = { + id: Runtime; + prettyName: string; + isEdge: boolean; +}; + +export declare type GetSelect, R extends InternalArgs['result'][string], KR extends keyof R = string extends keyof R ? never : keyof R> = { + [K in KR | keyof Base]?: K extends KR ? boolean : Base[K]; +}; + +declare type GlobalOmitOptions = { + [modelName: string]: { + [fieldName: string]: boolean; + }; +}; + +declare type HandleErrorParams = { + args: JsArgs; + error: any; + clientMethod: string; + callsite?: CallSite; + transaction?: PrismaPromiseTransaction; + modelName?: string; + globalOmit?: GlobalOmitOptions; +}; + +declare type HrTime = [number, number]; + +/** + * Defines High-Resolution Time. + * + * The first number, HrTime[0], is UNIX Epoch time in seconds since 00:00:00 UTC on 1 January 1970. + * The second number, HrTime[1], represents the partial second elapsed since Unix Epoch time represented by first number in nanoseconds. + * For example, 2021-01-01T12:30:10.150Z in UNIX Epoch time in milliseconds is represented as 1609504210150. + * The first number is calculated by converting and truncating the Epoch time in milliseconds to seconds: + * HrTime[0] = Math.trunc(1609504210150 / 1000) = 1609504210. + * The second number is calculated by converting the digits after the decimal point of the subtraction, (1609504210150 / 1000) - HrTime[0], to nanoseconds: + * HrTime[1] = Number((1609504210.150 - HrTime[0]).toFixed(9)) * 1e9 = 150000000. + * This is represented in HrTime format as [1609504210, 150000000]. + */ +declare type HrTime_2 = [number, number]; + +/** + * Matches a JSON array. + * Unlike \`JsonArray\`, readonly arrays are assignable to this type. + */ +export declare interface InputJsonArray extends ReadonlyArray { +} + +/** + * Matches a JSON object. + * Unlike \`JsonObject\`, this type allows undefined and read-only properties. + */ +export declare type InputJsonObject = { + readonly [Key in string]?: InputJsonValue | null; +}; + +/** + * Matches any valid value that can be used as an input for operations like + * create and update as the value of a JSON field. Unlike \`JsonValue\`, this + * type allows read-only arrays and read-only object properties and disallows + * \`null\` at the top level. + * + * \`null\` cannot be used as the value of a JSON field because its meaning + * would be ambiguous. Use \`Prisma.JsonNull\` to store the JSON null value or + * \`Prisma.DbNull\` to clear the JSON value and set the field to the database + * NULL value instead. + * + * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-by-null-values + */ +export declare type InputJsonValue = string | number | boolean | InputJsonObject | InputJsonArray | { + toJSON(): unknown; +}; + +declare type InteractiveTransactionInfo = { + /** + * Transaction ID returned by the query engine. + */ + id: string; + /** + * Arbitrary payload the meaning of which depends on the `Engine` implementation. + * For example, `DataProxyEngine` needs to associate different API endpoints with transactions. + * In `LibraryEngine` and `BinaryEngine` it is currently not used. + */ + payload: Payload; +}; + +declare type InteractiveTransactionOptions = Transaction_2.InteractiveTransactionInfo; + +export declare type InternalArgs = { + result: { + [K in keyof R]: { + [P in keyof R[K]]: () => R[K][P]; + }; + }; + model: { + [K in keyof M]: { + [P in keyof M[K]]: () => M[K][P]; + }; + }; + query: { + [K in keyof Q]: { + [P in keyof Q[K]]: () => Q[K][P]; + }; + }; + client: { + [K in keyof C]: () => C[K]; + }; +}; + +declare type InternalRequestParams = { + /** + * The original client method being called. + * Even though the rootField / operation can be changed, + * this method stays as it is, as it's what the user's + * code looks like + */ + clientMethod: string; + /** + * Name of js model that triggered the request. Might be used + * for warnings or error messages + */ + jsModelName?: string; + callsite?: CallSite; + transaction?: PrismaPromiseTransaction; + unpacker?: Unpacker; + otelParentCtx?: Context; + /** Used to "desugar" a user input into an "expanded" one */ + argsMapper?: (args?: UserArgs_2) => UserArgs_2; + /** Used to convert args for middleware and back */ + middlewareArgsMapper?: MiddlewareArgsMapper; + /** Used for Accelerate client extension via Data Proxy */ + customDataProxyFetch?: CustomDataProxyFetch; +} & Omit; + +declare enum IsolationLevel { + ReadUncommitted = "ReadUncommitted", + ReadCommitted = "ReadCommitted", + RepeatableRead = "RepeatableRead", + Snapshot = "Snapshot", + Serializable = "Serializable" +} + +declare function isSkip(value: unknown): value is Skip; + +export declare function isTypedSql(value: unknown): value is UnknownTypedSql; + +export declare type ITXClientDenyList = (typeof denylist)[number]; + +export declare const itxClientDenyList: readonly (string | symbol)[]; + +declare interface Job { + resolve: (data: any) => void; + reject: (data: any) => void; + request: any; +} + +/** + * Create a SQL query for a list of values. + */ +export declare function join(values: readonly RawValue[], separator?: string, prefix?: string, suffix?: string): Sql; + +export declare type JsArgs = { + select?: Selection_2; + include?: Selection_2; + omit?: Omission; + [argName: string]: JsInputValue; +}; + +export declare type JsInputValue = null | undefined | string | number | boolean | bigint | Uint8Array | Date | DecimalJsLike | ObjectEnumValue | RawParameters | JsonConvertible | FieldRef | JsInputValue[] | Skip | { + [key: string]: JsInputValue; +}; + +declare type JsonArgumentValue = number | string | boolean | null | RawTaggedValue | JsonArgumentValue[] | { + [key: string]: JsonArgumentValue; +}; + +/** + * From https://github.com/sindresorhus/type-fest/ + * Matches a JSON array. + */ +export declare interface JsonArray extends Array { +} + +export declare type JsonBatchQuery = { + batch: JsonQuery[]; + transaction?: { + isolationLevel?: Transaction_2.IsolationLevel; + }; +}; + +export declare interface JsonConvertible { + toJSON(): unknown; +} + +declare type JsonFieldSelection = { + arguments?: Record | RawTaggedValue; + selection: JsonSelectionSet; +}; + +declare class JsonNull extends NullTypesEnumValue { +} + +/** + * From https://github.com/sindresorhus/type-fest/ + * Matches a JSON object. + * This type can be useful to enforce some input to be JSON-compatible or as a super-type to be extended from. + */ +export declare type JsonObject = { + [Key in string]?: JsonValue; +}; + +export declare type JsonQuery = { + modelName?: string; + action: JsonQueryAction; + query: JsonFieldSelection; +}; + +declare type JsonQueryAction = 'findUnique' | 'findUniqueOrThrow' | 'findFirst' | 'findFirstOrThrow' | 'findMany' | 'createOne' | 'createMany' | 'createManyAndReturn' | 'updateOne' | 'updateMany' | 'deleteOne' | 'deleteMany' | 'upsertOne' | 'aggregate' | 'groupBy' | 'executeRaw' | 'queryRaw' | 'runCommandRaw' | 'findRaw' | 'aggregateRaw'; + +declare type JsonSelectionSet = { + $scalars?: boolean; + $composites?: boolean; +} & { + [fieldName: string]: boolean | JsonFieldSelection; +}; + +/** + * From https://github.com/sindresorhus/type-fest/ + * Matches any valid JSON value. + */ +export declare type JsonValue = string | number | boolean | JsonObject | JsonArray | null; + +export declare type JsOutputValue = null | string | number | boolean | bigint | Uint8Array | Date | Decimal | JsOutputValue[] | { + [key: string]: JsOutputValue; +}; + +export declare type JsPromise = Promise & {}; + +declare type KnownErrorParams = { + code: string; + clientVersion: string; + meta?: Record; + batchRequestIdx?: number; +}; + +/** + * A pointer from the current {@link Span} to another span in the same trace or + * in a different trace. + * Few examples of Link usage. + * 1. Batch Processing: A batch of elements may contain elements associated + * with one or more traces/spans. Since there can only be one parent + * SpanContext, Link is used to keep reference to SpanContext of all + * elements in the batch. + * 2. Public Endpoint: A SpanContext in incoming client request on a public + * endpoint is untrusted from service provider perspective. In such case it + * is advisable to start a new trace with appropriate sampling decision. + * However, it is desirable to associate incoming SpanContext to new trace + * initiated on service provider side so two traces (from Client and from + * Service Provider) can be correlated. + */ +declare interface Link { + /** The {@link SpanContext} of a linked span. */ + context: SpanContext; + /** A set of {@link SpanAttributes} on the link. */ + attributes?: SpanAttributes; + /** Count of attributes of the link that were dropped due to collection limits */ + droppedAttributesCount?: number; +} + +declare type LoadedEnv = { + message?: string; + parsed: { + [x: string]: string; + }; +} | undefined; + +declare type LocationInFile = { + fileName: string; + lineNumber: number | null; + columnNumber: number | null; +}; + +declare type LogDefinition = { + level: LogLevel; + emit: 'stdout' | 'event'; +}; + +/** + * Typings for the events we emit. + * + * @remarks + * If this is updated, our edge runtime shim needs to be updated as well. + */ +declare type LogEmitter = { + on(event: E, listener: (event: EngineEvent) => void): LogEmitter; + emit(event: QueryEventType, payload: QueryEvent): boolean; + emit(event: LogEventType, payload: LogEvent): boolean; +}; + +declare type LogEvent = { + timestamp: Date; + message: string; + target: string; +}; + +declare type LogEventType = 'info' | 'warn' | 'error'; + +declare type LogLevel = 'info' | 'query' | 'warn' | 'error'; + +/** + * Generates more strict variant of an enum which, unlike regular enum, + * throws on non-existing property access. This can be useful in following situations: + * - we have an API, that accepts both `undefined` and `SomeEnumType` as an input + * - enum values are generated dynamically from DMMF. + * + * In that case, if using normal enums and no compile-time typechecking, using non-existing property + * will result in `undefined` value being used, which will be accepted. Using strict enum + * in this case will help to have a runtime exception, telling you that you are probably doing something wrong. + * + * Note: if you need to check for existence of a value in the enum you can still use either + * `in` operator or `hasOwnProperty` function. + * + * @param definition + * @returns + */ +export declare function makeStrictEnum>(definition: T): T; + +export declare function makeTypedQueryFactory(sql: string): (...values: any[]) => TypedSql; + +/** + * Class that holds the list of all extensions, applied to particular instance, + * as well as resolved versions of the components that need to apply on + * different levels. Main idea of this class: avoid re-resolving as much of the + * stuff as possible when new extensions are added while also delaying the + * resolve until the point it is actually needed. For example, computed fields + * of the model won't be resolved unless the model is actually queried. Neither + * adding extensions with `client` component only cause other components to + * recompute. + */ +declare class MergedExtensionsList { + private head?; + private constructor(); + static empty(): MergedExtensionsList; + static single(extension: ExtensionArgs): MergedExtensionsList; + isEmpty(): boolean; + append(extension: ExtensionArgs): MergedExtensionsList; + getAllComputedFields(dmmfModelName: string): ComputedFieldsMap | undefined; + getAllClientExtensions(): ClientArg | undefined; + getAllModelExtensions(dmmfModelName: string): ModelArg | undefined; + getAllQueryCallbacks(jsModelName: string, operation: string): any; + getAllBatchQueryCallbacks(): BatchQueryOptionsCb[]; +} + +export declare type MergeExtArgs, Args extends Record> = ComputeDeep & AllModelsToStringIndex>; + +export declare type Metric = { + key: string; + value: T; + labels: Record; + description: string; +}; + +export declare type MetricHistogram = { + buckets: MetricHistogramBucket[]; + sum: number; + count: number; +}; + +export declare type MetricHistogramBucket = [maxValue: number, count: number]; + +export declare type Metrics = { + counters: Metric[]; + gauges: Metric[]; + histograms: Metric[]; +}; + +export declare class MetricsClient { + private _engine; + constructor(engine: Engine); + /** + * Returns all metrics gathered up to this point in prometheus format. + * Result of this call can be exposed directly to prometheus scraping endpoint + * + * @param options + * @returns + */ + prometheus(options?: MetricsOptions): Promise; + /** + * Returns all metrics gathered up to this point in prometheus format. + * + * @param options + * @returns + */ + json(options?: MetricsOptions): Promise; +} + +declare type MetricsOptions = { + /** + * Labels to add to every metrics in key-value format + */ + globalLabels?: Record; +}; + +declare type MetricsOptionsCommon = { + globalLabels?: Record; +}; + +declare type MetricsOptionsJson = { + format: 'json'; +} & MetricsOptionsCommon; + +declare type MetricsOptionsPrometheus = { + format: 'prometheus'; +} & MetricsOptionsCommon; + +declare type MiddlewareArgsMapper = { + requestArgsToMiddlewareArgs(requestArgs: RequestArgs): MiddlewareArgs; + middlewareArgsToRequestArgs(middlewareArgs: MiddlewareArgs): RequestArgs; +}; + +declare class MiddlewareHandler { + private _middlewares; + use(middleware: M): void; + get(id: number): M | undefined; + has(id: number): boolean; + length(): number; +} + +export declare type ModelArg = { + [MethodName in string]: unknown; +}; + +export declare type ModelArgs = { + model: { + [ModelName in string]: ModelArg; + }; +}; + +export declare type ModelKey = M extends keyof TypeMap['model'] ? M : Capitalize; + +export declare type ModelQueryOptionsCb = (args: ModelQueryOptionsCbArgs) => Promise; + +export declare type ModelQueryOptionsCbArgs = { + model: string; + operation: string; + args: JsArgs; + query: (args: JsArgs) => Promise; +}; + +export declare type NameArgs = { + name?: string; +}; + +export declare type Narrow = { + [K in keyof A]: A[K] extends Function ? A[K] : Narrow; +} | (A extends Narrowable ? A : never); + +export declare type Narrowable = string | number | bigint | boolean | []; + +export declare type NeverToUnknown = [T] extends [never] ? unknown : T; + +declare class NullTypesEnumValue extends ObjectEnumValue { + _getNamespace(): string; +} + +/** + * List of Prisma enums that must use unique objects instead of strings as their values. + */ +export declare const objectEnumNames: string[]; + +/** + * Base class for unique values of object-valued enums. + */ +export declare abstract class ObjectEnumValue { + constructor(arg?: symbol); + abstract _getNamespace(): string; + _getName(): string; + toString(): string; +} + +export declare const objectEnumValues: { + classes: { + DbNull: typeof DbNull; + JsonNull: typeof JsonNull; + AnyNull: typeof AnyNull; + }; + instances: { + DbNull: DbNull; + JsonNull: JsonNull; + AnyNull: AnyNull; + }; +}; + +declare const officialPrismaAdapters: readonly ["@prisma/adapter-planetscale", "@prisma/adapter-neon", "@prisma/adapter-libsql", "@prisma/adapter-d1", "@prisma/adapter-pg", "@prisma/adapter-pg-worker"]; + +export declare type Omission = Record; + +declare type Omit_2 = { + [P in keyof T as P extends K ? never : P]: T[P]; +}; +export { Omit_2 as Omit } + +export declare type OmitValue = Key extends keyof Omit ? Omit[Key] : false; + +export declare type Operation = 'findFirst' | 'findFirstOrThrow' | 'findUnique' | 'findUniqueOrThrow' | 'findMany' | 'create' | 'createMany' | 'createManyAndReturn' | 'update' | 'updateMany' | 'upsert' | 'delete' | 'deleteMany' | 'aggregate' | 'count' | 'groupBy' | '$queryRaw' | '$executeRaw' | '$queryRawUnsafe' | '$executeRawUnsafe' | 'findRaw' | 'aggregateRaw' | '$runCommandRaw'; + +export declare type OperationPayload = { + name: string; + scalars: { + [ScalarName in string]: unknown; + }; + objects: { + [ObjectName in string]: unknown; + }; + composites: { + [CompositeName in string]: unknown; + }; +}; + +export declare type Optional = { + [P in K & keyof O]?: O[P]; +} & { + [P in Exclude]: O[P]; +}; + +export declare type OptionalFlat = { + [K in keyof T]?: T[K]; +}; + +export declare type OptionalKeys = { + [K in keyof O]-?: {} extends Pick_2 ? K : never; +}[keyof O]; + +declare type Options = { + maxWait?: number; + timeout?: number; + isolationLevel?: IsolationLevel; +}; + +declare type Options_2 = { + clientVersion: string; +}; + +export declare type Or = { + 0: { + 0: 0; + 1: 1; + }; + 1: { + 0: 1; + 1: 1; + }; +}[A][B]; + +export declare type PatchFlat = O1 & Omit_2; + +export declare type Path = O extends unknown ? P extends [infer K, ...infer R] ? K extends keyof O ? Path : Default : O : never; + +export declare type Payload = T extends { + [K: symbol]: { + types: { + payload: any; + }; + }; +} ? T[symbol]['types']['payload'] : any; + +export declare type PayloadToResult = RenameAndNestPayloadKeys

> = { + [K in keyof O]?: O[K][K] extends any[] ? PayloadToResult[] : O[K][K] extends object ? PayloadToResult : O[K][K]; +}; + +declare type Pick_2 = { + [P in keyof T as P extends K ? P : never]: T[P]; +}; +export { Pick_2 as Pick } + +export declare class PrismaClientInitializationError extends Error { + clientVersion: string; + errorCode?: string; + retryable?: boolean; + constructor(message: string, clientVersion: string, errorCode?: string); + get [Symbol.toStringTag](): string; +} + +export declare class PrismaClientKnownRequestError extends Error implements ErrorWithBatchIndex { + code: string; + meta?: Record; + clientVersion: string; + batchRequestIdx?: number; + constructor(message: string, { code, clientVersion, meta, batchRequestIdx }: KnownErrorParams); + get [Symbol.toStringTag](): string; +} + +export declare type PrismaClientOptions = { + /** + * Overwrites the primary datasource url from your schema.prisma file + */ + datasourceUrl?: string; + /** + * Instance of a Driver Adapter, e.g., like one provided by `@prisma/adapter-planetscale. + */ + adapter?: DriverAdapter | null; + /** + * Overwrites the datasource url from your schema.prisma file + */ + datasources?: Datasources; + /** + * @default "colorless" + */ + errorFormat?: ErrorFormat; + /** + * The default values for Transaction options + * maxWait ?= 2000 + * timeout ?= 5000 + */ + transactionOptions?: Transaction_2.Options; + /** + * @example + * \`\`\` + * // Defaults to stdout + * log: ['query', 'info', 'warn'] + * + * // Emit as events + * log: [ + * { emit: 'stdout', level: 'query' }, + * { emit: 'stdout', level: 'info' }, + * { emit: 'stdout', level: 'warn' } + * ] + * \`\`\` + * Read more in our [docs](https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-client/logging#the-log-option). + */ + log?: Array; + omit?: GlobalOmitOptions; + /** + * @internal + * You probably don't want to use this. \`__internal\` is used by internal tooling. + */ + __internal?: { + debug?: boolean; + engine?: { + cwd?: string; + binaryPath?: string; + endpoint?: string; + allowTriggerPanic?: boolean; + }; + /** This can be used for testing purposes */ + configOverride?: (config: GetPrismaClientConfig) => GetPrismaClientConfig; + }; +}; + +export declare class PrismaClientRustPanicError extends Error { + clientVersion: string; + constructor(message: string, clientVersion: string); + get [Symbol.toStringTag](): string; +} + +export declare class PrismaClientUnknownRequestError extends Error implements ErrorWithBatchIndex { + clientVersion: string; + batchRequestIdx?: number; + constructor(message: string, { clientVersion, batchRequestIdx }: UnknownErrorParams); + get [Symbol.toStringTag](): string; +} + +export declare class PrismaClientValidationError extends Error { + name: string; + clientVersion: string; + constructor(message: string, { clientVersion }: Options_2); + get [Symbol.toStringTag](): string; +} + +declare function prismaGraphQLToJSError({ error, user_facing_error }: RequestError, clientVersion: string, activeProvider: string): PrismaClientKnownRequestError | PrismaClientUnknownRequestError; + +export declare interface PrismaPromise extends Promise { + [Symbol.toStringTag]: 'PrismaPromise'; +} + +/** + * Prisma's `Promise` that is backwards-compatible. All additions on top of the + * original `Promise` are optional so that it can be backwards-compatible. + * @see [[createPrismaPromise]] + */ +declare interface PrismaPromise_2 extends Promise { + /** + * Extension of the original `.then` function + * @param onfulfilled same as regular promises + * @param onrejected same as regular promises + * @param transaction transaction options + */ + then(onfulfilled?: (value: A) => R1 | PromiseLike, onrejected?: (error: unknown) => R2 | PromiseLike, transaction?: PrismaPromiseTransaction): Promise; + /** + * Extension of the original `.catch` function + * @param onrejected same as regular promises + * @param transaction transaction options + */ + catch(onrejected?: ((reason: any) => R | PromiseLike) | undefined | null, transaction?: PrismaPromiseTransaction): Promise; + /** + * Extension of the original `.finally` function + * @param onfinally same as regular promises + * @param transaction transaction options + */ + finally(onfinally?: (() => void) | undefined | null, transaction?: PrismaPromiseTransaction): Promise; + /** + * Called when executing a batch of regular tx + * @param transaction transaction options for batch tx + */ + requestTransaction?(transaction: PrismaPromiseBatchTransaction): PromiseLike; +} + +declare type PrismaPromiseBatchTransaction = { + kind: 'batch'; + id: number; + isolationLevel?: IsolationLevel; + index: number; + lock: PromiseLike; +}; + +declare type PrismaPromiseCallback = (transaction?: PrismaPromiseTransaction) => PrismaPromise_2; + +/** + * Creates a [[PrismaPromise]]. It is Prisma's implementation of `Promise` which + * is essentially a proxy for `Promise`. All the transaction-compatible client + * methods return one, this allows for pre-preparing queries without executing + * them until `.then` is called. It's the foundation of Prisma's query batching. + * @param callback that will be wrapped within our promise implementation + * @see [[PrismaPromise]] + * @returns + */ +declare type PrismaPromiseFactory = (callback: PrismaPromiseCallback) => PrismaPromise_2; + +declare type PrismaPromiseInteractiveTransaction = { + kind: 'itx'; + id: string; + payload: PayloadType; +}; + +declare type PrismaPromiseTransaction = PrismaPromiseBatchTransaction | PrismaPromiseInteractiveTransaction; + +export declare const PrivateResultType: unique symbol; + +declare namespace Public { + export { + validator + } +} +export { Public } + +declare namespace Public_2 { + export { + Args, + Result, + Payload, + PrismaPromise, + Operation, + Exact + } +} + +declare type Query = { + sql: string; + args: Array; + argTypes: Array; +}; + +declare interface Queryable { + readonly provider: 'mysql' | 'postgres' | 'sqlite'; + readonly adapterName: (typeof officialPrismaAdapters)[number] | (string & {}); + /** + * Execute a query given as SQL, interpolating the given parameters, + * and returning the type-aware result set of the query. + * + * This is the preferred way of executing `SELECT` queries. + */ + queryRaw(params: Query): Promise>; + /** + * Execute a query given as SQL, interpolating the given parameters, + * and returning the number of affected rows. + * + * This is the preferred way of executing `INSERT`, `UPDATE`, `DELETE` queries, + * as well as transactional queries. + */ + executeRaw(params: Query): Promise>; +} + +declare type QueryEngineBatchGraphQLRequest = { + batch: QueryEngineRequest[]; + transaction?: boolean; + isolationLevel?: Transaction_2.IsolationLevel; +}; + +declare type QueryEngineBatchRequest = QueryEngineBatchGraphQLRequest | JsonBatchQuery; + +declare type QueryEngineConfig = { + datamodel: string; + configDir: string; + logQueries: boolean; + ignoreEnvVarErrors: boolean; + datasourceOverrides: Record; + env: Record; + logLevel: QueryEngineLogLevel; + engineProtocol: EngineProtocol; + enableTracing: boolean; +}; + +declare interface QueryEngineConstructor { + new (config: QueryEngineConfig, logger: (log: string) => void, adapter?: ErrorCapturingDriverAdapter): QueryEngineInstance; +} + +declare type QueryEngineInstance = { + connect(headers: string, requestId: string): Promise; + disconnect(headers: string, requestId: string): Promise; + /** + * @param requestStr JSON.stringified `QueryEngineRequest | QueryEngineBatchRequest` + * @param headersStr JSON.stringified `QueryEngineRequestHeaders` + */ + query(requestStr: string, headersStr: string, transactionId: string | undefined, requestId: string): Promise; + sdlSchema?(): Promise; + startTransaction(options: string, traceHeaders: string, requestId: string): Promise; + commitTransaction(id: string, traceHeaders: string, requestId: string): Promise; + rollbackTransaction(id: string, traceHeaders: string, requestId: string): Promise; + metrics?(options: string): Promise; + applyPendingMigrations?(): Promise; + trace(requestId: string): Promise; +}; + +declare type QueryEngineLogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'off'; + +declare type QueryEngineRequest = { + query: string; + variables: Object; +}; + +declare type QueryEngineResultData = { + data: T; +}; + +declare type QueryEvent = { + timestamp: Date; + query: string; + params: string; + duration: number; + target: string; +}; + +declare type QueryEventType = 'query'; + +declare type QueryMiddleware = (params: QueryMiddlewareParams, next: (params: QueryMiddlewareParams) => Promise) => Promise; + +declare type QueryMiddlewareParams = { + /** The model this is executed on */ + model?: string; + /** The action that is being handled */ + action: Action; + /** TODO what is this */ + dataPath: string[]; + /** TODO what is this */ + runInTransaction: boolean; + args?: UserArgs_2; +}; + +export declare type QueryOptions = { + query: { + [ModelName in string]: { + [ModelAction in string]: ModelQueryOptionsCb; + } | QueryOptionsCb; + }; +}; + +export declare type QueryOptionsCb = (args: QueryOptionsCbArgs) => Promise; + +export declare type QueryOptionsCbArgs = { + model?: string; + operation: string; + args: JsArgs | RawQueryArgs; + query: (args: JsArgs | RawQueryArgs) => Promise; +}; + +/** + * Create raw SQL statement. + */ +export declare function raw(value: string): Sql; + +export declare type RawParameters = { + __prismaRawParameters__: true; + values: string; +}; + +export declare type RawQueryArgs = Sql | UnknownTypedSql | [query: string, ...values: RawValue[]]; + +declare type RawTaggedValue = { + $type: 'Raw'; + value: unknown; +}; + +/** + * Supported value or SQL instance. + */ +export declare type RawValue = Value | Sql; + +export declare type ReadonlyDeep = { + readonly [K in keyof T]: ReadonlyDeep; +}; + +declare type ReadonlyDeep_2 = { + +readonly [K in keyof O]: ReadonlyDeep_2; +}; + +declare type Record_2 = { + [P in T]: U; +}; +export { Record_2 as Record } + +export declare type RenameAndNestPayloadKeys

= { + [K in keyof P as K extends 'scalars' | 'objects' | 'composites' ? keyof P[K] : never]: P[K]; +}; + +declare type RequestBatchOptions = { + transaction?: TransactionOptions_2; + traceparent?: string; + numTry?: number; + containsWrite: boolean; + customDataProxyFetch?: CustomDataProxyFetch; +}; + +declare interface RequestError { + error: string; + user_facing_error: { + is_panic: boolean; + message: string; + meta?: Record; + error_code?: string; + batch_request_idx?: number; + }; +} + +declare class RequestHandler { + client: Client; + dataloader: DataLoader; + private logEmitter?; + constructor(client: Client, logEmitter?: LogEmitter); + request(params: RequestParams): Promise; + mapQueryEngineResult({ dataPath, unpacker }: RequestParams, response: QueryEngineResultData): any; + /** + * Handles the error and logs it, logging the error is done synchronously waiting for the event + * handlers to finish. + */ + handleAndLogRequestError(params: HandleErrorParams): never; + handleRequestError({ error, clientMethod, callsite, transaction, args, modelName, globalOmit, }: HandleErrorParams): never; + sanitizeMessage(message: any): any; + unpack(data: unknown, dataPath: string[], unpacker?: Unpacker): any; + get [Symbol.toStringTag](): string; +} + +declare type RequestOptions = { + traceparent?: string; + numTry?: number; + interactiveTransaction?: InteractiveTransactionOptions; + isWrite: boolean; + customDataProxyFetch?: CustomDataProxyFetch; +}; + +declare type RequestParams = { + modelName?: string; + action: Action; + protocolQuery: JsonQuery; + dataPath: string[]; + clientMethod: string; + callsite?: CallSite; + transaction?: PrismaPromiseTransaction; + extensions: MergedExtensionsList; + args?: any; + headers?: Record; + unpacker?: Unpacker; + otelParentCtx?: Context; + otelChildCtx?: Context; + globalOmit?: GlobalOmitOptions; + customDataProxyFetch?: CustomDataProxyFetch; +}; + +declare type RequiredExtensionArgs = NameArgs & ResultArgs & ModelArgs & ClientArgs & QueryOptions; +export { RequiredExtensionArgs } +export { RequiredExtensionArgs as UserArgs } + +export declare type RequiredKeys = { + [K in keyof O]-?: {} extends Pick_2 ? never : K; +}[keyof O]; + +declare function resolveDatasourceUrl({ inlineDatasources, overrideDatasources, env, clientVersion, }: { + inlineDatasources: GetPrismaClientConfig['inlineDatasources']; + overrideDatasources: Datasources; + env: Record; + clientVersion: string; +}): string; + +export declare type Result = T extends { + [K: symbol]: { + types: { + payload: any; + }; + }; +} ? GetResult : GetResult<{ + composites: {}; + objects: {}; + scalars: {}; + name: ''; +}, {}, F>; + +export declare type Result_2 = Result; + +declare namespace Result_3 { + export { + Operation, + FluentOperation, + Count, + GetFindResult, + SelectablePayloadFields, + SelectField, + DefaultSelection, + UnwrapPayload, + ApplyOmit, + OmitValue, + GetCountResult, + Aggregate, + GetAggregateResult, + GetBatchResult, + GetGroupByResult, + GetResult, + ExtractGlobalOmit + } +} + +declare type Result_4 = { + map(fn: (value: T) => U): Result_4; + flatMap(fn: (value: T) => Result_4): Result_4; +} & ({ + readonly ok: true; + readonly value: T; +} | { + readonly ok: false; + readonly error: Error_2; +}); + +export declare type ResultArg = { + [FieldName in string]: ResultFieldDefinition; +}; + +export declare type ResultArgs = { + result: { + [ModelName in string]: ResultArg; + }; +}; + +export declare type ResultArgsFieldCompute = (model: any) => unknown; + +export declare type ResultFieldDefinition = { + needs?: { + [FieldName in string]: boolean; + }; + compute: ResultArgsFieldCompute; +}; + +declare interface ResultSet { + /** + * List of column types appearing in a database query, in the same order as `columnNames`. + * They are used within the Query Engine to convert values from JS to Quaint values. + */ + columnTypes: Array; + /** + * List of column names appearing in a database query, in the same order as `columnTypes`. + */ + columnNames: Array; + /** + * List of rows retrieved from a database query. + * Each row is a list of values, whose length matches `columnNames` and `columnTypes`. + */ + rows: Array>; + /** + * The last ID of an `INSERT` statement, if any. + * This is required for `AUTO_INCREMENT` columns in databases based on MySQL and SQLite. + */ + lastInsertId?: string; +} + +export declare type Return = T extends (...args: any[]) => infer R ? R : T; + +declare type Runtime = "edge-routine" | "workerd" | "deno" | "lagon" | "react-native" | "netlify" | "electron" | "node" | "bun" | "edge-light" | "fastly" | "unknown"; + +export declare type RuntimeDataModel = { + readonly models: Record; + readonly enums: Record; + readonly types: Record; +}; + +declare type RuntimeEnum = Omit; + +declare type RuntimeModel = Omit; + +export declare type Select = T extends U ? T : never; + +export declare type SelectablePayloadFields = { + objects: { + [k in K]: O; + }; +} | { + composites: { + [k in K]: O; + }; +}; + +export declare type SelectField

, K extends PropertyKey> = P extends { + objects: Record; +} ? P['objects'][K] : P extends { + composites: Record; +} ? P['composites'][K] : never; + +declare type Selection_2 = Record; +export { Selection_2 as Selection } + +export declare function serializeJsonQuery({ modelName, action, args, runtimeDataModel, extensions, callsite, clientMethod, errorFormat, clientVersion, previewFeatures, globalOmit, }: SerializeParams): JsonQuery; + +declare type SerializeParams = { + runtimeDataModel: RuntimeDataModel; + modelName?: string; + action: Action; + args?: JsArgs; + extensions?: MergedExtensionsList; + callsite?: CallSite; + clientMethod: string; + clientVersion: string; + errorFormat: ErrorFormat; + previewFeatures: string[]; + globalOmit?: GlobalOmitOptions; +}; + +declare class Skip { + constructor(param?: symbol); + ifUndefined(value: T | undefined): T | Skip; +} + +export declare const skip: Skip; + +/** + * An interface that represents a span. A span represents a single operation + * within a trace. Examples of span might include remote procedure calls or a + * in-process function calls to sub-components. A Trace has a single, top-level + * "root" Span that in turn may have zero or more child Spans, which in turn + * may have children. + * + * Spans are created by the {@link Tracer.startSpan} method. + */ +declare interface Span { + /** + * Returns the {@link SpanContext} object associated with this Span. + * + * Get an immutable, serializable identifier for this span that can be used + * to create new child spans. Returned SpanContext is usable even after the + * span ends. + * + * @returns the SpanContext object associated with this Span. + */ + spanContext(): SpanContext; + /** + * Sets an attribute to the span. + * + * Sets a single Attribute with the key and value passed as arguments. + * + * @param key the key for this attribute. + * @param value the value for this attribute. Setting a value null or + * undefined is invalid and will result in undefined behavior. + */ + setAttribute(key: string, value: SpanAttributeValue): this; + /** + * Sets attributes to the span. + * + * @param attributes the attributes that will be added. + * null or undefined attribute values + * are invalid and will result in undefined behavior. + */ + setAttributes(attributes: SpanAttributes): this; + /** + * Adds an event to the Span. + * + * @param name the name of the event. + * @param [attributesOrStartTime] the attributes that will be added; these are + * associated with this event. Can be also a start time + * if type is {@type TimeInput} and 3rd param is undefined + * @param [startTime] start time of the event. + */ + addEvent(name: string, attributesOrStartTime?: SpanAttributes | TimeInput, startTime?: TimeInput): this; + /** + * Adds a single link to the span. + * + * Links added after the creation will not affect the sampling decision. + * It is preferred span links be added at span creation. + * + * @param link the link to add. + */ + addLink(link: Link): this; + /** + * Adds multiple links to the span. + * + * Links added after the creation will not affect the sampling decision. + * It is preferred span links be added at span creation. + * + * @param links the links to add. + */ + addLinks(links: Link[]): this; + /** + * Sets a status to the span. If used, this will override the default Span + * status. Default is {@link SpanStatusCode.UNSET}. SetStatus overrides the value + * of previous calls to SetStatus on the Span. + * + * @param status the SpanStatus to set. + */ + setStatus(status: SpanStatus): this; + /** + * Updates the Span name. + * + * This will override the name provided via {@link Tracer.startSpan}. + * + * Upon this update, any sampling behavior based on Span name will depend on + * the implementation. + * + * @param name the Span name. + */ + updateName(name: string): this; + /** + * Marks the end of Span execution. + * + * Call to End of a Span MUST not have any effects on child spans. Those may + * still be running and can be ended later. + * + * Do not return `this`. The Span generally should not be used after it + * is ended so chaining is not desired in this context. + * + * @param [endTime] the time to set as Span's end time. If not provided, + * use the current time as the span's end time. + */ + end(endTime?: TimeInput): void; + /** + * Returns the flag whether this span will be recorded. + * + * @returns true if this Span is active and recording information like events + * with the `AddEvent` operation and attributes using `setAttributes`. + */ + isRecording(): boolean; + /** + * Sets exception as a span event + * @param exception the exception the only accepted values are string or Error + * @param [time] the time to set as Span's event time. If not provided, + * use the current time. + */ + recordException(exception: Exception, time?: TimeInput): void; +} + +/** + * @deprecated please use {@link Attributes} + */ +declare type SpanAttributes = Attributes; + +/** + * @deprecated please use {@link AttributeValue} + */ +declare type SpanAttributeValue = AttributeValue; + +declare type SpanCallback = (span?: Span, context?: Context) => R; + +/** + * A SpanContext represents the portion of a {@link Span} which must be + * serialized and propagated along side of a {@link Baggage}. + */ +declare interface SpanContext { + /** + * The ID of the trace that this span belongs to. It is worldwide unique + * with practically sufficient probability by being made as 16 randomly + * generated bytes, encoded as a 32 lowercase hex characters corresponding to + * 128 bits. + */ + traceId: string; + /** + * The ID of the Span. It is globally unique with practically sufficient + * probability by being made as 8 randomly generated bytes, encoded as a 16 + * lowercase hex characters corresponding to 64 bits. + */ + spanId: string; + /** + * Only true if the SpanContext was propagated from a remote parent. + */ + isRemote?: boolean; + /** + * Trace flags to propagate. + * + * It is represented as 1 byte (bitmap). Bit to represent whether trace is + * sampled or not. When set, the least significant bit documents that the + * caller may have recorded trace data. A caller who does not record trace + * data out-of-band leaves this flag unset. + * + * see {@link TraceFlags} for valid flag values. + */ + traceFlags: number; + /** + * Tracing-system-specific info to propagate. + * + * The tracestate field value is a `list` as defined below. The `list` is a + * series of `list-members` separated by commas `,`, and a list-member is a + * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs + * surrounding `list-members` are ignored. There can be a maximum of 32 + * `list-members` in a `list`. + * More Info: https://www.w3.org/TR/trace-context/#tracestate-field + * + * Examples: + * Single tracing system (generic format): + * tracestate: rojo=00f067aa0ba902b7 + * Multiple tracing systems (with different formatting): + * tracestate: rojo=00f067aa0ba902b7,congo=t61rcWkgMzE + */ + traceState?: TraceState; +} + +declare enum SpanKind { + /** Default value. Indicates that the span is used internally. */ + INTERNAL = 0, + /** + * Indicates that the span covers server-side handling of an RPC or other + * remote request. + */ + SERVER = 1, + /** + * Indicates that the span covers the client-side wrapper around an RPC or + * other remote request. + */ + CLIENT = 2, + /** + * Indicates that the span describes producer sending a message to a + * broker. Unlike client and server, there is no direct critical path latency + * relationship between producer and consumer spans. + */ + PRODUCER = 3, + /** + * Indicates that the span describes consumer receiving a message from a + * broker. Unlike client and server, there is no direct critical path latency + * relationship between producer and consumer spans. + */ + CONSUMER = 4 +} + +/** + * Options needed for span creation + */ +declare interface SpanOptions { + /** + * The SpanKind of a span + * @default {@link SpanKind.INTERNAL} + */ + kind?: SpanKind; + /** A span's attributes */ + attributes?: SpanAttributes; + /** {@link Link}s span to other spans */ + links?: Link[]; + /** A manually specified start time for the created `Span` object. */ + startTime?: TimeInput; + /** The new span should be a root span. (Ignore parent from context). */ + root?: boolean; +} + +declare interface SpanStatus { + /** The status code of this message. */ + code: SpanStatusCode; + /** A developer-facing error message. */ + message?: string; +} + +/** + * An enumeration of status codes. + */ +declare enum SpanStatusCode { + /** + * The default status. + */ + UNSET = 0, + /** + * The operation has been validated by an Application developer or + * Operator to have completed successfully. + */ + OK = 1, + /** + * The operation contains an error. + */ + ERROR = 2 +} + +/** + * A SQL instance can be nested within each other to build SQL strings. + */ +export declare class Sql { + readonly values: Value[]; + readonly strings: string[]; + constructor(rawStrings: readonly string[], rawValues: readonly RawValue[]); + get sql(): string; + get statement(): string; + get text(): string; + inspect(): { + sql: string; + statement: string; + text: string; + values: unknown[]; + }; +} + +/** + * Create a SQL object from a template string. + */ +export declare function sqltag(strings: readonly string[], ...values: readonly RawValue[]): Sql; + +/** + * Defines TimeInput. + * + * hrtime, epoch milliseconds, performance.now() or Date + */ +declare type TimeInput = HrTime_2 | number | Date; + +export declare type ToTuple = T extends any[] ? T : [T]; + +declare interface TraceState { + /** + * Create a new TraceState which inherits from this TraceState and has the + * given key set. + * The new entry will always be added in the front of the list of states. + * + * @param key key of the TraceState entry. + * @param value value of the TraceState entry. + */ + set(key: string, value: string): TraceState; + /** + * Return a new TraceState which inherits from this TraceState but does not + * contain the given key. + * + * @param key the key for the TraceState entry to be removed. + */ + unset(key: string): TraceState; + /** + * Returns the value to which the specified key is mapped, or `undefined` if + * this map contains no mapping for the key. + * + * @param key with which the specified value is to be associated. + * @returns the value to which the specified key is mapped, or `undefined` if + * this map contains no mapping for the key. + */ + get(key: string): string | undefined; + /** + * Serializes the TraceState to a `list` as defined below. The `list` is a + * series of `list-members` separated by commas `,`, and a list-member is a + * key/value pair separated by an equals sign `=`. Spaces and horizontal tabs + * surrounding `list-members` are ignored. There can be a maximum of 32 + * `list-members` in a `list`. + * + * @returns the serialized string. + */ + serialize(): string; +} + +declare interface TracingHelper { + isEnabled(): boolean; + getTraceParent(context?: Context): string; + dispatchEngineSpans(spans: EngineSpan[]): void; + getActiveContext(): Context | undefined; + runInChildSpan(nameOrOptions: string | ExtendedSpanOptions, callback: SpanCallback): R; +} + +declare interface Transaction extends Queryable { + /** + * Transaction options. + */ + readonly options: TransactionOptions; + /** + * Commit the transaction. + */ + commit(): Promise>; + /** + * Rolls back the transaction. + */ + rollback(): Promise>; +} + +declare namespace Transaction_2 { + export { + IsolationLevel, + Options, + InteractiveTransactionInfo, + TransactionHeaders + } +} + +declare interface TransactionContext extends Queryable { + /** + * Starts new transaction. + */ + startTransaction(): Promise>; +} + +declare type TransactionHeaders = { + traceparent?: string; +}; + +declare type TransactionOptions = { + usePhantomQuery: boolean; +}; + +declare type TransactionOptions_2 = { + kind: 'itx'; + options: InteractiveTransactionOptions; +} | { + kind: 'batch'; + options: BatchTransactionOptions; +}; + +export declare class TypedSql { + [PrivateResultType]: Result; + constructor(sql: string, values: Values); + get sql(): string; + get values(): Values; +} + +export declare type TypeMapCbDef = Fn<{ + extArgs: InternalArgs; + clientOptions: ClientOptionDef; +}, TypeMapDef>; + +/** Shared */ +export declare type TypeMapDef = Record; + +declare namespace Types { + export { + Result_3 as Result, + Extensions_2 as Extensions, + Utils, + Public_2 as Public, + isSkip, + Skip, + skip, + UnknownTypedSql, + OperationPayload as Payload + } +} +export { Types } + +declare type UnknownErrorParams = { + clientVersion: string; + batchRequestIdx?: number; +}; + +export declare type UnknownTypedSql = TypedSql; + +declare type Unpacker = (data: any) => any; + +export declare type UnwrapPayload

= {} extends P ? unknown : { + [K in keyof P]: P[K] extends { + scalars: infer S; + composites: infer C; + }[] ? Array> : P[K] extends { + scalars: infer S; + composites: infer C; + } | null ? S & UnwrapPayload | Select : never; +}; + +export declare type UnwrapPromise

= P extends Promise ? R : P; + +export declare type UnwrapTuple = { + [K in keyof Tuple]: K extends `${number}` ? Tuple[K] extends PrismaPromise ? X : UnwrapPromise : UnwrapPromise; +}; + +/** + * Input that flows from the user into the Client. + */ +declare type UserArgs_2 = any; + +declare namespace Utils { + export { + EmptyToUnknown, + NeverToUnknown, + PatchFlat, + Omit_2 as Omit, + Pick_2 as Pick, + ComputeDeep, + Compute, + OptionalFlat, + ReadonlyDeep, + Narrowable, + Narrow, + Exact, + Cast, + Record_2 as Record, + UnwrapPromise, + UnwrapTuple, + Path, + Fn, + Call, + RequiredKeys, + OptionalKeys, + Optional, + Return, + ToTuple, + RenameAndNestPayloadKeys, + PayloadToResult, + Select, + Equals, + Or, + JsPromise + } +} + +declare function validator(): (select: Exact) => S; + +declare function validator, O extends keyof C[M] & Operation>(client: C, model: M, operation: O): (select: Exact>) => S; + +declare function validator, O extends keyof C[M] & Operation, P extends keyof Args>(client: C, model: M, operation: O, prop: P): (select: Exact[P]>) => S; + +/** + * Values supported by SQL engine. + */ +export declare type Value = unknown; + +export declare function warnEnvConflicts(envPaths: any): void; + +export declare const warnOnce: (key: string, message: string, ...args: unknown[]) => void; + +declare type WasmLoadingConfig = { + /** + * WASM-bindgen runtime for corresponding module + */ + getRuntime: () => { + __wbg_set_wasm(exports: unknown): any; + QueryEngine: QueryEngineConstructor; + }; + /** + * Loads the raw wasm module for the wasm query engine. This configuration is + * generated specifically for each type of client, eg. Node.js client and Edge + * clients will have different implementations. + * @remarks this is a callback on purpose, we only load the wasm if needed. + * @remarks only used by LibraryEngine.ts + */ + getQueryEngineWasmModule: () => Promise; +}; + +export { } diff --git a/mods/identity/src/generated/@prisma/client/runtime/library.js b/mods/identity/src/generated/@prisma/client/runtime/library.js new file mode 100644 index 000000000..d9d5f4cb7 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/runtime/library.js @@ -0,0 +1,143 @@ +"use strict";var ru=Object.create;var Fr=Object.defineProperty;var nu=Object.getOwnPropertyDescriptor;var iu=Object.getOwnPropertyNames;var ou=Object.getPrototypeOf,su=Object.prototype.hasOwnProperty;var z=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Bt=(e,t)=>{for(var r in t)Fr(e,r,{get:t[r],enumerable:!0})},bo=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of iu(t))!su.call(e,i)&&i!==r&&Fr(e,i,{get:()=>t[i],enumerable:!(n=nu(t,i))||n.enumerable});return e};var k=(e,t,r)=>(r=e!=null?ru(ou(e)):{},bo(t||!e||!e.__esModule?Fr(r,"default",{value:e,enumerable:!0}):r,e)),au=e=>bo(Fr({},"__esModule",{value:!0}),e);var Uo=z((yf,ei)=>{"use strict";var P=ei.exports;ei.exports.default=P;var D="\x1B[",Ht="\x1B]",mt="\x07",Jr=";",Bo=process.env.TERM_PROGRAM==="Apple_Terminal";P.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?D+(e+1)+"G":D+(t+1)+";"+(e+1)+"H"};P.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=D+-e+"D":e>0&&(r+=D+e+"C"),t<0?r+=D+-t+"A":t>0&&(r+=D+t+"B"),r};P.cursorUp=(e=1)=>D+e+"A";P.cursorDown=(e=1)=>D+e+"B";P.cursorForward=(e=1)=>D+e+"C";P.cursorBackward=(e=1)=>D+e+"D";P.cursorLeft=D+"G";P.cursorSavePosition=Bo?"\x1B7":D+"s";P.cursorRestorePosition=Bo?"\x1B8":D+"u";P.cursorGetPosition=D+"6n";P.cursorNextLine=D+"E";P.cursorPrevLine=D+"F";P.cursorHide=D+"?25l";P.cursorShow=D+"?25h";P.eraseLines=e=>{let t="";for(let r=0;r[Ht,"8",Jr,Jr,t,mt,e,Ht,"8",Jr,Jr,mt].join("");P.image=(e,t={})=>{let r=`${Ht}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+mt};P.iTerm={setCwd:(e=process.cwd())=>`${Ht}50;CurrentDir=${e}${mt}`,annotation:(e,t={})=>{let r=`${Ht}1337;`,n=typeof t.x<"u",i=typeof t.y<"u";if((n||i)&&!(n&&i&&typeof t.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+mt}}});var ti=z((Ef,Qo)=>{"use strict";Qo.exports=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),i=t.indexOf("--");return n!==-1&&(i===-1||n{"use strict";var Ju=require("os"),Go=require("tty"),me=ti(),{env:G}=process,Je;me("no-color")||me("no-colors")||me("color=false")||me("color=never")?Je=0:(me("color")||me("colors")||me("color=true")||me("color=always"))&&(Je=1);"FORCE_COLOR"in G&&(G.FORCE_COLOR==="true"?Je=1:G.FORCE_COLOR==="false"?Je=0:Je=G.FORCE_COLOR.length===0?1:Math.min(parseInt(G.FORCE_COLOR,10),3));function ri(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function ni(e,t){if(Je===0)return 0;if(me("color=16m")||me("color=full")||me("color=truecolor"))return 3;if(me("color=256"))return 2;if(e&&!t&&Je===void 0)return 0;let r=Je||0;if(G.TERM==="dumb")return r;if(process.platform==="win32"){let n=Ju.release().split(".");return Number(n[0])>=10&&Number(n[2])>=10586?Number(n[2])>=14931?3:2:1}if("CI"in G)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(n=>n in G)||G.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in G)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(G.TEAMCITY_VERSION)?1:0;if(G.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in G){let n=parseInt((G.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(G.TERM_PROGRAM){case"iTerm.app":return n>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(G.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(G.TERM)||"COLORTERM"in G?1:r}function Hu(e){let t=ni(e,e&&e.isTTY);return ri(t)}Jo.exports={supportsColor:Hu,stdout:ri(ni(!0,Go.isatty(1))),stderr:ri(ni(!0,Go.isatty(2)))}});var Yo=z((wf,Ko)=>{"use strict";var Wu=Ho(),ft=ti();function Wo(e){if(/^\d{3,4}$/.test(e)){let r=/(\d{1,2})(\d{2})/.exec(e);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let t=(e||"").split(".").map(r=>parseInt(r,10));return{major:t[0],minor:t[1],patch:t[2]}}function ii(e){let{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(ft("no-hyperlink")||ft("no-hyperlinks")||ft("hyperlink=false")||ft("hyperlink=never"))return!1;if(ft("hyperlink=true")||ft("hyperlink=always")||"NETLIFY"in t)return!0;if(!Wu.supportsColor(e)||e&&!e.isTTY||process.platform==="win32"||"CI"in t||"TEAMCITY_VERSION"in t)return!1;if("TERM_PROGRAM"in t){let r=Wo(t.TERM_PROGRAM_VERSION);switch(t.TERM_PROGRAM){case"iTerm.app":return r.major===3?r.minor>=1:r.major>3;case"WezTerm":return r.major>=20200620;case"vscode":return r.major>1||r.major===1&&r.minor>=72}}if("VTE_VERSION"in t){if(t.VTE_VERSION==="0.50.0")return!1;let r=Wo(t.VTE_VERSION);return r.major>0||r.minor>=50}return!1}Ko.exports={supportsHyperlink:ii,stdout:ii(process.stdout),stderr:ii(process.stderr)}});var Zo=z((xf,Wt)=>{"use strict";var Ku=Uo(),oi=Yo(),zo=(e,t,{target:r="stdout",...n}={})=>oi[r]?Ku.link(e,t):n.fallback===!1?e:typeof n.fallback=="function"?n.fallback(e,t):`${e} (\u200B${t}\u200B)`;Wt.exports=(e,t,r={})=>zo(e,t,r);Wt.exports.stderr=(e,t,r={})=>zo(e,t,{target:"stderr",...r});Wt.exports.isSupported=oi.stdout;Wt.exports.stderr.isSupported=oi.stderr});var ai=z((kf,Yu)=>{Yu.exports={name:"@prisma/engines-version",version:"6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"11f085a2012c0f4778414c8db2651556ee0ef959"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.67",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var li=z(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});Hr.enginesVersion=void 0;Hr.enginesVersion=ai().prisma.enginesVersion});var rs=z((Yf,Xu)=>{Xu.exports={name:"dotenv",version:"16.4.7",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard",pretest:"npm run lint && npm run dts-check",test:"tap run --allow-empty-coverage --disable-coverage --timeout=60000","test:coverage":"tap run --show-full-coverage --timeout=60000 --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@types/node":"^18.11.3",decache:"^4.6.2",sinon:"^14.0.1",standard:"^17.0.0","standard-version":"^9.5.0",tap:"^19.2.0",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var ss=z((zf,Le)=>{"use strict";var di=require("fs"),mi=require("path"),ec=require("os"),tc=require("crypto"),rc=rs(),fi=rc.version,nc=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function ic(e){let t={},r=e.toString();r=r.replace(/\r\n?/mg,` +`);let n;for(;(n=nc.exec(r))!=null;){let i=n[1],o=n[2]||"";o=o.trim();let s=o[0];o=o.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),s==='"'&&(o=o.replace(/\\n/g,` +`),o=o.replace(/\\r/g,"\r")),t[i]=o}return t}function oc(e){let t=os(e),r=U.configDotenv({path:t});if(!r.parsed){let s=new Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);throw s.code="MISSING_DATA",s}let n=is(e).split(","),i=n.length,o;for(let s=0;s=i)throw a}return U.parse(o)}function sc(e){console.log(`[dotenv@${fi}][INFO] ${e}`)}function ac(e){console.log(`[dotenv@${fi}][WARN] ${e}`)}function Wr(e){console.log(`[dotenv@${fi}][DEBUG] ${e}`)}function is(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function lc(e,t){let r;try{r=new URL(t)}catch(a){if(a.code==="ERR_INVALID_URL"){let l=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw l.code="INVALID_DOTENV_KEY",l}throw a}let n=r.password;if(!n){let a=new Error("INVALID_DOTENV_KEY: Missing key part");throw a.code="INVALID_DOTENV_KEY",a}let i=r.searchParams.get("environment");if(!i){let a=new Error("INVALID_DOTENV_KEY: Missing environment part");throw a.code="INVALID_DOTENV_KEY",a}let o=`DOTENV_VAULT_${i.toUpperCase()}`,s=e.parsed[o];if(!s){let a=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${o} in your .env.vault file.`);throw a.code="NOT_FOUND_DOTENV_ENVIRONMENT",a}return{ciphertext:s,key:n}}function os(e){let t=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let r of e.path)di.existsSync(r)&&(t=r.endsWith(".vault")?r:`${r}.vault`);else t=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else t=mi.resolve(process.cwd(),".env.vault");return di.existsSync(t)?t:null}function ns(e){return e[0]==="~"?mi.join(ec.homedir(),e.slice(1)):e}function uc(e){sc("Loading env from encrypted .env.vault");let t=U._parseVault(e),r=process.env;return e&&e.processEnv!=null&&(r=e.processEnv),U.populate(r,t,e),{parsed:t}}function cc(e){let t=mi.resolve(process.cwd(),".env"),r="utf8",n=!!(e&&e.debug);e&&e.encoding?r=e.encoding:n&&Wr("No encoding is specified. UTF-8 is used by default");let i=[t];if(e&&e.path)if(!Array.isArray(e.path))i=[ns(e.path)];else{i=[];for(let l of e.path)i.push(ns(l))}let o,s={};for(let l of i)try{let u=U.parse(di.readFileSync(l,{encoding:r}));U.populate(s,u,e)}catch(u){n&&Wr(`Failed to load ${l} ${u.message}`),o=u}let a=process.env;return e&&e.processEnv!=null&&(a=e.processEnv),U.populate(a,s,e),o?{parsed:s,error:o}:{parsed:s}}function pc(e){if(is(e).length===0)return U.configDotenv(e);let t=os(e);return t?U._configVault(e):(ac(`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`),U.configDotenv(e))}function dc(e,t){let r=Buffer.from(t.slice(-64),"hex"),n=Buffer.from(e,"base64"),i=n.subarray(0,12),o=n.subarray(-16);n=n.subarray(12,-16);try{let s=tc.createDecipheriv("aes-256-gcm",r,i);return s.setAuthTag(o),`${s.update(n)}${s.final()}`}catch(s){let a=s instanceof RangeError,l=s.message==="Invalid key length",u=s.message==="Unsupported state or unable to authenticate data";if(a||l){let c=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw c.code="INVALID_DOTENV_KEY",c}else if(u){let c=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw c.code="DECRYPTION_FAILED",c}else throw s}}function mc(e,t,r={}){let n=!!(r&&r.debug),i=!!(r&&r.override);if(typeof t!="object"){let o=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw o.code="OBJECT_REQUIRED",o}for(let o of Object.keys(t))Object.prototype.hasOwnProperty.call(e,o)?(i===!0&&(e[o]=t[o]),n&&Wr(i===!0?`"${o}" is already defined and WAS overwritten`:`"${o}" is already defined and was NOT overwritten`)):e[o]=t[o]}var U={configDotenv:cc,_configVault:uc,_parseVault:oc,config:pc,decrypt:dc,parse:ic,populate:mc};Le.exports.configDotenv=U.configDotenv;Le.exports._configVault=U._configVault;Le.exports._parseVault=U._parseVault;Le.exports.config=U.config;Le.exports.decrypt=U.decrypt;Le.exports.parse=U.parse;Le.exports.populate=U.populate;Le.exports=U});var ds=z((ig,ps)=>{"use strict";ps.exports=e=>{let t=e.match(/^[ \t]*(?=\S)/gm);return t?t.reduce((r,n)=>Math.min(r,n.length),1/0):0}});var fs=z((og,ms)=>{"use strict";var yc=ds();ms.exports=e=>{let t=yc(e);if(t===0)return e;let r=new RegExp(`^[ \\t]{${t}}`,"gm");return e.replace(r,"")}});var Ei=z((pg,gs)=>{"use strict";gs.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var bs=z((fg,Es)=>{"use strict";Es.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var vi=z((gg,ws)=>{"use strict";var Rc=bs();ws.exports=e=>typeof e=="string"?e.replace(Rc(),""):e});var xs=z((Eg,zr)=>{"use strict";zr.exports=(e={})=>{let t;if(e.repoUrl)t=e.repoUrl;else if(e.user&&e.repo)t=`https://github.com/${e.user}/${e.repo}`;else throw new Error("You need to specify either the `repoUrl` option or both the `user` and `repo` options");let r=new URL(`${t}/issues/new`),n=["body","title","labels","template","milestone","assignee","projects"];for(let i of n){let o=e[i];if(o!==void 0){if(i==="labels"||i==="projects"){if(!Array.isArray(o))throw new TypeError(`The \`${i}\` option should be an array`);o=o.join(",")}r.searchParams.set(i,o)}}return r.toString()};zr.exports.default=zr.exports});var Di=z((Sh,Us)=>{"use strict";Us.exports=function(){function e(t,r,n,i,o){return tn?n+1:t+1:i===o?r:r+1}return function(t,r){if(t===r)return 0;if(t.length>r.length){var n=t;t=r,r=n}for(var i=t.length,o=r.length;i>0&&t.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;sGn,Decimal:()=>ve,Extensions:()=>jn,MetricsClient:()=>Ot,PrismaClientInitializationError:()=>R,PrismaClientKnownRequestError:()=>X,PrismaClientRustPanicError:()=>ue,PrismaClientUnknownRequestError:()=>j,PrismaClientValidationError:()=>ee,Public:()=>Bn,Sql:()=>se,defineDmmfProperty:()=>fa,deserializeJsonResponse:()=>bt,dmmfToRuntimeDataModel:()=>ma,empty:()=>Ea,getPrismaClient:()=>Xl,getRuntime:()=>In,join:()=>ya,makeStrictEnum:()=>eu,makeTypedQueryFactory:()=>ga,objectEnumValues:()=>yn,raw:()=>Qi,serializeJsonQuery:()=>Pn,skip:()=>vn,sqltag:()=>Gi,warnEnvConflicts:()=>tu,warnOnce:()=>tr});module.exports=au(Bm);var jn={};Bt(jn,{defineExtension:()=>wo,getExtensionContext:()=>xo});function wo(e){return typeof e=="function"?e:t=>t.$extends(e)}function xo(e){return e}var Bn={};Bt(Bn,{validator:()=>vo});function vo(...e){return t=>t}var Mr={};Bt(Mr,{$:()=>So,bgBlack:()=>yu,bgBlue:()=>xu,bgCyan:()=>Pu,bgGreen:()=>bu,bgMagenta:()=>vu,bgRed:()=>Eu,bgWhite:()=>Tu,bgYellow:()=>wu,black:()=>mu,blue:()=>rt,bold:()=>H,cyan:()=>_e,dim:()=>ke,gray:()=>Ut,green:()=>Ve,grey:()=>hu,hidden:()=>pu,inverse:()=>cu,italic:()=>uu,magenta:()=>fu,red:()=>pe,reset:()=>lu,strikethrough:()=>du,underline:()=>Z,white:()=>gu,yellow:()=>De});var Un,Po,To,Ro,Co=!0;typeof process<"u"&&({FORCE_COLOR:Un,NODE_DISABLE_COLORS:Po,NO_COLOR:To,TERM:Ro}=process.env||{},Co=process.stdout&&process.stdout.isTTY);var So={enabled:!Po&&To==null&&Ro!=="dumb"&&(Un!=null&&Un!=="0"||Co)};function M(e,t){let r=new RegExp(`\\x1b\\[${t}m`,"g"),n=`\x1B[${e}m`,i=`\x1B[${t}m`;return function(o){return!So.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(r,i+n):o)+i}}var lu=M(0,0),H=M(1,22),ke=M(2,22),uu=M(3,23),Z=M(4,24),cu=M(7,27),pu=M(8,28),du=M(9,29),mu=M(30,39),pe=M(31,39),Ve=M(32,39),De=M(33,39),rt=M(34,39),fu=M(35,39),_e=M(36,39),gu=M(37,39),Ut=M(90,39),hu=M(90,39),yu=M(40,49),Eu=M(41,49),bu=M(42,49),wu=M(43,49),xu=M(44,49),vu=M(45,49),Pu=M(46,49),Tu=M(47,49);var Ru=100,Ao=["green","yellow","blue","magenta","cyan","red"],Qt=[],Io=Date.now(),Cu=0,Qn=typeof process<"u"?process.env:{};globalThis.DEBUG??=Qn.DEBUG??"";globalThis.DEBUG_COLORS??=Qn.DEBUG_COLORS?Qn.DEBUG_COLORS==="true":!0;var Gt={enable(e){typeof e=="string"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG="",e},enabled(e){let t=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),r=t.some(i=>i===""||i[0]==="-"?!1:e.match(RegExp(i.split("*").join(".*")+"$"))),n=t.some(i=>i===""||i[0]!=="-"?!1:e.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return r&&!n},log:(...e)=>{let[t,r,...n]=e;(console.warn??console.log)(`${t} ${r}`,...n)},formatters:{}};function Su(e){let t={color:Ao[Cu++%Ao.length],enabled:Gt.enabled(e),namespace:e,log:Gt.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=t;if(n.length!==0&&Qt.push([o,...n]),Qt.length>Ru&&Qt.shift(),Gt.enabled(o)||i){let l=n.map(c=>typeof c=="string"?c:Au(c)),u=`+${Date.now()-Io}ms`;Io=Date.now(),globalThis.DEBUG_COLORS?a(Mr[s](H(o)),...l,Mr[s](u)):a(o,...l,u)}};return new Proxy(r,{get:(n,i)=>t[i],set:(n,i,o)=>t[i]=o})}var Gn=new Proxy(Su,{get:(e,t)=>Gt[t],set:(e,t,r)=>Gt[t]=r});function Au(e,t=2){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))return"[Circular *]";r.add(i)}else if(typeof i=="bigint")return i.toString();return i},t)}function Oo(e=7500){let t=Qt.map(([r,...n])=>`${r} ${n.map(i=>typeof i=="string"?i:JSON.stringify(i)).join(" ")}`).join(` +`);return t.length!!(e&&typeof e=="object"),Vr=e=>e&&!!e[Ne],we=(e,t,r)=>{if(Vr(e)){let n=e[Ne](),{matched:i,selections:o}=n.match(t);return i&&o&&Object.keys(o).forEach(s=>r(s,o[s])),i}if(Wn(e)){if(!Wn(t))return!1;if(Array.isArray(e)){if(!Array.isArray(t))return!1;let n=[],i=[],o=[];for(let s of e.keys()){let a=e[s];Vr(a)&&a[Iu]?o.push(a):o.length?i.push(a):n.push(a)}if(o.length){if(o.length>1)throw new Error("Pattern error: Using `...P.array(...)` several times in a single pattern is not allowed.");if(t.lengthwe(u,s[c],r))&&i.every((u,c)=>we(u,a[c],r))&&(o.length===0||we(o[0],l,r))}return e.length===t.length&&e.every((s,a)=>we(s,t[a],r))}return Reflect.ownKeys(e).every(n=>{let i=e[n];return(n in t||Vr(o=i)&&o[Ne]().matcherType==="optional")&&we(i,t[n],r);var o})}return Object.is(t,e)},Ge=e=>{var t,r,n;return Wn(e)?Vr(e)?(t=(r=(n=e[Ne]()).getSelectionKeys)==null?void 0:r.call(n))!=null?t:[]:Array.isArray(e)?Jt(e,Ge):Jt(Object.values(e),Ge):[]},Jt=(e,t)=>e.reduce((r,n)=>r.concat(t(n)),[]);function de(e){return Object.assign(e,{optional:()=>Ou(e),and:t=>V(e,t),or:t=>ku(e,t),select:t=>t===void 0?_o(e):_o(t,e)})}function Ou(e){return de({[Ne]:()=>({match:t=>{let r={},n=(i,o)=>{r[i]=o};return t===void 0?(Ge(e).forEach(i=>n(i,void 0)),{matched:!0,selections:r}):{matched:we(e,t,n),selections:r}},getSelectionKeys:()=>Ge(e),matcherType:"optional"})})}function V(...e){return de({[Ne]:()=>({match:t=>{let r={},n=(i,o)=>{r[i]=o};return{matched:e.every(i=>we(i,t,n)),selections:r}},getSelectionKeys:()=>Jt(e,Ge),matcherType:"and"})})}function ku(...e){return de({[Ne]:()=>({match:t=>{let r={},n=(i,o)=>{r[i]=o};return Jt(e,Ge).forEach(i=>n(i,void 0)),{matched:e.some(i=>we(i,t,n)),selections:r}},getSelectionKeys:()=>Jt(e,Ge),matcherType:"or"})})}function I(e){return{[Ne]:()=>({match:t=>({matched:!!e(t)})})}}function _o(...e){let t=typeof e[0]=="string"?e[0]:void 0,r=e.length===2?e[1]:typeof e[0]=="string"?void 0:e[0];return de({[Ne]:()=>({match:n=>{let i={[t??jr]:n};return{matched:r===void 0||we(r,n,(o,s)=>{i[o]=s}),selections:i}},getSelectionKeys:()=>[t??jr].concat(r===void 0?[]:Ge(r))})})}function Ee(e){return typeof e=="number"}function je(e){return typeof e=="string"}function Be(e){return typeof e=="bigint"}var tf=de(I(function(e){return!0}));var Ue=e=>Object.assign(de(e),{startsWith:t=>{return Ue(V(e,(r=t,I(n=>je(n)&&n.startsWith(r)))));var r},endsWith:t=>{return Ue(V(e,(r=t,I(n=>je(n)&&n.endsWith(r)))));var r},minLength:t=>Ue(V(e,(r=>I(n=>je(n)&&n.length>=r))(t))),length:t=>Ue(V(e,(r=>I(n=>je(n)&&n.length===r))(t))),maxLength:t=>Ue(V(e,(r=>I(n=>je(n)&&n.length<=r))(t))),includes:t=>{return Ue(V(e,(r=t,I(n=>je(n)&&n.includes(r)))));var r},regex:t=>{return Ue(V(e,(r=t,I(n=>je(n)&&!!n.match(r)))));var r}}),rf=Ue(I(je)),be=e=>Object.assign(de(e),{between:(t,r)=>be(V(e,((n,i)=>I(o=>Ee(o)&&n<=o&&i>=o))(t,r))),lt:t=>be(V(e,(r=>I(n=>Ee(n)&&nbe(V(e,(r=>I(n=>Ee(n)&&n>r))(t))),lte:t=>be(V(e,(r=>I(n=>Ee(n)&&n<=r))(t))),gte:t=>be(V(e,(r=>I(n=>Ee(n)&&n>=r))(t))),int:()=>be(V(e,I(t=>Ee(t)&&Number.isInteger(t)))),finite:()=>be(V(e,I(t=>Ee(t)&&Number.isFinite(t)))),positive:()=>be(V(e,I(t=>Ee(t)&&t>0))),negative:()=>be(V(e,I(t=>Ee(t)&&t<0)))}),nf=be(I(Ee)),Qe=e=>Object.assign(de(e),{between:(t,r)=>Qe(V(e,((n,i)=>I(o=>Be(o)&&n<=o&&i>=o))(t,r))),lt:t=>Qe(V(e,(r=>I(n=>Be(n)&&nQe(V(e,(r=>I(n=>Be(n)&&n>r))(t))),lte:t=>Qe(V(e,(r=>I(n=>Be(n)&&n<=r))(t))),gte:t=>Qe(V(e,(r=>I(n=>Be(n)&&n>=r))(t))),positive:()=>Qe(V(e,I(t=>Be(t)&&t>0))),negative:()=>Qe(V(e,I(t=>Be(t)&&t<0)))}),of=Qe(I(Be)),sf=de(I(function(e){return typeof e=="boolean"})),af=de(I(function(e){return typeof e=="symbol"})),lf=de(I(function(e){return e==null})),uf=de(I(function(e){return e!=null}));var Kn=class extends Error{constructor(t){let r;try{r=JSON.stringify(t)}catch{r=t}super(`Pattern matching error: no pattern matches value ${r}`),this.input=void 0,this.input=t}},Yn={matched:!1,value:void 0};function dt(e){return new zn(e,Yn)}var zn=class e{constructor(t,r){this.input=void 0,this.state=void 0,this.input=t,this.state=r}with(...t){if(this.state.matched)return this;let r=t[t.length-1],n=[t[0]],i;t.length===3&&typeof t[1]=="function"?i=t[1]:t.length>2&&n.push(...t.slice(1,t.length-1));let o=!1,s={},a=(u,c)=>{o=!0,s[u]=c},l=!n.some(u=>we(u,this.input,a))||i&&!i(this.input)?Yn:{matched:!0,value:r(o?jr in s?s[jr]:s:this.input,this.input)};return new e(this.input,l)}when(t,r){if(this.state.matched)return this;let n=!!t(this.input);return new e(this.input,n?{matched:!0,value:r(this.input,this.input)}:Yn)}otherwise(t){return this.state.matched?this.state.value:t(this.input)}exhaustive(){if(this.state.matched)return this.state.value;throw new Kn(this.input)}run(){return this.exhaustive()}returnType(){return this}};var Mo=require("util");var Du={warn:De("prisma:warn")},_u={warn:()=>!process.env.PRISMA_DISABLE_WARNINGS};function Br(e,...t){_u.warn()&&console.warn(`${Du.warn} ${e}`,...t)}var Nu=(0,Mo.promisify)(Fo.default.exec),re=L("prisma:get-platform"),Lu=["1.0.x","1.1.x","3.0.x"];async function $o(){let e=Qr.default.platform(),t=process.arch;if(e==="freebsd"){let s=await Gr("freebsd-version");if(s&&s.trim().length>0){let l=/^(\d+)\.?/.exec(s);if(l)return{platform:"freebsd",targetDistro:`freebsd${l[1]}`,arch:t}}}if(e!=="linux")return{platform:e,arch:t};let r=await Mu(),n=await Gu(),i=qu({arch:t,archFromUname:n,familyDistro:r.familyDistro}),{libssl:o}=await Vu(i);return{platform:"linux",libssl:o,arch:t,archFromUname:n,...r}}function Fu(e){let t=/^ID="?([^"\n]*)"?$/im,r=/^ID_LIKE="?([^"\n]*)"?$/im,n=t.exec(e),i=n&&n[1]&&n[1].toLowerCase()||"",o=r.exec(e),s=o&&o[1]&&o[1].toLowerCase()||"",a=dt({id:i,idLike:s}).with({id:"alpine"},({id:l})=>({targetDistro:"musl",familyDistro:l,originalDistro:l})).with({id:"raspbian"},({id:l})=>({targetDistro:"arm",familyDistro:"debian",originalDistro:l})).with({id:"nixos"},({id:l})=>({targetDistro:"nixos",originalDistro:l,familyDistro:"nixos"})).with({id:"debian"},{id:"ubuntu"},({id:l})=>({targetDistro:"debian",familyDistro:"debian",originalDistro:l})).with({id:"rhel"},{id:"centos"},{id:"fedora"},({id:l})=>({targetDistro:"rhel",familyDistro:"rhel",originalDistro:l})).when(({idLike:l})=>l.includes("debian")||l.includes("ubuntu"),({id:l})=>({targetDistro:"debian",familyDistro:"debian",originalDistro:l})).when(({idLike:l})=>i==="arch"||l.includes("arch"),({id:l})=>({targetDistro:"debian",familyDistro:"arch",originalDistro:l})).when(({idLike:l})=>l.includes("centos")||l.includes("fedora")||l.includes("rhel")||l.includes("suse"),({id:l})=>({targetDistro:"rhel",familyDistro:"rhel",originalDistro:l})).otherwise(({id:l})=>({targetDistro:void 0,familyDistro:void 0,originalDistro:l}));return re(`Found distro info: +${JSON.stringify(a,null,2)}`),a}async function Mu(){let e="/etc/os-release";try{let t=await Zn.default.readFile(e,{encoding:"utf-8"});return Fu(t)}catch{return{targetDistro:void 0,familyDistro:void 0,originalDistro:void 0}}}function $u(e){let t=/^OpenSSL\s(\d+\.\d+)\.\d+/.exec(e);if(t){let r=`${t[1]}.x`;return qo(r)}}function No(e){let t=/libssl\.so\.(\d)(\.\d)?/.exec(e);if(t){let r=`${t[1]}${t[2]??".0"}.x`;return qo(r)}}function qo(e){let t=(()=>{if(jo(e))return e;let r=e.split(".");return r[1]="0",r.join(".")})();if(Lu.includes(t))return t}function qu(e){return dt(e).with({familyDistro:"musl"},()=>(re('Trying platform-specific paths for "alpine"'),["/lib","/usr/lib"])).with({familyDistro:"debian"},({archFromUname:t})=>(re('Trying platform-specific paths for "debian" (and "ubuntu")'),[`/usr/lib/${t}-linux-gnu`,`/lib/${t}-linux-gnu`])).with({familyDistro:"rhel"},()=>(re('Trying platform-specific paths for "rhel"'),["/lib64","/usr/lib64"])).otherwise(({familyDistro:t,arch:r,archFromUname:n})=>(re(`Don't know any platform-specific paths for "${t}" on ${r} (${n})`),[]))}async function Vu(e){let t='grep -v "libssl.so.0"',r=await Lo(e);if(r){re(`Found libssl.so file using platform-specific paths: ${r}`);let o=No(r);if(re(`The parsed libssl version is: ${o}`),o)return{libssl:o,strategy:"libssl-specific-path"}}re('Falling back to "ldconfig" and other generic paths');let n=await Gr(`ldconfig -p | sed "s/.*=>s*//" | sed "s|.*/||" | grep libssl | sort | ${t}`);if(n||(n=await Lo(["/lib64","/usr/lib64","/lib","/usr/lib"])),n){re(`Found libssl.so file using "ldconfig" or other generic paths: ${n}`);let o=No(n);if(re(`The parsed libssl version is: ${o}`),o)return{libssl:o,strategy:"ldconfig"}}let i=await Gr("openssl version -v");if(i){re(`Found openssl binary with version: ${i}`);let o=$u(i);if(re(`The parsed openssl version is: ${o}`),o)return{libssl:o,strategy:"openssl-binary"}}return re("Couldn't find any version of libssl or OpenSSL in the system"),{}}async function Lo(e){for(let t of e){let r=await ju(t);if(r)return r}}async function ju(e){try{return(await Zn.default.readdir(e)).find(r=>r.startsWith("libssl.so.")&&!r.startsWith("libssl.so.0"))}catch(t){if(t.code==="ENOENT")return;throw t}}async function nt(){let{binaryTarget:e}=await Vo();return e}function Bu(e){return e.binaryTarget!==void 0}async function Xn(){let{memoized:e,...t}=await Vo();return t}var Ur={};async function Vo(){if(Bu(Ur))return Promise.resolve({...Ur,memoized:!0});let e=await $o(),t=Uu(e);return Ur={...e,binaryTarget:t},{...Ur,memoized:!1}}function Uu(e){let{platform:t,arch:r,archFromUname:n,libssl:i,targetDistro:o,familyDistro:s,originalDistro:a}=e;t==="linux"&&!["x64","arm64"].includes(r)&&Br(`Prisma only officially supports Linux on amd64 (x86_64) and arm64 (aarch64) system architectures (detected "${r}" instead). If you are using your own custom Prisma engines, you can ignore this warning, as long as you've compiled the engines for your system architecture "${n}".`);let l="1.1.x";if(t==="linux"&&i===void 0){let c=dt({familyDistro:s}).with({familyDistro:"debian"},()=>"Please manually install OpenSSL via `apt-get update -y && apt-get install -y openssl` and try installing Prisma again. If you're running Prisma on Docker, add this command to your Dockerfile, or switch to an image that already has OpenSSL installed.").otherwise(()=>"Please manually install OpenSSL and try installing Prisma again.");Br(`Prisma failed to detect the libssl/openssl version to use, and may not work as expected. Defaulting to "openssl-${l}". +${c}`)}let u="debian";if(t==="linux"&&o===void 0&&re(`Distro is "${a}". Falling back to Prisma engines built for "${u}".`),t==="darwin"&&r==="arm64")return"darwin-arm64";if(t==="darwin")return"darwin";if(t==="win32")return"windows";if(t==="freebsd")return o;if(t==="openbsd")return"openbsd";if(t==="netbsd")return"netbsd";if(t==="linux"&&o==="nixos")return"linux-nixos";if(t==="linux"&&r==="arm64")return`${o==="musl"?"linux-musl-arm64":"linux-arm64"}-openssl-${i||l}`;if(t==="linux"&&r==="arm")return`linux-arm-openssl-${i||l}`;if(t==="linux"&&o==="musl"){let c="linux-musl";return!i||jo(i)?c:`${c}-openssl-${i}`}return t==="linux"&&o&&i?`${o}-openssl-${i}`:(t!=="linux"&&Br(`Prisma detected unknown OS "${t}" and may not work as expected. Defaulting to "linux".`),i?`${u}-openssl-${i}`:o?`${o}-openssl-${l}`:`${u}-openssl-${l}`)}async function Qu(e){try{return await e()}catch{return}}function Gr(e){return Qu(async()=>{let t=await Nu(e);return re(`Command "${e}" successfully returned "${t.stdout}"`),t.stdout})}async function Gu(){return typeof Qr.default.machine=="function"?Qr.default.machine():(await Gr("uname -m"))?.trim()}function jo(e){return e.startsWith("1.")}var Xo=k(Zo());function si(e){return(0,Xo.default)(e,e,{fallback:Z})}var zu=k(li());var $=k(require("path")),Zu=k(li()),jf=L("prisma:engines");function es(){return $.default.join(__dirname,"../")}var Bf="libquery-engine";$.default.join(__dirname,"../query-engine-darwin");$.default.join(__dirname,"../query-engine-darwin-arm64");$.default.join(__dirname,"../query-engine-debian-openssl-1.0.x");$.default.join(__dirname,"../query-engine-debian-openssl-1.1.x");$.default.join(__dirname,"../query-engine-debian-openssl-3.0.x");$.default.join(__dirname,"../query-engine-linux-static-x64");$.default.join(__dirname,"../query-engine-linux-static-arm64");$.default.join(__dirname,"../query-engine-rhel-openssl-1.0.x");$.default.join(__dirname,"../query-engine-rhel-openssl-1.1.x");$.default.join(__dirname,"../query-engine-rhel-openssl-3.0.x");$.default.join(__dirname,"../libquery_engine-darwin.dylib.node");$.default.join(__dirname,"../libquery_engine-darwin-arm64.dylib.node");$.default.join(__dirname,"../libquery_engine-debian-openssl-1.0.x.so.node");$.default.join(__dirname,"../libquery_engine-debian-openssl-1.1.x.so.node");$.default.join(__dirname,"../libquery_engine-debian-openssl-3.0.x.so.node");$.default.join(__dirname,"../libquery_engine-linux-arm64-openssl-1.0.x.so.node");$.default.join(__dirname,"../libquery_engine-linux-arm64-openssl-1.1.x.so.node");$.default.join(__dirname,"../libquery_engine-linux-arm64-openssl-3.0.x.so.node");$.default.join(__dirname,"../libquery_engine-linux-musl.so.node");$.default.join(__dirname,"../libquery_engine-linux-musl-openssl-3.0.x.so.node");$.default.join(__dirname,"../libquery_engine-rhel-openssl-1.0.x.so.node");$.default.join(__dirname,"../libquery_engine-rhel-openssl-1.1.x.so.node");$.default.join(__dirname,"../libquery_engine-rhel-openssl-3.0.x.so.node");$.default.join(__dirname,"../query_engine-windows.dll.node");var ui=k(require("fs")),ts=L("chmodPlusX");function ci(e){if(process.platform==="win32")return;let t=ui.default.statSync(e),r=t.mode|64|8|1;if(t.mode===r){ts(`Execution permissions of ${e} are fine`);return}let n=r.toString(8).slice(-3);ts(`Have to call chmodPlusX on ${e}`),ui.default.chmodSync(e,n)}function pi(e){let t=e.e,r=a=>`Prisma cannot find the required \`${a}\` system library in your system`,n=t.message.includes("cannot open shared object file"),i=`Please refer to the documentation about Prisma's system requirements: ${si("https://pris.ly/d/system-requirements")}`,o=`Unable to require(\`${ke(e.id)}\`).`,s=dt({message:t.message,code:t.code}).with({code:"ENOENT"},()=>"File does not exist.").when(({message:a})=>n&&a.includes("libz"),()=>`${r("libz")}. Please install it and try again.`).when(({message:a})=>n&&a.includes("libgcc_s"),()=>`${r("libgcc_s")}. Please install it and try again.`).when(({message:a})=>n&&a.includes("libssl"),()=>{let a=e.platformInfo.libssl?`openssl-${e.platformInfo.libssl}`:"openssl";return`${r("libssl")}. Please install ${a} and try again.`}).when(({message:a})=>a.includes("GLIBC"),()=>`Prisma has detected an incompatible version of the \`glibc\` C standard library installed in your system. This probably means your system may be too old to run Prisma. ${i}`).when(({message:a})=>e.platformInfo.platform==="linux"&&a.includes("symbol not found"),()=>`The Prisma engines are not compatible with your system ${e.platformInfo.originalDistro} on (${e.platformInfo.archFromUname}) which uses the \`${e.platformInfo.binaryTarget}\` binaryTarget by default. ${i}`).otherwise(()=>`The Prisma engines do not seem to be compatible with your system. ${i}`);return`${o} +${s} + +Details: ${t.message}`}var hi=k(ss()),Kr=k(require("fs"));var gt=k(require("path"));function as(e){let t=e.ignoreProcessEnv?{}:process.env,r=n=>n.match(/(.?\${(?:[a-zA-Z0-9_]+)?})/g)?.reduce(function(o,s){let a=/(.?)\${([a-zA-Z0-9_]+)?}/g.exec(s);if(!a)return o;let l=a[1],u,c;if(l==="\\")c=a[0],u=c.replace("\\$","$");else{let p=a[2];c=a[0].substring(l.length),u=Object.hasOwnProperty.call(t,p)?t[p]:e.parsed[p]||"",u=r(u)}return o.replace(c,u)},n)??n;for(let n in e.parsed){let i=Object.hasOwnProperty.call(t,n)?t[n]:e.parsed[n];e.parsed[n]=r(i)}for(let n in e.parsed)t[n]=e.parsed[n];return e}var gi=L("prisma:tryLoadEnv");function Kt({rootEnvPath:e,schemaEnvPath:t},r={conflictCheck:"none"}){let n=ls(e);r.conflictCheck!=="none"&&fc(n,t,r.conflictCheck);let i=null;return us(n?.path,t)||(i=ls(t)),!n&&!i&&gi("No Environment variables loaded"),i?.dotenvResult.error?console.error(pe(H("Schema Env Error: "))+i.dotenvResult.error):{message:[n?.message,i?.message].filter(Boolean).join(` +`),parsed:{...n?.dotenvResult?.parsed,...i?.dotenvResult?.parsed}}}function fc(e,t,r){let n=e?.dotenvResult.parsed,i=!us(e?.path,t);if(n&&t&&i&&Kr.default.existsSync(t)){let o=hi.default.parse(Kr.default.readFileSync(t)),s=[];for(let a in o)n[a]===o[a]&&s.push(a);if(s.length>0){let a=gt.default.relative(process.cwd(),e.path),l=gt.default.relative(process.cwd(),t);if(r==="error"){let u=`There is a conflict between env var${s.length>1?"s":""} in ${Z(a)} and ${Z(l)} +Conflicting env vars: +${s.map(c=>` ${H(c)}`).join(` +`)} + +We suggest to move the contents of ${Z(l)} to ${Z(a)} to consolidate your env vars. +`;throw new Error(u)}else if(r==="warn"){let u=`Conflict for env var${s.length>1?"s":""} ${s.map(c=>H(c)).join(", ")} in ${Z(a)} and ${Z(l)} +Env vars from ${Z(l)} overwrite the ones from ${Z(a)} + `;console.warn(`${De("warn(prisma)")} ${u}`)}}}}function ls(e){if(gc(e)){gi(`Environment variables loaded from ${e}`);let t=hi.default.config({path:e,debug:process.env.DOTENV_CONFIG_DEBUG?!0:void 0});return{dotenvResult:as(t),message:ke(`Environment variables loaded from ${gt.default.relative(process.cwd(),e)}`),path:e}}else gi(`Environment variables not found at ${e}`);return null}function us(e,t){return e&&t&>.default.resolve(e)===gt.default.resolve(t)}function gc(e){return!!(e&&Kr.default.existsSync(e))}var cs="library";function Yt(e){let t=hc();return t||(e?.config.engineType==="library"?"library":e?.config.engineType==="binary"?"binary":cs)}function hc(){let e=process.env.PRISMA_CLIENT_ENGINE_TYPE;return e==="library"?"library":e==="binary"?"binary":void 0}var zt;(t=>{let e;(b=>(b.findUnique="findUnique",b.findUniqueOrThrow="findUniqueOrThrow",b.findFirst="findFirst",b.findFirstOrThrow="findFirstOrThrow",b.findMany="findMany",b.create="create",b.createMany="createMany",b.createManyAndReturn="createManyAndReturn",b.update="update",b.updateMany="updateMany",b.upsert="upsert",b.delete="delete",b.deleteMany="deleteMany",b.groupBy="groupBy",b.count="count",b.aggregate="aggregate",b.findRaw="findRaw",b.aggregateRaw="aggregateRaw"))(e=t.ModelAction||={})})(zt||={});var Zt=k(require("path"));function yi(e){return Zt.default.sep===Zt.default.posix.sep?e:e.split(Zt.default.sep).join(Zt.default.posix.sep)}var hs=k(Ei());function wi(e){return String(new bi(e))}var bi=class{constructor(t){this.config=t}toString(){let{config:t}=this,r=t.provider.fromEnvVar?`env("${t.provider.fromEnvVar}")`:t.provider.value,n=JSON.parse(JSON.stringify({provider:r,binaryTargets:Ec(t.binaryTargets)}));return`generator ${t.name} { +${(0,hs.default)(bc(n),2)} +}`}};function Ec(e){let t;if(e.length>0){let r=e.find(n=>n.fromEnvVar!==null);r?t=`env("${r.fromEnvVar}")`:t=e.map(n=>n.native?"native":n.value)}else t=void 0;return t}function bc(e){let t=Object.keys(e).reduce((r,n)=>Math.max(r,n.length),0);return Object.entries(e).map(([r,n])=>`${r.padEnd(t)} = ${wc(n)}`).join(` +`)}function wc(e){return JSON.parse(JSON.stringify(e,(t,r)=>Array.isArray(r)?`[${r.map(n=>JSON.stringify(n)).join(", ")}]`:JSON.stringify(r)))}var er={};Bt(er,{error:()=>Pc,info:()=>vc,log:()=>xc,query:()=>Tc,should:()=>ys,tags:()=>Xt,warn:()=>xi});var Xt={error:pe("prisma:error"),warn:De("prisma:warn"),info:_e("prisma:info"),query:rt("prisma:query")},ys={warn:()=>!process.env.PRISMA_DISABLE_WARNINGS};function xc(...e){console.log(...e)}function xi(e,...t){ys.warn()&&console.warn(`${Xt.warn} ${e}`,...t)}function vc(e,...t){console.info(`${Xt.info} ${e}`,...t)}function Pc(e,...t){console.error(`${Xt.error} ${e}`,...t)}function Tc(e,...t){console.log(`${Xt.query} ${e}`,...t)}function Yr(e,t){if(!e)throw new Error(`${t}. This should never happen. If you see this error, please, open an issue at https://pris.ly/prisma-prisma-bug-report`)}function Fe(e,t){throw new Error(t)}function Pi(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var Ti=(e,t)=>e.reduce((r,n)=>(r[t(n)]=n,r),{});function ht(e,t){let r={};for(let n of Object.keys(e))r[n]=t(e[n],n);return r}function Ri(e,t){if(e.length===0)return;let r=e[0];for(let n=1;n{vs.has(e)||(vs.add(e),xi(t,...r))};var R=class e extends Error{constructor(t,r,n){super(t),this.name="PrismaClientInitializationError",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};x(R,"PrismaClientInitializationError");var X=class extends Error{constructor(t,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(t),this.name="PrismaClientKnownRequestError",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};x(X,"PrismaClientKnownRequestError");var ue=class extends Error{constructor(t,r){super(t),this.name="PrismaClientRustPanicError",this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};x(ue,"PrismaClientRustPanicError");var j=class extends Error{constructor(t,{clientVersion:r,batchRequestIdx:n}){super(t),this.name="PrismaClientUnknownRequestError",this.clientVersion=r,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};x(j,"PrismaClientUnknownRequestError");var ee=class extends Error{constructor(r,{clientVersion:n}){super(r);this.name="PrismaClientValidationError";this.clientVersion=n}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};x(ee,"PrismaClientValidationError");var yt=9e15,Ye=1e9,Ci="0123456789abcdef",en="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",tn="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Si={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-yt,maxE:yt,crypto:!1},Cs,Me,w=!0,nn="[DecimalError] ",Ke=nn+"Invalid argument: ",Ss=nn+"Precision limit exceeded",As=nn+"crypto unavailable",Is="[object Decimal]",te=Math.floor,Q=Math.pow,Cc=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Sc=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,Ac=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Os=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,he=1e7,E=7,Ic=9007199254740991,Oc=en.length-1,Ai=tn.length-1,m={toStringTag:Is};m.absoluteValue=m.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),y(e)};m.ceil=function(){return y(new this.constructor(this),this.e+1,2)};m.clampedTo=m.clamp=function(e,t){var r,n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error(Ke+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new i(n)};m.comparedTo=m.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,u=e.s;if(!s||!a)return!l||!u?NaN:l!==u?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-u:0;if(l!==u)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,t=0,r=na[t]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};m.cosine=m.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+E,n.rounding=1,r=kc(n,Ls(n,r)),n.precision=e,n.rounding=t,y(Me==2||Me==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};m.cubeRoot=m.cbrt=function(){var e,t,r,n,i,o,s,a,l,u,c=this,p=c.constructor;if(!c.isFinite()||c.isZero())return new p(c);for(w=!1,o=c.s*Q(c.s*c,1/3),!o||Math.abs(o)==1/0?(r=W(c.d),e=c.e,(o=(e-r.length+1)%3)&&(r+=o==1||o==-2?"0":"00"),o=Q(r,1/3),e=te((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?r="5e"+e:(r=o.toExponential(),r=r.slice(0,r.indexOf("e")+1)+e),n=new p(r),n.s=c.s):n=new p(o.toString()),s=(e=p.precision)+3;;)if(a=n,l=a.times(a).times(a),u=l.plus(c),n=F(u.plus(c).times(a),u.plus(l),s+2,1),W(a.d).slice(0,s)===(r=W(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r=="9999"||!i&&r=="4999"){if(!i&&(y(a,e+1,0),a.times(a).times(a).eq(c))){n=a;break}s+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(y(n,e+1,1),t=!n.times(n).times(n).eq(c));break}return w=!0,y(n,e,p.rounding,t)};m.decimalPlaces=m.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-te(this.e/E))*E,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};m.dividedBy=m.div=function(e){return F(this,new this.constructor(e))};m.dividedToIntegerBy=m.divToInt=function(e){var t=this,r=t.constructor;return y(F(t,new r(e),0,1,1),r.precision,r.rounding)};m.equals=m.eq=function(e){return this.cmp(e)===0};m.floor=function(){return y(new this.constructor(this),this.e+1,3)};m.greaterThan=m.gt=function(e){return this.cmp(e)>0};m.greaterThanOrEqualTo=m.gte=function(e){var t=this.cmp(e);return t==1||t===0};m.hyperbolicCosine=m.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/sn(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=Et(s,1,o.times(t),new s(1),!0);for(var l,u=e,c=new s(8);u--;)l=o.times(o),o=a.minus(l.times(c.minus(l.times(c))));return y(o,s.precision=r,s.rounding=n,!0)};m.hyperbolicSine=m.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=Et(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/sn(5,e)),i=Et(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(u))))}return o.precision=t,o.rounding=r,y(i,t,r,!0)};m.hyperbolicTangent=m.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,F(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};m.inverseCosine=m.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),i=r.precision,o=r.rounding;return n!==-1?n===0?t.isNeg()?ge(r,i,o):new r(0):new r(NaN):t.isZero()?ge(r,i+4,o).times(.5):(r.precision=i+6,r.rounding=1,t=t.asin(),e=ge(r,i+4,o).times(.5),r.precision=i,r.rounding=o,e.minus(t))};m.inverseHyperbolicCosine=m.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,w=!1,r=r.times(r).minus(1).sqrt().plus(r),w=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};m.inverseHyperbolicSine=m.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,w=!1,r=r.times(r).plus(1).sqrt().plus(r),w=!0,n.precision=e,n.rounding=t,r.ln())};m.inverseHyperbolicTangent=m.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?y(new o(i),e,t,!0):(o.precision=r=n-i.e,i=F(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};m.inverseSine=m.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,t!==-1?t===0?(e=ge(o,r+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))};m.inverseTangent=m.atan=function(){var e,t,r,n,i,o,s,a,l,u=this,c=u.constructor,p=c.precision,d=c.rounding;if(u.isFinite()){if(u.isZero())return new c(u);if(u.abs().eq(1)&&p+4<=Ai)return s=ge(c,p+4,d).times(.25),s.s=u.s,s}else{if(!u.s)return new c(NaN);if(p+4<=Ai)return s=ge(c,p+4,d).times(.5),s.s=u.s,s}for(c.precision=a=p+10,c.rounding=1,r=Math.min(28,a/E+2|0),e=r;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(w=!1,t=Math.ceil(a/E),n=1,l=u.times(u),s=new c(u),i=u;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<this.d.length-2};m.isNaN=function(){return!this.s};m.isNegative=m.isNeg=function(){return this.s<0};m.isPositive=m.isPos=function(){return this.s>0};m.isZero=function(){return!!this.d&&this.d[0]===0};m.lessThan=m.lt=function(e){return this.cmp(e)<0};m.lessThanOrEqualTo=m.lte=function(e){return this.cmp(e)<1};m.logarithm=m.log=function(e){var t,r,n,i,o,s,a,l,u=this,c=u.constructor,p=c.precision,d=c.rounding,f=5;if(e==null)e=new c(10),t=!0;else{if(e=new c(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new c(NaN);t=e.eq(10)}if(r=u.d,u.s<0||!r||!r[0]||u.eq(1))return new c(r&&!r[0]?-1/0:u.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10===0;)i/=10;o=i!==1}if(w=!1,a=p+f,s=We(u,a),n=t?rn(c,a+10):We(e,a),l=F(s,n,a,1),rr(l.d,i=p,d))do if(a+=10,s=We(u,a),n=t?rn(c,a+10):We(e,a),l=F(s,n,a,1),!o){+W(l.d).slice(i+1,i+15)+1==1e14&&(l=y(l,p+1,0));break}while(rr(l.d,i+=10,d));return w=!0,y(l,p,d)};m.minus=m.sub=function(e){var t,r,n,i,o,s,a,l,u,c,p,d,f=this,g=f.constructor;if(e=new g(e),!f.d||!e.d)return!f.s||!e.s?e=new g(NaN):f.d?e.s=-e.s:e=new g(e.d||f.s!==e.s?f:NaN),e;if(f.s!=e.s)return e.s=-e.s,f.plus(e);if(u=f.d,d=e.d,a=g.precision,l=g.rounding,!u[0]||!d[0]){if(d[0])e.s=-e.s;else if(u[0])e=new g(f);else return new g(l===3?-0:0);return w?y(e,a,l):e}if(r=te(e.e/E),c=te(f.e/E),u=u.slice(),o=c-r,o){for(p=o<0,p?(t=u,o=-o,s=d.length):(t=d,r=c,s=u.length),n=Math.max(Math.ceil(a/E),s)+2,o>n&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for(n=u.length,s=d.length,p=n0;--n)u[s++]=0;for(n=d.length;n>o;){if(u[--n]s?o+1:s+1,i>s&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for(s=u.length,i=c.length,s-i<0&&(i=s,r=c,c=u,u=r),t=0;i;)t=(u[--i]=u[i]+c[i]+t)/he|0,u[i]%=he;for(t&&(u.unshift(t),++n),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=on(u,n),w?y(e,a,l):e};m.precision=m.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Ke+e);return r.d?(t=ks(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};m.round=function(){var e=this,t=e.constructor;return y(new t(e),e.e+1,t.rounding)};m.sine=m.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+E,n.rounding=1,r=_c(n,Ls(n,r)),n.precision=e,n.rounding=t,y(Me>2?r.neg():r,e,t,!0)):new n(NaN)};m.squareRoot=m.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,l=s.e,u=s.s,c=s.constructor;if(u!==1||!a||!a[0])return new c(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(w=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=W(a),(t.length+l)%2==0&&(t+="0"),u=Math.sqrt(t),l=te((l+1)/2)-(l<0||l%2),u==1/0?t="5e"+l:(t=u.toExponential(),t=t.slice(0,t.indexOf("e")+1)+l),n=new c(t)):n=new c(u.toString()),r=(l=c.precision)+3;;)if(o=n,n=o.plus(F(s,o,r+2,1)).times(.5),W(o.d).slice(0,r)===(t=W(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t=="9999"||!i&&t=="4999"){if(!i&&(y(o,l+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(y(n,l+1,1),e=!n.times(n).eq(s));break}return w=!0,y(n,l,c.rounding,e)};m.tangent=m.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=F(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,y(Me==2||Me==4?r.neg():r,e,t,!0)):new n(NaN)};m.times=m.mul=function(e){var t,r,n,i,o,s,a,l,u,c=this,p=c.constructor,d=c.d,f=(e=new p(e)).d;if(e.s*=c.s,!d||!d[0]||!f||!f[0])return new p(!e.s||d&&!d[0]&&!f||f&&!f[0]&&!d?NaN:!d||!f?e.s/0:e.s*0);for(r=te(c.e/E)+te(e.e/E),l=d.length,u=f.length,l=0;){for(t=0,i=l+n;i>n;)a=o[i]+f[n]*d[i-n-1]+t,o[i--]=a%he|0,t=a/he|0;o[i]=(o[i]+t)%he|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=on(o,r),w?y(e,p.precision,p.rounding):e};m.toBinary=function(e,t){return ki(this,2,e,t)};m.toDecimalPlaces=m.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(oe(e,0,Ye),t===void 0?t=n.rounding:oe(t,0,8),y(r,e+r.e+1,t))};m.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=xe(n,!0):(oe(e,0,Ye),t===void 0?t=i.rounding:oe(t,0,8),n=y(new i(n),e+1,t),r=xe(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r};m.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?r=xe(i):(oe(e,0,Ye),t===void 0?t=o.rounding:oe(t,0,8),n=y(new o(i),e+i.e+1,t),r=xe(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r};m.toFraction=function(e){var t,r,n,i,o,s,a,l,u,c,p,d,f=this,g=f.d,h=f.constructor;if(!g)return new h(f);if(u=r=new h(1),n=l=new h(0),t=new h(n),o=t.e=ks(g)-f.e-1,s=o%E,t.d[0]=Q(10,s<0?E+s:s),e==null)e=o>0?t:u;else{if(a=new h(e),!a.isInt()||a.lt(u))throw Error(Ke+a);e=a.gt(t)?o>0?t:u:a}for(w=!1,a=new h(W(g)),c=h.precision,h.precision=o=g.length*E*2;p=F(a,t,0,1,1),i=r.plus(p.times(n)),i.cmp(e)!=1;)r=n,n=i,i=u,u=l.plus(p.times(i)),l=i,i=t,t=a.minus(p.times(i)),a=i;return i=F(e.minus(r),n,0,1,1),l=l.plus(i.times(u)),r=r.plus(i.times(n)),l.s=u.s=f.s,d=F(u,n,o,1).minus(f).abs().cmp(F(l,r,o,1).minus(f).abs())<1?[u,n]:[l,r],h.precision=c,w=!0,d};m.toHexadecimal=m.toHex=function(e,t){return ki(this,16,e,t)};m.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:oe(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(w=!1,r=F(r,e,0,t,1).times(e),w=!0,y(r)):(e.s=r.s,r=e),r};m.toNumber=function(){return+this};m.toOctal=function(e,t){return ki(this,8,e,t)};m.toPower=m.pow=function(e){var t,r,n,i,o,s,a=this,l=a.constructor,u=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(Q(+a,u));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return y(a,n,o);if(t=te(e.e/E),t>=e.d.length-1&&(r=u<0?-u:u)<=Ic)return i=Ds(l,a,r,n),e.s<0?new l(1).div(i):y(i,n,o);if(s=a.s,s<0){if(tl.maxE+1||t0?s/0:0):(w=!1,l.rounding=a.s=1,r=Math.min(12,(t+"").length),i=Ii(e.times(We(a,n+r)),n),i.d&&(i=y(i,n+5,1),rr(i.d,n,o)&&(t=n+10,i=y(Ii(e.times(We(a,t+r)),t),t+5,1),+W(i.d).slice(n+1,n+15)+1==1e14&&(i=y(i,n+1,0)))),i.s=s,w=!0,l.rounding=o,y(i,n,o))};m.toPrecision=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=xe(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(oe(e,1,Ye),t===void 0?t=i.rounding:oe(t,0,8),n=y(new i(n),e,t),r=xe(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r};m.toSignificantDigits=m.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(oe(e,1,Ye),t===void 0?t=n.rounding:oe(t,0,8)),y(new n(r),e,t)};m.toString=function(){var e=this,t=e.constructor,r=xe(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r};m.truncated=m.trunc=function(){return y(new this.constructor(this),this.e+1,1)};m.valueOf=m.toJSON=function(){var e=this,t=e.constructor,r=xe(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};function W(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;tr)throw Error(Ke+e)}function rr(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=E,i=0):(i=Math.ceil((t+1)/E),t%=E),o=Q(10,E-t),a=e[i]%o|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==Q(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==Q(10,t-3)-1,s}function Xr(e,t,r){for(var n,i=[0],o,s=0,a=e.length;sr-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}function kc(e,t){var r,n,i;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),i=(1/sn(4,r)).toString()):(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=Et(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var F=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function t(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;ai[a]?1:-1;break}return l}function r(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]1;)n.shift()}return function(n,i,o,s,a,l){var u,c,p,d,f,g,h,O,T,S,C,b,fe,le,jt,B,ie,Oe,K,pt,Lr=n.constructor,Vn=n.s==i.s?1:-1,Y=n.d,_=i.d;if(!Y||!Y[0]||!_||!_[0])return new Lr(!n.s||!i.s||(Y?_&&Y[0]==_[0]:!_)?NaN:Y&&Y[0]==0||!_?Vn*0:Vn/0);for(l?(f=1,c=n.e-i.e):(l=he,f=E,c=te(n.e/f)-te(i.e/f)),K=_.length,ie=Y.length,T=new Lr(Vn),S=T.d=[],p=0;_[p]==(Y[p]||0);p++);if(_[p]>(Y[p]||0)&&c--,o==null?(le=o=Lr.precision,s=Lr.rounding):a?le=o+(n.e-i.e)+1:le=o,le<0)S.push(1),g=!0;else{if(le=le/f+2|0,p=0,K==1){for(d=0,_=_[0],le++;(p1&&(_=e(_,d,l),Y=e(Y,d,l),K=_.length,ie=Y.length),B=K,C=Y.slice(0,K),b=C.length;b=l/2&&++Oe;do d=0,u=t(_,C,K,b),u<0?(fe=C[0],K!=b&&(fe=fe*l+(C[1]||0)),d=fe/Oe|0,d>1?(d>=l&&(d=l-1),h=e(_,d,l),O=h.length,b=C.length,u=t(h,C,O,b),u==1&&(d--,r(h,K=10;d/=10)p++;T.e=p+c*f-1,y(T,a?o+T.e+1:o,s,g)}return T}}();function y(e,t,r,n){var i,o,s,a,l,u,c,p,d,f=e.constructor;e:if(t!=null){if(p=e.d,!p)return e;for(i=1,a=p[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=E,s=t,c=p[d=0],l=c/Q(10,i-s-1)%10|0;else if(d=Math.ceil((o+1)/E),a=p.length,d>=a)if(n){for(;a++<=d;)p.push(0);c=l=0,i=1,o%=E,s=o-E+1}else break e;else{for(c=a=p[d],i=1;a>=10;a/=10)i++;o%=E,s=o-E+i,l=s<0?0:c/Q(10,i-s-1)%10|0}if(n=n||t<0||p[d+1]!==void 0||(s<0?c:c%Q(10,i-s-1)),u=r<4?(l||n)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||n||r==6&&(o>0?s>0?c/Q(10,i-s):0:p[d-1])%10&1||r==(e.s<0?8:7)),t<1||!p[0])return p.length=0,u?(t-=e.e+1,p[0]=Q(10,(E-t%E)%E),e.e=-t||0):p[0]=e.e=0,e;if(o==0?(p.length=d,a=1,d--):(p.length=d+1,a=Q(10,E-o),p[d]=s>0?(c/Q(10,i-s)%Q(10,s)|0)*a:0),u)for(;;)if(d==0){for(o=1,s=p[0];s>=10;s/=10)o++;for(s=p[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,p[0]==he&&(p[0]=1));break}else{if(p[d]+=a,p[d]!=he)break;p[d--]=0,a=1}for(o=p.length;p[--o]===0;)p.pop()}return w&&(e.e>f.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+He(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+He(-i-1)+o,r&&(n=r-s)>0&&(o+=He(n))):i>=s?(o+=He(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+He(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=He(n))),o}function on(e,t){var r=e[0];for(t*=E;r>=10;r/=10)t++;return t}function rn(e,t,r){if(t>Oc)throw w=!0,r&&(e.precision=r),Error(Ss);return y(new e(en),t,1,!0)}function ge(e,t,r){if(t>Ai)throw Error(Ss);return y(new e(tn),t,r,!0)}function ks(e){var t=e.length-1,r=t*E+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function He(e){for(var t="";e--;)t+="0";return t}function Ds(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/E+4);for(w=!1;;){if(r%2&&(o=o.times(t),Ts(o.d,s)&&(i=!0)),r=te(r/2),r===0){r=o.d.length-1,i&&o.d[r]===0&&++o.d[r];break}t=t.times(t),Ts(t.d,s)}return w=!0,o}function Ps(e){return e.d[e.d.length-1]&1}function _s(e,t,r){for(var n,i=new e(t[0]),o=0;++o17)return new d(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(w=!1,l=g):l=t,a=new d(.03125);e.e>-2;)e=e.times(a),p+=5;for(n=Math.log(Q(2,p))/Math.LN10*2+5|0,l+=n,r=o=s=new d(1),d.precision=l;;){if(o=y(o.times(e),l,1),r=r.times(++c),a=s.plus(F(o,r,l,1)),W(a.d).slice(0,l)===W(s.d).slice(0,l)){for(i=p;i--;)s=y(s.times(s),l,1);if(t==null)if(u<3&&rr(s.d,l-n,f,u))d.precision=l+=10,r=o=a=new d(1),c=0,u++;else return y(s,d.precision=g,f,w=!0);else return d.precision=g,s}s=a}}function We(e,t){var r,n,i,o,s,a,l,u,c,p,d,f=1,g=10,h=e,O=h.d,T=h.constructor,S=T.rounding,C=T.precision;if(h.s<0||!O||!O[0]||!h.e&&O[0]==1&&O.length==1)return new T(O&&!O[0]?-1/0:h.s!=1?NaN:O?0:h);if(t==null?(w=!1,c=C):c=t,T.precision=c+=g,r=W(O),n=r.charAt(0),Math.abs(o=h.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)h=h.times(e),r=W(h.d),n=r.charAt(0),f++;o=h.e,n>1?(h=new T("0."+r),o++):h=new T(n+"."+r.slice(1))}else return u=rn(T,c+2,C).times(o+""),h=We(new T(n+"."+r.slice(1)),c-g).plus(u),T.precision=C,t==null?y(h,C,S,w=!0):h;for(p=h,l=s=h=F(h.minus(1),h.plus(1),c,1),d=y(h.times(h),c,1),i=3;;){if(s=y(s.times(d),c,1),u=l.plus(F(s,new T(i),c,1)),W(u.d).slice(0,c)===W(l.d).slice(0,c))if(l=l.times(2),o!==0&&(l=l.plus(rn(T,c+2,C).times(o+""))),l=F(l,new T(f),c,1),t==null)if(rr(l.d,c-g,S,a))T.precision=c+=g,u=s=h=F(p.minus(1),p.plus(1),c,1),d=y(h.times(h),c,1),i=a=1;else return y(l,T.precision=C,S,w=!0);else return T.precision=C,l;l=u,i+=2}}function Ns(e){return String(e.s*e.s/0)}function Oi(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(n,i),t){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%E,r<0&&(n+=E),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),Os.test(t))return Oi(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Sc.test(t))r=16,t=t.toLowerCase();else if(Cc.test(t))r=2;else if(Ac.test(t))r=8;else throw Error(Ke+t);for(o=t.search(/p/i),o>0?(l=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,n=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=Ds(n,new n(r),o,o*2)),u=Xr(t,r,he),c=u.length-1,o=c;u[o]===0;--o)u.pop();return o<0?new n(e.s*0):(e.e=on(u,c),e.d=u,w=!1,s&&(e=F(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?Q(2,l):it.pow(2,l))),w=!0,e)}function _c(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:Et(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/sn(5,r)),t=Et(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function Et(e,t,r,n,i){var o,s,a,l,u=1,c=e.precision,p=Math.ceil(c/E);for(w=!1,l=r.times(r),a=new e(n);;){if(s=F(a.times(l),new e(t++*t++),c,1),a=i?n.plus(s):n.minus(s),n=F(s.times(l),new e(t++*t++),c,1),s=a.plus(n),s.d[p]!==void 0){for(o=p;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,u++}return w=!0,s.d.length=p+1,s}function sn(e,t){for(var r=e;--t;)r*=e;return r}function Ls(e,t){var r,n=t.s<0,i=ge(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return Me=n?4:1,t;if(r=t.divToInt(i),r.isZero())Me=n?3:2;else{if(t=t.minus(r.times(i)),t.lte(o))return Me=Ps(r)?n?2:3:n?4:1,t;Me=Ps(r)?n?1:4:n?3:2}return t.minus(i).abs()}function ki(e,t,r,n){var i,o,s,a,l,u,c,p,d,f=e.constructor,g=r!==void 0;if(g?(oe(r,1,Ye),n===void 0?n=f.rounding:oe(n,0,8)):(r=f.precision,n=f.rounding),!e.isFinite())c=Ns(e);else{for(c=xe(e),s=c.indexOf("."),g?(i=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):i=t,s>=0&&(c=c.replace(".",""),d=new f(1),d.e=c.length-s,d.d=Xr(xe(d),10,i),d.e=d.d.length),p=Xr(c,10,i),o=l=p.length;p[--l]==0;)p.pop();if(!p[0])c=g?"0p+0":"0";else{if(s<0?o--:(e=new f(e),e.d=p,e.e=o,e=F(e,d,r,n,0,i),p=e.d,o=e.e,u=Cs),s=p[r],a=i/2,u=u||p[r+1]!==void 0,u=n<4?(s!==void 0||u)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||u||n===6&&p[r-1]&1||n===(e.s<0?8:7)),p.length=r,u)for(;++p[--r]>i-1;)p[r]=0,r||(++o,p.unshift(1));for(l=p.length;!p[l-1];--l);for(s=0,c="";s1)if(t==16||t==8){for(s=t==16?4:3,--l;l%s;l++)c+="0";for(p=Xr(c,i,t),l=p.length;!p[l-1];--l);for(s=1,c="1.";sl)for(o-=l;o--;)c+="0";else ot)return e.length=t,!0}function Nc(e){return new this(e).abs()}function Lc(e){return new this(e).acos()}function Fc(e){return new this(e).acosh()}function Mc(e,t){return new this(e).plus(t)}function $c(e){return new this(e).asin()}function qc(e){return new this(e).asinh()}function Vc(e){return new this(e).atan()}function jc(e){return new this(e).atanh()}function Bc(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=ge(this,o,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?ge(this,n,i):new this(0),r.s=e.s):!e.d||t.isZero()?(r=ge(this,o,1).times(.5),r.s=e.s):t.s<0?(this.precision=o,this.rounding=1,r=this.atan(F(e,t,o,1)),t=ge(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(F(e,t,o,1)),r}function Uc(e){return new this(e).cbrt()}function Qc(e){return y(e=new this(e),e.e+1,2)}function Gc(e,t,r){return new this(e).clamp(t,r)}function Jc(e){if(!e||typeof e!="object")throw Error(nn+"Object expected");var t,r,n,i=e.defaults===!0,o=["precision",1,Ye,"rounding",0,8,"toExpNeg",-yt,0,"toExpPos",0,yt,"maxE",0,yt,"minE",-yt,0,"modulo",0,9];for(t=0;t=o[t+1]&&n<=o[t+2])this[r]=n;else throw Error(Ke+r+": "+n);if(r="crypto",i&&(this[r]=Si[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(As);else this[r]=!1;else throw Error(Ke+r+": "+n);return this}function Hc(e){return new this(e).cos()}function Wc(e){return new this(e).cosh()}function Fs(e){var t,r,n;function i(o){var s,a,l,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,Rs(o)){u.s=o.s,w?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e=10;a/=10)s++;w?s>i.maxE?(u.e=NaN,u.d=null):s=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(As);else for(;o=10;i/=10)n++;nH(rt(e)),punctuation:rt,directive:_e,function:_e,variable:e=>H(rt(e)),string:e=>H(Ve(e)),boolean:De,number:_e,comment:Ut};var xp=e=>e,ln={},vp=0,v={manual:ln.Prism&&ln.Prism.manual,disableWorkerMessageHandler:ln.Prism&&ln.Prism.disableWorkerMessageHandler,util:{encode:function(e){if(e instanceof ye){let t=e;return new ye(t.type,v.util.encode(t.content),t.alias)}else return Array.isArray(e)?e.map(v.util.encode):e.replace(/&/g,"&").replace(/e.length)return;if(Oe instanceof ye)continue;if(fe&&B!=t.length-1){S.lastIndex=ie;var p=S.exec(e);if(!p)break;var c=p.index+(b?p[1].length:0),d=p.index+p[0].length,a=B,l=ie;for(let _=t.length;a<_&&(l=l&&(++B,ie=l);if(t[B]instanceof ye)continue;u=a-B,Oe=e.slice(ie,l),p.index-=ie}else{S.lastIndex=0;var p=S.exec(Oe),u=1}if(!p){if(o)break;continue}b&&(le=p[1]?p[1].length:0);var c=p.index+le,p=p[0].slice(le),d=c+p.length,f=Oe.slice(0,c),g=Oe.slice(d);let K=[B,u];f&&(++B,ie+=f.length,K.push(f));let pt=new ye(h,C?v.tokenize(p,C):p,jt,p,fe);if(K.push(pt),g&&K.push(g),Array.prototype.splice.apply(t,K),u!=1&&v.matchGrammar(e,t,r,B,ie,!0,h),o)break}}}},tokenize:function(e,t){let r=[e],n=t.rest;if(n){for(let i in n)t[i]=n[i];delete t.rest}return v.matchGrammar(e,r,t,0,0,!1),r},hooks:{all:{},add:function(e,t){let r=v.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){let r=v.hooks.all[e];if(!(!r||!r.length))for(var n=0,i;i=r[n++];)i(t)}},Token:ye};v.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};v.languages.javascript=v.languages.extend("clike",{"class-name":[v.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/});v.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/;v.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:v.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:v.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:v.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:v.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});v.languages.markup&&v.languages.markup.tag.addInlined("script","javascript");v.languages.js=v.languages.javascript;v.languages.typescript=v.languages.extend("javascript",{keyword:/\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/});v.languages.ts=v.languages.typescript;function ye(e,t,r,n,i){this.type=e,this.content=t,this.alias=r,this.length=(n||"").length|0,this.greedy=!!i}ye.stringify=function(e,t){return typeof e=="string"?e:Array.isArray(e)?e.map(function(r){return ye.stringify(r,t)}).join(""):Pp(e.type)(e.content)};function Pp(e){return Ms[e]||xp}function $s(e){return Tp(e,v.languages.javascript)}function Tp(e,t){return v.tokenize(e,t).map(n=>ye.stringify(n)).join("")}var qs=k(fs());function Vs(e){return(0,qs.default)(e)}var un=class e{static read(t){let r;try{r=js.default.readFileSync(t,"utf-8")}catch{return null}return e.fromContent(r)}static fromContent(t){let r=t.split(/\r?\n/);return new e(1,r)}constructor(t,r){this.firstLineNumber=t,this.lines=r}get lastLineNumber(){return this.firstLineNumber+this.lines.length-1}mapLineAt(t,r){if(tthis.lines.length+this.firstLineNumber)return this;let n=t-this.firstLineNumber,i=[...this.lines];return i[n]=r(i[n]),new e(this.firstLineNumber,i)}mapLines(t){return new e(this.firstLineNumber,this.lines.map((r,n)=>t(r,this.firstLineNumber+n)))}lineAt(t){return this.lines[t-this.firstLineNumber]}prependSymbolAt(t,r){return this.mapLines((n,i)=>i===t?`${r} ${n}`:` ${n}`)}slice(t,r){let n=this.lines.slice(t-1,r).join(` +`);return new e(t,Vs(n).split(` +`))}highlight(){let t=$s(this.toString());return new e(this.firstLineNumber,t.split(` +`))}toString(){return this.lines.join(` +`)}};var Rp={red:pe,gray:Ut,dim:ke,bold:H,underline:Z,highlightSource:e=>e.highlight()},Cp={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function Sp({message:e,originalMethod:t,isPanic:r,callArguments:n}){return{functionName:`prisma.${t}()`,message:e,isPanic:r??!1,callArguments:n}}function Ap({callsite:e,message:t,originalMethod:r,isPanic:n,callArguments:i},o){let s=Sp({message:t,originalMethod:r,isPanic:n,callArguments:i});if(!e||typeof window<"u"||process.env.NODE_ENV==="production")return s;let a=e.getLocation();if(!a||!a.lineNumber||!a.columnNumber)return s;let l=Math.max(1,a.lineNumber-3),u=un.read(a.fileName)?.slice(l,a.lineNumber),c=u?.lineAt(a.lineNumber);if(u&&c){let p=Op(c),d=Ip(c);if(!d)return s;s.functionName=`${d.code})`,s.location=a,n||(u=u.mapLineAt(a.lineNumber,g=>g.slice(0,d.openingBraceIndex))),u=o.highlightSource(u);let f=String(u.lastLineNumber).length;if(s.contextLines=u.mapLines((g,h)=>o.gray(String(h).padStart(f))+" "+g).mapLines(g=>o.dim(g)).prependSymbolAt(a.lineNumber,o.bold(o.red("\u2192"))),i){let g=p+f+1;g+=2,s.callArguments=(0,Bs.default)(i,g).slice(g)}}return s}function Ip(e){let t=Object.keys(zt.ModelAction).join("|"),n=new RegExp(String.raw`\.(${t})\(`).exec(e);if(n){let i=n.index+n[0].length,o=e.lastIndexOf(" ",n.index)+1;return{code:e.slice(o,i),openingBraceIndex:i}}return null}function Op(e){let t=0;for(let r=0;r"Unknown error")}function Hs(e){return e.errors.flatMap(t=>t.kind==="Union"?Hs(t):[t])}function _p(e){let t=new Map,r=[];for(let n of e){if(n.kind!=="InvalidArgumentType"){r.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=t.get(i);o?t.set(i,{...n,argument:{...n.argument,typeNames:Np(o.argument.typeNames,n.argument.typeNames)}}):t.set(i,n)}return r.push(...t.values()),r}function Np(e,t){return[...new Set(e.concat(t))]}function Lp(e){return Ri(e,(t,r)=>{let n=Qs(t),i=Qs(r);return n!==i?n-i:Gs(t)-Gs(r)})}function Qs(e){let t=0;return Array.isArray(e.selectionPath)&&(t+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(t+=e.argumentPath.length),t}function Gs(e){switch(e.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}var ce=class{constructor(t,r){this.name=t;this.value=r;this.isRequired=!1}makeRequired(){return this.isRequired=!0,this}write(t){let{colors:{green:r}}=t.context;t.addMarginSymbol(r(this.isRequired?"+":"?")),t.write(r(this.name)),this.isRequired||t.write(r("?")),t.write(r(": ")),typeof this.value=="string"?t.write(r(this.value)):t.write(this.value)}};var Pt=class{constructor(t=0,r){this.context=r;this.lines=[];this.currentLine="";this.currentIndent=0;this.currentIndent=t}write(t){return typeof t=="string"?this.currentLine+=t:t.write(this),this}writeJoined(t,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(t){return this.marginSymbol=t,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let t=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+t.slice(1):t}};var dn=class{constructor(t){this.value=t}write(t){t.write(this.value)}markAsError(){this.value.markAsError()}};var mn=e=>e,fn={bold:mn,red:mn,green:mn,dim:mn,enabled:!1},Ws={bold:H,red:pe,green:Ve,dim:ke,enabled:!0},Tt={write(e){e.writeLine(",")}};var Pe=class{constructor(t){this.contents=t;this.isUnderlined=!1;this.color=t=>t}underline(){return this.isUnderlined=!0,this}setColor(t){return this.color=t,this}write(t){let r=t.getCurrentLineLength();t.write(this.color(this.contents)),this.isUnderlined&&t.afterNextNewline(()=>{t.write(" ".repeat(r)).writeLine(this.color("~".repeat(this.contents.length)))})}};var ze=class{constructor(){this.hasError=!1}markAsError(){return this.hasError=!0,this}};var Rt=class extends ze{constructor(){super(...arguments);this.items=[]}addItem(r){return this.items.push(new dn(r)),this}getField(r){return this.items[r]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(n=>n.value.getPrintWidth()))+2}write(r){if(this.items.length===0){this.writeEmpty(r);return}this.writeWithItems(r)}writeEmpty(r){let n=new Pe("[]");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithItems(r){let{colors:n}=r.context;r.writeLine("[").withIndent(()=>r.writeJoined(Tt,this.items).newLine()).write("]"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(n.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var Ct=class e extends ze{constructor(){super(...arguments);this.fields={};this.suggestions=[]}addField(r){this.fields[r.name]=r}addSuggestion(r){this.suggestions.push(r)}getField(r){return this.fields[r]}getDeepField(r){let[n,...i]=r,o=this.getField(n);if(!o)return;let s=o;for(let a of i){let l;if(s.value instanceof e?l=s.value.getField(a):s.value instanceof Rt&&(l=s.value.getField(Number(a))),!l)return;s=l}return s}getDeepFieldValue(r){return r.length===0?this:this.getDeepField(r)?.value}hasField(r){return!!this.getField(r)}removeAllFields(){this.fields={}}removeField(r){delete this.fields[r]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(r){return this.getField(r)?.value}getDeepSubSelectionValue(r){let n=this;for(let i of r){if(!(n instanceof e))return;let o=n.getSubSelectionValue(i);if(!o)return;n=o}return n}getDeepSelectionParent(r){let n=this.getSelectionParent();if(!n)return;let i=n;for(let o of r){let s=i.value.getFieldValue(o);if(!s||!(s instanceof e))return;let a=s.getSelectionParent();if(!a)return;i=a}return i}getSelectionParent(){let r=this.getField("select")?.value.asObject();if(r)return{kind:"select",value:r};let n=this.getField("include")?.value.asObject();if(n)return{kind:"include",value:n}}getSubSelectionValue(r){return this.getSelectionParent()?.value.fields[r].value}getPrintWidth(){let r=Object.values(this.fields);return r.length==0?2:Math.max(...r.map(i=>i.getPrintWidth()))+2}write(r){let n=Object.values(this.fields);if(n.length===0&&this.suggestions.length===0){this.writeEmpty(r);return}this.writeWithContents(r,n)}asObject(){return this}writeEmpty(r){let n=new Pe("{}");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithContents(r,n){r.writeLine("{").withIndent(()=>{r.writeJoined(Tt,[...n,...this.suggestions]).newLine()}),r.write("}"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(r.context.colors.red("~".repeat(this.getPrintWidth())))})}};var J=class extends ze{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new Pe(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};var nr=class{constructor(){this.fields=[]}addField(t,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${t}: ${r}`))).addMarginSymbol(i(o("+")))}}),this}write(t){let{colors:{green:r}}=t.context;t.writeLine(r("{")).withIndent(()=>{t.writeJoined(Tt,this.fields).newLine()}).write(r("}")).addMarginSymbol(r("+"))}};function pn(e,t,r){switch(e.kind){case"MutuallyExclusiveFields":Mp(e,t);break;case"IncludeOnScalar":$p(e,t);break;case"EmptySelection":qp(e,t,r);break;case"UnknownSelectionField":Up(e,t);break;case"InvalidSelectionValue":Qp(e,t);break;case"UnknownArgument":Gp(e,t);break;case"UnknownInputField":Jp(e,t);break;case"RequiredArgumentMissing":Hp(e,t);break;case"InvalidArgumentType":Wp(e,t);break;case"InvalidArgumentValue":Kp(e,t);break;case"ValueTooLarge":Yp(e,t);break;case"SomeFieldsMissing":zp(e,t);break;case"TooManyFieldsGiven":Zp(e,t);break;case"Union":Js(e,t,r);break;default:throw new Error("not implemented: "+e.kind)}}function Mp(e,t){let r=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();r&&(r.getField(e.firstField)?.markAsError(),r.getField(e.secondField)?.markAsError()),t.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function $p(e,t){let[r,n]=ir(e.selectionPath),i=e.outputType,o=t.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new ce(s.name,"true"));t.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${or(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function qp(e,t,r){let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){Vp(e,t,i);return}if(n.hasField("select")){jp(e,t);return}}if(r?.[wt(e.outputType.name)]){Bp(e,t);return}t.addErrorMessage(()=>`Unknown field at "${e.selectionPath.join(".")} selection"`)}function Vp(e,t,r){r.removeAllFields();for(let n of e.outputType.fields)r.addSuggestion(new ce(n.name,"false"));t.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function jp(e,t){let r=e.outputType,n=t.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),Zs(n,r)),t.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(r.name)} must not be empty. ${or(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(r.name)} needs ${o.bold("at least one truthy value")}.`)}function Bp(e,t){let r=new nr;for(let i of e.outputType.fields)i.isRelation||r.addField(i.name,"false");let n=new ce("omit",r).makeRequired();if(e.selectionPath.length===0)t.arguments.addSuggestion(n);else{let[i,o]=ir(e.selectionPath),a=t.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new Ct;l.addSuggestion(n),a.value=l}}t.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function Up(e,t){let r=Xs(e.selectionPath,t);if(r.parentKind!=="unknown"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case"select":Zs(n,e.outputType);break;case"include":Xp(n,e.outputType);break;case"omit":ed(n,e.outputType);break}}t.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${r.fieldName}\``)}`];return r.parentKind!=="unknown"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`),i.push(or(n)),i.join(" ")})}function Qp(e,t){let r=Xs(e.selectionPath,t);r.parentKind!=="unknown"&&r.field.value.markAsError(),t.addErrorMessage(n=>`Invalid value for selection field \`${n.red(r.fieldName)}\`: ${e.underlyingError}`)}function Gp(e,t){let r=e.argumentPath[0],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),td(n,e.arguments)),t.addErrorMessage(i=>Ys(i,r,e.arguments.map(o=>o.name)))}function Jp(e,t){let[r,n]=ir(e.argumentPath),i=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&ea(o,e.inputType)}t.addErrorMessage(o=>Ys(o,n,e.inputType.fields.map(s=>s.name)))}function Ys(e,t,r){let n=[`Unknown argument \`${e.red(t)}\`.`],i=nd(t,r);return i&&n.push(`Did you mean \`${e.green(i)}\`?`),r.length>0&&n.push(or(e)),n.join(" ")}function Hp(e,t){let r;t.addErrorMessage(l=>r?.value instanceof J&&r.value.text==="null"?`Argument \`${l.green(o)}\` must not be ${l.red("null")}.`:`Argument \`${l.green(o)}\` is missing.`);let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=ir(e.argumentPath),s=new nr,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind==="object"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(" | "));a.addSuggestion(new ce(o,s).makeRequired())}else{let l=e.inputTypes.map(zs).join(" | ");a.addSuggestion(new ce(o,l).makeRequired())}}function zs(e){return e.kind==="list"?`${zs(e.elementType)}[]`:e.name}function Wp(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=gn("or",e.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(r)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function Kp(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(r)}\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push("."),e.argument.typeNames.length>0){let s=gn("or",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function Yp(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof J&&(i=s.text)}t.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(r)}\``),s.join(" ")})}function zp(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&ea(i,e.inputType)}t.addErrorMessage(i=>{let o=[`Argument \`${i.bold(r)}\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green("at least one of")} ${gn("or",e.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(or(i)),o.join(" ")})}function Zp(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}t.addErrorMessage(o=>{let s=[`Argument \`${o.bold(r)}\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${gn("and",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push("one."):s.push(`${e.constraints.maxFieldCount}.`),s.join(" ")})}function Zs(e,t){for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ce(r.name,"true"))}function Xp(e,t){for(let r of t.fields)r.isRelation&&!e.hasField(r.name)&&e.addSuggestion(new ce(r.name,"true"))}function ed(e,t){for(let r of t.fields)!e.hasField(r.name)&&!r.isRelation&&e.addSuggestion(new ce(r.name,"true"))}function td(e,t){for(let r of t)e.hasField(r.name)||e.addSuggestion(new ce(r.name,r.typeNames.join(" | ")))}function Xs(e,t){let[r,n]=ir(e),i=t.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:"select",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:"include",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:"omit",field:l,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function ea(e,t){if(t.kind==="object")for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ce(r.name,r.typeNames.join(" | ")))}function ir(e){let t=[...e],r=t.pop();if(!r)throw new Error("unexpected empty path");return[t,r]}function or({green:e,enabled:t}){return"Available options are "+(t?`listed in ${e("green")}`:"marked with ?")+"."}function gn(e,t){if(t.length===1)return t[0];let r=[...t],n=r.pop();return`${r.join(", ")} ${e} ${n}`}var rd=3;function nd(e,t){let r=1/0,n;for(let i of t){let o=(0,Ks.default)(e,i);o>rd||o`}};function St(e){return e instanceof sr}var hn=Symbol(),_i=new WeakMap,$e=class{constructor(t){t===hn?_i.set(this,`Prisma.${this._getName()}`):_i.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return _i.get(this)}},ar=class extends $e{_getNamespace(){return"NullTypes"}},lr=class extends ar{};Ni(lr,"DbNull");var ur=class extends ar{};Ni(ur,"JsonNull");var cr=class extends ar{};Ni(cr,"AnyNull");var yn={classes:{DbNull:lr,JsonNull:ur,AnyNull:cr},instances:{DbNull:new lr(hn),JsonNull:new ur(hn),AnyNull:new cr(hn)}};function Ni(e,t){Object.defineProperty(e,"name",{value:t,configurable:!0})}var ra=": ",En=class{constructor(t,r){this.name=t;this.value=r;this.hasError=!1}markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+ra.length}write(t){let r=new Pe(this.name);this.hasError&&r.underline().setColor(t.context.colors.red),t.write(r).write(ra).write(this.value)}};var Li=class{constructor(t){this.errorMessages=[];this.arguments=t}write(t){t.write(this.arguments)}addErrorMessage(t){this.errorMessages.push(t)}renderAllMessages(t){return this.errorMessages.map(r=>r(t)).join(` +`)}};function At(e){return new Li(na(e))}function na(e){let t=new Ct;for(let[r,n]of Object.entries(e)){let i=new En(r,ia(n));t.addField(i)}return t}function ia(e){if(typeof e=="string")return new J(JSON.stringify(e));if(typeof e=="number"||typeof e=="boolean")return new J(String(e));if(typeof e=="bigint")return new J(`${e}n`);if(e===null)return new J("null");if(e===void 0)return new J("undefined");if(vt(e))return new J(`new Prisma.Decimal("${e.toFixed()}")`);if(e instanceof Uint8Array)return Buffer.isBuffer(e)?new J(`Buffer.alloc(${e.byteLength})`):new J(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let t=an(e)?e.toISOString():"Invalid Date";return new J(`new Date("${t}")`)}return e instanceof $e?new J(`Prisma.${e._getName()}`):St(e)?new J(`prisma.${ta(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?id(e):typeof e=="object"?na(e):new J(Object.prototype.toString.call(e))}function id(e){let t=new Rt;for(let r of e)t.addItem(ia(r));return t}function bn(e,t){let r=t==="pretty"?Ws:fn,n=e.renderAllMessages(r),i=new Pt(0,{colors:r}).write(e).toString();return{message:n,args:i}}function wn({args:e,errors:t,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=At(e);for(let p of t)pn(p,a,s);let{message:l,args:u}=bn(a,r),c=cn({message:l,callsite:n,originalMethod:i,showColors:r==="pretty",callArguments:u});throw new ee(c,{clientVersion:o})}var Te=class{constructor(){this._map=new Map}get(t){return this._map.get(t)?.value}set(t,r){this._map.set(t,{value:r})}getOrCreate(t,r){let n=this._map.get(t);if(n)return n.value;let i=r();return this.set(t,i),i}};function pr(e){let t;return{get(){return t||(t={value:e()}),t.value}}}function Re(e){return e.replace(/^./,t=>t.toLowerCase())}function sa(e,t,r){let n=Re(r);return!t.result||!(t.result.$allModels||t.result[n])?e:od({...e,...oa(t.name,e,t.result.$allModels),...oa(t.name,e,t.result[n])})}function od(e){let t=new Te,r=(n,i)=>t.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>r(o,i)):[n]));return ht(e,n=>({...n,needs:r(n.name,new Set)}))}function oa(e,t,r){return r?ht(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:sd(t,o,i)})):{}}function sd(e,t,r){let n=e?.[t]?.compute;return n?i=>r({...i,[t]:n(i)}):r}function aa(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(e[n.name])for(let i of n.needs)r[i]=!0;return r}function la(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(!e[n.name])for(let i of n.needs)delete r[i];return r}var xn=class{constructor(t,r){this.extension=t;this.previous=r;this.computedFieldsCache=new Te;this.modelExtensionsCache=new Te;this.queryCallbacksCache=new Te;this.clientExtensions=pr(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());this.batchCallbacks=pr(()=>{let t=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?t.concat(r):t})}getAllComputedFields(t){return this.computedFieldsCache.getOrCreate(t,()=>sa(this.previous?.getAllComputedFields(t),this.extension,t))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(t){return this.modelExtensionsCache.getOrCreate(t,()=>{let r=Re(t);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(t):{...this.previous?.getAllModelExtensions(t),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(t,r){return this.queryCallbacksCache.getOrCreate(`${t}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(t,r)??[],i=[],o=this.extension.query;return!o||!(o[t]||o.$allModels||o[r]||o.$allOperations)?n:(o[t]!==void 0&&(o[t][r]!==void 0&&i.push(o[t][r]),o[t].$allOperations!==void 0&&i.push(o[t].$allOperations)),t!=="$none"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},It=class e{constructor(t){this.head=t}static empty(){return new e}static single(t){return new e(new xn(t))}isEmpty(){return this.head===void 0}append(t){return new e(new xn(t,this.head))}getAllComputedFields(t){return this.head?.getAllComputedFields(t)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(t){return this.head?.getAllModelExtensions(t)}getAllQueryCallbacks(t,r){return this.head?.getAllQueryCallbacks(t,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};var ua=Symbol(),dr=class{constructor(t){if(t!==ua)throw new Error("Skip instance can not be constructed directly")}ifUndefined(t){return t===void 0?vn:t}},vn=new dr(ua);function Ce(e){return e instanceof dr}var ad={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},ca="explicitly `undefined` values are not allowed";function Pn({modelName:e,action:t,args:r,runtimeDataModel:n,extensions:i=It.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:c}){let p=new Fi({runtimeDataModel:n,modelName:e,action:t,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:c});return{modelName:e,action:ad[t],query:mr(r,p)}}function mr({select:e,include:t,...r}={},n){let i;return n.isPreviewFeatureOn("omitApi")&&(i=r.omit,delete r.omit),{arguments:da(r,n),selection:ld(e,t,i,n)}}function ld(e,t,r,n){return e?(t?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):r&&n.isPreviewFeatureOn("omitApi")&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),dd(e,n)):ud(n,t,r)}function ud(e,t,r){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),t&&cd(n,t,e),e.isPreviewFeatureOn("omitApi")&&pd(n,r,e),n}function cd(e,t,r){for(let[n,i]of Object.entries(t)){if(Ce(i))continue;let o=r.nestSelection(n);if(Mi(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!=="object"&&r.throwValidationError({kind:"IncludeOnScalar",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){e[n]=mr(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=mr(i,o)}}function pd(e,t,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...t},o=la(i,n);for(let[s,a]of Object.entries(o)){if(Ce(a))continue;Mi(a,r.nestSelection(s));let l=r.findField(s);n?.[s]&&!l||(e[s]=!a)}}function dd(e,t){let r={},n=t.getComputedFields(),i=aa(e,n);for(let[o,s]of Object.entries(i)){if(Ce(s))continue;let a=t.nestSelection(o);Mi(s,a);let l=t.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||Ce(s)){r[o]=!1;continue}if(s===!0){l?.kind==="object"?r[o]=mr({},a):r[o]=!0;continue}r[o]=mr(s,a)}}return r}function pa(e,t){if(e===null)return null;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="bigint")return{$type:"BigInt",value:String(e)};if(xt(e)){if(an(e))return{$type:"DateTime",value:e.toISOString()};t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(St(e))return{$type:"FieldRef",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return md(e,t);if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{$type:"Bytes",value:Buffer.from(r,n,i).toString("base64")}}if(fd(e))return e.values;if(vt(e))return{$type:"Decimal",value:e.toFixed()};if(e instanceof $e){if(e!==yn.instances[e._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:e._getName()}}if(gd(e))return e.toJSON();if(typeof e=="object")return da(e,t);t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function da(e,t){if(e.$type)return{$type:"Raw",value:e};let r={};for(let n in e){let i=e[n],o=t.nestArgument(n);Ce(i)||(i!==void 0?r[n]=pa(i,o):t.isPreviewFeatureOn("strictUndefinedChecks")&&t.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:t.getSelectionPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:ca}))}return r}function md(e,t){let r=[];for(let n=0;n({name:t.name,typeName:"boolean",isRelation:t.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(t){return this.params.previewFeatures.includes(t)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(t){return this.modelOrType?.fields.find(r=>r.name===t)}nestSelection(t){let r=this.findField(t),n=r?.kind==="object"?r.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(t)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[wt(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:Fe(this.params.action,"Unknown action")}}nestArgument(t){return new e({...this.params,argumentPath:this.params.argumentPath.concat(t)})}};var Ot=class{constructor(t){this._engine=t}prometheus(t){return this._engine.metrics({format:"prometheus",...t})}json(t){return this._engine.metrics({format:"json",...t})}};function ma(e){return{models:$i(e.models),enums:$i(e.enums),types:$i(e.types)}}function $i(e){let t={};for(let{name:r,...n}of e)t[r]=n;return t}function fa(e,t){let r=pr(()=>hd(t));Object.defineProperty(e,"dmmf",{get:()=>r.get()})}function hd(e){return{datamodel:{models:qi(e.models),enums:qi(e.enums),types:qi(e.types)}}}function qi(e){return Object.entries(e).map(([t,r])=>({name:t,...r}))}var Vi=new WeakMap,Tn="$$PrismaTypedSql",ji=class{constructor(t,r){Vi.set(this,{sql:t,values:r}),Object.defineProperty(this,Tn,{value:Tn})}get sql(){return Vi.get(this).sql}get values(){return Vi.get(this).values}};function ga(e){return(...t)=>new ji(e,t)}function ha(e){return e!=null&&e[Tn]===Tn}function fr(e){return{ok:!1,error:e,map(){return fr(e)},flatMap(){return fr(e)}}}var Bi=class{constructor(){this.registeredErrors=[]}consumeError(t){return this.registeredErrors[t]}registerNewError(t){let r=0;for(;this.registeredErrors[r]!==void 0;)r++;return this.registeredErrors[r]={error:t},r}},Ui=e=>{let t=new Bi,r=Se(t,e.transactionContext.bind(e)),n={adapterName:e.adapterName,errorRegistry:t,queryRaw:Se(t,e.queryRaw.bind(e)),executeRaw:Se(t,e.executeRaw.bind(e)),provider:e.provider,transactionContext:async(...i)=>(await r(...i)).map(s=>yd(t,s))};return e.getConnectionInfo&&(n.getConnectionInfo=bd(t,e.getConnectionInfo.bind(e))),n},yd=(e,t)=>{let r=Se(e,t.startTransaction.bind(t));return{adapterName:t.adapterName,provider:t.provider,queryRaw:Se(e,t.queryRaw.bind(t)),executeRaw:Se(e,t.executeRaw.bind(t)),startTransaction:async(...n)=>(await r(...n)).map(o=>Ed(e,o))}},Ed=(e,t)=>({adapterName:t.adapterName,provider:t.provider,options:t.options,queryRaw:Se(e,t.queryRaw.bind(t)),executeRaw:Se(e,t.executeRaw.bind(t)),commit:Se(e,t.commit.bind(t)),rollback:Se(e,t.rollback.bind(t))});function Se(e,t){return async(...r)=>{try{return await t(...r)}catch(n){let i=e.registerNewError(n);return fr({kind:"GenericJs",id:i})}}}function bd(e,t){return(...r)=>{try{return t(...r)}catch(n){let i=e.registerNewError(n);return fr({kind:"GenericJs",id:i})}}}var Kl=k(ai());var Yl=require("async_hooks"),zl=require("events"),Zl=k(require("fs")),Nr=k(require("path"));var se=class e{constructor(t,r){if(t.length-1!==r.length)throw t.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${t.length} strings to have ${t.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=t[0];let i=0,o=0;for(;ie.getPropertyValue(r))},getPropertyDescriptor(r){return e.getPropertyDescriptor?.(r)}}}var Rn={enumerable:!0,configurable:!0,writable:!0};function Cn(e){let t=new Set(e);return{getOwnPropertyDescriptor:()=>Rn,has:(r,n)=>t.has(n),set:(r,n,i)=>t.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...t]}}var ba=Symbol.for("nodejs.util.inspect.custom");function Ae(e,t){let r=wd(t),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=wa(Reflect.ownKeys(o),r),a=wa(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=r.get(s);return l?l.getPropertyDescriptor?{...Rn,...l?.getPropertyDescriptor(s)}:Rn:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)}});return i[ba]=function(){let o={...this};return delete o[ba],o},i}function wd(e){let t=new Map;for(let r of e){let n=r.getKeys();for(let i of n)t.set(i,r)}return t}function wa(e,t){return e.filter(r=>t.get(r)?.has?.(r)??!0)}function kt(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}function Dt(e,t){return{batch:e,transaction:t?.kind==="batch"?{isolationLevel:t.options.isolationLevel}:void 0}}function xa(e){if(e===void 0)return"";let t=At(e);return new Pt(0,{colors:fn}).write(t).toString()}var xd="P2037";function _t({error:e,user_facing_error:t},r,n){return t.error_code?new X(vd(t,n),{code:t.error_code,clientVersion:r,meta:t.meta,batchRequestIdx:t.batch_request_idx}):new j(e,{clientVersion:r,batchRequestIdx:t.batch_request_idx})}function vd(e,t){let r=e.message;return(t==="postgresql"||t==="postgres"||t==="mysql")&&e.error_code===xd&&(r+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}var hr="";function va(e){var t=e.split(` +`);return t.reduce(function(r,n){var i=Rd(n)||Sd(n)||Od(n)||Nd(n)||Dd(n);return i&&r.push(i),r},[])}var Pd=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Td=/\((\S*)(?::(\d+))(?::(\d+))\)/;function Rd(e){var t=Pd.exec(e);if(!t)return null;var r=t[2]&&t[2].indexOf("native")===0,n=t[2]&&t[2].indexOf("eval")===0,i=Td.exec(t[2]);return n&&i!=null&&(t[2]=i[1],t[3]=i[2],t[4]=i[3]),{file:r?null:t[2],methodName:t[1]||hr,arguments:r?[t[2]]:[],lineNumber:t[3]?+t[3]:null,column:t[4]?+t[4]:null}}var Cd=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function Sd(e){var t=Cd.exec(e);return t?{file:t[2],methodName:t[1]||hr,arguments:[],lineNumber:+t[3],column:t[4]?+t[4]:null}:null}var Ad=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,Id=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function Od(e){var t=Ad.exec(e);if(!t)return null;var r=t[3]&&t[3].indexOf(" > eval")>-1,n=Id.exec(t[3]);return r&&n!=null&&(t[3]=n[1],t[4]=n[2],t[5]=null),{file:t[3],methodName:t[1]||hr,arguments:t[2]?t[2].split(","):[],lineNumber:t[4]?+t[4]:null,column:t[5]?+t[5]:null}}var kd=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;function Dd(e){var t=kd.exec(e);return t?{file:t[3],methodName:t[1]||hr,arguments:[],lineNumber:+t[4],column:t[5]?+t[5]:null}:null}var _d=/^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;function Nd(e){var t=_d.exec(e);return t?{file:t[2],methodName:t[1]||hr,arguments:[],lineNumber:+t[3],column:t[4]?+t[4]:null}:null}var Ji=class{getLocation(){return null}},Hi=class{constructor(){this._error=new Error}getLocation(){let t=this._error.stack;if(!t)return null;let n=va(t).find(i=>{if(!i.file)return!1;let o=yi(i.file);return o!==""&&!o.includes("@prisma")&&!o.includes("/packages/client/src/runtime/")&&!o.endsWith("/runtime/binary.js")&&!o.endsWith("/runtime/library.js")&&!o.endsWith("/runtime/edge.js")&&!o.endsWith("/runtime/edge-esm.js")&&!o.startsWith("internal/")&&!i.methodName.includes("new ")&&!i.methodName.includes("getCallSite")&&!i.methodName.includes("Proxy.")&&i.methodName.split(".").length<4});return!n||!n.file?null:{fileName:n.file,lineNumber:n.lineNumber,columnNumber:n.column}}};function Ze(e){return e==="minimal"?typeof $EnabledCallSite=="function"&&e!=="minimal"?new $EnabledCallSite:new Ji:new Hi}var Pa={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function Nt(e={}){let t=Fd(e);return Object.entries(t).reduce((n,[i,o])=>(Pa[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function Fd(e={}){return typeof e._count=="boolean"?{...e,_count:{_all:e._count}}:e}function Sn(e={}){return t=>(typeof e._count=="boolean"&&(t._count=t._count._all),t)}function Ta(e,t){let r=Sn(e);return t({action:"aggregate",unpacker:r,argsMapper:Nt})(e)}function Md(e={}){let{select:t,...r}=e;return typeof t=="object"?Nt({...r,_count:t}):Nt({...r,_count:{_all:!0}})}function $d(e={}){return typeof e.select=="object"?t=>Sn(e)(t)._count:t=>Sn(e)(t)._count._all}function Ra(e,t){return t({action:"count",unpacker:$d(e),argsMapper:Md})(e)}function qd(e={}){let t=Nt(e);if(Array.isArray(t.by))for(let r of t.by)typeof r=="string"&&(t.select[r]=!0);else typeof t.by=="string"&&(t.select[t.by]=!0);return t}function Vd(e={}){return t=>(typeof e?._count=="boolean"&&t.forEach(r=>{r._count=r._count._all}),t)}function Ca(e,t){return t({action:"groupBy",unpacker:Vd(e),argsMapper:qd})(e)}function Sa(e,t,r){if(t==="aggregate")return n=>Ta(n,r);if(t==="count")return n=>Ra(n,r);if(t==="groupBy")return n=>Ca(n,r)}function Aa(e,t){let r=t.fields.filter(i=>!i.relationName),n=Ti(r,i=>i.name);return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new sr(e,o,s.type,s.isList,s.kind==="enum")},...Cn(Object.keys(n))})}var Ia=e=>Array.isArray(e)?e:e.split("."),Wi=(e,t)=>Ia(t).reduce((r,n)=>r&&r[n],e),Oa=(e,t,r)=>Ia(t).reduceRight((n,i,o,s)=>Object.assign({},Wi(e,s.slice(0,o)),{[i]:n}),r);function jd(e,t){return e===void 0||t===void 0?[]:[...t,"select",e]}function Bd(e,t,r){return t===void 0?e??{}:Oa(t,r,e||!0)}function Ki(e,t,r,n,i,o){let a=e._runtimeDataModel.models[t].fields.reduce((l,u)=>({...l,[u.name]:u}),{});return l=>{let u=Ze(e._errorFormat),c=jd(n,i),p=Bd(l,o,c),d=r({dataPath:c,callsite:u})(p),f=Ud(e,t);return new Proxy(d,{get(g,h){if(!f.includes(h))return g[h];let T=[a[h].type,r,h],S=[c,p];return Ki(e,...T,...S)},...Cn([...f,...Object.getOwnPropertyNames(d)])})}}function Ud(e,t){return e._runtimeDataModel.models[t].fields.filter(r=>r.kind==="object").map(r=>r.name)}var Qd=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],Gd=["aggregate","count","groupBy"];function Yi(e,t){let r=e._extensions.getAllModelExtensions(t)??{},n=[Jd(e,t),Wd(e,t),gr(r),ne("name",()=>t),ne("$name",()=>t),ne("$parent",()=>e._appliedParent)];return Ae({},n)}function Jd(e,t){let r=Re(t),n=Object.keys(zt.ModelAction).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>l=>{let u=Ze(e._errorFormat);return e._createPrismaPromise(c=>{let p={args:l,dataPath:[],action:o,model:t,clientMethod:`${r}.${i}`,jsModelName:r,transaction:c,callsite:u};return e._request({...p,...a})})};return Qd.includes(o)?Ki(e,t,s):Hd(i)?Sa(e,i,s):s({})}}}function Hd(e){return Gd.includes(e)}function Wd(e,t){return ot(ne("fields",()=>{let r=e._runtimeDataModel.models[t];return Aa(t,r)}))}function ka(e){return e.replace(/^./,t=>t.toUpperCase())}var zi=Symbol();function yr(e){let t=[Kd(e),ne(zi,()=>e),ne("$parent",()=>e._appliedParent)],r=e._extensions.getAllClientExtensions();return r&&t.push(gr(r)),Ae(e,t)}function Kd(e){let t=Object.keys(e._runtimeDataModel.models),r=t.map(Re),n=[...new Set(t.concat(r))];return ot({getKeys(){return n},getPropertyValue(i){let o=ka(i);if(e._runtimeDataModel.models[o]!==void 0)return Yi(e,o);if(e._runtimeDataModel.models[i]!==void 0)return Yi(e,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function Da(e){return e[zi]?e[zi]:e}function _a(e){if(typeof e=="function")return e(this);if(e.client?.__AccelerateEngine){let r=e.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let t=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return yr(t)}function Na({result:e,modelName:t,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(t);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let u=l.needs.filter(c=>n[c]);u.length>0&&a.push(kt(u))}else if(r){if(!r[l.name])continue;let u=l.needs.filter(c=>!r[c]);u.length>0&&a.push(kt(u))}Yd(e,l.needs)&&s.push(zd(l,Ae(e,s)))}return s.length>0||a.length>0?Ae(e,[...s,...a]):e}function Yd(e,t){return t.every(r=>Pi(e,r))}function zd(e,t){return ot(ne(e.name,()=>e.compute(t)))}function An({visitor:e,result:t,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(t)){for(let s=0;sc.name===o);if(!l||l.kind!=="object"||!l.relationName)continue;let u=typeof s=="object"?s:{};t[o]=An({visitor:i,result:t[o],args:u,modelName:l.type,runtimeDataModel:n})}}function Fa({result:e,modelName:t,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!="object"||!i.models[t]?e:An({result:e,args:r??{},modelName:t,runtimeDataModel:i,visitor:(a,l,u)=>{let c=Re(l);return Na({result:a,modelName:c,select:u.select,omit:u.select?void 0:{...o?.[c],...u.omit},extensions:n})}})}function Ma(e){if(e instanceof se)return Zd(e);if(Array.isArray(e)){let r=[e[0]];for(let n=1;n{let o=t.customDataProxyFetch;return"transaction"in t&&i!==void 0&&(t.transaction?.kind==="batch"&&t.transaction.lock.then(),t.transaction=i),n===r.length?e._executeRequest(t):r[n]({model:t.model,operation:t.model?t.action:t.clientMethod,args:Ma(t.args??{}),__internalParams:t,query:(s,a=t)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=Ua(o,l),a.args=s,qa(e,a,r,n+1)}})})}function Va(e,t){let{jsModelName:r,action:n,clientMethod:i}=t,o=r?n:i;if(e._extensions.isEmpty())return e._executeRequest(t);let s=e._extensions.getAllQueryCallbacks(r??"$none",o);return qa(e,t,s)}function ja(e){return t=>{let r={requests:t},n=t[0].extensions.getAllBatchQueryCallbacks();return n.length?Ba(r,n,0,e):e(r)}}function Ba(e,t,r,n){if(r===t.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return t[r]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=Ua(i,l),Ba(a,t,r+1,n)}})}var $a=e=>e;function Ua(e=$a,t=$a){return r=>e(t(r))}var Qa=L("prisma:client"),Ga={Vercel:"vercel","Netlify CI":"netlify"};function Ja({postinstall:e,ciName:t,clientVersion:r}){if(Qa("checkPlatformCaching:postinstall",e),Qa("checkPlatformCaching:ciName",t),e===!0&&t&&t in Ga){let n=`Prisma has detected that this project was built on ${t}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${Ga[t]}-build`;throw console.error(n),new R(n,r)}}function Ha(e,t){return e?e.datasources?e.datasources:e.datasourceUrl?{[t[0]]:{url:e.datasourceUrl}}:{}:{}}var Xd="Cloudflare-Workers",em="node";function Wa(){return typeof Netlify=="object"?"netlify":typeof EdgeRuntime=="string"?"edge-light":globalThis.navigator?.userAgent===Xd?"workerd":globalThis.Deno?"deno":globalThis.__lagon__?"lagon":globalThis.process?.release?.name===em?"node":globalThis.Bun?"bun":globalThis.fastly?"fastly":"unknown"}var tm={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function In(){let e=Wa();return{id:e,prettyName:tm[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}var Xa=k(require("fs")),br=k(require("path"));function On(e){let{runtimeBinaryTarget:t}=e;return`Add "${t}" to \`binaryTargets\` in the "schema.prisma" file and run \`prisma generate\` after saving it: + +${rm(e)}`}function rm(e){let{generator:t,generatorBinaryTargets:r,runtimeBinaryTarget:n}=e,i={fromEnvVar:null,value:n},o=[...r,i];return wi({...t,binaryTargets:o})}function Xe(e){let{runtimeBinaryTarget:t}=e;return`Prisma Client could not locate the Query Engine for runtime "${t}".`}function et(e){let{searchedLocations:t}=e;return`The following locations have been searched: +${[...new Set(t)].map(i=>` ${i}`).join(` +`)}`}function Ka(e){let{runtimeBinaryTarget:t}=e;return`${Xe(e)} + +This happened because \`binaryTargets\` have been pinned, but the actual deployment also required "${t}". +${On(e)} + +${et(e)}`}function kn(e){return`We would appreciate if you could take the time to share some information with us. +Please help us by answering a few questions: https://pris.ly/${e}`}function Dn(e){let{errorStack:t}=e;return t?.match(/\/\.next|\/next@|\/next\//)?` + +We detected that you are using Next.js, learn how to fix this: https://pris.ly/d/engine-not-found-nextjs.`:""}function Ya(e){let{queryEngineName:t}=e;return`${Xe(e)}${Dn(e)} + +This is likely caused by a bundler that has not copied "${t}" next to the resulting bundle. +Ensure that "${t}" has been copied next to the bundle or in "${e.expectedLocation}". + +${kn("engine-not-found-bundler-investigation")} + +${et(e)}`}function za(e){let{runtimeBinaryTarget:t,generatorBinaryTargets:r}=e,n=r.find(i=>i.native);return`${Xe(e)} + +This happened because Prisma Client was generated for "${n?.value??"unknown"}", but the actual deployment required "${t}". +${On(e)} + +${et(e)}`}function Za(e){let{queryEngineName:t}=e;return`${Xe(e)}${Dn(e)} + +This is likely caused by tooling that has not copied "${t}" to the deployment folder. +Ensure that you ran \`prisma generate\` and that "${t}" has been copied to "${e.expectedLocation}". + +${kn("engine-not-found-tooling-investigation")} + +${et(e)}`}var nm=L("prisma:client:engines:resolveEnginePath"),im=()=>new RegExp("runtime[\\\\/]library\\.m?js$");async function el(e,t){let r={binary:process.env.PRISMA_QUERY_ENGINE_BINARY,library:process.env.PRISMA_QUERY_ENGINE_LIBRARY}[e]??t.prismaPath;if(r!==void 0)return r;let{enginePath:n,searchedLocations:i}=await om(e,t);if(nm("enginePath",n),n!==void 0&&e==="binary"&&ci(n),n!==void 0)return t.prismaPath=n;let o=await nt(),s=t.generator?.binaryTargets??[],a=s.some(d=>d.native),l=!s.some(d=>d.value===o),u=__filename.match(im())===null,c={searchedLocations:i,generatorBinaryTargets:s,generator:t.generator,runtimeBinaryTarget:o,queryEngineName:tl(e,o),expectedLocation:br.default.relative(process.cwd(),t.dirname),errorStack:new Error().stack},p;throw a&&l?p=za(c):l?p=Ka(c):u?p=Ya(c):p=Za(c),new R(p,t.clientVersion)}async function om(engineType,config){let binaryTarget=await nt(),searchedLocations=[],dirname=eval("__dirname"),searchLocations=[config.dirname,br.default.resolve(dirname,".."),config.generator?.output?.value??dirname,br.default.resolve(dirname,"../../../.prisma/client"),"/tmp/prisma-engines",config.cwd];__filename.includes("resolveEnginePath")&&searchLocations.push(es());for(let e of searchLocations){let t=tl(engineType,binaryTarget),r=br.default.join(e,t);if(searchedLocations.push(e),Xa.default.existsSync(r))return{enginePath:r,searchedLocations}}return{enginePath:void 0,searchedLocations}}function tl(e,t){return e==="library"?qr(t,"fs"):`query-engine-${t}${t==="windows"?".exe":""}`}var Zi=k(vi());function rl(e){return e?e.replace(/".*"/g,'"X"').replace(/[\s:\[]([+-]?([0-9]*[.])?[0-9]+)/g,t=>`${t[0]}5`):""}function nl(e){return e.split(` +`).map(t=>t.replace(/^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)\s*/,"").replace(/\+\d+\s*ms$/,"")).join(` +`)}var il=k(xs());function ol({title:e,user:t="prisma",repo:r="prisma",template:n="bug_report.yml",body:i}){return(0,il.default)({user:t,repo:r,template:n,title:e,body:i})}function sl({version:e,binaryTarget:t,title:r,description:n,engineVersion:i,database:o,query:s}){let a=Oo(6e3-(s?.length??0)),l=nl((0,Zi.default)(a)),u=n?`# Description +\`\`\` +${n} +\`\`\``:"",c=(0,Zi.default)(`Hi Prisma Team! My Prisma Client just crashed. This is the report: +## Versions + +| Name | Version | +|-----------------|--------------------| +| Node | ${process.version?.padEnd(19)}| +| OS | ${t?.padEnd(19)}| +| Prisma Client | ${e?.padEnd(19)}| +| Query Engine | ${i?.padEnd(19)}| +| Database | ${o?.padEnd(19)}| + +${u} + +## Logs +\`\`\` +${l} +\`\`\` + +## Client Snippet +\`\`\`ts +// PLEASE FILL YOUR CODE SNIPPET HERE +\`\`\` + +## Schema +\`\`\`prisma +// PLEASE ADD YOUR SCHEMA HERE IF POSSIBLE +\`\`\` + +## Prisma Engine Query +\`\`\` +${s?rl(s):""} +\`\`\` +`),p=ol({title:r,body:c});return`${r} + +This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic. + +${Z(p)} + +If you want the Prisma team to look into it, please open the link above \u{1F64F} +To increase the chance of success, please post your schema and a snippet of +how you used Prisma Client in the issue. +`}function Lt({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw new R(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new R("error: Missing URL environment variable, value, or override.",n);return i}var _n=class extends Error{constructor(t,r){super(t),this.clientVersion=r.clientVersion,this.cause=r.cause}get[Symbol.toStringTag](){return this.name}};var ae=class extends _n{constructor(t,r){super(t,r),this.isRetryable=r.isRetryable??!0}};function A(e,t){return{...e,isRetryable:t}}var Ft=class extends ae{constructor(r){super("This request must be retried",A(r,!0));this.name="ForcedRetryError";this.code="P5001"}};x(Ft,"ForcedRetryError");var st=class extends ae{constructor(r,n){super(r,A(n,!1));this.name="InvalidDatasourceError";this.code="P6001"}};x(st,"InvalidDatasourceError");var at=class extends ae{constructor(r,n){super(r,A(n,!1));this.name="NotImplementedYetError";this.code="P5004"}};x(at,"NotImplementedYetError");var q=class extends ae{constructor(t,r){super(t,r),this.response=r.response;let n=this.response.headers.get("prisma-request-id");if(n){let i=`(The request id was: ${n})`;this.message=this.message+" "+i}}};var lt=class extends q{constructor(r){super("Schema needs to be uploaded",A(r,!0));this.name="SchemaMissingError";this.code="P5005"}};x(lt,"SchemaMissingError");var Xi="This request could not be understood by the server",wr=class extends q{constructor(r,n,i){super(n||Xi,A(r,!1));this.name="BadRequestError";this.code="P5000";i&&(this.code=i)}};x(wr,"BadRequestError");var xr=class extends q{constructor(r,n){super("Engine not started: healthcheck timeout",A(r,!0));this.name="HealthcheckTimeoutError";this.code="P5013";this.logs=n}};x(xr,"HealthcheckTimeoutError");var vr=class extends q{constructor(r,n,i){super(n,A(r,!0));this.name="EngineStartupError";this.code="P5014";this.logs=i}};x(vr,"EngineStartupError");var Pr=class extends q{constructor(r){super("Engine version is not supported",A(r,!1));this.name="EngineVersionNotSupportedError";this.code="P5012"}};x(Pr,"EngineVersionNotSupportedError");var eo="Request timed out",Tr=class extends q{constructor(r,n=eo){super(n,A(r,!1));this.name="GatewayTimeoutError";this.code="P5009"}};x(Tr,"GatewayTimeoutError");var sm="Interactive transaction error",Rr=class extends q{constructor(r,n=sm){super(n,A(r,!1));this.name="InteractiveTransactionError";this.code="P5015"}};x(Rr,"InteractiveTransactionError");var am="Request parameters are invalid",Cr=class extends q{constructor(r,n=am){super(n,A(r,!1));this.name="InvalidRequestError";this.code="P5011"}};x(Cr,"InvalidRequestError");var to="Requested resource does not exist",Sr=class extends q{constructor(r,n=to){super(n,A(r,!1));this.name="NotFoundError";this.code="P5003"}};x(Sr,"NotFoundError");var ro="Unknown server error",Mt=class extends q{constructor(r,n,i){super(n||ro,A(r,!0));this.name="ServerError";this.code="P5006";this.logs=i}};x(Mt,"ServerError");var no="Unauthorized, check your connection string",Ar=class extends q{constructor(r,n=no){super(n,A(r,!1));this.name="UnauthorizedError";this.code="P5007"}};x(Ar,"UnauthorizedError");var io="Usage exceeded, retry again later",Ir=class extends q{constructor(r,n=io){super(n,A(r,!0));this.name="UsageExceededError";this.code="P5008"}};x(Ir,"UsageExceededError");async function lm(e){let t;try{t=await e.text()}catch{return{type:"EmptyError"}}try{let r=JSON.parse(t);if(typeof r=="string")switch(r){case"InternalDataProxyError":return{type:"DataProxyError",body:r};default:return{type:"UnknownTextError",body:r}}if(typeof r=="object"&&r!==null){if("is_panic"in r&&"message"in r&&"error_code"in r)return{type:"QueryEngineError",body:r};if("EngineNotStarted"in r||"InteractiveTransactionMisrouted"in r||"InvalidRequestError"in r){let n=Object.values(r)[0].reason;return typeof n=="string"&&!["SchemaMissing","EngineVersionNotSupported"].includes(n)?{type:"UnknownJsonError",body:r}:{type:"DataProxyError",body:r}}}return{type:"UnknownJsonError",body:r}}catch{return t===""?{type:"EmptyError"}:{type:"UnknownTextError",body:t}}}async function Or(e,t){if(e.ok)return;let r={clientVersion:t,response:e},n=await lm(e);if(n.type==="QueryEngineError")throw new X(n.body.message,{code:n.body.error_code,clientVersion:t});if(n.type==="DataProxyError"){if(n.body==="InternalDataProxyError")throw new Mt(r,"Internal Data Proxy error");if("EngineNotStarted"in n.body){if(n.body.EngineNotStarted.reason==="SchemaMissing")return new lt(r);if(n.body.EngineNotStarted.reason==="EngineVersionNotSupported")throw new Pr(r);if("EngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,logs:o}=n.body.EngineNotStarted.reason.EngineStartupError;throw new vr(r,i,o)}if("KnownEngineStartupError"in n.body.EngineNotStarted.reason){let{msg:i,error_code:o}=n.body.EngineNotStarted.reason.KnownEngineStartupError;throw new R(i,t,o)}if("HealthcheckTimeout"in n.body.EngineNotStarted.reason){let{logs:i}=n.body.EngineNotStarted.reason.HealthcheckTimeout;throw new xr(r,i)}}if("InteractiveTransactionMisrouted"in n.body){let i={IDParseError:"Could not parse interactive transaction ID",NoQueryEngineFoundError:"Could not find Query Engine for the specified host and transaction ID",TransactionStartError:"Could not start interactive transaction"};throw new Rr(r,i[n.body.InteractiveTransactionMisrouted.reason])}if("InvalidRequestError"in n.body)throw new Cr(r,n.body.InvalidRequestError.reason)}if(e.status===401||e.status===403)throw new Ar(r,$t(no,n));if(e.status===404)return new Sr(r,$t(to,n));if(e.status===429)throw new Ir(r,$t(io,n));if(e.status===504)throw new Tr(r,$t(eo,n));if(e.status>=500)throw new Mt(r,$t(ro,n));if(e.status>=400)throw new wr(r,$t(Xi,n))}function $t(e,t){return t.type==="EmptyError"?e:`${e}: ${JSON.stringify(t)}`}function al(e){let t=Math.pow(2,e)*50,r=Math.ceil(Math.random()*t)-Math.ceil(t/2),n=t+r;return new Promise(i=>setTimeout(()=>i(n),n))}var qe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function ll(e){let t=new TextEncoder().encode(e),r="",n=t.byteLength,i=n%3,o=n-i,s,a,l,u,c;for(let p=0;p>18,a=(c&258048)>>12,l=(c&4032)>>6,u=c&63,r+=qe[s]+qe[a]+qe[l]+qe[u];return i==1?(c=t[o],s=(c&252)>>2,a=(c&3)<<4,r+=qe[s]+qe[a]+"=="):i==2&&(c=t[o]<<8|t[o+1],s=(c&64512)>>10,a=(c&1008)>>4,l=(c&15)<<2,r+=qe[s]+qe[a]+qe[l]+"="),r}function ul(e){if(!!e.generator?.previewFeatures.some(r=>r.toLowerCase().includes("metrics")))throw new R("The `metrics` preview feature is not yet available with Accelerate.\nPlease remove `metrics` from the `previewFeatures` in your schema.\n\nMore information about Accelerate: https://pris.ly/d/accelerate",e.clientVersion)}function um(e){return e[0]*1e3+e[1]/1e6}function oo(e){return new Date(um(e))}var cl={"@prisma/debug":"workspace:*","@prisma/engines-version":"6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959","@prisma/fetch-engine":"workspace:*","@prisma/get-platform":"workspace:*"};var kr=class extends ae{constructor(r,n){super(`Cannot fetch data from service: +${r}`,A(n,!0));this.name="RequestError";this.code="P5010"}};x(kr,"RequestError");async function ut(e,t,r=n=>n){let{clientVersion:n,...i}=t,o=r(fetch);try{return await o(e,i)}catch(s){let a=s.message??"Unknown error";throw new kr(a,{clientVersion:n,cause:s})}}var pm=/^[1-9][0-9]*\.[0-9]+\.[0-9]+$/,pl=L("prisma:client:dataproxyEngine");async function dm(e,t){let r=cl["@prisma/engines-version"],n=t.clientVersion??"unknown";if(process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION)return process.env.PRISMA_CLIENT_DATA_PROXY_CLIENT_VERSION;if(e.includes("accelerate")&&n!=="0.0.0"&&n!=="in-memory")return n;let[i,o]=n?.split("-")??[];if(o===void 0&&pm.test(i))return i;if(o!==void 0||n==="0.0.0"||n==="in-memory"){if(e.startsWith("localhost")||e.startsWith("127.0.0.1"))return"0.0.0";let[s]=r.split("-")??[],[a,l,u]=s.split("."),c=mm(`<=${a}.${l}.${u}`),p=await ut(c,{clientVersion:n});if(!p.ok)throw new Error(`Failed to fetch stable Prisma version, unpkg.com status ${p.status} ${p.statusText}, response body: ${await p.text()||""}`);let d=await p.text();pl("length of body fetched from unpkg.com",d.length);let f;try{f=JSON.parse(d)}catch(g){throw console.error("JSON.parse error: body fetched from unpkg.com: ",d),g}return f.version}throw new at("Only `major.minor.patch` versions are supported by Accelerate.",{clientVersion:n})}async function dl(e,t){let r=await dm(e,t);return pl("version",r),r}function mm(e){return encodeURI(`https://unpkg.com/prisma@${e}/package.json`)}var ml=3,Nn=L("prisma:client:dataproxyEngine"),so=class{constructor({apiKey:t,tracingHelper:r,logLevel:n,logQueries:i,engineHash:o}){this.apiKey=t,this.tracingHelper=r,this.logLevel=n,this.logQueries=i,this.engineHash=o}build({traceparent:t,interactiveTransaction:r}={}){let n={Authorization:`Bearer ${this.apiKey}`,"Prisma-Engine-Hash":this.engineHash};this.tracingHelper.isEnabled()&&(n.traceparent=t??this.tracingHelper.getTraceParent()),r&&(n["X-transaction-id"]=r.id);let i=this.buildCaptureSettings();return i.length>0&&(n["X-capture-telemetry"]=i.join(", ")),n}buildCaptureSettings(){let t=[];return this.tracingHelper.isEnabled()&&t.push("tracing"),this.logLevel&&t.push(this.logLevel),this.logQueries&&t.push("query"),t}},Dr=class{constructor(t){this.name="DataProxyEngine";ul(t),this.config=t,this.env={...t.env,...typeof process<"u"?process.env:{}},this.inlineSchema=ll(t.inlineSchema),this.inlineDatasources=t.inlineDatasources,this.inlineSchemaHash=t.inlineSchemaHash,this.clientVersion=t.clientVersion,this.engineHash=t.engineVersion,this.logEmitter=t.logEmitter,this.tracingHelper=t.tracingHelper}apiKey(){return this.headerBuilder.apiKey}version(){return this.engineHash}async start(){this.startPromise!==void 0&&await this.startPromise,this.startPromise=(async()=>{let[t,r]=this.extractHostAndApiKey();this.host=t,this.headerBuilder=new so({apiKey:r,tracingHelper:this.tracingHelper,logLevel:this.config.logLevel,logQueries:this.config.logQueries,engineHash:this.engineHash}),this.remoteClientVersion=await dl(t,this.config),Nn("host",this.host)})(),await this.startPromise}async stop(){}propagateResponseExtensions(t){t?.logs?.length&&t.logs.forEach(r=>{switch(r.level){case"debug":case"trace":Nn(r);break;case"error":case"warn":case"info":{this.logEmitter.emit(r.level,{timestamp:oo(r.timestamp),message:r.attributes.message??"",target:r.target});break}case"query":{this.logEmitter.emit("query",{query:r.attributes.query??"",timestamp:oo(r.timestamp),duration:r.attributes.duration_ms??0,params:r.attributes.params??"",target:r.target});break}default:r.level}}),t?.traces?.length&&this.tracingHelper.dispatchEngineSpans(t.traces)}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the remote query engine')}async url(t){return await this.start(),`https://${this.host}/${this.remoteClientVersion}/${this.inlineSchemaHash}/${t}`}async uploadSchema(){let t={name:"schemaUpload",internal:!0};return this.tracingHelper.runInChildSpan(t,async()=>{let r=await ut(await this.url("schema"),{method:"PUT",headers:this.headerBuilder.build(),body:this.inlineSchema,clientVersion:this.clientVersion});r.ok||Nn("schema response status",r.status);let n=await Or(r,this.clientVersion);if(n)throw this.logEmitter.emit("warn",{message:`Error while uploading schema: ${n.message}`,timestamp:new Date,target:""}),n;this.logEmitter.emit("info",{message:`Schema (re)uploaded (hash: ${this.inlineSchemaHash})`,timestamp:new Date,target:""})})}request(t,{traceparent:r,interactiveTransaction:n,customDataProxyFetch:i}){return this.requestInternal({body:t,traceparent:r,interactiveTransaction:n,customDataProxyFetch:i})}async requestBatch(t,{traceparent:r,transaction:n,customDataProxyFetch:i}){let o=n?.kind==="itx"?n.options:void 0,s=Dt(t,n);return(await this.requestInternal({body:s,customDataProxyFetch:i,interactiveTransaction:o,traceparent:r})).map(l=>(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l?this.convertProtocolErrorsToClientError(l.errors):l))}requestInternal({body:t,traceparent:r,customDataProxyFetch:n,interactiveTransaction:i}){return this.withRetry({actionGerund:"querying",callback:async({logHttpCall:o})=>{let s=i?`${i.payload.endpoint}/graphql`:await this.url("graphql");o(s);let a=await ut(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r,interactiveTransaction:i}),body:JSON.stringify(t),clientVersion:this.clientVersion},n);a.ok||Nn("graphql response status",a.status),await this.handleError(await Or(a,this.clientVersion));let l=await a.json();if(l.extensions&&this.propagateResponseExtensions(l.extensions),"errors"in l)throw this.convertProtocolErrorsToClientError(l.errors);return"batchResult"in l?l.batchResult:l}})}async transaction(t,r,n){let i={start:"starting",commit:"committing",rollback:"rolling back"};return this.withRetry({actionGerund:`${i[t]} transaction`,callback:async({logHttpCall:o})=>{if(t==="start"){let s=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel}),a=await this.url("transaction/start");o(a);let l=await ut(a,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),body:s,clientVersion:this.clientVersion});await this.handleError(await Or(l,this.clientVersion));let u=await l.json(),{extensions:c}=u;c&&this.propagateResponseExtensions(c);let p=u.id,d=u["data-proxy"].endpoint;return{id:p,payload:{endpoint:d}}}else{let s=`${n.payload.endpoint}/${t}`;o(s);let a=await ut(s,{method:"POST",headers:this.headerBuilder.build({traceparent:r.traceparent}),clientVersion:this.clientVersion});await this.handleError(await Or(a,this.clientVersion));let l=await a.json(),{extensions:u}=l;u&&this.propagateResponseExtensions(u);return}}})}extractHostAndApiKey(){let t={clientVersion:this.clientVersion},r=Object.keys(this.inlineDatasources)[0],n=Lt({inlineDatasources:this.inlineDatasources,overrideDatasources:this.config.overrideDatasources,clientVersion:this.clientVersion,env:this.env}),i;try{i=new URL(n)}catch{throw new st(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t)}let{protocol:o,host:s,searchParams:a}=i;if(o!=="prisma:"&&o!=="prisma+postgres:")throw new st(`Error validating datasource \`${r}\`: the URL must start with the protocol \`prisma://\``,t);let l=a.get("api_key");if(l===null||l.length<1)throw new st(`Error validating datasource \`${r}\`: the URL must contain a valid API key`,t);return[s,l]}metrics(){throw new at("Metrics are not yet supported for Accelerate",{clientVersion:this.clientVersion})}async withRetry(t){for(let r=0;;r++){let n=i=>{this.logEmitter.emit("info",{message:`Calling ${i} (n=${r})`,timestamp:new Date,target:""})};try{return await t.callback({logHttpCall:n})}catch(i){if(!(i instanceof ae)||!i.isRetryable)throw i;if(r>=ml)throw i instanceof Ft?i.cause:i;this.logEmitter.emit("warn",{message:`Attempt ${r+1}/${ml} failed for ${t.actionGerund}: ${i.message??"(unknown)"}`,timestamp:new Date,target:""});let o=await al(r);this.logEmitter.emit("warn",{message:`Retrying after ${o}ms`,timestamp:new Date,target:""})}}}async handleError(t){if(t instanceof lt)throw await this.uploadSchema(),new Ft({clientVersion:this.clientVersion,cause:t});if(t)throw t}convertProtocolErrorsToClientError(t){return t.length===1?_t(t[0],this.config.clientVersion,this.config.activeProvider):new j(JSON.stringify(t),{clientVersion:this.config.clientVersion})}applyPendingMigrations(){throw new Error("Method not implemented.")}};function fl(e){if(e?.kind==="itx")return e.options.id}var lo=k(require("os")),gl=k(require("path"));var ao=Symbol("PrismaLibraryEngineCache");function fm(){let e=globalThis;return e[ao]===void 0&&(e[ao]={}),e[ao]}function gm(e){let t=fm();if(t[e]!==void 0)return t[e];let r=gl.default.toNamespacedPath(e),n={exports:{}},i=0;return process.platform!=="win32"&&(i=lo.default.constants.dlopen.RTLD_LAZY|lo.default.constants.dlopen.RTLD_DEEPBIND),process.dlopen(n,r,i),t[e]=n.exports,n.exports}var hl={async loadLibrary(e){let t=await Xn(),r=await el("library",e);try{return e.tracingHelper.runInChildSpan({name:"loadLibrary",internal:!0},()=>gm(r))}catch(n){let i=pi({e:n,platformInfo:t,id:r});throw new R(i,e.clientVersion)}}};var uo,yl={async loadLibrary(e){let{clientVersion:t,adapter:r,engineWasm:n}=e;if(r===void 0)throw new R(`The \`adapter\` option for \`PrismaClient\` is required in this context (${In().prettyName})`,t);if(n===void 0)throw new R("WASM engine was unexpectedly `undefined`",t);uo===void 0&&(uo=(async()=>{let o=n.getRuntime(),s=await n.getQueryEngineWasmModule();if(s==null)throw new R("The loaded wasm module was unexpectedly `undefined` or `null` once loaded",t);let a={"./query_engine_bg.js":o},l=new WebAssembly.Instance(s,a);return o.__wbg_set_wasm(l.exports),o.QueryEngine})());let i=await uo;return{debugPanic(){return Promise.reject("{}")},dmmf(){return Promise.resolve("{}")},version(){return{commit:"unknown",version:"unknown"}},QueryEngine:i}}};var hm="P2036",Ie=L("prisma:client:libraryEngine");function ym(e){return e.item_type==="query"&&"query"in e}function Em(e){return"level"in e?e.level==="error"&&e.message==="PANIC":!1}var El=[...Hn,"native"],bm=0xffffffffffffffffn,co=1n;function wm(){let e=co++;return co>bm&&(co=1n),e}var _r=class{constructor(t,r){this.name="LibraryEngine";this.libraryLoader=r??hl,t.engineWasm!==void 0&&(this.libraryLoader=r??yl),this.config=t,this.libraryStarted=!1,this.logQueries=t.logQueries??!1,this.logLevel=t.logLevel??"error",this.logEmitter=t.logEmitter,this.datamodel=t.inlineSchema,this.tracingHelper=t.tracingHelper,t.enableDebugLogs&&(this.logLevel="debug");let n=Object.keys(t.overrideDatasources)[0],i=t.overrideDatasources[n]?.url;n!==void 0&&i!==void 0&&(this.datasourceOverrides={[n]:i}),this.libraryInstantiationPromise=this.instantiateLibrary()}wrapEngine(t){return{applyPendingMigrations:t.applyPendingMigrations?.bind(t),commitTransaction:this.withRequestId(t.commitTransaction.bind(t)),connect:this.withRequestId(t.connect.bind(t)),disconnect:this.withRequestId(t.disconnect.bind(t)),metrics:t.metrics?.bind(t),query:this.withRequestId(t.query.bind(t)),rollbackTransaction:this.withRequestId(t.rollbackTransaction.bind(t)),sdlSchema:t.sdlSchema?.bind(t),startTransaction:this.withRequestId(t.startTransaction.bind(t)),trace:t.trace.bind(t)}}withRequestId(t){return async(...r)=>{let n=wm().toString();try{return await t(...r,n)}finally{if(this.tracingHelper.isEnabled()){let i=await this.engine?.trace(n);if(i){let o=JSON.parse(i);this.tracingHelper.dispatchEngineSpans(o.spans)}}}}}async applyPendingMigrations(){throw new Error("Cannot call this method from this type of engine instance")}async transaction(t,r,n){await this.start();let i=JSON.stringify(r),o;if(t==="start"){let a=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel});o=await this.engine?.startTransaction(a,i)}else t==="commit"?o=await this.engine?.commitTransaction(n.id,i):t==="rollback"&&(o=await this.engine?.rollbackTransaction(n.id,i));let s=this.parseEngineResponse(o);if(xm(s)){let a=this.getExternalAdapterError(s);throw a?a.error:new X(s.message,{code:s.error_code,clientVersion:this.config.clientVersion,meta:s.meta})}return s}async instantiateLibrary(){if(Ie("internalSetup"),this.libraryInstantiationPromise)return this.libraryInstantiationPromise;Jn(),this.binaryTarget=await this.getCurrentBinaryTarget(),await this.tracingHelper.runInChildSpan("load_engine",()=>this.loadEngine()),this.version()}async getCurrentBinaryTarget(){{if(this.binaryTarget)return this.binaryTarget;let t=await this.tracingHelper.runInChildSpan("detect_platform",()=>nt());if(!El.includes(t))throw new R(`Unknown ${pe("PRISMA_QUERY_ENGINE_LIBRARY")} ${pe(H(t))}. Possible binaryTargets: ${Ve(El.join(", "))} or a path to the query engine library. +You may have to run ${Ve("prisma generate")} for your changes to take effect.`,this.config.clientVersion);return t}}parseEngineResponse(t){if(!t)throw new j("Response from the Engine was empty",{clientVersion:this.config.clientVersion});try{return JSON.parse(t)}catch{throw new j("Unable to JSON.parse response from engine",{clientVersion:this.config.clientVersion})}}async loadEngine(){if(!this.engine){this.QueryEngineConstructor||(this.library=await this.libraryLoader.loadLibrary(this.config),this.QueryEngineConstructor=this.library.QueryEngine);try{let t=new WeakRef(this),{adapter:r}=this.config;r&&Ie("Using driver adapter: %O",r),this.engine=this.wrapEngine(new this.QueryEngineConstructor({datamodel:this.datamodel,env:process.env,logQueries:this.config.logQueries??!1,ignoreEnvVarErrors:!0,datasourceOverrides:this.datasourceOverrides??{},logLevel:this.logLevel,configDir:this.config.cwd,engineProtocol:"json",enableTracing:this.tracingHelper.isEnabled()},n=>{t.deref()?.logger(n)},r))}catch(t){let r=t,n=this.parseInitError(r.message);throw typeof n=="string"?r:new R(n.message,this.config.clientVersion,n.error_code)}}}logger(t){let r=this.parseEngineResponse(t);r&&(r.level=r?.level.toLowerCase()??"unknown",ym(r)?this.logEmitter.emit("query",{timestamp:new Date,query:r.query,params:r.params,duration:Number(r.duration_ms),target:r.module_path}):Em(r)?this.loggerRustPanic=new ue(po(this,`${r.message}: ${r.reason} in ${r.file}:${r.line}:${r.column}`),this.config.clientVersion):this.logEmitter.emit(r.level,{timestamp:new Date,message:r.message,target:r.module_path}))}parseInitError(t){try{return JSON.parse(t)}catch{}return t}parseRequestError(t){try{return JSON.parse(t)}catch{}return t}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.')}async start(){if(await this.libraryInstantiationPromise,await this.libraryStoppingPromise,this.libraryStartingPromise)return Ie(`library already starting, this.libraryStarted: ${this.libraryStarted}`),this.libraryStartingPromise;if(this.libraryStarted)return;let t=async()=>{Ie("library starting");try{let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.connect(JSON.stringify(r)),this.libraryStarted=!0,Ie("library started")}catch(r){let n=this.parseInitError(r.message);throw typeof n=="string"?r:new R(n.message,this.config.clientVersion,n.error_code)}finally{this.libraryStartingPromise=void 0}};return this.libraryStartingPromise=this.tracingHelper.runInChildSpan("connect",t),this.libraryStartingPromise}async stop(){if(await this.libraryStartingPromise,await this.executingQueryPromise,this.libraryStoppingPromise)return Ie("library is already stopping"),this.libraryStoppingPromise;if(!this.libraryStarted)return;let t=async()=>{await new Promise(n=>setTimeout(n,5)),Ie("library stopping");let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.disconnect(JSON.stringify(r)),this.libraryStarted=!1,this.libraryStoppingPromise=void 0,Ie("library stopped")};return this.libraryStoppingPromise=this.tracingHelper.runInChildSpan("disconnect",t),this.libraryStoppingPromise}version(){return this.versionInfo=this.library?.version(),this.versionInfo?.version??"unknown"}debugPanic(t){return this.library?.debugPanic(t)}async request(t,{traceparent:r,interactiveTransaction:n}){Ie(`sending request, this.libraryStarted: ${this.libraryStarted}`);let i=JSON.stringify({traceparent:r}),o=JSON.stringify(t);try{await this.start(),this.executingQueryPromise=this.engine?.query(o,i,n?.id),this.lastQuery=o;let s=this.parseEngineResponse(await this.executingQueryPromise);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new j(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});if(this.loggerRustPanic)throw this.loggerRustPanic;return{data:s}}catch(s){if(s instanceof R)throw s;if(s.code==="GenericFailure"&&s.message?.startsWith("PANIC:"))throw new ue(po(this,s.message),this.config.clientVersion);let a=this.parseRequestError(s.message);throw typeof a=="string"?s:new j(`${a.message} +${a.backtrace}`,{clientVersion:this.config.clientVersion})}}async requestBatch(t,{transaction:r,traceparent:n}){Ie("requestBatch");let i=Dt(t,r);await this.start(),this.lastQuery=JSON.stringify(i),this.executingQueryPromise=this.engine.query(this.lastQuery,JSON.stringify({traceparent:n}),fl(r));let o=await this.executingQueryPromise,s=this.parseEngineResponse(o);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new j(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});let{batchResult:a,errors:l}=s;if(Array.isArray(a))return a.map(u=>u.errors&&u.errors.length>0?this.loggerRustPanic??this.buildQueryError(u.errors[0]):{data:u});throw l&&l.length===1?new Error(l[0].error):new Error(JSON.stringify(s))}buildQueryError(t){if(t.user_facing_error.is_panic)return new ue(po(this,t.user_facing_error.message),this.config.clientVersion);let r=this.getExternalAdapterError(t.user_facing_error);return r?r.error:_t(t,this.config.clientVersion,this.config.activeProvider)}getExternalAdapterError(t){if(t.error_code===hm&&this.config.adapter){let r=t.meta?.id;Yr(typeof r=="number","Malformed external JS error received from the engine");let n=this.config.adapter.errorRegistry.consumeError(r);return Yr(n,"External error with reported id was not registered"),n}}async metrics(t){await this.start();let r=await this.engine.metrics(JSON.stringify(t));return t.format==="prometheus"?r:this.parseEngineResponse(r)}};function xm(e){return typeof e=="object"&&e!==null&&e.error_code!==void 0}function po(e,t){return sl({binaryTarget:e.binaryTarget,title:t,version:e.config.clientVersion,engineVersion:e.versionInfo?.commit,database:e.config.activeProvider,query:e.lastQuery})}function bl({copyEngine:e=!0},t){let r;try{r=Lt({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...process.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||r?.startsWith("prisma+postgres://"));e&&n&&tr("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=Yt(t.generator),o=n||!e,s=!!t.adapter,a=i==="library",l=i==="binary";if(o&&s||s&&!1){let u;throw e?r?.startsWith("prisma://")?u=["Prisma Client was configured to use the `adapter` option but the URL was a `prisma://` URL.","Please either use the `prisma://` URL or remove the `adapter` from the Prisma Client constructor."]:u=["Prisma Client was configured to use both the `adapter` and Accelerate, please chose one."]:u=["Prisma Client was configured to use the `adapter` option but `prisma generate` was run with `--no-engine`.","Please run `prisma generate` without `--no-engine` to be able to use Prisma Client with the adapter."],new ee(u.join(` +`),{clientVersion:t.clientVersion})}if(o)return new Dr(t);if(a)return new _r(t);throw new ee("Invalid client engine type, please use `library` or `binary`",{clientVersion:t.clientVersion})}function Ln({generator:e}){return e?.previewFeatures??[]}var wl=e=>({command:e});var xl=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);function qt(e){try{return vl(e,"fast")}catch{return vl(e,"slow")}}function vl(e,t){return JSON.stringify(e.map(r=>Tl(r,t)))}function Tl(e,t){if(Array.isArray(e))return e.map(r=>Tl(r,t));if(typeof e=="bigint")return{prisma__type:"bigint",prisma__value:e.toString()};if(xt(e))return{prisma__type:"date",prisma__value:e.toJSON()};if(ve.isDecimal(e))return{prisma__type:"decimal",prisma__value:e.toJSON()};if(Buffer.isBuffer(e))return{prisma__type:"bytes",prisma__value:e.toString("base64")};if(vm(e))return{prisma__type:"bytes",prisma__value:Buffer.from(e).toString("base64")};if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{prisma__type:"bytes",prisma__value:Buffer.from(r,n,i).toString("base64")}}return typeof e=="object"&&t==="slow"?Rl(e):e}function vm(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function Rl(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(Pl);let t={};for(let r of Object.keys(e))t[r]=Pl(e[r]);return t}function Pl(e){return typeof e=="bigint"?e.toString():Rl(e)}var Pm=["$connect","$disconnect","$on","$transaction","$use","$extends"],Cl=Pm;var Tm=/^(\s*alter\s)/i,Sl=L("prisma:client");function mo(e,t,r,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&r.length>0&&Tm.exec(t))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var fo=({clientMethod:e,activeProvider:t})=>r=>{let n="",i;if(ha(r))n=r.sql,i={values:qt(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:qt(s||[]),__prismaRawParameters__:!0}}else switch(t){case"sqlite":case"mysql":{n=r.sql,i={values:qt(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:qt(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=xl(r),i={values:qt(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?Sl(`prisma.${e}(${n}, ${i.values})`):Sl(`prisma.${e}(${n})`),{query:n,parameters:i}},Al={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new se(t,r)}},Il={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};function go(e){return function(r){let n,i=(o=e)=>{try{return o===void 0||o?.kind==="itx"?n??=Ol(r(o)):Ol(r(o))}catch(s){return Promise.reject(s)}};return{then(o,s){return i().then(o,s)},catch(o){return i().catch(o)},finally(o){return i().finally(o)},requestTransaction(o){let s=i(o);return s.requestTransaction?s.requestTransaction(o):s},[Symbol.toStringTag]:"PrismaPromise"}}}function Ol(e){return typeof e.then=="function"?e:Promise.resolve(e)}var Rm={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(e,t){return t()}},ho=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}dispatchEngineSpans(t){return this.getGlobalTracingHelper().dispatchEngineSpans(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){return globalThis.PRISMA_INSTRUMENTATION?.helper??Rm}};function kl(){return new ho}function Dl(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}function _l(e){return typeof e=="string"?e:e.reduce((t,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?t:t&&(r==="info"||t==="info")?"info":n},void 0)}var Fn=class{constructor(){this._middlewares=[]}use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};var Fl=k(vi());function Mn(e){return typeof e.batchRequestIdx=="number"}function Nl(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(yo(e.query.arguments)),t.push(yo(e.query.selection)),t.join("")}function yo(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n=="object"&&n!==null?`(${r} ${yo(n)})`:r}).join(" ")})`}var Cm={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateOne:!0,upsertOne:!0};function Eo(e){return Cm[e]}var $n=class{constructor(t){this.options=t;this.tickActive=!1;this.batches={}}request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,process.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;ict("bigint",r));case"bytes-array":return t.map(r=>ct("bytes",r));case"decimal-array":return t.map(r=>ct("decimal",r));case"datetime-array":return t.map(r=>ct("datetime",r));case"date-array":return t.map(r=>ct("date",r));case"time-array":return t.map(r=>ct("time",r));default:return t}}function Ll(e){let t=[],r=Sm(e);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(p=>p.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),u=n.some(p=>Eo(p.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:Im(o),containsWrite:u,customDataProxyFetch:i})).map((p,d)=>{if(p instanceof Error)return p;try{return this.mapQueryEngineResult(n[d],p)}catch(f){return f}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?Ml(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:Eo(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:Nl(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=this.unpack(i,t,r);return process.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(Am(t),Om(t,i))throw t;if(t instanceof X&&km(t)){let u=$l(t.meta);wn({args:o,errors:[u],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let l=t.message;if(n&&(l=cn({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat==="pretty",message:l})),l=this.sanitizeMessage(l),t.code){let u=s?{modelName:s,...t.meta}:t.meta;throw new X(l,{code:t.code,clientVersion:this.client._clientVersion,meta:u,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new ue(l,this.client._clientVersion);if(t instanceof j)throw new j(l,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof R)throw new R(l,this.client._clientVersion);if(t instanceof ue)throw new ue(l,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,Fl.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(u=>u!=="select"&&u!=="include"),a=Wi(o,s),l=i==="queryRaw"?Ll(a):bt(a);return n?n(l):l}get[Symbol.toStringTag](){return"RequestHandler"}};function Im(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:Ml(e)};Fe(e,"Unknown transaction kind")}}function Ml(e){return{id:e.id,payload:e.payload}}function Om(e,t){return Mn(e)&&t?.kind==="batch"&&e.batchRequestIdx!==t.index}function km(e){return e.code==="P2009"||e.code==="P2012"}function $l(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map($l)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}var ql="6.1.0";var Vl=ql;var Gl=k(Di());var N=class extends Error{constructor(t){super(t+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};x(N,"PrismaClientConstructorValidationError");var jl=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],Bl=["pretty","colorless","minimal"],Ul=["info","query","warn","error"],_m={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new N(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=Vt(r,t)||` Available datasources: ${t.join(", ")}`;throw new N(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new N(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new N(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new N(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(e,t)=>{if(e===null)return;if(e===void 0)throw new N('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!Ln(t).includes("driverAdapters"))throw new N('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(Yt()==="binary")throw new N('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:e=>{if(typeof e<"u"&&typeof e!="string")throw new N(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!="string")throw new N(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`);if(!Bl.includes(e)){let t=Vt(e,Bl);throw new N(`Invalid errorFormat ${e} provided to PrismaClient constructor.${t}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new N(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`);function t(r){if(typeof r=="string"&&!Ul.includes(r)){let n=Vt(r,Ul);throw new N(`Invalid log level "${r}" provided to PrismaClient constructor.${n}`)}}for(let r of e){t(r);let n={level:t,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=Vt(i,o);throw new N(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r=="object")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new N(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let t=e.maxWait;if(t!=null&&t<=0)throw new N(`Invalid value ${t} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=e.timeout;if(r!=null&&r<=0)throw new N(`Invalid value ${r} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,t)=>{if(typeof e!="object")throw new N('"omit" option is expected to be an object.');if(e===null)throw new N('"omit" option can not be `null`');let r=[];for(let[n,i]of Object.entries(e)){let o=Lm(n,t.runtimeDataModel);if(!o){r.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(u=>u.name===s);if(!l){r.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(l.relationName){r.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&r.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(r.length>0)throw new N(Fm(e,r))},__internal:e=>{if(!e)return;let t=["debug","engine","configOverride"];if(typeof e!="object")throw new N(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`);for(let[r]of Object.entries(e))if(!t.includes(r)){let n=Vt(r,t);throw new N(`Invalid property ${JSON.stringify(r)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function Jl(e,t){for(let[r,n]of Object.entries(e)){if(!jl.includes(r)){let i=Vt(r,jl);throw new N(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}_m[r](n,t)}if(e.datasourceUrl&&e.datasources)throw new N('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function Vt(e,t){if(t.length===0||typeof e!="string")return"";let r=Nm(e,t);return r?` Did you mean "${r}"?`:""}function Nm(e,t){if(t.length===0)return null;let r=t.map(i=>({value:i,distance:(0,Gl.default)(e,i)}));r.sort((i,o)=>i.distancewt(n)===t);if(r)return e[r]}function Fm(e,t){let r=At(e);for(let o of t)switch(o.kind){case"UnknownModel":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=bn(r,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}function Hl(e){return e.length===0?Promise.resolve([]):new Promise((t,r)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?r(i):t(n)))},l=u=>{o||(o=!0,r(u))};for(let u=0;u{n[u]=c,a()},c=>{if(!Mn(c)){l(c);return}c.batchRequestIdx===u?l(c):(i||(i=c),a())})})}var tt=L("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var Mm={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},$m=Symbol.for("prisma.client.transaction.id"),qm={id:0,nextId(){return++this.id}};function Xl(e){class t{constructor(n){this._originalClient=this;this._middlewares=new Fn;this._createPrismaPromise=go();this.$extends=_a;e=n?.__internal?.configOverride?.(e)??e,Ja(e),n&&Jl(n,e);let i=new zl.EventEmitter().on("error",()=>{});this._extensions=It.empty(),this._previewFeatures=Ln(e),this._clientVersion=e.clientVersion??Vl,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=kl();let o={rootEnvPath:e.relativeEnvPaths.rootEnvPath&&Nr.default.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&Nr.default.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=Ui(n.adapter);let l=e.activeProvider==="postgresql"?"postgres":e.activeProvider;if(s.provider!==l)throw new R(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${l}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new R("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=!s&&Kt(o,{conflictCheck:"none"})||e.injectableEdgeEnv?.();try{let l=n??{},u=l.__internal??{},c=u.debug===!0;c&&L.enable("prisma:client");let p=Nr.default.resolve(e.dirname,e.relativePath);Zl.default.existsSync(p)||(p=e.dirname),tt("dirname",e.dirname),tt("relativePath",e.relativePath),tt("cwd",p);let d=u.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:process.env.NODE_ENV==="production"?this._errorFormat="minimal":process.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:p,dirname:e.dirname,enableDebugLogs:c,allowTriggerPanic:d.allowTriggerPanic,datamodelPath:Nr.default.join(e.dirname,e.filename??"schema.prisma"),prismaPath:d.binaryPath??void 0,engineEndpoint:d.endpoint,generator:e.generator,showColors:this._errorFormat==="pretty",logLevel:l.log&&_l(l.log),logQueries:l.log&&!!(typeof l.log=="string"?l.log==="query":l.log.find(f=>typeof f=="string"?f==="query":f.level==="query")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:Ha(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:Lt,getBatchRequestPayload:Dt,prismaGraphQLToJSError:_t,PrismaClientUnknownRequestError:j,PrismaClientInitializationError:R,PrismaClientKnownRequestError:X,debug:L("prisma:client:accelerateEngine"),engineVersion:Kl.version,clientVersion:e.clientVersion}},tt("clientVersion",e.clientVersion),this._engine=bl(e,this._engineConfig),this._requestHandler=new qn(this,i),l.log)for(let f of l.log){let g=typeof f=="string"?f:f.emit==="stdout"?f.level:null;g&&this.$on(g,h=>{er.log(`${er.tags[g]??""}`,h.message||h.query)})}this._metrics=new Ot(this._engine)}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=yr(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i)}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{ko()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:fo({clientMethod:i,activeProvider:a}),callsite:Ze(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=Wl(n,i);return mo(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new ee("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(mo(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!=="mongodb")throw new ee(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:wl,callsite:Ze(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:fo({clientMethod:i,activeProvider:a}),callsite:Ze(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...Wl(n,i));throw new ee("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new ee("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=qm.nextId(),s=Dl(n.length),a=n.map((l,u)=>{if(l?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let c=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,p={kind:"batch",id:o,index:u,isolationLevel:c,lock:s};return l.requestTransaction?.(p)??l});return Hl(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),l;try{let u={kind:"itx",...a};l=await n(this._createItxClient(u)),await this._engine.transaction("commit",o,a)}catch(u){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),u}return l}_createItxClient(n){return yr(Ae(Da(this),[ne("_appliedParent",()=>this._appliedParent._createItxClient(n)),ne("_createPrismaPromise",()=>go(n)),ne($m,()=>n.id),kt(Cl)]))}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??Mm,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async u=>{let c=this._middlewares.get(++a);if(c)return this._tracingHelper.runInChildSpan(s.middleware,O=>c(u,T=>(O?.end(),l(T))));let{runInTransaction:p,args:d,...f}=u,g={...n,...f};d&&(g.args=i.middlewareArgsToRequestArgs(d)),n.transaction!==void 0&&p===!1&&delete g.transaction;let h=await Va(this,g);return g.model?Fa({result:h,modelName:g.model,args:g.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):h};return this._tracingHelper.runInChildSpan(s.operation,()=>new Yl.AsyncResource("prisma-client-request").runInAsyncScope(()=>l(o)))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:u,transaction:c,unpacker:p,otelParentCtx:d,customDataProxyFetch:f}){try{n=u?u(n):n;let g={name:"serialize"},h=this._tracingHelper.runInChildSpan(g,()=>Pn({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return L.enabled("prisma:client")&&(tt("Prisma Client call:"),tt(`prisma.${i}(${xa(n)})`),tt("Generated request:"),tt(JSON.stringify(h,null,2)+` +`)),c?.kind==="batch"&&await c.lock,this._requestHandler.request({protocolQuery:h,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:c,unpacker:p,otelParentCtx:d,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:f})}catch(g){throw g.clientVersion=this._clientVersion,g}}get $metrics(){if(!this._hasPreviewFlag("metrics"))throw new ee("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:this._clientVersion});return this._metrics}_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}}return t}function Wl(e,t){return Vm(e)?[new se(e,t),Al]:[e,Il]}function Vm(e){return Array.isArray(e)&&Array.isArray(e.raw)}var jm=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function eu(e){return new Proxy(e,{get(t,r){if(r in t)return t[r];if(!jm.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}function tu(e){Kt(e,{conflictCheck:"warn"})}0&&(module.exports={Debug,Decimal,Extensions,MetricsClient,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,defineDmmfProperty,deserializeJsonResponse,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce}); +/*! Bundled license information: + +decimal.js/decimal.mjs: + (*! + * decimal.js v10.4.3 + * An arbitrary-precision Decimal type for JavaScript. + * https://github.com/MikeMcl/decimal.js + * Copyright (c) 2022 Michael Mclaughlin + * MIT Licence + *) +*/ +//# sourceMappingURL=library.js.map diff --git a/mods/identity/src/generated/@prisma/client/runtime/react-native.js b/mods/identity/src/generated/@prisma/client/runtime/react-native.js new file mode 100644 index 000000000..88683e8a6 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/runtime/react-native.js @@ -0,0 +1,80 @@ +"use strict";var oa=Object.create;var Xt=Object.defineProperty;var sa=Object.getOwnPropertyDescriptor;var aa=Object.getOwnPropertyNames;var la=Object.getPrototypeOf,ua=Object.prototype.hasOwnProperty;var _e=(e,t)=>()=>(e&&(t=e(e=0)),t);var ge=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Et=(e,t)=>{for(var r in t)Xt(e,r,{get:t[r],enumerable:!0})},Hn=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of aa(t))!ua.call(e,i)&&i!==r&&Xt(e,i,{get:()=>t[i],enumerable:!(n=sa(t,i))||n.enumerable});return e};var he=(e,t,r)=>(r=e!=null?oa(la(e)):{},Hn(t||!e||!e.__esModule?Xt(r,"default",{value:e,enumerable:!0}):r,e)),ca=e=>Hn(Xt({},"__esModule",{value:!0}),e);var y,c=_e(()=>{"use strict";y={nextTick:(e,...t)=>{setTimeout(()=>{e(...t)},0)},env:{},version:"",cwd:()=>"/",stderr:{},argv:["/bin/node"]}});var x,p=_e(()=>{"use strict";x=globalThis.performance??(()=>{let e=Date.now();return{now:()=>Date.now()-e}})()});var E,d=_e(()=>{"use strict";E=()=>{};E.prototype=E});var b,f=_e(()=>{"use strict";b=class{constructor(t){this.value=t}deref(){return this.value}}});var mi=ge(Xe=>{"use strict";m();c();p();d();f();var ei=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),pa=ei(e=>{"use strict";e.byteLength=l,e.toByteArray=g,e.fromByteArray=S;var t=[],r=[],n=typeof Uint8Array<"u"?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(o=0,s=i.length;o0)throw new Error("Invalid string. Length must be a multiple of 4");var F=C.indexOf("=");F===-1&&(F=A);var _=F===A?0:4-F%4;return[F,_]}function l(C){var A=a(C),F=A[0],_=A[1];return(F+_)*3/4-_}function u(C,A,F){return(A+F)*3/4-F}function g(C){var A,F=a(C),_=F[0],N=F[1],M=new n(u(C,_,N)),O=0,H=N>0?_-4:_,q;for(q=0;q>16&255,M[O++]=A>>8&255,M[O++]=A&255;return N===2&&(A=r[C.charCodeAt(q)]<<2|r[C.charCodeAt(q+1)]>>4,M[O++]=A&255),N===1&&(A=r[C.charCodeAt(q)]<<10|r[C.charCodeAt(q+1)]<<4|r[C.charCodeAt(q+2)]>>2,M[O++]=A>>8&255,M[O++]=A&255),M}function h(C){return t[C>>18&63]+t[C>>12&63]+t[C>>6&63]+t[C&63]}function P(C,A,F){for(var _,N=[],M=A;MH?H:O+M));return _===1?(A=C[F-1],N.push(t[A>>2]+t[A<<4&63]+"==")):_===2&&(A=(C[F-2]<<8)+C[F-1],N.push(t[A>>10]+t[A>>4&63]+t[A<<2&63]+"=")),N.join("")}}),da=ei(e=>{e.read=function(t,r,n,i,o){var s,a,l=o*8-i-1,u=(1<>1,h=-7,P=n?o-1:0,S=n?-1:1,C=t[r+P];for(P+=S,s=C&(1<<-h)-1,C>>=-h,h+=l;h>0;s=s*256+t[r+P],P+=S,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=i;h>0;a=a*256+t[r+P],P+=S,h-=8);if(s===0)s=1-g;else{if(s===u)return a?NaN:(C?-1:1)*(1/0);a=a+Math.pow(2,i),s=s-g}return(C?-1:1)*a*Math.pow(2,s-i)},e.write=function(t,r,n,i,o,s){var a,l,u,g=s*8-o-1,h=(1<>1,S=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,C=i?0:s-1,A=i?1:-1,F=r<0||r===0&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(l=isNaN(r)?1:0,a=h):(a=Math.floor(Math.log(r)/Math.LN2),r*(u=Math.pow(2,-a))<1&&(a--,u*=2),a+P>=1?r+=S/u:r+=S*Math.pow(2,1-P),r*u>=2&&(a++,u/=2),a+P>=h?(l=0,a=h):a+P>=1?(l=(r*u-1)*Math.pow(2,o),a=a+P):(l=r*Math.pow(2,P-1)*Math.pow(2,o),a=0));o>=8;t[n+C]=l&255,C+=A,l/=256,o-=8);for(a=a<0;t[n+C]=a&255,C+=A,a/=256,g-=8);t[n+C-A]|=F*128}}),Jr=pa(),Ye=da(),zn=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Xe.Buffer=T;Xe.SlowBuffer=wa;Xe.INSPECT_MAX_BYTES=50;var er=2147483647;Xe.kMaxLength=er;T.TYPED_ARRAY_SUPPORT=fa();!T.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function fa(){try{let e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch{return!1}}Object.defineProperty(T.prototype,"parent",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.buffer}});Object.defineProperty(T.prototype,"offset",{enumerable:!0,get:function(){if(T.isBuffer(this))return this.byteOffset}});function Oe(e){if(e>er)throw new RangeError('The value "'+e+'" is invalid for option "size"');let t=new Uint8Array(e);return Object.setPrototypeOf(t,T.prototype),t}function T(e,t,r){if(typeof e=="number"){if(typeof t=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return Kr(e)}return ti(e,t,r)}T.poolSize=8192;function ti(e,t,r){if(typeof e=="string")return ga(e,t);if(ArrayBuffer.isView(e))return ha(e);if(e==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(ye(e,ArrayBuffer)||e&&ye(e.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(ye(e,SharedArrayBuffer)||e&&ye(e.buffer,SharedArrayBuffer)))return ni(e,t,r);if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=e.valueOf&&e.valueOf();if(n!=null&&n!==e)return T.from(n,t,r);let i=ya(e);if(i)return i;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]=="function")return T.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}T.from=function(e,t,r){return ti(e,t,r)};Object.setPrototypeOf(T.prototype,Uint8Array.prototype);Object.setPrototypeOf(T,Uint8Array);function ri(e){if(typeof e!="number")throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function ma(e,t,r){return ri(e),e<=0?Oe(e):t!==void 0?typeof r=="string"?Oe(e).fill(t,r):Oe(e).fill(t):Oe(e)}T.alloc=function(e,t,r){return ma(e,t,r)};function Kr(e){return ri(e),Oe(e<0?0:Hr(e)|0)}T.allocUnsafe=function(e){return Kr(e)};T.allocUnsafeSlow=function(e){return Kr(e)};function ga(e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!T.isEncoding(t))throw new TypeError("Unknown encoding: "+t);let r=ii(e,t)|0,n=Oe(r),i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}function Gr(e){let t=e.length<0?0:Hr(e.length)|0,r=Oe(t);for(let n=0;n=er)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+er.toString(16)+" bytes");return e|0}function wa(e){return+e!=e&&(e=0),T.alloc(+e)}T.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==T.prototype};T.compare=function(e,t){if(ye(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),ye(t,Uint8Array)&&(t=T.from(t,t.offset,t.byteLength)),!T.isBuffer(e)||!T.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let r=e.length,n=t.length;for(let i=0,o=Math.min(r,n);in.length?(T.isBuffer(o)||(o=T.from(o)),o.copy(n,i)):Uint8Array.prototype.set.call(n,o,i);else if(T.isBuffer(o))o.copy(n,i);else throw new TypeError('"list" argument must be an Array of Buffers');i+=o.length}return n};function ii(e,t){if(T.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||ye(e,ArrayBuffer))return e.byteLength;if(typeof e!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);let r=e.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Wr(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return fi(e).length;default:if(i)return n?-1:Wr(e).length;t=(""+t).toLowerCase(),i=!0}}T.byteLength=ii;function ba(e,t,r){let n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return Oa(this,t,r);case"utf8":case"utf-8":return si(this,t,r);case"ascii":return Ra(this,t,r);case"latin1":case"binary":return Sa(this,t,r);case"base64":return Ca(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ka(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}T.prototype._isBuffer=!0;function Ve(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}T.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tt&&(e+=" ... "),""};zn&&(T.prototype[zn]=T.prototype.inspect);T.prototype.compare=function(e,t,r,n,i){if(ye(e,Uint8Array)&&(e=T.from(e,e.offset,e.byteLength)),!T.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(t===void 0&&(t=0),r===void 0&&(r=e?e.length:0),n===void 0&&(n=0),i===void 0&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;let o=i-n,s=r-t,a=Math.min(o,s),l=this.slice(n,i),u=e.slice(t,r);for(let g=0;g2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,Yr(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=T.from(t,n)),T.isBuffer(t))return t.length===0?-1:Yn(e,t,r,n,i);if(typeof t=="number")return t=t&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):Yn(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function Yn(e,t,r,n,i){let o=1,s=e.length,a=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;o=2,s/=2,a/=2,r/=2}function l(g,h){return o===1?g[h]:g.readUInt16BE(h*o)}let u;if(i){let g=-1;for(u=r;us&&(r=s-a),u=r;u>=0;u--){let g=!0;for(let h=0;hi&&(n=i)):n=i;let o=t.length;n>o/2&&(n=o/2);let s;for(s=0;s>>0,isFinite(r)?(r=r>>>0,n===void 0&&(n="utf8")):(n=r,r=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let i=this.length-t;if((r===void 0||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let o=!1;for(;;)switch(n){case"hex":return Ea(this,e,t,r);case"utf8":case"utf-8":return xa(this,e,t,r);case"ascii":case"latin1":case"binary":return va(this,e,t,r);case"base64":return Pa(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ta(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}};T.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Ca(e,t,r){return t===0&&r===e.length?Jr.fromByteArray(e):Jr.fromByteArray(e.slice(t,r))}function si(e,t,r){r=Math.min(e.length,r);let n=[],i=t;for(;i239?4:o>223?3:o>191?2:1;if(i+a<=r){let l,u,g,h;switch(a){case 1:o<128&&(s=o);break;case 2:l=e[i+1],(l&192)===128&&(h=(o&31)<<6|l&63,h>127&&(s=h));break;case 3:l=e[i+1],u=e[i+2],(l&192)===128&&(u&192)===128&&(h=(o&15)<<12|(l&63)<<6|u&63,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:l=e[i+1],u=e[i+2],g=e[i+3],(l&192)===128&&(u&192)===128&&(g&192)===128&&(h=(o&15)<<18|(l&63)<<12|(u&63)<<6|g&63,h>65535&&h<1114112&&(s=h))}}s===null?(s=65533,a=1):s>65535&&(s-=65536,n.push(s>>>10&1023|55296),s=56320|s&1023),n.push(s),i+=a}return Aa(n)}var Zn=4096;function Aa(e){let t=e.length;if(t<=Zn)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn)&&(r=n);let i="";for(let o=t;or&&(e=r),t<0?(t+=r,t<0&&(t=0)):t>r&&(t=r),tr)throw new RangeError("Trying to access beyond buffer length")}T.prototype.readUintLE=T.prototype.readUIntLE=function(e,t,r){e=e>>>0,t=t>>>0,r||G(e,t,this.length);let n=this[e],i=1,o=0;for(;++o>>0,t=t>>>0,r||G(e,t,this.length);let n=this[e+--t],i=1;for(;t>0&&(i*=256);)n+=this[e+--t]*i;return n};T.prototype.readUint8=T.prototype.readUInt8=function(e,t){return e=e>>>0,t||G(e,1,this.length),this[e]};T.prototype.readUint16LE=T.prototype.readUInt16LE=function(e,t){return e=e>>>0,t||G(e,2,this.length),this[e]|this[e+1]<<8};T.prototype.readUint16BE=T.prototype.readUInt16BE=function(e,t){return e=e>>>0,t||G(e,2,this.length),this[e]<<8|this[e+1]};T.prototype.readUint32LE=T.prototype.readUInt32LE=function(e,t){return e=e>>>0,t||G(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};T.prototype.readUint32BE=T.prototype.readUInt32BE=function(e,t){return e=e>>>0,t||G(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};T.prototype.readBigUInt64LE=Le(function(e){e=e>>>0,Ze(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&xt(e,this.length-8);let n=t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,i=this[++e]+this[++e]*2**8+this[++e]*2**16+r*2**24;return BigInt(n)+(BigInt(i)<>>0,Ze(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&xt(e,this.length-8);let n=t*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],i=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+r;return(BigInt(n)<>>0,t=t>>>0,r||G(e,t,this.length);let n=this[e],i=1,o=0;for(;++o=i&&(n-=Math.pow(2,8*t)),n};T.prototype.readIntBE=function(e,t,r){e=e>>>0,t=t>>>0,r||G(e,t,this.length);let n=t,i=1,o=this[e+--n];for(;n>0&&(i*=256);)o+=this[e+--n]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o};T.prototype.readInt8=function(e,t){return e=e>>>0,t||G(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};T.prototype.readInt16LE=function(e,t){e=e>>>0,t||G(e,2,this.length);let r=this[e]|this[e+1]<<8;return r&32768?r|4294901760:r};T.prototype.readInt16BE=function(e,t){e=e>>>0,t||G(e,2,this.length);let r=this[e+1]|this[e]<<8;return r&32768?r|4294901760:r};T.prototype.readInt32LE=function(e,t){return e=e>>>0,t||G(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};T.prototype.readInt32BE=function(e,t){return e=e>>>0,t||G(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};T.prototype.readBigInt64LE=Le(function(e){e=e>>>0,Ze(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&xt(e,this.length-8);let n=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(r<<24);return(BigInt(n)<>>0,Ze(e,"offset");let t=this[e],r=this[e+7];(t===void 0||r===void 0)&&xt(e,this.length-8);let n=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(n)<>>0,t||G(e,4,this.length),Ye.read(this,e,!0,23,4)};T.prototype.readFloatBE=function(e,t){return e=e>>>0,t||G(e,4,this.length),Ye.read(this,e,!1,23,4)};T.prototype.readDoubleLE=function(e,t){return e=e>>>0,t||G(e,8,this.length),Ye.read(this,e,!0,52,8)};T.prototype.readDoubleBE=function(e,t){return e=e>>>0,t||G(e,8,this.length),Ye.read(this,e,!1,52,8)};function ne(e,t,r,n,i,o){if(!T.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}T.prototype.writeUintLE=T.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;ne(this,e,t,r,s,0)}let i=1,o=0;for(this[t]=e&255;++o>>0,r=r>>>0,!n){let s=Math.pow(2,8*r)-1;ne(this,e,t,r,s,0)}let i=r-1,o=1;for(this[t+i]=e&255;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+r};T.prototype.writeUint8=T.prototype.writeUInt8=function(e,t,r){return e=+e,t=t>>>0,r||ne(this,e,t,1,255,0),this[t]=e&255,t+1};T.prototype.writeUint16LE=T.prototype.writeUInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||ne(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeUint16BE=T.prototype.writeUInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||ne(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeUint32LE=T.prototype.writeUInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||ne(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4};T.prototype.writeUint32BE=T.prototype.writeUInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||ne(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};function ai(e,t,r,n,i){di(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,s=s>>8,e[r++]=s,r}function li(e,t,r,n,i){di(t,n,i,e,r,7);let o=Number(t&BigInt(4294967295));e[r+7]=o,o=o>>8,e[r+6]=o,o=o>>8,e[r+5]=o,o=o>>8,e[r+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s=s>>8,e[r+2]=s,s=s>>8,e[r+1]=s,s=s>>8,e[r]=s,r+8}T.prototype.writeBigUInt64LE=Le(function(e,t=0){return ai(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeBigUInt64BE=Le(function(e,t=0){return li(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))});T.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);ne(this,e,t,r,a-1,-a)}let i=0,o=1,s=0;for(this[t]=e&255;++i>0)-s&255;return t+r};T.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t=t>>>0,!n){let a=Math.pow(2,8*r-1);ne(this,e,t,r,a-1,-a)}let i=r-1,o=1,s=0;for(this[t+i]=e&255;--i>=0&&(o*=256);)e<0&&s===0&&this[t+i+1]!==0&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+r};T.prototype.writeInt8=function(e,t,r){return e=+e,t=t>>>0,r||ne(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=e&255,t+1};T.prototype.writeInt16LE=function(e,t,r){return e=+e,t=t>>>0,r||ne(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2};T.prototype.writeInt16BE=function(e,t,r){return e=+e,t=t>>>0,r||ne(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=e&255,t+2};T.prototype.writeInt32LE=function(e,t,r){return e=+e,t=t>>>0,r||ne(this,e,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4};T.prototype.writeInt32BE=function(e,t,r){return e=+e,t=t>>>0,r||ne(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};T.prototype.writeBigInt64LE=Le(function(e,t=0){return ai(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});T.prototype.writeBigInt64BE=Le(function(e,t=0){return li(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function ui(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function ci(e,t,r,n,i){return t=+t,r=r>>>0,i||ui(e,t,r,4,34028234663852886e22,-34028234663852886e22),Ye.write(e,t,r,n,23,4),r+4}T.prototype.writeFloatLE=function(e,t,r){return ci(this,e,t,!0,r)};T.prototype.writeFloatBE=function(e,t,r){return ci(this,e,t,!1,r)};function pi(e,t,r,n,i){return t=+t,r=r>>>0,i||ui(e,t,r,8,17976931348623157e292,-17976931348623157e292),Ye.write(e,t,r,n,52,8),r+8}T.prototype.writeDoubleLE=function(e,t,r){return pi(this,e,t,!0,r)};T.prototype.writeDoubleBE=function(e,t,r){return pi(this,e,t,!1,r)};T.prototype.copy=function(e,t,r,n){if(!T.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),!n&&n!==0&&(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>0,r=r===void 0?this.length:r>>>0,e||(e=0);let i;if(typeof e=="number")for(i=t;i2**32?i=Xn(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=Xn(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);function Xn(e){let t="",r=e.length,n=e[0]==="-"?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function Fa(e,t,r){Ze(t,"offset"),(e[t]===void 0||e[t+r]===void 0)&&xt(t,e.length-(r+1))}function di(e,t,r,n,i,o){if(e>r||e3?t===0||t===BigInt(0)?a=`>= 0${s} and < 2${s} ** ${(o+1)*8}${s}`:a=`>= -(2${s} ** ${(o+1)*8-1}${s}) and < 2 ** ${(o+1)*8-1}${s}`:a=`>= ${t}${s} and <= ${r}${s}`,new ze.ERR_OUT_OF_RANGE("value",a,e)}Fa(n,i,o)}function Ze(e,t){if(typeof e!="number")throw new ze.ERR_INVALID_ARG_TYPE(t,"number",e)}function xt(e,t,r){throw Math.floor(e)!==e?(Ze(e,r),new ze.ERR_OUT_OF_RANGE(r||"offset","an integer",e)):t<0?new ze.ERR_BUFFER_OUT_OF_BOUNDS:new ze.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}var Ma=/[^+/0-9A-Za-z-_]/g;function Ia(e){if(e=e.split("=")[0],e=e.trim().replace(Ma,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function Wr(e,t){t=t||1/0;let r,n=e.length,i=null,o=[];for(let s=0;s55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}else if(s+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return o}function _a(e){let t=[];for(let r=0;r>8,i=r%256,o.push(i),o.push(n);return o}function fi(e){return Jr.toByteArray(Ia(e))}function tr(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function ye(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function Yr(e){return e!==e}var Na=function(){let e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function Le(e){return typeof BigInt>"u"?Da:e}function Da(){throw new Error("BigInt not supported")}});var w,m=_e(()=>{"use strict";w=he(mi())});function $a(){return!1}var Ba,ja,rr,en=_e(()=>{"use strict";m();c();p();d();f();Ba={},ja={existsSync:$a,promises:Ba},rr=ja});function ll(...e){return e.join("/")}function ul(...e){return e.join("/")}var Ri,cl,pl,we,sn=_e(()=>{"use strict";m();c();p();d();f();Ri="/",cl={sep:Ri},pl={resolve:ll,posix:cl,join:ul,sep:Ri},we=pl});var ki=ge((nf,Oi)=>{"use strict";m();c();p();d();f();Oi.exports=e=>{let t=e.match(/^[ \t]*(?=\S)/gm);return t?t.reduce((r,n)=>Math.min(r,n.length),1/0):0}});var Mi=ge((cf,Fi)=>{"use strict";m();c();p();d();f();var fl=ki();Fi.exports=e=>{let t=fl(e);if(t===0)return e;let r=new RegExp(`^[ \\t]{${t}}`,"gm");return e.replace(r,"")}});var ir,Ii=_e(()=>{"use strict";m();c();p();d();f();ir=class{constructor(){this.events={}}on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),this}emit(t,...r){return this.events[t]?(this.events[t].forEach(n=>{n(...r)}),!0):!1}}});var Li=ge((Vf,_i)=>{"use strict";m();c();p();d();f();_i.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var $i=ge((tm,Di)=>{"use strict";m();c();p();d();f();Di.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var un=ge((am,Bi)=>{"use strict";m();c();p();d();f();var wl=$i();Bi.exports=e=>typeof e=="string"?e.replace(wl(),""):e});var ji=ge((Cm,sr)=>{"use strict";m();c();p();d();f();sr.exports=(e={})=>{let t;if(e.repoUrl)t=e.repoUrl;else if(e.user&&e.repo)t=`https://github.com/${e.user}/${e.repo}`;else throw new Error("You need to specify either the `repoUrl` option or both the `user` and `repo` options");let r=new URL(`${t}/issues/new`),n=["body","title","labels","template","milestone","assignee","projects"];for(let i of n){let o=e[i];if(o!==void 0){if(i==="labels"||i==="projects"){if(!Array.isArray(o))throw new TypeError(`The \`${i}\` option should be an array`);o=o.join(",")}r.searchParams.set(i,o)}}return r.toString()};sr.exports.default=sr.exports});var bn=ge((Jy,lo)=>{"use strict";m();c();p();d();f();lo.exports=function(){function e(t,r,n,i,o){return tn?n+1:t+1:i===o?r:r+1}return function(t,r){if(t===r)return 0;if(t.length>r.length){var n=t;t=r,r=n}for(var i=t.length,o=r.length;i>0&&t.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s{fc.exports={name:"@prisma/engines-version",version:"6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"11f085a2012c0f4778414c8db2651556ee0ef959"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.67",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var $o=ge(()=>{"use strict";m();c();p();d();f()});var vp={};Et(vp,{Debug:()=>nn,Decimal:()=>Ee,Extensions:()=>Zr,MetricsClient:()=>mt,PrismaClientInitializationError:()=>V,PrismaClientKnownRequestError:()=>ie,PrismaClientRustPanicError:()=>ue,PrismaClientUnknownRequestError:()=>W,PrismaClientValidationError:()=>X,Public:()=>Xr,Sql:()=>se,defineDmmfProperty:()=>_o,deserializeJsonResponse:()=>nt,dmmfToRuntimeDataModel:()=>Io,empty:()=>jo,getPrismaClient:()=>ra,getRuntime:()=>ys,join:()=>Bo,makeStrictEnum:()=>na,makeTypedQueryFactory:()=>Lo,objectEnumValues:()=>Tr,raw:()=>Fn,serializeJsonQuery:()=>kr,skip:()=>Or,sqltag:()=>Mn,warnEnvConflicts:()=>void 0,warnOnce:()=>It});module.exports=ca(vp);m();c();p();d();f();var Zr={};Et(Zr,{defineExtension:()=>gi,getExtensionContext:()=>hi});m();c();p();d();f();m();c();p();d();f();function gi(e){return typeof e=="function"?e:t=>t.$extends(e)}m();c();p();d();f();function hi(e){return e}var Xr={};Et(Xr,{validator:()=>yi});m();c();p();d();f();m();c();p();d();f();function yi(...e){return t=>t}m();c();p();d();f();m();c();p();d();f();var nr={};Et(nr,{$:()=>vi,bgBlack:()=>za,bgBlue:()=>el,bgCyan:()=>rl,bgGreen:()=>Za,bgMagenta:()=>tl,bgRed:()=>Ya,bgWhite:()=>nl,bgYellow:()=>Xa,black:()=>Ga,blue:()=>Je,bold:()=>pe,cyan:()=>ke,dim:()=>vt,gray:()=>At,green:()=>Tt,grey:()=>Ha,hidden:()=>Qa,inverse:()=>Va,italic:()=>Ua,magenta:()=>Wa,red:()=>Qe,reset:()=>qa,strikethrough:()=>Ja,underline:()=>Pt,white:()=>Ka,yellow:()=>Ct});m();c();p();d();f();var tn,wi,bi,Ei,xi=!0;typeof y<"u"&&({FORCE_COLOR:tn,NODE_DISABLE_COLORS:wi,NO_COLOR:bi,TERM:Ei}=y.env||{},xi=y.stdout&&y.stdout.isTTY);var vi={enabled:!wi&&bi==null&&Ei!=="dumb"&&(tn!=null&&tn!=="0"||xi)};function U(e,t){let r=new RegExp(`\\x1b\\[${t}m`,"g"),n=`\x1B[${e}m`,i=`\x1B[${t}m`;return function(o){return!vi.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(r,i+n):o)+i}}var qa=U(0,0),pe=U(1,22),vt=U(2,22),Ua=U(3,23),Pt=U(4,24),Va=U(7,27),Qa=U(8,28),Ja=U(9,29),Ga=U(30,39),Qe=U(31,39),Tt=U(32,39),Ct=U(33,39),Je=U(34,39),Wa=U(35,39),ke=U(36,39),Ka=U(37,39),At=U(90,39),Ha=U(90,39),za=U(40,49),Ya=U(41,49),Za=U(42,49),Xa=U(43,49),el=U(44,49),tl=U(45,49),rl=U(46,49),nl=U(47,49);m();c();p();d();f();var il=100,Pi=["green","yellow","blue","magenta","cyan","red"],Rt=[],Ti=Date.now(),ol=0,rn=typeof y<"u"?y.env:{};globalThis.DEBUG??=rn.DEBUG??"";globalThis.DEBUG_COLORS??=rn.DEBUG_COLORS?rn.DEBUG_COLORS==="true":!0;var St={enable(e){typeof e=="string"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG="",e},enabled(e){let t=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),r=t.some(i=>i===""||i[0]==="-"?!1:e.match(RegExp(i.split("*").join(".*")+"$"))),n=t.some(i=>i===""||i[0]!=="-"?!1:e.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return r&&!n},log:(...e)=>{let[t,r,...n]=e;(console.warn??console.log)(`${t} ${r}`,...n)},formatters:{}};function sl(e){let t={color:Pi[ol++%Pi.length],enabled:St.enabled(e),namespace:e,log:St.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=t;if(n.length!==0&&Rt.push([o,...n]),Rt.length>il&&Rt.shift(),St.enabled(o)||i){let l=n.map(g=>typeof g=="string"?g:al(g)),u=`+${Date.now()-Ti}ms`;Ti=Date.now(),globalThis.DEBUG_COLORS?a(nr[s](pe(o)),...l,nr[s](u)):a(o,...l,u)}};return new Proxy(r,{get:(n,i)=>t[i],set:(n,i,o)=>t[i]=o})}var nn=new Proxy(sl,{get:(e,t)=>St[t],set:(e,t,r)=>St[t]=r});function al(e,t=2){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))return"[Circular *]";r.add(i)}else if(typeof i=="bigint")return i.toString();return i},t)}function Ci(e=7500){let t=Rt.map(([r,...n])=>`${r} ${n.map(i=>typeof i=="string"?i:JSON.stringify(i)).join(" ")}`).join(` +`);return t.length{let e;(O=>(O.findUnique="findUnique",O.findUniqueOrThrow="findUniqueOrThrow",O.findFirst="findFirst",O.findFirstOrThrow="findFirstOrThrow",O.findMany="findMany",O.create="create",O.createMany="createMany",O.createManyAndReturn="createManyAndReturn",O.update="update",O.updateMany="updateMany",O.upsert="upsert",O.delete="delete",O.deleteMany="deleteMany",O.groupBy="groupBy",O.count="count",O.aggregate="aggregate",O.findRaw="findRaw",O.aggregateRaw="aggregateRaw"))(e=t.ModelAction||={})})(kt||={});m();c();p();d();f();sn();function an(e){return we.sep===we.posix.sep?e:e.split(we.sep).join(we.posix.sep)}var Mt={};Et(Mt,{error:()=>hl,info:()=>gl,log:()=>ml,query:()=>yl,should:()=>Ni,tags:()=>Ft,warn:()=>ln});m();c();p();d();f();var Ft={error:Qe("prisma:error"),warn:Ct("prisma:warn"),info:ke("prisma:info"),query:Je("prisma:query")},Ni={warn:()=>!y.env.PRISMA_DISABLE_WARNINGS};function ml(...e){console.log(...e)}function ln(e,...t){Ni.warn()&&console.warn(`${Ft.warn} ${e}`,...t)}function gl(e,...t){console.info(`${Ft.info} ${e}`,...t)}function hl(e,...t){console.error(`${Ft.error} ${e}`,...t)}function yl(e,...t){console.log(`${Ft.query} ${e}`,...t)}m();c();p();d();f();function or(e,t){if(!e)throw new Error(`${t}. This should never happen. If you see this error, please, open an issue at https://pris.ly/prisma-prisma-bug-report`)}m();c();p();d();f();function Fe(e,t){throw new Error(t)}m();c();p();d();f();function cn(e,t){return Object.prototype.hasOwnProperty.call(e,t)}m();c();p();d();f();var pn=(e,t)=>e.reduce((r,n)=>(r[t(n)]=n,r),{});m();c();p();d();f();function et(e,t){let r={};for(let n of Object.keys(e))r[n]=t(e[n],n);return r}m();c();p();d();f();function dn(e,t){if(e.length===0)return;let r=e[0];for(let n=1;n{qi.has(e)||(qi.add(e),ln(t,...r))};var V=class e extends Error{constructor(t,r,n){super(t),this.name="PrismaClientInitializationError",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};le(V,"PrismaClientInitializationError");m();c();p();d();f();var ie=class extends Error{constructor(t,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(t),this.name="PrismaClientKnownRequestError",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};le(ie,"PrismaClientKnownRequestError");m();c();p();d();f();var ue=class extends Error{constructor(t,r){super(t),this.name="PrismaClientRustPanicError",this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};le(ue,"PrismaClientRustPanicError");m();c();p();d();f();var W=class extends Error{constructor(t,{clientVersion:r,batchRequestIdx:n}){super(t),this.name="PrismaClientUnknownRequestError",this.clientVersion=r,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};le(W,"PrismaClientUnknownRequestError");m();c();p();d();f();var X=class extends Error{constructor(r,{clientVersion:n}){super(r);this.name="PrismaClientValidationError";this.clientVersion=n}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};le(X,"PrismaClientValidationError");m();c();p();d();f();m();c();p();d();f();var tt=9e15,Be=1e9,fn="0123456789abcdef",lr="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",ur="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",mn={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-tt,maxE:tt,crypto:!1},Gi,Me,L=!0,pr="[DecimalError] ",$e=pr+"Invalid argument: ",Wi=pr+"Precision limit exceeded",Ki=pr+"crypto unavailable",Hi="[object Decimal]",ee=Math.floor,J=Math.pow,bl=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,El=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,xl=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,zi=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,fe=1e7,I=7,vl=9007199254740991,Pl=lr.length-1,gn=ur.length-1,R={toStringTag:Hi};R.absoluteValue=R.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),k(e)};R.ceil=function(){return k(new this.constructor(this),this.e+1,2)};R.clampedTo=R.clamp=function(e,t){var r,n=this,i=n.constructor;if(e=new i(e),t=new i(t),!e.s||!t.s)return new i(NaN);if(e.gt(t))throw Error($e+t);return r=n.cmp(e),r<0?e:n.cmp(t)>0?t:new i(n)};R.comparedTo=R.cmp=function(e){var t,r,n,i,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,u=e.s;if(!s||!a)return!l||!u?NaN:l!==u?l:s===a?0:!s^l<0?1:-1;if(!s[0]||!a[0])return s[0]?l:a[0]?-u:0;if(l!==u)return l;if(o.e!==e.e)return o.e>e.e^l<0?1:-1;for(n=s.length,i=a.length,t=0,r=na[t]^l<0?1:-1;return n===i?0:n>i^l<0?1:-1};R.cosine=R.cos=function(){var e,t,r=this,n=r.constructor;return r.d?r.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+I,n.rounding=1,r=Tl(n,to(n,r)),n.precision=e,n.rounding=t,k(Me==2||Me==3?r.neg():r,e,t,!0)):new n(1):new n(NaN)};R.cubeRoot=R.cbrt=function(){var e,t,r,n,i,o,s,a,l,u,g=this,h=g.constructor;if(!g.isFinite()||g.isZero())return new h(g);for(L=!1,o=g.s*J(g.s*g,1/3),!o||Math.abs(o)==1/0?(r=z(g.d),e=g.e,(o=(e-r.length+1)%3)&&(r+=o==1||o==-2?"0":"00"),o=J(r,1/3),e=ee((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?r="5e"+e:(r=o.toExponential(),r=r.slice(0,r.indexOf("e")+1)+e),n=new h(r),n.s=g.s):n=new h(o.toString()),s=(e=h.precision)+3;;)if(a=n,l=a.times(a).times(a),u=l.plus(g),n=j(u.plus(g).times(a),u.plus(l),s+2,1),z(a.d).slice(0,s)===(r=z(n.d)).slice(0,s))if(r=r.slice(s-3,s+1),r=="9999"||!i&&r=="4999"){if(!i&&(k(a,e+1,0),a.times(a).times(a).eq(g))){n=a;break}s+=4,i=1}else{(!+r||!+r.slice(1)&&r.charAt(0)=="5")&&(k(n,e+1,1),t=!n.times(n).times(n).eq(g));break}return L=!0,k(n,e,h.rounding,t)};R.decimalPlaces=R.dp=function(){var e,t=this.d,r=NaN;if(t){if(e=t.length-1,r=(e-ee(this.e/I))*I,e=t[e],e)for(;e%10==0;e/=10)r--;r<0&&(r=0)}return r};R.dividedBy=R.div=function(e){return j(this,new this.constructor(e))};R.dividedToIntegerBy=R.divToInt=function(e){var t=this,r=t.constructor;return k(j(t,new r(e),0,1,1),r.precision,r.rounding)};R.equals=R.eq=function(e){return this.cmp(e)===0};R.floor=function(){return k(new this.constructor(this),this.e+1,3)};R.greaterThan=R.gt=function(e){return this.cmp(e)>0};R.greaterThanOrEqualTo=R.gte=function(e){var t=this.cmp(e);return t==1||t===0};R.hyperbolicCosine=R.cosh=function(){var e,t,r,n,i,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;r=s.precision,n=s.rounding,s.precision=r+Math.max(o.e,o.sd())+4,s.rounding=1,i=o.d.length,i<32?(e=Math.ceil(i/3),t=(1/fr(4,e)).toString()):(e=16,t="2.3283064365386962890625e-10"),o=rt(s,1,o.times(t),new s(1),!0);for(var l,u=e,g=new s(8);u--;)l=o.times(o),o=a.minus(l.times(g.minus(l.times(g))));return k(o,s.precision=r,s.rounding=n,!0)};R.hyperbolicSine=R.sinh=function(){var e,t,r,n,i=this,o=i.constructor;if(!i.isFinite()||i.isZero())return new o(i);if(t=o.precision,r=o.rounding,o.precision=t+Math.max(i.e,i.sd())+4,o.rounding=1,n=i.d.length,n<3)i=rt(o,2,i,i,!0);else{e=1.4*Math.sqrt(n),e=e>16?16:e|0,i=i.times(1/fr(5,e)),i=rt(o,2,i,i,!0);for(var s,a=new o(5),l=new o(16),u=new o(20);e--;)s=i.times(i),i=i.times(a.plus(s.times(l.times(s).plus(u))))}return o.precision=t,o.rounding=r,k(i,t,r,!0)};R.hyperbolicTangent=R.tanh=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,j(r.sinh(),r.cosh(),n.precision=e,n.rounding=t)):new n(r.s)};R.inverseCosine=R.acos=function(){var e,t=this,r=t.constructor,n=t.abs().cmp(1),i=r.precision,o=r.rounding;return n!==-1?n===0?t.isNeg()?de(r,i,o):new r(0):new r(NaN):t.isZero()?de(r,i+4,o).times(.5):(r.precision=i+6,r.rounding=1,t=t.asin(),e=de(r,i+4,o).times(.5),r.precision=i,r.rounding=o,e.minus(t))};R.inverseHyperbolicCosine=R.acosh=function(){var e,t,r=this,n=r.constructor;return r.lte(1)?new n(r.eq(1)?0:NaN):r.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(r.e),r.sd())+4,n.rounding=1,L=!1,r=r.times(r).minus(1).sqrt().plus(r),L=!0,n.precision=e,n.rounding=t,r.ln()):new n(r)};R.inverseHyperbolicSine=R.asinh=function(){var e,t,r=this,n=r.constructor;return!r.isFinite()||r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(r.e),r.sd())+6,n.rounding=1,L=!1,r=r.times(r).plus(1).sqrt().plus(r),L=!0,n.precision=e,n.rounding=t,r.ln())};R.inverseHyperbolicTangent=R.atanh=function(){var e,t,r,n,i=this,o=i.constructor;return i.isFinite()?i.e>=0?new o(i.abs().eq(1)?i.s/0:i.isZero()?i:NaN):(e=o.precision,t=o.rounding,n=i.sd(),Math.max(n,e)<2*-i.e-1?k(new o(i),e,t,!0):(o.precision=r=n-i.e,i=j(i.plus(1),new o(1).minus(i),r+e,1),o.precision=e+4,o.rounding=1,i=i.ln(),o.precision=e,o.rounding=t,i.times(.5))):new o(NaN)};R.inverseSine=R.asin=function(){var e,t,r,n,i=this,o=i.constructor;return i.isZero()?new o(i):(t=i.abs().cmp(1),r=o.precision,n=o.rounding,t!==-1?t===0?(e=de(o,r+4,n).times(.5),e.s=i.s,e):new o(NaN):(o.precision=r+6,o.rounding=1,i=i.div(new o(1).minus(i.times(i)).sqrt().plus(1)).atan(),o.precision=r,o.rounding=n,i.times(2)))};R.inverseTangent=R.atan=function(){var e,t,r,n,i,o,s,a,l,u=this,g=u.constructor,h=g.precision,P=g.rounding;if(u.isFinite()){if(u.isZero())return new g(u);if(u.abs().eq(1)&&h+4<=gn)return s=de(g,h+4,P).times(.25),s.s=u.s,s}else{if(!u.s)return new g(NaN);if(h+4<=gn)return s=de(g,h+4,P).times(.5),s.s=u.s,s}for(g.precision=a=h+10,g.rounding=1,r=Math.min(28,a/I+2|0),e=r;e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(L=!1,t=Math.ceil(a/I),n=1,l=u.times(u),s=new g(u),i=u;e!==-1;)if(i=i.times(l),o=s.minus(i.div(n+=2)),i=i.times(l),s=o.plus(i.div(n+=2)),s.d[t]!==void 0)for(e=t;s.d[e]===o.d[e]&&e--;);return r&&(s=s.times(2<this.d.length-2};R.isNaN=function(){return!this.s};R.isNegative=R.isNeg=function(){return this.s<0};R.isPositive=R.isPos=function(){return this.s>0};R.isZero=function(){return!!this.d&&this.d[0]===0};R.lessThan=R.lt=function(e){return this.cmp(e)<0};R.lessThanOrEqualTo=R.lte=function(e){return this.cmp(e)<1};R.logarithm=R.log=function(e){var t,r,n,i,o,s,a,l,u=this,g=u.constructor,h=g.precision,P=g.rounding,S=5;if(e==null)e=new g(10),t=!0;else{if(e=new g(e),r=e.d,e.s<0||!r||!r[0]||e.eq(1))return new g(NaN);t=e.eq(10)}if(r=u.d,u.s<0||!r||!r[0]||u.eq(1))return new g(r&&!r[0]?-1/0:u.s!=1?NaN:r?0:1/0);if(t)if(r.length>1)o=!0;else{for(i=r[0];i%10===0;)i/=10;o=i!==1}if(L=!1,a=h+S,s=De(u,a),n=t?cr(g,a+10):De(e,a),l=j(s,n,a,1),_t(l.d,i=h,P))do if(a+=10,s=De(u,a),n=t?cr(g,a+10):De(e,a),l=j(s,n,a,1),!o){+z(l.d).slice(i+1,i+15)+1==1e14&&(l=k(l,h+1,0));break}while(_t(l.d,i+=10,P));return L=!0,k(l,h,P)};R.minus=R.sub=function(e){var t,r,n,i,o,s,a,l,u,g,h,P,S=this,C=S.constructor;if(e=new C(e),!S.d||!e.d)return!S.s||!e.s?e=new C(NaN):S.d?e.s=-e.s:e=new C(e.d||S.s!==e.s?S:NaN),e;if(S.s!=e.s)return e.s=-e.s,S.plus(e);if(u=S.d,P=e.d,a=C.precision,l=C.rounding,!u[0]||!P[0]){if(P[0])e.s=-e.s;else if(u[0])e=new C(S);else return new C(l===3?-0:0);return L?k(e,a,l):e}if(r=ee(e.e/I),g=ee(S.e/I),u=u.slice(),o=g-r,o){for(h=o<0,h?(t=u,o=-o,s=P.length):(t=P,r=g,s=u.length),n=Math.max(Math.ceil(a/I),s)+2,o>n&&(o=n,t.length=1),t.reverse(),n=o;n--;)t.push(0);t.reverse()}else{for(n=u.length,s=P.length,h=n0;--n)u[s++]=0;for(n=P.length;n>o;){if(u[--n]s?o+1:s+1,i>s&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for(s=u.length,i=g.length,s-i<0&&(i=s,r=g,g=u,u=r),t=0;i;)t=(u[--i]=u[i]+g[i]+t)/fe|0,u[i]%=fe;for(t&&(u.unshift(t),++n),s=u.length;u[--s]==0;)u.pop();return e.d=u,e.e=dr(u,n),L?k(e,a,l):e};R.precision=R.sd=function(e){var t,r=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error($e+e);return r.d?(t=Yi(r.d),e&&r.e+1>t&&(t=r.e+1)):t=NaN,t};R.round=function(){var e=this,t=e.constructor;return k(new t(e),e.e+1,t.rounding)};R.sine=R.sin=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+Math.max(r.e,r.sd())+I,n.rounding=1,r=Al(n,to(n,r)),n.precision=e,n.rounding=t,k(Me>2?r.neg():r,e,t,!0)):new n(NaN)};R.squareRoot=R.sqrt=function(){var e,t,r,n,i,o,s=this,a=s.d,l=s.e,u=s.s,g=s.constructor;if(u!==1||!a||!a[0])return new g(!u||u<0&&(!a||a[0])?NaN:a?s:1/0);for(L=!1,u=Math.sqrt(+s),u==0||u==1/0?(t=z(a),(t.length+l)%2==0&&(t+="0"),u=Math.sqrt(t),l=ee((l+1)/2)-(l<0||l%2),u==1/0?t="5e"+l:(t=u.toExponential(),t=t.slice(0,t.indexOf("e")+1)+l),n=new g(t)):n=new g(u.toString()),r=(l=g.precision)+3;;)if(o=n,n=o.plus(j(s,o,r+2,1)).times(.5),z(o.d).slice(0,r)===(t=z(n.d)).slice(0,r))if(t=t.slice(r-3,r+1),t=="9999"||!i&&t=="4999"){if(!i&&(k(o,l+1,0),o.times(o).eq(s))){n=o;break}r+=4,i=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(k(n,l+1,1),e=!n.times(n).eq(s));break}return L=!0,k(n,l,g.rounding,e)};R.tangent=R.tan=function(){var e,t,r=this,n=r.constructor;return r.isFinite()?r.isZero()?new n(r):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,r=r.sin(),r.s=1,r=j(r,new n(1).minus(r.times(r)).sqrt(),e+10,0),n.precision=e,n.rounding=t,k(Me==2||Me==4?r.neg():r,e,t,!0)):new n(NaN)};R.times=R.mul=function(e){var t,r,n,i,o,s,a,l,u,g=this,h=g.constructor,P=g.d,S=(e=new h(e)).d;if(e.s*=g.s,!P||!P[0]||!S||!S[0])return new h(!e.s||P&&!P[0]&&!S||S&&!S[0]&&!P?NaN:!P||!S?e.s/0:e.s*0);for(r=ee(g.e/I)+ee(e.e/I),l=P.length,u=S.length,l=0;){for(t=0,i=l+n;i>n;)a=o[i]+S[n]*P[i-n-1]+t,o[i--]=a%fe|0,t=a/fe|0;o[i]=(o[i]+t)%fe|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=dr(o,r),L?k(e,h.precision,h.rounding):e};R.toBinary=function(e,t){return wn(this,2,e,t)};R.toDecimalPlaces=R.toDP=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(oe(e,0,Be),t===void 0?t=n.rounding:oe(t,0,8),k(r,e+r.e+1,t))};R.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=be(n,!0):(oe(e,0,Be),t===void 0?t=i.rounding:oe(t,0,8),n=k(new i(n),e+1,t),r=be(n,!0,e+1)),n.isNeg()&&!n.isZero()?"-"+r:r};R.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?r=be(i):(oe(e,0,Be),t===void 0?t=o.rounding:oe(t,0,8),n=k(new o(i),e+i.e+1,t),r=be(n,!1,e+n.e+1)),i.isNeg()&&!i.isZero()?"-"+r:r};R.toFraction=function(e){var t,r,n,i,o,s,a,l,u,g,h,P,S=this,C=S.d,A=S.constructor;if(!C)return new A(S);if(u=r=new A(1),n=l=new A(0),t=new A(n),o=t.e=Yi(C)-S.e-1,s=o%I,t.d[0]=J(10,s<0?I+s:s),e==null)e=o>0?t:u;else{if(a=new A(e),!a.isInt()||a.lt(u))throw Error($e+a);e=a.gt(t)?o>0?t:u:a}for(L=!1,a=new A(z(C)),g=A.precision,A.precision=o=C.length*I*2;h=j(a,t,0,1,1),i=r.plus(h.times(n)),i.cmp(e)!=1;)r=n,n=i,i=u,u=l.plus(h.times(i)),l=i,i=t,t=a.minus(h.times(i)),a=i;return i=j(e.minus(r),n,0,1,1),l=l.plus(i.times(u)),r=r.plus(i.times(n)),l.s=u.s=S.s,P=j(u,n,o,1).minus(S).abs().cmp(j(l,r,o,1).minus(S).abs())<1?[u,n]:[l,r],A.precision=g,L=!0,P};R.toHexadecimal=R.toHex=function(e,t){return wn(this,16,e,t)};R.toNearest=function(e,t){var r=this,n=r.constructor;if(r=new n(r),e==null){if(!r.d)return r;e=new n(1),t=n.rounding}else{if(e=new n(e),t===void 0?t=n.rounding:oe(t,0,8),!r.d)return e.s?r:e;if(!e.d)return e.s&&(e.s=r.s),e}return e.d[0]?(L=!1,r=j(r,e,0,t,1).times(e),L=!0,k(r)):(e.s=r.s,r=e),r};R.toNumber=function(){return+this};R.toOctal=function(e,t){return wn(this,8,e,t)};R.toPower=R.pow=function(e){var t,r,n,i,o,s,a=this,l=a.constructor,u=+(e=new l(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new l(J(+a,u));if(a=new l(a),a.eq(1))return a;if(n=l.precision,o=l.rounding,e.eq(1))return k(a,n,o);if(t=ee(e.e/I),t>=e.d.length-1&&(r=u<0?-u:u)<=vl)return i=Zi(l,a,r,n),e.s<0?new l(1).div(i):k(i,n,o);if(s=a.s,s<0){if(tl.maxE+1||t0?s/0:0):(L=!1,l.rounding=a.s=1,r=Math.min(12,(t+"").length),i=hn(e.times(De(a,n+r)),n),i.d&&(i=k(i,n+5,1),_t(i.d,n,o)&&(t=n+10,i=k(hn(e.times(De(a,t+r)),t),t+5,1),+z(i.d).slice(n+1,n+15)+1==1e14&&(i=k(i,n+1,0)))),i.s=s,L=!0,l.rounding=o,k(i,n,o))};R.toPrecision=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=be(n,n.e<=i.toExpNeg||n.e>=i.toExpPos):(oe(e,1,Be),t===void 0?t=i.rounding:oe(t,0,8),n=k(new i(n),e,t),r=be(n,e<=n.e||n.e<=i.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+r:r};R.toSignificantDigits=R.toSD=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(oe(e,1,Be),t===void 0?t=n.rounding:oe(t,0,8)),k(new n(r),e,t)};R.toString=function(){var e=this,t=e.constructor,r=be(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+r:r};R.truncated=R.trunc=function(){return k(new this.constructor(this),this.e+1,1)};R.valueOf=R.toJSON=function(){var e=this,t=e.constructor,r=be(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+r:r};function z(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;tr)throw Error($e+e)}function _t(e,t,r,n){var i,o,s,a;for(o=e[0];o>=10;o/=10)--t;return--t<0?(t+=I,i=0):(i=Math.ceil((t+1)/I),t%=I),o=J(10,I-t),a=e[i]%o|0,n==null?t<3?(t==0?a=a/100|0:t==1&&(a=a/10|0),s=r<4&&a==99999||r>3&&a==49999||a==5e4||a==0):s=(r<4&&a+1==o||r>3&&a+1==o/2)&&(e[i+1]/o/100|0)==J(10,t-2)-1||(a==o/2||a==0)&&(e[i+1]/o/100|0)==0:t<4?(t==0?a=a/1e3|0:t==1?a=a/100|0:t==2&&(a=a/10|0),s=(n||r<4)&&a==9999||!n&&r>3&&a==4999):s=((n||r<4)&&a+1==o||!n&&r>3&&a+1==o/2)&&(e[i+1]/o/1e3|0)==J(10,t-3)-1,s}function ar(e,t,r){for(var n,i=[0],o,s=0,a=e.length;sr-1&&(i[n+1]===void 0&&(i[n+1]=0),i[n+1]+=i[n]/r|0,i[n]%=r)}return i.reverse()}function Tl(e,t){var r,n,i;if(t.isZero())return t;n=t.d.length,n<32?(r=Math.ceil(n/3),i=(1/fr(4,r)).toString()):(r=16,i="2.3283064365386962890625e-10"),e.precision+=r,t=rt(e,1,t.times(i),new e(1));for(var o=r;o--;){var s=t.times(t);t=s.times(s).minus(s).times(8).plus(1)}return e.precision-=r,t}var j=function(){function e(n,i,o){var s,a=0,l=n.length;for(n=n.slice();l--;)s=n[l]*i+a,n[l]=s%o|0,a=s/o|0;return a&&n.unshift(a),n}function t(n,i,o,s){var a,l;if(o!=s)l=o>s?1:-1;else for(a=l=0;ai[a]?1:-1;break}return l}function r(n,i,o,s){for(var a=0;o--;)n[o]-=a,a=n[o]1;)n.shift()}return function(n,i,o,s,a,l){var u,g,h,P,S,C,A,F,_,N,M,O,H,q,bt,Q,re,Se,Y,He,Zt=n.constructor,Qr=n.s==i.s?1:-1,Z=n.d,$=i.d;if(!Z||!Z[0]||!$||!$[0])return new Zt(!n.s||!i.s||(Z?$&&Z[0]==$[0]:!$)?NaN:Z&&Z[0]==0||!$?Qr*0:Qr/0);for(l?(S=1,g=n.e-i.e):(l=fe,S=I,g=ee(n.e/S)-ee(i.e/S)),Y=$.length,re=Z.length,_=new Zt(Qr),N=_.d=[],h=0;$[h]==(Z[h]||0);h++);if($[h]>(Z[h]||0)&&g--,o==null?(q=o=Zt.precision,s=Zt.rounding):a?q=o+(n.e-i.e)+1:q=o,q<0)N.push(1),C=!0;else{if(q=q/S+2|0,h=0,Y==1){for(P=0,$=$[0],q++;(h1&&($=e($,P,l),Z=e(Z,P,l),Y=$.length,re=Z.length),Q=Y,M=Z.slice(0,Y),O=M.length;O=l/2&&++Se;do P=0,u=t($,M,Y,O),u<0?(H=M[0],Y!=O&&(H=H*l+(M[1]||0)),P=H/Se|0,P>1?(P>=l&&(P=l-1),A=e($,P,l),F=A.length,O=M.length,u=t(A,M,F,O),u==1&&(P--,r(A,Y=10;P/=10)h++;_.e=h+g*S-1,k(_,a?o+_.e+1:o,s,C)}return _}}();function k(e,t,r,n){var i,o,s,a,l,u,g,h,P,S=e.constructor;e:if(t!=null){if(h=e.d,!h)return e;for(i=1,a=h[0];a>=10;a/=10)i++;if(o=t-i,o<0)o+=I,s=t,g=h[P=0],l=g/J(10,i-s-1)%10|0;else if(P=Math.ceil((o+1)/I),a=h.length,P>=a)if(n){for(;a++<=P;)h.push(0);g=l=0,i=1,o%=I,s=o-I+1}else break e;else{for(g=a=h[P],i=1;a>=10;a/=10)i++;o%=I,s=o-I+i,l=s<0?0:g/J(10,i-s-1)%10|0}if(n=n||t<0||h[P+1]!==void 0||(s<0?g:g%J(10,i-s-1)),u=r<4?(l||n)&&(r==0||r==(e.s<0?3:2)):l>5||l==5&&(r==4||n||r==6&&(o>0?s>0?g/J(10,i-s):0:h[P-1])%10&1||r==(e.s<0?8:7)),t<1||!h[0])return h.length=0,u?(t-=e.e+1,h[0]=J(10,(I-t%I)%I),e.e=-t||0):h[0]=e.e=0,e;if(o==0?(h.length=P,a=1,P--):(h.length=P+1,a=J(10,I-o),h[P]=s>0?(g/J(10,i-s)%J(10,s)|0)*a:0),u)for(;;)if(P==0){for(o=1,s=h[0];s>=10;s/=10)o++;for(s=h[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,h[0]==fe&&(h[0]=1));break}else{if(h[P]+=a,h[P]!=fe)break;h[P--]=0,a=1}for(o=h.length;h[--o]===0;)h.pop()}return L&&(e.e>S.maxE?(e.d=null,e.e=NaN):e.e0?o=o.charAt(0)+"."+o.slice(1)+Ne(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):i<0?(o="0."+Ne(-i-1)+o,r&&(n=r-s)>0&&(o+=Ne(n))):i>=s?(o+=Ne(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+Ne(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=Ne(n))),o}function dr(e,t){var r=e[0];for(t*=I;r>=10;r/=10)t++;return t}function cr(e,t,r){if(t>Pl)throw L=!0,r&&(e.precision=r),Error(Wi);return k(new e(lr),t,1,!0)}function de(e,t,r){if(t>gn)throw Error(Wi);return k(new e(ur),t,r,!0)}function Yi(e){var t=e.length-1,r=t*I+1;if(t=e[t],t){for(;t%10==0;t/=10)r--;for(t=e[0];t>=10;t/=10)r++}return r}function Ne(e){for(var t="";e--;)t+="0";return t}function Zi(e,t,r,n){var i,o=new e(1),s=Math.ceil(n/I+4);for(L=!1;;){if(r%2&&(o=o.times(t),Qi(o.d,s)&&(i=!0)),r=ee(r/2),r===0){r=o.d.length-1,i&&o.d[r]===0&&++o.d[r];break}t=t.times(t),Qi(t.d,s)}return L=!0,o}function Vi(e){return e.d[e.d.length-1]&1}function Xi(e,t,r){for(var n,i=new e(t[0]),o=0;++o17)return new P(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(t==null?(L=!1,l=C):l=t,a=new P(.03125);e.e>-2;)e=e.times(a),h+=5;for(n=Math.log(J(2,h))/Math.LN10*2+5|0,l+=n,r=o=s=new P(1),P.precision=l;;){if(o=k(o.times(e),l,1),r=r.times(++g),a=s.plus(j(o,r,l,1)),z(a.d).slice(0,l)===z(s.d).slice(0,l)){for(i=h;i--;)s=k(s.times(s),l,1);if(t==null)if(u<3&&_t(s.d,l-n,S,u))P.precision=l+=10,r=o=a=new P(1),g=0,u++;else return k(s,P.precision=C,S,L=!0);else return P.precision=C,s}s=a}}function De(e,t){var r,n,i,o,s,a,l,u,g,h,P,S=1,C=10,A=e,F=A.d,_=A.constructor,N=_.rounding,M=_.precision;if(A.s<0||!F||!F[0]||!A.e&&F[0]==1&&F.length==1)return new _(F&&!F[0]?-1/0:A.s!=1?NaN:F?0:A);if(t==null?(L=!1,g=M):g=t,_.precision=g+=C,r=z(F),n=r.charAt(0),Math.abs(o=A.e)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)A=A.times(e),r=z(A.d),n=r.charAt(0),S++;o=A.e,n>1?(A=new _("0."+r),o++):A=new _(n+"."+r.slice(1))}else return u=cr(_,g+2,M).times(o+""),A=De(new _(n+"."+r.slice(1)),g-C).plus(u),_.precision=M,t==null?k(A,M,N,L=!0):A;for(h=A,l=s=A=j(A.minus(1),A.plus(1),g,1),P=k(A.times(A),g,1),i=3;;){if(s=k(s.times(P),g,1),u=l.plus(j(s,new _(i),g,1)),z(u.d).slice(0,g)===z(l.d).slice(0,g))if(l=l.times(2),o!==0&&(l=l.plus(cr(_,g+2,M).times(o+""))),l=j(l,new _(S),g,1),t==null)if(_t(l.d,g-C,N,a))_.precision=g+=C,u=s=A=j(h.minus(1),h.plus(1),g,1),P=k(A.times(A),g,1),i=a=1;else return k(l,_.precision=M,N,L=!0);else return _.precision=M,l;l=u,i+=2}}function eo(e){return String(e.s*e.s/0)}function yn(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;n++);for(i=t.length;t.charCodeAt(i-1)===48;--i);if(t=t.slice(n,i),t){if(i-=n,e.e=r=r-n-1,e.d=[],n=(r+1)%I,r<0&&(n+=I),ne.constructor.maxE?(e.d=null,e.e=NaN):e.e-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),zi.test(t))return yn(e,t)}else if(t==="Infinity"||t==="NaN")return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(El.test(t))r=16,t=t.toLowerCase();else if(bl.test(t))r=2;else if(xl.test(t))r=8;else throw Error($e+t);for(o=t.search(/p/i),o>0?(l=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),o=t.indexOf("."),s=o>=0,n=e.constructor,s&&(t=t.replace(".",""),a=t.length,o=a-o,i=Zi(n,new n(r),o,o*2)),u=ar(t,r,fe),g=u.length-1,o=g;u[o]===0;--o)u.pop();return o<0?new n(e.s*0):(e.e=dr(u,g),e.d=u,L=!1,s&&(e=j(e,i,a*4)),l&&(e=e.times(Math.abs(l)<54?J(2,l):Ge.pow(2,l))),L=!0,e)}function Al(e,t){var r,n=t.d.length;if(n<3)return t.isZero()?t:rt(e,2,t,t);r=1.4*Math.sqrt(n),r=r>16?16:r|0,t=t.times(1/fr(5,r)),t=rt(e,2,t,t);for(var i,o=new e(5),s=new e(16),a=new e(20);r--;)i=t.times(t),t=t.times(o.plus(i.times(s.times(i).minus(a))));return t}function rt(e,t,r,n,i){var o,s,a,l,u=1,g=e.precision,h=Math.ceil(g/I);for(L=!1,l=r.times(r),a=new e(n);;){if(s=j(a.times(l),new e(t++*t++),g,1),a=i?n.plus(s):n.minus(s),n=j(s.times(l),new e(t++*t++),g,1),s=a.plus(n),s.d[h]!==void 0){for(o=h;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=n,n=s,s=o,u++}return L=!0,s.d.length=h+1,s}function fr(e,t){for(var r=e;--t;)r*=e;return r}function to(e,t){var r,n=t.s<0,i=de(e,e.precision,1),o=i.times(.5);if(t=t.abs(),t.lte(o))return Me=n?4:1,t;if(r=t.divToInt(i),r.isZero())Me=n?3:2;else{if(t=t.minus(r.times(i)),t.lte(o))return Me=Vi(r)?n?2:3:n?4:1,t;Me=Vi(r)?n?1:4:n?3:2}return t.minus(i).abs()}function wn(e,t,r,n){var i,o,s,a,l,u,g,h,P,S=e.constructor,C=r!==void 0;if(C?(oe(r,1,Be),n===void 0?n=S.rounding:oe(n,0,8)):(r=S.precision,n=S.rounding),!e.isFinite())g=eo(e);else{for(g=be(e),s=g.indexOf("."),C?(i=2,t==16?r=r*4-3:t==8&&(r=r*3-2)):i=t,s>=0&&(g=g.replace(".",""),P=new S(1),P.e=g.length-s,P.d=ar(be(P),10,i),P.e=P.d.length),h=ar(g,10,i),o=l=h.length;h[--l]==0;)h.pop();if(!h[0])g=C?"0p+0":"0";else{if(s<0?o--:(e=new S(e),e.d=h,e.e=o,e=j(e,P,r,n,0,i),h=e.d,o=e.e,u=Gi),s=h[r],a=i/2,u=u||h[r+1]!==void 0,u=n<4?(s!==void 0||u)&&(n===0||n===(e.s<0?3:2)):s>a||s===a&&(n===4||u||n===6&&h[r-1]&1||n===(e.s<0?8:7)),h.length=r,u)for(;++h[--r]>i-1;)h[r]=0,r||(++o,h.unshift(1));for(l=h.length;!h[l-1];--l);for(s=0,g="";s1)if(t==16||t==8){for(s=t==16?4:3,--l;l%s;l++)g+="0";for(h=ar(g,i,t),l=h.length;!h[l-1];--l);for(s=1,g="1.";sl)for(o-=l;o--;)g+="0";else ot)return e.length=t,!0}function Rl(e){return new this(e).abs()}function Sl(e){return new this(e).acos()}function Ol(e){return new this(e).acosh()}function kl(e,t){return new this(e).plus(t)}function Fl(e){return new this(e).asin()}function Ml(e){return new this(e).asinh()}function Il(e){return new this(e).atan()}function _l(e){return new this(e).atanh()}function Ll(e,t){e=new this(e),t=new this(t);var r,n=this.precision,i=this.rounding,o=n+4;return!e.s||!t.s?r=new this(NaN):!e.d&&!t.d?(r=de(this,o,1).times(t.s>0?.25:.75),r.s=e.s):!t.d||e.isZero()?(r=t.s<0?de(this,n,i):new this(0),r.s=e.s):!e.d||t.isZero()?(r=de(this,o,1).times(.5),r.s=e.s):t.s<0?(this.precision=o,this.rounding=1,r=this.atan(j(e,t,o,1)),t=de(this,o,1),this.precision=n,this.rounding=i,r=e.s<0?r.minus(t):r.plus(t)):r=this.atan(j(e,t,o,1)),r}function Nl(e){return new this(e).cbrt()}function Dl(e){return k(e=new this(e),e.e+1,2)}function $l(e,t,r){return new this(e).clamp(t,r)}function Bl(e){if(!e||typeof e!="object")throw Error(pr+"Object expected");var t,r,n,i=e.defaults===!0,o=["precision",1,Be,"rounding",0,8,"toExpNeg",-tt,0,"toExpPos",0,tt,"maxE",0,tt,"minE",-tt,0,"modulo",0,9];for(t=0;t=o[t+1]&&n<=o[t+2])this[r]=n;else throw Error($e+r+": "+n);if(r="crypto",i&&(this[r]=mn[r]),(n=e[r])!==void 0)if(n===!0||n===!1||n===0||n===1)if(n)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[r]=!0;else throw Error(Ki);else this[r]=!1;else throw Error($e+r+": "+n);return this}function jl(e){return new this(e).cos()}function ql(e){return new this(e).cosh()}function ro(e){var t,r,n;function i(o){var s,a,l,u=this;if(!(u instanceof i))return new i(o);if(u.constructor=i,Ji(o)){u.s=o.s,L?!o.d||o.e>i.maxE?(u.e=NaN,u.d=null):o.e=10;a/=10)s++;L?s>i.maxE?(u.e=NaN,u.d=null):s=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=i%1e7;else if(crypto.randomBytes){for(t=crypto.randomBytes(n*=4);o=214e7?crypto.randomBytes(4).copy(t,o):(a.push(i%1e7),o+=4);o=n/4}else throw Error(Ki);else for(;o=10;i/=10)n++;npe(Je(e)),punctuation:Je,directive:ke,function:ke,variable:e=>pe(Je(e)),string:e=>pe(Tt(e)),boolean:Ct,number:ke,comment:At};var mu=e=>e,gr={},gu=0,D={manual:gr.Prism&&gr.Prism.manual,disableWorkerMessageHandler:gr.Prism&&gr.Prism.disableWorkerMessageHandler,util:{encode:function(e){if(e instanceof me){let t=e;return new me(t.type,D.util.encode(t.content),t.alias)}else return Array.isArray(e)?e.map(D.util.encode):e.replace(/&/g,"&").replace(/e.length)return;if(Se instanceof me)continue;if(H&&Q!=t.length-1){N.lastIndex=re;var h=N.exec(e);if(!h)break;var g=h.index+(O?h[1].length:0),P=h.index+h[0].length,a=Q,l=re;for(let $=t.length;a<$&&(l=l&&(++Q,re=l);if(t[Q]instanceof me)continue;u=a-Q,Se=e.slice(re,l),h.index-=re}else{N.lastIndex=0;var h=N.exec(Se),u=1}if(!h){if(o)break;continue}O&&(q=h[1]?h[1].length:0);var g=h.index+q,h=h[0].slice(q),P=g+h.length,S=Se.slice(0,g),C=Se.slice(P);let Y=[Q,u];S&&(++Q,re+=S.length,Y.push(S));let He=new me(A,M?D.tokenize(h,M):h,bt,h,H);if(Y.push(He),C&&Y.push(C),Array.prototype.splice.apply(t,Y),u!=1&&D.matchGrammar(e,t,r,Q,re,!0,A),o)break}}}},tokenize:function(e,t){let r=[e],n=t.rest;if(n){for(let i in n)t[i]=n[i];delete t.rest}return D.matchGrammar(e,r,t,0,0,!1),r},hooks:{all:{},add:function(e,t){let r=D.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){let r=D.hooks.all[e];if(!(!r||!r.length))for(var n=0,i;i=r[n++];)i(t)}},Token:me};D.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};D.languages.javascript=D.languages.extend("clike",{"class-name":[D.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/});D.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/;D.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:D.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:D.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:D.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:D.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});D.languages.markup&&D.languages.markup.tag.addInlined("script","javascript");D.languages.js=D.languages.javascript;D.languages.typescript=D.languages.extend("javascript",{keyword:/\b(?:abstract|as|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/});D.languages.ts=D.languages.typescript;function me(e,t,r,n,i){this.type=e,this.content=t,this.alias=r,this.length=(n||"").length|0,this.greedy=!!i}me.stringify=function(e,t){return typeof e=="string"?e:Array.isArray(e)?e.map(function(r){return me.stringify(r,t)}).join(""):hu(e.type)(e.content)};function hu(e){return no[e]||mu}function io(e){return yu(e,D.languages.javascript)}function yu(e,t){return D.tokenize(e,t).map(n=>me.stringify(n)).join("")}m();c();p();d();f();var oo=he(Mi());function so(e){return(0,oo.default)(e)}var hr=class e{static read(t){let r;try{r=rr.readFileSync(t,"utf-8")}catch{return null}return e.fromContent(r)}static fromContent(t){let r=t.split(/\r?\n/);return new e(1,r)}constructor(t,r){this.firstLineNumber=t,this.lines=r}get lastLineNumber(){return this.firstLineNumber+this.lines.length-1}mapLineAt(t,r){if(tthis.lines.length+this.firstLineNumber)return this;let n=t-this.firstLineNumber,i=[...this.lines];return i[n]=r(i[n]),new e(this.firstLineNumber,i)}mapLines(t){return new e(this.firstLineNumber,this.lines.map((r,n)=>t(r,this.firstLineNumber+n)))}lineAt(t){return this.lines[t-this.firstLineNumber]}prependSymbolAt(t,r){return this.mapLines((n,i)=>i===t?`${r} ${n}`:` ${n}`)}slice(t,r){let n=this.lines.slice(t-1,r).join(` +`);return new e(t,so(n).split(` +`))}highlight(){let t=io(this.toString());return new e(this.firstLineNumber,t.split(` +`))}toString(){return this.lines.join(` +`)}};var wu={red:Qe,gray:At,dim:vt,bold:pe,underline:Pt,highlightSource:e=>e.highlight()},bu={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function Eu({message:e,originalMethod:t,isPanic:r,callArguments:n}){return{functionName:`prisma.${t}()`,message:e,isPanic:r??!1,callArguments:n}}function xu({callsite:e,message:t,originalMethod:r,isPanic:n,callArguments:i},o){let s=Eu({message:t,originalMethod:r,isPanic:n,callArguments:i});if(!e||typeof window<"u"||y.env.NODE_ENV==="production")return s;let a=e.getLocation();if(!a||!a.lineNumber||!a.columnNumber)return s;let l=Math.max(1,a.lineNumber-3),u=hr.read(a.fileName)?.slice(l,a.lineNumber),g=u?.lineAt(a.lineNumber);if(u&&g){let h=Pu(g),P=vu(g);if(!P)return s;s.functionName=`${P.code})`,s.location=a,n||(u=u.mapLineAt(a.lineNumber,C=>C.slice(0,P.openingBraceIndex))),u=o.highlightSource(u);let S=String(u.lastLineNumber).length;if(s.contextLines=u.mapLines((C,A)=>o.gray(String(A).padStart(S))+" "+C).mapLines(C=>o.dim(C)).prependSymbolAt(a.lineNumber,o.bold(o.red("\u2192"))),i){let C=h+S+1;C+=2,s.callArguments=(0,ao.default)(i,C).slice(C)}}return s}function vu(e){let t=Object.keys(kt.ModelAction).join("|"),n=new RegExp(String.raw`\.(${t})\(`).exec(e);if(n){let i=n.index+n[0].length,o=e.lastIndexOf(" ",n.index)+1;return{code:e.slice(o,i),openingBraceIndex:i}}return null}function Pu(e){let t=0;for(let r=0;r"Unknown error")}function fo(e){return e.errors.flatMap(t=>t.kind==="Union"?fo(t):[t])}function Au(e){let t=new Map,r=[];for(let n of e){if(n.kind!=="InvalidArgumentType"){r.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=t.get(i);o?t.set(i,{...n,argument:{...n.argument,typeNames:Ru(o.argument.typeNames,n.argument.typeNames)}}):t.set(i,n)}return r.push(...t.values()),r}function Ru(e,t){return[...new Set(e.concat(t))]}function Su(e){return dn(e,(t,r)=>{let n=uo(t),i=uo(r);return n!==i?n-i:co(t)-co(r)})}function uo(e){let t=0;return Array.isArray(e.selectionPath)&&(t+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(t+=e.argumentPath.length),t}function co(e){switch(e.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}m();c();p();d();f();var ce=class{constructor(t,r){this.name=t;this.value=r;this.isRequired=!1}makeRequired(){return this.isRequired=!0,this}write(t){let{colors:{green:r}}=t.context;t.addMarginSymbol(r(this.isRequired?"+":"?")),t.write(r(this.name)),this.isRequired||t.write(r("?")),t.write(r(": ")),typeof this.value=="string"?t.write(r(this.value)):t.write(this.value)}};m();c();p();d();f();m();c();p();d();f();var at=class{constructor(t=0,r){this.context=r;this.lines=[];this.currentLine="";this.currentIndent=0;this.currentIndent=t}write(t){return typeof t=="string"?this.currentLine+=t:t.write(this),this}writeJoined(t,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(t){return this.marginSymbol=t,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let t=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+t.slice(1):t}};m();c();p();d();f();m();c();p();d();f();var br=class{constructor(t){this.value=t}write(t){t.write(this.value)}markAsError(){this.value.markAsError()}};m();c();p();d();f();var Er=e=>e,xr={bold:Er,red:Er,green:Er,dim:Er,enabled:!1},mo={bold:pe,red:Qe,green:Tt,dim:vt,enabled:!0},lt={write(e){e.writeLine(",")}};m();c();p();d();f();var xe=class{constructor(t){this.contents=t;this.isUnderlined=!1;this.color=t=>t}underline(){return this.isUnderlined=!0,this}setColor(t){return this.color=t,this}write(t){let r=t.getCurrentLineLength();t.write(this.color(this.contents)),this.isUnderlined&&t.afterNextNewline(()=>{t.write(" ".repeat(r)).writeLine(this.color("~".repeat(this.contents.length)))})}};m();c();p();d();f();var je=class{constructor(){this.hasError=!1}markAsError(){return this.hasError=!0,this}};var ut=class extends je{constructor(){super(...arguments);this.items=[]}addItem(r){return this.items.push(new br(r)),this}getField(r){return this.items[r]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(n=>n.value.getPrintWidth()))+2}write(r){if(this.items.length===0){this.writeEmpty(r);return}this.writeWithItems(r)}writeEmpty(r){let n=new xe("[]");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithItems(r){let{colors:n}=r.context;r.writeLine("[").withIndent(()=>r.writeJoined(lt,this.items).newLine()).write("]"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(n.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var ct=class e extends je{constructor(){super(...arguments);this.fields={};this.suggestions=[]}addField(r){this.fields[r.name]=r}addSuggestion(r){this.suggestions.push(r)}getField(r){return this.fields[r]}getDeepField(r){let[n,...i]=r,o=this.getField(n);if(!o)return;let s=o;for(let a of i){let l;if(s.value instanceof e?l=s.value.getField(a):s.value instanceof ut&&(l=s.value.getField(Number(a))),!l)return;s=l}return s}getDeepFieldValue(r){return r.length===0?this:this.getDeepField(r)?.value}hasField(r){return!!this.getField(r)}removeAllFields(){this.fields={}}removeField(r){delete this.fields[r]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(r){return this.getField(r)?.value}getDeepSubSelectionValue(r){let n=this;for(let i of r){if(!(n instanceof e))return;let o=n.getSubSelectionValue(i);if(!o)return;n=o}return n}getDeepSelectionParent(r){let n=this.getSelectionParent();if(!n)return;let i=n;for(let o of r){let s=i.value.getFieldValue(o);if(!s||!(s instanceof e))return;let a=s.getSelectionParent();if(!a)return;i=a}return i}getSelectionParent(){let r=this.getField("select")?.value.asObject();if(r)return{kind:"select",value:r};let n=this.getField("include")?.value.asObject();if(n)return{kind:"include",value:n}}getSubSelectionValue(r){return this.getSelectionParent()?.value.fields[r].value}getPrintWidth(){let r=Object.values(this.fields);return r.length==0?2:Math.max(...r.map(i=>i.getPrintWidth()))+2}write(r){let n=Object.values(this.fields);if(n.length===0&&this.suggestions.length===0){this.writeEmpty(r);return}this.writeWithContents(r,n)}asObject(){return this}writeEmpty(r){let n=new xe("{}");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithContents(r,n){r.writeLine("{").withIndent(()=>{r.writeJoined(lt,[...n,...this.suggestions]).newLine()}),r.write("}"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(r.context.colors.red("~".repeat(this.getPrintWidth())))})}};m();c();p();d();f();var K=class extends je{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new xe(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};m();c();p();d();f();var Lt=class{constructor(){this.fields=[]}addField(t,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${t}: ${r}`))).addMarginSymbol(i(o("+")))}}),this}write(t){let{colors:{green:r}}=t.context;t.writeLine(r("{")).withIndent(()=>{t.writeJoined(lt,this.fields).newLine()}).write(r("}")).addMarginSymbol(r("+"))}};function wr(e,t,r){switch(e.kind){case"MutuallyExclusiveFields":ku(e,t);break;case"IncludeOnScalar":Fu(e,t);break;case"EmptySelection":Mu(e,t,r);break;case"UnknownSelectionField":Nu(e,t);break;case"InvalidSelectionValue":Du(e,t);break;case"UnknownArgument":$u(e,t);break;case"UnknownInputField":Bu(e,t);break;case"RequiredArgumentMissing":ju(e,t);break;case"InvalidArgumentType":qu(e,t);break;case"InvalidArgumentValue":Uu(e,t);break;case"ValueTooLarge":Vu(e,t);break;case"SomeFieldsMissing":Qu(e,t);break;case"TooManyFieldsGiven":Ju(e,t);break;case"Union":po(e,t,r);break;default:throw new Error("not implemented: "+e.kind)}}function ku(e,t){let r=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();r&&(r.getField(e.firstField)?.markAsError(),r.getField(e.secondField)?.markAsError()),t.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function Fu(e,t){let[r,n]=Nt(e.selectionPath),i=e.outputType,o=t.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new ce(s.name,"true"));t.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${Dt(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function Mu(e,t,r){let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){Iu(e,t,i);return}if(n.hasField("select")){_u(e,t);return}}if(r?.[it(e.outputType.name)]){Lu(e,t);return}t.addErrorMessage(()=>`Unknown field at "${e.selectionPath.join(".")} selection"`)}function Iu(e,t,r){r.removeAllFields();for(let n of e.outputType.fields)r.addSuggestion(new ce(n.name,"false"));t.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function _u(e,t){let r=e.outputType,n=t.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),wo(n,r)),t.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(r.name)} must not be empty. ${Dt(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(r.name)} needs ${o.bold("at least one truthy value")}.`)}function Lu(e,t){let r=new Lt;for(let i of e.outputType.fields)i.isRelation||r.addField(i.name,"false");let n=new ce("omit",r).makeRequired();if(e.selectionPath.length===0)t.arguments.addSuggestion(n);else{let[i,o]=Nt(e.selectionPath),a=t.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let l=a?.value.asObject()??new ct;l.addSuggestion(n),a.value=l}}t.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function Nu(e,t){let r=bo(e.selectionPath,t);if(r.parentKind!=="unknown"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case"select":wo(n,e.outputType);break;case"include":Gu(n,e.outputType);break;case"omit":Wu(n,e.outputType);break}}t.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${r.fieldName}\``)}`];return r.parentKind!=="unknown"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`),i.push(Dt(n)),i.join(" ")})}function Du(e,t){let r=bo(e.selectionPath,t);r.parentKind!=="unknown"&&r.field.value.markAsError(),t.addErrorMessage(n=>`Invalid value for selection field \`${n.red(r.fieldName)}\`: ${e.underlyingError}`)}function $u(e,t){let r=e.argumentPath[0],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),Ku(n,e.arguments)),t.addErrorMessage(i=>ho(i,r,e.arguments.map(o=>o.name)))}function Bu(e,t){let[r,n]=Nt(e.argumentPath),i=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&Eo(o,e.inputType)}t.addErrorMessage(o=>ho(o,n,e.inputType.fields.map(s=>s.name)))}function ho(e,t,r){let n=[`Unknown argument \`${e.red(t)}\`.`],i=zu(t,r);return i&&n.push(`Did you mean \`${e.green(i)}\`?`),r.length>0&&n.push(Dt(e)),n.join(" ")}function ju(e,t){let r;t.addErrorMessage(l=>r?.value instanceof K&&r.value.text==="null"?`Argument \`${l.green(o)}\` must not be ${l.red("null")}.`:`Argument \`${l.green(o)}\` is missing.`);let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=Nt(e.argumentPath),s=new Lt,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind==="object"){for(let l of e.inputTypes[0].fields)s.addField(l.name,l.typeNames.join(" | "));a.addSuggestion(new ce(o,s).makeRequired())}else{let l=e.inputTypes.map(yo).join(" | ");a.addSuggestion(new ce(o,l).makeRequired())}}function yo(e){return e.kind==="list"?`${yo(e.elementType)}[]`:e.name}function qu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=vr("or",e.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(r)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function Uu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(r)}\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push("."),e.argument.typeNames.length>0){let s=vr("or",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function Vu(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof K&&(i=s.text)}t.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(r)}\``),s.join(" ")})}function Qu(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&Eo(i,e.inputType)}t.addErrorMessage(i=>{let o=[`Argument \`${i.bold(r)}\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green("at least one of")} ${vr("or",e.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(Dt(i)),o.join(" ")})}function Ju(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}t.addErrorMessage(o=>{let s=[`Argument \`${o.bold(r)}\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${vr("and",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push("one."):s.push(`${e.constraints.maxFieldCount}.`),s.join(" ")})}function wo(e,t){for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ce(r.name,"true"))}function Gu(e,t){for(let r of t.fields)r.isRelation&&!e.hasField(r.name)&&e.addSuggestion(new ce(r.name,"true"))}function Wu(e,t){for(let r of t.fields)!e.hasField(r.name)&&!r.isRelation&&e.addSuggestion(new ce(r.name,"true"))}function Ku(e,t){for(let r of t)e.hasField(r.name)||e.addSuggestion(new ce(r.name,r.typeNames.join(" | ")))}function bo(e,t){let[r,n]=Nt(e),i=t.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),l=o?.getField(n);return o&&l?{parentKind:"select",parent:o,field:l,fieldName:n}:(l=s?.getField(n),s&&l?{parentKind:"include",field:l,parent:s,fieldName:n}:(l=a?.getField(n),a&&l?{parentKind:"omit",field:l,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function Eo(e,t){if(t.kind==="object")for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new ce(r.name,r.typeNames.join(" | ")))}function Nt(e){let t=[...e],r=t.pop();if(!r)throw new Error("unexpected empty path");return[t,r]}function Dt({green:e,enabled:t}){return"Available options are "+(t?`listed in ${e("green")}`:"marked with ?")+"."}function vr(e,t){if(t.length===1)return t[0];let r=[...t],n=r.pop();return`${r.join(", ")} ${e} ${n}`}var Hu=3;function zu(e,t){let r=1/0,n;for(let i of t){let o=(0,go.default)(e,i);o>Hu||o`}};function pt(e){return e instanceof $t}m();c();p();d();f();var Pr=Symbol(),En=new WeakMap,Ie=class{constructor(t){t===Pr?En.set(this,`Prisma.${this._getName()}`):En.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return En.get(this)}},Bt=class extends Ie{_getNamespace(){return"NullTypes"}},jt=class extends Bt{};xn(jt,"DbNull");var qt=class extends Bt{};xn(qt,"JsonNull");var Ut=class extends Bt{};xn(Ut,"AnyNull");var Tr={classes:{DbNull:jt,JsonNull:qt,AnyNull:Ut},instances:{DbNull:new jt(Pr),JsonNull:new qt(Pr),AnyNull:new Ut(Pr)}};function xn(e,t){Object.defineProperty(e,"name",{value:t,configurable:!0})}m();c();p();d();f();var vo=": ",Cr=class{constructor(t,r){this.name=t;this.value=r;this.hasError=!1}markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+vo.length}write(t){let r=new xe(this.name);this.hasError&&r.underline().setColor(t.context.colors.red),t.write(r).write(vo).write(this.value)}};var vn=class{constructor(t){this.errorMessages=[];this.arguments=t}write(t){t.write(this.arguments)}addErrorMessage(t){this.errorMessages.push(t)}renderAllMessages(t){return this.errorMessages.map(r=>r(t)).join(` +`)}};function dt(e){return new vn(Po(e))}function Po(e){let t=new ct;for(let[r,n]of Object.entries(e)){let i=new Cr(r,To(n));t.addField(i)}return t}function To(e){if(typeof e=="string")return new K(JSON.stringify(e));if(typeof e=="number"||typeof e=="boolean")return new K(String(e));if(typeof e=="bigint")return new K(`${e}n`);if(e===null)return new K("null");if(e===void 0)return new K("undefined");if(st(e))return new K(`new Prisma.Decimal("${e.toFixed()}")`);if(e instanceof Uint8Array)return w.Buffer.isBuffer(e)?new K(`Buffer.alloc(${e.byteLength})`):new K(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let t=mr(e)?e.toISOString():"Invalid Date";return new K(`new Date("${t}")`)}return e instanceof Ie?new K(`Prisma.${e._getName()}`):pt(e)?new K(`prisma.${xo(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?Yu(e):typeof e=="object"?Po(e):new K(Object.prototype.toString.call(e))}function Yu(e){let t=new ut;for(let r of e)t.addItem(To(r));return t}function Ar(e,t){let r=t==="pretty"?mo:xr,n=e.renderAllMessages(r),i=new at(0,{colors:r}).write(e).toString();return{message:n,args:i}}function Rr({args:e,errors:t,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=dt(e);for(let h of t)wr(h,a,s);let{message:l,args:u}=Ar(a,r),g=yr({message:l,callsite:n,originalMethod:i,showColors:r==="pretty",callArguments:u});throw new X(g,{clientVersion:o})}m();c();p();d();f();m();c();p();d();f();var ve=class{constructor(){this._map=new Map}get(t){return this._map.get(t)?.value}set(t,r){this._map.set(t,{value:r})}getOrCreate(t,r){let n=this._map.get(t);if(n)return n.value;let i=r();return this.set(t,i),i}};m();c();p();d();f();function Vt(e){let t;return{get(){return t||(t={value:e()}),t.value}}}m();c();p();d();f();function Pe(e){return e.replace(/^./,t=>t.toLowerCase())}m();c();p();d();f();function Ao(e,t,r){let n=Pe(r);return!t.result||!(t.result.$allModels||t.result[n])?e:Zu({...e,...Co(t.name,e,t.result.$allModels),...Co(t.name,e,t.result[n])})}function Zu(e){let t=new ve,r=(n,i)=>t.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>r(o,i)):[n]));return et(e,n=>({...n,needs:r(n.name,new Set)}))}function Co(e,t,r){return r?et(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:Xu(t,o,i)})):{}}function Xu(e,t,r){let n=e?.[t]?.compute;return n?i=>r({...i,[t]:n(i)}):r}function Ro(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(e[n.name])for(let i of n.needs)r[i]=!0;return r}function So(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(!e[n.name])for(let i of n.needs)delete r[i];return r}var Sr=class{constructor(t,r){this.extension=t;this.previous=r;this.computedFieldsCache=new ve;this.modelExtensionsCache=new ve;this.queryCallbacksCache=new ve;this.clientExtensions=Vt(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());this.batchCallbacks=Vt(()=>{let t=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?t.concat(r):t})}getAllComputedFields(t){return this.computedFieldsCache.getOrCreate(t,()=>Ao(this.previous?.getAllComputedFields(t),this.extension,t))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(t){return this.modelExtensionsCache.getOrCreate(t,()=>{let r=Pe(t);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(t):{...this.previous?.getAllModelExtensions(t),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(t,r){return this.queryCallbacksCache.getOrCreate(`${t}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(t,r)??[],i=[],o=this.extension.query;return!o||!(o[t]||o.$allModels||o[r]||o.$allOperations)?n:(o[t]!==void 0&&(o[t][r]!==void 0&&i.push(o[t][r]),o[t].$allOperations!==void 0&&i.push(o[t].$allOperations)),t!=="$none"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},ft=class e{constructor(t){this.head=t}static empty(){return new e}static single(t){return new e(new Sr(t))}isEmpty(){return this.head===void 0}append(t){return new e(new Sr(t,this.head))}getAllComputedFields(t){return this.head?.getAllComputedFields(t)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(t){return this.head?.getAllModelExtensions(t)}getAllQueryCallbacks(t,r){return this.head?.getAllQueryCallbacks(t,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};m();c();p();d();f();m();c();p();d();f();var Oo=Symbol(),Qt=class{constructor(t){if(t!==Oo)throw new Error("Skip instance can not be constructed directly")}ifUndefined(t){return t===void 0?Or:t}},Or=new Qt(Oo);function Te(e){return e instanceof Qt}var ec={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},ko="explicitly `undefined` values are not allowed";function kr({modelName:e,action:t,args:r,runtimeDataModel:n,extensions:i=ft.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:g}){let h=new Pn({runtimeDataModel:n,modelName:e,action:t,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:l,previewFeatures:u,globalOmit:g});return{modelName:e,action:ec[t],query:Jt(r,h)}}function Jt({select:e,include:t,...r}={},n){let i;return n.isPreviewFeatureOn("omitApi")&&(i=r.omit,delete r.omit),{arguments:Mo(r,n),selection:tc(e,t,i,n)}}function tc(e,t,r,n){return e?(t?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):r&&n.isPreviewFeatureOn("omitApi")&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),oc(e,n)):rc(n,t,r)}function rc(e,t,r){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),t&&nc(n,t,e),e.isPreviewFeatureOn("omitApi")&&ic(n,r,e),n}function nc(e,t,r){for(let[n,i]of Object.entries(t)){if(Te(i))continue;let o=r.nestSelection(n);if(Tn(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!=="object"&&r.throwValidationError({kind:"IncludeOnScalar",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){e[n]=Jt(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=Jt(i,o)}}function ic(e,t,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...t},o=So(i,n);for(let[s,a]of Object.entries(o)){if(Te(a))continue;Tn(a,r.nestSelection(s));let l=r.findField(s);n?.[s]&&!l||(e[s]=!a)}}function oc(e,t){let r={},n=t.getComputedFields(),i=Ro(e,n);for(let[o,s]of Object.entries(i)){if(Te(s))continue;let a=t.nestSelection(o);Tn(s,a);let l=t.findField(o);if(!(n?.[o]&&!l)){if(s===!1||s===void 0||Te(s)){r[o]=!1;continue}if(s===!0){l?.kind==="object"?r[o]=Jt({},a):r[o]=!0;continue}r[o]=Jt(s,a)}}return r}function Fo(e,t){if(e===null)return null;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="bigint")return{$type:"BigInt",value:String(e)};if(ot(e)){if(mr(e))return{$type:"DateTime",value:e.toISOString()};t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(pt(e))return{$type:"FieldRef",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return sc(e,t);if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{$type:"Bytes",value:w.Buffer.from(r,n,i).toString("base64")}}if(ac(e))return e.values;if(st(e))return{$type:"Decimal",value:e.toFixed()};if(e instanceof Ie){if(e!==Tr.instances[e._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:e._getName()}}if(lc(e))return e.toJSON();if(typeof e=="object")return Mo(e,t);t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function Mo(e,t){if(e.$type)return{$type:"Raw",value:e};let r={};for(let n in e){let i=e[n],o=t.nestArgument(n);Te(i)||(i!==void 0?r[n]=Fo(i,o):t.isPreviewFeatureOn("strictUndefinedChecks")&&t.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:t.getSelectionPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:ko}))}return r}function sc(e,t){let r=[];for(let n=0;n({name:t.name,typeName:"boolean",isRelation:t.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(t){return this.params.previewFeatures.includes(t)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(t){return this.modelOrType?.fields.find(r=>r.name===t)}nestSelection(t){let r=this.findField(t),n=r?.kind==="object"?r.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(t)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[it(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:Fe(this.params.action,"Unknown action")}}nestArgument(t){return new e({...this.params,argumentPath:this.params.argumentPath.concat(t)})}};m();c();p();d();f();var mt=class{constructor(t){this._engine=t}prometheus(t){return this._engine.metrics({format:"prometheus",...t})}json(t){return this._engine.metrics({format:"json",...t})}};m();c();p();d();f();function Io(e){return{models:Cn(e.models),enums:Cn(e.enums),types:Cn(e.types)}}function Cn(e){let t={};for(let{name:r,...n}of e)t[r]=n;return t}function _o(e,t){let r=Vt(()=>uc(t));Object.defineProperty(e,"dmmf",{get:()=>r.get()})}function uc(e){return{datamodel:{models:An(e.models),enums:An(e.enums),types:An(e.types)}}}function An(e){return Object.entries(e).map(([t,r])=>({name:t,...r}))}m();c();p();d();f();var Rn=new WeakMap,Fr="$$PrismaTypedSql",Sn=class{constructor(t,r){Rn.set(this,{sql:t,values:r}),Object.defineProperty(this,Fr,{value:Fr})}get sql(){return Rn.get(this).sql}get values(){return Rn.get(this).values}};function Lo(e){return(...t)=>new Sn(e,t)}function No(e){return e!=null&&e[Fr]===Fr}m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();function Gt(e){return{ok:!1,error:e,map(){return Gt(e)},flatMap(){return Gt(e)}}}var On=class{constructor(){this.registeredErrors=[]}consumeError(t){return this.registeredErrors[t]}registerNewError(t){let r=0;for(;this.registeredErrors[r]!==void 0;)r++;return this.registeredErrors[r]={error:t},r}},kn=e=>{let t=new On,r=Ce(t,e.transactionContext.bind(e)),n={adapterName:e.adapterName,errorRegistry:t,queryRaw:Ce(t,e.queryRaw.bind(e)),executeRaw:Ce(t,e.executeRaw.bind(e)),provider:e.provider,transactionContext:async(...i)=>(await r(...i)).map(s=>cc(t,s))};return e.getConnectionInfo&&(n.getConnectionInfo=dc(t,e.getConnectionInfo.bind(e))),n},cc=(e,t)=>{let r=Ce(e,t.startTransaction.bind(t));return{adapterName:t.adapterName,provider:t.provider,queryRaw:Ce(e,t.queryRaw.bind(t)),executeRaw:Ce(e,t.executeRaw.bind(t)),startTransaction:async(...n)=>(await r(...n)).map(o=>pc(e,o))}},pc=(e,t)=>({adapterName:t.adapterName,provider:t.provider,options:t.options,queryRaw:Ce(e,t.queryRaw.bind(t)),executeRaw:Ce(e,t.executeRaw.bind(t)),commit:Ce(e,t.commit.bind(t)),rollback:Ce(e,t.rollback.bind(t))});function Ce(e,t){return async(...r)=>{try{return await t(...r)}catch(n){let i=e.registerNewError(n);return Gt({kind:"GenericJs",id:i})}}}function dc(e,t){return(...r)=>{try{return t(...r)}catch(n){let i=e.registerNewError(n);return Gt({kind:"GenericJs",id:i})}}}var ta=he(Do());var FO=he($o());Ii();en();sn();m();c();p();d();f();var se=class e{constructor(t,r){if(t.length-1!==r.length)throw t.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${t.length} strings to have ${t.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=t[0];let i=0,o=0;for(;ie.getPropertyValue(r))},getPropertyDescriptor(r){return e.getPropertyDescriptor?.(r)}}}m();c();p();d();f();m();c();p();d();f();var Mr={enumerable:!0,configurable:!0,writable:!0};function Ir(e){let t=new Set(e);return{getOwnPropertyDescriptor:()=>Mr,has:(r,n)=>t.has(n),set:(r,n,i)=>t.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...t]}}var qo=Symbol.for("nodejs.util.inspect.custom");function Ae(e,t){let r=mc(t),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=Uo(Reflect.ownKeys(o),r),a=Uo(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let l=r.get(s);return l?l.getPropertyDescriptor?{...Mr,...l?.getPropertyDescriptor(s)}:Mr:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)}});return i[qo]=function(){let o={...this};return delete o[qo],o},i}function mc(e){let t=new Map;for(let r of e){let n=r.getKeys();for(let i of n)t.set(i,r)}return t}function Uo(e,t){return e.filter(r=>t.get(r)?.has?.(r)??!0)}m();c();p();d();f();function gt(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}m();c();p();d();f();function _r(e,t){return{batch:e,transaction:t?.kind==="batch"?{isolationLevel:t.options.isolationLevel}:void 0}}m();c();p();d();f();function Vo(e){if(e===void 0)return"";let t=dt(e);return new at(0,{colors:xr}).write(t).toString()}m();c();p();d();f();var gc="P2037";function Lr({error:e,user_facing_error:t},r,n){return t.error_code?new ie(hc(t,n),{code:t.error_code,clientVersion:r,meta:t.meta,batchRequestIdx:t.batch_request_idx}):new W(e,{clientVersion:r,batchRequestIdx:t.batch_request_idx})}function hc(e,t){let r=e.message;return(t==="postgresql"||t==="postgres"||t==="mysql")&&e.error_code===gc&&(r+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();var Kt="";function Qo(e){var t=e.split(` +`);return t.reduce(function(r,n){var i=bc(n)||xc(n)||Tc(n)||Sc(n)||Ac(n);return i&&r.push(i),r},[])}var yc=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,wc=/\((\S*)(?::(\d+))(?::(\d+))\)/;function bc(e){var t=yc.exec(e);if(!t)return null;var r=t[2]&&t[2].indexOf("native")===0,n=t[2]&&t[2].indexOf("eval")===0,i=wc.exec(t[2]);return n&&i!=null&&(t[2]=i[1],t[3]=i[2],t[4]=i[3]),{file:r?null:t[2],methodName:t[1]||Kt,arguments:r?[t[2]]:[],lineNumber:t[3]?+t[3]:null,column:t[4]?+t[4]:null}}var Ec=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function xc(e){var t=Ec.exec(e);return t?{file:t[2],methodName:t[1]||Kt,arguments:[],lineNumber:+t[3],column:t[4]?+t[4]:null}:null}var vc=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,Pc=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function Tc(e){var t=vc.exec(e);if(!t)return null;var r=t[3]&&t[3].indexOf(" > eval")>-1,n=Pc.exec(t[3]);return r&&n!=null&&(t[3]=n[1],t[4]=n[2],t[5]=null),{file:t[3],methodName:t[1]||Kt,arguments:t[2]?t[2].split(","):[],lineNumber:t[4]?+t[4]:null,column:t[5]?+t[5]:null}}var Cc=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;function Ac(e){var t=Cc.exec(e);return t?{file:t[3],methodName:t[1]||Kt,arguments:[],lineNumber:+t[4],column:t[5]?+t[5]:null}:null}var Rc=/^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;function Sc(e){var t=Rc.exec(e);return t?{file:t[2],methodName:t[1]||Kt,arguments:[],lineNumber:+t[3],column:t[4]?+t[4]:null}:null}var In=class{getLocation(){return null}},_n=class{constructor(){this._error=new Error}getLocation(){let t=this._error.stack;if(!t)return null;let n=Qo(t).find(i=>{if(!i.file)return!1;let o=an(i.file);return o!==""&&!o.includes("@prisma")&&!o.includes("/packages/client/src/runtime/")&&!o.endsWith("/runtime/binary.js")&&!o.endsWith("/runtime/library.js")&&!o.endsWith("/runtime/edge.js")&&!o.endsWith("/runtime/edge-esm.js")&&!o.startsWith("internal/")&&!i.methodName.includes("new ")&&!i.methodName.includes("getCallSite")&&!i.methodName.includes("Proxy.")&&i.methodName.split(".").length<4});return!n||!n.file?null:{fileName:n.file,lineNumber:n.lineNumber,columnNumber:n.column}}};function qe(e){return e==="minimal"?typeof $EnabledCallSite=="function"&&e!=="minimal"?new $EnabledCallSite:new In:new _n}m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();var Jo={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function ht(e={}){let t=kc(e);return Object.entries(t).reduce((n,[i,o])=>(Jo[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function kc(e={}){return typeof e._count=="boolean"?{...e,_count:{_all:e._count}}:e}function Nr(e={}){return t=>(typeof e._count=="boolean"&&(t._count=t._count._all),t)}function Go(e,t){let r=Nr(e);return t({action:"aggregate",unpacker:r,argsMapper:ht})(e)}m();c();p();d();f();function Fc(e={}){let{select:t,...r}=e;return typeof t=="object"?ht({...r,_count:t}):ht({...r,_count:{_all:!0}})}function Mc(e={}){return typeof e.select=="object"?t=>Nr(e)(t)._count:t=>Nr(e)(t)._count._all}function Wo(e,t){return t({action:"count",unpacker:Mc(e),argsMapper:Fc})(e)}m();c();p();d();f();function Ic(e={}){let t=ht(e);if(Array.isArray(t.by))for(let r of t.by)typeof r=="string"&&(t.select[r]=!0);else typeof t.by=="string"&&(t.select[t.by]=!0);return t}function _c(e={}){return t=>(typeof e?._count=="boolean"&&t.forEach(r=>{r._count=r._count._all}),t)}function Ko(e,t){return t({action:"groupBy",unpacker:_c(e),argsMapper:Ic})(e)}function Ho(e,t,r){if(t==="aggregate")return n=>Go(n,r);if(t==="count")return n=>Wo(n,r);if(t==="groupBy")return n=>Ko(n,r)}m();c();p();d();f();function zo(e,t){let r=t.fields.filter(i=>!i.relationName),n=pn(r,i=>i.name);return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new $t(e,o,s.type,s.isList,s.kind==="enum")},...Ir(Object.keys(n))})}m();c();p();d();f();m();c();p();d();f();var Yo=e=>Array.isArray(e)?e:e.split("."),Ln=(e,t)=>Yo(t).reduce((r,n)=>r&&r[n],e),Zo=(e,t,r)=>Yo(t).reduceRight((n,i,o,s)=>Object.assign({},Ln(e,s.slice(0,o)),{[i]:n}),r);function Lc(e,t){return e===void 0||t===void 0?[]:[...t,"select",e]}function Nc(e,t,r){return t===void 0?e??{}:Zo(t,r,e||!0)}function Nn(e,t,r,n,i,o){let a=e._runtimeDataModel.models[t].fields.reduce((l,u)=>({...l,[u.name]:u}),{});return l=>{let u=qe(e._errorFormat),g=Lc(n,i),h=Nc(l,o,g),P=r({dataPath:g,callsite:u})(h),S=Dc(e,t);return new Proxy(P,{get(C,A){if(!S.includes(A))return C[A];let _=[a[A].type,r,A],N=[g,h];return Nn(e,..._,...N)},...Ir([...S,...Object.getOwnPropertyNames(P)])})}}function Dc(e,t){return e._runtimeDataModel.models[t].fields.filter(r=>r.kind==="object").map(r=>r.name)}var $c=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],Bc=["aggregate","count","groupBy"];function Dn(e,t){let r=e._extensions.getAllModelExtensions(t)??{},n=[jc(e,t),Uc(e,t),Wt(r),te("name",()=>t),te("$name",()=>t),te("$parent",()=>e._appliedParent)];return Ae({},n)}function jc(e,t){let r=Pe(t),n=Object.keys(kt.ModelAction).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>l=>{let u=qe(e._errorFormat);return e._createPrismaPromise(g=>{let h={args:l,dataPath:[],action:o,model:t,clientMethod:`${r}.${i}`,jsModelName:r,transaction:g,callsite:u};return e._request({...h,...a})})};return $c.includes(o)?Nn(e,t,s):qc(i)?Ho(e,i,s):s({})}}}function qc(e){return Bc.includes(e)}function Uc(e,t){return We(te("fields",()=>{let r=e._runtimeDataModel.models[t];return zo(t,r)}))}m();c();p();d();f();function Xo(e){return e.replace(/^./,t=>t.toUpperCase())}var $n=Symbol();function Ht(e){let t=[Vc(e),te($n,()=>e),te("$parent",()=>e._appliedParent)],r=e._extensions.getAllClientExtensions();return r&&t.push(Wt(r)),Ae(e,t)}function Vc(e){let t=Object.keys(e._runtimeDataModel.models),r=t.map(Pe),n=[...new Set(t.concat(r))];return We({getKeys(){return n},getPropertyValue(i){let o=Xo(i);if(e._runtimeDataModel.models[o]!==void 0)return Dn(e,o);if(e._runtimeDataModel.models[i]!==void 0)return Dn(e,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function es(e){return e[$n]?e[$n]:e}function ts(e){if(typeof e=="function")return e(this);if(e.client?.__AccelerateEngine){let r=e.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let t=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return Ht(t)}m();c();p();d();f();m();c();p();d();f();function rs({result:e,modelName:t,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(t);if(!o)return e;let s=[],a=[];for(let l of Object.values(o)){if(n){if(n[l.name])continue;let u=l.needs.filter(g=>n[g]);u.length>0&&a.push(gt(u))}else if(r){if(!r[l.name])continue;let u=l.needs.filter(g=>!r[g]);u.length>0&&a.push(gt(u))}Qc(e,l.needs)&&s.push(Jc(l,Ae(e,s)))}return s.length>0||a.length>0?Ae(e,[...s,...a]):e}function Qc(e,t){return t.every(r=>cn(e,r))}function Jc(e,t){return We(te(e.name,()=>e.compute(t)))}m();c();p();d();f();function Dr({visitor:e,result:t,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(t)){for(let s=0;sg.name===o);if(!l||l.kind!=="object"||!l.relationName)continue;let u=typeof s=="object"?s:{};t[o]=Dr({visitor:i,result:t[o],args:u,modelName:l.type,runtimeDataModel:n})}}function is({result:e,modelName:t,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!="object"||!i.models[t]?e:Dr({result:e,args:r??{},modelName:t,runtimeDataModel:i,visitor:(a,l,u)=>{let g=Pe(l);return rs({result:a,modelName:g,select:u.select,omit:u.select?void 0:{...o?.[g],...u.omit},extensions:n})}})}m();c();p();d();f();m();c();p();d();f();function os(e){if(e instanceof se)return Gc(e);if(Array.isArray(e)){let r=[e[0]];for(let n=1;n{let o=t.customDataProxyFetch;return"transaction"in t&&i!==void 0&&(t.transaction?.kind==="batch"&&t.transaction.lock.then(),t.transaction=i),n===r.length?e._executeRequest(t):r[n]({model:t.model,operation:t.model?t.action:t.clientMethod,args:os(t.args??{}),__internalParams:t,query:(s,a=t)=>{let l=a.customDataProxyFetch;return a.customDataProxyFetch=ps(o,l),a.args=s,as(e,a,r,n+1)}})})}function ls(e,t){let{jsModelName:r,action:n,clientMethod:i}=t,o=r?n:i;if(e._extensions.isEmpty())return e._executeRequest(t);let s=e._extensions.getAllQueryCallbacks(r??"$none",o);return as(e,t,s)}function us(e){return t=>{let r={requests:t},n=t[0].extensions.getAllBatchQueryCallbacks();return n.length?cs(r,n,0,e):e(r)}}function cs(e,t,r,n){if(r===t.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return t[r]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let l=a.customDataProxyFetch;return a.customDataProxyFetch=ps(i,l),cs(a,t,r+1,n)}})}var ss=e=>e;function ps(e=ss,t=ss){return r=>e(t(r))}m();c();p();d();f();var ds=ae("prisma:client"),fs={Vercel:"vercel","Netlify CI":"netlify"};function ms({postinstall:e,ciName:t,clientVersion:r}){if(ds("checkPlatformCaching:postinstall",e),ds("checkPlatformCaching:ciName",t),e===!0&&t&&t in fs){let n=`Prisma has detected that this project was built on ${t}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${fs[t]}-build`;throw console.error(n),new V(n,r)}}m();c();p();d();f();function gs(e,t){return e?e.datasources?e.datasources:e.datasourceUrl?{[t[0]]:{url:e.datasourceUrl}}:{}:{}}m();c();p();d();f();m();c();p();d();f();m();c();p();d();f();var Wc="Cloudflare-Workers",Kc="node";function hs(){return typeof Netlify=="object"?"netlify":typeof EdgeRuntime=="string"?"edge-light":globalThis.navigator?.userAgent===Wc?"workerd":globalThis.Deno?"deno":globalThis.__lagon__?"lagon":globalThis.process?.release?.name===Kc?"node":globalThis.Bun?"bun":globalThis.fastly?"fastly":"unknown"}var Hc={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function ys(){let e=hs();return{id:e,prettyName:Hc[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}m();c();p();d();f();m();c();p();d();f();var Bn=he(un());m();c();p();d();f();function ws(e){return e?e.replace(/".*"/g,'"X"').replace(/[\s:\[]([+-]?([0-9]*[.])?[0-9]+)/g,t=>`${t[0]}5`):""}m();c();p();d();f();function bs(e){return e.split(` +`).map(t=>t.replace(/^\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)\s*/,"").replace(/\+\d+\s*ms$/,"")).join(` +`)}m();c();p();d();f();var Es=he(ji());function xs({title:e,user:t="prisma",repo:r="prisma",template:n="bug_report.yml",body:i}){return(0,Es.default)({user:t,repo:r,template:n,title:e,body:i})}function vs({version:e,binaryTarget:t,title:r,description:n,engineVersion:i,database:o,query:s}){let a=Ci(6e3-(s?.length??0)),l=bs((0,Bn.default)(a)),u=n?`# Description +\`\`\` +${n} +\`\`\``:"",g=(0,Bn.default)(`Hi Prisma Team! My Prisma Client just crashed. This is the report: +## Versions + +| Name | Version | +|-----------------|--------------------| +| Node | ${y.version?.padEnd(19)}| +| OS | ${t?.padEnd(19)}| +| Prisma Client | ${e?.padEnd(19)}| +| Query Engine | ${i?.padEnd(19)}| +| Database | ${o?.padEnd(19)}| + +${u} + +## Logs +\`\`\` +${l} +\`\`\` + +## Client Snippet +\`\`\`ts +// PLEASE FILL YOUR CODE SNIPPET HERE +\`\`\` + +## Schema +\`\`\`prisma +// PLEASE ADD YOUR SCHEMA HERE IF POSSIBLE +\`\`\` + +## Prisma Engine Query +\`\`\` +${s?ws(s):""} +\`\`\` +`),h=xs({title:r,body:g});return`${r} + +This is a non-recoverable error which probably happens when the Prisma Query Engine has a panic. + +${Pt(h)} + +If you want the Prisma team to look into it, please open the link above \u{1F64F} +To increase the chance of success, please post your schema and a snippet of +how you used Prisma Client in the issue. +`}m();c();p();d();f();function $r({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw new V(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new V("error: Missing URL environment variable, value, or override.",n);return i}m();c();p();d();f();m();c();p();d();f();function Ps(e){if(e?.kind==="itx")return e.options.id}m();c();p();d();f();var jn=class{constructor(t,r,n){this.engineObject=__PrismaProxy.create({datamodel:t.datamodel,env:y.env,ignoreEnvVarErrors:!0,datasourceOverrides:t.datasourceOverrides??{},logLevel:t.logLevel,logQueries:t.logQueries??!1,logCallback:r,enableTracing:t.enableTracing})}async connect(t,r){return __PrismaProxy.connect(this.engineObject,t,r)}async disconnect(t,r){return __PrismaProxy.disconnect(this.engineObject,t,r)}query(t,r,n,i){return __PrismaProxy.execute(this.engineObject,t,r,n,i)}sdlSchema(){return Promise.resolve("{}")}dmmf(t){return Promise.resolve("{}")}async startTransaction(t,r,n){return __PrismaProxy.startTransaction(this.engineObject,t,r,n)}async commitTransaction(t,r,n){return __PrismaProxy.commitTransaction(this.engineObject,t,r,n)}async rollbackTransaction(t,r,n){return __PrismaProxy.rollbackTransaction(this.engineObject,t,r,n)}metrics(t){return Promise.resolve("{}")}async applyPendingMigrations(){return __PrismaProxy.applyPendingMigrations(this.engineObject)}trace(t){return __PrismaProxy.trace(this.engineObject,t)}},Ts={async loadLibrary(e){if(!__PrismaProxy)throw new V("__PrismaProxy not detected make sure React Native bindings are installed",e.clientVersion);return{debugPanic(){return Promise.reject("{}")},dmmf(){return Promise.resolve("{}")},version(){return{commit:"unknown",version:"unknown"}},QueryEngine:jn}}};var zc="P2036",Re=ae("prisma:client:libraryEngine");function Yc(e){return e.item_type==="query"&&"query"in e}function Zc(e){return"level"in e?e.level==="error"&&e.message==="PANIC":!1}var eR=[...on,"native"],Xc=0xffffffffffffffffn,qn=1n;function ep(){let e=qn++;return qn>Xc&&(qn=1n),e}var Yt=class{constructor(t,r){this.name="LibraryEngine";this.libraryLoader=Ts,this.config=t,this.libraryStarted=!1,this.logQueries=t.logQueries??!1,this.logLevel=t.logLevel??"error",this.logEmitter=t.logEmitter,this.datamodel=t.inlineSchema,this.tracingHelper=t.tracingHelper,t.enableDebugLogs&&(this.logLevel="debug");let n=Object.keys(t.overrideDatasources)[0],i=t.overrideDatasources[n]?.url;n!==void 0&&i!==void 0&&(this.datasourceOverrides={[n]:i}),this.libraryInstantiationPromise=this.instantiateLibrary()}wrapEngine(t){return{applyPendingMigrations:t.applyPendingMigrations?.bind(t),commitTransaction:this.withRequestId(t.commitTransaction.bind(t)),connect:this.withRequestId(t.connect.bind(t)),disconnect:this.withRequestId(t.disconnect.bind(t)),metrics:t.metrics?.bind(t),query:this.withRequestId(t.query.bind(t)),rollbackTransaction:this.withRequestId(t.rollbackTransaction.bind(t)),sdlSchema:t.sdlSchema?.bind(t),startTransaction:this.withRequestId(t.startTransaction.bind(t)),trace:t.trace.bind(t)}}withRequestId(t){return async(...r)=>{let n=ep().toString();try{return await t(...r,n)}finally{if(this.tracingHelper.isEnabled()){let i=await this.engine?.trace(n);if(i){let o=JSON.parse(i);this.tracingHelper.dispatchEngineSpans(o.spans)}}}}}async applyPendingMigrations(){await this.start(),await this.engine?.applyPendingMigrations()}async transaction(t,r,n){await this.start();let i=JSON.stringify(r),o;if(t==="start"){let a=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel});o=await this.engine?.startTransaction(a,i)}else t==="commit"?o=await this.engine?.commitTransaction(n.id,i):t==="rollback"&&(o=await this.engine?.rollbackTransaction(n.id,i));let s=this.parseEngineResponse(o);if(tp(s)){let a=this.getExternalAdapterError(s);throw a?a.error:new ie(s.message,{code:s.error_code,clientVersion:this.config.clientVersion,meta:s.meta})}return s}async instantiateLibrary(){if(Re("internalSetup"),this.libraryInstantiationPromise)return this.libraryInstantiationPromise;this.binaryTarget=await this.getCurrentBinaryTarget(),await this.tracingHelper.runInChildSpan("load_engine",()=>this.loadEngine()),this.version()}async getCurrentBinaryTarget(){}parseEngineResponse(t){if(!t)throw new W("Response from the Engine was empty",{clientVersion:this.config.clientVersion});try{return JSON.parse(t)}catch{throw new W("Unable to JSON.parse response from engine",{clientVersion:this.config.clientVersion})}}async loadEngine(){if(!this.engine){this.QueryEngineConstructor||(this.library=await this.libraryLoader.loadLibrary(this.config),this.QueryEngineConstructor=this.library.QueryEngine);try{let t=new b(this),{adapter:r}=this.config;r&&Re("Using driver adapter: %O",r),this.engine=this.wrapEngine(new this.QueryEngineConstructor({datamodel:this.datamodel,env:y.env,logQueries:this.config.logQueries??!1,ignoreEnvVarErrors:!0,datasourceOverrides:this.datasourceOverrides??{},logLevel:this.logLevel,configDir:this.config.cwd,engineProtocol:"json",enableTracing:this.tracingHelper.isEnabled()},n=>{t.deref()?.logger(n)},r))}catch(t){let r=t,n=this.parseInitError(r.message);throw typeof n=="string"?r:new V(n.message,this.config.clientVersion,n.error_code)}}}logger(t){let r=this.parseEngineResponse(t);r&&(r.level=r?.level.toLowerCase()??"unknown",Yc(r)?this.logEmitter.emit("query",{timestamp:new Date,query:r.query,params:r.params,duration:Number(r.duration_ms),target:r.module_path}):Zc(r)?this.loggerRustPanic=new ue(Un(this,`${r.message}: ${r.reason} in ${r.file}:${r.line}:${r.column}`),this.config.clientVersion):this.logEmitter.emit(r.level,{timestamp:new Date,message:r.message,target:r.module_path}))}parseInitError(t){try{return JSON.parse(t)}catch{}return t}parseRequestError(t){try{return JSON.parse(t)}catch{}return t}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.')}async start(){if(await this.libraryInstantiationPromise,await this.libraryStoppingPromise,this.libraryStartingPromise)return Re(`library already starting, this.libraryStarted: ${this.libraryStarted}`),this.libraryStartingPromise;if(this.libraryStarted)return;let t=async()=>{Re("library starting");try{let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.connect(JSON.stringify(r)),this.libraryStarted=!0,Re("library started")}catch(r){let n=this.parseInitError(r.message);throw typeof n=="string"?r:new V(n.message,this.config.clientVersion,n.error_code)}finally{this.libraryStartingPromise=void 0}};return this.libraryStartingPromise=this.tracingHelper.runInChildSpan("connect",t),this.libraryStartingPromise}async stop(){if(await this.libraryStartingPromise,await this.executingQueryPromise,this.libraryStoppingPromise)return Re("library is already stopping"),this.libraryStoppingPromise;if(!this.libraryStarted)return;let t=async()=>{await new Promise(n=>setTimeout(n,5)),Re("library stopping");let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.disconnect(JSON.stringify(r)),this.libraryStarted=!1,this.libraryStoppingPromise=void 0,Re("library stopped")};return this.libraryStoppingPromise=this.tracingHelper.runInChildSpan("disconnect",t),this.libraryStoppingPromise}version(){return this.versionInfo=this.library?.version(),this.versionInfo?.version??"unknown"}debugPanic(t){return this.library?.debugPanic(t)}async request(t,{traceparent:r,interactiveTransaction:n}){Re(`sending request, this.libraryStarted: ${this.libraryStarted}`);let i=JSON.stringify({traceparent:r}),o=JSON.stringify(t);try{await this.start(),this.executingQueryPromise=this.engine?.query(o,i,n?.id),this.lastQuery=o;let s=this.parseEngineResponse(await this.executingQueryPromise);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new W(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});if(this.loggerRustPanic)throw this.loggerRustPanic;return{data:s}}catch(s){if(s instanceof V)throw s;if(s.code==="GenericFailure"&&s.message?.startsWith("PANIC:"))throw new ue(Un(this,s.message),this.config.clientVersion);let a=this.parseRequestError(s.message);throw typeof a=="string"?s:new W(`${a.message} +${a.backtrace}`,{clientVersion:this.config.clientVersion})}}async requestBatch(t,{transaction:r,traceparent:n}){Re("requestBatch");let i=_r(t,r);await this.start(),this.lastQuery=JSON.stringify(i),this.executingQueryPromise=this.engine.query(this.lastQuery,JSON.stringify({traceparent:n}),Ps(r));let o=await this.executingQueryPromise,s=this.parseEngineResponse(o);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new W(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});let{batchResult:a,errors:l}=s;if(Array.isArray(a))return a.map(u=>u.errors&&u.errors.length>0?this.loggerRustPanic??this.buildQueryError(u.errors[0]):{data:u});throw l&&l.length===1?new Error(l[0].error):new Error(JSON.stringify(s))}buildQueryError(t){if(t.user_facing_error.is_panic)return new ue(Un(this,t.user_facing_error.message),this.config.clientVersion);let r=this.getExternalAdapterError(t.user_facing_error);return r?r.error:Lr(t,this.config.clientVersion,this.config.activeProvider)}getExternalAdapterError(t){if(t.error_code===zc&&this.config.adapter){let r=t.meta?.id;or(typeof r=="number","Malformed external JS error received from the engine");let n=this.config.adapter.errorRegistry.consumeError(r);return or(n,"External error with reported id was not registered"),n}}async metrics(t){await this.start();let r=await this.engine.metrics(JSON.stringify(t));return t.format==="prometheus"?r:this.parseEngineResponse(r)}};function tp(e){return typeof e=="object"&&e!==null&&e.error_code!==void 0}function Un(e,t){return vs({binaryTarget:e.binaryTarget,title:t,version:e.config.clientVersion,engineVersion:e.versionInfo?.commit,database:e.config.activeProvider,query:e.lastQuery})}function Cs({copyEngine:e=!0},t){let r;try{r=$r({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...y.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||r?.startsWith("prisma+postgres://"));e&&n&&It("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=Ot(t.generator),o=n||!e,s=!!t.adapter,a=i==="library",l=i==="binary";if(o&&s||s&&!1){let u;throw e?r?.startsWith("prisma://")?u=["Prisma Client was configured to use the `adapter` option but the URL was a `prisma://` URL.","Please either use the `prisma://` URL or remove the `adapter` from the Prisma Client constructor."]:u=["Prisma Client was configured to use both the `adapter` and Accelerate, please chose one."]:u=["Prisma Client was configured to use the `adapter` option but `prisma generate` was run with `--no-engine`.","Please run `prisma generate` without `--no-engine` to be able to use Prisma Client with the adapter."],new X(u.join(` +`),{clientVersion:t.clientVersion})}return new Yt(t)}m();c();p();d();f();function Br({generator:e}){return e?.previewFeatures??[]}m();c();p();d();f();var As=e=>({command:e});m();c();p();d();f();m();c();p();d();f();var Rs=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);m();c();p();d();f();function yt(e){try{return Ss(e,"fast")}catch{return Ss(e,"slow")}}function Ss(e,t){return JSON.stringify(e.map(r=>ks(r,t)))}function ks(e,t){if(Array.isArray(e))return e.map(r=>ks(r,t));if(typeof e=="bigint")return{prisma__type:"bigint",prisma__value:e.toString()};if(ot(e))return{prisma__type:"date",prisma__value:e.toJSON()};if(Ee.isDecimal(e))return{prisma__type:"decimal",prisma__value:e.toJSON()};if(w.Buffer.isBuffer(e))return{prisma__type:"bytes",prisma__value:e.toString("base64")};if(rp(e))return{prisma__type:"bytes",prisma__value:w.Buffer.from(e).toString("base64")};if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{prisma__type:"bytes",prisma__value:w.Buffer.from(r,n,i).toString("base64")}}return typeof e=="object"&&t==="slow"?Fs(e):e}function rp(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function Fs(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(Os);let t={};for(let r of Object.keys(e))t[r]=Os(e[r]);return t}function Os(e){return typeof e=="bigint"?e.toString():Fs(e)}m();c();p();d();f();var np=["$connect","$disconnect","$on","$transaction","$use","$extends"],Ms=np;var ip=/^(\s*alter\s)/i,Is=ae("prisma:client");function Vn(e,t,r,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&r.length>0&&ip.exec(t))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var Qn=({clientMethod:e,activeProvider:t})=>r=>{let n="",i;if(No(r))n=r.sql,i={values:yt(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:yt(s||[]),__prismaRawParameters__:!0}}else switch(t){case"sqlite":case"mysql":{n=r.sql,i={values:yt(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:yt(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=Rs(r),i={values:yt(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?Is(`prisma.${e}(${n}, ${i.values})`):Is(`prisma.${e}(${n})`),{query:n,parameters:i}},_s={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new se(t,r)}},Ls={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};m();c();p();d();f();function Jn(e){return function(r){let n,i=(o=e)=>{try{return o===void 0||o?.kind==="itx"?n??=Ns(r(o)):Ns(r(o))}catch(s){return Promise.reject(s)}};return{then(o,s){return i().then(o,s)},catch(o){return i().catch(o)},finally(o){return i().finally(o)},requestTransaction(o){let s=i(o);return s.requestTransaction?s.requestTransaction(o):s},[Symbol.toStringTag]:"PrismaPromise"}}}function Ns(e){return typeof e.then=="function"?e:Promise.resolve(e)}m();c();p();d();f();var op={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(e,t){return t()}},Gn=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}dispatchEngineSpans(t){return this.getGlobalTracingHelper().dispatchEngineSpans(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){return globalThis.PRISMA_INSTRUMENTATION?.helper??op}};function Ds(){return new Gn}m();c();p();d();f();function $s(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}m();c();p();d();f();function Bs(e){return typeof e=="string"?e:e.reduce((t,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?t:t&&(r==="info"||t==="info")?"info":n},void 0)}m();c();p();d();f();var jr=class{constructor(){this._middlewares=[]}use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};m();c();p();d();f();var Us=he(un());m();c();p();d();f();function qr(e){return typeof e.batchRequestIdx=="number"}m();c();p();d();f();function js(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(Wn(e.query.arguments)),t.push(Wn(e.query.selection)),t.join("")}function Wn(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n=="object"&&n!==null?`(${r} ${Wn(n)})`:r}).join(" ")})`}m();c();p();d();f();var sp={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateOne:!0,upsertOne:!0};function Kn(e){return sp[e]}m();c();p();d();f();var Ur=class{constructor(t){this.options=t;this.tickActive=!1;this.batches={}}request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,y.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;iKe("bigint",r));case"bytes-array":return t.map(r=>Ke("bytes",r));case"decimal-array":return t.map(r=>Ke("decimal",r));case"datetime-array":return t.map(r=>Ke("datetime",r));case"date-array":return t.map(r=>Ke("date",r));case"time-array":return t.map(r=>Ke("time",r));default:return t}}function qs(e){let t=[],r=ap(e);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(h=>h.protocolQuery),l=this.client._tracingHelper.getTraceParent(s),u=n.some(h=>Kn(h.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:l,transaction:up(o),containsWrite:u,customDataProxyFetch:i})).map((h,P)=>{if(h instanceof Error)return h;try{return this.mapQueryEngineResult(n[P],h)}catch(S){return S}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?Vs(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:Kn(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:js(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=this.unpack(i,t,r);return y.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(lp(t),cp(t,i))throw t;if(t instanceof ie&&pp(t)){let u=Qs(t.meta);Rr({args:o,errors:[u],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let l=t.message;if(n&&(l=yr({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat==="pretty",message:l})),l=this.sanitizeMessage(l),t.code){let u=s?{modelName:s,...t.meta}:t.meta;throw new ie(l,{code:t.code,clientVersion:this.client._clientVersion,meta:u,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new ue(l,this.client._clientVersion);if(t instanceof W)throw new W(l,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof V)throw new V(l,this.client._clientVersion);if(t instanceof ue)throw new ue(l,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,Us.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(u=>u!=="select"&&u!=="include"),a=Ln(o,s),l=i==="queryRaw"?qs(a):nt(a);return n?n(l):l}get[Symbol.toStringTag](){return"RequestHandler"}};function up(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:Vs(e)};Fe(e,"Unknown transaction kind")}}function Vs(e){return{id:e.id,payload:e.payload}}function cp(e,t){return qr(e)&&t?.kind==="batch"&&e.batchRequestIdx!==t.index}function pp(e){return e.code==="P2009"||e.code==="P2012"}function Qs(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map(Qs)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}m();c();p();d();f();var Js="6.1.0";var Gs=Js;m();c();p();d();f();var Ys=he(bn());m();c();p();d();f();var B=class extends Error{constructor(t){super(t+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};le(B,"PrismaClientConstructorValidationError");var Ws=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],Ks=["pretty","colorless","minimal"],Hs=["info","query","warn","error"],fp={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new B(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=wt(r,t)||` Available datasources: ${t.join(", ")}`;throw new B(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new B(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new B(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new B(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(e,t)=>{if(e===null)return;if(e===void 0)throw new B('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!Br(t).includes("driverAdapters"))throw new B('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(Ot()==="binary")throw new B('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:e=>{if(typeof e<"u"&&typeof e!="string")throw new B(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!="string")throw new B(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`);if(!Ks.includes(e)){let t=wt(e,Ks);throw new B(`Invalid errorFormat ${e} provided to PrismaClient constructor.${t}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new B(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`);function t(r){if(typeof r=="string"&&!Hs.includes(r)){let n=wt(r,Hs);throw new B(`Invalid log level "${r}" provided to PrismaClient constructor.${n}`)}}for(let r of e){t(r);let n={level:t,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=wt(i,o);throw new B(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r=="object")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new B(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let t=e.maxWait;if(t!=null&&t<=0)throw new B(`Invalid value ${t} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=e.timeout;if(r!=null&&r<=0)throw new B(`Invalid value ${r} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,t)=>{if(typeof e!="object")throw new B('"omit" option is expected to be an object.');if(e===null)throw new B('"omit" option can not be `null`');let r=[];for(let[n,i]of Object.entries(e)){let o=gp(n,t.runtimeDataModel);if(!o){r.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let l=o.fields.find(u=>u.name===s);if(!l){r.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(l.relationName){r.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&r.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(r.length>0)throw new B(hp(e,r))},__internal:e=>{if(!e)return;let t=["debug","engine","configOverride"];if(typeof e!="object")throw new B(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`);for(let[r]of Object.entries(e))if(!t.includes(r)){let n=wt(r,t);throw new B(`Invalid property ${JSON.stringify(r)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function Zs(e,t){for(let[r,n]of Object.entries(e)){if(!Ws.includes(r)){let i=wt(r,Ws);throw new B(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}fp[r](n,t)}if(e.datasourceUrl&&e.datasources)throw new B('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function wt(e,t){if(t.length===0||typeof e!="string")return"";let r=mp(e,t);return r?` Did you mean "${r}"?`:""}function mp(e,t){if(t.length===0)return null;let r=t.map(i=>({value:i,distance:(0,Ys.default)(e,i)}));r.sort((i,o)=>i.distanceit(n)===t);if(r)return e[r]}function hp(e,t){let r=dt(e);for(let o of t)switch(o.kind){case"UnknownModel":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Ar(r,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}m();c();p();d();f();function Xs(e){return e.length===0?Promise.resolve([]):new Promise((t,r)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?r(i):t(n)))},l=u=>{o||(o=!0,r(u))};for(let u=0;u{n[u]=g,a()},g=>{if(!qr(g)){l(g);return}g.batchRequestIdx===u?l(g):(i||(i=g),a())})})}var Ue=ae("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var yp={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},wp=Symbol.for("prisma.client.transaction.id"),bp={id:0,nextId(){return++this.id}};function ra(e){class t{constructor(n){this._originalClient=this;this._middlewares=new jr;this._createPrismaPromise=Jn();this.$extends=ts;e=n?.__internal?.configOverride?.(e)??e,ms(e),n&&Zs(n,e);let i=new ir().on("error",()=>{});this._extensions=ft.empty(),this._previewFeatures=Br(e),this._clientVersion=e.clientVersion??Gs,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=Ds();let o={rootEnvPath:e.relativeEnvPaths.rootEnvPath&&we.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&we.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=kn(n.adapter);let l=e.activeProvider==="postgresql"?"postgres":e.activeProvider;if(s.provider!==l)throw new V(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${l}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new V("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=e.injectableEdgeEnv?.();try{let l=n??{},u=l.__internal??{},g=u.debug===!0;g&&ae.enable("prisma:client");let h=we.resolve(e.dirname,e.relativePath);rr.existsSync(h)||(h=e.dirname),Ue("dirname",e.dirname),Ue("relativePath",e.relativePath),Ue("cwd",h);let P=u.engine||{};if(l.errorFormat?this._errorFormat=l.errorFormat:y.env.NODE_ENV==="production"?this._errorFormat="minimal":y.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:h,dirname:e.dirname,enableDebugLogs:g,allowTriggerPanic:P.allowTriggerPanic,datamodelPath:we.join(e.dirname,e.filename??"schema.prisma"),prismaPath:P.binaryPath??void 0,engineEndpoint:P.endpoint,generator:e.generator,showColors:this._errorFormat==="pretty",logLevel:l.log&&Bs(l.log),logQueries:l.log&&!!(typeof l.log=="string"?l.log==="query":l.log.find(S=>typeof S=="string"?S==="query":S.level==="query")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:gs(l,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:l.transactionOptions?.maxWait??2e3,timeout:l.transactionOptions?.timeout??5e3,isolationLevel:l.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:$r,getBatchRequestPayload:_r,prismaGraphQLToJSError:Lr,PrismaClientUnknownRequestError:W,PrismaClientInitializationError:V,PrismaClientKnownRequestError:ie,debug:ae("prisma:client:accelerateEngine"),engineVersion:ta.version,clientVersion:e.clientVersion}},Ue("clientVersion",e.clientVersion),this._engine=Cs(e,this._engineConfig),this._requestHandler=new Vr(this,i),l.log)for(let S of l.log){let C=typeof S=="string"?S:S.emit==="stdout"?S.level:null;C&&this.$on(C,A=>{Mt.log(`${Mt.tags[C]??""}`,A.message||A.query)})}this._metrics=new mt(this._engine)}catch(l){throw l.clientVersion=this._clientVersion,l}return this._appliedParent=Ht(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i)}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{Ai()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:Qn({clientMethod:i,activeProvider:a}),callsite:qe(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=ea(n,i);return Vn(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new X("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(Vn(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!=="mongodb")throw new X(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:As,callsite:qe(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:Qn({clientMethod:i,activeProvider:a}),callsite:qe(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...ea(n,i));throw new X("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new X("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=bp.nextId(),s=$s(n.length),a=n.map((l,u)=>{if(l?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let g=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,h={kind:"batch",id:o,index:u,isolationLevel:g,lock:s};return l.requestTransaction?.(h)??l});return Xs(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),l;try{let u={kind:"itx",...a};l=await n(this._createItxClient(u)),await this._engine.transaction("commit",o,a)}catch(u){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),u}return l}_createItxClient(n){return Ht(Ae(es(this),[te("_appliedParent",()=>this._appliedParent._createItxClient(n)),te("_createPrismaPromise",()=>Jn(n)),te(wp,()=>n.id),gt(Ms)]))}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??yp,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,l=async u=>{let g=this._middlewares.get(++a);if(g)return this._tracingHelper.runInChildSpan(s.middleware,F=>g(u,_=>(F?.end(),l(_))));let{runInTransaction:h,args:P,...S}=u,C={...n,...S};P&&(C.args=i.middlewareArgsToRequestArgs(P)),n.transaction!==void 0&&h===!1&&delete C.transaction;let A=await ls(this,C);return C.model?is({result:A,modelName:C.model,args:C.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):A};return this._tracingHelper.runInChildSpan(s.operation,()=>l(o))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:l,argsMapper:u,transaction:g,unpacker:h,otelParentCtx:P,customDataProxyFetch:S}){try{n=u?u(n):n;let C={name:"serialize"},A=this._tracingHelper.runInChildSpan(C,()=>kr({modelName:l,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return ae.enabled("prisma:client")&&(Ue("Prisma Client call:"),Ue(`prisma.${i}(${Vo(n)})`),Ue("Generated request:"),Ue(JSON.stringify(A,null,2)+` +`)),g?.kind==="batch"&&await g.lock,this._requestHandler.request({protocolQuery:A,modelName:l,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:g,unpacker:h,otelParentCtx:P,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:S})}catch(C){throw C.clientVersion=this._clientVersion,C}}get $metrics(){if(!this._hasPreviewFlag("metrics"))throw new X("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:this._clientVersion});return this._metrics}_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}}return t}function ea(e,t){return Ep(e)?[new se(e,t),_s]:[e,Ls]}function Ep(e){return Array.isArray(e)&&Array.isArray(e.raw)}m();c();p();d();f();var xp=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function na(e){return new Proxy(e,{get(t,r){if(r in t)return t[r];if(!xp.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}m();c();p();d();f();0&&(module.exports={Debug,Decimal,Extensions,MetricsClient,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,defineDmmfProperty,deserializeJsonResponse,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce}); +//# sourceMappingURL=react-native.js.map diff --git a/mods/identity/src/generated/@prisma/client/runtime/wasm.js b/mods/identity/src/generated/@prisma/client/runtime/wasm.js new file mode 100644 index 000000000..c73933289 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/runtime/wasm.js @@ -0,0 +1,32 @@ +"use strict";var Fo=Object.create;var At=Object.defineProperty;var No=Object.getOwnPropertyDescriptor;var Uo=Object.getOwnPropertyNames;var qo=Object.getPrototypeOf,Bo=Object.prototype.hasOwnProperty;var se=(e,t)=>()=>(e&&(t=e(e=0)),t);var Le=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),St=(e,t)=>{for(var r in t)At(e,r,{get:t[r],enumerable:!0})},rn=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Uo(t))!Bo.call(e,i)&&i!==r&&At(e,i,{get:()=>t[i],enumerable:!(n=No(t,i))||n.enumerable});return e};var _e=(e,t,r)=>(r=e!=null?Fo(qo(e)):{},rn(t||!e||!e.__esModule?At(r,"default",{value:e,enumerable:!0}):r,e)),$o=e=>rn(At({},"__esModule",{value:!0}),e);function fr(e,t){if(t=t.toLowerCase(),t==="utf8"||t==="utf-8")return new y(Jo.encode(e));if(t==="base64"||t==="base64url")return e=e.replace(/-/g,"+").replace(/_/g,"/"),e=e.replace(/[^A-Za-z0-9+/]/g,""),new y([...atob(e)].map(r=>r.charCodeAt(0)));if(t==="binary"||t==="ascii"||t==="latin1"||t==="latin-1")return new y([...e].map(r=>r.charCodeAt(0)));if(t==="ucs2"||t==="ucs-2"||t==="utf16le"||t==="utf-16le"){let r=new y(e.length*2),n=new DataView(r.buffer);for(let i=0;ia.startsWith("get")||a.startsWith("set")),n=r.map(a=>a.replace("get","read").replace("set","write")),i=(a,u)=>function(g=0){return B(g,"offset"),H(g,"offset"),V(g,"offset",this.length-1),new DataView(this.buffer)[r[a]](g,u)},o=(a,u)=>function(g,T=0){let C=r[a].match(/set(\w+\d+)/)[1].toLowerCase(),O=Qo[C];return B(T,"offset"),H(T,"offset"),V(T,"offset",this.length-1),jo(g,"value",O[0],O[1]),new DataView(this.buffer)[r[a]](T,g,u),T+parseInt(r[a].match(/\d+/)[0])/8},s=a=>{a.forEach(u=>{u.includes("Uint")&&(e[u.replace("Uint","UInt")]=e[u]),u.includes("Float64")&&(e[u.replace("Float64","Double")]=e[u]),u.includes("Float32")&&(e[u.replace("Float32","Float")]=e[u])})};n.forEach((a,u)=>{a.startsWith("read")&&(e[a]=i(u,!1),e[a+"LE"]=i(u,!0),e[a+"BE"]=i(u,!1)),a.startsWith("write")&&(e[a]=o(u,!1),e[a+"LE"]=o(u,!0),e[a+"BE"]=o(u,!1)),s([a,a+"LE",a+"BE"])})}function on(e){throw new Error(`Buffer polyfill does not implement "${e}"`)}function Ot(e,t){if(!(e instanceof Uint8Array))throw new TypeError(`The "${t}" argument must be an instance of Buffer or Uint8Array`)}function V(e,t,r=Ko+1){if(e<0||e>r){let n=new RangeError(`The value of "${t}" is out of range. It must be >= 0 && <= ${r}. Received ${e}`);throw n.code="ERR_OUT_OF_RANGE",n}}function B(e,t){if(typeof e!="number"){let r=new TypeError(`The "${t}" argument must be of type number. Received type ${typeof e}.`);throw r.code="ERR_INVALID_ARG_TYPE",r}}function H(e,t){if(!Number.isInteger(e)||Number.isNaN(e)){let r=new RangeError(`The value of "${t}" is out of range. It must be an integer. Received ${e}`);throw r.code="ERR_OUT_OF_RANGE",r}}function jo(e,t,r,n){if(en){let i=new RangeError(`The value of "${t}" is out of range. It must be >= ${r} and <= ${n}. Received ${e}`);throw i.code="ERR_OUT_OF_RANGE",i}}function nn(e,t){if(typeof e!="string"){let r=new TypeError(`The "${t}" argument must be of type string. Received type ${typeof e}`);throw r.code="ERR_INVALID_ARG_TYPE",r}}function Ho(e,t="utf8"){return y.from(e,t)}var y,Qo,Jo,Go,Wo,Ko,b,gr,c=se(()=>{"use strict";y=class e extends Uint8Array{constructor(){super(...arguments);this._isBuffer=!0}get offset(){return this.byteOffset}static alloc(r,n=0,i="utf8"){return nn(i,"encoding"),e.allocUnsafe(r).fill(n,i)}static allocUnsafe(r){return e.from(r)}static allocUnsafeSlow(r){return e.from(r)}static isBuffer(r){return r&&!!r._isBuffer}static byteLength(r,n="utf8"){if(typeof r=="string")return fr(r,n).byteLength;if(r&&r.byteLength)return r.byteLength;let i=new TypeError('The "string" argument must be of type string or an instance of Buffer or ArrayBuffer.');throw i.code="ERR_INVALID_ARG_TYPE",i}static isEncoding(r){return Wo.includes(r)}static compare(r,n){Ot(r,"buff1"),Ot(n,"buff2");for(let i=0;in[i])return 1}return r.length===n.length?0:r.length>n.length?1:-1}static from(r,n="utf8"){if(r&&typeof r=="object"&&r.type==="Buffer")return new e(r.data);if(typeof r=="number")return new e(new Uint8Array(r));if(typeof r=="string")return fr(r,n);if(ArrayBuffer.isView(r)){let{byteOffset:i,byteLength:o,buffer:s}=r;return"map"in r&&typeof r.map=="function"?new e(r.map(a=>a%256),i,o):new e(s,i,o)}if(r&&typeof r=="object"&&("length"in r||"byteLength"in r||"buffer"in r))return new e(r);throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}static concat(r,n){if(r.length===0)return e.alloc(0);let i=[].concat(...r.map(s=>[...s])),o=e.alloc(n!==void 0?n:i.length);return o.set(n!==void 0?i.slice(0,n):i),o}slice(r=0,n=this.length){return this.subarray(r,n)}subarray(r=0,n=this.length){return Object.setPrototypeOf(super.subarray(r,n),e.prototype)}reverse(){return super.reverse(),this}readIntBE(r,n){B(r,"offset"),H(r,"offset"),V(r,"offset",this.length-1),B(n,"byteLength"),H(n,"byteLength");let i=new DataView(this.buffer,r,n),o=0;for(let s=0;s=0;s--)o.setUint8(s,r&255),r=r/256;return n+i}writeUintBE(r,n,i){return this.writeUIntBE(r,n,i)}writeUIntLE(r,n,i){B(n,"offset"),H(n,"offset"),V(n,"offset",this.length-1),B(i,"byteLength"),H(i,"byteLength");let o=new DataView(this.buffer,n,i);for(let s=0;sn===r[i])}copy(r,n=0,i=0,o=this.length){V(n,"targetStart"),V(i,"sourceStart",this.length),V(o,"sourceEnd"),n>>>=0,i>>>=0,o>>>=0;let s=0;for(;i=this.length?this.length-u:r.length),u);return this}includes(r,n=null,i="utf-8"){return this.indexOf(r,n,i)!==-1}lastIndexOf(r,n=null,i="utf-8"){return this.indexOf(r,n,i,!0)}indexOf(r,n=null,i="utf-8",o=!1){let s=o?this.findLastIndex.bind(this):this.findIndex.bind(this);i=typeof n=="string"?n:i;let a=e.from(typeof r=="number"?[r]:r,i),u=typeof n=="string"?0:n;return u=typeof n=="number"?u:null,u=Number.isNaN(u)?null:u,u??=o?this.length:0,u=u<0?this.length+u:u,a.length===0&&o===!1?u>=this.length?this.length:u:a.length===0&&o===!0?(u>=this.length?this.length:u)||this.length:s((g,T)=>(o?T<=u:T>=u)&&this[T]===a[0]&&a.every((O,A)=>this[T+A]===O))}toString(r="utf8",n=0,i=this.length){if(n=n<0?0:n,r=r.toString().toLowerCase(),i<=0)return"";if(r==="utf8"||r==="utf-8")return Go.decode(this.slice(n,i));if(r==="base64"||r==="base64url"){let o=btoa(this.reduce((s,a)=>s+gr(a),""));return r==="base64url"?o.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):o}if(r==="binary"||r==="ascii"||r==="latin1"||r==="latin-1")return this.slice(n,i).reduce((o,s)=>o+gr(s&(r==="ascii"?127:255)),"");if(r==="ucs2"||r==="ucs-2"||r==="utf16le"||r==="utf-16le"){let o=new DataView(this.buffer.slice(n,i));return Array.from({length:o.byteLength/2},(s,a)=>a*2+1o+s.toString(16).padStart(2,"0"),"");on(`encoding "${r}"`)}toLocaleString(){return this.toString()}inspect(){return``}};Qo={int8:[-128,127],int16:[-32768,32767],int32:[-2147483648,2147483647],uint8:[0,255],uint16:[0,65535],uint32:[0,4294967295],float32:[-1/0,1/0],float64:[-1/0,1/0],bigint64:[-0x8000000000000000n,0x7fffffffffffffffn],biguint64:[0n,0xffffffffffffffffn]},Jo=new TextEncoder,Go=new TextDecoder,Wo=["utf8","utf-8","hex","base64","ascii","binary","base64url","ucs2","ucs-2","utf16le","utf-16le","latin1","latin-1"],Ko=4294967295;Vo(y.prototype);b=new Proxy(Ho,{construct(e,[t,r]){return y.from(t,r)},get(e,t){return y[t]}}),gr=String.fromCodePoint});var h,m=se(()=>{"use strict";h={nextTick:(e,...t)=>{setTimeout(()=>{e(...t)},0)},env:{},version:"",cwd:()=>"/",stderr:{},argv:["/bin/node"]}});var x,p=se(()=>{"use strict";x=globalThis.performance??(()=>{let e=Date.now();return{now:()=>Date.now()-e}})()});var E,d=se(()=>{"use strict";E=()=>{};E.prototype=E});var w,f=se(()=>{"use strict";w=class{constructor(t){this.value=t}deref(){return this.value}}});function un(e,t){var r,n,i,o,s,a,u,g,T=e.constructor,C=T.precision;if(!e.s||!t.s)return t.s||(t=new T(e)),U?D(t,C):t;if(u=e.d,g=t.d,s=e.e,i=t.e,u=u.slice(),o=s-i,o){for(o<0?(n=u,o=-o,a=g.length):(n=g,i=s,a=u.length),s=Math.ceil(C/N),a=s>a?s+1:a+1,o>a&&(o=a,n.length=1),n.reverse();o--;)n.push(0);n.reverse()}for(a=u.length,o=g.length,a-o<0&&(o=a,n=g,g=u,u=n),r=0;o;)r=(u[--o]=u[o]+g[o]+r)/j|0,u[o]%=j;for(r&&(u.unshift(r),++i),a=u.length;u[--a]==0;)u.pop();return t.d=u,t.e=i,U?D(t,C):t}function le(e,t,r){if(e!==~~e||er)throw Error(Se+e)}function ae(e){var t,r,n,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;t16)throw Error(yr+$(e));if(!e.s)return new T(X);for(t==null?(U=!1,a=C):a=t,s=new T(.03125);e.abs().gte(.1);)e=e.times(s),g+=5;for(n=Math.log(Ae(2,g))/Math.LN10*2+5|0,a+=n,r=i=o=new T(X),T.precision=a;;){if(i=D(i.times(e),a),r=r.times(++u),s=o.plus(ye(i,r,a)),ae(s.d).slice(0,a)===ae(o.d).slice(0,a)){for(;g--;)o=D(o.times(o),a);return T.precision=C,t==null?(U=!0,D(o,C)):o}o=s}}function $(e){for(var t=e.e*N,r=e.d[0];r>=10;r/=10)t++;return t}function hr(e,t,r){if(t>e.LN10.sd())throw U=!0,r&&(e.precision=r),Error(re+"LN10 precision limit exceeded");return D(new e(e.LN10),t)}function xe(e){for(var t="";e--;)t+="0";return t}function tt(e,t){var r,n,i,o,s,a,u,g,T,C=1,O=10,A=e,M=A.d,S=A.constructor,I=S.precision;if(A.s<1)throw Error(re+(A.s?"NaN":"-Infinity"));if(A.eq(X))return new S(0);if(t==null?(U=!1,g=I):g=t,A.eq(10))return t==null&&(U=!0),hr(S,g);if(g+=O,S.precision=g,r=ae(M),n=r.charAt(0),o=$(A),Math.abs(o)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)A=A.times(e),r=ae(A.d),n=r.charAt(0),C++;o=$(A),n>1?(A=new S("0."+r),o++):A=new S(n+"."+r.slice(1))}else return u=hr(S,g+2,I).times(o+""),A=tt(new S(n+"."+r.slice(1)),g-O).plus(u),S.precision=I,t==null?(U=!0,D(A,I)):A;for(a=s=A=ye(A.minus(X),A.plus(X),g),T=D(A.times(A),g),i=3;;){if(s=D(s.times(T),g),u=a.plus(ye(s,new S(i),g)),ae(u.d).slice(0,g)===ae(a.d).slice(0,g))return a=a.times(2),o!==0&&(a=a.plus(hr(S,g+2,I).times(o+""))),a=ye(a,new S(C),g),S.precision=I,t==null?(U=!0,D(a,I)):a;a=u,i+=2}}function sn(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(n,i),t){if(i-=n,r=r-n-1,e.e=Fe(r/N),e.d=[],n=(r+1)%N,r<0&&(n+=N),nkt||e.e<-kt))throw Error(yr+r)}else e.s=0,e.e=0,e.d=[0];return e}function D(e,t,r){var n,i,o,s,a,u,g,T,C=e.d;for(s=1,o=C[0];o>=10;o/=10)s++;if(n=t-s,n<0)n+=N,i=t,g=C[T=0];else{if(T=Math.ceil((n+1)/N),o=C.length,T>=o)return e;for(g=o=C[T],s=1;o>=10;o/=10)s++;n%=N,i=n-N+s}if(r!==void 0&&(o=Ae(10,s-i-1),a=g/o%10|0,u=t<0||C[T+1]!==void 0||g%o,u=r<4?(a||u)&&(r==0||r==(e.s<0?3:2)):a>5||a==5&&(r==4||u||r==6&&(n>0?i>0?g/Ae(10,s-i):0:C[T-1])%10&1||r==(e.s<0?8:7))),t<1||!C[0])return u?(o=$(e),C.length=1,t=t-o-1,C[0]=Ae(10,(N-t%N)%N),e.e=Fe(-t/N)||0):(C.length=1,C[0]=e.e=e.s=0),e;if(n==0?(C.length=T,o=1,T--):(C.length=T+1,o=Ae(10,N-n),C[T]=i>0?(g/Ae(10,s-i)%Ae(10,i)|0)*o:0),u)for(;;)if(T==0){(C[0]+=o)==j&&(C[0]=1,++e.e);break}else{if(C[T]+=o,C[T]!=j)break;C[T--]=0,o=1}for(n=C.length;C[--n]===0;)C.pop();if(U&&(e.e>kt||e.e<-kt))throw Error(yr+$(e));return e}function mn(e,t){var r,n,i,o,s,a,u,g,T,C,O=e.constructor,A=O.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new O(e),U?D(t,A):t;if(u=e.d,C=t.d,n=t.e,g=e.e,u=u.slice(),s=g-n,s){for(T=s<0,T?(r=u,s=-s,a=C.length):(r=C,n=g,a=u.length),i=Math.max(Math.ceil(A/N),a)+2,s>i&&(s=i,r.length=1),r.reverse(),i=s;i--;)r.push(0);r.reverse()}else{for(i=u.length,a=C.length,T=i0;--i)u[a++]=0;for(i=C.length;i>s;){if(u[--i]0?o=o.charAt(0)+"."+o.slice(1)+xe(n):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(i<0?"e":"e+")+i):i<0?(o="0."+xe(-i-1)+o,r&&(n=r-s)>0&&(o+=xe(n))):i>=s?(o+=xe(i+1-s),r&&(n=r-i-1)>0&&(o=o+"."+xe(n))):((n=i+1)0&&(i+1===s&&(o+="."),o+=xe(n))),e.s<0?"-"+o:o}function an(e,t){if(e.length>t)return e.length=t,!0}function pn(e){var t,r,n;function i(o){var s=this;if(!(s instanceof i))return new i(o);if(s.constructor=i,o instanceof i){s.s=o.s,s.e=o.e,s.d=(o=o.d)?o.slice():o;return}if(typeof o=="number"){if(o*0!==0)throw Error(Se+o);if(o>0)s.s=1;else if(o<0)o=-o,s.s=-1;else{s.s=0,s.e=0,s.d=[0];return}if(o===~~o&&o<1e7){s.e=0,s.d=[o];return}return sn(s,o.toString())}else if(typeof o!="string")throw Error(Se+o);if(o.charCodeAt(0)===45?(o=o.slice(1),s.s=-1):s.s=1,Yo.test(o))sn(s,o);else throw Error(Se+o)}if(i.prototype=R,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=pn,i.config=i.set=Xo,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(Se+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(Se+r+": "+n);return this}var De,zo,br,U,re,Se,yr,Fe,Ae,Yo,X,j,N,ln,kt,R,ye,br,Mt,dn=se(()=>{"use strict";c();m();p();d();f();l();De=1e9,zo={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},U=!0,re="[DecimalError] ",Se=re+"Invalid argument: ",yr=re+"Exponent out of range: ",Fe=Math.floor,Ae=Math.pow,Yo=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,j=1e7,N=7,ln=9007199254740991,kt=Fe(ln/N),R={};R.absoluteValue=R.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e};R.comparedTo=R.cmp=function(e){var t,r,n,i,o=this;if(e=new o.constructor(e),o.s!==e.s)return o.s||-e.s;if(o.e!==e.e)return o.e>e.e^o.s<0?1:-1;for(n=o.d.length,i=e.d.length,t=0,r=ne.d[t]^o.s<0?1:-1;return n===i?0:n>i^o.s<0?1:-1};R.decimalPlaces=R.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*N;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};R.dividedBy=R.div=function(e){return ye(this,new this.constructor(e))};R.dividedToIntegerBy=R.idiv=function(e){var t=this,r=t.constructor;return D(ye(t,new r(e),0,1),r.precision)};R.equals=R.eq=function(e){return!this.cmp(e)};R.exponent=function(){return $(this)};R.greaterThan=R.gt=function(e){return this.cmp(e)>0};R.greaterThanOrEqualTo=R.gte=function(e){return this.cmp(e)>=0};R.isInteger=R.isint=function(){return this.e>this.d.length-2};R.isNegative=R.isneg=function(){return this.s<0};R.isPositive=R.ispos=function(){return this.s>0};R.isZero=function(){return this.s===0};R.lessThan=R.lt=function(e){return this.cmp(e)<0};R.lessThanOrEqualTo=R.lte=function(e){return this.cmp(e)<1};R.logarithm=R.log=function(e){var t,r=this,n=r.constructor,i=n.precision,o=i+5;if(e===void 0)e=new n(10);else if(e=new n(e),e.s<1||e.eq(X))throw Error(re+"NaN");if(r.s<1)throw Error(re+(r.s?"NaN":"-Infinity"));return r.eq(X)?new n(0):(U=!1,t=ye(tt(r,o),tt(e,o),o),U=!0,D(t,i))};R.minus=R.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?mn(t,e):un(t,(e.s=-e.s,e))};R.modulo=R.mod=function(e){var t,r=this,n=r.constructor,i=n.precision;if(e=new n(e),!e.s)throw Error(re+"NaN");return r.s?(U=!1,t=ye(r,e,0,1).times(e),U=!0,r.minus(t)):D(new n(r),i)};R.naturalExponential=R.exp=function(){return cn(this)};R.naturalLogarithm=R.ln=function(){return tt(this)};R.negated=R.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};R.plus=R.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?un(t,e):mn(t,(e.s=-e.s,e))};R.precision=R.sd=function(e){var t,r,n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Se+e);if(t=$(i)+1,n=i.d.length-1,r=n*N+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};R.squareRoot=R.sqrt=function(){var e,t,r,n,i,o,s,a=this,u=a.constructor;if(a.s<1){if(!a.s)return new u(0);throw Error(re+"NaN")}for(e=$(a),U=!1,i=Math.sqrt(+a),i==0||i==1/0?(t=ae(a.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=Fe((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new u(t)):n=new u(i.toString()),r=u.precision,i=s=r+3;;)if(o=n,n=o.plus(ye(a,o,s+2)).times(.5),ae(o.d).slice(0,s)===(t=ae(n.d)).slice(0,s)){if(t=t.slice(s-3,s+1),i==s&&t=="4999"){if(D(o,r+1,0),o.times(o).eq(a)){n=o;break}}else if(t!="9999")break;s+=4}return U=!0,D(n,r)};R.times=R.mul=function(e){var t,r,n,i,o,s,a,u,g,T=this,C=T.constructor,O=T.d,A=(e=new C(e)).d;if(!T.s||!e.s)return new C(0);for(e.s*=T.s,r=T.e+e.e,u=O.length,g=A.length,u=0;){for(t=0,i=u+n;i>n;)a=o[i]+A[n]*O[i-n-1]+t,o[i--]=a%j|0,t=a/j|0;o[i]=(o[i]+t)%j|0}for(;!o[--s];)o.pop();return t?++r:o.shift(),e.d=o,e.e=r,U?D(e,C.precision):e};R.toDecimalPlaces=R.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(le(e,0,De),t===void 0?t=n.rounding:le(t,0,8),D(r,e+$(r)+1,t))};R.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=Oe(n,!0):(le(e,0,De),t===void 0?t=i.rounding:le(t,0,8),n=D(new i(n),e+1,t),r=Oe(n,!0,e+1)),r};R.toFixed=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?Oe(i):(le(e,0,De),t===void 0?t=o.rounding:le(t,0,8),n=D(new o(i),e+$(i)+1,t),r=Oe(n.abs(),!1,e+$(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};R.toInteger=R.toint=function(){var e=this,t=e.constructor;return D(new t(e),$(e)+1,t.rounding)};R.toNumber=function(){return+this};R.toPower=R.pow=function(e){var t,r,n,i,o,s,a=this,u=a.constructor,g=12,T=+(e=new u(e));if(!e.s)return new u(X);if(a=new u(a),!a.s){if(e.s<1)throw Error(re+"Infinity");return a}if(a.eq(X))return a;if(n=u.precision,e.eq(X))return D(a,n);if(t=e.e,r=e.d.length-1,s=t>=r,o=a.s,s){if((r=T<0?-T:T)<=ln){for(i=new u(X),t=Math.ceil(n/N+4),U=!1;r%2&&(i=i.times(a),an(i.d,t)),r=Fe(r/2),r!==0;)a=a.times(a),an(a.d,t);return U=!0,e.s<0?new u(X).div(i):D(i,n)}}else if(o<0)throw Error(re+"NaN");return o=o<0&&e.d[Math.max(t,r)]&1?-1:1,a.s=1,U=!1,i=e.times(tt(a,n+g)),U=!0,i=cn(i),i.s=o,i};R.toPrecision=function(e,t){var r,n,i=this,o=i.constructor;return e===void 0?(r=$(i),n=Oe(i,r<=o.toExpNeg||r>=o.toExpPos)):(le(e,1,De),t===void 0?t=o.rounding:le(t,0,8),i=D(new o(i),e,t),r=$(i),n=Oe(i,e<=r||r<=o.toExpNeg,e)),n};R.toSignificantDigits=R.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(le(e,1,De),t===void 0?t=n.rounding:le(t,0,8)),D(new n(r),e,t)};R.toString=R.valueOf=R.val=R.toJSON=R[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=$(e),r=e.constructor;return Oe(e,t<=r.toExpNeg||t>=r.toExpPos)};ye=function(){function e(n,i){var o,s=0,a=n.length;for(n=n.slice();a--;)o=n[a]*i+s,n[a]=o%j|0,s=o/j|0;return s&&n.unshift(s),n}function t(n,i,o,s){var a,u;if(o!=s)u=o>s?1:-1;else for(a=u=0;ai[a]?1:-1;break}return u}function r(n,i,o){for(var s=0;o--;)n[o]-=s,s=n[o]1;)n.shift()}return function(n,i,o,s){var a,u,g,T,C,O,A,M,S,I,ne,K,Ie,k,Re,dr,ie,Ct,Rt=n.constructor,Do=n.s==i.s?1:-1,oe=n.d,q=i.d;if(!n.s)return new Rt(n);if(!i.s)throw Error(re+"Division by zero");for(u=n.e-i.e,ie=q.length,Re=oe.length,A=new Rt(Do),M=A.d=[],g=0;q[g]==(oe[g]||0);)++g;if(q[g]>(oe[g]||0)&&--u,o==null?K=o=Rt.precision:s?K=o+($(n)-$(i))+1:K=o,K<0)return new Rt(0);if(K=K/N+2|0,g=0,ie==1)for(T=0,q=q[0],K++;(g1&&(q=e(q,T),oe=e(oe,T),ie=q.length,Re=oe.length),k=ie,S=oe.slice(0,ie),I=S.length;I=j/2&&++dr;do T=0,a=t(q,S,ie,I),a<0?(ne=S[0],ie!=I&&(ne=ne*j+(S[1]||0)),T=ne/dr|0,T>1?(T>=j&&(T=j-1),C=e(q,T),O=C.length,I=S.length,a=t(C,S,O,I),a==1&&(T--,r(C,ie{"use strict";dn();v=class extends Mt{static isDecimal(t){return t instanceof Mt}static random(t=20){{let n=crypto.getRandomValues(new Uint8Array(t)).reduce((i,o)=>i+o,"");return new Mt(`0.${n.slice(0,t)}`)}}},ue=v});function Zo(){return!1}var es,ts,yn,bn=se(()=>{"use strict";c();m();p();d();f();l();es={},ts={existsSync:Zo,promises:es},yn=ts});function as(...e){return e.join("/")}function ls(...e){return e.join("/")}var In,us,cs,nt,Ln=se(()=>{"use strict";c();m();p();d();f();l();In="/",us={sep:In},cs={resolve:as,posix:us,join:ls,sep:In},nt=cs});var Ft,Dn=se(()=>{"use strict";c();m();p();d();f();l();Ft=class{constructor(){this.events={}}on(t,r){return this.events[t]||(this.events[t]=[]),this.events[t].push(r),this}emit(t,...r){return this.events[t]?(this.events[t].forEach(n=>{n(...r)}),!0):!1}}});var Nn=Le((Wc,Fn)=>{"use strict";c();m();p();d();f();l();Fn.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var Bn=Le((am,qn)=>{"use strict";c();m();p();d();f();l();qn.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var Vn=Le((fm,$n)=>{"use strict";c();m();p();d();f();l();var hs=Bn();$n.exports=e=>typeof e=="string"?e.replace(hs(),""):e});var Or=Le((Pf,Jn)=>{"use strict";c();m();p();d();f();l();Jn.exports=function(){function e(t,r,n,i,o){return tn?n+1:t+1:i===o?r:r+1}return function(t,r){if(t===r)return 0;if(t.length>r.length){var n=t;t=r,r=n}for(var i=t.length,o=r.length;i>0&&t.charCodeAt(i-1)===r.charCodeAt(o-1);)i--,o--;for(var s=0;s{pa.exports={name:"@prisma/engines-version",version:"6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959",main:"index.js",types:"index.d.ts",license:"Apache-2.0",author:"Tim Suchanek ",prisma:{enginesVersion:"11f085a2012c0f4778414c8db2651556ee0ef959"},repository:{type:"git",url:"https://github.com/prisma/engines-wrapper.git",directory:"packages/engines-version"},devDependencies:{"@types/node":"18.19.67",typescript:"4.9.5"},files:["index.js","index.d.ts"],scripts:{build:"tsc -d"}}});var Ei=Le(()=>{"use strict";c();m();p();d();f();l()});var ul={};St(ul,{Debug:()=>vr,Decimal:()=>ue,Extensions:()=>wr,MetricsClient:()=>ze,PrismaClientInitializationError:()=>L,PrismaClientKnownRequestError:()=>z,PrismaClientRustPanicError:()=>we,PrismaClientUnknownRequestError:()=>Q,PrismaClientValidationError:()=>G,Public:()=>Er,Sql:()=>Y,defineDmmfProperty:()=>hi,deserializeJsonResponse:()=>qe,dmmfToRuntimeDataModel:()=>gi,empty:()=>Pi,getPrismaClient:()=>Io,getRuntime:()=>Te,join:()=>xi,makeStrictEnum:()=>Lo,makeTypedQueryFactory:()=>yi,objectEnumValues:()=>Gt,raw:()=>$r,serializeJsonQuery:()=>Xt,skip:()=>Yt,sqltag:()=>Vr,warnEnvConflicts:()=>void 0,warnOnce:()=>at});module.exports=$o(ul);c();m();p();d();f();l();var wr={};St(wr,{defineExtension:()=>fn,getExtensionContext:()=>gn});c();m();p();d();f();l();c();m();p();d();f();l();function fn(e){return typeof e=="function"?e:t=>t.$extends(e)}c();m();p();d();f();l();function gn(e){return e}var Er={};St(Er,{validator:()=>hn});c();m();p();d();f();l();c();m();p();d();f();l();function hn(...e){return t=>t}c();m();p();d();f();l();c();m();p();d();f();l();c();m();p();d();f();l();var xr,wn,En,xn,Pn=!0;typeof h<"u"&&({FORCE_COLOR:xr,NODE_DISABLE_COLORS:wn,NO_COLOR:En,TERM:xn}=h.env||{},Pn=h.stdout&&h.stdout.isTTY);var rs={enabled:!wn&&En==null&&xn!=="dumb"&&(xr!=null&&xr!=="0"||Pn)};function F(e,t){let r=new RegExp(`\\x1b\\[${t}m`,"g"),n=`\x1B[${e}m`,i=`\x1B[${t}m`;return function(o){return!rs.enabled||o==null?o:n+(~(""+o).indexOf(i)?o.replace(r,i+n):o)+i}}var fu=F(0,0),It=F(1,22),Lt=F(2,22),gu=F(3,23),vn=F(4,24),hu=F(7,27),yu=F(8,28),bu=F(9,29),wu=F(30,39),Ne=F(31,39),Tn=F(32,39),Cn=F(33,39),Rn=F(34,39),Eu=F(35,39),An=F(36,39),xu=F(37,39),Sn=F(90,39),Pu=F(90,39),vu=F(40,49),Tu=F(41,49),Cu=F(42,49),Ru=F(43,49),Au=F(44,49),Su=F(45,49),Ou=F(46,49),ku=F(47,49);c();m();p();d();f();l();var ns=100,On=["green","yellow","blue","magenta","cyan","red"],_t=[],kn=Date.now(),is=0,Pr=typeof h<"u"?h.env:{};globalThis.DEBUG??=Pr.DEBUG??"";globalThis.DEBUG_COLORS??=Pr.DEBUG_COLORS?Pr.DEBUG_COLORS==="true":!0;var rt={enable(e){typeof e=="string"&&(globalThis.DEBUG=e)},disable(){let e=globalThis.DEBUG;return globalThis.DEBUG="",e},enabled(e){let t=globalThis.DEBUG.split(",").map(i=>i.replace(/[.+?^${}()|[\]\\]/g,"\\$&")),r=t.some(i=>i===""||i[0]==="-"?!1:e.match(RegExp(i.split("*").join(".*")+"$"))),n=t.some(i=>i===""||i[0]!=="-"?!1:e.match(RegExp(i.slice(1).split("*").join(".*")+"$")));return r&&!n},log:(...e)=>{let[t,r,...n]=e;(console.warn??console.log)(`${t} ${r}`,...n)},formatters:{}};function os(e){let t={color:On[is++%On.length],enabled:rt.enabled(e),namespace:e,log:rt.log,extend:()=>{}},r=(...n)=>{let{enabled:i,namespace:o,color:s,log:a}=t;if(n.length!==0&&_t.push([o,...n]),_t.length>ns&&_t.shift(),rt.enabled(o)||i){let u=n.map(T=>typeof T=="string"?T:ss(T)),g=`+${Date.now()-kn}ms`;kn=Date.now(),a(o,...u,g)}};return new Proxy(r,{get:(n,i)=>t[i],set:(n,i,o)=>t[i]=o})}var vr=new Proxy(os,{get:(e,t)=>rt[t],set:(e,t,r)=>rt[t]=r});function ss(e,t=2){let r=new Set;return JSON.stringify(e,(n,i)=>{if(typeof i=="object"&&i!==null){if(r.has(i))return"[Circular *]";r.add(i)}else if(typeof i=="bigint")return i.toString();return i},t)}function Mn(){_t.length=0}var Z=vr;c();m();p();d();f();l();c();m();p();d();f();l();var Tr=["darwin","darwin-arm64","debian-openssl-1.0.x","debian-openssl-1.1.x","debian-openssl-3.0.x","rhel-openssl-1.0.x","rhel-openssl-1.1.x","rhel-openssl-3.0.x","linux-arm64-openssl-1.1.x","linux-arm64-openssl-1.0.x","linux-arm64-openssl-3.0.x","linux-arm-openssl-1.1.x","linux-arm-openssl-1.0.x","linux-arm-openssl-3.0.x","linux-musl","linux-musl-openssl-3.0.x","linux-musl-arm64-openssl-1.1.x","linux-musl-arm64-openssl-3.0.x","linux-nixos","linux-static-x64","linux-static-arm64","windows","freebsd11","freebsd12","freebsd13","freebsd14","freebsd15","openbsd","netbsd","arm"];c();m();p();d();f();l();var _n="library";function it(e){let t=ms();return t||(e?.config.engineType==="library"?"library":e?.config.engineType==="binary"?"binary":_n)}function ms(){let e=h.env.PRISMA_CLIENT_ENGINE_TYPE;return e==="library"?"library":e==="binary"?"binary":void 0}c();m();p();d();f();l();c();m();p();d();f();l();var Dt;(t=>{let e;(k=>(k.findUnique="findUnique",k.findUniqueOrThrow="findUniqueOrThrow",k.findFirst="findFirst",k.findFirstOrThrow="findFirstOrThrow",k.findMany="findMany",k.create="create",k.createMany="createMany",k.createManyAndReturn="createManyAndReturn",k.update="update",k.updateMany="updateMany",k.upsert="upsert",k.delete="delete",k.deleteMany="deleteMany",k.groupBy="groupBy",k.count="count",k.aggregate="aggregate",k.findRaw="findRaw",k.aggregateRaw="aggregateRaw"))(e=t.ModelAction||={})})(Dt||={});var st={};St(st,{error:()=>fs,info:()=>ds,log:()=>ps,query:()=>gs,should:()=>Un,tags:()=>ot,warn:()=>Cr});c();m();p();d();f();l();var ot={error:Ne("prisma:error"),warn:Cn("prisma:warn"),info:An("prisma:info"),query:Rn("prisma:query")},Un={warn:()=>!h.env.PRISMA_DISABLE_WARNINGS};function ps(...e){console.log(...e)}function Cr(e,...t){Un.warn()&&console.warn(`${ot.warn} ${e}`,...t)}function ds(e,...t){console.info(`${ot.info} ${e}`,...t)}function fs(e,...t){console.error(`${ot.error} ${e}`,...t)}function gs(e,...t){console.log(`${ot.query} ${e}`,...t)}c();m();p();d();f();l();function Nt(e,t){if(!e)throw new Error(`${t}. This should never happen. If you see this error, please, open an issue at https://pris.ly/prisma-prisma-bug-report`)}c();m();p();d();f();l();function be(e,t){throw new Error(t)}c();m();p();d();f();l();function Rr(e,t){return Object.prototype.hasOwnProperty.call(e,t)}c();m();p();d();f();l();var Ar=(e,t)=>e.reduce((r,n)=>(r[t(n)]=n,r),{});c();m();p();d();f();l();function Ue(e,t){let r={};for(let n of Object.keys(e))r[n]=t(e[n],n);return r}c();m();p();d();f();l();function Sr(e,t){if(e.length===0)return;let r=e[0];for(let n=1;n{jn.has(e)||(jn.add(e),Cr(t,...r))};var L=class e extends Error{constructor(t,r,n){super(t),this.name="PrismaClientInitializationError",this.clientVersion=r,this.errorCode=n,Error.captureStackTrace(e)}get[Symbol.toStringTag](){return"PrismaClientInitializationError"}};ee(L,"PrismaClientInitializationError");c();m();p();d();f();l();var z=class extends Error{constructor(t,{code:r,clientVersion:n,meta:i,batchRequestIdx:o}){super(t),this.name="PrismaClientKnownRequestError",this.code=r,this.clientVersion=n,this.meta=i,Object.defineProperty(this,"batchRequestIdx",{value:o,enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return"PrismaClientKnownRequestError"}};ee(z,"PrismaClientKnownRequestError");c();m();p();d();f();l();var we=class extends Error{constructor(t,r){super(t),this.name="PrismaClientRustPanicError",this.clientVersion=r}get[Symbol.toStringTag](){return"PrismaClientRustPanicError"}};ee(we,"PrismaClientRustPanicError");c();m();p();d();f();l();var Q=class extends Error{constructor(t,{clientVersion:r,batchRequestIdx:n}){super(t),this.name="PrismaClientUnknownRequestError",this.clientVersion=r,Object.defineProperty(this,"batchRequestIdx",{value:n,writable:!0,enumerable:!1})}get[Symbol.toStringTag](){return"PrismaClientUnknownRequestError"}};ee(Q,"PrismaClientUnknownRequestError");c();m();p();d();f();l();var G=class extends Error{constructor(r,{clientVersion:n}){super(r);this.name="PrismaClientValidationError";this.clientVersion=n}get[Symbol.toStringTag](){return"PrismaClientValidationError"}};ee(G,"PrismaClientValidationError");c();m();p();d();f();l();l();function qe(e){return e===null?e:Array.isArray(e)?e.map(qe):typeof e=="object"?ys(e)?bs(e):Ue(e,qe):e}function ys(e){return e!==null&&typeof e=="object"&&typeof e.$type=="string"}function bs({$type:e,value:t}){switch(e){case"BigInt":return BigInt(t);case"Bytes":{let{buffer:r,byteOffset:n,byteLength:i}=b.from(t,"base64");return new Uint8Array(r,n,i)}case"DateTime":return new Date(t);case"Decimal":return new ue(t);case"Json":return JSON.parse(t);default:be(t,"Unknown tagged value")}}c();m();p();d();f();l();c();m();p();d();f();l();function Be(e){return e.substring(0,1).toLowerCase()+e.substring(1)}c();m();p();d();f();l();function $e(e){return e instanceof Date||Object.prototype.toString.call(e)==="[object Date]"}function Ut(e){return e.toString()!=="Invalid Date"}c();m();p();d();f();l();l();function Ve(e){return v.isDecimal(e)?!0:e!==null&&typeof e=="object"&&typeof e.s=="number"&&typeof e.e=="number"&&typeof e.toFixed=="function"&&Array.isArray(e.d)}c();m();p();d();f();l();c();m();p();d();f();l();var ws=_e(Nn());var Es={red:Ne,gray:Sn,dim:Lt,bold:It,underline:vn,highlightSource:e=>e.highlight()},xs={red:e=>e,gray:e=>e,dim:e=>e,bold:e=>e,underline:e=>e,highlightSource:e=>e};function Ps({message:e,originalMethod:t,isPanic:r,callArguments:n}){return{functionName:`prisma.${t}()`,message:e,isPanic:r??!1,callArguments:n}}function vs({functionName:e,location:t,message:r,isPanic:n,contextLines:i,callArguments:o},s){let a=[""],u=t?" in":":";if(n?(a.push(s.red(`Oops, an unknown error occurred! This is ${s.bold("on us")}, you did nothing wrong.`)),a.push(s.red(`It occurred in the ${s.bold(`\`${e}\``)} invocation${u}`))):a.push(s.red(`Invalid ${s.bold(`\`${e}\``)} invocation${u}`)),t&&a.push(s.underline(Ts(t))),i){a.push("");let g=[i.toString()];o&&(g.push(o),g.push(s.dim(")"))),a.push(g.join("")),o&&a.push("")}else a.push(""),o&&a.push(o),a.push("");return a.push(r),a.join(` +`)}function Ts(e){let t=[e.fileName];return e.lineNumber&&t.push(String(e.lineNumber)),e.columnNumber&&t.push(String(e.columnNumber)),t.join(":")}function qt(e){let t=e.showColors?Es:xs,r;return typeof $getTemplateParameters<"u"?r=$getTemplateParameters(e,t):r=Ps(e),vs(r,t)}c();m();p();d();f();l();var Yn=_e(Or());c();m();p();d();f();l();function Kn(e,t,r){let n=Hn(e),i=Cs(n),o=As(i);o?Bt(o,t,r):t.addErrorMessage(()=>"Unknown error")}function Hn(e){return e.errors.flatMap(t=>t.kind==="Union"?Hn(t):[t])}function Cs(e){let t=new Map,r=[];for(let n of e){if(n.kind!=="InvalidArgumentType"){r.push(n);continue}let i=`${n.selectionPath.join(".")}:${n.argumentPath.join(".")}`,o=t.get(i);o?t.set(i,{...n,argument:{...n.argument,typeNames:Rs(o.argument.typeNames,n.argument.typeNames)}}):t.set(i,n)}return r.push(...t.values()),r}function Rs(e,t){return[...new Set(e.concat(t))]}function As(e){return Sr(e,(t,r)=>{let n=Gn(t),i=Gn(r);return n!==i?n-i:Wn(t)-Wn(r)})}function Gn(e){let t=0;return Array.isArray(e.selectionPath)&&(t+=e.selectionPath.length),Array.isArray(e.argumentPath)&&(t+=e.argumentPath.length),t}function Wn(e){switch(e.kind){case"InvalidArgumentValue":case"ValueTooLarge":return 20;case"InvalidArgumentType":return 10;case"RequiredArgumentMissing":return-10;default:return 0}}c();m();p();d();f();l();var te=class{constructor(t,r){this.name=t;this.value=r;this.isRequired=!1}makeRequired(){return this.isRequired=!0,this}write(t){let{colors:{green:r}}=t.context;t.addMarginSymbol(r(this.isRequired?"+":"?")),t.write(r(this.name)),this.isRequired||t.write(r("?")),t.write(r(": ")),typeof this.value=="string"?t.write(r(this.value)):t.write(this.value)}};c();m();p();d();f();l();c();m();p();d();f();l();var je=class{constructor(t=0,r){this.context=r;this.lines=[];this.currentLine="";this.currentIndent=0;this.currentIndent=t}write(t){return typeof t=="string"?this.currentLine+=t:t.write(this),this}writeJoined(t,r,n=(i,o)=>o.write(i)){let i=r.length-1;for(let o=0;o0&&this.currentIndent--,this}addMarginSymbol(t){return this.marginSymbol=t,this}toString(){return this.lines.concat(this.indentedCurrentLine()).join(` +`)}getCurrentLineLength(){return this.currentLine.length}indentedCurrentLine(){let t=this.currentLine.padStart(this.currentLine.length+2*this.currentIndent);return this.marginSymbol?this.marginSymbol+t.slice(1):t}};c();m();p();d();f();l();c();m();p();d();f();l();var $t=class{constructor(t){this.value=t}write(t){t.write(this.value)}markAsError(){this.value.markAsError()}};c();m();p();d();f();l();var Vt=e=>e,jt={bold:Vt,red:Vt,green:Vt,dim:Vt,enabled:!1},zn={bold:It,red:Ne,green:Tn,dim:Lt,enabled:!0},Qe={write(e){e.writeLine(",")}};c();m();p();d();f();l();var ce=class{constructor(t){this.contents=t;this.isUnderlined=!1;this.color=t=>t}underline(){return this.isUnderlined=!0,this}setColor(t){return this.color=t,this}write(t){let r=t.getCurrentLineLength();t.write(this.color(this.contents)),this.isUnderlined&&t.afterNextNewline(()=>{t.write(" ".repeat(r)).writeLine(this.color("~".repeat(this.contents.length)))})}};c();m();p();d();f();l();var Pe=class{constructor(){this.hasError=!1}markAsError(){return this.hasError=!0,this}};var Je=class extends Pe{constructor(){super(...arguments);this.items=[]}addItem(r){return this.items.push(new $t(r)),this}getField(r){return this.items[r]}getPrintWidth(){return this.items.length===0?2:Math.max(...this.items.map(n=>n.value.getPrintWidth()))+2}write(r){if(this.items.length===0){this.writeEmpty(r);return}this.writeWithItems(r)}writeEmpty(r){let n=new ce("[]");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithItems(r){let{colors:n}=r.context;r.writeLine("[").withIndent(()=>r.writeJoined(Qe,this.items).newLine()).write("]"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(n.red("~".repeat(this.getPrintWidth())))})}asObject(){}};var Ge=class e extends Pe{constructor(){super(...arguments);this.fields={};this.suggestions=[]}addField(r){this.fields[r.name]=r}addSuggestion(r){this.suggestions.push(r)}getField(r){return this.fields[r]}getDeepField(r){let[n,...i]=r,o=this.getField(n);if(!o)return;let s=o;for(let a of i){let u;if(s.value instanceof e?u=s.value.getField(a):s.value instanceof Je&&(u=s.value.getField(Number(a))),!u)return;s=u}return s}getDeepFieldValue(r){return r.length===0?this:this.getDeepField(r)?.value}hasField(r){return!!this.getField(r)}removeAllFields(){this.fields={}}removeField(r){delete this.fields[r]}getFields(){return this.fields}isEmpty(){return Object.keys(this.fields).length===0}getFieldValue(r){return this.getField(r)?.value}getDeepSubSelectionValue(r){let n=this;for(let i of r){if(!(n instanceof e))return;let o=n.getSubSelectionValue(i);if(!o)return;n=o}return n}getDeepSelectionParent(r){let n=this.getSelectionParent();if(!n)return;let i=n;for(let o of r){let s=i.value.getFieldValue(o);if(!s||!(s instanceof e))return;let a=s.getSelectionParent();if(!a)return;i=a}return i}getSelectionParent(){let r=this.getField("select")?.value.asObject();if(r)return{kind:"select",value:r};let n=this.getField("include")?.value.asObject();if(n)return{kind:"include",value:n}}getSubSelectionValue(r){return this.getSelectionParent()?.value.fields[r].value}getPrintWidth(){let r=Object.values(this.fields);return r.length==0?2:Math.max(...r.map(i=>i.getPrintWidth()))+2}write(r){let n=Object.values(this.fields);if(n.length===0&&this.suggestions.length===0){this.writeEmpty(r);return}this.writeWithContents(r,n)}asObject(){return this}writeEmpty(r){let n=new ce("{}");this.hasError&&n.setColor(r.context.colors.red).underline(),r.write(n)}writeWithContents(r,n){r.writeLine("{").withIndent(()=>{r.writeJoined(Qe,[...n,...this.suggestions]).newLine()}),r.write("}"),this.hasError&&r.afterNextNewline(()=>{r.writeLine(r.context.colors.red("~".repeat(this.getPrintWidth())))})}};c();m();p();d();f();l();var J=class extends Pe{constructor(r){super();this.text=r}getPrintWidth(){return this.text.length}write(r){let n=new ce(this.text);this.hasError&&n.underline().setColor(r.context.colors.red),r.write(n)}asObject(){}};c();m();p();d();f();l();var lt=class{constructor(){this.fields=[]}addField(t,r){return this.fields.push({write(n){let{green:i,dim:o}=n.context.colors;n.write(i(o(`${t}: ${r}`))).addMarginSymbol(i(o("+")))}}),this}write(t){let{colors:{green:r}}=t.context;t.writeLine(r("{")).withIndent(()=>{t.writeJoined(Qe,this.fields).newLine()}).write(r("}")).addMarginSymbol(r("+"))}};function Bt(e,t,r){switch(e.kind){case"MutuallyExclusiveFields":Os(e,t);break;case"IncludeOnScalar":ks(e,t);break;case"EmptySelection":Ms(e,t,r);break;case"UnknownSelectionField":Ds(e,t);break;case"InvalidSelectionValue":Fs(e,t);break;case"UnknownArgument":Ns(e,t);break;case"UnknownInputField":Us(e,t);break;case"RequiredArgumentMissing":qs(e,t);break;case"InvalidArgumentType":Bs(e,t);break;case"InvalidArgumentValue":$s(e,t);break;case"ValueTooLarge":Vs(e,t);break;case"SomeFieldsMissing":js(e,t);break;case"TooManyFieldsGiven":Qs(e,t);break;case"Union":Kn(e,t,r);break;default:throw new Error("not implemented: "+e.kind)}}function Os(e,t){let r=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();r&&(r.getField(e.firstField)?.markAsError(),r.getField(e.secondField)?.markAsError()),t.addErrorMessage(n=>`Please ${n.bold("either")} use ${n.green(`\`${e.firstField}\``)} or ${n.green(`\`${e.secondField}\``)}, but ${n.red("not both")} at the same time.`)}function ks(e,t){let[r,n]=ut(e.selectionPath),i=e.outputType,o=t.arguments.getDeepSelectionParent(r)?.value;if(o&&(o.getField(n)?.markAsError(),i))for(let s of i.fields)s.isRelation&&o.addSuggestion(new te(s.name,"true"));t.addErrorMessage(s=>{let a=`Invalid scalar field ${s.red(`\`${n}\``)} for ${s.bold("include")} statement`;return i?a+=` on model ${s.bold(i.name)}. ${ct(s)}`:a+=".",a+=` +Note that ${s.bold("include")} statements only accept relation fields.`,a})}function Ms(e,t,r){let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getField("omit")?.value.asObject();if(i){Is(e,t,i);return}if(n.hasField("select")){Ls(e,t);return}}if(r?.[Be(e.outputType.name)]){_s(e,t);return}t.addErrorMessage(()=>`Unknown field at "${e.selectionPath.join(".")} selection"`)}function Is(e,t,r){r.removeAllFields();for(let n of e.outputType.fields)r.addSuggestion(new te(n.name,"false"));t.addErrorMessage(n=>`The ${n.red("omit")} statement includes every field of the model ${n.bold(e.outputType.name)}. At least one field must be included in the result`)}function Ls(e,t){let r=e.outputType,n=t.arguments.getDeepSelectionParent(e.selectionPath)?.value,i=n?.isEmpty()??!1;n&&(n.removeAllFields(),ei(n,r)),t.addErrorMessage(o=>i?`The ${o.red("`select`")} statement for type ${o.bold(r.name)} must not be empty. ${ct(o)}`:`The ${o.red("`select`")} statement for type ${o.bold(r.name)} needs ${o.bold("at least one truthy value")}.`)}function _s(e,t){let r=new lt;for(let i of e.outputType.fields)i.isRelation||r.addField(i.name,"false");let n=new te("omit",r).makeRequired();if(e.selectionPath.length===0)t.arguments.addSuggestion(n);else{let[i,o]=ut(e.selectionPath),a=t.arguments.getDeepSelectionParent(i)?.value.asObject()?.getField(o);if(a){let u=a?.value.asObject()??new Ge;u.addSuggestion(n),a.value=u}}t.addErrorMessage(i=>`The global ${i.red("omit")} configuration excludes every field of the model ${i.bold(e.outputType.name)}. At least one field must be included in the result`)}function Ds(e,t){let r=ti(e.selectionPath,t);if(r.parentKind!=="unknown"){r.field.markAsError();let n=r.parent;switch(r.parentKind){case"select":ei(n,e.outputType);break;case"include":Js(n,e.outputType);break;case"omit":Gs(n,e.outputType);break}}t.addErrorMessage(n=>{let i=[`Unknown field ${n.red(`\`${r.fieldName}\``)}`];return r.parentKind!=="unknown"&&i.push(`for ${n.bold(r.parentKind)} statement`),i.push(`on model ${n.bold(`\`${e.outputType.name}\``)}.`),i.push(ct(n)),i.join(" ")})}function Fs(e,t){let r=ti(e.selectionPath,t);r.parentKind!=="unknown"&&r.field.value.markAsError(),t.addErrorMessage(n=>`Invalid value for selection field \`${n.red(r.fieldName)}\`: ${e.underlyingError}`)}function Ns(e,t){let r=e.argumentPath[0],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&(n.getField(r)?.markAsError(),Ws(n,e.arguments)),t.addErrorMessage(i=>Xn(i,r,e.arguments.map(o=>o.name)))}function Us(e,t){let[r,n]=ut(e.argumentPath),i=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(i){i.getDeepField(e.argumentPath)?.markAsError();let o=i.getDeepFieldValue(r)?.asObject();o&&ri(o,e.inputType)}t.addErrorMessage(o=>Xn(o,n,e.inputType.fields.map(s=>s.name)))}function Xn(e,t,r){let n=[`Unknown argument \`${e.red(t)}\`.`],i=Hs(t,r);return i&&n.push(`Did you mean \`${e.green(i)}\`?`),r.length>0&&n.push(ct(e)),n.join(" ")}function qs(e,t){let r;t.addErrorMessage(u=>r?.value instanceof J&&r.value.text==="null"?`Argument \`${u.green(o)}\` must not be ${u.red("null")}.`:`Argument \`${u.green(o)}\` is missing.`);let n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(!n)return;let[i,o]=ut(e.argumentPath),s=new lt,a=n.getDeepFieldValue(i)?.asObject();if(a)if(r=a.getField(o),r&&a.removeField(o),e.inputTypes.length===1&&e.inputTypes[0].kind==="object"){for(let u of e.inputTypes[0].fields)s.addField(u.name,u.typeNames.join(" | "));a.addSuggestion(new te(o,s).makeRequired())}else{let u=e.inputTypes.map(Zn).join(" | ");a.addSuggestion(new te(o,u).makeRequired())}}function Zn(e){return e.kind==="list"?`${Zn(e.elementType)}[]`:e.name}function Bs(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=Qt("or",e.argument.typeNames.map(s=>i.green(s)));return`Argument \`${i.bold(r)}\`: Invalid value provided. Expected ${o}, provided ${i.red(e.inferredType)}.`})}function $s(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();n&&n.getDeepFieldValue(e.argumentPath)?.markAsError(),t.addErrorMessage(i=>{let o=[`Invalid value for argument \`${i.bold(r)}\``];if(e.underlyingError&&o.push(`: ${e.underlyingError}`),o.push("."),e.argument.typeNames.length>0){let s=Qt("or",e.argument.typeNames.map(a=>i.green(a)));o.push(` Expected ${s}.`)}return o.join("")})}function Vs(e,t){let r=e.argument.name,n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i;if(n){let s=n.getDeepField(e.argumentPath)?.value;s?.markAsError(),s instanceof J&&(i=s.text)}t.addErrorMessage(o=>{let s=["Unable to fit value"];return i&&s.push(o.red(i)),s.push(`into a 64-bit signed integer for field \`${o.bold(r)}\``),s.join(" ")})}function js(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject();if(n){let i=n.getDeepFieldValue(e.argumentPath)?.asObject();i&&ri(i,e.inputType)}t.addErrorMessage(i=>{let o=[`Argument \`${i.bold(r)}\` of type ${i.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1?e.constraints.requiredFields?o.push(`${i.green("at least one of")} ${Qt("or",e.constraints.requiredFields.map(s=>`\`${i.bold(s)}\``))} arguments.`):o.push(`${i.green("at least one")} argument.`):o.push(`${i.green(`at least ${e.constraints.minFieldCount}`)} arguments.`),o.push(ct(i)),o.join(" ")})}function Qs(e,t){let r=e.argumentPath[e.argumentPath.length-1],n=t.arguments.getDeepSubSelectionValue(e.selectionPath)?.asObject(),i=[];if(n){let o=n.getDeepFieldValue(e.argumentPath)?.asObject();o&&(o.markAsError(),i=Object.keys(o.getFields()))}t.addErrorMessage(o=>{let s=[`Argument \`${o.bold(r)}\` of type ${o.bold(e.inputType.name)} needs`];return e.constraints.minFieldCount===1&&e.constraints.maxFieldCount==1?s.push(`${o.green("exactly one")} argument,`):e.constraints.maxFieldCount==1?s.push(`${o.green("at most one")} argument,`):s.push(`${o.green(`at most ${e.constraints.maxFieldCount}`)} arguments,`),s.push(`but you provided ${Qt("and",i.map(a=>o.red(a)))}. Please choose`),e.constraints.maxFieldCount===1?s.push("one."):s.push(`${e.constraints.maxFieldCount}.`),s.join(" ")})}function ei(e,t){for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new te(r.name,"true"))}function Js(e,t){for(let r of t.fields)r.isRelation&&!e.hasField(r.name)&&e.addSuggestion(new te(r.name,"true"))}function Gs(e,t){for(let r of t.fields)!e.hasField(r.name)&&!r.isRelation&&e.addSuggestion(new te(r.name,"true"))}function Ws(e,t){for(let r of t)e.hasField(r.name)||e.addSuggestion(new te(r.name,r.typeNames.join(" | ")))}function ti(e,t){let[r,n]=ut(e),i=t.arguments.getDeepSubSelectionValue(r)?.asObject();if(!i)return{parentKind:"unknown",fieldName:n};let o=i.getFieldValue("select")?.asObject(),s=i.getFieldValue("include")?.asObject(),a=i.getFieldValue("omit")?.asObject(),u=o?.getField(n);return o&&u?{parentKind:"select",parent:o,field:u,fieldName:n}:(u=s?.getField(n),s&&u?{parentKind:"include",field:u,parent:s,fieldName:n}:(u=a?.getField(n),a&&u?{parentKind:"omit",field:u,parent:a,fieldName:n}:{parentKind:"unknown",fieldName:n}))}function ri(e,t){if(t.kind==="object")for(let r of t.fields)e.hasField(r.name)||e.addSuggestion(new te(r.name,r.typeNames.join(" | ")))}function ut(e){let t=[...e],r=t.pop();if(!r)throw new Error("unexpected empty path");return[t,r]}function ct({green:e,enabled:t}){return"Available options are "+(t?`listed in ${e("green")}`:"marked with ?")+"."}function Qt(e,t){if(t.length===1)return t[0];let r=[...t],n=r.pop();return`${r.join(", ")} ${e} ${n}`}var Ks=3;function Hs(e,t){let r=1/0,n;for(let i of t){let o=(0,Yn.default)(e,i);o>Ks||o`}};function We(e){return e instanceof mt}c();m();p();d();f();l();var Jt=Symbol(),kr=new WeakMap,Ee=class{constructor(t){t===Jt?kr.set(this,`Prisma.${this._getName()}`):kr.set(this,`new Prisma.${this._getNamespace()}.${this._getName()}()`)}_getName(){return this.constructor.name}toString(){return kr.get(this)}},pt=class extends Ee{_getNamespace(){return"NullTypes"}},dt=class extends pt{};Mr(dt,"DbNull");var ft=class extends pt{};Mr(ft,"JsonNull");var gt=class extends pt{};Mr(gt,"AnyNull");var Gt={classes:{DbNull:dt,JsonNull:ft,AnyNull:gt},instances:{DbNull:new dt(Jt),JsonNull:new ft(Jt),AnyNull:new gt(Jt)}};function Mr(e,t){Object.defineProperty(e,"name",{value:t,configurable:!0})}c();m();p();d();f();l();var ii=": ",Wt=class{constructor(t,r){this.name=t;this.value=r;this.hasError=!1}markAsError(){this.hasError=!0}getPrintWidth(){return this.name.length+this.value.getPrintWidth()+ii.length}write(t){let r=new ce(this.name);this.hasError&&r.underline().setColor(t.context.colors.red),t.write(r).write(ii).write(this.value)}};var Ir=class{constructor(t){this.errorMessages=[];this.arguments=t}write(t){t.write(this.arguments)}addErrorMessage(t){this.errorMessages.push(t)}renderAllMessages(t){return this.errorMessages.map(r=>r(t)).join(` +`)}};function Ke(e){return new Ir(oi(e))}function oi(e){let t=new Ge;for(let[r,n]of Object.entries(e)){let i=new Wt(r,si(n));t.addField(i)}return t}function si(e){if(typeof e=="string")return new J(JSON.stringify(e));if(typeof e=="number"||typeof e=="boolean")return new J(String(e));if(typeof e=="bigint")return new J(`${e}n`);if(e===null)return new J("null");if(e===void 0)return new J("undefined");if(Ve(e))return new J(`new Prisma.Decimal("${e.toFixed()}")`);if(e instanceof Uint8Array)return b.isBuffer(e)?new J(`Buffer.alloc(${e.byteLength})`):new J(`new Uint8Array(${e.byteLength})`);if(e instanceof Date){let t=Ut(e)?e.toISOString():"Invalid Date";return new J(`new Date("${t}")`)}return e instanceof Ee?new J(`Prisma.${e._getName()}`):We(e)?new J(`prisma.${ni(e.modelName)}.$fields.${e.name}`):Array.isArray(e)?zs(e):typeof e=="object"?oi(e):new J(Object.prototype.toString.call(e))}function zs(e){let t=new Je;for(let r of e)t.addItem(si(r));return t}function Kt(e,t){let r=t==="pretty"?zn:jt,n=e.renderAllMessages(r),i=new je(0,{colors:r}).write(e).toString();return{message:n,args:i}}function Ht({args:e,errors:t,errorFormat:r,callsite:n,originalMethod:i,clientVersion:o,globalOmit:s}){let a=Ke(e);for(let C of t)Bt(C,a,s);let{message:u,args:g}=Kt(a,r),T=qt({message:u,callsite:n,originalMethod:i,showColors:r==="pretty",callArguments:g});throw new G(T,{clientVersion:o})}c();m();p();d();f();l();c();m();p();d();f();l();var me=class{constructor(){this._map=new Map}get(t){return this._map.get(t)?.value}set(t,r){this._map.set(t,{value:r})}getOrCreate(t,r){let n=this._map.get(t);if(n)return n.value;let i=r();return this.set(t,i),i}};c();m();p();d();f();l();function ht(e){let t;return{get(){return t||(t={value:e()}),t.value}}}c();m();p();d();f();l();function pe(e){return e.replace(/^./,t=>t.toLowerCase())}c();m();p();d();f();l();function li(e,t,r){let n=pe(r);return!t.result||!(t.result.$allModels||t.result[n])?e:Ys({...e,...ai(t.name,e,t.result.$allModels),...ai(t.name,e,t.result[n])})}function Ys(e){let t=new me,r=(n,i)=>t.getOrCreate(n,()=>i.has(n)?[n]:(i.add(n),e[n]?e[n].needs.flatMap(o=>r(o,i)):[n]));return Ue(e,n=>({...n,needs:r(n.name,new Set)}))}function ai(e,t,r){return r?Ue(r,({needs:n,compute:i},o)=>({name:o,needs:n?Object.keys(n).filter(s=>n[s]):[],compute:Xs(t,o,i)})):{}}function Xs(e,t,r){let n=e?.[t]?.compute;return n?i=>r({...i,[t]:n(i)}):r}function ui(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(e[n.name])for(let i of n.needs)r[i]=!0;return r}function ci(e,t){if(!t)return e;let r={...e};for(let n of Object.values(t))if(!e[n.name])for(let i of n.needs)delete r[i];return r}var zt=class{constructor(t,r){this.extension=t;this.previous=r;this.computedFieldsCache=new me;this.modelExtensionsCache=new me;this.queryCallbacksCache=new me;this.clientExtensions=ht(()=>this.extension.client?{...this.previous?.getAllClientExtensions(),...this.extension.client}:this.previous?.getAllClientExtensions());this.batchCallbacks=ht(()=>{let t=this.previous?.getAllBatchQueryCallbacks()??[],r=this.extension.query?.$__internalBatch;return r?t.concat(r):t})}getAllComputedFields(t){return this.computedFieldsCache.getOrCreate(t,()=>li(this.previous?.getAllComputedFields(t),this.extension,t))}getAllClientExtensions(){return this.clientExtensions.get()}getAllModelExtensions(t){return this.modelExtensionsCache.getOrCreate(t,()=>{let r=pe(t);return!this.extension.model||!(this.extension.model[r]||this.extension.model.$allModels)?this.previous?.getAllModelExtensions(t):{...this.previous?.getAllModelExtensions(t),...this.extension.model.$allModels,...this.extension.model[r]}})}getAllQueryCallbacks(t,r){return this.queryCallbacksCache.getOrCreate(`${t}:${r}`,()=>{let n=this.previous?.getAllQueryCallbacks(t,r)??[],i=[],o=this.extension.query;return!o||!(o[t]||o.$allModels||o[r]||o.$allOperations)?n:(o[t]!==void 0&&(o[t][r]!==void 0&&i.push(o[t][r]),o[t].$allOperations!==void 0&&i.push(o[t].$allOperations)),t!=="$none"&&o.$allModels!==void 0&&(o.$allModels[r]!==void 0&&i.push(o.$allModels[r]),o.$allModels.$allOperations!==void 0&&i.push(o.$allModels.$allOperations)),o[r]!==void 0&&i.push(o[r]),o.$allOperations!==void 0&&i.push(o.$allOperations),n.concat(i))})}getAllBatchQueryCallbacks(){return this.batchCallbacks.get()}},He=class e{constructor(t){this.head=t}static empty(){return new e}static single(t){return new e(new zt(t))}isEmpty(){return this.head===void 0}append(t){return new e(new zt(t,this.head))}getAllComputedFields(t){return this.head?.getAllComputedFields(t)}getAllClientExtensions(){return this.head?.getAllClientExtensions()}getAllModelExtensions(t){return this.head?.getAllModelExtensions(t)}getAllQueryCallbacks(t,r){return this.head?.getAllQueryCallbacks(t,r)??[]}getAllBatchQueryCallbacks(){return this.head?.getAllBatchQueryCallbacks()??[]}};c();m();p();d();f();l();c();m();p();d();f();l();var mi=Symbol(),yt=class{constructor(t){if(t!==mi)throw new Error("Skip instance can not be constructed directly")}ifUndefined(t){return t===void 0?Yt:t}},Yt=new yt(mi);function de(e){return e instanceof yt}var Zs={findUnique:"findUnique",findUniqueOrThrow:"findUniqueOrThrow",findFirst:"findFirst",findFirstOrThrow:"findFirstOrThrow",findMany:"findMany",count:"aggregate",create:"createOne",createMany:"createMany",createManyAndReturn:"createManyAndReturn",update:"updateOne",updateMany:"updateMany",upsert:"upsertOne",delete:"deleteOne",deleteMany:"deleteMany",executeRaw:"executeRaw",queryRaw:"queryRaw",aggregate:"aggregate",groupBy:"groupBy",runCommandRaw:"runCommandRaw",findRaw:"findRaw",aggregateRaw:"aggregateRaw"},pi="explicitly `undefined` values are not allowed";function Xt({modelName:e,action:t,args:r,runtimeDataModel:n,extensions:i=He.empty(),callsite:o,clientMethod:s,errorFormat:a,clientVersion:u,previewFeatures:g,globalOmit:T}){let C=new Lr({runtimeDataModel:n,modelName:e,action:t,rootArgs:r,callsite:o,extensions:i,selectionPath:[],argumentPath:[],originalMethod:s,errorFormat:a,clientVersion:u,previewFeatures:g,globalOmit:T});return{modelName:e,action:Zs[t],query:bt(r,C)}}function bt({select:e,include:t,...r}={},n){let i;return n.isPreviewFeatureOn("omitApi")&&(i=r.omit,delete r.omit),{arguments:fi(r,n),selection:ea(e,t,i,n)}}function ea(e,t,r,n){return e?(t?n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"include",secondField:"select",selectionPath:n.getSelectionPath()}):r&&n.isPreviewFeatureOn("omitApi")&&n.throwValidationError({kind:"MutuallyExclusiveFields",firstField:"omit",secondField:"select",selectionPath:n.getSelectionPath()}),ia(e,n)):ta(n,t,r)}function ta(e,t,r){let n={};return e.modelOrType&&!e.isRawAction()&&(n.$composites=!0,n.$scalars=!0),t&&ra(n,t,e),e.isPreviewFeatureOn("omitApi")&&na(n,r,e),n}function ra(e,t,r){for(let[n,i]of Object.entries(t)){if(de(i))continue;let o=r.nestSelection(n);if(_r(i,o),i===!1||i===void 0){e[n]=!1;continue}let s=r.findField(n);if(s&&s.kind!=="object"&&r.throwValidationError({kind:"IncludeOnScalar",selectionPath:r.getSelectionPath().concat(n),outputType:r.getOutputTypeDescription()}),s){e[n]=bt(i===!0?{}:i,o);continue}if(i===!0){e[n]=!0;continue}e[n]=bt(i,o)}}function na(e,t,r){let n=r.getComputedFields(),i={...r.getGlobalOmit(),...t},o=ci(i,n);for(let[s,a]of Object.entries(o)){if(de(a))continue;_r(a,r.nestSelection(s));let u=r.findField(s);n?.[s]&&!u||(e[s]=!a)}}function ia(e,t){let r={},n=t.getComputedFields(),i=ui(e,n);for(let[o,s]of Object.entries(i)){if(de(s))continue;let a=t.nestSelection(o);_r(s,a);let u=t.findField(o);if(!(n?.[o]&&!u)){if(s===!1||s===void 0||de(s)){r[o]=!1;continue}if(s===!0){u?.kind==="object"?r[o]=bt({},a):r[o]=!0;continue}r[o]=bt(s,a)}}return r}function di(e,t){if(e===null)return null;if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(typeof e=="bigint")return{$type:"BigInt",value:String(e)};if($e(e)){if(Ut(e))return{$type:"DateTime",value:e.toISOString()};t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:["Date"]},underlyingError:"Provided Date object is invalid"})}if(We(e))return{$type:"FieldRef",value:{_ref:e.name,_container:e.modelName}};if(Array.isArray(e))return oa(e,t);if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{$type:"Bytes",value:b.from(r,n,i).toString("base64")}}if(sa(e))return e.values;if(Ve(e))return{$type:"Decimal",value:e.toFixed()};if(e instanceof Ee){if(e!==Gt.instances[e._getName()])throw new Error("Invalid ObjectEnumValue");return{$type:"Enum",value:e._getName()}}if(aa(e))return e.toJSON();if(typeof e=="object")return fi(e,t);t.throwValidationError({kind:"InvalidArgumentValue",selectionPath:t.getSelectionPath(),argumentPath:t.getArgumentPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:`We could not serialize ${Object.prototype.toString.call(e)} value. Serialize the object to JSON or implement a ".toJSON()" method on it`})}function fi(e,t){if(e.$type)return{$type:"Raw",value:e};let r={};for(let n in e){let i=e[n],o=t.nestArgument(n);de(i)||(i!==void 0?r[n]=di(i,o):t.isPreviewFeatureOn("strictUndefinedChecks")&&t.throwValidationError({kind:"InvalidArgumentValue",argumentPath:o.getArgumentPath(),selectionPath:t.getSelectionPath(),argument:{name:t.getArgumentName(),typeNames:[]},underlyingError:pi}))}return r}function oa(e,t){let r=[];for(let n=0;n({name:t.name,typeName:"boolean",isRelation:t.kind==="object"}))}}isRawAction(){return["executeRaw","queryRaw","runCommandRaw","findRaw","aggregateRaw"].includes(this.params.action)}isPreviewFeatureOn(t){return this.params.previewFeatures.includes(t)}getComputedFields(){if(this.params.modelName)return this.params.extensions.getAllComputedFields(this.params.modelName)}findField(t){return this.modelOrType?.fields.find(r=>r.name===t)}nestSelection(t){let r=this.findField(t),n=r?.kind==="object"?r.type:void 0;return new e({...this.params,modelName:n,selectionPath:this.params.selectionPath.concat(t)})}getGlobalOmit(){return this.params.modelName&&this.shouldApplyGlobalOmit()?this.params.globalOmit?.[Be(this.params.modelName)]??{}:{}}shouldApplyGlobalOmit(){switch(this.params.action){case"findFirst":case"findFirstOrThrow":case"findUniqueOrThrow":case"findMany":case"upsert":case"findUnique":case"createManyAndReturn":case"create":case"update":case"delete":return!0;case"executeRaw":case"aggregateRaw":case"runCommandRaw":case"findRaw":case"createMany":case"deleteMany":case"groupBy":case"updateMany":case"count":case"aggregate":case"queryRaw":return!1;default:be(this.params.action,"Unknown action")}}nestArgument(t){return new e({...this.params,argumentPath:this.params.argumentPath.concat(t)})}};c();m();p();d();f();l();var ze=class{constructor(t){this._engine=t}prometheus(t){return this._engine.metrics({format:"prometheus",...t})}json(t){return this._engine.metrics({format:"json",...t})}};c();m();p();d();f();l();function gi(e){return{models:Dr(e.models),enums:Dr(e.enums),types:Dr(e.types)}}function Dr(e){let t={};for(let{name:r,...n}of e)t[r]=n;return t}function hi(e,t){let r=ht(()=>la(t));Object.defineProperty(e,"dmmf",{get:()=>r.get()})}function la(e){throw new Error("Prisma.dmmf is not available when running in edge runtimes.")}function Fr(e){return Object.entries(e).map(([t,r])=>({name:t,...r}))}c();m();p();d();f();l();var Nr=new WeakMap,Zt="$$PrismaTypedSql",Ur=class{constructor(t,r){Nr.set(this,{sql:t,values:r}),Object.defineProperty(this,Zt,{value:Zt})}get sql(){return Nr.get(this).sql}get values(){return Nr.get(this).values}};function yi(e){return(...t)=>new Ur(e,t)}function bi(e){return e!=null&&e[Zt]===Zt}c();m();p();d();f();l();c();m();p();d();f();l();c();m();p();d();f();l();c();m();p();d();f();l();function wt(e){return{ok:!1,error:e,map(){return wt(e)},flatMap(){return wt(e)}}}var qr=class{constructor(){this.registeredErrors=[]}consumeError(t){return this.registeredErrors[t]}registerNewError(t){let r=0;for(;this.registeredErrors[r]!==void 0;)r++;return this.registeredErrors[r]={error:t},r}},Br=e=>{let t=new qr,r=fe(t,e.transactionContext.bind(e)),n={adapterName:e.adapterName,errorRegistry:t,queryRaw:fe(t,e.queryRaw.bind(e)),executeRaw:fe(t,e.executeRaw.bind(e)),provider:e.provider,transactionContext:async(...i)=>(await r(...i)).map(s=>ua(t,s))};return e.getConnectionInfo&&(n.getConnectionInfo=ma(t,e.getConnectionInfo.bind(e))),n},ua=(e,t)=>{let r=fe(e,t.startTransaction.bind(t));return{adapterName:t.adapterName,provider:t.provider,queryRaw:fe(e,t.queryRaw.bind(t)),executeRaw:fe(e,t.executeRaw.bind(t)),startTransaction:async(...n)=>(await r(...n)).map(o=>ca(e,o))}},ca=(e,t)=>({adapterName:t.adapterName,provider:t.provider,options:t.options,queryRaw:fe(e,t.queryRaw.bind(t)),executeRaw:fe(e,t.executeRaw.bind(t)),commit:fe(e,t.commit.bind(t)),rollback:fe(e,t.rollback.bind(t))});function fe(e,t){return async(...r)=>{try{return await t(...r)}catch(n){let i=e.registerNewError(n);return wt({kind:"GenericJs",id:i})}}}function ma(e,t){return(...r)=>{try{return t(...r)}catch(n){let i=e.registerNewError(n);return wt({kind:"GenericJs",id:i})}}}var Mo=_e(wi());var IO=_e(Ei());Dn();bn();Ln();c();m();p();d();f();l();var Y=class e{constructor(t,r){if(t.length-1!==r.length)throw t.length===0?new TypeError("Expected at least 1 string"):new TypeError(`Expected ${t.length} strings to have ${t.length-1} values`);let n=r.reduce((s,a)=>s+(a instanceof e?a.values.length:1),0);this.values=new Array(n),this.strings=new Array(n+1),this.strings[0]=t[0];let i=0,o=0;for(;ie.getPropertyValue(r))},getPropertyDescriptor(r){return e.getPropertyDescriptor?.(r)}}}c();m();p();d();f();l();c();m();p();d();f();l();var er={enumerable:!0,configurable:!0,writable:!0};function tr(e){let t=new Set(e);return{getOwnPropertyDescriptor:()=>er,has:(r,n)=>t.has(n),set:(r,n,i)=>t.add(n)&&Reflect.set(r,n,i),ownKeys:()=>[...t]}}var vi=Symbol.for("nodejs.util.inspect.custom");function ge(e,t){let r=da(t),n=new Set,i=new Proxy(e,{get(o,s){if(n.has(s))return o[s];let a=r.get(s);return a?a.getPropertyValue(s):o[s]},has(o,s){if(n.has(s))return!0;let a=r.get(s);return a?a.has?.(s)??!0:Reflect.has(o,s)},ownKeys(o){let s=Ti(Reflect.ownKeys(o),r),a=Ti(Array.from(r.keys()),r);return[...new Set([...s,...a,...n])]},set(o,s,a){return r.get(s)?.getPropertyDescriptor?.(s)?.writable===!1?!1:(n.add(s),Reflect.set(o,s,a))},getOwnPropertyDescriptor(o,s){let a=Reflect.getOwnPropertyDescriptor(o,s);if(a&&!a.configurable)return a;let u=r.get(s);return u?u.getPropertyDescriptor?{...er,...u?.getPropertyDescriptor(s)}:er:a},defineProperty(o,s,a){return n.add(s),Reflect.defineProperty(o,s,a)}});return i[vi]=function(){let o={...this};return delete o[vi],o},i}function da(e){let t=new Map;for(let r of e){let n=r.getKeys();for(let i of n)t.set(i,r)}return t}function Ti(e,t){return e.filter(r=>t.get(r)?.has?.(r)??!0)}c();m();p();d();f();l();function Ye(e){return{getKeys(){return e},has(){return!1},getPropertyValue(){}}}c();m();p();d();f();l();function rr(e,t){return{batch:e,transaction:t?.kind==="batch"?{isolationLevel:t.options.isolationLevel}:void 0}}c();m();p();d();f();l();function Ci(e){if(e===void 0)return"";let t=Ke(e);return new je(0,{colors:jt}).write(t).toString()}c();m();p();d();f();l();var fa="P2037";function nr({error:e,user_facing_error:t},r,n){return t.error_code?new z(ga(t,n),{code:t.error_code,clientVersion:r,meta:t.meta,batchRequestIdx:t.batch_request_idx}):new Q(e,{clientVersion:r,batchRequestIdx:t.batch_request_idx})}function ga(e,t){let r=e.message;return(t==="postgresql"||t==="postgres"||t==="mysql")&&e.error_code===fa&&(r+=` +Prisma Accelerate has built-in connection pooling to prevent such errors: https://pris.ly/client/error-accelerate`),r}c();m();p();d();f();l();c();m();p();d();f();l();c();m();p();d();f();l();c();m();p();d();f();l();c();m();p();d();f();l();var jr=class{getLocation(){return null}};function ve(e){return typeof $EnabledCallSite=="function"&&e!=="minimal"?new $EnabledCallSite:new jr}c();m();p();d();f();l();c();m();p();d();f();l();c();m();p();d();f();l();var Ri={_avg:!0,_count:!0,_sum:!0,_min:!0,_max:!0};function Xe(e={}){let t=ya(e);return Object.entries(t).reduce((n,[i,o])=>(Ri[i]!==void 0?n.select[i]={select:o}:n[i]=o,n),{select:{}})}function ya(e={}){return typeof e._count=="boolean"?{...e,_count:{_all:e._count}}:e}function ir(e={}){return t=>(typeof e._count=="boolean"&&(t._count=t._count._all),t)}function Ai(e,t){let r=ir(e);return t({action:"aggregate",unpacker:r,argsMapper:Xe})(e)}c();m();p();d();f();l();function ba(e={}){let{select:t,...r}=e;return typeof t=="object"?Xe({...r,_count:t}):Xe({...r,_count:{_all:!0}})}function wa(e={}){return typeof e.select=="object"?t=>ir(e)(t)._count:t=>ir(e)(t)._count._all}function Si(e,t){return t({action:"count",unpacker:wa(e),argsMapper:ba})(e)}c();m();p();d();f();l();function Ea(e={}){let t=Xe(e);if(Array.isArray(t.by))for(let r of t.by)typeof r=="string"&&(t.select[r]=!0);else typeof t.by=="string"&&(t.select[t.by]=!0);return t}function xa(e={}){return t=>(typeof e?._count=="boolean"&&t.forEach(r=>{r._count=r._count._all}),t)}function Oi(e,t){return t({action:"groupBy",unpacker:xa(e),argsMapper:Ea})(e)}function ki(e,t,r){if(t==="aggregate")return n=>Ai(n,r);if(t==="count")return n=>Si(n,r);if(t==="groupBy")return n=>Oi(n,r)}c();m();p();d();f();l();function Mi(e,t){let r=t.fields.filter(i=>!i.relationName),n=Ar(r,i=>i.name);return new Proxy({},{get(i,o){if(o in i||typeof o=="symbol")return i[o];let s=n[o];if(s)return new mt(e,o,s.type,s.isList,s.kind==="enum")},...tr(Object.keys(n))})}c();m();p();d();f();l();c();m();p();d();f();l();var Ii=e=>Array.isArray(e)?e:e.split("."),Qr=(e,t)=>Ii(t).reduce((r,n)=>r&&r[n],e),Li=(e,t,r)=>Ii(t).reduceRight((n,i,o,s)=>Object.assign({},Qr(e,s.slice(0,o)),{[i]:n}),r);function Pa(e,t){return e===void 0||t===void 0?[]:[...t,"select",e]}function va(e,t,r){return t===void 0?e??{}:Li(t,r,e||!0)}function Jr(e,t,r,n,i,o){let a=e._runtimeDataModel.models[t].fields.reduce((u,g)=>({...u,[g.name]:g}),{});return u=>{let g=ve(e._errorFormat),T=Pa(n,i),C=va(u,o,T),O=r({dataPath:T,callsite:g})(C),A=Ta(e,t);return new Proxy(O,{get(M,S){if(!A.includes(S))return M[S];let ne=[a[S].type,r,S],K=[T,C];return Jr(e,...ne,...K)},...tr([...A,...Object.getOwnPropertyNames(O)])})}}function Ta(e,t){return e._runtimeDataModel.models[t].fields.filter(r=>r.kind==="object").map(r=>r.name)}var Ca=["findUnique","findUniqueOrThrow","findFirst","findFirstOrThrow","create","update","upsert","delete"],Ra=["aggregate","count","groupBy"];function Gr(e,t){let r=e._extensions.getAllModelExtensions(t)??{},n=[Aa(e,t),Oa(e,t),Et(r),W("name",()=>t),W("$name",()=>t),W("$parent",()=>e._appliedParent)];return ge({},n)}function Aa(e,t){let r=pe(t),n=Object.keys(Dt.ModelAction).concat("count");return{getKeys(){return n},getPropertyValue(i){let o=i,s=a=>u=>{let g=ve(e._errorFormat);return e._createPrismaPromise(T=>{let C={args:u,dataPath:[],action:o,model:t,clientMethod:`${r}.${i}`,jsModelName:r,transaction:T,callsite:g};return e._request({...C,...a})})};return Ca.includes(o)?Jr(e,t,s):Sa(i)?ki(e,i,s):s({})}}}function Sa(e){return Ra.includes(e)}function Oa(e,t){return ke(W("fields",()=>{let r=e._runtimeDataModel.models[t];return Mi(t,r)}))}c();m();p();d();f();l();function _i(e){return e.replace(/^./,t=>t.toUpperCase())}var Wr=Symbol();function xt(e){let t=[ka(e),W(Wr,()=>e),W("$parent",()=>e._appliedParent)],r=e._extensions.getAllClientExtensions();return r&&t.push(Et(r)),ge(e,t)}function ka(e){let t=Object.keys(e._runtimeDataModel.models),r=t.map(pe),n=[...new Set(t.concat(r))];return ke({getKeys(){return n},getPropertyValue(i){let o=_i(i);if(e._runtimeDataModel.models[o]!==void 0)return Gr(e,o);if(e._runtimeDataModel.models[i]!==void 0)return Gr(e,i)},getPropertyDescriptor(i){if(!r.includes(i))return{enumerable:!1}}})}function Di(e){return e[Wr]?e[Wr]:e}function Fi(e){if(typeof e=="function")return e(this);if(e.client?.__AccelerateEngine){let r=e.client.__AccelerateEngine;this._originalClient._engine=new r(this._originalClient._accelerateEngineConfig)}let t=Object.create(this._originalClient,{_extensions:{value:this._extensions.append(e)},_appliedParent:{value:this,configurable:!0},$use:{value:void 0},$on:{value:void 0}});return xt(t)}c();m();p();d();f();l();c();m();p();d();f();l();function Ni({result:e,modelName:t,select:r,omit:n,extensions:i}){let o=i.getAllComputedFields(t);if(!o)return e;let s=[],a=[];for(let u of Object.values(o)){if(n){if(n[u.name])continue;let g=u.needs.filter(T=>n[T]);g.length>0&&a.push(Ye(g))}else if(r){if(!r[u.name])continue;let g=u.needs.filter(T=>!r[T]);g.length>0&&a.push(Ye(g))}Ma(e,u.needs)&&s.push(Ia(u,ge(e,s)))}return s.length>0||a.length>0?ge(e,[...s,...a]):e}function Ma(e,t){return t.every(r=>Rr(e,r))}function Ia(e,t){return ke(W(e.name,()=>e.compute(t)))}c();m();p();d();f();l();function or({visitor:e,result:t,args:r,runtimeDataModel:n,modelName:i}){if(Array.isArray(t)){for(let s=0;sT.name===o);if(!u||u.kind!=="object"||!u.relationName)continue;let g=typeof s=="object"?s:{};t[o]=or({visitor:i,result:t[o],args:g,modelName:u.type,runtimeDataModel:n})}}function qi({result:e,modelName:t,args:r,extensions:n,runtimeDataModel:i,globalOmit:o}){return n.isEmpty()||e==null||typeof e!="object"||!i.models[t]?e:or({result:e,args:r??{},modelName:t,runtimeDataModel:i,visitor:(a,u,g)=>{let T=pe(u);return Ni({result:a,modelName:T,select:g.select,omit:g.select?void 0:{...o?.[T],...g.omit},extensions:n})}})}c();m();p();d();f();l();c();m();p();d();f();l();l();function Bi(e){if(e instanceof Y)return La(e);if(Array.isArray(e)){let r=[e[0]];for(let n=1;n{let o=t.customDataProxyFetch;return"transaction"in t&&i!==void 0&&(t.transaction?.kind==="batch"&&t.transaction.lock.then(),t.transaction=i),n===r.length?e._executeRequest(t):r[n]({model:t.model,operation:t.model?t.action:t.clientMethod,args:Bi(t.args??{}),__internalParams:t,query:(s,a=t)=>{let u=a.customDataProxyFetch;return a.customDataProxyFetch=Gi(o,u),a.args=s,Vi(e,a,r,n+1)}})})}function ji(e,t){let{jsModelName:r,action:n,clientMethod:i}=t,o=r?n:i;if(e._extensions.isEmpty())return e._executeRequest(t);let s=e._extensions.getAllQueryCallbacks(r??"$none",o);return Vi(e,t,s)}function Qi(e){return t=>{let r={requests:t},n=t[0].extensions.getAllBatchQueryCallbacks();return n.length?Ji(r,n,0,e):e(r)}}function Ji(e,t,r,n){if(r===t.length)return n(e);let i=e.customDataProxyFetch,o=e.requests[0].transaction;return t[r]({args:{queries:e.requests.map(s=>({model:s.modelName,operation:s.action,args:s.args})),transaction:o?{isolationLevel:o.kind==="batch"?o.isolationLevel:void 0}:void 0},__internalParams:e,query(s,a=e){let u=a.customDataProxyFetch;return a.customDataProxyFetch=Gi(i,u),Ji(a,t,r+1,n)}})}var $i=e=>e;function Gi(e=$i,t=$i){return r=>e(t(r))}c();m();p();d();f();l();var Wi=Z("prisma:client"),Ki={Vercel:"vercel","Netlify CI":"netlify"};function Hi({postinstall:e,ciName:t,clientVersion:r}){if(Wi("checkPlatformCaching:postinstall",e),Wi("checkPlatformCaching:ciName",t),e===!0&&t&&t in Ki){let n=`Prisma has detected that this project was built on ${t}, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the \`prisma generate\` command during the build process. + +Learn how: https://pris.ly/d/${Ki[t]}-build`;throw console.error(n),new L(n,r)}}c();m();p();d();f();l();function zi(e,t){return e?e.datasources?e.datasources:e.datasourceUrl?{[t[0]]:{url:e.datasourceUrl}}:{}:{}}c();m();p();d();f();l();c();m();p();d();f();l();c();m();p();d();f();l();var _a="Cloudflare-Workers",Da="node";function Yi(){return typeof Netlify=="object"?"netlify":typeof EdgeRuntime=="string"?"edge-light":globalThis.navigator?.userAgent===_a?"workerd":globalThis.Deno?"deno":globalThis.__lagon__?"lagon":globalThis.process?.release?.name===Da?"node":globalThis.Bun?"bun":globalThis.fastly?"fastly":"unknown"}var Fa={node:"Node.js",workerd:"Cloudflare Workers",deno:"Deno and Deno Deploy",netlify:"Netlify Edge Functions","edge-light":"Edge Runtime (Vercel Edge Functions, Vercel Edge Middleware, Next.js (Pages Router) Edge API Routes, Next.js (App Router) Edge Route Handlers or Next.js Middleware)"};function Te(){let e=Yi();return{id:e,prettyName:Fa[e]||e,isEdge:["workerd","deno","netlify","edge-light"].includes(e)}}c();m();p();d();f();l();c();m();p();d();f();l();function sr({inlineDatasources:e,overrideDatasources:t,env:r,clientVersion:n}){let i,o=Object.keys(e)[0],s=e[o]?.url,a=t[o]?.url;if(o===void 0?i=void 0:a?i=a:s?.value?i=s.value:s?.fromEnvVar&&(i=r[s.fromEnvVar]),s?.fromEnvVar!==void 0&&i===void 0)throw Te().id==="workerd"?new L(`error: Environment variable not found: ${s.fromEnvVar}. + +In Cloudflare module Workers, environment variables are available only in the Worker's \`env\` parameter of \`fetch\`. +To solve this, provide the connection string directly: https://pris.ly/d/cloudflare-datasource-url`,n):new L(`error: Environment variable not found: ${s.fromEnvVar}.`,n);if(i===void 0)throw new L("error: Missing URL environment variable, value, or override.",n);return i}c();m();p();d();f();l();c();m();p();d();f();l();function Xi(e){if(e?.kind==="itx")return e.options.id}c();m();p();d();f();l();var Kr,Zi={async loadLibrary(e){let{clientVersion:t,adapter:r,engineWasm:n}=e;if(r===void 0)throw new L(`The \`adapter\` option for \`PrismaClient\` is required in this context (${Te().prettyName})`,t);if(n===void 0)throw new L("WASM engine was unexpectedly `undefined`",t);Kr===void 0&&(Kr=(async()=>{let o=n.getRuntime(),s=await n.getQueryEngineWasmModule();if(s==null)throw new L("The loaded wasm module was unexpectedly `undefined` or `null` once loaded",t);let a={"./query_engine_bg.js":o},u=new WebAssembly.Instance(s,a);return o.__wbg_set_wasm(u.exports),o.QueryEngine})());let i=await Kr;return{debugPanic(){return Promise.reject("{}")},dmmf(){return Promise.resolve("{}")},version(){return{commit:"unknown",version:"unknown"}},QueryEngine:i}}};var Na="P2036",he=Z("prisma:client:libraryEngine");function Ua(e){return e.item_type==="query"&&"query"in e}function qa(e){return"level"in e?e.level==="error"&&e.message==="PANIC":!1}var xR=[...Tr,"native"],Ba=0xffffffffffffffffn,Hr=1n;function $a(){let e=Hr++;return Hr>Ba&&(Hr=1n),e}var vt=class{constructor(t,r){this.name="LibraryEngine";this.libraryLoader=r??Zi,this.config=t,this.libraryStarted=!1,this.logQueries=t.logQueries??!1,this.logLevel=t.logLevel??"error",this.logEmitter=t.logEmitter,this.datamodel=t.inlineSchema,this.tracingHelper=t.tracingHelper,t.enableDebugLogs&&(this.logLevel="debug");let n=Object.keys(t.overrideDatasources)[0],i=t.overrideDatasources[n]?.url;n!==void 0&&i!==void 0&&(this.datasourceOverrides={[n]:i}),this.libraryInstantiationPromise=this.instantiateLibrary()}wrapEngine(t){return{applyPendingMigrations:t.applyPendingMigrations?.bind(t),commitTransaction:this.withRequestId(t.commitTransaction.bind(t)),connect:this.withRequestId(t.connect.bind(t)),disconnect:this.withRequestId(t.disconnect.bind(t)),metrics:t.metrics?.bind(t),query:this.withRequestId(t.query.bind(t)),rollbackTransaction:this.withRequestId(t.rollbackTransaction.bind(t)),sdlSchema:t.sdlSchema?.bind(t),startTransaction:this.withRequestId(t.startTransaction.bind(t)),trace:t.trace.bind(t)}}withRequestId(t){return async(...r)=>{let n=$a().toString();try{return await t(...r,n)}finally{if(this.tracingHelper.isEnabled()){let i=await this.engine?.trace(n);if(i){let o=JSON.parse(i);this.tracingHelper.dispatchEngineSpans(o.spans)}}}}}async applyPendingMigrations(){throw new Error("Cannot call this method from this type of engine instance")}async transaction(t,r,n){await this.start();let i=JSON.stringify(r),o;if(t==="start"){let a=JSON.stringify({max_wait:n.maxWait,timeout:n.timeout,isolation_level:n.isolationLevel});o=await this.engine?.startTransaction(a,i)}else t==="commit"?o=await this.engine?.commitTransaction(n.id,i):t==="rollback"&&(o=await this.engine?.rollbackTransaction(n.id,i));let s=this.parseEngineResponse(o);if(Va(s)){let a=this.getExternalAdapterError(s);throw a?a.error:new z(s.message,{code:s.error_code,clientVersion:this.config.clientVersion,meta:s.meta})}return s}async instantiateLibrary(){if(he("internalSetup"),this.libraryInstantiationPromise)return this.libraryInstantiationPromise;this.binaryTarget=await this.getCurrentBinaryTarget(),await this.tracingHelper.runInChildSpan("load_engine",()=>this.loadEngine()),this.version()}async getCurrentBinaryTarget(){}parseEngineResponse(t){if(!t)throw new Q("Response from the Engine was empty",{clientVersion:this.config.clientVersion});try{return JSON.parse(t)}catch{throw new Q("Unable to JSON.parse response from engine",{clientVersion:this.config.clientVersion})}}async loadEngine(){if(!this.engine){this.QueryEngineConstructor||(this.library=await this.libraryLoader.loadLibrary(this.config),this.QueryEngineConstructor=this.library.QueryEngine);try{let t=new w(this),{adapter:r}=this.config;r&&he("Using driver adapter: %O",r),this.engine=this.wrapEngine(new this.QueryEngineConstructor({datamodel:this.datamodel,env:h.env,logQueries:this.config.logQueries??!1,ignoreEnvVarErrors:!0,datasourceOverrides:this.datasourceOverrides??{},logLevel:this.logLevel,configDir:this.config.cwd,engineProtocol:"json",enableTracing:this.tracingHelper.isEnabled()},n=>{t.deref()?.logger(n)},r))}catch(t){let r=t,n=this.parseInitError(r.message);throw typeof n=="string"?r:new L(n.message,this.config.clientVersion,n.error_code)}}}logger(t){let r=this.parseEngineResponse(t);r&&(r.level=r?.level.toLowerCase()??"unknown",Ua(r)?this.logEmitter.emit("query",{timestamp:new Date,query:r.query,params:r.params,duration:Number(r.duration_ms),target:r.module_path}):(qa(r),this.logEmitter.emit(r.level,{timestamp:new Date,message:r.message,target:r.module_path})))}parseInitError(t){try{return JSON.parse(t)}catch{}return t}parseRequestError(t){try{return JSON.parse(t)}catch{}return t}onBeforeExit(){throw new Error('"beforeExit" hook is not applicable to the library engine since Prisma 5.0.0, it is only relevant and implemented for the binary engine. Please add your event listener to the `process` object directly instead.')}async start(){if(await this.libraryInstantiationPromise,await this.libraryStoppingPromise,this.libraryStartingPromise)return he(`library already starting, this.libraryStarted: ${this.libraryStarted}`),this.libraryStartingPromise;if(this.libraryStarted)return;let t=async()=>{he("library starting");try{let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.connect(JSON.stringify(r)),this.libraryStarted=!0,he("library started")}catch(r){let n=this.parseInitError(r.message);throw typeof n=="string"?r:new L(n.message,this.config.clientVersion,n.error_code)}finally{this.libraryStartingPromise=void 0}};return this.libraryStartingPromise=this.tracingHelper.runInChildSpan("connect",t),this.libraryStartingPromise}async stop(){if(await this.libraryStartingPromise,await this.executingQueryPromise,this.libraryStoppingPromise)return he("library is already stopping"),this.libraryStoppingPromise;if(!this.libraryStarted)return;let t=async()=>{await new Promise(n=>setTimeout(n,5)),he("library stopping");let r={traceparent:this.tracingHelper.getTraceParent()};await this.engine?.disconnect(JSON.stringify(r)),this.libraryStarted=!1,this.libraryStoppingPromise=void 0,he("library stopped")};return this.libraryStoppingPromise=this.tracingHelper.runInChildSpan("disconnect",t),this.libraryStoppingPromise}version(){return this.versionInfo=this.library?.version(),this.versionInfo?.version??"unknown"}debugPanic(t){return this.library?.debugPanic(t)}async request(t,{traceparent:r,interactiveTransaction:n}){he(`sending request, this.libraryStarted: ${this.libraryStarted}`);let i=JSON.stringify({traceparent:r}),o=JSON.stringify(t);try{await this.start(),this.executingQueryPromise=this.engine?.query(o,i,n?.id),this.lastQuery=o;let s=this.parseEngineResponse(await this.executingQueryPromise);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new Q(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});if(this.loggerRustPanic)throw this.loggerRustPanic;return{data:s}}catch(s){if(s instanceof L)throw s;s.code==="GenericFailure"&&s.message?.startsWith("PANIC:");let a=this.parseRequestError(s.message);throw typeof a=="string"?s:new Q(`${a.message} +${a.backtrace}`,{clientVersion:this.config.clientVersion})}}async requestBatch(t,{transaction:r,traceparent:n}){he("requestBatch");let i=rr(t,r);await this.start(),this.lastQuery=JSON.stringify(i),this.executingQueryPromise=this.engine.query(this.lastQuery,JSON.stringify({traceparent:n}),Xi(r));let o=await this.executingQueryPromise,s=this.parseEngineResponse(o);if(s.errors)throw s.errors.length===1?this.buildQueryError(s.errors[0]):new Q(JSON.stringify(s.errors),{clientVersion:this.config.clientVersion});let{batchResult:a,errors:u}=s;if(Array.isArray(a))return a.map(g=>g.errors&&g.errors.length>0?this.loggerRustPanic??this.buildQueryError(g.errors[0]):{data:g});throw u&&u.length===1?new Error(u[0].error):new Error(JSON.stringify(s))}buildQueryError(t){t.user_facing_error.is_panic;let r=this.getExternalAdapterError(t.user_facing_error);return r?r.error:nr(t,this.config.clientVersion,this.config.activeProvider)}getExternalAdapterError(t){if(t.error_code===Na&&this.config.adapter){let r=t.meta?.id;Nt(typeof r=="number","Malformed external JS error received from the engine");let n=this.config.adapter.errorRegistry.consumeError(r);return Nt(n,"External error with reported id was not registered"),n}}async metrics(t){await this.start();let r=await this.engine.metrics(JSON.stringify(t));return t.format==="prometheus"?r:this.parseEngineResponse(r)}};function Va(e){return typeof e=="object"&&e!==null&&e.error_code!==void 0}c();m();p();d();f();l();var Tt="Accelerate has not been setup correctly. Make sure your client is using `.$extends(withAccelerate())`. See https://pris.ly/d/accelerate-getting-started",ar=class{constructor(t){this.config=t;this.name="AccelerateEngine";this.resolveDatasourceUrl=this.config.accelerateUtils?.resolveDatasourceUrl;this.getBatchRequestPayload=this.config.accelerateUtils?.getBatchRequestPayload;this.prismaGraphQLToJSError=this.config.accelerateUtils?.prismaGraphQLToJSError;this.PrismaClientUnknownRequestError=this.config.accelerateUtils?.PrismaClientUnknownRequestError;this.PrismaClientInitializationError=this.config.accelerateUtils?.PrismaClientInitializationError;this.PrismaClientKnownRequestError=this.config.accelerateUtils?.PrismaClientKnownRequestError;this.debug=this.config.accelerateUtils?.debug;this.engineVersion=this.config.accelerateUtils?.engineVersion;this.clientVersion=this.config.accelerateUtils?.clientVersion}onBeforeExit(t){}async start(){}async stop(){}version(t){return"unknown"}transaction(t,r,n){throw new L(Tt,this.config.clientVersion)}metrics(t){throw new L(Tt,this.config.clientVersion)}request(t,r){throw new L(Tt,this.config.clientVersion)}requestBatch(t,r){throw new L(Tt,this.config.clientVersion)}applyPendingMigrations(){throw new L(Tt,this.config.clientVersion)}};function eo({copyEngine:e=!0},t){let r;try{r=sr({inlineDatasources:t.inlineDatasources,overrideDatasources:t.overrideDatasources,env:{...t.env,...h.env},clientVersion:t.clientVersion})}catch{}let n=!!(r?.startsWith("prisma://")||r?.startsWith("prisma+postgres://"));e&&n&&at("recommend--no-engine","In production, we recommend using `prisma generate --no-engine` (See: `prisma generate --help`)");let i=it(t.generator),o=n||!e,s=!!t.adapter,a=i==="library",u=i==="binary";if(o&&s||s&&!1){let g;throw e?r?.startsWith("prisma://")?g=["Prisma Client was configured to use the `adapter` option but the URL was a `prisma://` URL.","Please either use the `prisma://` URL or remove the `adapter` from the Prisma Client constructor."]:g=["Prisma Client was configured to use both the `adapter` and Accelerate, please chose one."]:g=["Prisma Client was configured to use the `adapter` option but `prisma generate` was run with `--no-engine`.","Please run `prisma generate` without `--no-engine` to be able to use Prisma Client with the adapter."],new G(g.join(` +`),{clientVersion:t.clientVersion})}if(s)return new vt(t);if(o)return new ar(t);{let g=[`PrismaClient failed to initialize because it wasn't configured to run in this environment (${Te().prettyName}).`,"In order to run Prisma Client in an edge runtime, you will need to configure one of the following options:","- Enable Driver Adapters: https://pris.ly/d/driver-adapters","- Enable Accelerate: https://pris.ly/d/accelerate"];throw new G(g.join(` +`),{clientVersion:t.clientVersion})}throw new G("Invalid client engine type, please use `library` or `binary`",{clientVersion:t.clientVersion})}c();m();p();d();f();l();function lr({generator:e}){return e?.previewFeatures??[]}c();m();p();d();f();l();var to=e=>({command:e});c();m();p();d();f();l();c();m();p();d();f();l();var ro=e=>e.strings.reduce((t,r,n)=>`${t}@P${n}${r}`);c();m();p();d();f();l();l();function Ze(e){try{return no(e,"fast")}catch{return no(e,"slow")}}function no(e,t){return JSON.stringify(e.map(r=>oo(r,t)))}function oo(e,t){if(Array.isArray(e))return e.map(r=>oo(r,t));if(typeof e=="bigint")return{prisma__type:"bigint",prisma__value:e.toString()};if($e(e))return{prisma__type:"date",prisma__value:e.toJSON()};if(ue.isDecimal(e))return{prisma__type:"decimal",prisma__value:e.toJSON()};if(b.isBuffer(e))return{prisma__type:"bytes",prisma__value:e.toString("base64")};if(ja(e))return{prisma__type:"bytes",prisma__value:b.from(e).toString("base64")};if(ArrayBuffer.isView(e)){let{buffer:r,byteOffset:n,byteLength:i}=e;return{prisma__type:"bytes",prisma__value:b.from(r,n,i).toString("base64")}}return typeof e=="object"&&t==="slow"?so(e):e}function ja(e){return e instanceof ArrayBuffer||e instanceof SharedArrayBuffer?!0:typeof e=="object"&&e!==null?e[Symbol.toStringTag]==="ArrayBuffer"||e[Symbol.toStringTag]==="SharedArrayBuffer":!1}function so(e){if(typeof e!="object"||e===null)return e;if(typeof e.toJSON=="function")return e.toJSON();if(Array.isArray(e))return e.map(io);let t={};for(let r of Object.keys(e))t[r]=io(e[r]);return t}function io(e){return typeof e=="bigint"?e.toString():so(e)}c();m();p();d();f();l();var Qa=["$connect","$disconnect","$on","$transaction","$use","$extends"],ao=Qa;var Ja=/^(\s*alter\s)/i,lo=Z("prisma:client");function zr(e,t,r,n){if(!(e!=="postgresql"&&e!=="cockroachdb")&&r.length>0&&Ja.exec(t))throw new Error(`Running ALTER using ${n} is not supported +Using the example below you can still execute your query with Prisma, but please note that it is vulnerable to SQL injection attacks and requires you to take care of input sanitization. + +Example: + await prisma.$executeRawUnsafe(\`ALTER USER prisma WITH PASSWORD '\${password}'\`) + +More Information: https://pris.ly/d/execute-raw +`)}var Yr=({clientMethod:e,activeProvider:t})=>r=>{let n="",i;if(bi(r))n=r.sql,i={values:Ze(r.values),__prismaRawParameters__:!0};else if(Array.isArray(r)){let[o,...s]=r;n=o,i={values:Ze(s||[]),__prismaRawParameters__:!0}}else switch(t){case"sqlite":case"mysql":{n=r.sql,i={values:Ze(r.values),__prismaRawParameters__:!0};break}case"cockroachdb":case"postgresql":case"postgres":{n=r.text,i={values:Ze(r.values),__prismaRawParameters__:!0};break}case"sqlserver":{n=ro(r),i={values:Ze(r.values),__prismaRawParameters__:!0};break}default:throw new Error(`The ${t} provider does not support ${e}`)}return i?.values?lo(`prisma.${e}(${n}, ${i.values})`):lo(`prisma.${e}(${n})`),{query:n,parameters:i}},uo={requestArgsToMiddlewareArgs(e){return[e.strings,...e.values]},middlewareArgsToRequestArgs(e){let[t,...r]=e;return new Y(t,r)}},co={requestArgsToMiddlewareArgs(e){return[e]},middlewareArgsToRequestArgs(e){return e[0]}};c();m();p();d();f();l();function Xr(e){return function(r){let n,i=(o=e)=>{try{return o===void 0||o?.kind==="itx"?n??=mo(r(o)):mo(r(o))}catch(s){return Promise.reject(s)}};return{then(o,s){return i().then(o,s)},catch(o){return i().catch(o)},finally(o){return i().finally(o)},requestTransaction(o){let s=i(o);return s.requestTransaction?s.requestTransaction(o):s},[Symbol.toStringTag]:"PrismaPromise"}}}function mo(e){return typeof e.then=="function"?e:Promise.resolve(e)}c();m();p();d();f();l();var Ga={isEnabled(){return!1},getTraceParent(){return"00-10-10-00"},dispatchEngineSpans(){},getActiveContext(){},runInChildSpan(e,t){return t()}},Zr=class{isEnabled(){return this.getGlobalTracingHelper().isEnabled()}getTraceParent(t){return this.getGlobalTracingHelper().getTraceParent(t)}dispatchEngineSpans(t){return this.getGlobalTracingHelper().dispatchEngineSpans(t)}getActiveContext(){return this.getGlobalTracingHelper().getActiveContext()}runInChildSpan(t,r){return this.getGlobalTracingHelper().runInChildSpan(t,r)}getGlobalTracingHelper(){return globalThis.PRISMA_INSTRUMENTATION?.helper??Ga}};function po(){return new Zr}c();m();p();d();f();l();function fo(e,t=()=>{}){let r,n=new Promise(i=>r=i);return{then(i){return--e===0&&r(t()),i?.(n)}}}c();m();p();d();f();l();function go(e){return typeof e=="string"?e:e.reduce((t,r)=>{let n=typeof r=="string"?r:r.level;return n==="query"?t:t&&(r==="info"||t==="info")?"info":n},void 0)}c();m();p();d();f();l();var ur=class{constructor(){this._middlewares=[]}use(t){this._middlewares.push(t)}get(t){return this._middlewares[t]}has(t){return!!this._middlewares[t]}length(){return this._middlewares.length}};c();m();p();d();f();l();var bo=_e(Vn());c();m();p();d();f();l();function cr(e){return typeof e.batchRequestIdx=="number"}c();m();p();d();f();l();function ho(e){if(e.action!=="findUnique"&&e.action!=="findUniqueOrThrow")return;let t=[];return e.modelName&&t.push(e.modelName),e.query.arguments&&t.push(en(e.query.arguments)),t.push(en(e.query.selection)),t.join("")}function en(e){return`(${Object.keys(e).sort().map(r=>{let n=e[r];return typeof n=="object"&&n!==null?`(${r} ${en(n)})`:r}).join(" ")})`}c();m();p();d();f();l();var Wa={aggregate:!1,aggregateRaw:!1,createMany:!0,createManyAndReturn:!0,createOne:!0,deleteMany:!0,deleteOne:!0,executeRaw:!0,findFirst:!1,findFirstOrThrow:!1,findMany:!1,findRaw:!1,findUnique:!1,findUniqueOrThrow:!1,groupBy:!1,queryRaw:!1,runCommandRaw:!0,updateMany:!0,updateOne:!0,upsertOne:!0};function tn(e){return Wa[e]}c();m();p();d();f();l();var mr=class{constructor(t){this.options=t;this.tickActive=!1;this.batches={}}request(t){let r=this.options.batchBy(t);return r?(this.batches[r]||(this.batches[r]=[],this.tickActive||(this.tickActive=!0,h.nextTick(()=>{this.dispatchBatches(),this.tickActive=!1}))),new Promise((n,i)=>{this.batches[r].push({request:t,resolve:n,reject:i})})):this.options.singleLoader(t)}dispatchBatches(){for(let t in this.batches){let r=this.batches[t];delete this.batches[t],r.length===1?this.options.singleLoader(r[0].request).then(n=>{n instanceof Error?r[0].reject(n):r[0].resolve(n)}).catch(n=>{r[0].reject(n)}):(r.sort((n,i)=>this.options.batchOrder(n.request,i.request)),this.options.batchLoader(r.map(n=>n.request)).then(n=>{if(n instanceof Error)for(let i=0;i{for(let i=0;iMe("bigint",r));case"bytes-array":return t.map(r=>Me("bytes",r));case"decimal-array":return t.map(r=>Me("decimal",r));case"datetime-array":return t.map(r=>Me("datetime",r));case"date-array":return t.map(r=>Me("date",r));case"time-array":return t.map(r=>Me("time",r));default:return t}}function yo(e){let t=[],r=Ka(e);for(let n=0;n{let{transaction:o,otelParentCtx:s}=n[0],a=n.map(C=>C.protocolQuery),u=this.client._tracingHelper.getTraceParent(s),g=n.some(C=>tn(C.protocolQuery.action));return(await this.client._engine.requestBatch(a,{traceparent:u,transaction:za(o),containsWrite:g,customDataProxyFetch:i})).map((C,O)=>{if(C instanceof Error)return C;try{return this.mapQueryEngineResult(n[O],C)}catch(A){return A}})}),singleLoader:async n=>{let i=n.transaction?.kind==="itx"?wo(n.transaction):void 0,o=await this.client._engine.request(n.protocolQuery,{traceparent:this.client._tracingHelper.getTraceParent(),interactiveTransaction:i,isWrite:tn(n.protocolQuery.action),customDataProxyFetch:n.customDataProxyFetch});return this.mapQueryEngineResult(n,o)},batchBy:n=>n.transaction?.id?`transaction-${n.transaction.id}`:ho(n.protocolQuery),batchOrder(n,i){return n.transaction?.kind==="batch"&&i.transaction?.kind==="batch"?n.transaction.index-i.transaction.index:0}})}async request(t){try{return await this.dataloader.request(t)}catch(r){let{clientMethod:n,callsite:i,transaction:o,args:s,modelName:a}=t;this.handleAndLogRequestError({error:r,clientMethod:n,callsite:i,transaction:o,args:s,modelName:a,globalOmit:t.globalOmit})}}mapQueryEngineResult({dataPath:t,unpacker:r},n){let i=n?.data,o=this.unpack(i,t,r);return h.env.PRISMA_CLIENT_GET_TIME?{data:o}:o}handleAndLogRequestError(t){try{this.handleRequestError(t)}catch(r){throw this.logEmitter&&this.logEmitter.emit("error",{message:r.message,target:t.clientMethod,timestamp:new Date}),r}}handleRequestError({error:t,clientMethod:r,callsite:n,transaction:i,args:o,modelName:s,globalOmit:a}){if(Ha(t),Ya(t,i))throw t;if(t instanceof z&&Xa(t)){let g=Eo(t.meta);Ht({args:o,errors:[g],callsite:n,errorFormat:this.client._errorFormat,originalMethod:r,clientVersion:this.client._clientVersion,globalOmit:a})}let u=t.message;if(n&&(u=qt({callsite:n,originalMethod:r,isPanic:t.isPanic,showColors:this.client._errorFormat==="pretty",message:u})),u=this.sanitizeMessage(u),t.code){let g=s?{modelName:s,...t.meta}:t.meta;throw new z(u,{code:t.code,clientVersion:this.client._clientVersion,meta:g,batchRequestIdx:t.batchRequestIdx})}else{if(t.isPanic)throw new we(u,this.client._clientVersion);if(t instanceof Q)throw new Q(u,{clientVersion:this.client._clientVersion,batchRequestIdx:t.batchRequestIdx});if(t instanceof L)throw new L(u,this.client._clientVersion);if(t instanceof we)throw new we(u,this.client._clientVersion)}throw t.clientVersion=this.client._clientVersion,t}sanitizeMessage(t){return this.client._errorFormat&&this.client._errorFormat!=="pretty"?(0,bo.default)(t):t}unpack(t,r,n){if(!t||(t.data&&(t=t.data),!t))return t;let i=Object.keys(t)[0],o=Object.values(t)[0],s=r.filter(g=>g!=="select"&&g!=="include"),a=Qr(o,s),u=i==="queryRaw"?yo(a):qe(a);return n?n(u):u}get[Symbol.toStringTag](){return"RequestHandler"}};function za(e){if(e){if(e.kind==="batch")return{kind:"batch",options:{isolationLevel:e.isolationLevel}};if(e.kind==="itx")return{kind:"itx",options:wo(e)};be(e,"Unknown transaction kind")}}function wo(e){return{id:e.id,payload:e.payload}}function Ya(e,t){return cr(e)&&t?.kind==="batch"&&e.batchRequestIdx!==t.index}function Xa(e){return e.code==="P2009"||e.code==="P2012"}function Eo(e){if(e.kind==="Union")return{kind:"Union",errors:e.errors.map(Eo)};if(Array.isArray(e.selectionPath)){let[,...t]=e.selectionPath;return{...e,selectionPath:t}}return e}c();m();p();d();f();l();var xo="6.1.0";var Po=xo;c();m();p();d();f();l();var Ao=_e(Or());c();m();p();d();f();l();var _=class extends Error{constructor(t){super(t+` +Read more at https://pris.ly/d/client-constructor`),this.name="PrismaClientConstructorValidationError"}get[Symbol.toStringTag](){return"PrismaClientConstructorValidationError"}};ee(_,"PrismaClientConstructorValidationError");var vo=["datasources","datasourceUrl","errorFormat","adapter","log","transactionOptions","omit","__internal"],To=["pretty","colorless","minimal"],Co=["info","query","warn","error"],el={datasources:(e,{datasourceNames:t})=>{if(e){if(typeof e!="object"||Array.isArray(e))throw new _(`Invalid value ${JSON.stringify(e)} for "datasources" provided to PrismaClient constructor`);for(let[r,n]of Object.entries(e)){if(!t.includes(r)){let i=et(r,t)||` Available datasources: ${t.join(", ")}`;throw new _(`Unknown datasource ${r} provided to PrismaClient constructor.${i}`)}if(typeof n!="object"||Array.isArray(n))throw new _(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(n&&typeof n=="object")for(let[i,o]of Object.entries(n)){if(i!=="url")throw new _(`Invalid value ${JSON.stringify(e)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`);if(typeof o!="string")throw new _(`Invalid value ${JSON.stringify(o)} for datasource "${r}" provided to PrismaClient constructor. +It should have this form: { url: "CONNECTION_STRING" }`)}}}},adapter:(e,t)=>{if(e===null)return;if(e===void 0)throw new _('"adapter" property must not be undefined, use null to conditionally disable driver adapters.');if(!lr(t).includes("driverAdapters"))throw new _('"adapter" property can only be provided to PrismaClient constructor when "driverAdapters" preview feature is enabled.');if(it()==="binary")throw new _('Cannot use a driver adapter with the "binary" Query Engine. Please use the "library" Query Engine.')},datasourceUrl:e=>{if(typeof e<"u"&&typeof e!="string")throw new _(`Invalid value ${JSON.stringify(e)} for "datasourceUrl" provided to PrismaClient constructor. +Expected string or undefined.`)},errorFormat:e=>{if(e){if(typeof e!="string")throw new _(`Invalid value ${JSON.stringify(e)} for "errorFormat" provided to PrismaClient constructor.`);if(!To.includes(e)){let t=et(e,To);throw new _(`Invalid errorFormat ${e} provided to PrismaClient constructor.${t}`)}}},log:e=>{if(!e)return;if(!Array.isArray(e))throw new _(`Invalid value ${JSON.stringify(e)} for "log" provided to PrismaClient constructor.`);function t(r){if(typeof r=="string"&&!Co.includes(r)){let n=et(r,Co);throw new _(`Invalid log level "${r}" provided to PrismaClient constructor.${n}`)}}for(let r of e){t(r);let n={level:t,emit:i=>{let o=["stdout","event"];if(!o.includes(i)){let s=et(i,o);throw new _(`Invalid value ${JSON.stringify(i)} for "emit" in logLevel provided to PrismaClient constructor.${s}`)}}};if(r&&typeof r=="object")for(let[i,o]of Object.entries(r))if(n[i])n[i](o);else throw new _(`Invalid property ${i} for "log" provided to PrismaClient constructor`)}},transactionOptions:e=>{if(!e)return;let t=e.maxWait;if(t!=null&&t<=0)throw new _(`Invalid value ${t} for maxWait in "transactionOptions" provided to PrismaClient constructor. maxWait needs to be greater than 0`);let r=e.timeout;if(r!=null&&r<=0)throw new _(`Invalid value ${r} for timeout in "transactionOptions" provided to PrismaClient constructor. timeout needs to be greater than 0`)},omit:(e,t)=>{if(typeof e!="object")throw new _('"omit" option is expected to be an object.');if(e===null)throw new _('"omit" option can not be `null`');let r=[];for(let[n,i]of Object.entries(e)){let o=rl(n,t.runtimeDataModel);if(!o){r.push({kind:"UnknownModel",modelKey:n});continue}for(let[s,a]of Object.entries(i)){let u=o.fields.find(g=>g.name===s);if(!u){r.push({kind:"UnknownField",modelKey:n,fieldName:s});continue}if(u.relationName){r.push({kind:"RelationInOmit",modelKey:n,fieldName:s});continue}typeof a!="boolean"&&r.push({kind:"InvalidFieldValue",modelKey:n,fieldName:s})}}if(r.length>0)throw new _(nl(e,r))},__internal:e=>{if(!e)return;let t=["debug","engine","configOverride"];if(typeof e!="object")throw new _(`Invalid value ${JSON.stringify(e)} for "__internal" to PrismaClient constructor`);for(let[r]of Object.entries(e))if(!t.includes(r)){let n=et(r,t);throw new _(`Invalid property ${JSON.stringify(r)} for "__internal" provided to PrismaClient constructor.${n}`)}}};function So(e,t){for(let[r,n]of Object.entries(e)){if(!vo.includes(r)){let i=et(r,vo);throw new _(`Unknown property ${r} provided to PrismaClient constructor.${i}`)}el[r](n,t)}if(e.datasourceUrl&&e.datasources)throw new _('Can not use "datasourceUrl" and "datasources" options at the same time. Pick one of them')}function et(e,t){if(t.length===0||typeof e!="string")return"";let r=tl(e,t);return r?` Did you mean "${r}"?`:""}function tl(e,t){if(t.length===0)return null;let r=t.map(i=>({value:i,distance:(0,Ao.default)(e,i)}));r.sort((i,o)=>i.distanceBe(n)===t);if(r)return e[r]}function nl(e,t){let r=Ke(e);for(let o of t)switch(o.kind){case"UnknownModel":r.arguments.getField(o.modelKey)?.markAsError(),r.addErrorMessage(()=>`Unknown model name: ${o.modelKey}.`);break;case"UnknownField":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>`Model "${o.modelKey}" does not have a field named "${o.fieldName}".`);break;case"RelationInOmit":r.arguments.getDeepField([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>'Relations are already excluded by default and can not be specified in "omit".');break;case"InvalidFieldValue":r.arguments.getDeepFieldValue([o.modelKey,o.fieldName])?.markAsError(),r.addErrorMessage(()=>"Omit field option value must be a boolean.");break}let{message:n,args:i}=Kt(r,"colorless");return`Error validating "omit" option: + +${i} + +${n}`}c();m();p();d();f();l();function Oo(e){return e.length===0?Promise.resolve([]):new Promise((t,r)=>{let n=new Array(e.length),i=null,o=!1,s=0,a=()=>{o||(s++,s===e.length&&(o=!0,i?r(i):t(n)))},u=g=>{o||(o=!0,r(g))};for(let g=0;g{n[g]=T,a()},T=>{if(!cr(T)){u(T);return}T.batchRequestIdx===g?u(T):(i||(i=T),a())})})}var Ce=Z("prisma:client");typeof globalThis=="object"&&(globalThis.NODE_CLIENT=!0);var il={requestArgsToMiddlewareArgs:e=>e,middlewareArgsToRequestArgs:e=>e},ol=Symbol.for("prisma.client.transaction.id"),sl={id:0,nextId(){return++this.id}};function Io(e){class t{constructor(n){this._originalClient=this;this._middlewares=new ur;this._createPrismaPromise=Xr();this.$extends=Fi;e=n?.__internal?.configOverride?.(e)??e,Hi(e),n&&So(n,e);let i=new Ft().on("error",()=>{});this._extensions=He.empty(),this._previewFeatures=lr(e),this._clientVersion=e.clientVersion??Po,this._activeProvider=e.activeProvider,this._globalOmit=n?.omit,this._tracingHelper=po();let o={rootEnvPath:e.relativeEnvPaths.rootEnvPath&&nt.resolve(e.dirname,e.relativeEnvPaths.rootEnvPath),schemaEnvPath:e.relativeEnvPaths.schemaEnvPath&&nt.resolve(e.dirname,e.relativeEnvPaths.schemaEnvPath)},s;if(n?.adapter){s=Br(n.adapter);let u=e.activeProvider==="postgresql"?"postgres":e.activeProvider;if(s.provider!==u)throw new L(`The Driver Adapter \`${s.adapterName}\`, based on \`${s.provider}\`, is not compatible with the provider \`${u}\` specified in the Prisma schema.`,this._clientVersion);if(n.datasources||n.datasourceUrl!==void 0)throw new L("Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration.",this._clientVersion)}let a=e.injectableEdgeEnv?.();try{let u=n??{},g=u.__internal??{},T=g.debug===!0;T&&Z.enable("prisma:client");let C=nt.resolve(e.dirname,e.relativePath);yn.existsSync(C)||(C=e.dirname),Ce("dirname",e.dirname),Ce("relativePath",e.relativePath),Ce("cwd",C);let O=g.engine||{};if(u.errorFormat?this._errorFormat=u.errorFormat:h.env.NODE_ENV==="production"?this._errorFormat="minimal":h.env.NO_COLOR?this._errorFormat="colorless":this._errorFormat="colorless",this._runtimeDataModel=e.runtimeDataModel,this._engineConfig={cwd:C,dirname:e.dirname,enableDebugLogs:T,allowTriggerPanic:O.allowTriggerPanic,datamodelPath:nt.join(e.dirname,e.filename??"schema.prisma"),prismaPath:O.binaryPath??void 0,engineEndpoint:O.endpoint,generator:e.generator,showColors:this._errorFormat==="pretty",logLevel:u.log&&go(u.log),logQueries:u.log&&!!(typeof u.log=="string"?u.log==="query":u.log.find(A=>typeof A=="string"?A==="query":A.level==="query")),env:a?.parsed??{},flags:[],engineWasm:e.engineWasm,clientVersion:e.clientVersion,engineVersion:e.engineVersion,previewFeatures:this._previewFeatures,activeProvider:e.activeProvider,inlineSchema:e.inlineSchema,overrideDatasources:zi(u,e.datasourceNames),inlineDatasources:e.inlineDatasources,inlineSchemaHash:e.inlineSchemaHash,tracingHelper:this._tracingHelper,transactionOptions:{maxWait:u.transactionOptions?.maxWait??2e3,timeout:u.transactionOptions?.timeout??5e3,isolationLevel:u.transactionOptions?.isolationLevel},logEmitter:i,isBundled:e.isBundled,adapter:s},this._accelerateEngineConfig={...this._engineConfig,accelerateUtils:{resolveDatasourceUrl:sr,getBatchRequestPayload:rr,prismaGraphQLToJSError:nr,PrismaClientUnknownRequestError:Q,PrismaClientInitializationError:L,PrismaClientKnownRequestError:z,debug:Z("prisma:client:accelerateEngine"),engineVersion:Mo.version,clientVersion:e.clientVersion}},Ce("clientVersion",e.clientVersion),this._engine=eo(e,this._engineConfig),this._requestHandler=new pr(this,i),u.log)for(let A of u.log){let M=typeof A=="string"?A:A.emit==="stdout"?A.level:null;M&&this.$on(M,S=>{st.log(`${st.tags[M]??""}`,S.message||S.query)})}this._metrics=new ze(this._engine)}catch(u){throw u.clientVersion=this._clientVersion,u}return this._appliedParent=xt(this)}get[Symbol.toStringTag](){return"PrismaClient"}$use(n){this._middlewares.use(n)}$on(n,i){n==="beforeExit"?this._engine.onBeforeExit(i):n&&this._engineConfig.logEmitter.on(n,i)}$connect(){try{return this._engine.start()}catch(n){throw n.clientVersion=this._clientVersion,n}}async $disconnect(){try{await this._engine.stop()}catch(n){throw n.clientVersion=this._clientVersion,n}finally{Mn()}}$executeRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"executeRaw",args:o,transaction:n,clientMethod:i,argsMapper:Yr({clientMethod:i,activeProvider:a}),callsite:ve(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$executeRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0){let[s,a]=ko(n,i);return zr(this._activeProvider,s.text,s.values,Array.isArray(n)?"prisma.$executeRaw``":"prisma.$executeRaw(sql``)"),this.$executeRawInternal(o,"$executeRaw",s,a)}throw new G("`$executeRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$executeRaw`UPDATE User SET cool = ${true} WHERE email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#executeraw\n",{clientVersion:this._clientVersion})})}$executeRawUnsafe(n,...i){return this._createPrismaPromise(o=>(zr(this._activeProvider,n,i,"prisma.$executeRawUnsafe(, [...values])"),this.$executeRawInternal(o,"$executeRawUnsafe",[n,...i])))}$runCommandRaw(n){if(e.activeProvider!=="mongodb")throw new G(`The ${e.activeProvider} provider does not support $runCommandRaw. Use the mongodb provider.`,{clientVersion:this._clientVersion});return this._createPrismaPromise(i=>this._request({args:n,clientMethod:"$runCommandRaw",dataPath:[],action:"runCommandRaw",argsMapper:to,callsite:ve(this._errorFormat),transaction:i}))}async $queryRawInternal(n,i,o,s){let a=this._activeProvider;return this._request({action:"queryRaw",args:o,transaction:n,clientMethod:i,argsMapper:Yr({clientMethod:i,activeProvider:a}),callsite:ve(this._errorFormat),dataPath:[],middlewareArgsMapper:s})}$queryRaw(n,...i){return this._createPrismaPromise(o=>{if(n.raw!==void 0||n.sql!==void 0)return this.$queryRawInternal(o,"$queryRaw",...ko(n,i));throw new G("`$queryRaw` is a tag function, please use it like the following:\n```\nconst result = await prisma.$queryRaw`SELECT * FROM User WHERE id = ${1} OR email = ${'user@email.com'};`\n```\n\nOr read our docs at https://www.prisma.io/docs/concepts/components/prisma-client/raw-database-access#queryraw\n",{clientVersion:this._clientVersion})})}$queryRawTyped(n){return this._createPrismaPromise(i=>{if(!this._hasPreviewFlag("typedSql"))throw new G("`typedSql` preview feature must be enabled in order to access $queryRawTyped API",{clientVersion:this._clientVersion});return this.$queryRawInternal(i,"$queryRawTyped",n)})}$queryRawUnsafe(n,...i){return this._createPrismaPromise(o=>this.$queryRawInternal(o,"$queryRawUnsafe",[n,...i]))}_transactionWithArray({promises:n,options:i}){let o=sl.nextId(),s=fo(n.length),a=n.map((u,g)=>{if(u?.[Symbol.toStringTag]!=="PrismaPromise")throw new Error("All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.");let T=i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel,C={kind:"batch",id:o,index:g,isolationLevel:T,lock:s};return u.requestTransaction?.(C)??u});return Oo(a)}async _transactionWithCallback({callback:n,options:i}){let o={traceparent:this._tracingHelper.getTraceParent()},s={maxWait:i?.maxWait??this._engineConfig.transactionOptions.maxWait,timeout:i?.timeout??this._engineConfig.transactionOptions.timeout,isolationLevel:i?.isolationLevel??this._engineConfig.transactionOptions.isolationLevel},a=await this._engine.transaction("start",o,s),u;try{let g={kind:"itx",...a};u=await n(this._createItxClient(g)),await this._engine.transaction("commit",o,a)}catch(g){throw await this._engine.transaction("rollback",o,a).catch(()=>{}),g}return u}_createItxClient(n){return xt(ge(Di(this),[W("_appliedParent",()=>this._appliedParent._createItxClient(n)),W("_createPrismaPromise",()=>Xr(n)),W(ol,()=>n.id),Ye(ao)]))}$transaction(n,i){let o;typeof n=="function"?this._engineConfig.adapter?.adapterName==="@prisma/adapter-d1"?o=()=>{throw new Error("Cloudflare D1 does not support interactive transactions. We recommend you to refactor your queries with that limitation in mind, and use batch transactions with `prisma.$transactions([])` where applicable.")}:o=()=>this._transactionWithCallback({callback:n,options:i}):o=()=>this._transactionWithArray({promises:n,options:i});let s={name:"transaction",attributes:{method:"$transaction"}};return this._tracingHelper.runInChildSpan(s,o)}_request(n){n.otelParentCtx=this._tracingHelper.getActiveContext();let i=n.middlewareArgsMapper??il,o={args:i.requestArgsToMiddlewareArgs(n.args),dataPath:n.dataPath,runInTransaction:!!n.transaction,action:n.action,model:n.model},s={middleware:{name:"middleware",middleware:!0,attributes:{method:"$use"},active:!1},operation:{name:"operation",attributes:{method:o.action,model:o.model,name:o.model?`${o.model}.${o.action}`:o.action}}},a=-1,u=async g=>{let T=this._middlewares.get(++a);if(T)return this._tracingHelper.runInChildSpan(s.middleware,I=>T(g,ne=>(I?.end(),u(ne))));let{runInTransaction:C,args:O,...A}=g,M={...n,...A};O&&(M.args=i.middlewareArgsToRequestArgs(O)),n.transaction!==void 0&&C===!1&&delete M.transaction;let S=await ji(this,M);return M.model?qi({result:S,modelName:M.model,args:M.args,extensions:this._extensions,runtimeDataModel:this._runtimeDataModel,globalOmit:this._globalOmit}):S};return this._tracingHelper.runInChildSpan(s.operation,()=>u(o))}async _executeRequest({args:n,clientMethod:i,dataPath:o,callsite:s,action:a,model:u,argsMapper:g,transaction:T,unpacker:C,otelParentCtx:O,customDataProxyFetch:A}){try{n=g?g(n):n;let M={name:"serialize"},S=this._tracingHelper.runInChildSpan(M,()=>Xt({modelName:u,runtimeDataModel:this._runtimeDataModel,action:a,args:n,clientMethod:i,callsite:s,extensions:this._extensions,errorFormat:this._errorFormat,clientVersion:this._clientVersion,previewFeatures:this._previewFeatures,globalOmit:this._globalOmit}));return Z.enabled("prisma:client")&&(Ce("Prisma Client call:"),Ce(`prisma.${i}(${Ci(n)})`),Ce("Generated request:"),Ce(JSON.stringify(S,null,2)+` +`)),T?.kind==="batch"&&await T.lock,this._requestHandler.request({protocolQuery:S,modelName:u,action:a,clientMethod:i,dataPath:o,callsite:s,args:n,extensions:this._extensions,transaction:T,unpacker:C,otelParentCtx:O,otelChildCtx:this._tracingHelper.getActiveContext(),globalOmit:this._globalOmit,customDataProxyFetch:A})}catch(M){throw M.clientVersion=this._clientVersion,M}}get $metrics(){if(!this._hasPreviewFlag("metrics"))throw new G("`metrics` preview feature must be enabled in order to access metrics API",{clientVersion:this._clientVersion});return this._metrics}_hasPreviewFlag(n){return!!this._engineConfig.previewFeatures?.includes(n)}$applyPendingMigrations(){return this._engine.applyPendingMigrations()}}return t}function ko(e,t){return al(e)?[new Y(e,t),uo]:[e,co]}function al(e){return Array.isArray(e)&&Array.isArray(e.raw)}c();m();p();d();f();l();var ll=new Set(["toJSON","$$typeof","asymmetricMatch",Symbol.iterator,Symbol.toStringTag,Symbol.isConcatSpreadable,Symbol.toPrimitive]);function Lo(e){return new Proxy(e,{get(t,r){if(r in t)return t[r];if(!ll.has(r))throw new TypeError(`Invalid enum value: ${String(r)}`)}})}c();m();p();d();f();l();l();0&&(module.exports={Debug,Decimal,Extensions,MetricsClient,PrismaClientInitializationError,PrismaClientKnownRequestError,PrismaClientRustPanicError,PrismaClientUnknownRequestError,PrismaClientValidationError,Public,Sql,defineDmmfProperty,deserializeJsonResponse,dmmfToRuntimeDataModel,empty,getPrismaClient,getRuntime,join,makeStrictEnum,makeTypedQueryFactory,objectEnumValues,raw,serializeJsonQuery,skip,sqltag,warnEnvConflicts,warnOnce}); +//# sourceMappingURL=wasm.js.map diff --git a/mods/identity/src/generated/@prisma/client/schema.prisma b/mods/identity/src/generated/@prisma/client/schema.prisma new file mode 100644 index 000000000..3f033ddcb --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/schema.prisma @@ -0,0 +1,127 @@ +generator client { + provider = "prisma-client-js" + output = "src/generated/@prisma/client" +} + +datasource db { + provider = "postgresql" + url = env("APISERVER_IDENTITY_DATABASE_URL") +} + +model User { + ref String @id @default(uuid()) + accessKeyId String @unique @map("access_key_id") @db.VarChar(255) + name String @db.VarChar(60) + email String @unique @db.VarChar(255) + emailVerified Boolean @default(false) @map("email_verified") + password String @map("password_hash") /// @encrypted + phoneNumber String? @map("phone_number") @db.VarChar(20) + phoneNumberVerified Boolean @default(false) @map("phone_number_verified") + avatar String? @db.VarChar(255) + createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) + updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz(3) + extended Json? + + // Relations + ownedWorkspaces Workspace[] // Workspaces owned by the user + memberships WorkspaceMember[] // Workspaces the user is a member of + + // Indexes and maps + @@index([email], type: Hash) + @@index([accessKeyId], type: Hash) + @@map("users") +} + +model Workspace { + ref String @id @default(uuid()) + accessKeyId String @unique @map("access_key_id") @db.VarChar(255) + name String @db.VarChar(60) + createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) + updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz(3) + + // Relations + owner User @relation(fields: [ownerRef], references: [ref], onDelete: Cascade) + ownerRef String @map("owner_ref") + members WorkspaceMember[] + apiKeys ApiKey[] + + // Indexes and maps + @@index([accessKeyId], type: Hash) + @@index([ownerRef], type: Hash) + @@map("workspaces") +} + +model WorkspaceMember { + ref String @id @default(uuid()) + status WorkspaceMemberStatus @default(PENDING) + role WorkspaceMemberRole @default(USER) + createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) + updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz(3) + + // Relations + user User @relation(fields: [userRef], references: [ref], onDelete: Cascade) + userRef String @map("user_ref") + workspace Workspace @relation(fields: [workspaceRef], references: [ref], onDelete: Cascade) + workspaceRef String @map("workspace_ref") + + @@unique([userRef, workspaceRef]) + @@map("workspace_members") +} + +model ApiKey { + ref String @id @default(uuid()) + accessKeyId String @unique @map("access_key_id") @db.VarChar(255) + accessKeySecret String @map("access_key_secret") @db.VarChar(255) /// @encrypted + role ApiKeyRole @default(WORKSPACE_ADMIN) + createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) + updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz(3) + expiresAt DateTime? @map("expires_at") @db.Timestamptz(3) + + // Relations + workspace Workspace @relation(fields: [workspaceRef], references: [ref], onDelete: Cascade) + workspaceRef String @map("workspace_ref") + + // Indexes and maps + @@index([accessKeyId], type: Hash) + @@index([workspaceRef], type: Hash) + @@map("api_keys") +} + +model VerificationCode { + ref String @id @default(uuid()) + type VerificationType + code String @db.VarChar(6) + value String @db.VarChar(255) + expiresAt DateTime @map("expires_at") @db.Timestamptz(3) + createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3) + + // Indexes and maps + @@index([code], type: Hash) + @@map("verification_codes") +} + +enum VerificationType { + EMAIL + PHONE +} + +enum WorkspaceMemberStatus { + PENDING + ACTIVE + + @@map("workspace_member_status") +} + +enum WorkspaceMemberRole { + OWNER + ADMIN + USER + + @@map("workspace_member_role") +} + +enum ApiKeyRole { + WORKSPACE_ADMIN + + @@map("api_key_role") +} diff --git a/mods/identity/src/generated/@prisma/client/wasm.d.ts b/mods/identity/src/generated/@prisma/client/wasm.d.ts new file mode 100644 index 000000000..bc20c6c16 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/wasm.d.ts @@ -0,0 +1 @@ +export * from "./index" \ No newline at end of file diff --git a/mods/identity/src/generated/@prisma/client/wasm.js b/mods/identity/src/generated/@prisma/client/wasm.js new file mode 100644 index 000000000..d895b5952 --- /dev/null +++ b/mods/identity/src/generated/@prisma/client/wasm.js @@ -0,0 +1,256 @@ + +Object.defineProperty(exports, "__esModule", { value: true }); + +const { + Decimal, + objectEnumValues, + makeStrictEnum, + Public, + getRuntime, + skip +} = require('./runtime/index-browser.js') + + +const Prisma = {} + +exports.Prisma = Prisma +exports.$Enums = {} + +/** + * Prisma Client JS version: 6.1.0 + * Query Engine version: 11f085a2012c0f4778414c8db2651556ee0ef959 + */ +Prisma.prismaVersion = { + client: "6.1.0", + engine: "11f085a2012c0f4778414c8db2651556ee0ef959" +} + +Prisma.PrismaClientKnownRequestError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientKnownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)}; +Prisma.PrismaClientUnknownRequestError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientUnknownRequestError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientRustPanicError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientRustPanicError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientInitializationError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientInitializationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.PrismaClientValidationError = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`PrismaClientValidationError is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.Decimal = Decimal + +/** + * Re-export of sql-template-tag + */ +Prisma.sql = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`sqltag is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.empty = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`empty is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.join = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`join is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.raw = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`raw is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.validator = Public.validator + +/** +* Extensions +*/ +Prisma.getExtensionContext = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`Extensions.getExtensionContext is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} +Prisma.defineExtension = () => { + const runtimeName = getRuntime().prettyName; + throw new Error(`Extensions.defineExtension is unable to run in this browser environment, or has been bundled for the browser (running in ${runtimeName}). +In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report`, +)} + +/** + * Shorthand utilities for JSON filtering + */ +Prisma.DbNull = objectEnumValues.instances.DbNull +Prisma.JsonNull = objectEnumValues.instances.JsonNull +Prisma.AnyNull = objectEnumValues.instances.AnyNull + +Prisma.NullTypes = { + DbNull: objectEnumValues.classes.DbNull, + JsonNull: objectEnumValues.classes.JsonNull, + AnyNull: objectEnumValues.classes.AnyNull +} + + + +/** + * Enums + */ + +exports.Prisma.TransactionIsolationLevel = makeStrictEnum({ + ReadUncommitted: 'ReadUncommitted', + ReadCommitted: 'ReadCommitted', + RepeatableRead: 'RepeatableRead', + Serializable: 'Serializable' +}); + +exports.Prisma.UserScalarFieldEnum = { + ref: 'ref', + accessKeyId: 'accessKeyId', + name: 'name', + email: 'email', + emailVerified: 'emailVerified', + password: 'password', + phoneNumber: 'phoneNumber', + phoneNumberVerified: 'phoneNumberVerified', + avatar: 'avatar', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + extended: 'extended' +}; + +exports.Prisma.WorkspaceScalarFieldEnum = { + ref: 'ref', + accessKeyId: 'accessKeyId', + name: 'name', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + ownerRef: 'ownerRef' +}; + +exports.Prisma.WorkspaceMemberScalarFieldEnum = { + ref: 'ref', + status: 'status', + role: 'role', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + userRef: 'userRef', + workspaceRef: 'workspaceRef' +}; + +exports.Prisma.ApiKeyScalarFieldEnum = { + ref: 'ref', + accessKeyId: 'accessKeyId', + accessKeySecret: 'accessKeySecret', + role: 'role', + createdAt: 'createdAt', + updatedAt: 'updatedAt', + expiresAt: 'expiresAt', + workspaceRef: 'workspaceRef' +}; + +exports.Prisma.VerificationCodeScalarFieldEnum = { + ref: 'ref', + type: 'type', + code: 'code', + value: 'value', + expiresAt: 'expiresAt', + createdAt: 'createdAt' +}; + +exports.Prisma.SortOrder = { + asc: 'asc', + desc: 'desc' +}; + +exports.Prisma.NullableJsonNullValueInput = { + DbNull: Prisma.DbNull, + JsonNull: Prisma.JsonNull +}; + +exports.Prisma.QueryMode = { + default: 'default', + insensitive: 'insensitive' +}; + +exports.Prisma.JsonNullValueFilter = { + DbNull: Prisma.DbNull, + JsonNull: Prisma.JsonNull, + AnyNull: Prisma.AnyNull +}; + +exports.Prisma.NullsOrder = { + first: 'first', + last: 'last' +}; +exports.WorkspaceMemberStatus = exports.$Enums.WorkspaceMemberStatus = { + PENDING: 'PENDING', + ACTIVE: 'ACTIVE' +}; + +exports.WorkspaceMemberRole = exports.$Enums.WorkspaceMemberRole = { + OWNER: 'OWNER', + ADMIN: 'ADMIN', + USER: 'USER' +}; + +exports.ApiKeyRole = exports.$Enums.ApiKeyRole = { + WORKSPACE_ADMIN: 'WORKSPACE_ADMIN' +}; + +exports.VerificationType = exports.$Enums.VerificationType = { + EMAIL: 'EMAIL', + PHONE: 'PHONE' +}; + +exports.Prisma.ModelName = { + User: 'User', + Workspace: 'Workspace', + WorkspaceMember: 'WorkspaceMember', + ApiKey: 'ApiKey', + VerificationCode: 'VerificationCode' +}; + +/** + * This is a stub Prisma Client that will error at runtime if called. + */ +class PrismaClient { + constructor() { + return new Proxy(this, { + get(target, prop) { + let message + const runtime = getRuntime() + if (runtime.isEdge) { + message = `PrismaClient is not configured to run in ${runtime.prettyName}. In order to run Prisma Client on edge runtime, either: +- Use Prisma Accelerate: https://pris.ly/d/accelerate +- Use Driver Adapters: https://pris.ly/d/driver-adapters +`; + } else { + message = 'PrismaClient is unable to run in this browser environment, or has been bundled for the browser (running in `' + runtime.prettyName + '`).' + } + + message += ` +If this is unexpected, please open an issue: https://pris.ly/prisma-prisma-bug-report` + + throw new Error(message) + } + }) + } +} + +exports.PrismaClient = PrismaClient + +Object.assign(exports, Prisma) diff --git a/mods/identity/src/getPublicKey.ts b/mods/identity/src/getPublicKey.ts new file mode 100644 index 000000000..9da56d3da --- /dev/null +++ b/mods/identity/src/getPublicKey.ts @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { GrpcErrorMessage } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +type GetPublicKeyResponse = { + publicKey: string; +}; + +function createGetPublicKey(publicKey: string) { + return async function getPublicKey( + _: unknown, + callback: (error: GrpcErrorMessage, response?: GetPublicKeyResponse) => void + ) { + logger.verbose("getting public key for JWT verification"); + + callback(null, { publicKey }); + }; +} + +export { createGetPublicKey }; diff --git a/mods/identity/src/index.ts b/mods/identity/src/index.ts new file mode 100644 index 000000000..1516f543d --- /dev/null +++ b/mods/identity/src/index.ts @@ -0,0 +1,27 @@ +#!/usr/bin/env node +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./apikeys"; +export * from "./exchanges"; +export * from "./invites"; +export * from "./service"; +export * from "./users"; +export * from "./utils"; +export * from "./workspaces"; +export * from "./db"; diff --git a/mods/identity/src/invites/createInviteBody.ts b/mods/identity/src/invites/createInviteBody.ts new file mode 100644 index 000000000..dc2ef388a --- /dev/null +++ b/mods/identity/src/invites/createInviteBody.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import path from "path"; +import { compileTemplate } from "@fonoster/common"; +import { InviteParams } from "./types"; +import { TemplatesEnum } from "../templates/TemplatesEnum"; + +function createInviteBody(params: Omit) { + const { + templateDir: emailTemplateDir, + isExistingUser, + workspaceName, + oneTimePassword, + inviteUrl + } = params; + + const template = isExistingUser + ? TemplatesEnum.INVITE_EXISTING_USER + : TemplatesEnum.INVITE_NEW_USER; + + const templateDir = + emailTemplateDir || path.join(__dirname, "..", "templates"); + + const templatePath = `${templateDir}/${template}.hbs`; + + return compileTemplate({ + filePath: templatePath, + data: { + workspaceName, + oneTimePassword, + inviteUrl + } + }); +} + +export { createInviteBody }; diff --git a/mods/identity/src/invites/index.ts b/mods/identity/src/invites/index.ts new file mode 100644 index 000000000..a2388c1b1 --- /dev/null +++ b/mods/identity/src/invites/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "../templates/TemplatesEnum"; +export * from "./createInviteBody"; +export * from "./sendInvite"; +export * from "./types"; diff --git a/mods/identity/src/invites/sendInvite.ts b/mods/identity/src/invites/sendInvite.ts new file mode 100644 index 000000000..e27539e04 --- /dev/null +++ b/mods/identity/src/invites/sendInvite.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { EmailParams } from "@fonoster/common"; +import { createInviteBody } from "./createInviteBody"; +import { InviteParams } from "./types"; + +async function sendInvite( + sendEmail: (params: EmailParams) => Promise, + request: InviteParams +) { + const { + recipient, + inviteUrl, + oneTimePassword, + isExistingUser, + workspaceName, + templateDir + } = request; + + await sendEmail({ + to: recipient, + subject: "Invite to join a Fonoster workspace", + html: createInviteBody({ + templateDir, + isExistingUser, + workspaceName, + oneTimePassword: isExistingUser ? undefined : oneTimePassword, + inviteUrl + }) + }); +} + +export { sendInvite }; diff --git a/mods/identity/src/invites/types.ts b/mods/identity/src/invites/types.ts new file mode 100644 index 000000000..81cc749ec --- /dev/null +++ b/mods/identity/src/invites/types.ts @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { EmailParams } from "@fonoster/common"; + +type InviteParams = { + recipient: string; + templateDir?: string; + inviteUrl: string; + isExistingUser: boolean; + oneTimePassword?: string; + workspaceName: string; +}; + +type SendInvite = ( + sendEmail: (params: EmailParams) => Promise, + request: InviteParams +) => Promise; + +export { InviteParams, SendInvite }; diff --git a/mods/identity/src/service.ts b/mods/identity/src/service.ts new file mode 100644 index 000000000..3d2cdaa18 --- /dev/null +++ b/mods/identity/src/service.ts @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { prisma } from "./db"; +import { IDENTITY_USER_VERIFICATION_REQUIRED } from "./envs"; +import { createExchangeOauth2Code } from "./exchanges/createExchangeOauth2Code"; +import { IdentityConfig } from "./exchanges/types"; +import { createGetPublicKey } from "./getPublicKey"; +import { createSendVerificationCode, createVerifyCode } from "./verification"; +import { + createCreateApiKey, + createCreateUser, + createCreateWorkspace, + createDeleteApiKey, + createDeleteUser, + createDeleteWorkspace, + createExchangeApiKey, + createExchangeCredentials, + createExchangeRefreshToken, + createGetUser, + createGetWorkspace, + createInviteUserToWorkspace, + createListApiKeys, + createListWorkspaces, + createRegenerateApiKey, + createRemoveUserFromWorkspace, + createResendWorkspaceMembershipInvitation, + sendInvite, + createUpdateUser, + createUpdateWorkspace +} from "."; + +const serviceDefinitionParams = { + serviceName: "Identity", + pckg: "identity", + proto: "identity.proto", + version: "v1beta2" +}; + +function buildIdentityService(identityConfig: IdentityConfig) { + const service = { + definition: serviceDefinitionParams, + handlers: { + // Workspace operations + createWorkspace: createCreateWorkspace(prisma), + deleteWorkspace: createDeleteWorkspace(prisma), + getWorkspace: createGetWorkspace(prisma), + updateWorkspace: createUpdateWorkspace(prisma), + listWorkspaces: createListWorkspaces(prisma), + inviteUserToWorkspace: createInviteUserToWorkspace( + prisma, + identityConfig, + sendInvite + ), + resendWorkspaceMembershipInvitation: + createResendWorkspaceMembershipInvitation( + prisma, + identityConfig, + sendInvite + ), + removeUserFromWorkspace: createRemoveUserFromWorkspace(prisma), + // User operations + createUser: createCreateUser(prisma), + getUser: createGetUser(prisma), + deleteUser: createDeleteUser(prisma), + updateUser: createUpdateUser(prisma), + // ApiKey operations + createApiKey: createCreateApiKey(prisma), + deleteApiKey: createDeleteApiKey(prisma), + listApiKeys: createListApiKeys(prisma), + regenerateApiKey: createRegenerateApiKey(prisma), + // Exchanges + exchangeApiKey: createExchangeApiKey(prisma, identityConfig), + exchangeCredentials: createExchangeCredentials(prisma, identityConfig), + exchangeOauth2Code: createExchangeOauth2Code(prisma, identityConfig), + exchangeRefreshToken: createExchangeRefreshToken(prisma, identityConfig), + getPublicKey: createGetPublicKey(identityConfig.publicKey), + // Placeholders for conditional handlers + sendVerificationCode: undefined as unknown as ReturnType< + typeof createSendVerificationCode + >, + verifyCode: undefined as unknown as ReturnType + } + }; + + if (IDENTITY_USER_VERIFICATION_REQUIRED) { + service.handlers.sendVerificationCode = createSendVerificationCode( + prisma, + identityConfig + ); + service.handlers.verifyCode = createVerifyCode(prisma); + } + + return service; +} + +export { buildIdentityService, serviceDefinitionParams }; diff --git a/mods/identity/src/templates/TemplatesEnum.ts b/mods/identity/src/templates/TemplatesEnum.ts new file mode 100644 index 000000000..a3e60ca19 --- /dev/null +++ b/mods/identity/src/templates/TemplatesEnum.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +enum TemplatesEnum { + INVITE_NEW_USER = "inviteNewUser", + INVITE_EXISTING_USER = "inviteExistingUser", + VERIFY_EMAIL = "verifyEmail", + VERIFY_PHONE = "verifyPhone" +} + +export { TemplatesEnum }; diff --git a/mods/identity/src/templates/inviteExistingUser.hbs b/mods/identity/src/templates/inviteExistingUser.hbs new file mode 100644 index 000000000..6f531a111 --- /dev/null +++ b/mods/identity/src/templates/inviteExistingUser.hbs @@ -0,0 +1,54 @@ + + + + Invite + + + +

+ + \ No newline at end of file diff --git a/mods/identity/src/templates/inviteNewUser.hbs b/mods/identity/src/templates/inviteNewUser.hbs new file mode 100644 index 000000000..9a8f81b06 --- /dev/null +++ b/mods/identity/src/templates/inviteNewUser.hbs @@ -0,0 +1,55 @@ + + + + Invite + + + +
+

You have been invited to join the workspace {{workspaceName}} on Fonoster.

+

Assigned one-time password: {{oneTimePassword}}

+

For access, please click on the button below:

+ Access Workspace +
+ + \ No newline at end of file diff --git a/mods/identity/src/templates/verifyEmail.hbs b/mods/identity/src/templates/verifyEmail.hbs new file mode 100644 index 000000000..f0bdced27 --- /dev/null +++ b/mods/identity/src/templates/verifyEmail.hbs @@ -0,0 +1,39 @@ + + + + Verification Code + + + +
+

To continue, please verify your account with the code below:

+

{{verificationCode}}

+

If you didn’t request this code, you can ignore this message.

+
+ + \ No newline at end of file diff --git a/mods/identity/src/templates/verifyPhone.hbs b/mods/identity/src/templates/verifyPhone.hbs new file mode 100644 index 000000000..9c55c5614 --- /dev/null +++ b/mods/identity/src/templates/verifyPhone.hbs @@ -0,0 +1,3 @@ +To continue, please verify your account with the following code: {{verificationCode}} + +If you didn't request this, please ignore this message. diff --git a/mods/identity/src/users/createCreateUser.ts b/mods/identity/src/users/createCreateUser.ts new file mode 100644 index 000000000..d2e63bffd --- /dev/null +++ b/mods/identity/src/users/createCreateUser.ts @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject, CreateUserRequest } from "@fonoster/types"; +import { Prisma } from "../db"; +import { + AccessKeyIdType, + generateAccessKeyId +} from "../utils/generateAccessKeyId"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createCreateUser(prisma: Prisma) { + const createUser = async ( + call: { request: CreateUserRequest }, + callback: (error?: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { request } = call; + const { name, email, password, avatar } = request; + + logger.verbose("call to createUser", { email }); + + const user = await prisma.user.create({ + data: { + name, + email, + accessKeyId: generateAccessKeyId(AccessKeyIdType.USER), + password, + avatar + } + }); + + const { ref } = user; + + callback(null, { ref }); + }; + + return withErrorHandlingAndValidation(createUser, V.createUserRequestSchema); +} + +export { createCreateUser }; diff --git a/mods/identity/src/users/createDeleteUser.ts b/mods/identity/src/users/createDeleteUser.ts new file mode 100644 index 000000000..422c5007a --- /dev/null +++ b/mods/identity/src/users/createDeleteUser.ts @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getTokenFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { Prisma } from "../db"; +import { getAccessKeyIdFromToken } from "../utils"; +import { BaseApiObject } from "@fonoster/types"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createDeleteUser(prisma: Prisma) { + const deleteUser = async ( + call: { request: BaseApiObject }, + callback: (error?: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { request } = call; + const { ref } = request; + + const token = getTokenFromCall(call as unknown as ServerInterceptingCall); + const accessKeyId = getAccessKeyIdFromToken(token); + + logger.verbose("deleting user from the system", { ref, accessKeyId }); + + await prisma.user.delete({ + where: { + ref, + accessKeyId + } + }); + + callback(null, { ref }); + }; + + return withErrorHandlingAndValidation(deleteUser, V.emptySchema); +} + +export { createDeleteUser }; diff --git a/mods/identity/src/users/createGetUser.ts b/mods/identity/src/users/createGetUser.ts new file mode 100644 index 000000000..b1cef4e6d --- /dev/null +++ b/mods/identity/src/users/createGetUser.ts @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + datesMapper, + withErrorHandlingAndValidation, + getTokenFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject, User } from "@fonoster/types"; +import { status as GRPCStatus, ServerInterceptingCall } from "@grpc/grpc-js"; +import { Prisma } from "../db"; +import { getAccessKeyIdFromToken } from "../utils"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createGetUser(prisma: Prisma) { + const getUser = async ( + call: { request: BaseApiObject }, + callback: (error: GrpcErrorMessage, response?: User) => void + ) => { + const { request } = call; + const { ref } = request; + + const token = getTokenFromCall(call as unknown as ServerInterceptingCall); + const accessKeyId = getAccessKeyIdFromToken(token); + + logger.verbose("getting user with ref and accessKeyId", { + ref, + accessKeyId + }); + + const user = await prisma.user.findUnique({ + where: { + ref, + accessKeyId + } + }); + + if (!user) { + callback({ + code: GRPCStatus.NOT_FOUND, + message: `User not found: ${ref}` + }); + return; + } + + callback(null, datesMapper(user)); + }; + + return withErrorHandlingAndValidation(getUser, V.emptySchema); +} + +export { createGetUser }; diff --git a/mods/identity/src/users/createUpdateUser.ts b/mods/identity/src/users/createUpdateUser.ts new file mode 100644 index 000000000..eae4b6b6b --- /dev/null +++ b/mods/identity/src/users/createUpdateUser.ts @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getTokenFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject, UpdateUserRequest } from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { Prisma } from "../db"; +import { getAccessKeyIdFromToken } from "../utils"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createUpdateUser(prisma: Prisma) { + const updateUser = async ( + call: { request: UpdateUserRequest }, + callback: (error: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { request } = call; + const { ref, name, avatar, password } = request; + + const token = getTokenFromCall(call as unknown as ServerInterceptingCall); + const accessKeyId = getAccessKeyIdFromToken(token); + + logger.verbose("call to updateUser", { ref, password }); + + await prisma.user.update({ + where: { + ref, + accessKeyId + }, + data: { + name, + avatar, + password: password || undefined, + updatedAt: new Date() + } + }); + + const response: BaseApiObject = { + ref + }; + + callback(null, response); + }; + + return withErrorHandlingAndValidation(updateUser, V.updateUserRequestSchema); +} + +export { createUpdateUser }; diff --git a/mods/identity/src/users/index.ts b/mods/identity/src/users/index.ts new file mode 100644 index 000000000..00bc85db7 --- /dev/null +++ b/mods/identity/src/users/index.ts @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./createCreateUser"; +export * from "./createDeleteUser"; +export * from "./createGetUser"; +export * from "./createUpdateUser"; +export * from "./upsertDefaultUser"; diff --git a/mods/identity/src/users/upsertDefaultUser.ts b/mods/identity/src/users/upsertDefaultUser.ts new file mode 100644 index 000000000..abcba1a5a --- /dev/null +++ b/mods/identity/src/users/upsertDefaultUser.ts @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { z } from "zod"; +import { fromError } from "zod-validation-error"; +import { prisma } from "../db"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +const createUserRequestSchema = z.object({ + name: z + .string() + .min(3, { message: "Name must be at least 3 characters long" }) + .max(50, { message: "Name must be at most 50 characters long" }), + email: z.string().email({ message: "Must be a valid email" }), + password: z.string().min(8).max(50).or(z.string().optional().nullable()) +}); + +type CreateUserRequest = z.infer; + +const USER_REF = "00000000-0000-0000-0000-000000000000"; +const WORKSPACE_REF = "00000000-0000-0000-0000-000000000000"; +const USER_ACCESS_KEY_ID = "US00000000000000000000000000000000"; +const WORKSPACE_ACCESS_KEY_ID = "WO00000000000000000000000000000000"; + +async function upsertDefaultUser(request: CreateUserRequest) { + try { + const validatedRequest = createUserRequestSchema.parse(request); + + const { name, email, password } = validatedRequest; + + logger.verbose("call to upsertDefaultUser", { + email, + accessKeyId: USER_ACCESS_KEY_ID + }); + + await prisma.user.upsert({ + where: { ref: USER_REF }, + update: { + name, + email, + password: password || undefined, + accessKeyId: USER_ACCESS_KEY_ID, + updatedAt: new Date() + }, + create: { + ref: USER_REF, + name, + email, + password, + accessKeyId: USER_ACCESS_KEY_ID + } + }); + + await prisma.workspace.upsert({ + where: { ref: WORKSPACE_REF }, + update: {}, + create: { + ref: WORKSPACE_REF, + name: "Default Workspace", + ownerRef: USER_REF, + accessKeyId: WORKSPACE_ACCESS_KEY_ID + } + }); + } catch (error) { + if (error instanceof z.ZodError) { + logger.error("validation error on upsertDefaultUser", { + error: fromError(error, { prefix: null }).toString() + }); + } else { + logger.error("error on upsertDefaultUser", { error }); + } + process.exit(1); + } +} + +export { upsertDefaultUser }; diff --git a/mods/identity/src/utils/createGenerateCallAccessToken.ts b/mods/identity/src/utils/createGenerateCallAccessToken.ts new file mode 100644 index 000000000..1c769951f --- /dev/null +++ b/mods/identity/src/utils/createGenerateCallAccessToken.ts @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import jwt from "jsonwebtoken"; +import { SIGN_ALGORITHM } from "../constants"; +import { TokenUseEnum, VOICE_SERVICE_ROLE } from "@fonoster/common"; +import { IdentityConfig } from "../exchanges/types"; + +function createGenerateCallAccessToken(identityConfig: IdentityConfig) { + return async function generateCallAccessToken(params: { + accessKeyId: string; + appRef: string; + }): Promise { + const { privateKey } = identityConfig; + + const accessTokenSignOptions = { + algorithm: SIGN_ALGORITHM, + // Just enough time to validate a request + expiresIn: "30s" + } as jwt.SignOptions; + + const { issuer, audience } = identityConfig; + const { accessKeyId, appRef } = params; + + const access = [ + { + accessKeyId, + role: VOICE_SERVICE_ROLE + } + ]; + + const unsignedToken = { + iss: issuer, + sub: appRef, + aud: audience, + tokenUse: TokenUseEnum.ACCESS, + accessKeyId, + access + }; + + return jwt.sign(unsignedToken, privateKey, accessTokenSignOptions); + }; +} + +export { createGenerateCallAccessToken }; diff --git a/mods/identity/src/utils/createGenerateVerificationCode.ts b/mods/identity/src/utils/createGenerateVerificationCode.ts new file mode 100644 index 000000000..d5639fd65 --- /dev/null +++ b/mods/identity/src/utils/createGenerateVerificationCode.ts @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VerificationType } from "../generated/@prisma/client"; +import { VERIFICATION_CODE_EXPIRATION } from "../constants"; +import { Prisma } from "../db"; + +function createGenerateVerificationCode(prisma: Prisma) { + return async (params: { type: VerificationType; value: string }) => { + const { type, value } = params; + const code = Math.floor(100000 + Math.random() * 900000).toString(); + + await prisma.verificationCode.create({ + data: { + type, + value, + code, + expiresAt: new Date(Date.now() + VERIFICATION_CODE_EXPIRATION) + } + }); + + return code; + }; +} + +export { createGenerateVerificationCode }; diff --git a/mods/identity/src/utils/createGenerateWorkspaceInviteToken.ts b/mods/identity/src/utils/createGenerateWorkspaceInviteToken.ts new file mode 100644 index 000000000..cf50e7f88 --- /dev/null +++ b/mods/identity/src/utils/createGenerateWorkspaceInviteToken.ts @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import jwt from "jsonwebtoken"; +import { SIGN_ALGORITHM } from "../constants"; +import { IdentityConfig } from "../exchanges/types"; + +function createGenerateWorkspaceInviteToken(identityConfig: IdentityConfig) { + return async function generateWorkspaceInviteToken(params: { + userRef: string; + memberRef: string; + accessKeyId: string; + expiresIn?: string; + }): Promise { + const { privateKey } = identityConfig; + const { issuer, audience } = identityConfig; + const { userRef, memberRef, accessKeyId, expiresIn } = params; + + const accessTokenSignOptions = { + algorithm: SIGN_ALGORITHM, + expiresIn: expiresIn || "1d" + } as jwt.SignOptions; + + const unsignedToken = { + iss: issuer, + sub: userRef, + aud: audience, + memberRef: memberRef, + accessKeyId + }; + + return jwt.sign(unsignedToken, privateKey, accessTokenSignOptions); + }; +} + +export { createGenerateWorkspaceInviteToken }; diff --git a/mods/identity/src/utils/createGetAccessKeyIdFromEmail.ts b/mods/identity/src/utils/createGetAccessKeyIdFromEmail.ts new file mode 100644 index 000000000..c0a92de4d --- /dev/null +++ b/mods/identity/src/utils/createGetAccessKeyIdFromEmail.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createGetUserByEmail } from "./createGetUserByEmail"; +import { Prisma } from "../db"; + +function createGetAccessKeyIdFromEmail(prisma: Prisma) { + return async function getAccessKeyIdFromEmail( + email: string + ): Promise { + return (await createGetUserByEmail(prisma)(email)).accessKeyId; + }; +} + +export { createGetAccessKeyIdFromEmail }; diff --git a/mods/identity/src/utils/createGetApiKeyByAccessKeyId.ts b/mods/identity/src/utils/createGetApiKeyByAccessKeyId.ts new file mode 100644 index 000000000..bcdb24075 --- /dev/null +++ b/mods/identity/src/utils/createGetApiKeyByAccessKeyId.ts @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Prisma } from "../db"; + +function createGetApiKeyByAccessKeyId(prisma: Prisma) { + return async function getApiKeyByAccessKeyId(accessKeyId: string) { + const key = await prisma.apiKey.findFirst({ + where: { + accessKeyId + } + }); + + if (!key) { + return null; + } + + return key; + }; +} + +export { createGetApiKeyByAccessKeyId }; diff --git a/mods/identity/src/utils/createGetUserByAccessKeyId.ts b/mods/identity/src/utils/createGetUserByAccessKeyId.ts new file mode 100644 index 000000000..6f46aced0 --- /dev/null +++ b/mods/identity/src/utils/createGetUserByAccessKeyId.ts @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Prisma } from "../db"; + +function createGetUserByAccessKeyId(prisma: Prisma) { + return function getUserByAccessKeyId(accessKeyId: string) { + return prisma.user.findFirst({ + where: { accessKeyId } + }); + }; +} + +export { createGetUserByAccessKeyId }; diff --git a/mods/identity/src/utils/createGetUserByEmail.ts b/mods/identity/src/utils/createGetUserByEmail.ts new file mode 100644 index 000000000..451336a69 --- /dev/null +++ b/mods/identity/src/utils/createGetUserByEmail.ts @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Prisma } from "../db"; + +function createGetUserByEmail(prisma: Prisma) { + return async function getUserByEmail(email: string) { + return await prisma.user.findFirst({ + where: { + email + } + }); + }; +} + +export { createGetUserByEmail }; diff --git a/mods/identity/src/utils/createGetUserByWorkspaceAccessKeyId.ts b/mods/identity/src/utils/createGetUserByWorkspaceAccessKeyId.ts new file mode 100644 index 000000000..cc349afc0 --- /dev/null +++ b/mods/identity/src/utils/createGetUserByWorkspaceAccessKeyId.ts @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Prisma } from "../db"; + +function createGetUserByWorkspaceAccessKeyId(prisma: Prisma) { + return async (accessKeyId: string) => { + const workspace = await prisma.workspace.findFirst({ + where: { accessKeyId } + }); + + if (!workspace) return null; + + return prisma.user.findFirst({ + where: { ref: workspace.ownerRef } + }); + }; +} + +export { createGetUserByWorkspaceAccessKeyId }; diff --git a/mods/identity/src/utils/createIsUserContactVerified.ts b/mods/identity/src/utils/createIsUserContactVerified.ts new file mode 100644 index 000000000..21557afb7 --- /dev/null +++ b/mods/identity/src/utils/createIsUserContactVerified.ts @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Prisma } from "../db"; + +function createIsUserContactVerified(prisma: Prisma) { + return async (accessKeyId: string) => { + const user = await prisma.user.findUnique({ + where: { + accessKeyId + } + }); + + if (!user) { + throw new Error("User not found"); + } + + return user.emailVerified || user.phoneNumberVerified; + }; +} + +export { createIsUserContactVerified }; diff --git a/mods/identity/src/utils/createIsValidVerificationCode.ts b/mods/identity/src/utils/createIsValidVerificationCode.ts new file mode 100644 index 000000000..2ce28356f --- /dev/null +++ b/mods/identity/src/utils/createIsValidVerificationCode.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { VerificationType } from "../generated/@prisma/client"; +import { VERIFICATION_CODE_EXPIRATION } from "../constants"; +import { Prisma } from "../db"; + +function createIsValidVerificationCode(prisma: Prisma) { + return async (params: { + type: VerificationType; + value: string; + code: string; + }) => { + const { type, value, code } = params; + + // Delete old verification codes + await prisma.verificationCode.deleteMany({ + where: { + expiresAt: { + lt: new Date(Date.now() - VERIFICATION_CODE_EXPIRATION) + } + } + }); + + const result = await prisma.verificationCode.findFirst({ + where: { + type, + value, + code + } + }); + + return !!result; + }; +} + +export { createIsValidVerificationCode }; diff --git a/mods/identity/src/utils/createSendEmail.ts b/mods/identity/src/utils/createSendEmail.ts new file mode 100644 index 000000000..b56b29b7c --- /dev/null +++ b/mods/identity/src/utils/createSendEmail.ts @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createSendEmail as createSendEmailOriginal } from "@fonoster/common"; +import { IdentityConfig } from "../exchanges/types"; + +function createSendEmail(identityConfig: IdentityConfig) { + const { smtpConfig } = identityConfig; + const { host, port, secure, sender, auth } = smtpConfig; + const { user, pass } = auth; + + return createSendEmailOriginal({ + sender, + host, + port, + secure, + auth: { + user, + pass + } + }); +} + +export { createSendEmail }; diff --git a/mods/identity/src/utils/createUpdateMembershipStatus.ts b/mods/identity/src/utils/createUpdateMembershipStatus.ts new file mode 100644 index 000000000..c22495812 --- /dev/null +++ b/mods/identity/src/utils/createUpdateMembershipStatus.ts @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { WorkspaceMemberStatus } from "@fonoster/types"; +import { jwtDecode } from "jwt-decode"; +import { isValidToken } from "@fonoster/common"; +import { prisma } from "../db"; +import { IdentityConfig } from "../exchanges"; + +function createUpdateMembershipStatus(identityConfig: IdentityConfig) { + return async function pdateMembershipStatus(token: string): Promise { + if (!isValidToken(token, identityConfig.privateKey)) { + throw new Error("Invalid token"); + } + + const { memberRef } = jwtDecode(token) as { memberRef: string }; + + await prisma.workspaceMember.update({ + where: { + ref: memberRef + }, + data: { + status: WorkspaceMemberStatus.ACTIVE, + updatedAt: new Date() + } + }); + }; +} + +export { createUpdateMembershipStatus }; diff --git a/mods/identity/src/utils/generateAccessKeyId.ts b/mods/identity/src/utils/generateAccessKeyId.ts new file mode 100644 index 000000000..4875f879b --- /dev/null +++ b/mods/identity/src/utils/generateAccessKeyId.ts @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { customAlphabet } from "nanoid"; + +enum AccessKeyIdType { + USER, + WORKSPACE, + SERVICE, + API_KEY +} + +function generateAccessKeyId(type: AccessKeyIdType) { + const prefix = { + [AccessKeyIdType.USER]: "US", + [AccessKeyIdType.WORKSPACE]: "WO", + [AccessKeyIdType.SERVICE]: "SE", + [AccessKeyIdType.API_KEY]: "AP" + }; + + return `${prefix[type]}${customAlphabet("1234567890abcdefghijklmnopqrstuvwxyz", 32)()}`; +} + +export { AccessKeyIdType, generateAccessKeyId }; diff --git a/mods/identity/src/utils/generateAccessKeySecret.ts b/mods/identity/src/utils/generateAccessKeySecret.ts new file mode 100644 index 000000000..900bd40ea --- /dev/null +++ b/mods/identity/src/utils/generateAccessKeySecret.ts @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { customAlphabet } from "nanoid"; + +function generateAccessKeySecret() { + return customAlphabet( + "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", + 64 + )(); +} + +export { generateAccessKeySecret }; diff --git a/mods/identity/src/utils/getAccessKeyIdFromToken.ts b/mods/identity/src/utils/getAccessKeyIdFromToken.ts new file mode 100644 index 000000000..7b764312a --- /dev/null +++ b/mods/identity/src/utils/getAccessKeyIdFromToken.ts @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { TokenUseEnum, decodeToken } from "@fonoster/common"; + +function getAccessKeyIdFromToken(token: string): string { + const decodedToken = decodeToken(token); + + if (decodedToken.tokenUse !== TokenUseEnum.ACCESS) { + throw new Error("Invalid token type"); + } + + return decodedToken.accessKeyId; +} + +export { getAccessKeyIdFromToken }; diff --git a/mods/identity/src/utils/getUserRefFromToken.ts b/mods/identity/src/utils/getUserRefFromToken.ts new file mode 100644 index 000000000..db5a0d891 --- /dev/null +++ b/mods/identity/src/utils/getUserRefFromToken.ts @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { TokenUseEnum, decodeToken } from "@fonoster/common"; + +function getUserRefFromToken(token: string): string { + const decodedToken = decodeToken(token); + + if (decodedToken.tokenUse !== TokenUseEnum.ACCESS) { + throw new Error("Invalid token type"); + } + + return decodedToken.sub; +} + +export { getUserRefFromToken }; diff --git a/mods/identity/src/utils/hasAccessToResource.ts b/mods/identity/src/utils/hasAccessToResource.ts new file mode 100644 index 000000000..44612cb76 --- /dev/null +++ b/mods/identity/src/utils/hasAccessToResource.ts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { JsonObject } from "@prisma/client/runtime/library"; +import { + Access, + TokenUseEnum, + decodeToken, + getTokenFromCall +} from "@fonoster/common"; + +const logger = getLogger({ service: "sipnet", filePath: __filename }); + +async function hasAccessToResource( + call: unknown, + getFn: (ref: string) => Promise<{ extended?: JsonObject }> +) { + const { request } = call as { request: { ref: string } }; + const { extended } = await getFn(request.ref); + + logger.verbose("call to hasAccessToResource", { + ref: request.ref, + accessKeyId: extended?.accessKeyId + }); + + // If the resource doesn't exist, allow the operation + if (!extended) return true; + + const token = getTokenFromCall(call as ServerInterceptingCall); + const decodedToken = decodeToken(token); + const accessKeyIds = decodedToken.access?.map((a: Access) => a.accessKeyId); + + return accessKeyIds.includes(extended?.accessKeyId as string); +} + +export { hasAccessToResource }; diff --git a/mods/identity/src/utils/index.ts b/mods/identity/src/utils/index.ts new file mode 100644 index 000000000..70444f9b8 --- /dev/null +++ b/mods/identity/src/utils/index.ts @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./createGenerateCallAccessToken"; +export * from "./createSendEmail"; +export * from "./createGetUserByWorkspaceAccessKeyId"; +export * from "./createGetUserByAccessKeyId"; +export * from "./generateAccessKeyId"; +export * from "./getAccessKeyIdFromToken"; +export * from "./hasAccessToResource"; +export * from "./createUpdateMembershipStatus"; +export * from "./withAccess"; diff --git a/mods/identity/src/utils/withAccess.ts b/mods/identity/src/utils/withAccess.ts new file mode 100644 index 000000000..23fc22c47 --- /dev/null +++ b/mods/identity/src/utils/withAccess.ts @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { GrpcErrorMessage } from "@fonoster/common"; +import * as grpc from "@grpc/grpc-js"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { JsonObject } from "@prisma/client/runtime/library"; +import { hasAccessToResource } from "./hasAccessToResource"; + +function withAccess( + handler: (call: T) => Promise, + getFn: (ref: string) => Promise<{ extended?: JsonObject }> +) { + return async ( + call: T, + callback: (error?: GrpcErrorMessage, response?: A) => void + ) => { + const typedCall = call as unknown as ServerInterceptingCall; + const hasAccess = await hasAccessToResource(typedCall, getFn); + + if (!hasAccess) { + callback({ + code: grpc.status.PERMISSION_DENIED, + message: "You don't have permission to access this resource" + }); + return; + } + + const response = await handler(call); + + callback(null, response); + }; +} + +export { withAccess }; diff --git a/mods/identity/src/verification/createBodyForVerificationEmail.ts b/mods/identity/src/verification/createBodyForVerificationEmail.ts new file mode 100644 index 000000000..6ed2444d6 --- /dev/null +++ b/mods/identity/src/verification/createBodyForVerificationEmail.ts @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import path from "path"; +import { compileTemplate } from "@fonoster/common"; +import { VerificationParams } from "./types"; +import { TemplatesEnum } from "../templates/TemplatesEnum"; + +function createBodyForVerificationEmail( + params: Omit +) { + const { verificationCode, templateDir: emailTemplateDir } = params; + + const template = TemplatesEnum.VERIFY_EMAIL; + + const templateDir = + emailTemplateDir || path.join(__dirname, "..", "templates"); + + const templatePath = `${templateDir}/${template}.hbs`; + + return compileTemplate({ + filePath: templatePath, + data: { + verificationCode + } + }); +} + +export { createBodyForVerificationEmail }; diff --git a/mods/identity/src/verification/createBodyForVerificationMessage.ts b/mods/identity/src/verification/createBodyForVerificationMessage.ts new file mode 100644 index 000000000..a16083be5 --- /dev/null +++ b/mods/identity/src/verification/createBodyForVerificationMessage.ts @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import path from "path"; +import { compileTemplate } from "@fonoster/common"; +import { VerificationParams } from "./types"; +import { TemplatesEnum } from "../templates/TemplatesEnum"; + +function createBodyForVerificationMessage( + params: Omit +) { + const { verificationCode, templateDir } = params; + + const template = TemplatesEnum.VERIFY_PHONE; + + const actualTemplateDir = + templateDir || path.join(__dirname, "..", "templates"); + + const templatePath = `${actualTemplateDir}/${template}.hbs`; + + return compileTemplate({ + filePath: templatePath, + data: { + verificationCode + } + }); +} + +export { createBodyForVerificationMessage }; diff --git a/mods/identity/src/verification/createSendVerificationCode.ts b/mods/identity/src/verification/createSendVerificationCode.ts new file mode 100644 index 000000000..a70ff3992 --- /dev/null +++ b/mods/identity/src/verification/createSendVerificationCode.ts @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + createSendEmail, + createSendSmsTwilioImpl, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { sendVerificationEmail } from "./sendVerificationEmail"; +import { sendVerificationMessage } from "./sendVerificationMessage"; +import { ContactType, SendVerificationCodeRequest } from "./types"; +import { Prisma } from "../db"; +import { IdentityConfig } from "../exchanges"; +import { createGenerateVerificationCode } from "../utils/createGenerateVerificationCode"; + +function createSendVerificationCode( + prisma: Prisma, + identityConfig: IdentityConfig +) { + const sendSms = createSendSmsTwilioImpl(identityConfig.twilioSmsConfig); + const sendEmail = createSendEmail(identityConfig.smtpConfig); + const generateVerificationCode = createGenerateVerificationCode(prisma); + + const fn = async ( + call: { request: SendVerificationCodeRequest }, + callback: (error: GrpcErrorMessage) => void + ) => { + const { request } = call; + const actualContactType = request.contactType ?? ContactType.EMAIL; + + const verificationCode = await generateVerificationCode({ + type: actualContactType, + value: request.value + }); + + if (actualContactType === ContactType.EMAIL) { + sendVerificationEmail(sendEmail, { + recipient: request.value, + verificationCode + }); + } else { + await sendVerificationMessage(sendSms, { + recipient: request.value, + verificationCode + }); + } + + callback(null); + }; + + return withErrorHandlingAndValidation( + fn, + V.sendVerificationCodeRequestSchema + ); +} + +export { createSendVerificationCode }; diff --git a/mods/identity/src/verification/createVerifyCode.ts b/mods/identity/src/verification/createVerifyCode.ts new file mode 100644 index 000000000..9b80d1074 --- /dev/null +++ b/mods/identity/src/verification/createVerifyCode.ts @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { ContactType } from "@fonoster/types"; +import { status } from "@grpc/grpc-js"; +import { VerifyCodeRequest } from "./types"; +import { Prisma } from "../db"; +import { createIsValidVerificationCode } from "../utils/createIsValidVerificationCode"; + +function createVerifyCode(prisma: Prisma) { + const isValidVerificationCode = createIsValidVerificationCode(prisma); + + const verifyCode = async ( + call: { request: VerifyCodeRequest }, + callback: (error: GrpcErrorMessage) => void + ) => { + const { request } = call; + const { username, contactType, value, verificationCode } = request; + const actualContactType = contactType ?? ContactType.EMAIL; + + const isValid = await isValidVerificationCode({ + type: actualContactType, + code: verificationCode, + value + }); + + if (!isValid) { + return callback({ + code: status.PERMISSION_DENIED, + message: "Invalid verification code" + }); + } else if (actualContactType === ContactType.EMAIL && isValid) { + await prisma.user.update({ + where: { email: username }, + data: { emailVerified: true } + }); + } else if (actualContactType === ContactType.PHONE && isValid) { + await prisma.user.update({ + where: { email: username, phoneNumber: value }, + data: { phoneNumberVerified: true } + }); + } + + callback(null); + }; + + return withErrorHandlingAndValidation(verifyCode, V.verifyCodeRequestSchema); +} + +export { createVerifyCode }; diff --git a/mods/identity/src/verification/index.ts b/mods/identity/src/verification/index.ts new file mode 100644 index 000000000..0e9594c5e --- /dev/null +++ b/mods/identity/src/verification/index.ts @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "../templates/TemplatesEnum"; +export * from "./createSendVerificationCode"; +export * from "./createVerifyCode"; +export * from "./sendVerificationEmail"; +export * from "./sendVerificationMessage"; +export * from "./types"; diff --git a/mods/identity/src/verification/sendVerificationEmail.ts b/mods/identity/src/verification/sendVerificationEmail.ts new file mode 100644 index 000000000..f92b525cd --- /dev/null +++ b/mods/identity/src/verification/sendVerificationEmail.ts @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { EmailParams } from "@fonoster/common"; +import { createBodyForVerificationEmail } from "./createBodyForVerificationEmail"; +import { VerificationParams } from "./types"; + +async function sendVerificationEmail( + sendEmail: (params: EmailParams) => Promise, + request: VerificationParams +) { + const { recipient, verificationCode, templateDir } = request; + + await sendEmail({ + to: recipient, + subject: "Your verification code", + html: createBodyForVerificationEmail({ + templateDir, + verificationCode + }) + }); +} + +export { sendVerificationEmail }; diff --git a/mods/identity/src/verification/sendVerificationMessage.ts b/mods/identity/src/verification/sendVerificationMessage.ts new file mode 100644 index 000000000..2b00bfc5d --- /dev/null +++ b/mods/identity/src/verification/sendVerificationMessage.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { SmsParams } from "@fonoster/common"; +import { createBodyForVerificationMessage } from "./createBodyForVerificationMessage"; +import { VerificationParams } from "./types"; + +async function sendVerificationMessage( + sendSms: (params: SmsParams) => Promise, + request: VerificationParams +) { + const { recipient, verificationCode, templateDir } = request; + + await sendSms({ + to: recipient, + body: createBodyForVerificationMessage({ + templateDir, + verificationCode + }) + }); +} + +export { sendVerificationMessage }; diff --git a/mods/identity/src/verification/types.ts b/mods/identity/src/verification/types.ts new file mode 100644 index 000000000..4e2684fa1 --- /dev/null +++ b/mods/identity/src/verification/types.ts @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { EmailParams, SmsParams } from "@fonoster/common"; + +enum ContactType { + EMAIL = "EMAIL", + PHONE = "PHONE" +} + +type SendVerificationCodeRequest = { + contactType: ContactType; + value: string; +}; + +type VerifyCodeRequest = { + username: string; + contactType: ContactType; + value: string; + verificationCode: string; +}; + +type VerificationParams = { + templateDir?: string; + recipient: string; + verificationCode: string; +}; + +type SendEmailVerificationCode = ( + sendEmail: (params: EmailParams) => Promise, + request: VerificationParams +) => Promise; + +type SendPhoneVerificationCode = ( + sendSms: (params: SmsParams) => Promise, + request: VerificationParams +) => Promise; + +export { + ContactType, + SendEmailVerificationCode, + SendPhoneVerificationCode, + SendVerificationCodeRequest, + VerificationParams, + VerifyCodeRequest +}; diff --git a/mods/identity/src/workspaces/createCreateWorkspace.ts b/mods/identity/src/workspaces/createCreateWorkspace.ts new file mode 100644 index 000000000..a174ad6af --- /dev/null +++ b/mods/identity/src/workspaces/createCreateWorkspace.ts @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getTokenFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject, CreateWorkspaceRequest } from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { Prisma } from "../db"; +import { + AccessKeyIdType, + generateAccessKeyId +} from "../utils/generateAccessKeyId"; +import { getUserRefFromToken } from "../utils/getUserRefFromToken"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createCreateWorkspace(prisma: Prisma) { + const createWorkspace = async ( + call: { request: CreateWorkspaceRequest }, + callback: (error: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { request } = call; + const { name } = request; + + const token = getTokenFromCall(call as unknown as ServerInterceptingCall); + const ownerRef = getUserRefFromToken(token); + const accessKeyId = generateAccessKeyId(AccessKeyIdType.WORKSPACE); + + logger.verbose("call to createWorkspace", { name, ownerRef }); + + const workspace = await prisma.workspace.create({ + data: { + name, + accessKeyId, + ownerRef + } + }); + + const { ref } = workspace; + + callback(null, { ref }); + }; + + return withErrorHandlingAndValidation( + createWorkspace, + V.createWorkspaceRequestSchema + ); +} + +export { createCreateWorkspace }; diff --git a/mods/identity/src/workspaces/createDeleteWorkspace.ts b/mods/identity/src/workspaces/createDeleteWorkspace.ts new file mode 100644 index 000000000..20af8e65a --- /dev/null +++ b/mods/identity/src/workspaces/createDeleteWorkspace.ts @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getTokenFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject } from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { Prisma } from "../db"; +import { getUserRefFromToken } from "../utils/getUserRefFromToken"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createDeleteWorkspace(prisma: Prisma) { + const deleteWorkspace = async ( + call: { request: BaseApiObject }, + callback: (error: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { request } = call; + const { ref } = request; + + const token = getTokenFromCall(call as unknown as ServerInterceptingCall); + const ownerRef = getUserRefFromToken(token); + + logger.verbose("deleting workspace from the system", { ref, ownerRef }); + + await prisma.workspace.delete({ + where: { + ref, + ownerRef + } + }); + + callback(null, { ref }); + }; + + return withErrorHandlingAndValidation(deleteWorkspace, V.emptySchema); +} + +export { createDeleteWorkspace }; diff --git a/mods/identity/src/workspaces/createGetWorkspace.ts b/mods/identity/src/workspaces/createGetWorkspace.ts new file mode 100644 index 000000000..8029ae7c2 --- /dev/null +++ b/mods/identity/src/workspaces/createGetWorkspace.ts @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + datesMapper, + withErrorHandlingAndValidation, + getTokenFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject, Workspace } from "@fonoster/types"; +import { status as GRPCStatus, ServerInterceptingCall } from "@grpc/grpc-js"; +import { Prisma } from "../db"; +import { getUserRefFromToken } from "../utils/getUserRefFromToken"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createGetWorkspace(prisma: Prisma) { + const getWorkspace = async ( + call: { request: BaseApiObject }, + callback: (error: GrpcErrorMessage, response?: Workspace) => void + ) => { + const { request } = call; + const { ref } = request; + + const token = getTokenFromCall(call as unknown as ServerInterceptingCall); + const ownerRef = getUserRefFromToken(token); + + logger.verbose("getting workspace by id", { ref, ownerRef }); + + const workspace = await prisma.workspace.findUnique({ + where: { + ref, + ownerRef + } + }); + + if (!workspace) { + callback({ + code: GRPCStatus.NOT_FOUND, + message: "Workspace not found" + }); + return; + } + + const response = datesMapper(workspace); + + callback(null, response); + }; + + return withErrorHandlingAndValidation(getWorkspace, V.emptySchema); +} + +export { createGetWorkspace }; diff --git a/mods/identity/src/workspaces/createInviteUserToWorkspace.ts b/mods/identity/src/workspaces/createInviteUserToWorkspace.ts new file mode 100644 index 000000000..9d35321a1 --- /dev/null +++ b/mods/identity/src/workspaces/createInviteUserToWorkspace.ts @@ -0,0 +1,193 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getAccessKeyIdFromCall, + getTokenFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { + InviteUserToWorkspaceRequest, + InviteUserToWorkspaceResponse, + WorkspaceMemberStatus +} from "@fonoster/types"; +import { status as GRPCStatus, ServerInterceptingCall } from "@grpc/grpc-js"; +import { customAlphabet } from "nanoid"; +import { createIsAdminMember } from "./createIsAdminMember"; +import { createIsWorkspaceMember } from "./createIsWorkspaceMember"; +import { Prisma } from "../db"; +import { + IDENTITY_WORKSPACE_INVITATION_URL, + IDENTITY_WORKSPACE_INVITE_EXPIRATION +} from "../envs"; +import { IdentityConfig } from "../exchanges/types"; +import { SendInvite } from "../invites"; +import { + AccessKeyIdType, + createSendEmail, + generateAccessKeyId +} from "../utils"; +import { createGenerateWorkspaceInviteToken } from "../utils/createGenerateWorkspaceInviteToken"; +import { getUserRefFromToken } from "../utils/getUserRefFromToken"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +const userIsMemberError = { + code: GRPCStatus.ALREADY_EXISTS, + message: "User is already a member of this workspace" +}; + +const inviterIsNotAdminError = { + code: GRPCStatus.PERMISSION_DENIED, + message: "Only admins or owners can invite users to a workspace" +}; + +const findUserByEmail = async (prisma: Prisma, email: string) => { + return await prisma.user.findUnique({ + where: { + email + } + }); +}; + +const createCreateUser = (prisma: Prisma) => { + return async function createUser(request: InviteUserToWorkspaceRequest) { + const { name, email, password } = request; + + return await prisma.user.create({ + data: { + name, + email, + accessKeyId: generateAccessKeyId(AccessKeyIdType.USER), + password + } + }); + }; +}; + +function createInviteUserToWorkspace( + prisma: Prisma, + identityConfig: IdentityConfig, + sendInvite: SendInvite +) { + const inviteUserToWorkspace = async ( + call: { request: InviteUserToWorkspaceRequest }, + callback: ( + error: GrpcErrorMessage, + response?: InviteUserToWorkspaceResponse + ) => void + ) => { + const token = getTokenFromCall(call as unknown as ServerInterceptingCall); + const adminRef = getUserRefFromToken(token); + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + const workspace = await prisma.workspace.findUnique({ + where: { + accessKeyId + } + }); + + const { ref: workspaceRef } = workspace; + const { request } = call; + const { email, name, role } = request; + + logger.verbose("inviting user to workspace", { + workspaceRef, + email, + role + }); + + const isAdmin = await createIsAdminMember(prisma)(workspaceRef, adminRef); + + if (!isAdmin) { + return callback(inviterIsNotAdminError); + } + + let user = await findUserByEmail(prisma, email); + + const isMember = await createIsWorkspaceMember(prisma)( + workspaceRef, + user?.ref + ); + + if (isMember) { + return callback(userIsMemberError); + } + + const oneTimePassword = customAlphabet("1234567890abcdef", 10)(); + + let isExistingUser = true; + + if (!user) { + isExistingUser = false; + + user = await createCreateUser(prisma)({ + name, + email, + password: oneTimePassword, + role + }); + } + + const newMember = await prisma.workspaceMember.create({ + data: { + userRef: user.ref, + workspaceRef, + role, + status: WorkspaceMemberStatus.PENDING + }, + include: { + workspace: true + } + }); + + const inviteeToken = await createGenerateWorkspaceInviteToken( + identityConfig + )({ + userRef: user.ref, + memberRef: newMember.ref, + accessKeyId: user.accessKeyId, + expiresIn: IDENTITY_WORKSPACE_INVITE_EXPIRATION + }); + + await sendInvite(createSendEmail(identityConfig), { + recipient: email, + oneTimePassword, + workspaceName: newMember.workspace.name, + isExistingUser, + inviteUrl: `${IDENTITY_WORKSPACE_INVITATION_URL}?token=${inviteeToken}` + }); + + callback(null, { + userRef: user?.ref, + workspaceRef + }); + }; + + return withErrorHandlingAndValidation( + inviteUserToWorkspace, + V.inviteUserToWorkspaceRequestSchema + ); +} + +export { createInviteUserToWorkspace }; diff --git a/mods/identity/src/workspaces/createIsAdminMember.ts b/mods/identity/src/workspaces/createIsAdminMember.ts new file mode 100644 index 000000000..8f4500b5d --- /dev/null +++ b/mods/identity/src/workspaces/createIsAdminMember.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { WorkspaceRoleEnum } from "@fonoster/types"; +import { Prisma } from "../db"; + +function createIsAdminMember(prisma: Prisma) { + return async function isAdminMember(workspaceRef: string, adminRef: string) { + if (!workspaceRef || !adminRef) { + return false; + } + + const workspace = await prisma.workspace.findUnique({ + where: { + ref: workspaceRef + }, + include: { + members: true + } + }); + + if (workspace?.ownerRef === adminRef) { + return true; + } + + const role = workspace?.members.find( + (member) => member.ref === adminRef + )?.role; + + return role === WorkspaceRoleEnum.ADMIN || role === WorkspaceRoleEnum.OWNER; + }; +} + +export { createIsAdminMember }; diff --git a/mods/identity/src/workspaces/createIsWorkspaceMember.ts b/mods/identity/src/workspaces/createIsWorkspaceMember.ts new file mode 100644 index 000000000..81539c23b --- /dev/null +++ b/mods/identity/src/workspaces/createIsWorkspaceMember.ts @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Prisma } from "../db"; + +function createIsWorkspaceMember(prisma: Prisma) { + return async function isWorkspaceMember( + workspaceRef: string, + userRef: string + ) { + const workspace = await prisma.workspace.findUnique({ + where: { + ref: workspaceRef + } + }); + + const isMember = await prisma.workspaceMember.findFirst({ + where: { + // Force userId to be an empty string to ensure that the query is not + // filter by workspaceRef only + userRef: userRef || "", + workspaceRef + } + }); + + const isOwner = workspace?.ownerRef === userRef; + + return !!(isMember || isOwner); + }; +} + +export { createIsWorkspaceMember }; diff --git a/mods/identity/src/workspaces/createListWorkspaces.ts b/mods/identity/src/workspaces/createListWorkspaces.ts new file mode 100644 index 000000000..ae6e7d160 --- /dev/null +++ b/mods/identity/src/workspaces/createListWorkspaces.ts @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + TokenUseEnum, + decodeToken, + GrpcErrorMessage, + getTokenFromCall, + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { ListWorkspacesResponse } from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { Prisma } from "../db"; +import { getUserRefFromToken } from "../utils/getUserRefFromToken"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createListWorkspaces(prisma: Prisma) { + const listWorkspaces = async ( + call: { request: unknown }, + callback: ( + error?: GrpcErrorMessage, + response?: ListWorkspacesResponse + ) => void + ) => { + const token = getTokenFromCall(call as unknown as ServerInterceptingCall); + const userRef = getUserRefFromToken(token); + const access = decodeToken(token); + const workspacesAccessKeyIds = access.access?.map((a) => a.accessKeyId); + + logger.verbose("list workspaces for user or apikey", { + userRef, + workspacesAccessKeyIds + }); + + const items = await prisma.workspace.findMany({ + where: { + OR: [ + { + accessKeyId: { + in: workspacesAccessKeyIds + } + }, + { + members: { + some: { + userRef + } + } + }, + { + ownerRef: userRef + } + ] + } + }); + + callback(null, { + items, + nextPageToken: items[items.length - 1]?.ref + }); + }; + + return withErrorHandlingAndValidation(listWorkspaces, V.listRequestSchema); +} + +export { createListWorkspaces }; diff --git a/mods/identity/src/workspaces/createRemoveUserFromWorkspace.ts b/mods/identity/src/workspaces/createRemoveUserFromWorkspace.ts new file mode 100644 index 000000000..da5a59e60 --- /dev/null +++ b/mods/identity/src/workspaces/createRemoveUserFromWorkspace.ts @@ -0,0 +1,102 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getAccessKeyIdFromCall, + getTokenFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { + RemoveUserFromWorkspaceRequest, + RemoveUserFromWorkspaceResponse +} from "@fonoster/types"; +import { status as GRPCStatus, ServerInterceptingCall } from "@grpc/grpc-js"; +import { createIsAdminMember } from "./createIsAdminMember"; +import { Prisma } from "../db"; +import { getUserRefFromToken } from "../utils/getUserRefFromToken"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createRemoveUserFromWorkspace(prisma: Prisma) { + const removeUserFromWorkspace = async ( + call: { request: RemoveUserFromWorkspaceRequest }, + callback: ( + error?: GrpcErrorMessage, + response?: RemoveUserFromWorkspaceResponse + ) => void + ) => { + const { request } = call; + const { userRef } = request; + + const token = getTokenFromCall(call as unknown as ServerInterceptingCall); + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + const adminRef = getUserRefFromToken(token); + const workspace = await prisma.workspace.findUnique({ + where: { + accessKeyId + } + }); + + const { ref: workspaceRef } = workspace; + + logger.verbose("removing user from workspace", { workspaceRef, userRef }); + + const isAdmin = await createIsAdminMember(prisma)(workspaceRef, adminRef); + + if (!isAdmin && adminRef !== userRef) { + return callback({ + code: GRPCStatus.PERMISSION_DENIED, + message: "Only admins or owners can remove users from a workspace" + }); + } + + const memberRef = await prisma.workspaceMember.findFirst({ + where: { + workspaceRef, + userRef + } + }); + + if (!memberRef) { + return callback({ + code: GRPCStatus.NOT_FOUND, + message: "User not found in workspace" + }); + } + + const response = await prisma.workspaceMember.delete({ + where: { + ref: memberRef?.ref + } + }); + + callback(null, response); + }; + + return withErrorHandlingAndValidation( + removeUserFromWorkspace, + V.removeUserFromWorkspaceRequestSchema + ); +} + +export { createRemoveUserFromWorkspace }; diff --git a/mods/identity/src/workspaces/createResendWorkspaceMembershipInvitation.ts b/mods/identity/src/workspaces/createResendWorkspaceMembershipInvitation.ts new file mode 100644 index 000000000..888478022 --- /dev/null +++ b/mods/identity/src/workspaces/createResendWorkspaceMembershipInvitation.ts @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getAccessKeyIdFromCall, + getTokenFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { + ResendWorkspaceMembershipInvitationRequest, + ResendWorkspaceMembershipInvitationResponse +} from "@fonoster/types"; +import { status as GRPCStatus, ServerInterceptingCall } from "@grpc/grpc-js"; +import { createIsAdminMember } from "./createIsAdminMember"; +import { Prisma } from "../db"; +import { + IDENTITY_WORKSPACE_INVITATION_URL, + IDENTITY_WORKSPACE_INVITE_EXPIRATION +} from "../envs"; +import { IdentityConfig } from "../exchanges/types"; +import { SendInvite } from "../invites"; +import { createSendEmail } from "../utils"; +import { createGenerateWorkspaceInviteToken } from "../utils/createGenerateWorkspaceInviteToken"; +import { getUserRefFromToken } from "../utils/getUserRefFromToken"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createResendWorkspaceMembershipInvitation( + prisma: Prisma, + identityConfig: IdentityConfig, + sendInvite: SendInvite +) { + const resendWorkspaceMembershipInvitation = async ( + call: { request: ResendWorkspaceMembershipInvitationRequest }, + callback: ( + error: GrpcErrorMessage, + response?: ResendWorkspaceMembershipInvitationResponse + ) => void + ) => { + const token = getTokenFromCall(call as unknown as ServerInterceptingCall); + const adminRef = getUserRefFromToken(token); + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + const workspace = await prisma.workspace.findUnique({ + where: { + accessKeyId + } + }); + + const { ref: workspaceRef } = workspace; + const { request } = call; + const { userRef: inviteeRef } = request; + + logger.verbose("resending workspace membership invitation", { + workspaceRef, + inviteeRef, + adminRef + }); + + const isAdmin = await createIsAdminMember(prisma)(workspace.ref, adminRef); + + if (!isAdmin) { + return callback({ + code: GRPCStatus.PERMISSION_DENIED, + message: "Only admins and owners can resend workspace invitations" + }); + } + + const member = await prisma.workspaceMember.findFirst({ + where: { + workspaceRef, + userRef: inviteeRef + }, + include: { + user: true, + workspace: true + } + }); + + if (!member) { + return callback({ + code: GRPCStatus.NOT_FOUND, + message: `Original invitation not found for userRef: ${inviteeRef}` + }); + } + + const inviteeToken = await createGenerateWorkspaceInviteToken( + identityConfig + )({ + userRef: member.user.ref, + memberRef: member.ref, + accessKeyId: member.user.accessKeyId, + expiresIn: IDENTITY_WORKSPACE_INVITE_EXPIRATION + }); + + await sendInvite(createSendEmail(identityConfig), { + recipient: member.user.email, + oneTimePassword: member.user.password, + workspaceName: member.workspace.name, + isExistingUser: true, + inviteUrl: `${IDENTITY_WORKSPACE_INVITATION_URL}?token=${inviteeToken}` + }); + + callback(null, { + userRef: inviteeRef + }); + }; + + return withErrorHandlingAndValidation( + resendWorkspaceMembershipInvitation, + V.resendWorkspaceMembershipInvitationRequestSchema + ); +} + +export { createResendWorkspaceMembershipInvitation }; diff --git a/mods/identity/src/workspaces/createUpdateWorkspace.ts b/mods/identity/src/workspaces/createUpdateWorkspace.ts new file mode 100644 index 000000000..20eb05155 --- /dev/null +++ b/mods/identity/src/workspaces/createUpdateWorkspace.ts @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getTokenFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject, UpdateWorkspaceRequest } from "@fonoster/types"; +import { status as GRPCStatus, ServerInterceptingCall } from "@grpc/grpc-js"; +import { createIsWorkspaceMember } from "./createIsWorkspaceMember"; +import { Prisma } from "../db"; +import { getUserRefFromToken } from "../utils/getUserRefFromToken"; + +const logger = getLogger({ service: "identity", filePath: __filename }); + +function createUpdateWorkspace(prisma: Prisma) { + const updateWorkspace = async ( + call: { request: UpdateWorkspaceRequest }, + callback: (error: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const token = getTokenFromCall(call as unknown as ServerInterceptingCall); + const userRef = getUserRefFromToken(token); + + const { request } = call; + const { ref, name } = request; + + logger.verbose("call to updateWorkspace", { ref, userRef }); + + const isMember = await createIsWorkspaceMember(prisma)(ref, userRef); + + if (!isMember) { + callback({ + code: GRPCStatus.PERMISSION_DENIED, + message: "User is not a member of the workspace" + }); + } + + await prisma.workspace.update({ + where: { + ref + }, + data: { + name + } + }); + + callback(null, { ref }); + }; + + return withErrorHandlingAndValidation( + updateWorkspace, + V.updateWorkspaceRequestSchema + ); +} + +export { createUpdateWorkspace }; diff --git a/mods/identity/src/workspaces/index.ts b/mods/identity/src/workspaces/index.ts new file mode 100644 index 000000000..7edea360c --- /dev/null +++ b/mods/identity/src/workspaces/index.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./createCreateWorkspace"; +export * from "./createDeleteWorkspace"; +export * from "./createGetWorkspace"; +export * from "./createInviteUserToWorkspace"; +export * from "./createListWorkspaces"; +export * from "./createRemoveUserFromWorkspace"; +export * from "./createResendWorkspaceMembershipInvitation"; +export * from "./createUpdateWorkspace"; diff --git a/mods/identity/test/apikeys/createApiKey.test.ts b/mods/identity/test/apikeys/createApiKey.test.ts new file mode 100644 index 000000000..e84f90181 --- /dev/null +++ b/mods/identity/test/apikeys/createApiKey.test.ts @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ApiRoleEnum } from "@fonoster/types"; +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[apikeys/createApiKey]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a new ApiKey", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + workspaceRef: "123", + role: ApiRoleEnum.WORKSPACE_ADMIN, + expiresAt: new Date().getMilliseconds() + } + }; + + const res = { + ref: "123", + accessKeyId: "accessKeyId", + accessKeySecret: "accessKeySecret" + }; + + const prisma = { + workspace: { + findUnique: sandbox.stub().resolves({ ref: "123" }) + }, + apiKey: { + create: sandbox.stub().resolves(res) + } + } as unknown as Prisma; + + const { createCreateApiKey } = await import("../../src/apikeys/createCreateApiKey"); + + // Act + await createCreateApiKey(prisma)(call, (_, response) => { + // Assert + expect(response).has.property("ref").to.be.equal("123"); + expect(response).has.property("accessKeyId").to.be.equal("accessKeyId"); + expect(response) + .has.property("accessKeySecret") + .to.be.equal("accessKeySecret"); + }); + }); + + it("should throw an error if the ApiKey already exists", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + const call = { + metadata, + request: { + workspaceRef: "123", + role: ApiRoleEnum.WORKSPACE_ADMIN, + expiresAt: new Date().getMilliseconds() + } + }; + + const prisma = { + workspace: { + findUnique: sandbox.stub().resolves({ ref: "123" }) + }, + apiKey: { + create: sandbox.stub().throws({ code: "P2002" }) + } + } as unknown as Prisma; + + const { createCreateApiKey } = await import("../../src/apikeys/createCreateApiKey"); + + // Act + await createCreateApiKey(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: grpc.status.ALREADY_EXISTS, + message: "The resource already exists" + }); + }); + }); +}); diff --git a/mods/identity/test/apikeys/deleteApiKey.test.ts b/mods/identity/test/apikeys/deleteApiKey.test.ts new file mode 100644 index 000000000..686323f14 --- /dev/null +++ b/mods/identity/test/apikeys/deleteApiKey.test.ts @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[apikeys/deleteApiKey]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should delete an ApiKey", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const res = { + ref: "123" + }; + + const prisma = { + apiKey: { + delete: sandbox.stub().resolves(res) + } + } as unknown as Prisma; + + const { createDeleteApiKey } = await import("../../src/apikeys/createDeleteApiKey"); + + // Act + await createDeleteApiKey(prisma)(call, (error, response) => { + // Assert + expect(response).to.have.property("ref", "123"); + }); + }); +}); diff --git a/mods/identity/test/invites/createInviteBody.test.ts b/mods/identity/test/invites/createInviteBody.test.ts new file mode 100644 index 000000000..57fd9d978 --- /dev/null +++ b/mods/identity/test/invites/createInviteBody.test.ts @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const WORKSPACE_NAME = "My Workspace"; + +describe("@identity[invites/createInviteBody]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a new invite body", async function () { + // Arrange + const params = { + isExistingUser: false, + workspaceName: WORKSPACE_NAME, + oneTimePassword: "123456", + inviteUrl: "http://example.com?token=jwt" + }; + + const { createInviteBody } = + // eslint-disable-next-line @typescript-eslint/no-var-requires + require("../../src/invites/createInviteBody"); + + // Act + const result = createInviteBody(params); + + // Assert + expect(result).to.be.a("string"); + expect(result).to.contain("You have been invited to join the workspace"); + expect(result).to.contain(WORKSPACE_NAME); + expect(result).to.contain("http://example.com?token=jwt"); + expect(result).to.contain("123456"); + }); + + it("should create a existing invite body", async function () { + // Arrange + const params = { + isExistingUser: true, + workspaceName: WORKSPACE_NAME, + inviteUrl: "http://example.com?token=jwt", + oneTimePassword: "123456" + }; + + const { createInviteBody } = + // eslint-disable-next-line @typescript-eslint/no-var-requires + require("../../src/invites/createInviteBody"); + // Act + const result = createInviteBody(params); + + // Assert + expect(result).to.be.a("string"); + expect(result).to.contain("Invitation to join the workspace"); + expect(result).to.contain(WORKSPACE_NAME); + expect(result).to.contain("http://example.com?token=jwt"); + expect(result).to.not.contain("123456"); + }); +}); diff --git a/mods/identity/test/invites/sendInvite.test.ts b/mods/identity/test/invites/sendInvite.test.ts new file mode 100644 index 000000000..907cb1a2b --- /dev/null +++ b/mods/identity/test/invites/sendInvite.test.ts @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[invites/sendInvite]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should send an email", async function () { + // Arrange + const sendEmail = sandbox.stub(); + const request = { + sender: "Fonoster ", + recipient: "user@example.com", + inviteUrl: "http://example.com?token=jwt", + oneTimePassword: "123456", + workspaceName: "My Workspace", + isExistingUser: false + }; + + const { sendInvite } = + // eslint-disable-next-line @typescript-eslint/no-var-requires + require("../../src/invites/sendInvite"); + + // Act + await sendInvite(sendEmail, request); + + // Assert + expect(sendEmail).to.have.been.calledOnce; + }); +}); diff --git a/mods/identity/test/users/createUser.test.ts b/mods/identity/test/users/createUser.test.ts new file mode 100644 index 000000000..1a6fc06e2 --- /dev/null +++ b/mods/identity/test/users/createUser.test.ts @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { status } from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const AVATAR_URL = "https://example.com/avatar.jpg"; + +describe("@identity[users/createUser]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a user", async function () { + // Arrange + const call = { + request: { + name: "John Doe", + email: "john@example.com", + password: "12345678", + avatar: AVATAR_URL + } + }; + + const prisma = { + user: { + create: sandbox.stub().resolves({ ref: "123" }) + } + } as unknown as Prisma; + + const { createCreateUser } = await import("../../src/users/createCreateUser"); + + // Act + await createCreateUser(prisma)(call, (error, response) => { + // Assert + expect(response).to.deep.equal({ ref: "123" }); + }); + }); + + it("should throw an error if user already exists", async function () { + // Arrange + const call = { + request: { + name: "John Doe", + email: "john@example.com", + password: "12345678", + avatar: AVATAR_URL + } + }; + + const prisma = { + user: { + create: sandbox.stub().throws({ code: "P2002" }) + } + } as unknown as Prisma; + + const { createCreateUser } = await import("../../src/users/createCreateUser"); + + // Act + await createCreateUser(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: status.ALREADY_EXISTS, + message: "The resource already exists" + }); + }); + }); + + it("should throw if a validation error occurs", async function () { + // Arrange + const call = { + request: { + name: "John Doe", + email: "malformed-email", + password: "12345678", + avatar: AVATAR_URL + } + }; + + // Doesn't matter because it will not be called + const prisma = {} as unknown as Prisma; + + const { createCreateUser } = await import("../../src/users/createCreateUser"); + + // Act + await createCreateUser(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: status.INVALID_ARGUMENT, + // eslint-disable-next-line prettier/prettier + message: "Invalid email at \"email\"" + }); + }); + }); +}); diff --git a/mods/identity/test/users/deleteUser.test.ts b/mods/identity/test/users/deleteUser.test.ts new file mode 100644 index 000000000..ed868cc42 --- /dev/null +++ b/mods/identity/test/users/deleteUser.test.ts @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[users/deleteUser]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should delete a user by id", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const prisma = { + user: { + delete: sandbox.stub().resolves() + } + } as unknown as Prisma; + + const { createDeleteUser } = await import("../../src/users/createDeleteUser"); + + // Act + const response = await new Promise((resolve, reject) => { + createDeleteUser(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(response).to.deep.equal({ ref: "123" }); + }); + + it("should throw an error if user not found", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const prisma = { + user: { + delete: sandbox.stub().throws({ code: "P2025" }) + } + } as unknown as Prisma; + + const { createDeleteUser } = await import("../../src/users/createDeleteUser"); + + // Act + await createDeleteUser(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: grpc.status.NOT_FOUND, + message: "The requested resource was not found" + }); + }); + }); +}); diff --git a/mods/identity/test/users/getUser.test.ts b/mods/identity/test/users/getUser.test.ts new file mode 100644 index 000000000..bc629d7d4 --- /dev/null +++ b/mods/identity/test/users/getUser.test.ts @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { datesMapper } from "@fonoster/common"; +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[users/getUser]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should get a user by id", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const user = { + ref: "123", + email: "john@example.com", + name: "John Doe", + avatar: "https://example.com/avatar.jpg", + createdAt: new Date(), + updatedAt: new Date() + }; + + const prisma = { + user: { + findUnique: sandbox.stub().resolves(user) + } + } as unknown as Prisma; + + const { createGetUser } = await import("../../src/users/createGetUser"); + + // Act + const response = await new Promise((resolve, reject) => { + createGetUser(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(response).to.deep.equal(datesMapper(user)); + }); + + it("should throw an error if user not found", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const prisma = { + user: { + findUnique: sandbox.stub().resolves(null) + } + } as unknown as Prisma; + + const { createGetUser } = await import("../../src/users/createGetUser"); + + // Act + await createGetUser(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: grpc.status.NOT_FOUND, + message: "User not found: 123" + }); + }); + }); +}); diff --git a/mods/identity/test/users/updateUser.test.ts b/mods/identity/test/users/updateUser.test.ts new file mode 100644 index 000000000..3f561bbc4 --- /dev/null +++ b/mods/identity/test/users/updateUser.test.ts @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; +import { TEST_TOKEN, TEST_UUID } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[users/updateUser]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should update a user", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: TEST_UUID, + name: "John Doex" + } + }; + + const prisma = { + user: { + update: sandbox.stub().resolves({ ref: TEST_UUID }) + } + } as unknown as Prisma; + + const { createUpdateUser } = await import("../../src/users/createUpdateUser"); + + // Act + const response = await new Promise((resolve, reject) => { + createUpdateUser(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(response).to.deep.equal({ ref: TEST_UUID }); + }); + + it("should throw an error if the user does not exist", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: TEST_UUID, + name: "John Doex" + } + }; + + const prisma = { + user: { + update: sandbox.stub().throws({ code: "P2025" }) + } + } as unknown as Prisma; + + const { createUpdateUser } = await import("../../src/users/createUpdateUser"); + + // Act + const response = new Promise((resolve, reject) => { + createUpdateUser(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + await expect(response).to.be.rejectedWith( + "The requested resource was not found" + ); + }); +}); diff --git a/mods/identity/test/utils.ts b/mods/identity/test/utils.ts new file mode 100644 index 000000000..ac8206e52 --- /dev/null +++ b/mods/identity/test/utils.ts @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Long-lived token for testing only +const TEST_TOKEN = + "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2Zvbm9zdGVyLmxvY2FsIiwic3ViIjoiNjM1YzBjZDgtODEyNS00ODNkLWI0NjctMDVjNTNjZTJjZDMxIiwiYXVkIjoiYXBpIiwidG9rZW5Vc2UiOiJhY2Nlc3MiLCJhY2Nlc3NLZXlJZCI6IlVTMTR3ajhxNnFsaXJ3MzMxZ2Zzd3VzZmJsaWU2aDc4dXoiLCJhY2Nlc3MiOlt7ImFjY2Vzc0tleUlkIjoiR1JhaG4wMnM4dGdkZmdoejcydmIwZno1MzhxcGI1ejM1cCIsInJvbGUiOiJPV05FUiJ9LHsiYWNjZXNzS2V5SWQiOiJHUmtnYmY4YW1pbnl3dWV2dXBiZHB4bDYzNmtjM2N5YmhvIiwicm9sZSI6Ik9XTkVSIn1dLCJpYXQiOjE3MTQ0MzM3MzZ9.eG6UEe8nBncu1I8TtytG5bModK42JxuSLCK74eLzUb-7MLowza8ZSfoHPHSPu5j1Wy_nj8NWa1u1SvqTfW-8inoL8Y_Mawl_u9zSM09Co85RQOI_bj7huGB7v0UECLfKyd7cAo_9wGB9TDDDX5Qo66bQz49hu_8zed8e6RzJXYRC5-5TBlyYdw3o7yHUXL5t8tFxDhT7U61kg0eVjPPZCAUiyohK74Zxdv1Z9RCfWTt9kUYXReqOUvhAFzL5Um5KwNdRnWwFRz_3-Msui2axAsZ6ztGoAvw_GhdlAminGEq7FILVCh6OHeOESAYo-qreAANmbwfBS8qNsglTiPAUEw"; + +const TEST_UUID = "635c0cd8-8125-483d-b467-05c53ce2cd31"; + +const TEST_PRIVATE_KEY = `-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCcuIwQMqyljT5Q +hm6brZZb/82dD8k6rX8WWfGdtvz01As6zQJWDoIsvmmair/5VUM3BCUpEWre5ust +JabH1XwRqTM4gPZnjtStaAaFv4aethh5hNUlPQHNR7nBvvTvP0KH+5vtdTXkrsyc +WojONuHrSu8WyWZR4ZNt9xdAqHs3FY14cncaBQfeAMRvwueB8z5wkJLYIOMoXvMU +JsycHS/DhQ/QpQUFJGIKHJtFOR6nEzh7nU+/jnEl4x4dZPM+k6okozJVDqO6ECpv +NdvVb4mdeMmtsbMd4YxijUY0lV05icOTHErPz4pbTDe5/FuDdOIvoSo0lzMHfwmR +hI7hu1ShAgMBAAECggEAS3br7uLP0pn8Lx9EhI8mT1+SXTZcQfaIMzWVTEnwbV3r +mGFeZhzvXudDh6iXP1LonkXPNQLPkMzl4qP2NtScPQ7Z/LPQstYKoANu3Jl4k9UA +XQdy8U76nqQSlPJEFC5EdaFZGJMvo9Ht8b4AkTfJOpknHrRVIkl6SeHI3xgh2Mg1 +azaOVb11Kawg1181Vh72o8hxLzi4DgoyHUSoip/ke5fw4NlT2tjA6b+JEet972BO +im4anv6LQnjpHd8ew6hxF8ZYW2NA7/MmzMN903cnhdrj6V83YLbj81j+sc7ZFrTR +IEBQw0V9LkpWAYbMlw452JtrklZKEcxG5IORKBnkdwKBgQDSHb/Ojxnbujw2SjAF +dD0jqlji7cAvhuRR/vmfvrU9LUKGDQQCktaPaMUdrgiaH3krifJTEAKYiRFmBbSt +rvTPw/zddbtpe03bA5y+UTfIM3t64PaL53B2O75BK73Cnfgg1Z7HGJwbACOExKaO +SEUyUw4wIeXC8YcnwkWRJf6nTwKBgQC+8c7CMOIeuaVgQZWvIG+VVL9vxGW2d8rl +4NnIm7XKipMvgXj0O4ikXdIK7vZ31+PbFrYD4FoSYyojFfZ6OiDxIWQ4ZIaxTUZp +M5THUzAeNYlvdQyw0OZC8vwGksoXAvODt/uLkD6EQDO7t2/RBVCXOvgkcNoul2lW +YREabcZJDwKBgG6p9ny/R9o/czkQx8wHla/0J06V89PUUuqQxT6KfgBTlybtMgB8 +//6WKsNgBu3Nx87Tn8p5szRNdNlsBeY4MH5A9ixZtrRumenRNDvUoPGTk+R7Gb9D +zSqoeqLue8pF0wrQGAk6f/WElDB4NlTX4YII1n8pS07qUMny+xrgjQfnAoGBALcV +djF+26GoUeismhCUYklmPDS3tOszi6nFYizXGIU/QAeh9k8AMnGfwAFZxZt9tu3g +pd+ro9HToZiIu4/Q4rsyUD0+LmQc+zFuEu7YVd/xZ3kmW2fCtbZl8799yiYsXz/i +DmBwi3EVekU4iw95MCABm+KdDqbz6T24zsRvk1uDAoGBAM3hqxQVlDWxofffUeWy +Bj3RoUdPJklYHctYB+Mk4JfiOq8j575Q8lmYMIFY+2HbOwlswzo58H79H2dCkfFz +a3EQQlZeiw2fy4yA6wDeEYqdeBT3MobZonlVwnVc9Xcmgvk2YsfZS1pDrrx7J10V +vrlevNo+Q3KlffS4aP/dec67 +-----END PRIVATE KEY-----`; + +export { TEST_PRIVATE_KEY, TEST_TOKEN, TEST_UUID }; diff --git a/mods/identity/test/workspaces/createWorkspace.test.ts b/mods/identity/test/workspaces/createWorkspace.test.ts new file mode 100644 index 000000000..ce8da0c6b --- /dev/null +++ b/mods/identity/test/workspaces/createWorkspace.test.ts @@ -0,0 +1,123 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[workspaces/createWorkspace]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a workspace", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + name: "My Workspace" + } + }; + + const prisma = { + workspace: { + create: sandbox.stub().resolves({ ref: "123" }) + } + } as unknown as Prisma; + + const { createCreateWorkspace } = await import( + "../../src/workspaces/createCreateWorkspace" + ); + + // Act + await createCreateWorkspace(prisma)(call, (_, response) => { + // Assert + expect(response).to.deep.equal({ ref: "123" }); + }); + }); + + it("should throw an error if the workspace already exists", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + const call = { + metadata, + request: { + name: "My Workspace" + } + }; + + const prisma = { + workspace: { + create: sandbox.stub().throws({ code: "P2002" }) + } + } as unknown as Prisma; + + const { createCreateWorkspace } = await import( + "../../src/workspaces/createCreateWorkspace" + ); + + // Act + await createCreateWorkspace(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: grpc.status.ALREADY_EXISTS, + message: "The resource already exists" + }); + }); + }); + + it("should throw if a validation error occurs", async function () { + // Arrange + const call = { + request: { + name: "" + } + }; + + // Doesn't matter because it will not be called + const prisma = {} as unknown as Prisma; + + const { createCreateWorkspace } = await import( + "../../src/workspaces/createCreateWorkspace" + ); + + // Act + await createCreateWorkspace(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: grpc.status.INVALID_ARGUMENT, + message: + // eslint-disable-next-line prettier/prettier + "The name is required at \"name\"" + }); + }); + }); +}); diff --git a/mods/identity/test/workspaces/deleteWorkspace.test.ts b/mods/identity/test/workspaces/deleteWorkspace.test.ts new file mode 100644 index 000000000..2f4e23046 --- /dev/null +++ b/mods/identity/test/workspaces/deleteWorkspace.test.ts @@ -0,0 +1,102 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[workspaces/deleteWorkspace]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should delete a workspace by id", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const prisma = { + workspace: { + delete: sandbox.stub().resolves() + } + } as unknown as Prisma; + + const { createDeleteWorkspace } = await import( + "../../src/workspaces/createDeleteWorkspace" + ); + + // Act + const response = await new Promise((resolve, reject) => { + createDeleteWorkspace(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(response).to.deep.equal({ ref: "123" }); + }); + + it("should throw an error if workspace not found", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const prisma = { + workspace: { + delete: sandbox.stub().throws({ code: "P2025" }) + } + } as unknown as Prisma; + + const { createDeleteWorkspace } = await import( + "../../src/workspaces/createDeleteWorkspace" + ); + + // Act + await createDeleteWorkspace(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: grpc.status.NOT_FOUND, + message: "The requested resource was not found" + }); + }); + }); +}); diff --git a/mods/identity/test/workspaces/getWorkspace.test.ts b/mods/identity/test/workspaces/getWorkspace.test.ts new file mode 100644 index 000000000..11c9edc74 --- /dev/null +++ b/mods/identity/test/workspaces/getWorkspace.test.ts @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { datesMapper } from "@fonoster/common"; +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[workspaces/getWorkspace]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should get a workspace by id", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const workspace = { + ref: "123", + name: "My Workspace", + ownerRef: "123", + createdAt: new Date(), + updatedAt: new Date() + }; + + const prisma = { + workspace: { + findUnique: sandbox.stub().resolves(workspace) + } + } as unknown as Prisma; + + const { createGetWorkspace } = await import("../../src/workspaces/createGetWorkspace"); + + // Act + const response = await new Promise((resolve, reject) => { + createGetWorkspace(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(response).to.deep.equal(datesMapper(workspace)); + }); + + it("should throw an error if workspace not found", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const prisma = { + workspace: { + findUnique: sandbox.stub().resolves(null) + } + } as unknown as Prisma; + + const { createGetWorkspace } = await import("../../src/workspaces/createGetWorkspace"); + + // Act + await createGetWorkspace(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: grpc.status.NOT_FOUND, + message: "Workspace not found" + }); + }); + }); +}); diff --git a/mods/identity/test/workspaces/inviteUserToWorkspace.test.ts b/mods/identity/test/workspaces/inviteUserToWorkspace.test.ts new file mode 100644 index 000000000..f83227e62 --- /dev/null +++ b/mods/identity/test/workspaces/inviteUserToWorkspace.test.ts @@ -0,0 +1,223 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { WorkspaceRoleEnum } from "@fonoster/types"; +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; +import { IdentityConfig } from "../../src/exchanges/types"; +import { TEST_PRIVATE_KEY, TEST_TOKEN, TEST_UUID } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const workspaceName = "Test Workspace"; +const workspaceOwner = "635c0cd8-8125-483d-b467-05c53ce2cd31"; +const inviteRequest = { + workspaceRef: "1", + email: "john@example.com", + name: "John Doe", + role: WorkspaceRoleEnum.ADMIN, + password: "12345678" +}; + +describe("@identity[workspace/inviteUserToWorkspace]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should invite a user to a workspace", async function () { + // Arrange + const sendInvite = sandbox.stub(); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: inviteRequest + }; + + const identityConfig = { + smtpConfig: { + host: "smtp.example.com", + port: 587, + secure: false, + sender: "Fonoster ", + auth: {} + }, + privateKey: TEST_PRIVATE_KEY + } as IdentityConfig; + + const prisma = { + user: { + findUnique: sandbox.stub().resolves(), + create: sandbox.stub().resolves({ ref: TEST_UUID }) + }, + workspaceMember: { + create: sandbox.stub().resolves({ workspace: { name: workspaceName } }), + findFirst: sandbox.stub().resolves() + }, + workspace: { + findUnique: sandbox.stub().resolves({ + ref: TEST_UUID, + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p", + ownerRef: workspaceOwner, + members: [] + }) + } + } as unknown as Prisma; + + const { createInviteUserToWorkspace } = await import( + "../../src/workspaces/createInviteUserToWorkspace" + ); + + // Act + await createInviteUserToWorkspace( + prisma, + identityConfig, + sendInvite + )(call, () => {}); + + // Assert + expect(sendInvite).to.have.been.calledOnce; + // expect(prisma.user.create).to.have.been.calledOnce; + // expect(prisma.workspaceMember.create).to.have.been.calledOnce; + }); + + it("should return an error if the user is already a member", async function () { + // Arrange + const sendInvite = sandbox.stub(); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: inviteRequest + }; + + const identityConfig = { + smtpConfig: { + host: "smtp.example.com", + port: 587, + secure: false, + sender: "Fonoster ", + auth: {} + }, + privateKey: TEST_PRIVATE_KEY + } as IdentityConfig; + + const prisma = { + user: { + findUnique: sandbox.stub().resolves({ ref: TEST_TOKEN }), + create: sandbox.stub().resolves() + }, + workspaceMember: { + create: sandbox.stub().resolves({ workspace: { name: workspaceName } }), + findFirst: sandbox.stub().resolves({ ref: TEST_TOKEN }) + }, + workspace: { + findUnique: sandbox.stub().resolves({ + ref: TEST_TOKEN, + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p", + ownerRef: workspaceOwner, + members: [] + }) + } + } as unknown as Prisma; + + const { createInviteUserToWorkspace } = await import( + "../../src/workspaces/createInviteUserToWorkspace" + ); + + // Act + const callback = sandbox.stub(); + await createInviteUserToWorkspace( + prisma, + identityConfig, + sendInvite + )(call, callback); + + // Assert + expect(callback).to.have.been.calledOnceWith({ + code: grpc.status.ALREADY_EXISTS, + message: "User is already a member of this workspace" + }); + expect(sendInvite).to.not.have.been.called; + expect(prisma.user.create).to.not.have.been.not.called; + expect(prisma.workspaceMember.create).to.not.have.been.called; + }); + + it("should return an error if the inviter is not an admin", async function () { + // Arrange + const sendInvite = sandbox.stub(); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const identityConfig = {} as IdentityConfig; + + const call = { + metadata, + request: inviteRequest + }; + + const prisma = { + user: { + findUnique: sandbox.stub().resolves(), + create: sandbox.stub().resolves({ ref: TEST_UUID }) + }, + workspaceMember: { + create: sandbox.stub().resolves({ workspace: { name: workspaceName } }), + findFirst: sandbox.stub().resolves() + }, + workspace: { + findUnique: sandbox.stub().resolves({ + ref: TEST_UUID, + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p", + ownerRef: "another-user-id", + members: [] + }) + } + } as unknown as Prisma; + + const { createInviteUserToWorkspace } = await import( + "../../src/workspaces/createInviteUserToWorkspace" + ); + + // Act + const callback = sandbox.stub(); + await createInviteUserToWorkspace( + prisma, + identityConfig, + sendInvite + )(call, callback); + + // Assert + expect(callback).to.have.been.calledOnceWith({ + code: grpc.status.PERMISSION_DENIED, + message: "Only admins or owners can invite users to a workspace" + }); + expect(sendInvite).to.not.have.been.called; + expect(prisma.user.create).to.not.have.been.not.called; + expect(prisma.workspaceMember.create).to.not.have.been.called; + }); +}); diff --git a/mods/identity/test/workspaces/isWorkspaceMember.test.ts b/mods/identity/test/workspaces/isWorkspaceMember.test.ts new file mode 100644 index 000000000..4b044f704 --- /dev/null +++ b/mods/identity/test/workspaces/isWorkspaceMember.test.ts @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[workspaces/isWorkspaceMember]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should return true if user is the owner of the workspace", async function () { + // Arrange + const prisma = { + workspace: { + findUnique: sandbox.stub().resolves({ ownerRef: "123" }) + }, + workspaceMember: { + findFirst: sandbox.stub().resolves() + } + } as unknown as Prisma; + + const { createIsWorkspaceMember } = await import( + "../../src/workspaces/createIsWorkspaceMember" + ); + + // Act + const result = await createIsWorkspaceMember(prisma)("123", "123"); + + // Assert + expect(result).to.be.true; + }); + + it("should return true if user is a member of the workspace", async function () { + // Arrange + const prisma = { + workspace: { + findUnique: sandbox.stub().resolves() + }, + workspaceMember: { + findFirst: sandbox.stub().resolves({}) + } + } as unknown as Prisma; + + const { createIsWorkspaceMember } = await import( + "../../src/workspaces/createIsWorkspaceMember" + ); + + // Act + const result = await createIsWorkspaceMember(prisma)("123", "123"); + + // Assert + expect(result).to.be.true; + }); + + it("should return false if user is not a member of the workspace", async function () { + // Arrange + const prisma = { + workspace: { + findUnique: sandbox.stub().resolves() + }, + workspaceMember: { + findFirst: sandbox.stub().resolves() + } + } as unknown as Prisma; + + const { createIsWorkspaceMember } = await import( + "../../src/workspaces/createIsWorkspaceMember" + ); + + // Act + const result = await createIsWorkspaceMember(prisma)("123", "123"); + + // Assert + expect(result).to.be.false; + }); +}); diff --git a/mods/identity/test/workspaces/listWorkspaces.test.ts b/mods/identity/test/workspaces/listWorkspaces.test.ts new file mode 100644 index 000000000..379f17fac --- /dev/null +++ b/mods/identity/test/workspaces/listWorkspaces.test.ts @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[workspaces/listWorkspaces]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should list workspaces", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: {} + }; + + const workspaces = [ + { + ref: "123", + name: "My Workspace", + ownerRef: "123", + createdAt: new Date(), + updatedAt: new Date() + } + ]; + + const prisma = { + workspace: { + findMany: sandbox.stub().resolves(workspaces) + } + } as unknown as Prisma; + + const { createListWorkspaces } = await import( + "../../src/workspaces/createListWorkspaces" + ); + + // Act + const response = (await new Promise((resolve, reject) => { + createListWorkspaces(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response as { items: unknown[] }); + }); + })) as { items: unknown[] }; + + // Assert + expect(response).to.have.property("items"); + expect(response).to.have.property("nextPageToken"); + expect(response.items.length).to.be.greaterThan(0); + }); + + it("should return an empty array if no workspaces found", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: {} + }; + + const prisma = { + workspace: { + findMany: sandbox.stub().resolves([]) + } + } as unknown as Prisma; + + const { createListWorkspaces } = await import( + "../../src/workspaces/createListWorkspaces" + ); + + // Act + const response = (await new Promise((resolve, reject) => { + createListWorkspaces(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response as { items: unknown[] }); + }); + })) as { items: unknown[] }; + + // Assert + expect(response).to.have.property("items"); + expect(response.items.length).to.equal(0); + }); +}); diff --git a/mods/identity/test/workspaces/removeUserFromWorkspace.test.ts b/mods/identity/test/workspaces/removeUserFromWorkspace.test.ts new file mode 100644 index 000000000..29b56fce2 --- /dev/null +++ b/mods/identity/test/workspaces/removeUserFromWorkspace.test.ts @@ -0,0 +1,123 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { WorkspaceRoleEnum } from "@fonoster/types"; +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; +import { TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[workspace/removeUserFromWorkspace]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should remove a user from a workspace", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + const userRef = "635c0cd8-8125-483d-b467-05c53ce2cd31"; + + const call = { + metadata, + request: { + workspaceRef: "123", + userRef + } + }; + + const prisma = { + workspaceMember: { + findFirst: sandbox.stub().resolves({ ref: "123" }), + delete: sandbox.stub().resolves({ ref: "123" }) + }, + workspace: { + findUnique: sandbox.stub().resolves({ + ref: "123", + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p", + ownerRef: userRef, + members: [{ userRef, role: WorkspaceRoleEnum.ADMIN }] + }) + } + } as unknown as Prisma; + + const { createRemoveUserFromWorkspace } = await import( + "../../src/workspaces/createRemoveUserFromWorkspace" + ); + + // Act + const response = await new Promise((resolve, reject) => { + createRemoveUserFromWorkspace(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(response).to.deep.equal({ ref: "123" }); + }); + + it("should throw a permission denied error", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + const userRef = "635c0cd8-8125-483d-b467-05c53ce2cd30"; + + const call = { + metadata, + request: { + userRef + } + }; + + const prisma = { + workspace: { + findUnique: sandbox.stub().resolves({ + ownerRef: "another-user-id", + members: [{ userId: "another-user-id", role: WorkspaceRoleEnum.USER }] + }) + }, + workspaceMember: { + findFirst: sandbox.stub().resolves({ ref: "123" }), + delete: sandbox.stub().resolves({ ref: "123" }) + } + } as unknown as Prisma; + + const { createRemoveUserFromWorkspace } = await import( + "../../src/workspaces/createRemoveUserFromWorkspace" + ); + + // Act + // FIXME: This should be a promise + await createRemoveUserFromWorkspace(prisma)(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: grpc.status.PERMISSION_DENIED, + message: "Only admins or owners can remove users from a workspace" + }); + }); + }); +}); diff --git a/mods/identity/test/workspaces/resendWorkspaceMembershipInvitation.test.ts b/mods/identity/test/workspaces/resendWorkspaceMembershipInvitation.test.ts new file mode 100644 index 000000000..bd26d22cf --- /dev/null +++ b/mods/identity/test/workspaces/resendWorkspaceMembershipInvitation.test.ts @@ -0,0 +1,158 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; +import { IdentityConfig } from "../../src/exchanges/types"; +import { TEST_PRIVATE_KEY, TEST_TOKEN } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[workspace/resendWorkspaceMembershipInvitation]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should resend a workspace membership invitation", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + const userRef = "635c0cd8-8125-483d-b467-05c53ce2cd31"; + + const call = { + metadata, + request: { + userRef + } + }; + + const identityConfig = { + smtpConfig: { + host: "smtp.example.com", + port: 587, + secure: true, + sender: "Fonoster ", + auth: {} + }, + privateKey: TEST_PRIVATE_KEY + } as IdentityConfig; + + const prisma = { + workspace: { + findUnique: sandbox.stub().resolves({ + ref: "123", + ownerRef: userRef, + members: [ + { + userRef, + role: "ADMIN" + } + ] + }) + }, + workspaceMember: { + findFirst: sandbox.stub().resolves({ + user: { + email: "john@example.com", + password: "123456" + }, + workspace: { + name: "Test Workspace" + } + }) + } + } as unknown as Prisma; + + const sendInvite = sandbox.stub().resolves(); + + // Act + const { createResendWorkspaceMembershipInvitation } = await import( + "../../src/workspaces/createResendWorkspaceMembershipInvitation" + ); + + const callback = sandbox.stub(); + + await createResendWorkspaceMembershipInvitation( + prisma, + identityConfig, + sendInvite + )(call, callback); + + // Assert + expect(callback).to.have.been.calledOnceWith(null, { + userRef + }); + }); + + it("should return PERMISSION_DENIED if user is not an admin", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + const userRef = "635c0cd8-8125-483d-b467-05c53ce2cd31"; + + const call = { + metadata, + request: { + workspaceRef: "123", + userRef + } + }; + + const identity = {} as IdentityConfig; + + const prisma = { + workspace: { + findUnique: sandbox.stub().resolves({ + ownerRef: "another-user", + members: [ + { + userRef, + role: "USER" + } + ] + }) + } + } as unknown as Prisma; + + const sendInvite = sandbox.stub().resolves(); + + // Act + const { createResendWorkspaceMembershipInvitation } = await import( + "../../src/workspaces/createResendWorkspaceMembershipInvitation" + ); + + createResendWorkspaceMembershipInvitation( + prisma, + identity, + sendInvite + )(call, (error) => { + // Assert + expect(error).to.deep.equal({ + code: grpc.status.PERMISSION_DENIED, + message: "Only admins or owners can remove users from a workspace" + }); + }); + }); +}); diff --git a/mods/identity/test/workspaces/updateWorkspace.test.ts b/mods/identity/test/workspaces/updateWorkspace.test.ts new file mode 100644 index 000000000..9b26fd619 --- /dev/null +++ b/mods/identity/test/workspaces/updateWorkspace.test.ts @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { Prisma } from "../../src/db"; +import { TEST_TOKEN, TEST_UUID } from "../utils"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@identity[workspace/updateWorkspace]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should update a workspace", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: TEST_UUID, + name: "My Workspacex" + } + }; + + const prisma = { + workspace: { + update: sandbox.stub().resolves({ ref: TEST_UUID }), + findUnique: sandbox.stub().resolves({ ownerRef: TEST_UUID }) + }, + workspaceMember: { + findFirst: sandbox.stub().resolves({}) + } + } as unknown as Prisma; + + const { createUpdateWorkspace } = await import( + "../../src/workspaces/createUpdateWorkspace" + ); + + // Act + const response = await new Promise((resolve, reject) => { + createUpdateWorkspace(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + expect(response).to.deep.equal({ ref: TEST_UUID }); + }); + + it("should throw an error if the user does not exist", async function () { + // Arrange + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const call = { + metadata, + request: { + ref: TEST_UUID, + name: "John Doex" + } + }; + + const prisma = { + user: { + update: sandbox.stub().throws({ code: "P2025" }) + } + } as unknown as Prisma; + + const { createUpdateUser } = await import("../../src/users/createUpdateUser"); + + // Act + const response = new Promise((resolve, reject) => { + createUpdateUser(prisma)(call, (error, response) => { + if (error) return reject(error); + resolve(response); + }); + }); + + // Assert + await expect(response).to.be.rejectedWith( + "The requested resource was not found" + ); + }); +}); diff --git a/mods/identity/tsconfig.json b/mods/identity/tsconfig.json new file mode 100644 index 000000000..24c298fc5 --- /dev/null +++ b/mods/identity/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "references": [ + { + "path": "../logger", + }, + { + "path": "../common", + }, + { + "path": "../types", + } + ], + "exclude": ["node_modules", "dist", "test"] +} diff --git a/mods/limiter/.lerna-changed-buster-192 b/mods/limiter/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/limiter/.npmignore b/mods/limiter/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/limiter/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/limiter/Dockerfile b/mods/limiter/Dockerfile deleted file mode 100644 index ffc37527f..000000000 --- a/mods/limiter/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs \ - && npm install -g fonoster-*.tgz \ - && apk del npm git - -USER fonoster - -CMD ["run_limiter"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_limiter" ] \ No newline at end of file diff --git a/mods/limiter/package-lock.json b/mods/limiter/package-lock.json deleted file mode 100644 index a61fb2be6..000000000 --- a/mods/limiter/package-lock.json +++ /dev/null @@ -1,725 +0,0 @@ -{ - "name": "@fonoster/limiter", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/limiter", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@grpc/grpc-js": "^1.3.7", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_limiter": "dist/service/healthcheck.js", - "run_limiter": "dist/service/runner.js" - } - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - }, - "devDependencies": { - "minipass": "3.3.4" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/grpc-health-check": "^3.1.1", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.3.18", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "../projects": { - "name": "@fonoster/projects", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_projects": "dist/service/healthcheck.js", - "run_projects": "dist/service/runner.js" - } - }, - "../users": { - "name": "@fonoster/users", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.18", - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/core": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bcrypt": "^5.0.1", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_users": "dist/service/healthcheck.js", - "run_users": "dist/service/runner.js" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/node": { - "version": "18.11.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.10.tgz", - "integrity": "sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ==" - }, - "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/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/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/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/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/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/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/google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/protobufjs/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "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/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/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/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/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/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" - } - } - }, - "dependencies": { - "@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "requires": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "@types/node": { - "version": "18.11.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.10.tgz", - "integrity": "sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ==" - }, - "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" - } - }, - "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" - } - }, - "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==" - }, - "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==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "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==" - }, - "google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - } - } - }, - "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==" - }, - "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" - } - }, - "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==" - } - } -} diff --git a/mods/limiter/package.json b/mods/limiter/package.json deleted file mode 100644 index 61c898394..000000000 --- a/mods/limiter/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "@fonoster/limiter", - "version": "0.3.22", - "description": "Limiter Module", - "author": "Fonoster Inc", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/service/runner" - }, - "bin": { - "run_limiter": "dist/service/runner.js", - "healthcheck_limiter": "dist/service/healthcheck.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/errors": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@fonoster/projects": "^0.3.22", - "@fonoster/users": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/limiter/src/service/healthcheck.ts b/mods/limiter/src/service/healthcheck.ts deleted file mode 100644 index a8988fbb7..000000000 --- a/mods/limiter/src/service/healthcheck.ts +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonos - * - * This file is part of Project Fonos - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -healthcheck(); diff --git a/mods/limiter/src/service/limiter.ts b/mods/limiter/src/service/limiter.ts deleted file mode 100644 index 88edfe8bc..000000000 --- a/mods/limiter/src/service/limiter.ts +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import grpc from "@grpc/grpc-js"; -import { - CheckAuthorizedRequest, - CheckAuthorizedResponse -} from "@fonoster/auth/dist/service/protos/auth_pb"; -import { - ILimiterServer, - ILimiterService, - LimiterService -} from "@fonoster/auth/dist/service/protos/auth_grpc_pb"; -import { - getLimiters, - getLimiterByName, - getLimit, - getResourceCount, - getUserByAccessKeyId -} from "../utils/utils"; -import { Limiter } from "./types"; -import { ErrorCodes, FonosterError } from "@fonoster/errors"; -import { UserStatus } from "@fonoster/users/dist/service/types"; -import { getAccessKeyId, getRedisConnection, routr } from "@fonoster/core"; - -const redis = getRedisConnection(); -const limiters: Limiter[] = getLimiters(); - -/* eslint-disable require-jsdoc */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ - -class LimiterServer implements ILimiterServer { - [name: string]: grpc.UntypedHandleCall; - - async checkAuthorized( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - const accessKeyId = getAccessKeyId(call); - - // Special case for limiter - // NOTE: Perhaps we should avoid calling the limiter if the accessKeyId === internal - if (accessKeyId === "internal") { - const response = new CheckAuthorizedResponse(); - response.setAuthorized(true); - callback(null, response); - return; - } - - const user = await getUserByAccessKeyId(redis)(accessKeyId); - const limiter = getLimiterByName(limiters)(user.getLimiter()); - const limit = getLimit(limiter, call.request.getPath()); - - if (limit) { - const userStatus = user.getStatus() - ? user.getStatus() - : UserStatus.ACTIVE; - - if (limiter.allowedStatus.toLowerCase() != userStatus.toLowerCase()) { - return callback( - new FonosterError( - `Permission denied due to account status (${user.getStatus()})`, - ErrorCodes.PERMISSION_DENIED - ) - ); - } - - const resourceCount = await getResourceCount(redis, routr)( - user.getAccessKeyId(), - limit.resource - ); - - if (resourceCount >= limit.limit) { - return callback( - new FonosterError( - `Permission denied. Your account only allows for ${limit.limit} ${limit.resource}s.`, - ErrorCodes.PERMISSION_DENIED - ) - ); - } - } - - const response = new CheckAuthorizedResponse(); - response.setAuthorized(true); - callback(null, response); - } -} - -export { LimiterServer as default, ILimiterService, LimiterService }; diff --git a/mods/limiter/src/service/runner.ts b/mods/limiter/src/service/runner.ts deleted file mode 100644 index 47d9db959..000000000 --- a/mods/limiter/src/service/runner.ts +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Tracer as T } from "@fonoster/common"; -T.init("auth-service"); - -import { LimiterService } from "@fonoster/auth/dist/service/protos/auth_grpc_pb"; -import { runServices } from "@fonoster/common"; -import LimiterServer from "./limiter"; - -const services = [ - { - name: "limiter", - version: "v1beta1", - service: LimiterService, - server: new LimiterServer() - } -]; - -runServices(services); diff --git a/mods/limiter/src/service/types.ts b/mods/limiter/src/service/types.ts deleted file mode 100644 index 9cb875b18..000000000 --- a/mods/limiter/src/service/types.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { UserStatus } from "@fonoster/users/dist/service/types"; - -export enum TimeUnit { - DAY = "day", - MONTH = "month" -} - -export interface Limit { - path: string; - resource: string; - limit: number; - timeUnit?: TimeUnit; -} - -export interface Limiter { - name: string; - allowedStatus: UserStatus; - limits: Limit[]; -} - -export interface RedisClient { - get(key: string): Promise; - smembers(key: string): Promise; -} - -export interface RoutrClient { - connect: () => Promise; - resourceType: (resourceType: string) => RoutrClient; - list: ( - { itemsPerPage: number }, - id: string - ) => Promise<{ meta: { totalItems: number } }>; -} - -export enum RESOURCE { - PROVIDER = "provider", - PROVIDER_ALIAS = "gateways", - AGENT = "agent", - DOMAIN = "domain", - PROJECT = "project", - NUMBER = "number" -} - -export const ROUTR_RESOURCES = [ - RESOURCE.AGENT, - RESOURCE.DOMAIN, - RESOURCE.NUMBER, - RESOURCE.PROVIDER -]; diff --git a/mods/limiter/src/utils/utils.ts b/mods/limiter/src/utils/utils.ts deleted file mode 100644 index 326fec990..000000000 --- a/mods/limiter/src/utils/utils.ts +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import userDecoder from "@fonoster/users/dist/service/decoder"; -import UserPB from "@fonoster/users/dist/service/protos/users_pb"; -import { UserLimiter } from "@fonoster/users/dist/service/types"; -import { - Limit, - Limiter, - RedisClient, - RESOURCE, - RoutrClient, - ROUTR_RESOURCES -} from "../service/types"; -import logger from "@fonoster/logger"; - -/* eslint-disable require-jsdoc */ - -export function getUserByAccessKeyId(redis: RedisClient) { - return async (accessKeyId: string): Promise => { - // Will return User or Project - const jsonStr = await redis.get(accessKeyId); - if (!jsonStr) { - return null; - } - - if (!accessKeyId.startsWith("PJ")) { - return userDecoder(jsonStr); - } - - return userDecoder( - await redis.get((JSON.parse(jsonStr) as { userRef: string }).userRef) - ); - }; -} - -export function getLimiterByName(limiters: Limiter[]) { - return (limiterName?: string): Limiter => { - const lname = limiterName ? limiterName : UserLimiter.DEFAULT; - const limiter = limiters?.find( - (l) => l.name.toLowerCase() === lname.toLowerCase() - ); - return limiter; - }; -} - -export function getLimit(limiter: Limiter, path: string): Limit { - return limiter?.limits?.find((l) => l.path === path); -} - -export function getResourceCount(redis: RedisClient, routr: RoutrClient) { - return async (userAccessKeyId: string, resource: string): Promise => { - const pAccessKeyIds = await redis.smembers("u_" + userAccessKeyId); - - if (resource?.toLowerCase() === RESOURCE.PROJECT) { - return pAccessKeyIds.length; - } - - if ( - ROUTR_RESOURCES.map((r) => r.toString()).includes(resource?.toLowerCase()) - ) { - const res = - resource.toLowerCase() === RESOURCE.PROVIDER - ? RESOURCE.PROVIDER_ALIAS - : `${resource.toLowerCase()}s`; - - await routr.connect(); - routr.resourceType(res); - - return ( - await Promise.all( - pAccessKeyIds.map(async (id: string) => { - const result = await routr.list( - { - itemsPerPage: 10000 - }, - id - ); - return result.meta.totalItems; - }) - ) - ).reduce((prev: number, cur: number) => prev + cur, 0); - } - - return 0; - }; -} - -export function getLimiters(): Limiter[] { - const path = process.env.LIMITERS_PATH || "/home/fonoster/limiters.json"; - try { - // eslint-disable-next-line @typescript-eslint/no-var-requires - return require(path) as Limiter[]; - } catch (e) { - logger.info( - `@fonoster/limiter unable to open limiter configuration at '${path}' ; starting without limiters` - ); - return []; - } -} diff --git a/mods/limiter/test/limiter.unit.test.ts b/mods/limiter/test/limiter.unit.test.ts deleted file mode 100644 index ed304d994..000000000 --- a/mods/limiter/test/limiter.unit.test.ts +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { - getUserByAccessKeyId, - getLimiterByName, - getResourceCount -} from "../src/utils/utils"; -import * as userDecoder from "@fonoster/users/dist/service/decoder"; -import { Limiter, RoutrClient } from "../src/service/types"; -import { UserStatus } from "@fonoster/users/dist/service/types"; -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -const routr = { - connect: () => null, - resourceType: () => null, - list: sandbox - .stub() - .onCall(0) - .resolves({ - meta: { - totalItems: 1 - } - }) - .onCall(1) - .resolves({ - meta: { - totalItems: 2 - } - }) -}; - -describe("@fonoster/limiter", () => { - afterEach(() => sandbox.restore()); - - describe("getUserByAccessKeyId", () => { - it("gets null because json object was undefined", async () => { - const redisClient = { - get: sandbox.stub().resolves(null), - smembers: sandbox.stub().resolves(null) - }; - const user = await getUserByAccessKeyId(redisClient)("US123"); - expect(user).to.be.null; - }); - - it("should call userDecoder once becase id starts with US", async () => { - const redisClient = { - get: sandbox.stub().resolves( - JSON.stringify({ - ref: "US123", - accessKeyId: "US123", - email: "test@fonoster.com", - name: "Test User", - avatar: "https://avatar.com/test.png", - createTime: Date.now(), - updateTime: Date.now() - }) - ), - smembers: sandbox.stub().resolves(null) - }; - - const userDecoderSpy = sandbox.spy(userDecoder, "default"); - const user = await getUserByAccessKeyId(redisClient)("US123"); - - expect(user).to.be.not.null; - expect(userDecoderSpy).to.have.been.calledOnce; - }); - - it("should call userDecoder twice becase id starts with PJ", async () => { - const redisClient = { - get: sandbox - .stub() - .onCall(0) - .resolves( - JSON.stringify({ - userRef: "US123" - }) - ) - .onCall(1) - .resolves( - JSON.stringify({ - ref: "US123", - accessKeyId: "US123", - email: "test@fonoster.com", - name: "Test User", - avatar: "https://avatar.com/test.png", - createTime: Date.now(), - updateTime: Date.now() - }) - ), - smembers: sandbox.stub().resolves(null) - }; - - const userDecoderSpy = sandbox.spy(userDecoder, "default"); - const user = await getUserByAccessKeyId(redisClient)("PJ123"); - - expect(user).to.be.not.null; - expect(user.getRef()).to.have.equal("US123"); - expect(userDecoderSpy).to.have.been.calledOnce; - }); - }); - - describe("getLimiterByName", () => { - it("returns an undefined limiter since it found not limiters object", () => { - const limit = getLimiterByName([])("test"); - expect(limit).to.be.undefined; - }); - - it("returns a limit for the name 'test'", () => { - const limiters: Limiter[] = [ - { - name: "test", - allowedStatus: UserStatus.ACTIVE, - limits: [ - { - path: "/test", - resource: "test", - limit: 1 - } - ] - } - ]; - - const limit = getLimiterByName(limiters)("test"); - - expect(limit).to.have.property("name").to.equal("test"); - expect(limit) - .to.have.property("allowedStatus") - .to.equal(UserStatus.ACTIVE); - expect(limit).to.have.property("limits").to.be.an("array"); - expect(limit.limits).to.have.lengthOf(1); - }); - - it("returns the default limit", () => { - const limiters: Limiter[] = [ - { - name: "default", - allowedStatus: UserStatus.ACTIVE, - limits: [ - { - path: "/test", - resource: "test", - limit: 1 - } - ] - } - ]; - - const limit = getLimiterByName(limiters)(); - - expect(limit).to.have.property("name").to.equal("default"); - expect(limit) - .to.have.property("allowedStatus") - .to.equal(UserStatus.ACTIVE); - expect(limit).to.have.property("limits").to.be.an("array"); - expect(limit.limits).to.have.lengthOf(1); - }); - }); - - describe("getResourceCount", () => { - it("returns the number of projects", async () => { - const redis = { - get: sandbox.stub().resolves(null), - smembers: sandbox.stub().resolves(["PJ123", "PJ456"]) - }; - - const count = await getResourceCount( - redis, - routr as unknown as RoutrClient - )("US123", "project"); - expect(count).to.be.equal(2); - }); - - it("returns the number of domains", async () => { - const redis = { - get: sandbox.stub().resolves(null), - smembers: sandbox.stub().resolves(["PJ123", "PJ456"]) - }; - - const spyRoutrConnect = sandbox.spy(routr, "connect"); - const spyRoutrResourceType = sandbox.spy(routr, "resourceType"); - - const count = await getResourceCount( - redis, - routr as unknown as RoutrClient - )("US123", "domain"); - expect(count).to.be.equal(3); - expect(spyRoutrConnect).to.have.been.calledOnce; - expect(spyRoutrResourceType).to.have.been.calledOnce; - }); - - it("returns 0 since is not a limited resource", async () => { - const redis = { - get: sandbox.stub().resolves(null), - smembers: sandbox.stub().resolves(["PJ123", "PJ456"]) - }; - - const count = await getResourceCount( - redis, - routr as unknown as RoutrClient - )("US123", "somethingelse"); - expect(count).to.be.equal(0); - }); - }); -}); diff --git a/mods/limiter/tsconfig.json b/mods/limiter/tsconfig.json deleted file mode 100644 index cffc25599..000000000 --- a/mods/limiter/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../users" }, - { "path": "../projects" }, - { "path": "../common" }, - { "path": "../core" }, - { "path": "../logger" }, - { "path": "../errors" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/logger/.lerna-changed-buster-192 b/mods/logger/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/core/.lerna-changed-buster-192 b/mods/logger/.lerna-changed-buster-5577 similarity index 100% rename from mods/core/.lerna-changed-buster-192 rename to mods/logger/.lerna-changed-buster-5577 diff --git a/mods/logger/.npmignore b/mods/logger/.npmignore index dc94a64ec..51256b514 100644 --- a/mods/logger/.npmignore +++ b/mods/logger/.npmignore @@ -1,4 +1,3 @@ -node_modules .nyc_output coverage src diff --git a/mods/logger/README.md b/mods/logger/README.md new file mode 100644 index 000000000..7669fdd1a --- /dev/null +++ b/mods/logger/README.md @@ -0,0 +1,3 @@ +[![Discord](https://img.shields.io/discord/1016419835455996076?color=5865F2&label=Discord&logo=discord&logoColor=white)](https://discord.gg/4QWgSz4hTC) ![GitHub](https://img.shields.io/github/license/fonoster/fonoster?color=%2347b96d) ![Twitter Follow](https://img.shields.io/twitter/follow/fonoster?style=social) + +This module is part of the [Fonoster](https://fonoster.com) open-source. By itself, it does not do much. It is intended to be used as a dependency for other modules. For more information about the project, please visit [https://github.com/fonoster/fonoster](https://github.com/fonoster/fonoster). \ No newline at end of file diff --git a/mods/logger/package-lock.json b/mods/logger/package-lock.json deleted file mode 100644 index c1cd6d2b4..000000000 --- a/mods/logger/package-lock.json +++ /dev/null @@ -1,764 +0,0 @@ -{ - "name": "@fonoster/logger", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/logger", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "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/async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", - "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/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "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/event-lite": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz", - "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==" - }, - "node_modules/fecha": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", - "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==" - }, - "node_modules/fluent-logger": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/fluent-logger/-/fluent-logger-3.4.1.tgz", - "integrity": "sha512-lERIhXAvhtCYeQq8K7sBDg/HY9GkiVRq5xY3oN+hcSINVKwqwBzG6LQOJK73EnV50qO59U7XEmRnn2hBzLWaHw==", - "dependencies": { - "msgpack-lite": "*" - }, - "engines": { - "node": ">=6" - } - }, - "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/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "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/int64-buffer": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz", - "integrity": "sha1-J3siiofZWtd30HwTgyAiQGpHNCM=" - }, - "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-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/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "node_modules/logform": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz", - "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==", - "dependencies": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "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/msgpack-lite": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz", - "integrity": "sha1-3TxQsm8FnyXn7e42REGDWOKprYk=", - "dependencies": { - "event-lite": "^0.1.1", - "ieee754": "^1.1.8", - "int64-buffer": "^0.1.9", - "isarray": "^1.0.0" - }, - "bin": { - "msgpack": "bin/msgpack" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "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/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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.3.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", - "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "engines": { - "node": "*" - } - }, - "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/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/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/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/winston": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.6.0.tgz", - "integrity": "sha512-9j8T75p+bcN6D00sF/zjFVmPp+t8KMPB1MzbbzYjeN9VWxdsYnTB40TkbNUEXAmILEfChMvAMgidlX64OG3p6w==", - "dependencies": { - "@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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - } - }, - "dependencies": { - "@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" - } - }, - "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", - "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" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" - }, - "event-lite": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz", - "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==" - }, - "fecha": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", - "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==" - }, - "fluent-logger": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/fluent-logger/-/fluent-logger-3.4.1.tgz", - "integrity": "sha512-lERIhXAvhtCYeQq8K7sBDg/HY9GkiVRq5xY3oN+hcSINVKwqwBzG6LQOJK73EnV50qO59U7XEmRnn2hBzLWaHw==", - "requires": { - "msgpack-lite": "*" - } - }, - "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==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "int64-buffer": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz", - "integrity": "sha1-J3siiofZWtd30HwTgyAiQGpHNCM=" - }, - "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-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "logform": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz", - "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==", - "requires": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "msgpack-lite": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz", - "integrity": "sha1-3TxQsm8FnyXn7e42REGDWOKprYk=", - "requires": { - "event-lite": "^0.1.1", - "ieee754": "^1.1.8", - "int64-buffer": "^0.1.9", - "isarray": "^1.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "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" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "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" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "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.3.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", - "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==" - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "requires": { - "is-arrayish": "^0.3.1" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, - "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" - } - }, - "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==" - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "winston": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.6.0.tgz", - "integrity": "sha512-9j8T75p+bcN6D00sF/zjFVmPp+t8KMPB1MzbbzYjeN9VWxdsYnTB40TkbNUEXAmILEfChMvAMgidlX64OG3p6w==", - "requires": { - "@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" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - } - } -} diff --git a/mods/logger/package.json b/mods/logger/package.json index 59d772337..fd95d45ce 100644 --- a/mods/logger/package.json +++ b/mods/logger/package.json @@ -1,6 +1,6 @@ { "name": "@fonoster/logger", - "version": "0.3.22", + "version": "0.9.0", "description": "Logger module", "author": "Pedro Sanders ", "homepage": "https://github.com/fonoster/fonoster#readme", @@ -30,10 +30,7 @@ }, "dependencies": { "fluent-logger": "^3.4.1", - "winston": "^3.6.0" + "winston": "^3.13.0" }, - "devDependencies": { - "rimraf": "^3.0.2" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" + "gitHead": "3509817cc2cf3ef6684437e33ffd694d1174510b" } diff --git a/mods/logger/src/envs.ts b/mods/logger/src/envs.ts index ad41a6a1a..df118c30d 100644 --- a/mods/logger/src/envs.ts +++ b/mods/logger/src/envs.ts @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) + * Copyright (C) 2023 by Fonoster Inc (https://fonoster.com) * http://github.com/fonoster/fonoster * * This file is part of Fonoster @@ -16,31 +16,34 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import winston from "winston"; import fluentLogger from "fluent-logger"; -const fluentTransport = fluentLogger.support.winstonTransport(); +import winston from "winston"; + +const FluentTransport = fluentLogger.support.winstonTransport(); -const fluent = new fluentTransport( - `${process.env.LOG_OPT_TAG_PREFIX}.fonoster`, - { - host: process.env.LOGS_DRIVER_HOST, - port: process.env.LOGS_DRIVER_PORT, - timeout: 3.0, - requireAckResponse: true - } -); +const LOGS_DRIVER_HOST = process.env.LOGS_DRIVER_HOST; +const LOGS_DRIVER_PORT = process.env.LOGS_DRIVER_PORT || 24224; +const LOGS_OPT_TAG_PREFIX = process.env.LOGS_OPT_TAG_PREFIX || "fonoster-logs"; +const LOGS_FORMAT = process.env.LOGS_FORMAT || "json"; +const LOGS_LEVEL = process.env.LOGS_LEVEL || "info"; +const LOGS_TRANSPORT = process.env.LOGS_TRANSPORT || "console"; + +const fluent = new FluentTransport(`${LOGS_OPT_TAG_PREFIX}`, { + host: LOGS_DRIVER_HOST, + port: LOGS_DRIVER_PORT, + timeout: 3.0, + requireAckResponse: false +}); const format = - process.env.LOGS_FORMAT === "json" + LOGS_FORMAT === "json" ? winston.format.combine(winston.format.timestamp(), winston.format.json()) : winston.format.combine( winston.format.colorize(), winston.format.simple() ); -const level = process.env.LOGS_LEVEL ? process.env.LOGS_LEVEL : "info"; + const transports = - process.env.LOGS_TRANSPORT === "fluent" - ? [fluent] - : [new winston.transports.Console()]; + LOGS_TRANSPORT === "fluent" ? [fluent] : [new winston.transports.Console()]; -export { format, level, transports, fluent }; +export { fluent, format, LOGS_LEVEL as level, transports }; diff --git a/mods/logger/src/getLogger.ts b/mods/logger/src/getLogger.ts new file mode 100644 index 000000000..104934dd0 --- /dev/null +++ b/mods/logger/src/getLogger.ts @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2023 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import winston from "winston"; +import { fluent, level, transports } from "./envs"; + +const loggers = new Map(); + +function getLogger(config: { service?: string; filePath: string }) { + const key = config.service || "default"; + + if (loggers.has(key)) { + return loggers.get(key); + } + + const humanFormat = winston.format.combine( + winston.format.timestamp({ + format: "YYYY-MM-dd HH:mm:ss.SSS" + }), + winston.format.printf( + ({ level, message, timestamp, ...metadata }) => + `${timestamp} [${level}]: ${ + config.service ? `(${config.service})` : "" + } ${message} ${JSON.stringify(metadata)}` + ) + ); + + const newLogger = winston.createLogger({ + levels: winston.config.npm.levels, + format: humanFormat, + transports, + level + }); + + newLogger.on("finish", () => { + fluent.sender.end("end", {}, () => {}); + }); + + loggers.set(key, newLogger); + + return newLogger; +} + +export { getLogger }; diff --git a/mods/logger/src/get_logger.ts b/mods/logger/src/get_logger.ts deleted file mode 100644 index 3e489badb..000000000 --- a/mods/logger/src/get_logger.ts +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import winston from "winston"; -import { resolve } from "path"; -import { fluent, level, transports } from "./envs"; - -export const getLogger = (config: { service?: string; filePath: string }) => { - const file = config.filePath.replace(resolve("./"), ""); - - const humanFormat = winston.format.combine( - winston.format.timestamp({ - format: "YYYY-MM-dd HH:mm:ss.SSS" - }), - winston.format.printf( - ({ level, message, timestamp, ...metadata }) => - `${timestamp} [${level}]: ${ - config.service ? `(${config.service})` : "" - } ${file} ${message} ${JSON.stringify(metadata)}` - ) - ); - - const logger = winston.createLogger({ - levels: winston.config.npm.levels, - format: humanFormat, - transports, - level - }); - - logger.on("finish", () => { - fluent.sender.end("end", {}, () => {}); - }); - return logger; -}; - -export { getLogger as default }; diff --git a/mods/logger/src/index.ts b/mods/logger/src/index.ts index 7bc96e668..e560ffbcd 100644 --- a/mods/logger/src/index.ts +++ b/mods/logger/src/index.ts @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) + * Copyright (C) 2023 by Fonoster Inc (https://fonoster.com) * http://github.com/fonoster/fonoster * * This file is part of Fonoster @@ -16,9 +16,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { ULogType } from "./types"; -import getLogger from "./get_logger"; -import ulogger from "./user_logger"; +import { getLogger } from "./getLogger"; import logger, { mute, unmute } from "./logger"; +import { ULogType } from "./types"; +import ulogger from "./userLogger"; -export { logger as default, getLogger, ulogger, ULogType, mute, unmute }; +export { ULogType, logger as default, getLogger, mute, ulogger, unmute }; diff --git a/mods/logger/src/logger.ts b/mods/logger/src/logger.ts index 299fa8da3..6bac3d134 100644 --- a/mods/logger/src/logger.ts +++ b/mods/logger/src/logger.ts @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) + * Copyright (C) 2023 by Fonoster Inc (https://fonoster.com) * http://github.com/fonoster/fonoster * * This file is part of Fonoster @@ -18,7 +18,6 @@ */ import winston from "winston"; import { fluent, format, level, transports } from "./envs"; -import { ULog } from "./types"; const logger = winston.createLogger({ levels: winston.config.npm.levels, @@ -31,8 +30,8 @@ logger.on("finish", () => { fluent.sender.end("end", {}, () => {}); }); -const mute = () => logger.transports.forEach((t: any) => (t.silent = true)); +const mute = () => logger.transports.forEach((t) => (t.silent = true)); -const unmute = () => logger.transports.forEach((t: any) => (t.silent = false)); +const unmute = () => logger.transports.forEach((t) => (t.silent = false)); export { logger as default, mute, unmute }; diff --git a/mods/logger/src/types.ts b/mods/logger/src/types.ts index c74e7fddd..b0ed34c36 100644 --- a/mods/logger/src/types.ts +++ b/mods/logger/src/types.ts @@ -1,5 +1,14 @@ +// User Logging +export interface ULog { + accessKeyId: string; + eventType: ULogType; + level: "info" | "error" | "verbose" | "warn"; + message: string; + body?: Record; +} + /* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) + * Copyright (C) 2023 by Fonoster Inc (https://fonoster.com) * http://github.com/fonoster/fonoster * * This file is part of Fonoster @@ -21,12 +30,3 @@ export enum ULogType { CALL = "call", SIP = "sip" } - -// User Logging -export interface ULog { - accessKeyId: string; - eventType: ULogType; - level: "info" | "error" | "verbose" | "warn"; - message: string; - body?: Record; -} diff --git a/mods/logger/src/userLogger.ts b/mods/logger/src/userLogger.ts new file mode 100644 index 000000000..66195f047 --- /dev/null +++ b/mods/logger/src/userLogger.ts @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2023 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import logger from "./logger"; +import { ULog } from "./types"; + +// Special logger function for User specific events +const ulogger = (log: ULog) => + logger[log.level](log.message, { + eventType: log.eventType, + body: log.body, + level: log.level, + accessKeyId: log.accessKeyId + }); + +export { ulogger as default }; diff --git a/mods/logger/src/user_logger.ts b/mods/logger/src/user_logger.ts deleted file mode 100644 index 6c1d3fad6..000000000 --- a/mods/logger/src/user_logger.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import logger from "./logger"; -import { ULog } from "./types"; - -// Special logger function for User specific events -const ulogger = (log: ULog) => - logger[log.level](log.message, { - eventType: log.eventType, - body: log.body, - level: log.level, - accessKeyId: log.accessKeyId - }); - -export { ulogger as default }; diff --git a/mods/logger/test/logger.unit.test.ts b/mods/logger/test/logger.unit.test.ts deleted file mode 100644 index be9b3dab7..000000000 --- a/mods/logger/test/logger.unit.test.ts +++ /dev/null @@ -1,4 +0,0 @@ -// No need for test here -describe("@fonoster/logger", () => { - it("no need for test", () => {}); -}); diff --git a/mods/marytts/.lerna-changed-buster-192 b/mods/marytts/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/marytts/.npmignore b/mods/marytts/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/marytts/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/marytts/package-lock.json b/mods/marytts/package-lock.json deleted file mode 100644 index fe85a4290..000000000 --- a/mods/marytts/package-lock.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "name": "@fonoster/marytts", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/marytts", - "version": "0.3.22", - "license": "MIT", - "devDependencies": {} - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - }, - "devDependencies": { - "minipass": "3.3.4" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "../tts": { - "name": "@fonoster/tts", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "flat": "^5.0.2", - "sox-audio": "^0.3.0" - } - } - } -} diff --git a/mods/marytts/package.json b/mods/marytts/package.json deleted file mode 100644 index e205a190d..000000000 --- a/mods/marytts/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "@fonoster/marytts", - "version": "0.3.22", - "description": "Concrete implementation of AbstractTTS", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/mary_tts", - "types": "dist/mary_tts", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/common": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@fonoster/tts": "^0.3.22" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/marytts/src/mary_tts.ts b/mods/marytts/src/mary_tts.ts deleted file mode 100644 index 8a4e0d9f1..000000000 --- a/mods/marytts/src/mary_tts.ts +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import https from "https"; -import fs from "fs"; -import { optionsToQueryString, SynthResult, AbstractTTS } from "@fonoster/tts"; -import { MaryTTSConfig, MarySynthOptions } from "./types"; -import logger from "@fonoster/logger"; - -/** - * @classdesc The default TTS engine in a Fonoster deployment. - * - * @extends Plugin - * @example - * - * const MaryTTS = require("@fonoster/marytts"); - * - * new MaryTTS().synthesize("Hello world") - * .then((result) => console.log("path: " + result.pathToFile)) - * .catch(console.err); - */ -export default class MaryTTS extends AbstractTTS { - serviceUrl: string; - /** - * Constructs a new MaryTTS object. - * - * @see module:tts:TTSPlugin - * @param {DefaultConfig} config - Configuration of the marytts - */ - constructor(config: MaryTTSConfig) { - super("tts", "marytts", config); - this.init(config); - } - - /** - * Init of the marytts constructor - * - * @param {DefaultConfig} config - Configuration of the marytts - */ - init(config: MaryTTSConfig): void { - const q = "INPUT_TYPE=TEXT&AUDIO=WAVE_FILE&OUTPUT_TYPE=AUDIO"; - this.serviceUrl = `${config.url}?${q}`; - - logger.debug( - `@fonoster/tts.MaryTTS.constructor [initializing with config: ${JSON.stringify( - config - )}]` - ); - } - - /** - * @inherit - * - * @param {string} text - Text that will be synthesized - * @param {OptionsInterface} options - Options of the marytts, locale and voice - * @param {string} filename - Text that will be synthesized - * @param {string} pathToFile - Options of the marytts, locale and voice - * @return {Promise} - * For more information check the following link: http://marytts.phonetik.uni-muenchen.de:59125/documentation.html - * WARNING: On windows the command "which" that sox library uses is not the same. In windows is "where" instead - */ - async synthesizeSpeech( - text: string, - options: any, - filename: string, - pathToFile: string - ): Promise { - if (Object.keys(options).length === 0) { - options = { locale: "EN_US" } as MarySynthOptions; - } - logger.verbose( - `@fonoster/tts.MaryTTS.synthesize [text: ${text}, options: ${JSON.stringify( - options - )}]` - ); - - return new Promise((resolve, reject) => { - const q = optionsToQueryString(options); - const query = q ? q.toUpperCase() : ""; - let headers = null; - const conf = this.config as MaryTTSConfig; - if (conf.accessKeyId && conf.accessKeySecret) { - headers = { - "X-Session-Token": conf.accessKeySecret - }; - } - - logger.silly( - `@fonoster/tts.MaryTTS.synthesize [headers: ${JSON.stringify(headers)}]` - ); - logger.verbose(`@fonoster/tts.MaryTTS.synthesize [query: ${query}]`); - - https.get( - `${this.serviceUrl}&INPUT_TEXT=${encodeURI(text)}&${query}`, - { - headers - }, - (response) => { - const { statusCode } = response; - - if (statusCode !== 200) { - reject(new Error(`Request failed with status code: ${statusCode}`)); - return; - } - response.pipe(fs.createWriteStream(pathToFile)); - resolve({ filename, pathToFile }); - } - ); - }); - } -} - -// WARNING: Workaround to support commonjs clients -module.exports = MaryTTS; diff --git a/mods/marytts/src/types.ts b/mods/marytts/src/types.ts deleted file mode 100644 index 43343cb5e..000000000 --- a/mods/marytts/src/types.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { TTSConfig } from "@fonoster/tts"; -export interface MarySynthOptions { - locale: string; - voice?: string; -} - -export interface MaryTTSConfig extends TTSConfig { - url: string; - accessKeyId?: string; - accessKeySecret?: string; - locale?: string; -} diff --git a/mods/marytts/test/tts.unit.test.ts b/mods/marytts/test/tts.unit.test.ts deleted file mode 100644 index 4c19398f9..000000000 --- a/mods/marytts/test/tts.unit.test.ts +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import MaryTTS from "../src/mary_tts"; -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import path from "path"; -import https from "https"; -import fs from "fs"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -chai.should(); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/marytts", () => { - afterEach(() => sandbox.restore()); - const defConfig = { - url: "https://localhost:59125" - }; - - sandbox.stub(MaryTTS.prototype, "init").returns(); - - it("should rejects because the server's response is not 200", async () => { - const join = sandbox.spy(path, "join"); - const createWriteStream = sandbox.spy(fs, "createWriteStream"); - const pipe = sandbox.stub(); - const get = sandbox.stub(https, "get").yields({ statusCode: 201, pipe }); - - const tts = new MaryTTS(defConfig); - - await expect(tts.synthesize("hello world", { locale: "en_US" })) - .to.be.eventually.rejected.and.to.be.an.instanceOf(Error) - .to.have.property("message", "Request failed with status code: 201"); - expect(pipe).to.not.have.been.calledOnce; - expect(createWriteStream).to.not.have.been.calledOnce; - expect(join).to.have.been.calledOnce; - expect(get).to.have.been.calledOnce; - }); - - it("synthesizes text and returns path to file", async () => { - const join = sandbox.spy(path, "join"); - const createWriteStream = sandbox.stub(fs, "createWriteStream").resolves(); - const pipe = sandbox.stub(); - const get = sandbox.stub(https, "get").yields({ statusCode: 200, pipe }); - - const tts = new MaryTTS(defConfig); - const result = await tts.synthesize("hello world"); - expect(result).to.have.property("filename").to.not.be.null; - expect(result).to.have.property("pathToFile").to.not.be.null; - expect(pipe).to.have.been.calledOnce; - expect(join).to.have.been.calledOnce; - expect(createWriteStream).to.have.been.calledOnce; - expect(get).to.have.been.calledOnce; - }); - - it("file exist, not synthesizes text and returns path to file", async () => { - const createWriteStream = sandbox.stub(fs, "createWriteStream").resolves(); - const fsExistSyncStub = sandbox.stub(fs, "existsSync").returns(true); - - const tts = new MaryTTS(defConfig); - const result = await tts.synthesize("hello world"); - expect(result).to.have.property("filename").to.not.be.null; - expect(result).to.have.property("pathToFile").to.not.be.null; - expect(createWriteStream).to.not.have.been.calledOnce; - expect(fsExistSyncStub).to.have.been.calledOnce; - }); -}); diff --git a/mods/marytts/tsconfig.json b/mods/marytts/tsconfig.json deleted file mode 100644 index ed98bffc3..000000000 --- a/mods/marytts/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { - "path": "../tts" - }, - { - "path": "../logger" - }, - { - "path": "../common" - } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/monitor/.DS_Store b/mods/monitor/.DS_Store deleted file mode 100644 index 81229e8d2..000000000 Binary files a/mods/monitor/.DS_Store and /dev/null differ diff --git a/mods/monitor/.dockerignore b/mods/monitor/.dockerignore deleted file mode 100644 index b512c09d4..000000000 --- a/mods/monitor/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/mods/monitor/.lerna-changed-buster-192 b/mods/monitor/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/monitor/.npmignore b/mods/monitor/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/monitor/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/monitor/Dockerfile b/mods/monitor/Dockerfile deleted file mode 100644 index 76d6aea5c..000000000 --- a/mods/monitor/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs \ - && npm install -g fonoster-*.tgz \ - && apk del npm git - -USER fonoster - -CMD ["run_monitor"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_monitor" ] \ No newline at end of file diff --git a/mods/monitor/package-lock.json b/mods/monitor/package-lock.json deleted file mode 100644 index 9632eb4c4..000000000 --- a/mods/monitor/package-lock.json +++ /dev/null @@ -1,778 +0,0 @@ -{ - "name": "@fonoster/monitor", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/monitor", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@elastic/elasticsearch": "^7.17.0", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_monitor": "dist/service/healthcheck.js", - "run_monitor": "dist/service/runner.js" - }, - "devDependencies": {} - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - }, - "devDependencies": { - "minipass": "3.3.4" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "grpc-ts-health-check": "^2.0.6", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.3.18", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@elastic/elasticsearch": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@elastic/elasticsearch/-/elasticsearch-7.17.0.tgz", - "integrity": "sha512-5QLPCjd0uLmLj1lSuKSThjNpq39f6NmlTy9ROLFwG5gjyTgpwSqufDeYG/Fm43Xs05uF7WcscoO7eguI3HuuYA==", - "dependencies": { - "debug": "^4.3.1", - "hpagent": "^0.1.1", - "ms": "^2.1.3", - "secure-json-parse": "^2.4.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.1.tgz", - "integrity": "sha512-ItOqQ4ff7JrR9W6KDQm+LdsVjuZtV7Qq64Oy3Hjx8ZPBDDwBx7rD8hOL0Vnde0RbnsqLG86WOgF+tQDzf/nSzQ==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/node": { - "version": "17.0.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz", - "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==" - }, - "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/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/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/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/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "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/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/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/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/google-protobuf": { - "version": "3.19.3", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.3.tgz", - "integrity": "sha512-3GRDj8o9XjcALYjgxNKeD7Wm6w/V8r1Jo4sLYMic9+VaIMLBx8TQeHP9yaoRoDymNONhnkmmveDPyjw/Fpw8+A==" - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "node_modules/hpagent": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-0.1.2.tgz", - "integrity": "sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==" - }, - "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/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/secure-json-parse": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz", - "integrity": "sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==" - }, - "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/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/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/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/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" - } - } - }, - "dependencies": { - "@elastic/elasticsearch": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@elastic/elasticsearch/-/elasticsearch-7.17.0.tgz", - "integrity": "sha512-5QLPCjd0uLmLj1lSuKSThjNpq39f6NmlTy9ROLFwG5gjyTgpwSqufDeYG/Fm43Xs05uF7WcscoO7eguI3HuuYA==", - "requires": { - "debug": "^4.3.1", - "hpagent": "^0.1.1", - "ms": "^2.1.3", - "secure-json-parse": "^2.4.0" - } - }, - "@grpc/grpc-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.1.tgz", - "integrity": "sha512-ItOqQ4ff7JrR9W6KDQm+LdsVjuZtV7Qq64Oy3Hjx8ZPBDDwBx7rD8hOL0Vnde0RbnsqLG86WOgF+tQDzf/nSzQ==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - } - }, - "@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/node": { - "version": "17.0.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.8.tgz", - "integrity": "sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==" - }, - "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" - } - }, - "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" - } - }, - "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==" - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "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==" - } - } - }, - "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==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "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==" - }, - "google-protobuf": { - "version": "3.19.3", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.3.tgz", - "integrity": "sha512-3GRDj8o9XjcALYjgxNKeD7Wm6w/V8r1Jo4sLYMic9+VaIMLBx8TQeHP9yaoRoDymNONhnkmmveDPyjw/Fpw8+A==" - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "hpagent": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-0.1.2.tgz", - "integrity": "sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==" - }, - "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==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "secure-json-parse": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz", - "integrity": "sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==" - }, - "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" - } - }, - "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==" - } - } -} diff --git a/mods/monitor/package.json b/mods/monitor/package.json deleted file mode 100644 index d91ac6879..000000000 --- a/mods/monitor/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "@fonoster/monitor", - "version": "0.3.22", - "description": "Monitoring API", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/client/monitor", - "types": "dist/client/monitor", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "postbuild": "cp -a ./src/service/protos/ ./dist/service/protos", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/srv_runner" - }, - "bin": { - "run_monitor": "dist/service/runner.js", - "healthcheck_monitor": "dist/service/healthcheck.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@elastic/elasticsearch": "^7.17.0", - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/errors": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/monitor/src/.DS_Store b/mods/monitor/src/.DS_Store deleted file mode 100644 index c3fb79834..000000000 Binary files a/mods/monitor/src/.DS_Store and /dev/null differ diff --git a/mods/monitor/src/client/monitor.ts b/mods/monitor/src/client/monitor.ts deleted file mode 100644 index dedc6eb7f..000000000 --- a/mods/monitor/src/client/monitor.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { APIClient, ClientOptions } from "@fonoster/common"; -import { MonitorClient } from "../service/protos/monitor_grpc_pb"; -import MonitorPB from "../service/protos/monitor_pb"; -import { promisifyAll } from "grpc-promise"; -import { - IMonitorClient, - SearchEventsRequest, - SearchEventsResponse -} from "./types"; -import { Struct } from "google-protobuf/google/protobuf/struct_pb"; -import { Level } from "../service/level"; -import { EventType } from "../service/event_type"; - -/** - * @classdesc Use Fonoster Monitor, a capability of Fonoster to obtain user events. - * The Monitor API requires of a running Fonoster deployment. - * - * @extends APIClient - * @example - * - * const Fonoster = require("@fonoster/monitor") - * const monitor = new Fonoster.Monitor() - * - * const request = { - * query: {} - * } - * - * monitor.searchEvents(request) - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)) // an error occurred - */ -export default class Monitor extends APIClient implements IMonitorClient { - /** - * Constructs a new Monitor API object. - * - * @param {ClientOptions} options - Options to indicate the objects endpoint - * @see module:core:APIClient - */ - constructor(options?: ClientOptions) { - super(MonitorClient, options); - super.init(); - promisifyAll(super.getService(), { metadata: super.getMeta() }); - } - - /** - * Search for User events. - * - * @param {SearchEventsRequest} request - Request for obtain user events - * @param {object} request.query - Friendly name for the SIP device - * @return {Promise} - * @example - * - * const request = { - * query: {} - * } - * - * monitor.searchEvents(request) - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)) // an error occurred - */ - async searchEvents( - request: SearchEventsRequest - ): Promise { - const req = new MonitorPB.SearchEventsRequest(); - req.setQuery(Struct.fromJavaScript(request.query)); - const result = await super - .getService() - .searchEvents() - .sendMessage(req, super.getMeta()); - - return { - nextPageToken: null, - events: result.map((e) => { - return { - ref: e.getRef(), - level: Level.toString(e.getLevel()), - eventType: EventType.toString(e.getEventType()), - message: e.getMessage(), - timestamp: new Date(e.getTimestamp()), - body: e.getBody().toJavaScript() - }; - }) - }; - } -} - -export { MonitorPB, IMonitorClient }; - -// WARNING: Workaround for support to commonjs clients -module.exports = Monitor; -module.exports.MonitorPB = MonitorPB; diff --git a/mods/monitor/src/client/types.ts b/mods/monitor/src/client/types.ts deleted file mode 100644 index d31db9568..000000000 --- a/mods/monitor/src/client/types.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface IMonitorClient { - searchEvents(request: SearchEventsRequest): Promise; -} - -export interface Event { - ref: string; - level: string; - eventType: string; - message: string; - timestamp: Date; - body: Record; -} - -export interface SearchEventsRequest { - query: Record; -} - -export interface SearchEventsResponse { - nextPageToken: string; - events: Event[]; -} diff --git a/mods/monitor/src/protos/monitor.proto b/mods/monitor/src/protos/monitor.proto deleted file mode 100644 index 9eccc246c..000000000 --- a/mods/monitor/src/protos/monitor.proto +++ /dev/null @@ -1,40 +0,0 @@ -/** - * MIT License - * Copyright (c) 2021 Fonoster Inc - */ -syntax = "proto3"; - -package fonoster.monitor.v1beta1; - -import "google/protobuf/struct.proto"; - -service Monitor { - // Gets a stream of events - rpc SearchEvents (SearchEventsRequest) returns (stream Event); -} - -enum Level { - INFO = 0; - WARN = 1; - ERROR = 2; - VERBOSE = 3; -} - -enum EventType { - APP = 0; - SIP = 1; - CALL = 2; -} - -message SearchEventsRequest { - .google.protobuf.Struct query = 1; -} - -message Event { - string ref = 1; - EventType event_type = 2; - Level level = 3; - string timestamp = 4; - string message = 5; - .google.protobuf.Struct body = 6; -} \ No newline at end of file diff --git a/mods/monitor/src/service/event_type.ts b/mods/monitor/src/service/event_type.ts deleted file mode 100644 index 5e334d396..000000000 --- a/mods/monitor/src/service/event_type.ts +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { EventType as ET } from "./protos/monitor_pb"; - -// eslint-disable-next-line @typescript-eslint/no-namespace -export namespace EventType { - // eslint-disable-next-line require-jsdoc - export function toString(type: ET): string { - return Object.keys(ET) - .find((key) => ET[key] === type) - ?.toLowerCase(); - } - - // eslint-disable-next-line require-jsdoc - export function fromString(type: string): ET { - return (ET as unknown)[type.toUpperCase()]; - } -} diff --git a/mods/monitor/src/service/healthcheck.ts b/mods/monitor/src/service/healthcheck.ts deleted file mode 100644 index 05ab1a96f..000000000 --- a/mods/monitor/src/service/healthcheck.ts +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -healthcheck(); diff --git a/mods/monitor/src/service/level.ts b/mods/monitor/src/service/level.ts deleted file mode 100644 index 789cea6ea..000000000 --- a/mods/monitor/src/service/level.ts +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Level as Le } from "./protos/monitor_pb"; - -// eslint-disable-next-line @typescript-eslint/no-namespace -export namespace Level { - // eslint-disable-next-line require-jsdoc - export function toString(level: Le): string { - return Object.keys(Le) - .find((key) => Le[key] === level) - .toLowerCase(); - } - - // eslint-disable-next-line require-jsdoc - export function fromString(dir: string): Le { - return (Le as unknown)[dir?.toUpperCase()]; - } -} diff --git a/mods/monitor/src/service/monitor.ts b/mods/monitor/src/service/monitor.ts deleted file mode 100644 index 19b7ceadf..000000000 --- a/mods/monitor/src/service/monitor.ts +++ /dev/null @@ -1,95 +0,0 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import grpc, { ServerWritableStream } from "@grpc/grpc-js"; -import { Event, SearchEventsRequest } from "./protos/monitor_pb"; -import { - IMonitorServer, - IMonitorService, - MonitorService -} from "./protos/monitor_grpc_pb"; -import { Struct } from "google-protobuf/google/protobuf/struct_pb"; -import { Client } from "@elastic/elasticsearch"; -import { ErrorCodes, FonosterError } from "@fonoster/errors"; -import { getAccessKeyId } from "@fonoster/core"; -import { Level } from "./level"; -import { EventType } from "./event_type"; - -const host = process.env.LOGS_AGGREGRATOR_HOST; -const port = process.env.LOGS_AGGREGRATOR_PORT; - -const client = new Client({ - node: `http://${host}:${port}` -}); - -// eslint-disable-next-line require-jsdoc -class MonitorServer implements IMonitorServer { - [name: string]: grpc.UntypedHandleCall; - - // eslint-disable-next-line require-jsdoc - async searchEvents(call: ServerWritableStream) { - const accessKeyId = getAccessKeyId(call); - // TODO: - // Assert toJavaScript is valid - const { body } = await client.search( - { - body: { - query: call.request.getQuery().toJavaScript() - } - }, - { - asStream: true - } - ); - - body.setEncoding("utf8"); - - const entries = (chunk) => - JSON.parse(chunk) - .hits?.hits?.filter( - (hit) => hit["_source"]?.accessKeyId === accessKeyId - ) - .map((hit) => { - const entry = new Event(); - entry.setRef(hit["_id"]); - entry.setMessage(hit["_source"].message); - entry.setTimestamp(hit["_source"]["@timestamp"]); - entry.setBody(Struct.fromJavaScript(hit["_source"]?.body)); - entry.setEventType(EventType.fromString(hit["_source"]?.eventType)); - entry.setLevel(Level.fromString(hit["_source"]?.level)); - return entry; - }); - - let payload = ""; - - body.on("data", async (chunk) => (payload += chunk)); - - body.on( - "error", - (e: Error) => new FonosterError(e.message, ErrorCodes.UNKNOWN) - ); - - body.on("end", () => { - entries(payload)?.forEach((e: Event) => call.write(e)); - call.end(); - }); - } -} - -export { MonitorServer as default, IMonitorService, MonitorService }; diff --git a/mods/monitor/src/service/protos/common_grpc_pb.js b/mods/monitor/src/service/protos/common_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/monitor/src/service/protos/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/monitor/src/service/protos/common_pb.d.ts b/mods/monitor/src/service/protos/common_pb.d.ts deleted file mode 100644 index f8b5fb810..000000000 --- a/mods/monitor/src/service/protos/common_pb.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// package: fonoster.common.v1beta1 -// file: common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class Empty extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Empty.AsObject; - static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Empty; - static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; -} - -export namespace Empty { - export type AsObject = { - } -} - -export class ErrorResponse extends jspb.Message { - getStatus(): number; - setStatus(value: number): ErrorResponse; - getMessage(): string; - setMessage(value: string): ErrorResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ErrorResponse.AsObject; - static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ErrorResponse; - static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse; -} - -export namespace ErrorResponse { - export type AsObject = { - status: number, - message: string, - } -} - -export enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2, -} diff --git a/mods/monitor/src/service/protos/common_pb.js b/mods/monitor/src/service/protos/common_pb.js deleted file mode 100644 index b7f99c7ea..000000000 --- a/mods/monitor/src/service/protos/common_pb.js +++ /dev/null @@ -1,335 +0,0 @@ -// source: common.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -goog.exportSymbol('proto.fonoster.common.v1beta1.Empty', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.ErrorResponse', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.View', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.Empty = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.Empty, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.Empty.displayName = 'proto.fonoster.common.v1beta1.Empty'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.ErrorResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.ErrorResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.ErrorResponse.displayName = 'proto.fonoster.common.v1beta1.ErrorResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.Empty.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.Empty.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.Empty} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.Empty; - return proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.Empty} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.Empty.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.Empty} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.ErrorResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.toObject = function(includeInstance, msg) { - var f, obj = { - status: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.ErrorResponse; - return proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setStatus(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getStatus(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional int32 status = 1; - * @return {number} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getStatus = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setStatus = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * @enum {number} - */ -proto.fonoster.common.v1beta1.View = { - BASIC: 0, - STANDARD: 1, - FULL: 2 -}; - -goog.object.extend(exports, proto.fonoster.common.v1beta1); diff --git a/mods/monitor/src/service/protos/google/api/annotations_grpc_pb.js b/mods/monitor/src/service/protos/google/api/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/monitor/src/service/protos/google/api/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/monitor/src/service/protos/google/api/annotations_pb.d.ts b/mods/monitor/src/service/protos/google/api/annotations_pb.d.ts deleted file mode 100644 index 06072f3bd..000000000 --- a/mods/monitor/src/service/protos/google/api/annotations_pb.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// package: google.api -// file: google/api/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_api_http_pb from "../../google/api/http_pb"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const http: jspb.ExtensionFieldInfo; diff --git a/mods/monitor/src/service/protos/google/api/annotations_pb.js b/mods/monitor/src/service/protos/google/api/annotations_pb.js deleted file mode 100644 index 99e4c1824..000000000 --- a/mods/monitor/src/service/protos/google/api/annotations_pb.js +++ /dev/null @@ -1,48 +0,0 @@ -// source: google/api/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_http_pb = require('../../google/api/http_pb.js'); -goog.object.extend(proto, google_api_http_pb); -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.http', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `http`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.google.api.http = new jspb.ExtensionFieldInfo( - 72295728, - {http: 0}, - google_api_http_pb.HttpRule, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - google_api_http_pb.HttpRule.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[72295728] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.http, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - google_api_http_pb.HttpRule.serializeBinaryToWriter, - google_api_http_pb.HttpRule.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[72295728] = proto.google.api.http; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/monitor/src/service/protos/google/api/field_behavior_grpc_pb.js b/mods/monitor/src/service/protos/google/api/field_behavior_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/monitor/src/service/protos/google/api/field_behavior_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/monitor/src/service/protos/google/api/field_behavior_pb.d.ts b/mods/monitor/src/service/protos/google/api/field_behavior_pb.d.ts deleted file mode 100644 index 9b853705f..000000000 --- a/mods/monitor/src/service/protos/google/api/field_behavior_pb.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -// package: google.api -// file: google/api/field_behavior.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const fieldBehavior: jspb.ExtensionFieldInfo; - -export enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, -} diff --git a/mods/monitor/src/service/protos/google/api/field_behavior_pb.js b/mods/monitor/src/service/protos/google/api/field_behavior_pb.js deleted file mode 100644 index 44160cc41..000000000 --- a/mods/monitor/src/service/protos/google/api/field_behavior_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// source: google/api/field_behavior.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.FieldBehavior', null, global); -goog.exportSymbol('proto.google.api.fieldBehaviorList', null, global); -/** - * @enum {number} - */ -proto.google.api.FieldBehavior = { - FIELD_BEHAVIOR_UNSPECIFIED: 0, - OPTIONAL: 1, - REQUIRED: 2, - OUTPUT_ONLY: 3, - INPUT_ONLY: 4, - IMMUTABLE: 5, - UNORDERED_LIST: 6, - NON_EMPTY_DEFAULT: 7 -}; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `fieldBehaviorList`. - * @type {!jspb.ExtensionFieldInfo>} - */ -proto.google.api.fieldBehaviorList = new jspb.ExtensionFieldInfo( - 1052, - {fieldBehaviorList: 0}, - null, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - null), - 1); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1052] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.fieldBehaviorList, - jspb.BinaryReader.prototype.readPackedEnum, - jspb.BinaryWriter.prototype.writePackedEnum, - undefined, - undefined, - true); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1052] = proto.google.api.fieldBehaviorList; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/monitor/src/service/protos/google/api/http_grpc_pb.js b/mods/monitor/src/service/protos/google/api/http_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/monitor/src/service/protos/google/api/http_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/monitor/src/service/protos/google/api/http_pb.d.ts b/mods/monitor/src/service/protos/google/api/http_pb.d.ts deleted file mode 100644 index 02c3b1ece..000000000 --- a/mods/monitor/src/service/protos/google/api/http_pb.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -// package: google.api -// file: google/api/http.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Http extends jspb.Message { - clearRulesList(): void; - getRulesList(): Array; - setRulesList(value: Array): Http; - addRules(value?: HttpRule, index?: number): HttpRule; - getFullyDecodeReservedExpansion(): boolean; - setFullyDecodeReservedExpansion(value: boolean): Http; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Http.AsObject; - static toObject(includeInstance: boolean, msg: Http): Http.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Http; - static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http; -} - -export namespace Http { - export type AsObject = { - rulesList: Array, - fullyDecodeReservedExpansion: boolean, - } -} - -export class HttpRule extends jspb.Message { - getSelector(): string; - setSelector(value: string): HttpRule; - - hasGet(): boolean; - clearGet(): void; - getGet(): string; - setGet(value: string): HttpRule; - - hasPut(): boolean; - clearPut(): void; - getPut(): string; - setPut(value: string): HttpRule; - - hasPost(): boolean; - clearPost(): void; - getPost(): string; - setPost(value: string): HttpRule; - - hasDelete(): boolean; - clearDelete(): void; - getDelete(): string; - setDelete(value: string): HttpRule; - - hasPatch(): boolean; - clearPatch(): void; - getPatch(): string; - setPatch(value: string): HttpRule; - - hasCustom(): boolean; - clearCustom(): void; - getCustom(): CustomHttpPattern | undefined; - setCustom(value?: CustomHttpPattern): HttpRule; - getBody(): string; - setBody(value: string): HttpRule; - getResponseBody(): string; - setResponseBody(value: string): HttpRule; - clearAdditionalBindingsList(): void; - getAdditionalBindingsList(): Array; - setAdditionalBindingsList(value: Array): HttpRule; - addAdditionalBindings(value?: HttpRule, index?: number): HttpRule; - - getPatternCase(): HttpRule.PatternCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpRule.AsObject; - static toObject(includeInstance: boolean, msg: HttpRule): HttpRule.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpRule, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpRule; - static deserializeBinaryFromReader(message: HttpRule, reader: jspb.BinaryReader): HttpRule; -} - -export namespace HttpRule { - export type AsObject = { - selector: string, - get: string, - put: string, - post: string, - pb_delete: string, - patch: string, - custom?: CustomHttpPattern.AsObject, - body: string, - responseBody: string, - additionalBindingsList: Array, - } - - export enum PatternCase { - PATTERN_NOT_SET = 0, - GET = 2, - PUT = 3, - POST = 4, - DELETE = 5, - PATCH = 6, - CUSTOM = 8, - } - -} - -export class CustomHttpPattern extends jspb.Message { - getKind(): string; - setKind(value: string): CustomHttpPattern; - getPath(): string; - setPath(value: string): CustomHttpPattern; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CustomHttpPattern.AsObject; - static toObject(includeInstance: boolean, msg: CustomHttpPattern): CustomHttpPattern.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CustomHttpPattern, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CustomHttpPattern; - static deserializeBinaryFromReader(message: CustomHttpPattern, reader: jspb.BinaryReader): CustomHttpPattern; -} - -export namespace CustomHttpPattern { - export type AsObject = { - kind: string, - path: string, - } -} diff --git a/mods/monitor/src/service/protos/google/api/http_pb.js b/mods/monitor/src/service/protos/google/api/http_pb.js deleted file mode 100644 index 0359c5eec..000000000 --- a/mods/monitor/src/service/protos/google/api/http_pb.js +++ /dev/null @@ -1,1006 +0,0 @@ -// source: google/api/http.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.google.api.CustomHttpPattern', null, global); -goog.exportSymbol('proto.google.api.Http', null, global); -goog.exportSymbol('proto.google.api.HttpRule', null, global); -goog.exportSymbol('proto.google.api.HttpRule.PatternCase', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.Http = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Http.repeatedFields_, null); -}; -goog.inherits(proto.google.api.Http, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.Http.displayName = 'proto.google.api.Http'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpRule = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpRule.repeatedFields_, proto.google.api.HttpRule.oneofGroups_); -}; -goog.inherits(proto.google.api.HttpRule, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpRule.displayName = 'proto.google.api.HttpRule'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.CustomHttpPattern = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.google.api.CustomHttpPattern, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.CustomHttpPattern.displayName = 'proto.google.api.CustomHttpPattern'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.Http.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.Http.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.Http.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.Http} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.toObject = function(includeInstance, msg) { - var f, obj = { - rulesList: jspb.Message.toObjectList(msg.getRulesList(), - proto.google.api.HttpRule.toObject, includeInstance), - fullyDecodeReservedExpansion: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.Http; - return proto.google.api.Http.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.Http} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addRules(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFullyDecodeReservedExpansion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.Http.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.Http.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.Http} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRulesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } - f = message.getFullyDecodeReservedExpansion(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * repeated HttpRule rules = 1; - * @return {!Array} - */ -proto.google.api.Http.prototype.getRulesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.Http} returns this -*/ -proto.google.api.Http.prototype.setRulesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.Http.prototype.addRules = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.clearRulesList = function() { - return this.setRulesList([]); -}; - - -/** - * optional bool fully_decode_reserved_expansion = 2; - * @return {boolean} - */ -proto.google.api.Http.prototype.getFullyDecodeReservedExpansion = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.setFullyDecodeReservedExpansion = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpRule.repeatedFields_ = [11]; - -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.google.api.HttpRule.oneofGroups_ = [[2,3,4,5,6,8]]; - -/** - * @enum {number} - */ -proto.google.api.HttpRule.PatternCase = { - PATTERN_NOT_SET: 0, - GET: 2, - PUT: 3, - POST: 4, - DELETE: 5, - PATCH: 6, - CUSTOM: 8 -}; - -/** - * @return {proto.google.api.HttpRule.PatternCase} - */ -proto.google.api.HttpRule.prototype.getPatternCase = function() { - return /** @type {proto.google.api.HttpRule.PatternCase} */(jspb.Message.computeOneofCase(this, proto.google.api.HttpRule.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpRule.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpRule.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpRule} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.toObject = function(includeInstance, msg) { - var f, obj = { - selector: jspb.Message.getFieldWithDefault(msg, 1, ""), - get: jspb.Message.getFieldWithDefault(msg, 2, ""), - put: jspb.Message.getFieldWithDefault(msg, 3, ""), - post: jspb.Message.getFieldWithDefault(msg, 4, ""), - pb_delete: jspb.Message.getFieldWithDefault(msg, 5, ""), - patch: jspb.Message.getFieldWithDefault(msg, 6, ""), - custom: (f = msg.getCustom()) && proto.google.api.CustomHttpPattern.toObject(includeInstance, f), - body: jspb.Message.getFieldWithDefault(msg, 7, ""), - responseBody: jspb.Message.getFieldWithDefault(msg, 12, ""), - additionalBindingsList: jspb.Message.toObjectList(msg.getAdditionalBindingsList(), - proto.google.api.HttpRule.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpRule; - return proto.google.api.HttpRule.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpRule} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSelector(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setGet(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPut(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPost(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDelete(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPatch(value); - break; - case 8: - var value = new proto.google.api.CustomHttpPattern; - reader.readMessage(value,proto.google.api.CustomHttpPattern.deserializeBinaryFromReader); - msg.setCustom(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBody(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setResponseBody(value); - break; - case 11: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addAdditionalBindings(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpRule.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpRule.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpRule} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSelector(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeString( - 3, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeString( - 4, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 5)); - if (f != null) { - writer.writeString( - 5, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 6)); - if (f != null) { - writer.writeString( - 6, - f - ); - } - f = message.getCustom(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.google.api.CustomHttpPattern.serializeBinaryToWriter - ); - } - f = message.getBody(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getResponseBody(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getAdditionalBindingsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 11, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string selector = 1; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getSelector = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setSelector = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string get = 2; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getGet = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setGet = function(value) { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearGet = function() { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasGet = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string put = 3; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPut = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPut = function(value) { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPut = function() { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPut = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional string post = 4; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPost = function(value) { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPost = function() { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPost = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string delete = 5; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getDelete = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setDelete = function(value) { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearDelete = function() { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasDelete = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string patch = 6; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPatch = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPatch = function(value) { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPatch = function() { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPatch = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional CustomHttpPattern custom = 8; - * @return {?proto.google.api.CustomHttpPattern} - */ -proto.google.api.HttpRule.prototype.getCustom = function() { - return /** @type{?proto.google.api.CustomHttpPattern} */ ( - jspb.Message.getWrapperField(this, proto.google.api.CustomHttpPattern, 8)); -}; - - -/** - * @param {?proto.google.api.CustomHttpPattern|undefined} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setCustom = function(value) { - return jspb.Message.setOneofWrapperField(this, 8, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearCustom = function() { - return this.setCustom(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasCustom = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional string body = 7; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setBody = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string response_body = 12; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getResponseBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setResponseBody = function(value) { - return jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * repeated HttpRule additional_bindings = 11; - * @return {!Array} - */ -proto.google.api.HttpRule.prototype.getAdditionalBindingsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 11)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setAdditionalBindingsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 11, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.prototype.addAdditionalBindings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearAdditionalBindingsList = function() { - return this.setAdditionalBindingsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.CustomHttpPattern.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.CustomHttpPattern.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.CustomHttpPattern} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.toObject = function(includeInstance, msg) { - var f, obj = { - kind: jspb.Message.getFieldWithDefault(msg, 1, ""), - path: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.CustomHttpPattern; - return proto.google.api.CustomHttpPattern.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.CustomHttpPattern} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKind(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.CustomHttpPattern.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.CustomHttpPattern.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.CustomHttpPattern} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKind(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string kind = 1; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getKind = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setKind = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string path = 2; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/monitor/src/service/protos/google/api/httpbody_grpc_pb.js b/mods/monitor/src/service/protos/google/api/httpbody_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/monitor/src/service/protos/google/api/httpbody_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/monitor/src/service/protos/google/api/httpbody_pb.d.ts b/mods/monitor/src/service/protos/google/api/httpbody_pb.d.ts deleted file mode 100644 index 98d973068..000000000 --- a/mods/monitor/src/service/protos/google/api/httpbody_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// package: google.api -// file: google/api/httpbody.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb"; - -export class HttpBody extends jspb.Message { - getContentType(): string; - setContentType(value: string): HttpBody; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): HttpBody; - clearExtensionsList(): void; - getExtensionsList(): Array; - setExtensionsList(value: Array): HttpBody; - addExtensions(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpBody.AsObject; - static toObject(includeInstance: boolean, msg: HttpBody): HttpBody.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpBody, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpBody; - static deserializeBinaryFromReader(message: HttpBody, reader: jspb.BinaryReader): HttpBody; -} - -export namespace HttpBody { - export type AsObject = { - contentType: string, - data: Uint8Array | string, - extensionsList: Array, - } -} diff --git a/mods/monitor/src/service/protos/google/api/httpbody_pb.js b/mods/monitor/src/service/protos/google/api/httpbody_pb.js deleted file mode 100644 index 5539f5936..000000000 --- a/mods/monitor/src/service/protos/google/api/httpbody_pb.js +++ /dev/null @@ -1,286 +0,0 @@ -// source: google/api/httpbody.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js'); -goog.object.extend(proto, google_protobuf_any_pb); -goog.exportSymbol('proto.google.api.HttpBody', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpBody = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpBody.repeatedFields_, null); -}; -goog.inherits(proto.google.api.HttpBody, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpBody.displayName = 'proto.google.api.HttpBody'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpBody.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpBody.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpBody.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpBody} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.toObject = function(includeInstance, msg) { - var f, obj = { - contentType: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64(), - extensionsList: jspb.Message.toObjectList(msg.getExtensionsList(), - google_protobuf_any_pb.Any.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpBody; - return proto.google.api.HttpBody.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpBody} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setContentType(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 3: - var value = new google_protobuf_any_pb.Any; - reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader); - msg.addExtensions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpBody.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpBody} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContentType(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getExtensionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - google_protobuf_any_pb.Any.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string content_type = 1; - * @return {string} - */ -proto.google.api.HttpBody.prototype.getContentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setContentType = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.google.api.HttpBody.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.google.api.HttpBody.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setData = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * repeated google.protobuf.Any extensions = 3; - * @return {!Array} - */ -proto.google.api.HttpBody.prototype.getExtensionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpBody} returns this -*/ -proto.google.api.HttpBody.prototype.setExtensionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.google.protobuf.Any=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.Any} - */ -proto.google.api.HttpBody.prototype.addExtensions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.clearExtensionsList = function() { - return this.setExtensionsList([]); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/monitor/src/service/protos/monitor_grpc_pb.d.ts b/mods/monitor/src/service/protos/monitor_grpc_pb.d.ts deleted file mode 100644 index 9821c342b..000000000 --- a/mods/monitor/src/service/protos/monitor_grpc_pb.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -// package: fonoster.monitor.v1beta1 -// file: monitor.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import {handleClientStreamingCall} from "@grpc/grpc-js/build/src/server-call"; -import * as monitor_pb from "./monitor_pb"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -interface IMonitorService extends grpc.ServiceDefinition { - searchEvents: IMonitorService_ISearchEvents; -} - -interface IMonitorService_ISearchEvents extends grpc.MethodDefinition { - path: "/fonoster.monitor.v1beta1.Monitor/SearchEvents"; - requestStream: false; - responseStream: true; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const MonitorService: IMonitorService; - -export interface IMonitorServer extends grpc.UntypedServiceImplementation { - searchEvents: grpc.handleServerStreamingCall; -} - -export interface IMonitorClient { - searchEvents(request: monitor_pb.SearchEventsRequest, options?: Partial): grpc.ClientReadableStream; - searchEvents(request: monitor_pb.SearchEventsRequest, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; -} - -export class MonitorClient extends grpc.Client implements IMonitorClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public searchEvents(request: monitor_pb.SearchEventsRequest, options?: Partial): grpc.ClientReadableStream; - public searchEvents(request: monitor_pb.SearchEventsRequest, metadata?: grpc.Metadata, options?: Partial): grpc.ClientReadableStream; -} diff --git a/mods/monitor/src/service/protos/monitor_grpc_pb.js b/mods/monitor/src/service/protos/monitor_grpc_pb.js deleted file mode 100644 index f301b8d47..000000000 --- a/mods/monitor/src/service/protos/monitor_grpc_pb.js +++ /dev/null @@ -1,50 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// * -// MIT License -// Copyright (c) 2021 Fonoster Inc -'use strict'; -var grpc = require('@grpc/grpc-js'); -var monitor_pb = require('./monitor_pb.js'); -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); - -function serialize_fonoster_monitor_v1beta1_Event(arg) { - if (!(arg instanceof monitor_pb.Event)) { - throw new Error('Expected argument of type fonoster.monitor.v1beta1.Event'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_monitor_v1beta1_Event(buffer_arg) { - return monitor_pb.Event.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_monitor_v1beta1_SearchEventsRequest(arg) { - if (!(arg instanceof monitor_pb.SearchEventsRequest)) { - throw new Error('Expected argument of type fonoster.monitor.v1beta1.SearchEventsRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_monitor_v1beta1_SearchEventsRequest(buffer_arg) { - return monitor_pb.SearchEventsRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var MonitorService = exports.MonitorService = { - // Gets a stream of events -searchEvents: { - path: '/fonoster.monitor.v1beta1.Monitor/SearchEvents', - requestStream: false, - responseStream: true, - requestType: monitor_pb.SearchEventsRequest, - responseType: monitor_pb.Event, - requestSerialize: serialize_fonoster_monitor_v1beta1_SearchEventsRequest, - requestDeserialize: deserialize_fonoster_monitor_v1beta1_SearchEventsRequest, - responseSerialize: serialize_fonoster_monitor_v1beta1_Event, - responseDeserialize: deserialize_fonoster_monitor_v1beta1_Event, - }, -}; - -exports.MonitorClient = grpc.makeGenericClientConstructor(MonitorService); diff --git a/mods/monitor/src/service/protos/monitor_pb.d.ts b/mods/monitor/src/service/protos/monitor_pb.d.ts deleted file mode 100644 index c73485b38..000000000 --- a/mods/monitor/src/service/protos/monitor_pb.d.ts +++ /dev/null @@ -1,82 +0,0 @@ -// package: fonoster.monitor.v1beta1 -// file: monitor.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class SearchEventsRequest extends jspb.Message { - - hasQuery(): boolean; - clearQuery(): void; - getQuery(): google_protobuf_struct_pb.Struct | undefined; - setQuery(value?: google_protobuf_struct_pb.Struct): SearchEventsRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SearchEventsRequest.AsObject; - static toObject(includeInstance: boolean, msg: SearchEventsRequest): SearchEventsRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SearchEventsRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SearchEventsRequest; - static deserializeBinaryFromReader(message: SearchEventsRequest, reader: jspb.BinaryReader): SearchEventsRequest; -} - -export namespace SearchEventsRequest { - export type AsObject = { - query?: google_protobuf_struct_pb.Struct.AsObject, - } -} - -export class Event extends jspb.Message { - getRef(): string; - setRef(value: string): Event; - getEventType(): EventType; - setEventType(value: EventType): Event; - getLevel(): Level; - setLevel(value: Level): Event; - getTimestamp(): string; - setTimestamp(value: string): Event; - getMessage(): string; - setMessage(value: string): Event; - - hasBody(): boolean; - clearBody(): void; - getBody(): google_protobuf_struct_pb.Struct | undefined; - setBody(value?: google_protobuf_struct_pb.Struct): Event; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Event.AsObject; - static toObject(includeInstance: boolean, msg: Event): Event.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Event, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Event; - static deserializeBinaryFromReader(message: Event, reader: jspb.BinaryReader): Event; -} - -export namespace Event { - export type AsObject = { - ref: string, - eventType: EventType, - level: Level, - timestamp: string, - message: string, - body?: google_protobuf_struct_pb.Struct.AsObject, - } -} - -export enum Level { - INFO = 0, - WARN = 1, - ERROR = 2, - VERBOSE = 3, -} - -export enum EventType { - APP = 0, - SIP = 1, - CALL = 2, -} diff --git a/mods/monitor/src/service/protos/monitor_pb.js b/mods/monitor/src/service/protos/monitor_pb.js deleted file mode 100644 index 02be2aff9..000000000 --- a/mods/monitor/src/service/protos/monitor_pb.js +++ /dev/null @@ -1,537 +0,0 @@ -// source: monitor.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.fonoster.monitor.v1beta1.Event', null, global); -goog.exportSymbol('proto.fonoster.monitor.v1beta1.EventType', null, global); -goog.exportSymbol('proto.fonoster.monitor.v1beta1.Level', null, global); -goog.exportSymbol('proto.fonoster.monitor.v1beta1.SearchEventsRequest', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.monitor.v1beta1.SearchEventsRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.monitor.v1beta1.SearchEventsRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.monitor.v1beta1.SearchEventsRequest.displayName = 'proto.fonoster.monitor.v1beta1.SearchEventsRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.monitor.v1beta1.Event = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.monitor.v1beta1.Event, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.monitor.v1beta1.Event.displayName = 'proto.fonoster.monitor.v1beta1.Event'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.monitor.v1beta1.SearchEventsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.monitor.v1beta1.SearchEventsRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.monitor.v1beta1.SearchEventsRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.monitor.v1beta1.SearchEventsRequest.toObject = function(includeInstance, msg) { - var f, obj = { - query: (f = msg.getQuery()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.monitor.v1beta1.SearchEventsRequest} - */ -proto.fonoster.monitor.v1beta1.SearchEventsRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.monitor.v1beta1.SearchEventsRequest; - return proto.fonoster.monitor.v1beta1.SearchEventsRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.monitor.v1beta1.SearchEventsRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.monitor.v1beta1.SearchEventsRequest} - */ -proto.fonoster.monitor.v1beta1.SearchEventsRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new google_protobuf_struct_pb.Struct; - reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); - msg.setQuery(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.monitor.v1beta1.SearchEventsRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.monitor.v1beta1.SearchEventsRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.monitor.v1beta1.SearchEventsRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.monitor.v1beta1.SearchEventsRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getQuery(); - if (f != null) { - writer.writeMessage( - 1, - f, - google_protobuf_struct_pb.Struct.serializeBinaryToWriter - ); - } -}; - - -/** - * optional google.protobuf.Struct query = 1; - * @return {?proto.google.protobuf.Struct} - */ -proto.fonoster.monitor.v1beta1.SearchEventsRequest.prototype.getQuery = function() { - return /** @type{?proto.google.protobuf.Struct} */ ( - jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 1)); -}; - - -/** - * @param {?proto.google.protobuf.Struct|undefined} value - * @return {!proto.fonoster.monitor.v1beta1.SearchEventsRequest} returns this -*/ -proto.fonoster.monitor.v1beta1.SearchEventsRequest.prototype.setQuery = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.monitor.v1beta1.SearchEventsRequest} returns this - */ -proto.fonoster.monitor.v1beta1.SearchEventsRequest.prototype.clearQuery = function() { - return this.setQuery(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.monitor.v1beta1.SearchEventsRequest.prototype.hasQuery = function() { - return jspb.Message.getField(this, 1) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.monitor.v1beta1.Event.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.monitor.v1beta1.Event.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.monitor.v1beta1.Event} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.monitor.v1beta1.Event.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - eventType: jspb.Message.getFieldWithDefault(msg, 2, 0), - level: jspb.Message.getFieldWithDefault(msg, 3, 0), - timestamp: jspb.Message.getFieldWithDefault(msg, 4, ""), - message: jspb.Message.getFieldWithDefault(msg, 5, ""), - body: (f = msg.getBody()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.monitor.v1beta1.Event} - */ -proto.fonoster.monitor.v1beta1.Event.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.monitor.v1beta1.Event; - return proto.fonoster.monitor.v1beta1.Event.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.monitor.v1beta1.Event} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.monitor.v1beta1.Event} - */ -proto.fonoster.monitor.v1beta1.Event.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {!proto.fonoster.monitor.v1beta1.EventType} */ (reader.readEnum()); - msg.setEventType(value); - break; - case 3: - var value = /** @type {!proto.fonoster.monitor.v1beta1.Level} */ (reader.readEnum()); - msg.setLevel(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setTimestamp(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - case 6: - var value = new google_protobuf_struct_pb.Struct; - reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); - msg.setBody(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.monitor.v1beta1.Event.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.monitor.v1beta1.Event.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.monitor.v1beta1.Event} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.monitor.v1beta1.Event.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getEventType(); - if (f !== 0.0) { - writer.writeEnum( - 2, - f - ); - } - f = message.getLevel(); - if (f !== 0.0) { - writer.writeEnum( - 3, - f - ); - } - f = message.getTimestamp(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getBody(); - if (f != null) { - writer.writeMessage( - 6, - f, - google_protobuf_struct_pb.Struct.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.monitor.v1beta1.Event.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.monitor.v1beta1.Event} returns this - */ -proto.fonoster.monitor.v1beta1.Event.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional EventType event_type = 2; - * @return {!proto.fonoster.monitor.v1beta1.EventType} - */ -proto.fonoster.monitor.v1beta1.Event.prototype.getEventType = function() { - return /** @type {!proto.fonoster.monitor.v1beta1.EventType} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** - * @param {!proto.fonoster.monitor.v1beta1.EventType} value - * @return {!proto.fonoster.monitor.v1beta1.Event} returns this - */ -proto.fonoster.monitor.v1beta1.Event.prototype.setEventType = function(value) { - return jspb.Message.setProto3EnumField(this, 2, value); -}; - - -/** - * optional Level level = 3; - * @return {!proto.fonoster.monitor.v1beta1.Level} - */ -proto.fonoster.monitor.v1beta1.Event.prototype.getLevel = function() { - return /** @type {!proto.fonoster.monitor.v1beta1.Level} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {!proto.fonoster.monitor.v1beta1.Level} value - * @return {!proto.fonoster.monitor.v1beta1.Event} returns this - */ -proto.fonoster.monitor.v1beta1.Event.prototype.setLevel = function(value) { - return jspb.Message.setProto3EnumField(this, 3, value); -}; - - -/** - * optional string timestamp = 4; - * @return {string} - */ -proto.fonoster.monitor.v1beta1.Event.prototype.getTimestamp = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.monitor.v1beta1.Event} returns this - */ -proto.fonoster.monitor.v1beta1.Event.prototype.setTimestamp = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string message = 5; - * @return {string} - */ -proto.fonoster.monitor.v1beta1.Event.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.monitor.v1beta1.Event} returns this - */ -proto.fonoster.monitor.v1beta1.Event.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional google.protobuf.Struct body = 6; - * @return {?proto.google.protobuf.Struct} - */ -proto.fonoster.monitor.v1beta1.Event.prototype.getBody = function() { - return /** @type{?proto.google.protobuf.Struct} */ ( - jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 6)); -}; - - -/** - * @param {?proto.google.protobuf.Struct|undefined} value - * @return {!proto.fonoster.monitor.v1beta1.Event} returns this -*/ -proto.fonoster.monitor.v1beta1.Event.prototype.setBody = function(value) { - return jspb.Message.setWrapperField(this, 6, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.monitor.v1beta1.Event} returns this - */ -proto.fonoster.monitor.v1beta1.Event.prototype.clearBody = function() { - return this.setBody(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.monitor.v1beta1.Event.prototype.hasBody = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * @enum {number} - */ -proto.fonoster.monitor.v1beta1.Level = { - INFO: 0, - WARN: 1, - ERROR: 2, - VERBOSE: 3 -}; - -/** - * @enum {number} - */ -proto.fonoster.monitor.v1beta1.EventType = { - APP: 0, - SIP: 1, - CALL: 2 -}; - -goog.object.extend(exports, proto.fonoster.monitor.v1beta1); diff --git a/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js b/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts b/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts deleted file mode 100644 index 8e3a35012..000000000 --- a/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; -import * as protoc_gen_openapiv2_options_openapiv2_pb from "../../protoc-gen-openapiv2/options/openapiv2_pb"; - -export const openapiv2Swagger: jspb.ExtensionFieldInfo; - -export const openapiv2Operation: jspb.ExtensionFieldInfo; - -export const openapiv2Schema: jspb.ExtensionFieldInfo; - -export const openapiv2Tag: jspb.ExtensionFieldInfo; - -export const openapiv2Field: jspb.ExtensionFieldInfo; diff --git a/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js b/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js deleted file mode 100644 index e92ccec18..000000000 --- a/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js +++ /dev/null @@ -1,152 +0,0 @@ -// source: protoc-gen-openapiv2/options/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -var protoc$gen$openapiv2_options_openapiv2_pb = require('../../protoc-gen-openapiv2/options/openapiv2_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_openapiv2_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Swagger`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Swagger: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.toObject), - 0); - -google_protobuf_descriptor_pb.FileOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FileOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Operation`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Operation: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Operation, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Operation.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Schema`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Schema: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Schema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Schema.toObject), - 0); - -google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MessageOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Tag`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Tag: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Tag, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Tag.toObject), - 0); - -google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.ServiceOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Field`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Field: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.toObject), - 0); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js b/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts b/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts deleted file mode 100644 index 3c3972ea9..000000000 --- a/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +++ /dev/null @@ -1,685 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/openapiv2.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class Swagger extends jspb.Message { - getSwagger(): string; - setSwagger(value: string): Swagger; - - hasInfo(): boolean; - clearInfo(): void; - getInfo(): Info | undefined; - setInfo(value?: Info): Swagger; - getHost(): string; - setHost(value: string): Swagger; - getBasePath(): string; - setBasePath(value: string): Swagger; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Swagger; - addSchemes(value: Scheme, index?: number): Scheme; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Swagger; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Swagger; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - - hasSecurityDefinitions(): boolean; - clearSecurityDefinitions(): void; - getSecurityDefinitions(): SecurityDefinitions | undefined; - setSecurityDefinitions(value?: SecurityDefinitions): Swagger; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Swagger; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Swagger; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Swagger.AsObject; - static toObject(includeInstance: boolean, msg: Swagger): Swagger.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Swagger, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Swagger; - static deserializeBinaryFromReader(message: Swagger, reader: jspb.BinaryReader): Swagger; -} - -export namespace Swagger { - export type AsObject = { - swagger: string, - info?: Info.AsObject, - host: string, - basePath: string, - schemesList: Array, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - securityDefinitions?: SecurityDefinitions.AsObject, - securityList: Array, - externalDocs?: ExternalDocumentation.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Operation extends jspb.Message { - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): Operation; - addTags(value: string, index?: number): string; - getSummary(): string; - setSummary(value: string): Operation; - getDescription(): string; - setDescription(value: string): Operation; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Operation; - getOperationId(): string; - setOperationId(value: string): Operation; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Operation; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Operation; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Operation; - addSchemes(value: Scheme, index?: number): Scheme; - getDeprecated(): boolean; - setDeprecated(value: boolean): Operation; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Operation; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Operation.AsObject; - static toObject(includeInstance: boolean, msg: Operation): Operation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Operation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Operation; - static deserializeBinaryFromReader(message: Operation, reader: jspb.BinaryReader): Operation; -} - -export namespace Operation { - export type AsObject = { - tagsList: Array, - summary: string, - description: string, - externalDocs?: ExternalDocumentation.AsObject, - operationId: string, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - schemesList: Array, - deprecated: boolean, - securityList: Array, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Header extends jspb.Message { - getDescription(): string; - setDescription(value: string): Header; - getType(): string; - setType(value: string): Header; - getFormat(): string; - setFormat(value: string): Header; - getDefault(): string; - setDefault(value: string): Header; - getPattern(): string; - setPattern(value: string): Header; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Header.AsObject; - static toObject(includeInstance: boolean, msg: Header): Header.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Header, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Header; - static deserializeBinaryFromReader(message: Header, reader: jspb.BinaryReader): Header; -} - -export namespace Header { - export type AsObject = { - description: string, - type: string, - format: string, - pb_default: string, - pattern: string, - } -} - -export class Response extends jspb.Message { - getDescription(): string; - setDescription(value: string): Response; - - hasSchema(): boolean; - clearSchema(): void; - getSchema(): Schema | undefined; - setSchema(value?: Schema): Response; - - getHeadersMap(): jspb.Map; - clearHeadersMap(): void; - - getExamplesMap(): jspb.Map; - clearExamplesMap(): void; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Response.AsObject; - static toObject(includeInstance: boolean, msg: Response): Response.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Response, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Response; - static deserializeBinaryFromReader(message: Response, reader: jspb.BinaryReader): Response; -} - -export namespace Response { - export type AsObject = { - description: string, - schema?: Schema.AsObject, - - headersMap: Array<[string, Header.AsObject]>, - - examplesMap: Array<[string, string]>, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Info extends jspb.Message { - getTitle(): string; - setTitle(value: string): Info; - getDescription(): string; - setDescription(value: string): Info; - getTermsOfService(): string; - setTermsOfService(value: string): Info; - - hasContact(): boolean; - clearContact(): void; - getContact(): Contact | undefined; - setContact(value?: Contact): Info; - - hasLicense(): boolean; - clearLicense(): void; - getLicense(): License | undefined; - setLicense(value?: License): Info; - getVersion(): string; - setVersion(value: string): Info; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Info.AsObject; - static toObject(includeInstance: boolean, msg: Info): Info.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Info, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Info; - static deserializeBinaryFromReader(message: Info, reader: jspb.BinaryReader): Info; -} - -export namespace Info { - export type AsObject = { - title: string, - description: string, - termsOfService: string, - contact?: Contact.AsObject, - license?: License.AsObject, - version: string, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Contact extends jspb.Message { - getName(): string; - setName(value: string): Contact; - getUrl(): string; - setUrl(value: string): Contact; - getEmail(): string; - setEmail(value: string): Contact; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contact.AsObject; - static toObject(includeInstance: boolean, msg: Contact): Contact.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contact, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contact; - static deserializeBinaryFromReader(message: Contact, reader: jspb.BinaryReader): Contact; -} - -export namespace Contact { - export type AsObject = { - name: string, - url: string, - email: string, - } -} - -export class License extends jspb.Message { - getName(): string; - setName(value: string): License; - getUrl(): string; - setUrl(value: string): License; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): License.AsObject; - static toObject(includeInstance: boolean, msg: License): License.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: License, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): License; - static deserializeBinaryFromReader(message: License, reader: jspb.BinaryReader): License; -} - -export namespace License { - export type AsObject = { - name: string, - url: string, - } -} - -export class ExternalDocumentation extends jspb.Message { - getDescription(): string; - setDescription(value: string): ExternalDocumentation; - getUrl(): string; - setUrl(value: string): ExternalDocumentation; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ExternalDocumentation.AsObject; - static toObject(includeInstance: boolean, msg: ExternalDocumentation): ExternalDocumentation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ExternalDocumentation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ExternalDocumentation; - static deserializeBinaryFromReader(message: ExternalDocumentation, reader: jspb.BinaryReader): ExternalDocumentation; -} - -export namespace ExternalDocumentation { - export type AsObject = { - description: string, - url: string, - } -} - -export class Schema extends jspb.Message { - - hasJsonSchema(): boolean; - clearJsonSchema(): void; - getJsonSchema(): JSONSchema | undefined; - setJsonSchema(value?: JSONSchema): Schema; - getDiscriminator(): string; - setDiscriminator(value: string): Schema; - getReadOnly(): boolean; - setReadOnly(value: boolean): Schema; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Schema; - getExample(): string; - setExample(value: string): Schema; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Schema.AsObject; - static toObject(includeInstance: boolean, msg: Schema): Schema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Schema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Schema; - static deserializeBinaryFromReader(message: Schema, reader: jspb.BinaryReader): Schema; -} - -export namespace Schema { - export type AsObject = { - jsonSchema?: JSONSchema.AsObject, - discriminator: string, - readOnly: boolean, - externalDocs?: ExternalDocumentation.AsObject, - example: string, - } -} - -export class JSONSchema extends jspb.Message { - getRef(): string; - setRef(value: string): JSONSchema; - getTitle(): string; - setTitle(value: string): JSONSchema; - getDescription(): string; - setDescription(value: string): JSONSchema; - getDefault(): string; - setDefault(value: string): JSONSchema; - getReadOnly(): boolean; - setReadOnly(value: boolean): JSONSchema; - getExample(): string; - setExample(value: string): JSONSchema; - getMultipleOf(): number; - setMultipleOf(value: number): JSONSchema; - getMaximum(): number; - setMaximum(value: number): JSONSchema; - getExclusiveMaximum(): boolean; - setExclusiveMaximum(value: boolean): JSONSchema; - getMinimum(): number; - setMinimum(value: number): JSONSchema; - getExclusiveMinimum(): boolean; - setExclusiveMinimum(value: boolean): JSONSchema; - getMaxLength(): number; - setMaxLength(value: number): JSONSchema; - getMinLength(): number; - setMinLength(value: number): JSONSchema; - getPattern(): string; - setPattern(value: string): JSONSchema; - getMaxItems(): number; - setMaxItems(value: number): JSONSchema; - getMinItems(): number; - setMinItems(value: number): JSONSchema; - getUniqueItems(): boolean; - setUniqueItems(value: boolean): JSONSchema; - getMaxProperties(): number; - setMaxProperties(value: number): JSONSchema; - getMinProperties(): number; - setMinProperties(value: number): JSONSchema; - clearRequiredList(): void; - getRequiredList(): Array; - setRequiredList(value: Array): JSONSchema; - addRequired(value: string, index?: number): string; - clearArrayList(): void; - getArrayList(): Array; - setArrayList(value: Array): JSONSchema; - addArray(value: string, index?: number): string; - clearTypeList(): void; - getTypeList(): Array; - setTypeList(value: Array): JSONSchema; - addType(value: JSONSchema.JSONSchemaSimpleTypes, index?: number): JSONSchema.JSONSchemaSimpleTypes; - getFormat(): string; - setFormat(value: string): JSONSchema; - clearEnumList(): void; - getEnumList(): Array; - setEnumList(value: Array): JSONSchema; - addEnum(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): JSONSchema.AsObject; - static toObject(includeInstance: boolean, msg: JSONSchema): JSONSchema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: JSONSchema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): JSONSchema; - static deserializeBinaryFromReader(message: JSONSchema, reader: jspb.BinaryReader): JSONSchema; -} - -export namespace JSONSchema { - export type AsObject = { - ref: string, - title: string, - description: string, - pb_default: string, - readOnly: boolean, - example: string, - multipleOf: number, - maximum: number, - exclusiveMaximum: boolean, - minimum: number, - exclusiveMinimum: boolean, - maxLength: number, - minLength: number, - pattern: string, - maxItems: number, - minItems: number, - uniqueItems: boolean, - maxProperties: number, - minProperties: number, - requiredList: Array, - arrayList: Array, - typeList: Array, - format: string, - pb_enumList: Array, - } - - export enum JSONSchemaSimpleTypes { - UNKNOWN = 0, - ARRAY = 1, - BOOLEAN = 2, - INTEGER = 3, - NULL = 4, - NUMBER = 5, - OBJECT = 6, - STRING = 7, - } - -} - -export class Tag extends jspb.Message { - getDescription(): string; - setDescription(value: string): Tag; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Tag; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Tag.AsObject; - static toObject(includeInstance: boolean, msg: Tag): Tag.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Tag, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Tag; - static deserializeBinaryFromReader(message: Tag, reader: jspb.BinaryReader): Tag; -} - -export namespace Tag { - export type AsObject = { - description: string, - externalDocs?: ExternalDocumentation.AsObject, - } -} - -export class SecurityDefinitions extends jspb.Message { - - getSecurityMap(): jspb.Map; - clearSecurityMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityDefinitions.AsObject; - static toObject(includeInstance: boolean, msg: SecurityDefinitions): SecurityDefinitions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityDefinitions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityDefinitions; - static deserializeBinaryFromReader(message: SecurityDefinitions, reader: jspb.BinaryReader): SecurityDefinitions; -} - -export namespace SecurityDefinitions { - export type AsObject = { - - securityMap: Array<[string, SecurityScheme.AsObject]>, - } -} - -export class SecurityScheme extends jspb.Message { - getType(): SecurityScheme.Type; - setType(value: SecurityScheme.Type): SecurityScheme; - getDescription(): string; - setDescription(value: string): SecurityScheme; - getName(): string; - setName(value: string): SecurityScheme; - getIn(): SecurityScheme.In; - setIn(value: SecurityScheme.In): SecurityScheme; - getFlow(): SecurityScheme.Flow; - setFlow(value: SecurityScheme.Flow): SecurityScheme; - getAuthorizationUrl(): string; - setAuthorizationUrl(value: string): SecurityScheme; - getTokenUrl(): string; - setTokenUrl(value: string): SecurityScheme; - - hasScopes(): boolean; - clearScopes(): void; - getScopes(): Scopes | undefined; - setScopes(value?: Scopes): SecurityScheme; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityScheme.AsObject; - static toObject(includeInstance: boolean, msg: SecurityScheme): SecurityScheme.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityScheme, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityScheme; - static deserializeBinaryFromReader(message: SecurityScheme, reader: jspb.BinaryReader): SecurityScheme; -} - -export namespace SecurityScheme { - export type AsObject = { - type: SecurityScheme.Type, - description: string, - name: string, - pb_in: SecurityScheme.In, - flow: SecurityScheme.Flow, - authorizationUrl: string, - tokenUrl: string, - scopes?: Scopes.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } - - export enum Type { - TYPE_INVALID = 0, - TYPE_BASIC = 1, - TYPE_API_KEY = 2, - TYPE_OAUTH2 = 3, - } - - export enum In { - IN_INVALID = 0, - IN_QUERY = 1, - IN_HEADER = 2, - } - - export enum Flow { - FLOW_INVALID = 0, - FLOW_IMPLICIT = 1, - FLOW_PASSWORD = 2, - FLOW_APPLICATION = 3, - FLOW_ACCESS_CODE = 4, - } - -} - -export class SecurityRequirement extends jspb.Message { - - getSecurityRequirementMap(): jspb.Map; - clearSecurityRequirementMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirement.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirement): SecurityRequirement.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirement, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirement; - static deserializeBinaryFromReader(message: SecurityRequirement, reader: jspb.BinaryReader): SecurityRequirement; -} - -export namespace SecurityRequirement { - export type AsObject = { - - securityRequirementMap: Array<[string, SecurityRequirement.SecurityRequirementValue.AsObject]>, - } - - - export class SecurityRequirementValue extends jspb.Message { - clearScopeList(): void; - getScopeList(): Array; - setScopeList(value: Array): SecurityRequirementValue; - addScope(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirementValue.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirementValue): SecurityRequirementValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirementValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirementValue; - static deserializeBinaryFromReader(message: SecurityRequirementValue, reader: jspb.BinaryReader): SecurityRequirementValue; - } - - export namespace SecurityRequirementValue { - export type AsObject = { - scopeList: Array, - } - } - -} - -export class Scopes extends jspb.Message { - - getScopeMap(): jspb.Map; - clearScopeMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Scopes.AsObject; - static toObject(includeInstance: boolean, msg: Scopes): Scopes.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Scopes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Scopes; - static deserializeBinaryFromReader(message: Scopes, reader: jspb.BinaryReader): Scopes; -} - -export namespace Scopes { - export type AsObject = { - - scopeMap: Array<[string, string]>, - } -} - -export enum Scheme { - UNKNOWN = 0, - HTTP = 1, - HTTPS = 2, - WS = 3, - WSS = 4, -} diff --git a/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js b/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js deleted file mode 100644 index be8a6bfd2..000000000 --- a/mods/monitor/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js +++ /dev/null @@ -1,5367 +0,0 @@ -// source: protoc-gen-openapiv2/options/openapiv2.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Contact', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Header', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Info', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.License', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Response', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Tag', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Operation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Operation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Header, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Header'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Response, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Response'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Info, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Info'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Contact'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.License, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.License.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.License'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Schema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Tag, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Tag'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_ = [5,6,7,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject = function(includeInstance, msg) { - var f, obj = { - swagger: jspb.Message.getFieldWithDefault(msg, 1, ""), - info: (f = msg.getInfo()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(includeInstance, f), - host: jspb.Message.getFieldWithDefault(msg, 3, ""), - basePath: jspb.Message.getFieldWithDefault(msg, 4, ""), - schemesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - securityDefinitions: (f = msg.getSecurityDefinitions()) && proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(includeInstance, f), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSwagger(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader); - msg.setInfo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setBasePath(value); - break; - case 5: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 10: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 11: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader); - msg.setSecurityDefinitions(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 14: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 15: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSwagger(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInfo(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBasePath(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSecurityDefinitions(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 14, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string swagger = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSwagger = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSwagger = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Info info = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getInfo = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Info, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearInfo = function() { - return this.setInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasInfo = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string host = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string base_path = 4; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getBasePath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setBasePath = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated Scheme schemes = 5; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 10; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 10, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * optional SecurityDefinitions security_definitions = 11; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityDefinitions = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, 11)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityDefinitions = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityDefinitions = function() { - return this.setSecurityDefinitions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasSecurityDefinitions = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * optional ExternalDocumentation external_docs = 14; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 14)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 14, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 14) != null; -}; - - -/** - * map extensions = 15; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 15, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_ = [1,6,7,10,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject = function(includeInstance, msg) { - var f, obj = { - tagsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - summary: jspb.Message.getFieldWithDefault(msg, 2, ""), - description: jspb.Message.getFieldWithDefault(msg, 3, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - operationId: jspb.Message.getFieldWithDefault(msg, 5, ""), - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - schemesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f, - deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 11, false), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Operation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSummary(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setOperationId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 9: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 10: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDeprecated(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 13: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getSummary(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getOperationId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 10, - f - ); - } - f = message.getDeprecated(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * repeated string tags = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getTagsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setTagsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addTags = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearTagsList = function() { - return this.setTagsList([]); -}; - - -/** - * optional string summary = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSummary = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSummary = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string description = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string operation_id = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getOperationId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setOperationId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * repeated Scheme schemes = 10; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 10, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 10, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * optional bool deprecated = 11; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDeprecated = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDeprecated = function(value) { - return jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * map extensions = 13; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 13, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, ""), - format: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 6, ""), - pattern: jspb.Message.getFieldWithDefault(msg, 13, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Header; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string type = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string format = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string default = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string pattern = 13; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 13, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - schema: (f = msg.getSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(includeInstance, f), - headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject) : [], - examplesMap: (f = msg.getExamplesMap()) ? f.toObject(includeInstance, undefined) : [], - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Response; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader); - msg.setSchema(value); - break; - case 3: - var value = msg.getHeadersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Header()); - }); - break; - case 4: - var value = msg.getExamplesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - case 5: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchema(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter - ); - } - f = message.getHeadersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter); - } - f = message.getExamplesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Schema schema = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setSchema = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearSchema = function() { - return this.setSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.hasSchema = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * map headers = 3; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getHeadersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 3, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Header)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearHeadersMap = function() { - this.getHeadersMap().clear(); - return this;}; - - -/** - * map examples = 4; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExamplesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 4, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExamplesMap = function() { - this.getExamplesMap().clear(); - return this;}; - - -/** - * map extensions = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject = function(includeInstance, msg) { - var f, obj = { - title: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - termsOfService: jspb.Message.getFieldWithDefault(msg, 3, ""), - contact: (f = msg.getContact()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(includeInstance, f), - license: (f = msg.getLicense()) && proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(includeInstance, f), - version: jspb.Message.getFieldWithDefault(msg, 6, ""), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTermsOfService(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader); - msg.setContact(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader); - msg.setLicense(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 7: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTermsOfService(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getContact(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter - ); - } - f = message.getLicense(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string title = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string terms_of_service = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTermsOfService = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTermsOfService = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional Contact contact = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getContact = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setContact = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearContact = function() { - return this.setContact(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasContact = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional License license = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getLicense = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.License} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.License, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.License|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setLicense = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearLicense = function() { - return this.setLicense(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasLicense = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string version = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setVersion = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * map extensions = 7; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 7, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject = function(includeInstance, msg) { - var f, obj = { - jsonSchema: (f = msg.getJsonSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(includeInstance, f), - discriminator: jspb.Message.getFieldWithDefault(msg, 2, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - example: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader); - msg.setJsonSchema(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDiscriminator(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsonSchema(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter - ); - } - f = message.getDiscriminator(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional JSONSchema json_schema = 1; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getJsonSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, 1)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setJsonSchema = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearJsonSchema = function() { - return this.setJsonSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasJsonSchema = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string discriminator = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getDiscriminator = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setDiscriminator = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool read_only = 3; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string example = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_ = [26,34,35,46]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 3, ""), - title: jspb.Message.getFieldWithDefault(msg, 5, ""), - description: jspb.Message.getFieldWithDefault(msg, 6, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 7, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - example: jspb.Message.getFieldWithDefault(msg, 9, ""), - multipleOf: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0), - maximum: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0), - exclusiveMaximum: jspb.Message.getBooleanFieldWithDefault(msg, 12, false), - minimum: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), - exclusiveMinimum: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - maxLength: jspb.Message.getFieldWithDefault(msg, 15, 0), - minLength: jspb.Message.getFieldWithDefault(msg, 16, 0), - pattern: jspb.Message.getFieldWithDefault(msg, 17, ""), - maxItems: jspb.Message.getFieldWithDefault(msg, 20, 0), - minItems: jspb.Message.getFieldWithDefault(msg, 21, 0), - uniqueItems: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), - maxProperties: jspb.Message.getFieldWithDefault(msg, 24, 0), - minProperties: jspb.Message.getFieldWithDefault(msg, 25, 0), - requiredList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, - arrayList: (f = jspb.Message.getRepeatedField(msg, 34)) == null ? undefined : f, - typeList: (f = jspb.Message.getRepeatedField(msg, 35)) == null ? undefined : f, - format: jspb.Message.getFieldWithDefault(msg, 36, ""), - enumList: (f = jspb.Message.getRepeatedField(msg, 46)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - case 10: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMultipleOf(value); - break; - case 11: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMaximum(value); - break; - case 12: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMaximum(value); - break; - case 13: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMinimum(value); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMinimum(value); - break; - case 15: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxLength(value); - break; - case 16: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinLength(value); - break; - case 17: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - case 20: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxItems(value); - break; - case 21: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinItems(value); - break; - case 22: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUniqueItems(value); - break; - case 24: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxProperties(value); - break; - case 25: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinProperties(value); - break; - case 26: - var value = /** @type {string} */ (reader.readString()); - msg.addRequired(value); - break; - case 34: - var value = /** @type {string} */ (reader.readString()); - msg.addArray(value); - break; - case 35: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addType(values[i]); - } - break; - case 36: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 46: - var value = /** @type {string} */ (reader.readString()); - msg.addEnum(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getMultipleOf(); - if (f !== 0.0) { - writer.writeDouble( - 10, - f - ); - } - f = message.getMaximum(); - if (f !== 0.0) { - writer.writeDouble( - 11, - f - ); - } - f = message.getExclusiveMaximum(); - if (f) { - writer.writeBool( - 12, - f - ); - } - f = message.getMinimum(); - if (f !== 0.0) { - writer.writeDouble( - 13, - f - ); - } - f = message.getExclusiveMinimum(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getMaxLength(); - if (f !== 0) { - writer.writeUint64( - 15, - f - ); - } - f = message.getMinLength(); - if (f !== 0) { - writer.writeUint64( - 16, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 17, - f - ); - } - f = message.getMaxItems(); - if (f !== 0) { - writer.writeUint64( - 20, - f - ); - } - f = message.getMinItems(); - if (f !== 0) { - writer.writeUint64( - 21, - f - ); - } - f = message.getUniqueItems(); - if (f) { - writer.writeBool( - 22, - f - ); - } - f = message.getMaxProperties(); - if (f !== 0) { - writer.writeUint64( - 24, - f - ); - } - f = message.getMinProperties(); - if (f !== 0) { - writer.writeUint64( - 25, - f - ); - } - f = message.getRequiredList(); - if (f.length > 0) { - writer.writeRepeatedString( - 26, - f - ); - } - f = message.getArrayList(); - if (f.length > 0) { - writer.writeRepeatedString( - 34, - f - ); - } - f = message.getTypeList(); - if (f.length > 0) { - writer.writePackedEnum( - 35, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 36, - f - ); - } - f = message.getEnumList(); - if (f.length > 0) { - writer.writeRepeatedString( - 46, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes = { - UNKNOWN: 0, - ARRAY: 1, - BOOLEAN: 2, - INTEGER: 3, - NULL: 4, - NUMBER: 5, - OBJECT: 6, - STRING: 7 -}; - -/** - * optional string ref = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string title = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string description = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string default = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional bool read_only = 8; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - -/** - * optional string example = 9; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional double multiple_of = 10; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMultipleOf = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMultipleOf = function(value) { - return jspb.Message.setProto3FloatField(this, 10, value); -}; - - -/** - * optional double maximum = 11; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaximum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaximum = function(value) { - return jspb.Message.setProto3FloatField(this, 11, value); -}; - - -/** - * optional bool exclusive_maximum = 12; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMaximum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMaximum = function(value) { - return jspb.Message.setProto3BooleanField(this, 12, value); -}; - - -/** - * optional double minimum = 13; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinimum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinimum = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); -}; - - -/** - * optional bool exclusive_minimum = 14; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMinimum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMinimum = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * optional uint64 max_length = 15; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxLength = function(value) { - return jspb.Message.setProto3IntField(this, 15, value); -}; - - -/** - * optional uint64 min_length = 16; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinLength = function(value) { - return jspb.Message.setProto3IntField(this, 16, value); -}; - - -/** - * optional string pattern = 17; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 17, value); -}; - - -/** - * optional uint64 max_items = 20; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxItems = function(value) { - return jspb.Message.setProto3IntField(this, 20, value); -}; - - -/** - * optional uint64 min_items = 21; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinItems = function(value) { - return jspb.Message.setProto3IntField(this, 21, value); -}; - - -/** - * optional bool unique_items = 22; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getUniqueItems = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setUniqueItems = function(value) { - return jspb.Message.setProto3BooleanField(this, 22, value); -}; - - -/** - * optional uint64 max_properties = 24; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxProperties = function(value) { - return jspb.Message.setProto3IntField(this, 24, value); -}; - - -/** - * optional uint64 min_properties = 25; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinProperties = function(value) { - return jspb.Message.setProto3IntField(this, 25, value); -}; - - -/** - * repeated string required = 26; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRequiredList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 26)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRequiredList = function(value) { - return jspb.Message.setField(this, 26, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addRequired = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 26, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearRequiredList = function() { - return this.setRequiredList([]); -}; - - -/** - * repeated string array = 34; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getArrayList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 34)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setArrayList = function(value) { - return jspb.Message.setField(this, 34, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addArray = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 34, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearArrayList = function() { - return this.setArrayList([]); -}; - - -/** - * repeated JSONSchemaSimpleTypes type = 35; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTypeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 35)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTypeList = function(value) { - return jspb.Message.setField(this, 35, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addType = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 35, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearTypeList = function() { - return this.setTypeList([]); -}; - - -/** - * optional string format = 36; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 36, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 36, value); -}; - - -/** - * repeated string enum = 46; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getEnumList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 46)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setEnumList = function(value) { - return jspb.Message.setField(this, 46, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addEnum = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 46, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearEnumList = function() { - return this.setEnumList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Tag; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 3; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 3)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject = function(includeInstance, msg) { - var f, obj = { - securityMap: (f = msg.getSecurityMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter); - } -}; - - -/** - * map security = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.getSecurityMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.clearSecurityMap = function() { - this.getSecurityMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject = function(includeInstance, msg) { - var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_in: jspb.Message.getFieldWithDefault(msg, 4, 0), - flow: jspb.Message.getFieldWithDefault(msg, 5, 0), - authorizationUrl: jspb.Message.getFieldWithDefault(msg, 6, ""), - tokenUrl: jspb.Message.getFieldWithDefault(msg, 7, ""), - scopes: (f = msg.getScopes()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (reader.readEnum()); - msg.setIn(value); - break; - case 5: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (reader.readEnum()); - msg.setFlow(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthorizationUrl(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setTokenUrl(value); - break; - case 8: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader); - msg.setScopes(value); - break; - case 9: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIn(); - if (f !== 0.0) { - writer.writeEnum( - 4, - f - ); - } - f = message.getFlow(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } - f = message.getAuthorizationUrl(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getTokenUrl(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getScopes(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type = { - TYPE_INVALID: 0, - TYPE_BASIC: 1, - TYPE_API_KEY: 2, - TYPE_OAUTH2: 3 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In = { - IN_INVALID: 0, - IN_QUERY: 1, - IN_HEADER: 2 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow = { - FLOW_INVALID: 0, - FLOW_IMPLICIT: 1, - FLOW_PASSWORD: 2, - FLOW_APPLICATION: 3, - FLOW_ACCESS_CODE: 4 -}; - -/** - * optional Type type = 1; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getType = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional In in = 4; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getIn = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setIn = function(value) { - return jspb.Message.setProto3EnumField(this, 4, value); -}; - - -/** - * optional Flow flow = 5; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getFlow = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setFlow = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); -}; - - -/** - * optional string authorization_url = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getAuthorizationUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setAuthorizationUrl = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string token_url = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getTokenUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setTokenUrl = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional Scopes scopes = 8; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getScopes = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, 8)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setScopes = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearScopes = function() { - return this.setScopes(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.hasScopes = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * map extensions = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject = function(includeInstance, msg) { - var f, obj = { - securityRequirementMap: (f = msg.getSecurityRequirementMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityRequirementMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityRequirementMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject = function(includeInstance, msg) { - var f, obj = { - scopeList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addScope(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } -}; - - -/** - * repeated string scope = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.getScopeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.setScopeList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.addScope = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.clearScopeList = function() { - return this.setScopeList([]); -}; - - -/** - * map security_requirement = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.getSecurityRequirementMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.clearSecurityRequirementMap = function() { - this.getSecurityRequirementMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject = function(includeInstance, msg) { - var f, obj = { - scopeMap: (f = msg.getScopeMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getScopeMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map scope = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.getScopeMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.clearScopeMap = function() { - this.getScopeMap().clear(); - return this;}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme = { - UNKNOWN: 0, - HTTP: 1, - HTTPS: 2, - WS: 3, - WSS: 4 -}; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/monitor/src/service/runner.ts b/mods/monitor/src/service/runner.ts deleted file mode 100644 index d657dd05f..000000000 --- a/mods/monitor/src/service/runner.ts +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Tracer as T } from "@fonoster/common"; -T.init("monitor-service"); - -import MonitorServer from "./monitor"; -import { MonitorService } from "./protos/monitor_grpc_pb"; -import { AuthMiddleware } from "@fonoster/auth"; -import { getSalt } from "@fonoster/certs"; -import { runServices } from "@fonoster/common"; - -const services = [ - { - name: "monitor", - version: "v1beta1", - service: MonitorService, - server: new MonitorServer() - } -]; - -const middleware = { - name: "authentication", - middlewareObj: new AuthMiddleware(getSalt()).middleware -}; - -runServices(services, [middleware]); diff --git a/mods/monitor/test/monitor.unit.test.ts b/mods/monitor/test/monitor.unit.test.ts deleted file mode 100644 index b3b5e38d8..000000000 --- a/mods/monitor/test/monitor.unit.test.ts +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { APIClient } from "@fonoster/common"; -import Monitor, { MonitorPB } from "../src/client/monitor"; -import { Level } from "../src/service/level"; -import { EventType } from "../src/service/event_type"; -import { Struct } from "google-protobuf/google/protobuf/struct_pb"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/monitor", () => { - const eventObj = new MonitorPB.Event(); - eventObj.setRef("Nx05y-ldZa"); - eventObj.setMessage("Test message"); - eventObj.setLevel(Level.fromString("warn")); - eventObj.setEventType(EventType.fromString("app")); - eventObj.setTimestamp(new Date().toISOString()); - eventObj.setBody(Struct.fromJavaScript({ test: "test" })); - - afterEach(() => sandbox.restore()); - - it("should list events", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - searchEvents: () => { - return { - sendMessage: () => Promise.resolve([eventObj]) - }; - } - }); - - const request = { - query: {} - }; - - const monitorAPI = new Monitor(); - const result = await monitorAPI.searchEvents(request); - - expect(serviceStub).to.be.calledTwice; - expect(result).to.have.property("nextPageToken").to.be.equal(null); - expect(result.events[0]) - .to.have.property("ref") - .to.be.equal(eventObj.getRef()); - expect(result.events[0]) - .to.have.property("message") - .to.be.equal(eventObj.getMessage()); - expect(result.events[0]) - .to.have.property("level") - .to.be.equal(Level.toString(eventObj.getLevel())); - expect(result.events[0]) - .to.have.property("eventType") - .to.be.equal(EventType.toString(eventObj.getEventType())); - expect(result.events[0]).to.have.property("timestamp").to.be.not.null; - }); - - it("convert type to string", async () => { - expect(Level.fromString("info")).to.be.equal(0); - expect(Level.fromString("warn")).to.be.equal(1); - expect(Level.fromString("error")).to.be.equal(2); - expect(Level.fromString("verbose")).to.be.equal(3); - expect(EventType.fromString("app")).to.be.equal(0); - expect(EventType.fromString("sip")).to.be.equal(1); - expect(EventType.fromString("call")).to.be.equal(2); - - expect(Level.toString(0)).to.be.equal("info"); - expect(Level.toString(1)).to.be.equal("warn"); - expect(Level.toString(2)).to.be.equal("error"); - expect(Level.toString(3)).to.be.equal("verbose"); - expect(EventType.toString(0)).to.be.equal("app"); - expect(EventType.toString(1)).to.be.equal("sip"); - expect(EventType.toString(2)).to.be.equal("call"); - }); -}); diff --git a/mods/monitor/tsconfig.json b/mods/monitor/tsconfig.json deleted file mode 100644 index c7d2a7500..000000000 --- a/mods/monitor/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../errors" }, - { "path": "../common" }, - { "path": "../core" }, - { "path": "../logger" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/numbers/.dockerignore b/mods/numbers/.dockerignore deleted file mode 100644 index b512c09d4..000000000 --- a/mods/numbers/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/mods/numbers/.lerna-changed-buster-192 b/mods/numbers/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/numbers/.npmignore b/mods/numbers/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/numbers/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/numbers/Dockerfile b/mods/numbers/Dockerfile deleted file mode 100644 index a64e59e7d..000000000 --- a/mods/numbers/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs \ - && npm install -g fonoster-*.tgz \ - && apk del npm git - -USER fonoster - -CMD ["run_numbers"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_numbers" ] \ No newline at end of file diff --git a/mods/numbers/package-lock.json b/mods/numbers/package-lock.json deleted file mode 100644 index 9c2408267..000000000 --- a/mods/numbers/package-lock.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "name": "@fonoster/numbers", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/numbers", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "phone": "^3.1.31" - }, - "bin": { - "healthcheck_numbers": "dist/service/healthcheck.js", - "run_numbers": "dist/service/runner.js" - } - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "grpc-ts-health-check": "^2.0.6", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.3.3", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.3.3" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/phone": { - "version": "3.1.32", - "resolved": "https://registry.npmjs.org/phone/-/phone-3.1.32.tgz", - "integrity": "sha512-kT89uAqNr8sEXjv/2NDzp2Kpb/BQ5bTzHMLZFwUnqDnDBaObcO3qLzQ030tDlhxZrFVUd+EIq8pie5/L8SNVrQ==", - "engines": { - "node": ">=12" - } - } - }, - "dependencies": { - "phone": { - "version": "3.1.32", - "resolved": "https://registry.npmjs.org/phone/-/phone-3.1.32.tgz", - "integrity": "sha512-kT89uAqNr8sEXjv/2NDzp2Kpb/BQ5bTzHMLZFwUnqDnDBaObcO3qLzQ030tDlhxZrFVUd+EIq8pie5/L8SNVrQ==" - } - } -} diff --git a/mods/numbers/package.json b/mods/numbers/package.json deleted file mode 100644 index 7170d87f2..000000000 --- a/mods/numbers/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "@fonoster/numbers", - "version": "0.3.22", - "description": "VoIP Numbers", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/client/numbers", - "types": "dist/client/numbers", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "postbuild": "cp -a ./src/service/protos/ ./dist/service/protos", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/srv_runner" - }, - "bin": { - "run_numbers": "dist/service/runner.js", - "healthcheck_numbers": "dist/service/healthcheck.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/apps": "^0.3.22", - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/errors": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "phone": "^3.1.31" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/numbers/src/client/numbers.ts b/mods/numbers/src/client/numbers.ts deleted file mode 100644 index 3b2a7ab6a..000000000 --- a/mods/numbers/src/client/numbers.ts +++ /dev/null @@ -1,303 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { - ListNumbersRequest, - UpdateNumberResponse, - CreateNumberRequest, - UpdateNumberRequest, - CreateNumberResponse, - GetNumberResponse, - DeleteNumberResponse, - ListNumbersResponse, - GetIngressInfoRequest, - GetIngressInfoResponse, - INumbersClient, - Number -} from "./types"; -import { APIClient, ClientOptions } from "@fonoster/common"; -import { NumbersClient } from "../service/protos/numbers_grpc_pb"; -import NumbersPB, { IngressInfo } from "../service/protos/numbers_pb"; -import CommonPB from "../service/protos/common_pb"; -import { promisifyAll } from "grpc-promise"; - -/** - * @classdesc Use Fonoster Numbers, a capability of Fonoster SIP Proxy subsystem, - * to create, update, get and delete numbers. Fonoster Numbers requires of a - * running Fonoster deployment. - * - * @extends APIClient - * @example - * - * const Fonoster = require("@fonoster/sdk"); - * const numbers = new Fonoster.Numbers(); - * - * const request = { - * providerRef: "516f1577bcf86cd797439012", - * e164Number: "+17853177343", - * ingressInfo: { - * webhook: "https://webhooks.acme.com/hooks" - * } - * }; - * - * numbers.createNumber(request) - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)); // an error occurred - */ -export default class Numbers extends APIClient implements INumbersClient { - /** - * Constructs a new Numbers object. - * @param {ClientOptions} options - Options to indicate the objects endpoint - * @see module:core:APIClient - */ - constructor(options?: ClientOptions) { - super(NumbersClient, options); - super.init(); - promisifyAll(super.getService(), { metadata: super.getMeta() }); - } - - /** - * Creates a new Number on the SIP Proxy subsystem. - * - * @param {CreateNumberRequest} request - Request for the provision of a new Number - * @param {string} request.providerRef - Idenfier to the Provider this Number belongs - * with - * @param {string} request.e164Number - A valid number @ Provider - * @param {string} request.aorLink - An AOR where ingress calls will be - * directed to - * @param {string} request.ingressInfo - Webhook to connect call to - * @note You can only provider an aorLink or an ingressInfo but no both - * @return {Promise} - * @example - * - * const request = { - * providerRef: "516f1577bcf86cd797439012", - * e164Number: "+17853177343", - * aorLink: "sip:1001@sip.local" - * }; - * - * numbers.createNumber(request) - * .then(result => { - * console.log(result) // returns the CreateNumberResponse interface - * }).catch(e => console.error(e)); // an error occurred - */ - async createNumber( - request: CreateNumberRequest - ): Promise { - const ingressInfo = new NumbersPB.IngressInfo(); - ingressInfo.setWebhook(request?.ingressInfo?.webhook); - ingressInfo.setAppRef(request?.ingressInfo?.appRef); - const req = new NumbersPB.CreateNumberRequest(); - req.setProviderRef(request.providerRef); - req.setE164Number(request.e164Number); - req.setIngressInfo(ingressInfo); - req.setAorLink(request.aorLink); - - const res = await super.getService().createNumber().sendMessage(req); - - return { - ref: res.getRef() - }; - } - - /** - * Retrives a Number by its reference. - * - * @param {string} ref - Reference to Number - * @return {Promise} The GetNumberResponse - * @throws if ref is null or Number does not exist - * @example - * - * numbers.getNumber(ref) - * .then(result => { - * console.log(result) // returns the GetNumberResponse object - * }).catch(e => console.error(e)); // an error occurred - */ - async getNumber(ref: string): Promise { - const req = new NumbersPB.GetNumberRequest(); - req.setRef(ref); - const res = await this.getService().getNumber().sendMessage(req); - return { - aorLink: res.getAorLink(), - e164Number: res.getE164Number(), - ingressInfo: { - webhook: res.getIngressInfo()?.getWebhook(), - appRef: res.getIngressInfo()?.getAppRef() - }, - providerRef: res.getProviderRef(), - ref: res.getRef(), - createTime: res.getCreateTime(), - updateTime: res.getUpdateTime() - }; - } - - /** - * Update a Number at the SIP Proxy subsystem. - * - * @param {UpdateNumberRequest} request - Request for the update of an existing Number - * @param {string} request.aorLink - An AOR where ingress calls will be - * directed to - * @param {string} request.ingressInfo - A webhook to direct the call for flow control - * @note You can only provider an aorLink or an ingressApp but no both - * @return {Promise} - * @example - * - * const request = { - * ref: "516f1577bcf86cd797439012", - * aorLink: "sip:1001@sip.local" - * }; - * - * numbers.updateNumber(request) - * .then(result => { - * console.log(result) // returns the Number from the DB - * }).catch(e => console.error(e)); // an error occurred - */ - async updateNumber( - request: UpdateNumberRequest - ): Promise { - const ingressInfo = new IngressInfo(); - ingressInfo.setWebhook(request?.ingressInfo?.webhook); - ingressInfo.setAppRef(request?.ingressInfo?.appRef); - - const req = new NumbersPB.UpdateNumberRequest(); - req.setRef(request.ref); - req.setAorLink(request.aorLink); - - if (ingressInfo.getAppRef() || ingressInfo.getWebhook()) - req.setIngressInfo(ingressInfo); - - const result = await super.getService().updateNumber().sendMessage(req); - - const response: UpdateNumberResponse = { - ref: result.getRef() - }; - return response; - } - - /** - * List the Numbers registered in Fonoster SIP Proxy subsystem. - * - * @param {ListNumbersRequest} request - * @param {number} request.pageSize - Number of element per page - * (defaults to 20) - * @param {string} request.pageToken - The next_page_token value returned from - * a previous List request, if any - * @return {Promise} List of Numbers - * @example - * - * const request = { - * pageSize: 20, - * pageToken: 2 - * }; - * - * numbers.listNumbers(request) - * .then(() => { - * console.log(result) // returns a ListNumbersResponse object - * }).catch(e => console.error(e)); // an error occurred - */ - async listNumbers(request: ListNumbersRequest): Promise { - const r = new NumbersPB.ListNumbersRequest(); - r.setPageSize(request.pageSize); - r.setPageToken(request.pageToken); - r.setView(request.view); - const paginatedList = await this.getService().listNumbers().sendMessage(r); - return { - nextPageToken: paginatedList.getNextPageToken(), - numbers: paginatedList.getNumbersList().map((n: NumbersPB.Number) => { - return { - ref: n.getRef(), - providerRef: n.getProviderRef(), - e164Number: n.getE164Number(), - ingressInfo: { - webhook: n.getIngressInfo() ? n.getIngressInfo().getWebhook() : null - }, - aorLink: n.getAorLink(), - createTime: n.getCreateTime(), - updateTime: n.getUpdateTime() - }; - }) - }; - } - - /** - * Deletes a Number from SIP Proxy subsystem. - * - * @param {string} ref - Reference to the Number - * @example - * - * const ref = "cb8V0CNTfH"; - * - * numbers.deleteNumber(ref) - * .then(() => { - * console.log("done") // returns an empty object - * }).catch(e => console.error(e)) // an error occurred - */ - async deleteNumber(ref: string): Promise { - const req = new NumbersPB.DeleteNumberRequest(); - req.setRef(ref); - - await super.getService().deleteNumber().sendMessage(req); - - return { - ref - }; - } - - /** - * Get the Ingress App for a given e164 number. - * - * @param {GetIngressAppRequest} request - * @param {string} request.e164Number - A number in E164 format for - * incomming calls - * @return {Promise} - * @throws if the Number is not register in Fonoster - * @example - * - * const request = { - * e164Number: "+17853178071" - * }; - * - * numbers.getIngressApp(request) - * .then(result => { - * console.log(result) // returns the Application - * }).catch(e => console.error(e)); // an error occurred - */ - async getIngressInfo( - request: GetIngressInfoRequest - ): Promise { - const req = new NumbersPB.GetIngressInfoRequest(); - req.setE164Number(request.e164Number); - - const result = await super.getService().getIngressInfo().sendMessage(req); - - return { - webhook: result.getWebhook(), - accessKeyId: result.getAccessKeyId(), - appRef: result.getAppRef() - }; - } -} - -export { Number, NumbersPB, CommonPB, INumbersClient }; - -// WARNING: Workaround for support to commonjs clients -module.exports = Numbers; -module.exports.Number = Number; -module.exports.NumbersPB = NumbersPB; -module.exports.CommonPB = CommonPB; diff --git a/mods/numbers/src/client/types.ts b/mods/numbers/src/client/types.ts deleted file mode 100644 index 43e41d0a8..000000000 --- a/mods/numbers/src/client/types.ts +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface INumbersClient { - createNumber(request: CreateNumberRequest): Promise; - getNumber(ref: string): Promise; - updateNumber(request: UpdateNumberRequest): Promise; - listNumbers(request: ListNumbersRequest): Promise; - deleteNumber(ref: string): Promise; - getIngressInfo( - request: GetIngressInfoRequest - ): Promise; -} - -enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2 -} - -export interface Number { - ref: string; - providerRef: string; - e164Number: string; - ingressInfo: { - webhook: string; - }; - aorLink: string; - createTime: string; - updateTime: string; -} - -export interface ListNumbersResponse { - nextPageToken: string; - numbers: number[]; -} - -export interface CreateNumberRequest { - ref?: string; - providerRef: string; - e164Number: string; - ingressInfo?: { - webhook?: string; - appRef?: string; - }; - aorLink?: string; -} - -export interface UpdateNumberRequest { - ref: string; - aorLink?: string; - ingressInfo?: { - webhook?: string; - appRef?: string; - }; -} - -export interface UpdateNumberResponse { - ref: string; -} - -export interface ListNumbersRequest { - pageSize: number; - pageToken: string; - view: View; -} - -export interface DeleteNumberResponse { - ref: string; -} - -export interface CreateNumberResponse { - ref: string; -} - -export interface GetNumberResponse { - ref: string; - providerRef: string; - e164Number: string; - ingressInfo: { - webhook: string; - appRef?: string; - }; - aorLink: string; - createTime: string; - updateTime: string; -} - -export interface GetIngressInfoRequest { - e164Number: string; -} - -export interface GetIngressInfoResponse { - accessKeyId: string; - webhook: string; - appRef?: string; -} diff --git a/mods/numbers/src/protos/numbers.proto b/mods/numbers/src/protos/numbers.proto deleted file mode 100644 index eb30159a0..000000000 --- a/mods/numbers/src/protos/numbers.proto +++ /dev/null @@ -1,123 +0,0 @@ -/** - * MIT License - * Copyright (c) 2021 Fonoster Inc - * - * The Numbers proto contains the artificats for the administration - * of Numbers. - */ -syntax = "proto3"; - -package fonoster.numbers.v1beta1; - -option go_package = "github.com/fonoster/fonoster/mods/numbers/fonoster/services/protos/numbers"; - -import "protoc-gen-openapiv2/options/annotations.proto"; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "common.proto"; - -service Numbers { - // Lists Numbers from the SIP Proxy subsystem - rpc ListNumbers (ListNumbersRequest) returns (ListNumbersResponse) { - option (google.api.http) = { get: "/v1beta1/numbers" }; - }; - // Creates a new Number resource - rpc CreateNumber (CreateNumberRequest) returns (Number) { - option (google.api.http) = { - post: "/v1beta1/numbers" - body: "*" - }; - }; - // Gets the ingess information for a given e164 number - rpc GetIngressInfo (GetIngressInfoRequest) returns (IngressInfo) {}; - // Gets Number using its reference - rpc GetNumber (GetNumberRequest) returns (Number) { - option (google.api.http) = { get: "/v1beta1/numbers/{ref}" }; - }; - // Change or update fields in a resource - rpc UpdateNumber (UpdateNumberRequest) returns (Number) { - option (google.api.http) = { - put: "/v1beta1/numbers/{ref}" - body: "*" - }; - }; - // Hard delete of a Number resource - rpc DeleteNumber (DeleteNumberRequest) returns (fonoster.common.v1beta1.Empty) { - option (google.api.http) = { - delete: "/v1beta1/numbers/{ref}" - }; - }; -} - -message ListNumbersRequest { - // The maximum number of items in the list - int32 page_size = 1; - - // The next_page_token value returned from the previous request, if any. - string page_token = 2; - - // Level of detail of the individual entities (reserved) - fonoster.common.v1beta1.View view = 3; -} - -message ListNumbersResponse { - // List of Numbers - repeated Number numbers = 1; - - // Token to retrieve the next page of results, or empty if there are no more results in the list. - string next_page_token = 2; -} - -message CreateNumberRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"providerRef\": \"aynB1z0tzd\", \"e164Number\": \"+17853178070\", \"ingressInfo\": { \"webhook\": \"https://c5b6-172-220-243-215.ngrok.io\"}}" - }; - string provider_ref = 1 [(google.api.field_behavior) = REQUIRED]; - string e164_number = 2 [(google.api.field_behavior) = REQUIRED]; - string aor_link = 3; - IngressInfo ingress_info = 4; -} - -message UpdateNumberRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"ingressInfo\": { \"webhook\": \"https://c5b6-172-220-243-215.ngrok.io\"}}" - }; - // Number's reference - string ref = 1; - string aor_link = 2; - IngressInfo ingress_info = 3; -} - -message GetNumberRequest { - // Number's reference - string ref = 1; -} - -message GetIngressInfoRequest { - string e164_number = 1; -} - -message DeleteNumberRequest { - // Number's reference - string ref = 1; -} - -message Number { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"ref\": \"aiuY1z0tzd\", \"providerRef\": \"aynB1z0tzd\", \"e164Number\": \"+17853178070\", \"ingressInfo\": { \"webhook\": \"https://c5b6-172-220-243-215.ngrok.io\"}, \"createTime\": \"2021-10-05T13:23:07.221Z\", \"updateTime\": \"2021-10-05T13:23:07.221Z\"}" - }; - // Number's reference - string ref = 1; - string provider_ref = 2 [(google.api.field_behavior) = REQUIRED]; - string e164_number = 3 [(google.api.field_behavior) = REQUIRED]; - string aor_link = 4; - IngressInfo ingress_info = 5; - string create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - string update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -message IngressInfo { - string access_key_id = 1; - string webhook = 2; - string app_ref = 3; -} \ No newline at end of file diff --git a/mods/numbers/src/service/assertions.ts b/mods/numbers/src/service/assertions.ts deleted file mode 100644 index de6eb90b6..000000000 --- a/mods/numbers/src/service/assertions.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { FonosterInvalidArgument } from "@fonoster/errors"; -import { NumbersPB } from "../client/numbers"; -import { IngressInfo } from "./protos/numbers_pb"; -import { phone } from 'phone' - -const isValidURL = (value: string) => - /^(?:\w+:)?\/\/([^\s\.]+\.\S{2}|localhost[\:?\d]*)\S*$/.test(value); - -export const assertIsE164 = (number: string) => { - const validatedPhone = phone(number, { validateMobilePrefix: false }) - if (!validatedPhone.isValid) { - throw new FonosterInvalidArgument( - "e164Number field must be a valid e164 value." - ); - } - return validatedPhone.phoneNumber; -}; - -export const assertWebhookIsURL = (webhook: string) => { - if (webhook && !isValidURL(webhook)) { - throw new FonosterInvalidArgument("webhook field must be a valid URL."); - } -}; - -export const assertHasAorLinkOrIngressInfo = ( - request: NumbersPB.CreateNumberRequest | NumbersPB.UpdateNumberRequest -) => { - if ( - !request.getAorLink() && - !request.getIngressInfo()?.getWebhook() && - !request.getIngressInfo()?.getAppRef() - ) { - throw new FonosterInvalidArgument( - "You must provide either a 'webhook', 'appRef', or an 'aorLink'" - ); - } -}; - -export const assertCompatibleParameters = ( - request: NumbersPB.CreateNumberRequest | NumbersPB.UpdateNumberRequest -) => { - const aorLinkAndIngressInfo = - request.getAorLink() && request.getIngressInfo(); - //const webhookAndAppRef = request.getIngressInfo()?.getAppRef() && request.getIngressInfo()?.getWebhook(); - - if (aorLinkAndIngressInfo /*|| webhookAndAppRef*/) { - throw new FonosterInvalidArgument( - "you might provide only one of the following 'aorLink', 'webhook', or 'appRef'" - ); - } -}; diff --git a/mods/numbers/src/service/create_number.ts b/mods/numbers/src/service/create_number.ts deleted file mode 100644 index 260d0a899..000000000 --- a/mods/numbers/src/service/create_number.ts +++ /dev/null @@ -1,48 +0,0 @@ -/* eslint-disable require-jsdoc */ -import NumbersPB from "./protos/numbers_pb"; -import { ResourceBuilder, Kind, routr, getAccessKeyId } from "@fonoster/core"; -import numberDecoder from "./decoder"; -import { - assertCompatibleParameters, - assertHasAorLinkOrIngressInfo, - assertIsE164, - assertWebhookIsURL -} from "./assertions"; -import { getAppRef, getWebhook } from "./utils"; - -export default async function createNumber( - request: NumbersPB.CreateNumberRequest, - call: any -): Promise { - // TODO: Needs resource ownership validation for appRef - request.setE164Number(assertIsE164(request.getE164Number())); - assertHasAorLinkOrIngressInfo(request); - assertCompatibleParameters(request); - assertWebhookIsURL(request.getIngressInfo()?.getWebhook()); - - let encoder = new ResourceBuilder(Kind.NUMBER, request.getE164Number()) - .withGatewayRef(request.getProviderRef()) - .withMetadata({ accessKeyId: getAccessKeyId(call) }); - - if (request.getAorLink()) { - encoder = encoder.withLocation( - `tel:${request.getE164Number()}`, - request.getAorLink() - ); - } else { - encoder = encoder - .withLocation(`tel:${request.getE164Number()}`, process.env.MS_ENDPOINT) - .withMetadata({ - webhook: getWebhook(request), - appRef: getAppRef(request), - accessKeyId: getAccessKeyId(call) - }); - } - - await routr.connect(); - const resource = encoder.build(); - const ref = await routr.resourceType("numbers").create(resource); - // We do this to get updated metadata from Routr - const jsonObj = await routr.resourceType("numbers").get(ref); - return numberDecoder(jsonObj); -} diff --git a/mods/numbers/src/service/decoder.ts b/mods/numbers/src/service/decoder.ts deleted file mode 100644 index 001eafb82..000000000 --- a/mods/numbers/src/service/decoder.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* eslint-disable require-jsdoc */ -import NumbersPB from "./protos/numbers_pb"; - -export default function (jsonObj: any): NumbersPB.Number { - const number = new NumbersPB.Number(); - const location = jsonObj?.spec?.location; - const ingressInfo = new NumbersPB.IngressInfo(); - - ingressInfo.setWebhook(jsonObj.metadata?.webhook); - ingressInfo.setAppRef(jsonObj.metadata?.appRef); - ingressInfo.setAccessKeyId(jsonObj.metadata?.accessKeyId); - number.setRef(jsonObj.metadata.ref); - number.setProviderRef(jsonObj.metadata.gwRef); - number.setIngressInfo(ingressInfo); - number.setAorLink(location?.aorLink); - number.setCreateTime(jsonObj.metadata.createdOn); - number.setUpdateTime(jsonObj.metadata.modifiedOn); - number.setE164Number(location?.telUrl?.split(":")?.[1]); - - return number; -} diff --git a/mods/numbers/src/service/healthcheck.ts b/mods/numbers/src/service/healthcheck.ts deleted file mode 100644 index a8988fbb7..000000000 --- a/mods/numbers/src/service/healthcheck.ts +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonos - * - * This file is part of Project Fonos - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -healthcheck(); diff --git a/mods/numbers/src/service/numbers.ts b/mods/numbers/src/service/numbers.ts deleted file mode 100644 index 7550aae46..000000000 --- a/mods/numbers/src/service/numbers.ts +++ /dev/null @@ -1,103 +0,0 @@ -/* eslint-disable require-jsdoc */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -import grpc from "@grpc/grpc-js"; -import createNumber from "./create_number"; -import updateNumber from "./update_number"; -import { routr } from "@fonoster/core"; -import { - ListNumbersRequest, - ListNumbersResponse, - GetNumberRequest, - CreateNumberRequest, - UpdateNumberRequest, - DeleteNumberRequest, - GetIngressInfoRequest -} from "./protos/numbers_pb"; -import NumberPB from "./protos/numbers_pb"; -import { Empty } from "./protos/common_pb"; -import { - INumbersService, - NumbersService, - INumbersServer -} from "./protos/numbers_grpc_pb"; -import { Kind, ResourceServer } from "@fonoster/core"; -import decoder from "./decoder"; -import { ErrorCodes, FonosterError } from "@fonoster/errors"; - -class NumbersServer extends ResourceServer implements INumbersServer { - [name: string]: grpc.UntypedHandleCall; - async listNumbers( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - const result = await ResourceServer.listResources(Kind.NUMBER, call); - const response = new ListNumbersResponse(); - if (result && result.resources) { - const domains = result.resources.map((resource) => decoder(resource)); - response.setNextPageToken(result.nextPageToken + ""); - response.setNumbersList(domains); - } - callback(null, response); - } - - async createNumber( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - callback(null, await createNumber(call.request, call)); - } catch (e) { - callback(e, null); - } - } - - async updateNumber( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - updateNumber(call, callback); - } - - async getIngressInfo( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - await routr.connect(); - const result = await routr.getNumber(call.request.getE164Number()); - if (!result) { - throw new FonosterError("Number not found", ErrorCodes.NOT_FOUND); - } - const number = decoder(result); - callback(null, number.getIngressInfo()); - } catch (e) { - callback(e, null); - } - } - - async getNumber( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const result = await ResourceServer.getResource(Kind.NUMBER, call); - callback(null, decoder(result)); - } catch (e) { - callback(e, null); - } - } - - async deleteNumber( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - await ResourceServer.deleteResource(Kind.NUMBER, call); - callback(null, new Empty()); - } catch (e) { - callback(e, null); - } - } -} - -export { NumbersServer as default, INumbersService, NumbersService }; diff --git a/mods/numbers/src/service/protos/common_grpc_pb.js b/mods/numbers/src/service/protos/common_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/numbers/src/service/protos/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/numbers/src/service/protos/common_pb.d.ts b/mods/numbers/src/service/protos/common_pb.d.ts deleted file mode 100644 index f8b5fb810..000000000 --- a/mods/numbers/src/service/protos/common_pb.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// package: fonoster.common.v1beta1 -// file: common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class Empty extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Empty.AsObject; - static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Empty; - static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; -} - -export namespace Empty { - export type AsObject = { - } -} - -export class ErrorResponse extends jspb.Message { - getStatus(): number; - setStatus(value: number): ErrorResponse; - getMessage(): string; - setMessage(value: string): ErrorResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ErrorResponse.AsObject; - static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ErrorResponse; - static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse; -} - -export namespace ErrorResponse { - export type AsObject = { - status: number, - message: string, - } -} - -export enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2, -} diff --git a/mods/numbers/src/service/protos/common_pb.js b/mods/numbers/src/service/protos/common_pb.js deleted file mode 100644 index b7f99c7ea..000000000 --- a/mods/numbers/src/service/protos/common_pb.js +++ /dev/null @@ -1,335 +0,0 @@ -// source: common.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -goog.exportSymbol('proto.fonoster.common.v1beta1.Empty', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.ErrorResponse', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.View', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.Empty = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.Empty, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.Empty.displayName = 'proto.fonoster.common.v1beta1.Empty'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.ErrorResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.ErrorResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.ErrorResponse.displayName = 'proto.fonoster.common.v1beta1.ErrorResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.Empty.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.Empty.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.Empty} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.Empty; - return proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.Empty} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.Empty.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.Empty} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.ErrorResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.toObject = function(includeInstance, msg) { - var f, obj = { - status: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.ErrorResponse; - return proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setStatus(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getStatus(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional int32 status = 1; - * @return {number} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getStatus = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setStatus = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * @enum {number} - */ -proto.fonoster.common.v1beta1.View = { - BASIC: 0, - STANDARD: 1, - FULL: 2 -}; - -goog.object.extend(exports, proto.fonoster.common.v1beta1); diff --git a/mods/numbers/src/service/protos/google/api/annotations_grpc_pb.js b/mods/numbers/src/service/protos/google/api/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/numbers/src/service/protos/google/api/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/numbers/src/service/protos/google/api/annotations_pb.d.ts b/mods/numbers/src/service/protos/google/api/annotations_pb.d.ts deleted file mode 100644 index 06072f3bd..000000000 --- a/mods/numbers/src/service/protos/google/api/annotations_pb.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// package: google.api -// file: google/api/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_api_http_pb from "../../google/api/http_pb"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const http: jspb.ExtensionFieldInfo; diff --git a/mods/numbers/src/service/protos/google/api/annotations_pb.js b/mods/numbers/src/service/protos/google/api/annotations_pb.js deleted file mode 100644 index 99e4c1824..000000000 --- a/mods/numbers/src/service/protos/google/api/annotations_pb.js +++ /dev/null @@ -1,48 +0,0 @@ -// source: google/api/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_http_pb = require('../../google/api/http_pb.js'); -goog.object.extend(proto, google_api_http_pb); -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.http', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `http`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.google.api.http = new jspb.ExtensionFieldInfo( - 72295728, - {http: 0}, - google_api_http_pb.HttpRule, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - google_api_http_pb.HttpRule.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[72295728] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.http, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - google_api_http_pb.HttpRule.serializeBinaryToWriter, - google_api_http_pb.HttpRule.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[72295728] = proto.google.api.http; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/numbers/src/service/protos/google/api/field_behavior_grpc_pb.js b/mods/numbers/src/service/protos/google/api/field_behavior_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/numbers/src/service/protos/google/api/field_behavior_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/numbers/src/service/protos/google/api/field_behavior_pb.d.ts b/mods/numbers/src/service/protos/google/api/field_behavior_pb.d.ts deleted file mode 100644 index 9b853705f..000000000 --- a/mods/numbers/src/service/protos/google/api/field_behavior_pb.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -// package: google.api -// file: google/api/field_behavior.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const fieldBehavior: jspb.ExtensionFieldInfo; - -export enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, -} diff --git a/mods/numbers/src/service/protos/google/api/field_behavior_pb.js b/mods/numbers/src/service/protos/google/api/field_behavior_pb.js deleted file mode 100644 index 44160cc41..000000000 --- a/mods/numbers/src/service/protos/google/api/field_behavior_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// source: google/api/field_behavior.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.FieldBehavior', null, global); -goog.exportSymbol('proto.google.api.fieldBehaviorList', null, global); -/** - * @enum {number} - */ -proto.google.api.FieldBehavior = { - FIELD_BEHAVIOR_UNSPECIFIED: 0, - OPTIONAL: 1, - REQUIRED: 2, - OUTPUT_ONLY: 3, - INPUT_ONLY: 4, - IMMUTABLE: 5, - UNORDERED_LIST: 6, - NON_EMPTY_DEFAULT: 7 -}; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `fieldBehaviorList`. - * @type {!jspb.ExtensionFieldInfo>} - */ -proto.google.api.fieldBehaviorList = new jspb.ExtensionFieldInfo( - 1052, - {fieldBehaviorList: 0}, - null, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - null), - 1); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1052] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.fieldBehaviorList, - jspb.BinaryReader.prototype.readPackedEnum, - jspb.BinaryWriter.prototype.writePackedEnum, - undefined, - undefined, - true); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1052] = proto.google.api.fieldBehaviorList; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/numbers/src/service/protos/google/api/http_grpc_pb.js b/mods/numbers/src/service/protos/google/api/http_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/numbers/src/service/protos/google/api/http_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/numbers/src/service/protos/google/api/http_pb.d.ts b/mods/numbers/src/service/protos/google/api/http_pb.d.ts deleted file mode 100644 index 02c3b1ece..000000000 --- a/mods/numbers/src/service/protos/google/api/http_pb.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -// package: google.api -// file: google/api/http.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Http extends jspb.Message { - clearRulesList(): void; - getRulesList(): Array; - setRulesList(value: Array): Http; - addRules(value?: HttpRule, index?: number): HttpRule; - getFullyDecodeReservedExpansion(): boolean; - setFullyDecodeReservedExpansion(value: boolean): Http; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Http.AsObject; - static toObject(includeInstance: boolean, msg: Http): Http.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Http; - static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http; -} - -export namespace Http { - export type AsObject = { - rulesList: Array, - fullyDecodeReservedExpansion: boolean, - } -} - -export class HttpRule extends jspb.Message { - getSelector(): string; - setSelector(value: string): HttpRule; - - hasGet(): boolean; - clearGet(): void; - getGet(): string; - setGet(value: string): HttpRule; - - hasPut(): boolean; - clearPut(): void; - getPut(): string; - setPut(value: string): HttpRule; - - hasPost(): boolean; - clearPost(): void; - getPost(): string; - setPost(value: string): HttpRule; - - hasDelete(): boolean; - clearDelete(): void; - getDelete(): string; - setDelete(value: string): HttpRule; - - hasPatch(): boolean; - clearPatch(): void; - getPatch(): string; - setPatch(value: string): HttpRule; - - hasCustom(): boolean; - clearCustom(): void; - getCustom(): CustomHttpPattern | undefined; - setCustom(value?: CustomHttpPattern): HttpRule; - getBody(): string; - setBody(value: string): HttpRule; - getResponseBody(): string; - setResponseBody(value: string): HttpRule; - clearAdditionalBindingsList(): void; - getAdditionalBindingsList(): Array; - setAdditionalBindingsList(value: Array): HttpRule; - addAdditionalBindings(value?: HttpRule, index?: number): HttpRule; - - getPatternCase(): HttpRule.PatternCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpRule.AsObject; - static toObject(includeInstance: boolean, msg: HttpRule): HttpRule.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpRule, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpRule; - static deserializeBinaryFromReader(message: HttpRule, reader: jspb.BinaryReader): HttpRule; -} - -export namespace HttpRule { - export type AsObject = { - selector: string, - get: string, - put: string, - post: string, - pb_delete: string, - patch: string, - custom?: CustomHttpPattern.AsObject, - body: string, - responseBody: string, - additionalBindingsList: Array, - } - - export enum PatternCase { - PATTERN_NOT_SET = 0, - GET = 2, - PUT = 3, - POST = 4, - DELETE = 5, - PATCH = 6, - CUSTOM = 8, - } - -} - -export class CustomHttpPattern extends jspb.Message { - getKind(): string; - setKind(value: string): CustomHttpPattern; - getPath(): string; - setPath(value: string): CustomHttpPattern; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CustomHttpPattern.AsObject; - static toObject(includeInstance: boolean, msg: CustomHttpPattern): CustomHttpPattern.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CustomHttpPattern, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CustomHttpPattern; - static deserializeBinaryFromReader(message: CustomHttpPattern, reader: jspb.BinaryReader): CustomHttpPattern; -} - -export namespace CustomHttpPattern { - export type AsObject = { - kind: string, - path: string, - } -} diff --git a/mods/numbers/src/service/protos/google/api/http_pb.js b/mods/numbers/src/service/protos/google/api/http_pb.js deleted file mode 100644 index 0359c5eec..000000000 --- a/mods/numbers/src/service/protos/google/api/http_pb.js +++ /dev/null @@ -1,1006 +0,0 @@ -// source: google/api/http.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.google.api.CustomHttpPattern', null, global); -goog.exportSymbol('proto.google.api.Http', null, global); -goog.exportSymbol('proto.google.api.HttpRule', null, global); -goog.exportSymbol('proto.google.api.HttpRule.PatternCase', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.Http = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Http.repeatedFields_, null); -}; -goog.inherits(proto.google.api.Http, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.Http.displayName = 'proto.google.api.Http'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpRule = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpRule.repeatedFields_, proto.google.api.HttpRule.oneofGroups_); -}; -goog.inherits(proto.google.api.HttpRule, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpRule.displayName = 'proto.google.api.HttpRule'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.CustomHttpPattern = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.google.api.CustomHttpPattern, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.CustomHttpPattern.displayName = 'proto.google.api.CustomHttpPattern'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.Http.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.Http.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.Http.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.Http} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.toObject = function(includeInstance, msg) { - var f, obj = { - rulesList: jspb.Message.toObjectList(msg.getRulesList(), - proto.google.api.HttpRule.toObject, includeInstance), - fullyDecodeReservedExpansion: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.Http; - return proto.google.api.Http.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.Http} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addRules(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFullyDecodeReservedExpansion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.Http.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.Http.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.Http} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRulesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } - f = message.getFullyDecodeReservedExpansion(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * repeated HttpRule rules = 1; - * @return {!Array} - */ -proto.google.api.Http.prototype.getRulesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.Http} returns this -*/ -proto.google.api.Http.prototype.setRulesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.Http.prototype.addRules = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.clearRulesList = function() { - return this.setRulesList([]); -}; - - -/** - * optional bool fully_decode_reserved_expansion = 2; - * @return {boolean} - */ -proto.google.api.Http.prototype.getFullyDecodeReservedExpansion = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.setFullyDecodeReservedExpansion = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpRule.repeatedFields_ = [11]; - -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.google.api.HttpRule.oneofGroups_ = [[2,3,4,5,6,8]]; - -/** - * @enum {number} - */ -proto.google.api.HttpRule.PatternCase = { - PATTERN_NOT_SET: 0, - GET: 2, - PUT: 3, - POST: 4, - DELETE: 5, - PATCH: 6, - CUSTOM: 8 -}; - -/** - * @return {proto.google.api.HttpRule.PatternCase} - */ -proto.google.api.HttpRule.prototype.getPatternCase = function() { - return /** @type {proto.google.api.HttpRule.PatternCase} */(jspb.Message.computeOneofCase(this, proto.google.api.HttpRule.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpRule.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpRule.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpRule} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.toObject = function(includeInstance, msg) { - var f, obj = { - selector: jspb.Message.getFieldWithDefault(msg, 1, ""), - get: jspb.Message.getFieldWithDefault(msg, 2, ""), - put: jspb.Message.getFieldWithDefault(msg, 3, ""), - post: jspb.Message.getFieldWithDefault(msg, 4, ""), - pb_delete: jspb.Message.getFieldWithDefault(msg, 5, ""), - patch: jspb.Message.getFieldWithDefault(msg, 6, ""), - custom: (f = msg.getCustom()) && proto.google.api.CustomHttpPattern.toObject(includeInstance, f), - body: jspb.Message.getFieldWithDefault(msg, 7, ""), - responseBody: jspb.Message.getFieldWithDefault(msg, 12, ""), - additionalBindingsList: jspb.Message.toObjectList(msg.getAdditionalBindingsList(), - proto.google.api.HttpRule.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpRule; - return proto.google.api.HttpRule.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpRule} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSelector(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setGet(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPut(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPost(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDelete(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPatch(value); - break; - case 8: - var value = new proto.google.api.CustomHttpPattern; - reader.readMessage(value,proto.google.api.CustomHttpPattern.deserializeBinaryFromReader); - msg.setCustom(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBody(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setResponseBody(value); - break; - case 11: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addAdditionalBindings(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpRule.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpRule.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpRule} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSelector(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeString( - 3, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeString( - 4, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 5)); - if (f != null) { - writer.writeString( - 5, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 6)); - if (f != null) { - writer.writeString( - 6, - f - ); - } - f = message.getCustom(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.google.api.CustomHttpPattern.serializeBinaryToWriter - ); - } - f = message.getBody(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getResponseBody(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getAdditionalBindingsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 11, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string selector = 1; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getSelector = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setSelector = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string get = 2; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getGet = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setGet = function(value) { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearGet = function() { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasGet = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string put = 3; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPut = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPut = function(value) { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPut = function() { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPut = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional string post = 4; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPost = function(value) { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPost = function() { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPost = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string delete = 5; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getDelete = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setDelete = function(value) { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearDelete = function() { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasDelete = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string patch = 6; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPatch = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPatch = function(value) { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPatch = function() { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPatch = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional CustomHttpPattern custom = 8; - * @return {?proto.google.api.CustomHttpPattern} - */ -proto.google.api.HttpRule.prototype.getCustom = function() { - return /** @type{?proto.google.api.CustomHttpPattern} */ ( - jspb.Message.getWrapperField(this, proto.google.api.CustomHttpPattern, 8)); -}; - - -/** - * @param {?proto.google.api.CustomHttpPattern|undefined} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setCustom = function(value) { - return jspb.Message.setOneofWrapperField(this, 8, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearCustom = function() { - return this.setCustom(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasCustom = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional string body = 7; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setBody = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string response_body = 12; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getResponseBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setResponseBody = function(value) { - return jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * repeated HttpRule additional_bindings = 11; - * @return {!Array} - */ -proto.google.api.HttpRule.prototype.getAdditionalBindingsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 11)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setAdditionalBindingsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 11, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.prototype.addAdditionalBindings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearAdditionalBindingsList = function() { - return this.setAdditionalBindingsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.CustomHttpPattern.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.CustomHttpPattern.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.CustomHttpPattern} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.toObject = function(includeInstance, msg) { - var f, obj = { - kind: jspb.Message.getFieldWithDefault(msg, 1, ""), - path: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.CustomHttpPattern; - return proto.google.api.CustomHttpPattern.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.CustomHttpPattern} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKind(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.CustomHttpPattern.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.CustomHttpPattern.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.CustomHttpPattern} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKind(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string kind = 1; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getKind = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setKind = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string path = 2; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/numbers/src/service/protos/google/api/httpbody_grpc_pb.js b/mods/numbers/src/service/protos/google/api/httpbody_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/numbers/src/service/protos/google/api/httpbody_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/numbers/src/service/protos/google/api/httpbody_pb.d.ts b/mods/numbers/src/service/protos/google/api/httpbody_pb.d.ts deleted file mode 100644 index 98d973068..000000000 --- a/mods/numbers/src/service/protos/google/api/httpbody_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// package: google.api -// file: google/api/httpbody.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb"; - -export class HttpBody extends jspb.Message { - getContentType(): string; - setContentType(value: string): HttpBody; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): HttpBody; - clearExtensionsList(): void; - getExtensionsList(): Array; - setExtensionsList(value: Array): HttpBody; - addExtensions(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpBody.AsObject; - static toObject(includeInstance: boolean, msg: HttpBody): HttpBody.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpBody, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpBody; - static deserializeBinaryFromReader(message: HttpBody, reader: jspb.BinaryReader): HttpBody; -} - -export namespace HttpBody { - export type AsObject = { - contentType: string, - data: Uint8Array | string, - extensionsList: Array, - } -} diff --git a/mods/numbers/src/service/protos/google/api/httpbody_pb.js b/mods/numbers/src/service/protos/google/api/httpbody_pb.js deleted file mode 100644 index 5539f5936..000000000 --- a/mods/numbers/src/service/protos/google/api/httpbody_pb.js +++ /dev/null @@ -1,286 +0,0 @@ -// source: google/api/httpbody.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js'); -goog.object.extend(proto, google_protobuf_any_pb); -goog.exportSymbol('proto.google.api.HttpBody', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpBody = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpBody.repeatedFields_, null); -}; -goog.inherits(proto.google.api.HttpBody, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpBody.displayName = 'proto.google.api.HttpBody'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpBody.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpBody.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpBody.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpBody} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.toObject = function(includeInstance, msg) { - var f, obj = { - contentType: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64(), - extensionsList: jspb.Message.toObjectList(msg.getExtensionsList(), - google_protobuf_any_pb.Any.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpBody; - return proto.google.api.HttpBody.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpBody} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setContentType(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 3: - var value = new google_protobuf_any_pb.Any; - reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader); - msg.addExtensions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpBody.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpBody} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContentType(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getExtensionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - google_protobuf_any_pb.Any.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string content_type = 1; - * @return {string} - */ -proto.google.api.HttpBody.prototype.getContentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setContentType = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.google.api.HttpBody.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.google.api.HttpBody.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setData = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * repeated google.protobuf.Any extensions = 3; - * @return {!Array} - */ -proto.google.api.HttpBody.prototype.getExtensionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpBody} returns this -*/ -proto.google.api.HttpBody.prototype.setExtensionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.google.protobuf.Any=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.Any} - */ -proto.google.api.HttpBody.prototype.addExtensions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.clearExtensionsList = function() { - return this.setExtensionsList([]); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/numbers/src/service/protos/numbers_grpc_pb.d.ts b/mods/numbers/src/service/protos/numbers_grpc_pb.d.ts deleted file mode 100644 index 67d63069c..000000000 --- a/mods/numbers/src/service/protos/numbers_grpc_pb.d.ts +++ /dev/null @@ -1,130 +0,0 @@ -// package: fonoster.numbers.v1beta1 -// file: numbers.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import {handleClientStreamingCall} from "@grpc/grpc-js/build/src/server-call"; -import * as numbers_pb from "./numbers_pb"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as common_pb from "./common_pb"; - -interface INumbersService extends grpc.ServiceDefinition { - listNumbers: INumbersService_IListNumbers; - createNumber: INumbersService_ICreateNumber; - getIngressInfo: INumbersService_IGetIngressInfo; - getNumber: INumbersService_IGetNumber; - updateNumber: INumbersService_IUpdateNumber; - deleteNumber: INumbersService_IDeleteNumber; -} - -interface INumbersService_IListNumbers extends grpc.MethodDefinition { - path: "/fonoster.numbers.v1beta1.Numbers/ListNumbers"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface INumbersService_ICreateNumber extends grpc.MethodDefinition { - path: "/fonoster.numbers.v1beta1.Numbers/CreateNumber"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface INumbersService_IGetIngressInfo extends grpc.MethodDefinition { - path: "/fonoster.numbers.v1beta1.Numbers/GetIngressInfo"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface INumbersService_IGetNumber extends grpc.MethodDefinition { - path: "/fonoster.numbers.v1beta1.Numbers/GetNumber"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface INumbersService_IUpdateNumber extends grpc.MethodDefinition { - path: "/fonoster.numbers.v1beta1.Numbers/UpdateNumber"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface INumbersService_IDeleteNumber extends grpc.MethodDefinition { - path: "/fonoster.numbers.v1beta1.Numbers/DeleteNumber"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const NumbersService: INumbersService; - -export interface INumbersServer extends grpc.UntypedServiceImplementation { - listNumbers: grpc.handleUnaryCall; - createNumber: grpc.handleUnaryCall; - getIngressInfo: grpc.handleUnaryCall; - getNumber: grpc.handleUnaryCall; - updateNumber: grpc.handleUnaryCall; - deleteNumber: grpc.handleUnaryCall; -} - -export interface INumbersClient { - listNumbers(request: numbers_pb.ListNumbersRequest, callback: (error: grpc.ServiceError | null, response: numbers_pb.ListNumbersResponse) => void): grpc.ClientUnaryCall; - listNumbers(request: numbers_pb.ListNumbersRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: numbers_pb.ListNumbersResponse) => void): grpc.ClientUnaryCall; - listNumbers(request: numbers_pb.ListNumbersRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: numbers_pb.ListNumbersResponse) => void): grpc.ClientUnaryCall; - createNumber(request: numbers_pb.CreateNumberRequest, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - createNumber(request: numbers_pb.CreateNumberRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - createNumber(request: numbers_pb.CreateNumberRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - getIngressInfo(request: numbers_pb.GetIngressInfoRequest, callback: (error: grpc.ServiceError | null, response: numbers_pb.IngressInfo) => void): grpc.ClientUnaryCall; - getIngressInfo(request: numbers_pb.GetIngressInfoRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: numbers_pb.IngressInfo) => void): grpc.ClientUnaryCall; - getIngressInfo(request: numbers_pb.GetIngressInfoRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: numbers_pb.IngressInfo) => void): grpc.ClientUnaryCall; - getNumber(request: numbers_pb.GetNumberRequest, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - getNumber(request: numbers_pb.GetNumberRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - getNumber(request: numbers_pb.GetNumberRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - updateNumber(request: numbers_pb.UpdateNumberRequest, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - updateNumber(request: numbers_pb.UpdateNumberRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - updateNumber(request: numbers_pb.UpdateNumberRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - deleteNumber(request: numbers_pb.DeleteNumberRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteNumber(request: numbers_pb.DeleteNumberRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteNumber(request: numbers_pb.DeleteNumberRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; -} - -export class NumbersClient extends grpc.Client implements INumbersClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public listNumbers(request: numbers_pb.ListNumbersRequest, callback: (error: grpc.ServiceError | null, response: numbers_pb.ListNumbersResponse) => void): grpc.ClientUnaryCall; - public listNumbers(request: numbers_pb.ListNumbersRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: numbers_pb.ListNumbersResponse) => void): grpc.ClientUnaryCall; - public listNumbers(request: numbers_pb.ListNumbersRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: numbers_pb.ListNumbersResponse) => void): grpc.ClientUnaryCall; - public createNumber(request: numbers_pb.CreateNumberRequest, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - public createNumber(request: numbers_pb.CreateNumberRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - public createNumber(request: numbers_pb.CreateNumberRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - public getIngressInfo(request: numbers_pb.GetIngressInfoRequest, callback: (error: grpc.ServiceError | null, response: numbers_pb.IngressInfo) => void): grpc.ClientUnaryCall; - public getIngressInfo(request: numbers_pb.GetIngressInfoRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: numbers_pb.IngressInfo) => void): grpc.ClientUnaryCall; - public getIngressInfo(request: numbers_pb.GetIngressInfoRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: numbers_pb.IngressInfo) => void): grpc.ClientUnaryCall; - public getNumber(request: numbers_pb.GetNumberRequest, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - public getNumber(request: numbers_pb.GetNumberRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - public getNumber(request: numbers_pb.GetNumberRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - public updateNumber(request: numbers_pb.UpdateNumberRequest, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - public updateNumber(request: numbers_pb.UpdateNumberRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - public updateNumber(request: numbers_pb.UpdateNumberRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: numbers_pb.Number) => void): grpc.ClientUnaryCall; - public deleteNumber(request: numbers_pb.DeleteNumberRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteNumber(request: numbers_pb.DeleteNumberRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteNumber(request: numbers_pb.DeleteNumberRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; -} diff --git a/mods/numbers/src/service/protos/numbers_grpc_pb.js b/mods/numbers/src/service/protos/numbers_grpc_pb.js deleted file mode 100644 index 14bec20f3..000000000 --- a/mods/numbers/src/service/protos/numbers_grpc_pb.js +++ /dev/null @@ -1,204 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// * -// MIT License -// Copyright (c) 2021 Fonoster Inc -// -// The Numbers proto contains the artificats for the administration -// of Numbers. -'use strict'; -var grpc = require('@grpc/grpc-js'); -var numbers_pb = require('./numbers_pb.js'); -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -var common_pb = require('./common_pb.js'); - -function serialize_fonoster_common_v1beta1_Empty(arg) { - if (!(arg instanceof common_pb.Empty)) { - throw new Error('Expected argument of type fonoster.common.v1beta1.Empty'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_common_v1beta1_Empty(buffer_arg) { - return common_pb.Empty.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_numbers_v1beta1_CreateNumberRequest(arg) { - if (!(arg instanceof numbers_pb.CreateNumberRequest)) { - throw new Error('Expected argument of type fonoster.numbers.v1beta1.CreateNumberRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_numbers_v1beta1_CreateNumberRequest(buffer_arg) { - return numbers_pb.CreateNumberRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_numbers_v1beta1_DeleteNumberRequest(arg) { - if (!(arg instanceof numbers_pb.DeleteNumberRequest)) { - throw new Error('Expected argument of type fonoster.numbers.v1beta1.DeleteNumberRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_numbers_v1beta1_DeleteNumberRequest(buffer_arg) { - return numbers_pb.DeleteNumberRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_numbers_v1beta1_GetIngressInfoRequest(arg) { - if (!(arg instanceof numbers_pb.GetIngressInfoRequest)) { - throw new Error('Expected argument of type fonoster.numbers.v1beta1.GetIngressInfoRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_numbers_v1beta1_GetIngressInfoRequest(buffer_arg) { - return numbers_pb.GetIngressInfoRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_numbers_v1beta1_GetNumberRequest(arg) { - if (!(arg instanceof numbers_pb.GetNumberRequest)) { - throw new Error('Expected argument of type fonoster.numbers.v1beta1.GetNumberRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_numbers_v1beta1_GetNumberRequest(buffer_arg) { - return numbers_pb.GetNumberRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_numbers_v1beta1_IngressInfo(arg) { - if (!(arg instanceof numbers_pb.IngressInfo)) { - throw new Error('Expected argument of type fonoster.numbers.v1beta1.IngressInfo'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_numbers_v1beta1_IngressInfo(buffer_arg) { - return numbers_pb.IngressInfo.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_numbers_v1beta1_ListNumbersRequest(arg) { - if (!(arg instanceof numbers_pb.ListNumbersRequest)) { - throw new Error('Expected argument of type fonoster.numbers.v1beta1.ListNumbersRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_numbers_v1beta1_ListNumbersRequest(buffer_arg) { - return numbers_pb.ListNumbersRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_numbers_v1beta1_ListNumbersResponse(arg) { - if (!(arg instanceof numbers_pb.ListNumbersResponse)) { - throw new Error('Expected argument of type fonoster.numbers.v1beta1.ListNumbersResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_numbers_v1beta1_ListNumbersResponse(buffer_arg) { - return numbers_pb.ListNumbersResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_numbers_v1beta1_Number(arg) { - if (!(arg instanceof numbers_pb.Number)) { - throw new Error('Expected argument of type fonoster.numbers.v1beta1.Number'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_numbers_v1beta1_Number(buffer_arg) { - return numbers_pb.Number.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_numbers_v1beta1_UpdateNumberRequest(arg) { - if (!(arg instanceof numbers_pb.UpdateNumberRequest)) { - throw new Error('Expected argument of type fonoster.numbers.v1beta1.UpdateNumberRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_numbers_v1beta1_UpdateNumberRequest(buffer_arg) { - return numbers_pb.UpdateNumberRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var NumbersService = exports.NumbersService = { - // Lists Numbers from the SIP Proxy subsystem -listNumbers: { - path: '/fonoster.numbers.v1beta1.Numbers/ListNumbers', - requestStream: false, - responseStream: false, - requestType: numbers_pb.ListNumbersRequest, - responseType: numbers_pb.ListNumbersResponse, - requestSerialize: serialize_fonoster_numbers_v1beta1_ListNumbersRequest, - requestDeserialize: deserialize_fonoster_numbers_v1beta1_ListNumbersRequest, - responseSerialize: serialize_fonoster_numbers_v1beta1_ListNumbersResponse, - responseDeserialize: deserialize_fonoster_numbers_v1beta1_ListNumbersResponse, - }, - // Creates a new Number resource -createNumber: { - path: '/fonoster.numbers.v1beta1.Numbers/CreateNumber', - requestStream: false, - responseStream: false, - requestType: numbers_pb.CreateNumberRequest, - responseType: numbers_pb.Number, - requestSerialize: serialize_fonoster_numbers_v1beta1_CreateNumberRequest, - requestDeserialize: deserialize_fonoster_numbers_v1beta1_CreateNumberRequest, - responseSerialize: serialize_fonoster_numbers_v1beta1_Number, - responseDeserialize: deserialize_fonoster_numbers_v1beta1_Number, - }, - // Gets the ingess information for a given e164 number -getIngressInfo: { - path: '/fonoster.numbers.v1beta1.Numbers/GetIngressInfo', - requestStream: false, - responseStream: false, - requestType: numbers_pb.GetIngressInfoRequest, - responseType: numbers_pb.IngressInfo, - requestSerialize: serialize_fonoster_numbers_v1beta1_GetIngressInfoRequest, - requestDeserialize: deserialize_fonoster_numbers_v1beta1_GetIngressInfoRequest, - responseSerialize: serialize_fonoster_numbers_v1beta1_IngressInfo, - responseDeserialize: deserialize_fonoster_numbers_v1beta1_IngressInfo, - }, - // Gets Number using its reference -getNumber: { - path: '/fonoster.numbers.v1beta1.Numbers/GetNumber', - requestStream: false, - responseStream: false, - requestType: numbers_pb.GetNumberRequest, - responseType: numbers_pb.Number, - requestSerialize: serialize_fonoster_numbers_v1beta1_GetNumberRequest, - requestDeserialize: deserialize_fonoster_numbers_v1beta1_GetNumberRequest, - responseSerialize: serialize_fonoster_numbers_v1beta1_Number, - responseDeserialize: deserialize_fonoster_numbers_v1beta1_Number, - }, - // Change or update fields in a resource -updateNumber: { - path: '/fonoster.numbers.v1beta1.Numbers/UpdateNumber', - requestStream: false, - responseStream: false, - requestType: numbers_pb.UpdateNumberRequest, - responseType: numbers_pb.Number, - requestSerialize: serialize_fonoster_numbers_v1beta1_UpdateNumberRequest, - requestDeserialize: deserialize_fonoster_numbers_v1beta1_UpdateNumberRequest, - responseSerialize: serialize_fonoster_numbers_v1beta1_Number, - responseDeserialize: deserialize_fonoster_numbers_v1beta1_Number, - }, - // Hard delete of a Number resource -deleteNumber: { - path: '/fonoster.numbers.v1beta1.Numbers/DeleteNumber', - requestStream: false, - responseStream: false, - requestType: numbers_pb.DeleteNumberRequest, - responseType: common_pb.Empty, - requestSerialize: serialize_fonoster_numbers_v1beta1_DeleteNumberRequest, - requestDeserialize: deserialize_fonoster_numbers_v1beta1_DeleteNumberRequest, - responseSerialize: serialize_fonoster_common_v1beta1_Empty, - responseDeserialize: deserialize_fonoster_common_v1beta1_Empty, - }, -}; - -exports.NumbersClient = grpc.makeGenericClientConstructor(NumbersService); diff --git a/mods/numbers/src/service/protos/numbers_pb.d.ts b/mods/numbers/src/service/protos/numbers_pb.d.ts deleted file mode 100644 index 7ac022281..000000000 --- a/mods/numbers/src/service/protos/numbers_pb.d.ts +++ /dev/null @@ -1,249 +0,0 @@ -// package: fonoster.numbers.v1beta1 -// file: numbers.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as common_pb from "./common_pb"; - -export class ListNumbersRequest extends jspb.Message { - getPageSize(): number; - setPageSize(value: number): ListNumbersRequest; - getPageToken(): string; - setPageToken(value: string): ListNumbersRequest; - getView(): common_pb.View; - setView(value: common_pb.View): ListNumbersRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListNumbersRequest.AsObject; - static toObject(includeInstance: boolean, msg: ListNumbersRequest): ListNumbersRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListNumbersRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListNumbersRequest; - static deserializeBinaryFromReader(message: ListNumbersRequest, reader: jspb.BinaryReader): ListNumbersRequest; -} - -export namespace ListNumbersRequest { - export type AsObject = { - pageSize: number, - pageToken: string, - view: common_pb.View, - } -} - -export class ListNumbersResponse extends jspb.Message { - clearNumbersList(): void; - getNumbersList(): Array; - setNumbersList(value: Array): ListNumbersResponse; - addNumbers(value?: Number, index?: number): Number; - getNextPageToken(): string; - setNextPageToken(value: string): ListNumbersResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListNumbersResponse.AsObject; - static toObject(includeInstance: boolean, msg: ListNumbersResponse): ListNumbersResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListNumbersResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListNumbersResponse; - static deserializeBinaryFromReader(message: ListNumbersResponse, reader: jspb.BinaryReader): ListNumbersResponse; -} - -export namespace ListNumbersResponse { - export type AsObject = { - numbersList: Array, - nextPageToken: string, - } -} - -export class CreateNumberRequest extends jspb.Message { - getProviderRef(): string; - setProviderRef(value: string): CreateNumberRequest; - getE164Number(): string; - setE164Number(value: string): CreateNumberRequest; - getAorLink(): string; - setAorLink(value: string): CreateNumberRequest; - - hasIngressInfo(): boolean; - clearIngressInfo(): void; - getIngressInfo(): IngressInfo | undefined; - setIngressInfo(value?: IngressInfo): CreateNumberRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateNumberRequest.AsObject; - static toObject(includeInstance: boolean, msg: CreateNumberRequest): CreateNumberRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateNumberRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateNumberRequest; - static deserializeBinaryFromReader(message: CreateNumberRequest, reader: jspb.BinaryReader): CreateNumberRequest; -} - -export namespace CreateNumberRequest { - export type AsObject = { - providerRef: string, - e164Number: string, - aorLink: string, - ingressInfo?: IngressInfo.AsObject, - } -} - -export class UpdateNumberRequest extends jspb.Message { - getRef(): string; - setRef(value: string): UpdateNumberRequest; - getAorLink(): string; - setAorLink(value: string): UpdateNumberRequest; - - hasIngressInfo(): boolean; - clearIngressInfo(): void; - getIngressInfo(): IngressInfo | undefined; - setIngressInfo(value?: IngressInfo): UpdateNumberRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UpdateNumberRequest.AsObject; - static toObject(includeInstance: boolean, msg: UpdateNumberRequest): UpdateNumberRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UpdateNumberRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UpdateNumberRequest; - static deserializeBinaryFromReader(message: UpdateNumberRequest, reader: jspb.BinaryReader): UpdateNumberRequest; -} - -export namespace UpdateNumberRequest { - export type AsObject = { - ref: string, - aorLink: string, - ingressInfo?: IngressInfo.AsObject, - } -} - -export class GetNumberRequest extends jspb.Message { - getRef(): string; - setRef(value: string): GetNumberRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetNumberRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetNumberRequest): GetNumberRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetNumberRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetNumberRequest; - static deserializeBinaryFromReader(message: GetNumberRequest, reader: jspb.BinaryReader): GetNumberRequest; -} - -export namespace GetNumberRequest { - export type AsObject = { - ref: string, - } -} - -export class GetIngressInfoRequest extends jspb.Message { - getE164Number(): string; - setE164Number(value: string): GetIngressInfoRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetIngressInfoRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetIngressInfoRequest): GetIngressInfoRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetIngressInfoRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetIngressInfoRequest; - static deserializeBinaryFromReader(message: GetIngressInfoRequest, reader: jspb.BinaryReader): GetIngressInfoRequest; -} - -export namespace GetIngressInfoRequest { - export type AsObject = { - e164Number: string, - } -} - -export class DeleteNumberRequest extends jspb.Message { - getRef(): string; - setRef(value: string): DeleteNumberRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DeleteNumberRequest.AsObject; - static toObject(includeInstance: boolean, msg: DeleteNumberRequest): DeleteNumberRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DeleteNumberRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DeleteNumberRequest; - static deserializeBinaryFromReader(message: DeleteNumberRequest, reader: jspb.BinaryReader): DeleteNumberRequest; -} - -export namespace DeleteNumberRequest { - export type AsObject = { - ref: string, - } -} - -export class Number extends jspb.Message { - getRef(): string; - setRef(value: string): Number; - getProviderRef(): string; - setProviderRef(value: string): Number; - getE164Number(): string; - setE164Number(value: string): Number; - getAorLink(): string; - setAorLink(value: string): Number; - - hasIngressInfo(): boolean; - clearIngressInfo(): void; - getIngressInfo(): IngressInfo | undefined; - setIngressInfo(value?: IngressInfo): Number; - getCreateTime(): string; - setCreateTime(value: string): Number; - getUpdateTime(): string; - setUpdateTime(value: string): Number; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Number.AsObject; - static toObject(includeInstance: boolean, msg: Number): Number.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Number, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Number; - static deserializeBinaryFromReader(message: Number, reader: jspb.BinaryReader): Number; -} - -export namespace Number { - export type AsObject = { - ref: string, - providerRef: string, - e164Number: string, - aorLink: string, - ingressInfo?: IngressInfo.AsObject, - createTime: string, - updateTime: string, - } -} - -export class IngressInfo extends jspb.Message { - getAccessKeyId(): string; - setAccessKeyId(value: string): IngressInfo; - getWebhook(): string; - setWebhook(value: string): IngressInfo; - getAppRef(): string; - setAppRef(value: string): IngressInfo; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): IngressInfo.AsObject; - static toObject(includeInstance: boolean, msg: IngressInfo): IngressInfo.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: IngressInfo, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): IngressInfo; - static deserializeBinaryFromReader(message: IngressInfo, reader: jspb.BinaryReader): IngressInfo; -} - -export namespace IngressInfo { - export type AsObject = { - accessKeyId: string, - webhook: string, - appRef: string, - } -} diff --git a/mods/numbers/src/service/protos/numbers_pb.js b/mods/numbers/src/service/protos/numbers_pb.js deleted file mode 100644 index c50746461..000000000 --- a/mods/numbers/src/service/protos/numbers_pb.js +++ /dev/null @@ -1,1967 +0,0 @@ -// source: numbers.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -goog.object.extend(proto, google_api_annotations_pb); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -goog.object.extend(proto, google_api_field_behavior_pb); -var common_pb = require('./common_pb.js'); -goog.object.extend(proto, common_pb); -goog.exportSymbol('proto.fonoster.numbers.v1beta1.CreateNumberRequest', null, global); -goog.exportSymbol('proto.fonoster.numbers.v1beta1.DeleteNumberRequest', null, global); -goog.exportSymbol('proto.fonoster.numbers.v1beta1.GetIngressInfoRequest', null, global); -goog.exportSymbol('proto.fonoster.numbers.v1beta1.GetNumberRequest', null, global); -goog.exportSymbol('proto.fonoster.numbers.v1beta1.IngressInfo', null, global); -goog.exportSymbol('proto.fonoster.numbers.v1beta1.ListNumbersRequest', null, global); -goog.exportSymbol('proto.fonoster.numbers.v1beta1.ListNumbersResponse', null, global); -goog.exportSymbol('proto.fonoster.numbers.v1beta1.Number', null, global); -goog.exportSymbol('proto.fonoster.numbers.v1beta1.UpdateNumberRequest', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.numbers.v1beta1.ListNumbersRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.numbers.v1beta1.ListNumbersRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.numbers.v1beta1.ListNumbersRequest.displayName = 'proto.fonoster.numbers.v1beta1.ListNumbersRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.numbers.v1beta1.ListNumbersResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.numbers.v1beta1.ListNumbersResponse.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.numbers.v1beta1.ListNumbersResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.numbers.v1beta1.ListNumbersResponse.displayName = 'proto.fonoster.numbers.v1beta1.ListNumbersResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.numbers.v1beta1.CreateNumberRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.numbers.v1beta1.CreateNumberRequest.displayName = 'proto.fonoster.numbers.v1beta1.CreateNumberRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.numbers.v1beta1.UpdateNumberRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.numbers.v1beta1.UpdateNumberRequest.displayName = 'proto.fonoster.numbers.v1beta1.UpdateNumberRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.numbers.v1beta1.GetNumberRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.numbers.v1beta1.GetNumberRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.numbers.v1beta1.GetNumberRequest.displayName = 'proto.fonoster.numbers.v1beta1.GetNumberRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.numbers.v1beta1.GetIngressInfoRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.numbers.v1beta1.GetIngressInfoRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.numbers.v1beta1.GetIngressInfoRequest.displayName = 'proto.fonoster.numbers.v1beta1.GetIngressInfoRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.numbers.v1beta1.DeleteNumberRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.numbers.v1beta1.DeleteNumberRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.numbers.v1beta1.DeleteNumberRequest.displayName = 'proto.fonoster.numbers.v1beta1.DeleteNumberRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.numbers.v1beta1.Number = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.numbers.v1beta1.Number, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.numbers.v1beta1.Number.displayName = 'proto.fonoster.numbers.v1beta1.Number'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.numbers.v1beta1.IngressInfo = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.numbers.v1beta1.IngressInfo, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.numbers.v1beta1.IngressInfo.displayName = 'proto.fonoster.numbers.v1beta1.IngressInfo'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.numbers.v1beta1.ListNumbersRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.numbers.v1beta1.ListNumbersRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.numbers.v1beta1.ListNumbersRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.ListNumbersRequest.toObject = function(includeInstance, msg) { - var f, obj = { - pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), - pageToken: jspb.Message.getFieldWithDefault(msg, 2, ""), - view: jspb.Message.getFieldWithDefault(msg, 3, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.numbers.v1beta1.ListNumbersRequest} - */ -proto.fonoster.numbers.v1beta1.ListNumbersRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.numbers.v1beta1.ListNumbersRequest; - return proto.fonoster.numbers.v1beta1.ListNumbersRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.numbers.v1beta1.ListNumbersRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.numbers.v1beta1.ListNumbersRequest} - */ -proto.fonoster.numbers.v1beta1.ListNumbersRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setPageSize(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPageToken(value); - break; - case 3: - var value = /** @type {!proto.fonoster.common.v1beta1.View} */ (reader.readEnum()); - msg.setView(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.numbers.v1beta1.ListNumbersRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.numbers.v1beta1.ListNumbersRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.numbers.v1beta1.ListNumbersRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.ListNumbersRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getPageSize(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getView(); - if (f !== 0.0) { - writer.writeEnum( - 3, - f - ); - } -}; - - -/** - * optional int32 page_size = 1; - * @return {number} - */ -proto.fonoster.numbers.v1beta1.ListNumbersRequest.prototype.getPageSize = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.numbers.v1beta1.ListNumbersRequest} returns this - */ -proto.fonoster.numbers.v1beta1.ListNumbersRequest.prototype.setPageSize = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string page_token = 2; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.ListNumbersRequest.prototype.getPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.ListNumbersRequest} returns this - */ -proto.fonoster.numbers.v1beta1.ListNumbersRequest.prototype.setPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional fonoster.common.v1beta1.View view = 3; - * @return {!proto.fonoster.common.v1beta1.View} - */ -proto.fonoster.numbers.v1beta1.ListNumbersRequest.prototype.getView = function() { - return /** @type {!proto.fonoster.common.v1beta1.View} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {!proto.fonoster.common.v1beta1.View} value - * @return {!proto.fonoster.numbers.v1beta1.ListNumbersRequest} returns this - */ -proto.fonoster.numbers.v1beta1.ListNumbersRequest.prototype.setView = function(value) { - return jspb.Message.setProto3EnumField(this, 3, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.numbers.v1beta1.ListNumbersResponse.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.numbers.v1beta1.ListNumbersResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.numbers.v1beta1.ListNumbersResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.numbers.v1beta1.ListNumbersResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.ListNumbersResponse.toObject = function(includeInstance, msg) { - var f, obj = { - numbersList: jspb.Message.toObjectList(msg.getNumbersList(), - proto.fonoster.numbers.v1beta1.Number.toObject, includeInstance), - nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.numbers.v1beta1.ListNumbersResponse} - */ -proto.fonoster.numbers.v1beta1.ListNumbersResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.numbers.v1beta1.ListNumbersResponse; - return proto.fonoster.numbers.v1beta1.ListNumbersResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.numbers.v1beta1.ListNumbersResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.numbers.v1beta1.ListNumbersResponse} - */ -proto.fonoster.numbers.v1beta1.ListNumbersResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.fonoster.numbers.v1beta1.Number; - reader.readMessage(value,proto.fonoster.numbers.v1beta1.Number.deserializeBinaryFromReader); - msg.addNumbers(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setNextPageToken(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.numbers.v1beta1.ListNumbersResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.numbers.v1beta1.ListNumbersResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.numbers.v1beta1.ListNumbersResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.ListNumbersResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getNumbersList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.fonoster.numbers.v1beta1.Number.serializeBinaryToWriter - ); - } - f = message.getNextPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * repeated Number numbers = 1; - * @return {!Array} - */ -proto.fonoster.numbers.v1beta1.ListNumbersResponse.prototype.getNumbersList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.fonoster.numbers.v1beta1.Number, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.numbers.v1beta1.ListNumbersResponse} returns this -*/ -proto.fonoster.numbers.v1beta1.ListNumbersResponse.prototype.setNumbersList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.fonoster.numbers.v1beta1.Number=} opt_value - * @param {number=} opt_index - * @return {!proto.fonoster.numbers.v1beta1.Number} - */ -proto.fonoster.numbers.v1beta1.ListNumbersResponse.prototype.addNumbers = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.numbers.v1beta1.Number, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.numbers.v1beta1.ListNumbersResponse} returns this - */ -proto.fonoster.numbers.v1beta1.ListNumbersResponse.prototype.clearNumbersList = function() { - return this.setNumbersList([]); -}; - - -/** - * optional string next_page_token = 2; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.ListNumbersResponse.prototype.getNextPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.ListNumbersResponse} returns this - */ -proto.fonoster.numbers.v1beta1.ListNumbersResponse.prototype.setNextPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.numbers.v1beta1.CreateNumberRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.numbers.v1beta1.CreateNumberRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.toObject = function(includeInstance, msg) { - var f, obj = { - providerRef: jspb.Message.getFieldWithDefault(msg, 1, ""), - e164Number: jspb.Message.getFieldWithDefault(msg, 2, ""), - aorLink: jspb.Message.getFieldWithDefault(msg, 3, ""), - ingressInfo: (f = msg.getIngressInfo()) && proto.fonoster.numbers.v1beta1.IngressInfo.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.numbers.v1beta1.CreateNumberRequest} - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.numbers.v1beta1.CreateNumberRequest; - return proto.fonoster.numbers.v1beta1.CreateNumberRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.numbers.v1beta1.CreateNumberRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.numbers.v1beta1.CreateNumberRequest} - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setProviderRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setE164Number(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setAorLink(value); - break; - case 4: - var value = new proto.fonoster.numbers.v1beta1.IngressInfo; - reader.readMessage(value,proto.fonoster.numbers.v1beta1.IngressInfo.deserializeBinaryFromReader); - msg.setIngressInfo(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.numbers.v1beta1.CreateNumberRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.numbers.v1beta1.CreateNumberRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getProviderRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getE164Number(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getAorLink(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIngressInfo(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.fonoster.numbers.v1beta1.IngressInfo.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string provider_ref = 1; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.prototype.getProviderRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.CreateNumberRequest} returns this - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.prototype.setProviderRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string e164_number = 2; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.prototype.getE164Number = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.CreateNumberRequest} returns this - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.prototype.setE164Number = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string aor_link = 3; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.prototype.getAorLink = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.CreateNumberRequest} returns this - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.prototype.setAorLink = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional IngressInfo ingress_info = 4; - * @return {?proto.fonoster.numbers.v1beta1.IngressInfo} - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.prototype.getIngressInfo = function() { - return /** @type{?proto.fonoster.numbers.v1beta1.IngressInfo} */ ( - jspb.Message.getWrapperField(this, proto.fonoster.numbers.v1beta1.IngressInfo, 4)); -}; - - -/** - * @param {?proto.fonoster.numbers.v1beta1.IngressInfo|undefined} value - * @return {!proto.fonoster.numbers.v1beta1.CreateNumberRequest} returns this -*/ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.prototype.setIngressInfo = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.numbers.v1beta1.CreateNumberRequest} returns this - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.prototype.clearIngressInfo = function() { - return this.setIngressInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.numbers.v1beta1.CreateNumberRequest.prototype.hasIngressInfo = function() { - return jspb.Message.getField(this, 4) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.numbers.v1beta1.UpdateNumberRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.numbers.v1beta1.UpdateNumberRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - aorLink: jspb.Message.getFieldWithDefault(msg, 2, ""), - ingressInfo: (f = msg.getIngressInfo()) && proto.fonoster.numbers.v1beta1.IngressInfo.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.numbers.v1beta1.UpdateNumberRequest} - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.numbers.v1beta1.UpdateNumberRequest; - return proto.fonoster.numbers.v1beta1.UpdateNumberRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.numbers.v1beta1.UpdateNumberRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.numbers.v1beta1.UpdateNumberRequest} - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setAorLink(value); - break; - case 3: - var value = new proto.fonoster.numbers.v1beta1.IngressInfo; - reader.readMessage(value,proto.fonoster.numbers.v1beta1.IngressInfo.deserializeBinaryFromReader); - msg.setIngressInfo(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.numbers.v1beta1.UpdateNumberRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.numbers.v1beta1.UpdateNumberRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getAorLink(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getIngressInfo(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.fonoster.numbers.v1beta1.IngressInfo.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.UpdateNumberRequest} returns this - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string aor_link = 2; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.prototype.getAorLink = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.UpdateNumberRequest} returns this - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.prototype.setAorLink = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional IngressInfo ingress_info = 3; - * @return {?proto.fonoster.numbers.v1beta1.IngressInfo} - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.prototype.getIngressInfo = function() { - return /** @type{?proto.fonoster.numbers.v1beta1.IngressInfo} */ ( - jspb.Message.getWrapperField(this, proto.fonoster.numbers.v1beta1.IngressInfo, 3)); -}; - - -/** - * @param {?proto.fonoster.numbers.v1beta1.IngressInfo|undefined} value - * @return {!proto.fonoster.numbers.v1beta1.UpdateNumberRequest} returns this -*/ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.prototype.setIngressInfo = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.numbers.v1beta1.UpdateNumberRequest} returns this - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.prototype.clearIngressInfo = function() { - return this.setIngressInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.numbers.v1beta1.UpdateNumberRequest.prototype.hasIngressInfo = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.numbers.v1beta1.GetNumberRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.numbers.v1beta1.GetNumberRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.numbers.v1beta1.GetNumberRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.GetNumberRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.numbers.v1beta1.GetNumberRequest} - */ -proto.fonoster.numbers.v1beta1.GetNumberRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.numbers.v1beta1.GetNumberRequest; - return proto.fonoster.numbers.v1beta1.GetNumberRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.numbers.v1beta1.GetNumberRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.numbers.v1beta1.GetNumberRequest} - */ -proto.fonoster.numbers.v1beta1.GetNumberRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.numbers.v1beta1.GetNumberRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.numbers.v1beta1.GetNumberRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.numbers.v1beta1.GetNumberRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.GetNumberRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.GetNumberRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.GetNumberRequest} returns this - */ -proto.fonoster.numbers.v1beta1.GetNumberRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.numbers.v1beta1.GetIngressInfoRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.numbers.v1beta1.GetIngressInfoRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.numbers.v1beta1.GetIngressInfoRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.GetIngressInfoRequest.toObject = function(includeInstance, msg) { - var f, obj = { - e164Number: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.numbers.v1beta1.GetIngressInfoRequest} - */ -proto.fonoster.numbers.v1beta1.GetIngressInfoRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.numbers.v1beta1.GetIngressInfoRequest; - return proto.fonoster.numbers.v1beta1.GetIngressInfoRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.numbers.v1beta1.GetIngressInfoRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.numbers.v1beta1.GetIngressInfoRequest} - */ -proto.fonoster.numbers.v1beta1.GetIngressInfoRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setE164Number(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.numbers.v1beta1.GetIngressInfoRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.numbers.v1beta1.GetIngressInfoRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.numbers.v1beta1.GetIngressInfoRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.GetIngressInfoRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getE164Number(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string e164_number = 1; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.GetIngressInfoRequest.prototype.getE164Number = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.GetIngressInfoRequest} returns this - */ -proto.fonoster.numbers.v1beta1.GetIngressInfoRequest.prototype.setE164Number = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.numbers.v1beta1.DeleteNumberRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.numbers.v1beta1.DeleteNumberRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.numbers.v1beta1.DeleteNumberRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.DeleteNumberRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.numbers.v1beta1.DeleteNumberRequest} - */ -proto.fonoster.numbers.v1beta1.DeleteNumberRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.numbers.v1beta1.DeleteNumberRequest; - return proto.fonoster.numbers.v1beta1.DeleteNumberRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.numbers.v1beta1.DeleteNumberRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.numbers.v1beta1.DeleteNumberRequest} - */ -proto.fonoster.numbers.v1beta1.DeleteNumberRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.numbers.v1beta1.DeleteNumberRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.numbers.v1beta1.DeleteNumberRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.numbers.v1beta1.DeleteNumberRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.DeleteNumberRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.DeleteNumberRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.DeleteNumberRequest} returns this - */ -proto.fonoster.numbers.v1beta1.DeleteNumberRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.numbers.v1beta1.Number.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.numbers.v1beta1.Number.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.numbers.v1beta1.Number} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.Number.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - providerRef: jspb.Message.getFieldWithDefault(msg, 2, ""), - e164Number: jspb.Message.getFieldWithDefault(msg, 3, ""), - aorLink: jspb.Message.getFieldWithDefault(msg, 4, ""), - ingressInfo: (f = msg.getIngressInfo()) && proto.fonoster.numbers.v1beta1.IngressInfo.toObject(includeInstance, f), - createTime: jspb.Message.getFieldWithDefault(msg, 6, ""), - updateTime: jspb.Message.getFieldWithDefault(msg, 7, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.numbers.v1beta1.Number} - */ -proto.fonoster.numbers.v1beta1.Number.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.numbers.v1beta1.Number; - return proto.fonoster.numbers.v1beta1.Number.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.numbers.v1beta1.Number} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.numbers.v1beta1.Number} - */ -proto.fonoster.numbers.v1beta1.Number.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setProviderRef(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setE164Number(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setAorLink(value); - break; - case 5: - var value = new proto.fonoster.numbers.v1beta1.IngressInfo; - reader.readMessage(value,proto.fonoster.numbers.v1beta1.IngressInfo.deserializeBinaryFromReader); - msg.setIngressInfo(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setCreateTime(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setUpdateTime(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.numbers.v1beta1.Number.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.numbers.v1beta1.Number.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.numbers.v1beta1.Number} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.Number.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getProviderRef(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getE164Number(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getAorLink(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getIngressInfo(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.fonoster.numbers.v1beta1.IngressInfo.serializeBinaryToWriter - ); - } - f = message.getCreateTime(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getUpdateTime(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.Number.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.Number} returns this - */ -proto.fonoster.numbers.v1beta1.Number.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string provider_ref = 2; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.Number.prototype.getProviderRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.Number} returns this - */ -proto.fonoster.numbers.v1beta1.Number.prototype.setProviderRef = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string e164_number = 3; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.Number.prototype.getE164Number = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.Number} returns this - */ -proto.fonoster.numbers.v1beta1.Number.prototype.setE164Number = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string aor_link = 4; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.Number.prototype.getAorLink = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.Number} returns this - */ -proto.fonoster.numbers.v1beta1.Number.prototype.setAorLink = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional IngressInfo ingress_info = 5; - * @return {?proto.fonoster.numbers.v1beta1.IngressInfo} - */ -proto.fonoster.numbers.v1beta1.Number.prototype.getIngressInfo = function() { - return /** @type{?proto.fonoster.numbers.v1beta1.IngressInfo} */ ( - jspb.Message.getWrapperField(this, proto.fonoster.numbers.v1beta1.IngressInfo, 5)); -}; - - -/** - * @param {?proto.fonoster.numbers.v1beta1.IngressInfo|undefined} value - * @return {!proto.fonoster.numbers.v1beta1.Number} returns this -*/ -proto.fonoster.numbers.v1beta1.Number.prototype.setIngressInfo = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.fonoster.numbers.v1beta1.Number} returns this - */ -proto.fonoster.numbers.v1beta1.Number.prototype.clearIngressInfo = function() { - return this.setIngressInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.fonoster.numbers.v1beta1.Number.prototype.hasIngressInfo = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string create_time = 6; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.Number.prototype.getCreateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.Number} returns this - */ -proto.fonoster.numbers.v1beta1.Number.prototype.setCreateTime = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string update_time = 7; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.Number.prototype.getUpdateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.Number} returns this - */ -proto.fonoster.numbers.v1beta1.Number.prototype.setUpdateTime = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.numbers.v1beta1.IngressInfo.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.numbers.v1beta1.IngressInfo.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.numbers.v1beta1.IngressInfo} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.IngressInfo.toObject = function(includeInstance, msg) { - var f, obj = { - accessKeyId: jspb.Message.getFieldWithDefault(msg, 1, ""), - webhook: jspb.Message.getFieldWithDefault(msg, 2, ""), - appRef: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.numbers.v1beta1.IngressInfo} - */ -proto.fonoster.numbers.v1beta1.IngressInfo.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.numbers.v1beta1.IngressInfo; - return proto.fonoster.numbers.v1beta1.IngressInfo.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.numbers.v1beta1.IngressInfo} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.numbers.v1beta1.IngressInfo} - */ -proto.fonoster.numbers.v1beta1.IngressInfo.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setAccessKeyId(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setWebhook(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setAppRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.numbers.v1beta1.IngressInfo.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.numbers.v1beta1.IngressInfo.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.numbers.v1beta1.IngressInfo} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.numbers.v1beta1.IngressInfo.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getAccessKeyId(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getWebhook(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getAppRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string access_key_id = 1; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.IngressInfo.prototype.getAccessKeyId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.IngressInfo} returns this - */ -proto.fonoster.numbers.v1beta1.IngressInfo.prototype.setAccessKeyId = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string webhook = 2; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.IngressInfo.prototype.getWebhook = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.IngressInfo} returns this - */ -proto.fonoster.numbers.v1beta1.IngressInfo.prototype.setWebhook = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string app_ref = 3; - * @return {string} - */ -proto.fonoster.numbers.v1beta1.IngressInfo.prototype.getAppRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.numbers.v1beta1.IngressInfo} returns this - */ -proto.fonoster.numbers.v1beta1.IngressInfo.prototype.setAppRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -goog.object.extend(exports, proto.fonoster.numbers.v1beta1); diff --git a/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js b/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts b/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts deleted file mode 100644 index 8e3a35012..000000000 --- a/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; -import * as protoc_gen_openapiv2_options_openapiv2_pb from "../../protoc-gen-openapiv2/options/openapiv2_pb"; - -export const openapiv2Swagger: jspb.ExtensionFieldInfo; - -export const openapiv2Operation: jspb.ExtensionFieldInfo; - -export const openapiv2Schema: jspb.ExtensionFieldInfo; - -export const openapiv2Tag: jspb.ExtensionFieldInfo; - -export const openapiv2Field: jspb.ExtensionFieldInfo; diff --git a/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js b/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js deleted file mode 100644 index e92ccec18..000000000 --- a/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js +++ /dev/null @@ -1,152 +0,0 @@ -// source: protoc-gen-openapiv2/options/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -var protoc$gen$openapiv2_options_openapiv2_pb = require('../../protoc-gen-openapiv2/options/openapiv2_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_openapiv2_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Swagger`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Swagger: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.toObject), - 0); - -google_protobuf_descriptor_pb.FileOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FileOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Operation`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Operation: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Operation, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Operation.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Schema`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Schema: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Schema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Schema.toObject), - 0); - -google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MessageOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Tag`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Tag: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Tag, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Tag.toObject), - 0); - -google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.ServiceOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Field`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Field: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.toObject), - 0); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js b/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts b/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts deleted file mode 100644 index 3c3972ea9..000000000 --- a/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +++ /dev/null @@ -1,685 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/openapiv2.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class Swagger extends jspb.Message { - getSwagger(): string; - setSwagger(value: string): Swagger; - - hasInfo(): boolean; - clearInfo(): void; - getInfo(): Info | undefined; - setInfo(value?: Info): Swagger; - getHost(): string; - setHost(value: string): Swagger; - getBasePath(): string; - setBasePath(value: string): Swagger; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Swagger; - addSchemes(value: Scheme, index?: number): Scheme; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Swagger; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Swagger; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - - hasSecurityDefinitions(): boolean; - clearSecurityDefinitions(): void; - getSecurityDefinitions(): SecurityDefinitions | undefined; - setSecurityDefinitions(value?: SecurityDefinitions): Swagger; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Swagger; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Swagger; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Swagger.AsObject; - static toObject(includeInstance: boolean, msg: Swagger): Swagger.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Swagger, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Swagger; - static deserializeBinaryFromReader(message: Swagger, reader: jspb.BinaryReader): Swagger; -} - -export namespace Swagger { - export type AsObject = { - swagger: string, - info?: Info.AsObject, - host: string, - basePath: string, - schemesList: Array, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - securityDefinitions?: SecurityDefinitions.AsObject, - securityList: Array, - externalDocs?: ExternalDocumentation.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Operation extends jspb.Message { - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): Operation; - addTags(value: string, index?: number): string; - getSummary(): string; - setSummary(value: string): Operation; - getDescription(): string; - setDescription(value: string): Operation; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Operation; - getOperationId(): string; - setOperationId(value: string): Operation; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Operation; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Operation; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Operation; - addSchemes(value: Scheme, index?: number): Scheme; - getDeprecated(): boolean; - setDeprecated(value: boolean): Operation; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Operation; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Operation.AsObject; - static toObject(includeInstance: boolean, msg: Operation): Operation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Operation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Operation; - static deserializeBinaryFromReader(message: Operation, reader: jspb.BinaryReader): Operation; -} - -export namespace Operation { - export type AsObject = { - tagsList: Array, - summary: string, - description: string, - externalDocs?: ExternalDocumentation.AsObject, - operationId: string, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - schemesList: Array, - deprecated: boolean, - securityList: Array, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Header extends jspb.Message { - getDescription(): string; - setDescription(value: string): Header; - getType(): string; - setType(value: string): Header; - getFormat(): string; - setFormat(value: string): Header; - getDefault(): string; - setDefault(value: string): Header; - getPattern(): string; - setPattern(value: string): Header; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Header.AsObject; - static toObject(includeInstance: boolean, msg: Header): Header.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Header, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Header; - static deserializeBinaryFromReader(message: Header, reader: jspb.BinaryReader): Header; -} - -export namespace Header { - export type AsObject = { - description: string, - type: string, - format: string, - pb_default: string, - pattern: string, - } -} - -export class Response extends jspb.Message { - getDescription(): string; - setDescription(value: string): Response; - - hasSchema(): boolean; - clearSchema(): void; - getSchema(): Schema | undefined; - setSchema(value?: Schema): Response; - - getHeadersMap(): jspb.Map; - clearHeadersMap(): void; - - getExamplesMap(): jspb.Map; - clearExamplesMap(): void; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Response.AsObject; - static toObject(includeInstance: boolean, msg: Response): Response.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Response, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Response; - static deserializeBinaryFromReader(message: Response, reader: jspb.BinaryReader): Response; -} - -export namespace Response { - export type AsObject = { - description: string, - schema?: Schema.AsObject, - - headersMap: Array<[string, Header.AsObject]>, - - examplesMap: Array<[string, string]>, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Info extends jspb.Message { - getTitle(): string; - setTitle(value: string): Info; - getDescription(): string; - setDescription(value: string): Info; - getTermsOfService(): string; - setTermsOfService(value: string): Info; - - hasContact(): boolean; - clearContact(): void; - getContact(): Contact | undefined; - setContact(value?: Contact): Info; - - hasLicense(): boolean; - clearLicense(): void; - getLicense(): License | undefined; - setLicense(value?: License): Info; - getVersion(): string; - setVersion(value: string): Info; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Info.AsObject; - static toObject(includeInstance: boolean, msg: Info): Info.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Info, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Info; - static deserializeBinaryFromReader(message: Info, reader: jspb.BinaryReader): Info; -} - -export namespace Info { - export type AsObject = { - title: string, - description: string, - termsOfService: string, - contact?: Contact.AsObject, - license?: License.AsObject, - version: string, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Contact extends jspb.Message { - getName(): string; - setName(value: string): Contact; - getUrl(): string; - setUrl(value: string): Contact; - getEmail(): string; - setEmail(value: string): Contact; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contact.AsObject; - static toObject(includeInstance: boolean, msg: Contact): Contact.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contact, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contact; - static deserializeBinaryFromReader(message: Contact, reader: jspb.BinaryReader): Contact; -} - -export namespace Contact { - export type AsObject = { - name: string, - url: string, - email: string, - } -} - -export class License extends jspb.Message { - getName(): string; - setName(value: string): License; - getUrl(): string; - setUrl(value: string): License; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): License.AsObject; - static toObject(includeInstance: boolean, msg: License): License.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: License, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): License; - static deserializeBinaryFromReader(message: License, reader: jspb.BinaryReader): License; -} - -export namespace License { - export type AsObject = { - name: string, - url: string, - } -} - -export class ExternalDocumentation extends jspb.Message { - getDescription(): string; - setDescription(value: string): ExternalDocumentation; - getUrl(): string; - setUrl(value: string): ExternalDocumentation; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ExternalDocumentation.AsObject; - static toObject(includeInstance: boolean, msg: ExternalDocumentation): ExternalDocumentation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ExternalDocumentation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ExternalDocumentation; - static deserializeBinaryFromReader(message: ExternalDocumentation, reader: jspb.BinaryReader): ExternalDocumentation; -} - -export namespace ExternalDocumentation { - export type AsObject = { - description: string, - url: string, - } -} - -export class Schema extends jspb.Message { - - hasJsonSchema(): boolean; - clearJsonSchema(): void; - getJsonSchema(): JSONSchema | undefined; - setJsonSchema(value?: JSONSchema): Schema; - getDiscriminator(): string; - setDiscriminator(value: string): Schema; - getReadOnly(): boolean; - setReadOnly(value: boolean): Schema; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Schema; - getExample(): string; - setExample(value: string): Schema; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Schema.AsObject; - static toObject(includeInstance: boolean, msg: Schema): Schema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Schema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Schema; - static deserializeBinaryFromReader(message: Schema, reader: jspb.BinaryReader): Schema; -} - -export namespace Schema { - export type AsObject = { - jsonSchema?: JSONSchema.AsObject, - discriminator: string, - readOnly: boolean, - externalDocs?: ExternalDocumentation.AsObject, - example: string, - } -} - -export class JSONSchema extends jspb.Message { - getRef(): string; - setRef(value: string): JSONSchema; - getTitle(): string; - setTitle(value: string): JSONSchema; - getDescription(): string; - setDescription(value: string): JSONSchema; - getDefault(): string; - setDefault(value: string): JSONSchema; - getReadOnly(): boolean; - setReadOnly(value: boolean): JSONSchema; - getExample(): string; - setExample(value: string): JSONSchema; - getMultipleOf(): number; - setMultipleOf(value: number): JSONSchema; - getMaximum(): number; - setMaximum(value: number): JSONSchema; - getExclusiveMaximum(): boolean; - setExclusiveMaximum(value: boolean): JSONSchema; - getMinimum(): number; - setMinimum(value: number): JSONSchema; - getExclusiveMinimum(): boolean; - setExclusiveMinimum(value: boolean): JSONSchema; - getMaxLength(): number; - setMaxLength(value: number): JSONSchema; - getMinLength(): number; - setMinLength(value: number): JSONSchema; - getPattern(): string; - setPattern(value: string): JSONSchema; - getMaxItems(): number; - setMaxItems(value: number): JSONSchema; - getMinItems(): number; - setMinItems(value: number): JSONSchema; - getUniqueItems(): boolean; - setUniqueItems(value: boolean): JSONSchema; - getMaxProperties(): number; - setMaxProperties(value: number): JSONSchema; - getMinProperties(): number; - setMinProperties(value: number): JSONSchema; - clearRequiredList(): void; - getRequiredList(): Array; - setRequiredList(value: Array): JSONSchema; - addRequired(value: string, index?: number): string; - clearArrayList(): void; - getArrayList(): Array; - setArrayList(value: Array): JSONSchema; - addArray(value: string, index?: number): string; - clearTypeList(): void; - getTypeList(): Array; - setTypeList(value: Array): JSONSchema; - addType(value: JSONSchema.JSONSchemaSimpleTypes, index?: number): JSONSchema.JSONSchemaSimpleTypes; - getFormat(): string; - setFormat(value: string): JSONSchema; - clearEnumList(): void; - getEnumList(): Array; - setEnumList(value: Array): JSONSchema; - addEnum(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): JSONSchema.AsObject; - static toObject(includeInstance: boolean, msg: JSONSchema): JSONSchema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: JSONSchema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): JSONSchema; - static deserializeBinaryFromReader(message: JSONSchema, reader: jspb.BinaryReader): JSONSchema; -} - -export namespace JSONSchema { - export type AsObject = { - ref: string, - title: string, - description: string, - pb_default: string, - readOnly: boolean, - example: string, - multipleOf: number, - maximum: number, - exclusiveMaximum: boolean, - minimum: number, - exclusiveMinimum: boolean, - maxLength: number, - minLength: number, - pattern: string, - maxItems: number, - minItems: number, - uniqueItems: boolean, - maxProperties: number, - minProperties: number, - requiredList: Array, - arrayList: Array, - typeList: Array, - format: string, - pb_enumList: Array, - } - - export enum JSONSchemaSimpleTypes { - UNKNOWN = 0, - ARRAY = 1, - BOOLEAN = 2, - INTEGER = 3, - NULL = 4, - NUMBER = 5, - OBJECT = 6, - STRING = 7, - } - -} - -export class Tag extends jspb.Message { - getDescription(): string; - setDescription(value: string): Tag; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Tag; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Tag.AsObject; - static toObject(includeInstance: boolean, msg: Tag): Tag.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Tag, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Tag; - static deserializeBinaryFromReader(message: Tag, reader: jspb.BinaryReader): Tag; -} - -export namespace Tag { - export type AsObject = { - description: string, - externalDocs?: ExternalDocumentation.AsObject, - } -} - -export class SecurityDefinitions extends jspb.Message { - - getSecurityMap(): jspb.Map; - clearSecurityMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityDefinitions.AsObject; - static toObject(includeInstance: boolean, msg: SecurityDefinitions): SecurityDefinitions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityDefinitions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityDefinitions; - static deserializeBinaryFromReader(message: SecurityDefinitions, reader: jspb.BinaryReader): SecurityDefinitions; -} - -export namespace SecurityDefinitions { - export type AsObject = { - - securityMap: Array<[string, SecurityScheme.AsObject]>, - } -} - -export class SecurityScheme extends jspb.Message { - getType(): SecurityScheme.Type; - setType(value: SecurityScheme.Type): SecurityScheme; - getDescription(): string; - setDescription(value: string): SecurityScheme; - getName(): string; - setName(value: string): SecurityScheme; - getIn(): SecurityScheme.In; - setIn(value: SecurityScheme.In): SecurityScheme; - getFlow(): SecurityScheme.Flow; - setFlow(value: SecurityScheme.Flow): SecurityScheme; - getAuthorizationUrl(): string; - setAuthorizationUrl(value: string): SecurityScheme; - getTokenUrl(): string; - setTokenUrl(value: string): SecurityScheme; - - hasScopes(): boolean; - clearScopes(): void; - getScopes(): Scopes | undefined; - setScopes(value?: Scopes): SecurityScheme; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityScheme.AsObject; - static toObject(includeInstance: boolean, msg: SecurityScheme): SecurityScheme.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityScheme, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityScheme; - static deserializeBinaryFromReader(message: SecurityScheme, reader: jspb.BinaryReader): SecurityScheme; -} - -export namespace SecurityScheme { - export type AsObject = { - type: SecurityScheme.Type, - description: string, - name: string, - pb_in: SecurityScheme.In, - flow: SecurityScheme.Flow, - authorizationUrl: string, - tokenUrl: string, - scopes?: Scopes.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } - - export enum Type { - TYPE_INVALID = 0, - TYPE_BASIC = 1, - TYPE_API_KEY = 2, - TYPE_OAUTH2 = 3, - } - - export enum In { - IN_INVALID = 0, - IN_QUERY = 1, - IN_HEADER = 2, - } - - export enum Flow { - FLOW_INVALID = 0, - FLOW_IMPLICIT = 1, - FLOW_PASSWORD = 2, - FLOW_APPLICATION = 3, - FLOW_ACCESS_CODE = 4, - } - -} - -export class SecurityRequirement extends jspb.Message { - - getSecurityRequirementMap(): jspb.Map; - clearSecurityRequirementMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirement.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirement): SecurityRequirement.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirement, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirement; - static deserializeBinaryFromReader(message: SecurityRequirement, reader: jspb.BinaryReader): SecurityRequirement; -} - -export namespace SecurityRequirement { - export type AsObject = { - - securityRequirementMap: Array<[string, SecurityRequirement.SecurityRequirementValue.AsObject]>, - } - - - export class SecurityRequirementValue extends jspb.Message { - clearScopeList(): void; - getScopeList(): Array; - setScopeList(value: Array): SecurityRequirementValue; - addScope(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirementValue.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirementValue): SecurityRequirementValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirementValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirementValue; - static deserializeBinaryFromReader(message: SecurityRequirementValue, reader: jspb.BinaryReader): SecurityRequirementValue; - } - - export namespace SecurityRequirementValue { - export type AsObject = { - scopeList: Array, - } - } - -} - -export class Scopes extends jspb.Message { - - getScopeMap(): jspb.Map; - clearScopeMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Scopes.AsObject; - static toObject(includeInstance: boolean, msg: Scopes): Scopes.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Scopes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Scopes; - static deserializeBinaryFromReader(message: Scopes, reader: jspb.BinaryReader): Scopes; -} - -export namespace Scopes { - export type AsObject = { - - scopeMap: Array<[string, string]>, - } -} - -export enum Scheme { - UNKNOWN = 0, - HTTP = 1, - HTTPS = 2, - WS = 3, - WSS = 4, -} diff --git a/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js b/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js deleted file mode 100644 index be8a6bfd2..000000000 --- a/mods/numbers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js +++ /dev/null @@ -1,5367 +0,0 @@ -// source: protoc-gen-openapiv2/options/openapiv2.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Contact', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Header', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Info', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.License', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Response', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Tag', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Operation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Operation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Header, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Header'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Response, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Response'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Info, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Info'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Contact'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.License, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.License.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.License'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Schema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Tag, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Tag'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_ = [5,6,7,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject = function(includeInstance, msg) { - var f, obj = { - swagger: jspb.Message.getFieldWithDefault(msg, 1, ""), - info: (f = msg.getInfo()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(includeInstance, f), - host: jspb.Message.getFieldWithDefault(msg, 3, ""), - basePath: jspb.Message.getFieldWithDefault(msg, 4, ""), - schemesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - securityDefinitions: (f = msg.getSecurityDefinitions()) && proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(includeInstance, f), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSwagger(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader); - msg.setInfo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setBasePath(value); - break; - case 5: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 10: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 11: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader); - msg.setSecurityDefinitions(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 14: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 15: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSwagger(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInfo(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBasePath(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSecurityDefinitions(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 14, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string swagger = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSwagger = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSwagger = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Info info = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getInfo = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Info, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearInfo = function() { - return this.setInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasInfo = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string host = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string base_path = 4; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getBasePath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setBasePath = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated Scheme schemes = 5; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 10; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 10, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * optional SecurityDefinitions security_definitions = 11; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityDefinitions = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, 11)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityDefinitions = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityDefinitions = function() { - return this.setSecurityDefinitions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasSecurityDefinitions = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * optional ExternalDocumentation external_docs = 14; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 14)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 14, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 14) != null; -}; - - -/** - * map extensions = 15; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 15, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_ = [1,6,7,10,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject = function(includeInstance, msg) { - var f, obj = { - tagsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - summary: jspb.Message.getFieldWithDefault(msg, 2, ""), - description: jspb.Message.getFieldWithDefault(msg, 3, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - operationId: jspb.Message.getFieldWithDefault(msg, 5, ""), - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - schemesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f, - deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 11, false), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Operation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSummary(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setOperationId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 9: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 10: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDeprecated(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 13: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getSummary(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getOperationId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 10, - f - ); - } - f = message.getDeprecated(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * repeated string tags = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getTagsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setTagsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addTags = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearTagsList = function() { - return this.setTagsList([]); -}; - - -/** - * optional string summary = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSummary = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSummary = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string description = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string operation_id = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getOperationId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setOperationId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * repeated Scheme schemes = 10; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 10, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 10, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * optional bool deprecated = 11; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDeprecated = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDeprecated = function(value) { - return jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * map extensions = 13; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 13, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, ""), - format: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 6, ""), - pattern: jspb.Message.getFieldWithDefault(msg, 13, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Header; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string type = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string format = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string default = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string pattern = 13; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 13, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - schema: (f = msg.getSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(includeInstance, f), - headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject) : [], - examplesMap: (f = msg.getExamplesMap()) ? f.toObject(includeInstance, undefined) : [], - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Response; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader); - msg.setSchema(value); - break; - case 3: - var value = msg.getHeadersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Header()); - }); - break; - case 4: - var value = msg.getExamplesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - case 5: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchema(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter - ); - } - f = message.getHeadersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter); - } - f = message.getExamplesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Schema schema = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setSchema = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearSchema = function() { - return this.setSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.hasSchema = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * map headers = 3; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getHeadersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 3, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Header)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearHeadersMap = function() { - this.getHeadersMap().clear(); - return this;}; - - -/** - * map examples = 4; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExamplesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 4, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExamplesMap = function() { - this.getExamplesMap().clear(); - return this;}; - - -/** - * map extensions = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject = function(includeInstance, msg) { - var f, obj = { - title: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - termsOfService: jspb.Message.getFieldWithDefault(msg, 3, ""), - contact: (f = msg.getContact()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(includeInstance, f), - license: (f = msg.getLicense()) && proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(includeInstance, f), - version: jspb.Message.getFieldWithDefault(msg, 6, ""), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTermsOfService(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader); - msg.setContact(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader); - msg.setLicense(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 7: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTermsOfService(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getContact(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter - ); - } - f = message.getLicense(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string title = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string terms_of_service = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTermsOfService = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTermsOfService = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional Contact contact = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getContact = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setContact = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearContact = function() { - return this.setContact(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasContact = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional License license = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getLicense = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.License} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.License, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.License|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setLicense = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearLicense = function() { - return this.setLicense(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasLicense = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string version = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setVersion = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * map extensions = 7; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 7, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject = function(includeInstance, msg) { - var f, obj = { - jsonSchema: (f = msg.getJsonSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(includeInstance, f), - discriminator: jspb.Message.getFieldWithDefault(msg, 2, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - example: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader); - msg.setJsonSchema(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDiscriminator(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsonSchema(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter - ); - } - f = message.getDiscriminator(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional JSONSchema json_schema = 1; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getJsonSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, 1)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setJsonSchema = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearJsonSchema = function() { - return this.setJsonSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasJsonSchema = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string discriminator = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getDiscriminator = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setDiscriminator = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool read_only = 3; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string example = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_ = [26,34,35,46]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 3, ""), - title: jspb.Message.getFieldWithDefault(msg, 5, ""), - description: jspb.Message.getFieldWithDefault(msg, 6, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 7, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - example: jspb.Message.getFieldWithDefault(msg, 9, ""), - multipleOf: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0), - maximum: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0), - exclusiveMaximum: jspb.Message.getBooleanFieldWithDefault(msg, 12, false), - minimum: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), - exclusiveMinimum: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - maxLength: jspb.Message.getFieldWithDefault(msg, 15, 0), - minLength: jspb.Message.getFieldWithDefault(msg, 16, 0), - pattern: jspb.Message.getFieldWithDefault(msg, 17, ""), - maxItems: jspb.Message.getFieldWithDefault(msg, 20, 0), - minItems: jspb.Message.getFieldWithDefault(msg, 21, 0), - uniqueItems: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), - maxProperties: jspb.Message.getFieldWithDefault(msg, 24, 0), - minProperties: jspb.Message.getFieldWithDefault(msg, 25, 0), - requiredList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, - arrayList: (f = jspb.Message.getRepeatedField(msg, 34)) == null ? undefined : f, - typeList: (f = jspb.Message.getRepeatedField(msg, 35)) == null ? undefined : f, - format: jspb.Message.getFieldWithDefault(msg, 36, ""), - enumList: (f = jspb.Message.getRepeatedField(msg, 46)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - case 10: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMultipleOf(value); - break; - case 11: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMaximum(value); - break; - case 12: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMaximum(value); - break; - case 13: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMinimum(value); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMinimum(value); - break; - case 15: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxLength(value); - break; - case 16: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinLength(value); - break; - case 17: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - case 20: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxItems(value); - break; - case 21: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinItems(value); - break; - case 22: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUniqueItems(value); - break; - case 24: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxProperties(value); - break; - case 25: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinProperties(value); - break; - case 26: - var value = /** @type {string} */ (reader.readString()); - msg.addRequired(value); - break; - case 34: - var value = /** @type {string} */ (reader.readString()); - msg.addArray(value); - break; - case 35: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addType(values[i]); - } - break; - case 36: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 46: - var value = /** @type {string} */ (reader.readString()); - msg.addEnum(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getMultipleOf(); - if (f !== 0.0) { - writer.writeDouble( - 10, - f - ); - } - f = message.getMaximum(); - if (f !== 0.0) { - writer.writeDouble( - 11, - f - ); - } - f = message.getExclusiveMaximum(); - if (f) { - writer.writeBool( - 12, - f - ); - } - f = message.getMinimum(); - if (f !== 0.0) { - writer.writeDouble( - 13, - f - ); - } - f = message.getExclusiveMinimum(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getMaxLength(); - if (f !== 0) { - writer.writeUint64( - 15, - f - ); - } - f = message.getMinLength(); - if (f !== 0) { - writer.writeUint64( - 16, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 17, - f - ); - } - f = message.getMaxItems(); - if (f !== 0) { - writer.writeUint64( - 20, - f - ); - } - f = message.getMinItems(); - if (f !== 0) { - writer.writeUint64( - 21, - f - ); - } - f = message.getUniqueItems(); - if (f) { - writer.writeBool( - 22, - f - ); - } - f = message.getMaxProperties(); - if (f !== 0) { - writer.writeUint64( - 24, - f - ); - } - f = message.getMinProperties(); - if (f !== 0) { - writer.writeUint64( - 25, - f - ); - } - f = message.getRequiredList(); - if (f.length > 0) { - writer.writeRepeatedString( - 26, - f - ); - } - f = message.getArrayList(); - if (f.length > 0) { - writer.writeRepeatedString( - 34, - f - ); - } - f = message.getTypeList(); - if (f.length > 0) { - writer.writePackedEnum( - 35, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 36, - f - ); - } - f = message.getEnumList(); - if (f.length > 0) { - writer.writeRepeatedString( - 46, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes = { - UNKNOWN: 0, - ARRAY: 1, - BOOLEAN: 2, - INTEGER: 3, - NULL: 4, - NUMBER: 5, - OBJECT: 6, - STRING: 7 -}; - -/** - * optional string ref = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string title = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string description = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string default = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional bool read_only = 8; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - -/** - * optional string example = 9; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional double multiple_of = 10; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMultipleOf = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMultipleOf = function(value) { - return jspb.Message.setProto3FloatField(this, 10, value); -}; - - -/** - * optional double maximum = 11; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaximum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaximum = function(value) { - return jspb.Message.setProto3FloatField(this, 11, value); -}; - - -/** - * optional bool exclusive_maximum = 12; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMaximum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMaximum = function(value) { - return jspb.Message.setProto3BooleanField(this, 12, value); -}; - - -/** - * optional double minimum = 13; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinimum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinimum = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); -}; - - -/** - * optional bool exclusive_minimum = 14; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMinimum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMinimum = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * optional uint64 max_length = 15; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxLength = function(value) { - return jspb.Message.setProto3IntField(this, 15, value); -}; - - -/** - * optional uint64 min_length = 16; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinLength = function(value) { - return jspb.Message.setProto3IntField(this, 16, value); -}; - - -/** - * optional string pattern = 17; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 17, value); -}; - - -/** - * optional uint64 max_items = 20; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxItems = function(value) { - return jspb.Message.setProto3IntField(this, 20, value); -}; - - -/** - * optional uint64 min_items = 21; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinItems = function(value) { - return jspb.Message.setProto3IntField(this, 21, value); -}; - - -/** - * optional bool unique_items = 22; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getUniqueItems = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setUniqueItems = function(value) { - return jspb.Message.setProto3BooleanField(this, 22, value); -}; - - -/** - * optional uint64 max_properties = 24; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxProperties = function(value) { - return jspb.Message.setProto3IntField(this, 24, value); -}; - - -/** - * optional uint64 min_properties = 25; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinProperties = function(value) { - return jspb.Message.setProto3IntField(this, 25, value); -}; - - -/** - * repeated string required = 26; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRequiredList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 26)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRequiredList = function(value) { - return jspb.Message.setField(this, 26, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addRequired = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 26, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearRequiredList = function() { - return this.setRequiredList([]); -}; - - -/** - * repeated string array = 34; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getArrayList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 34)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setArrayList = function(value) { - return jspb.Message.setField(this, 34, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addArray = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 34, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearArrayList = function() { - return this.setArrayList([]); -}; - - -/** - * repeated JSONSchemaSimpleTypes type = 35; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTypeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 35)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTypeList = function(value) { - return jspb.Message.setField(this, 35, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addType = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 35, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearTypeList = function() { - return this.setTypeList([]); -}; - - -/** - * optional string format = 36; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 36, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 36, value); -}; - - -/** - * repeated string enum = 46; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getEnumList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 46)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setEnumList = function(value) { - return jspb.Message.setField(this, 46, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addEnum = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 46, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearEnumList = function() { - return this.setEnumList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Tag; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 3; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 3)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject = function(includeInstance, msg) { - var f, obj = { - securityMap: (f = msg.getSecurityMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter); - } -}; - - -/** - * map security = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.getSecurityMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.clearSecurityMap = function() { - this.getSecurityMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject = function(includeInstance, msg) { - var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_in: jspb.Message.getFieldWithDefault(msg, 4, 0), - flow: jspb.Message.getFieldWithDefault(msg, 5, 0), - authorizationUrl: jspb.Message.getFieldWithDefault(msg, 6, ""), - tokenUrl: jspb.Message.getFieldWithDefault(msg, 7, ""), - scopes: (f = msg.getScopes()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (reader.readEnum()); - msg.setIn(value); - break; - case 5: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (reader.readEnum()); - msg.setFlow(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthorizationUrl(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setTokenUrl(value); - break; - case 8: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader); - msg.setScopes(value); - break; - case 9: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIn(); - if (f !== 0.0) { - writer.writeEnum( - 4, - f - ); - } - f = message.getFlow(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } - f = message.getAuthorizationUrl(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getTokenUrl(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getScopes(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type = { - TYPE_INVALID: 0, - TYPE_BASIC: 1, - TYPE_API_KEY: 2, - TYPE_OAUTH2: 3 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In = { - IN_INVALID: 0, - IN_QUERY: 1, - IN_HEADER: 2 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow = { - FLOW_INVALID: 0, - FLOW_IMPLICIT: 1, - FLOW_PASSWORD: 2, - FLOW_APPLICATION: 3, - FLOW_ACCESS_CODE: 4 -}; - -/** - * optional Type type = 1; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getType = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional In in = 4; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getIn = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setIn = function(value) { - return jspb.Message.setProto3EnumField(this, 4, value); -}; - - -/** - * optional Flow flow = 5; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getFlow = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setFlow = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); -}; - - -/** - * optional string authorization_url = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getAuthorizationUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setAuthorizationUrl = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string token_url = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getTokenUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setTokenUrl = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional Scopes scopes = 8; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getScopes = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, 8)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setScopes = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearScopes = function() { - return this.setScopes(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.hasScopes = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * map extensions = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject = function(includeInstance, msg) { - var f, obj = { - securityRequirementMap: (f = msg.getSecurityRequirementMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityRequirementMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityRequirementMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject = function(includeInstance, msg) { - var f, obj = { - scopeList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addScope(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } -}; - - -/** - * repeated string scope = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.getScopeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.setScopeList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.addScope = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.clearScopeList = function() { - return this.setScopeList([]); -}; - - -/** - * map security_requirement = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.getSecurityRequirementMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.clearSecurityRequirementMap = function() { - this.getSecurityRequirementMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject = function(includeInstance, msg) { - var f, obj = { - scopeMap: (f = msg.getScopeMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getScopeMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map scope = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.getScopeMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.clearScopeMap = function() { - this.getScopeMap().clear(); - return this;}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme = { - UNKNOWN: 0, - HTTP: 1, - HTTPS: 2, - WS: 3, - WSS: 4 -}; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/numbers/src/service/runner.ts b/mods/numbers/src/service/runner.ts deleted file mode 100644 index 77bc51336..000000000 --- a/mods/numbers/src/service/runner.ts +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -require("@fonoster/common").Tracer.init("numbers-service"); -import NumbersServer from "./numbers"; -import { NumbersService } from "./protos/numbers_grpc_pb"; -import { AuthMiddleware, limiterMiddleware } from "@fonoster/auth"; -import { getSalt } from "@fonoster/certs"; -import { runServices } from "@fonoster/common"; - -const services = [ - { - name: "numbers", - version: "v1beta1", - service: NumbersService, - server: new NumbersServer() - } -]; - -const middlewares = [ - { - name: "authenticator", - middlewareObj: new AuthMiddleware(getSalt()).middleware - }, - { - name: "limiter", - middlewareObj: limiterMiddleware - } -]; - -runServices(services, middlewares); diff --git a/mods/numbers/src/service/update_number.ts b/mods/numbers/src/service/update_number.ts deleted file mode 100644 index 99bd0d3bf..000000000 --- a/mods/numbers/src/service/update_number.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* eslint-disable require-jsdoc */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -import { ResourceBuilder, Kind, routr, ResourceServer } from "@fonoster/core"; -import numberDecoder from "./decoder"; -import decoder from "./decoder"; -import { - assertCompatibleParameters, - assertHasAorLinkOrIngressInfo, - assertWebhookIsURL -} from "./assertions"; -import { getAppRef, getWebhook } from "./utils"; -import logger from "@fonoster/logger"; - -export default async function updateNumber(call: any, callback: any) { - const request = call.request; - try { - assertHasAorLinkOrIngressInfo(request); - assertCompatibleParameters(request); - assertWebhookIsURL(request.getIngressInfo()?.getWebhook()); - - const objectFromDB = decoder( - await ResourceServer.getResource(Kind.NUMBER, call) - ); - let encoder = new ResourceBuilder( - Kind.NUMBER, - objectFromDB.getE164Number(), - objectFromDB.getRef() - ); - - if (request.getAorLink()) { - encoder = encoder - .withLocation( - `tel:${objectFromDB.getE164Number()}`, - request.getAorLink() - ) - .withMetadata({ - gwRef: request.getProviderRef(), - createdOn: objectFromDB.getCreateTime() - }); - } else { - encoder = encoder - .withLocation( - `tel:${objectFromDB.getE164Number()}`, - process.env.MS_ENDPOINT - ) - .withMetadata({ - webhook: getWebhook(request), - appRef: getAppRef(request), - gwRef: objectFromDB.getProviderRef(), - createdOn: objectFromDB.getCreateTime() - }); - } - - await routr.connect(); - const ref = await routr.resourceType("numbers").update(encoder.build()); - - // We do this to get updated metadata from Routr - const jsonObj = await routr.resourceType("numbers").get(ref); - callback(null, numberDecoder(jsonObj)); - } catch (err) { - return callback(err); - } -} diff --git a/mods/numbers/src/service/utils.ts b/mods/numbers/src/service/utils.ts deleted file mode 100644 index b65d464f2..000000000 --- a/mods/numbers/src/service/utils.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CreateNumberRequest, UpdateNumberRequest } from "./protos/numbers_pb"; - -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export const getWebhook = ( - request: CreateNumberRequest | UpdateNumberRequest -) => - request.getIngressInfo()?.getAppRef() && - !request.getIngressInfo()?.getWebhook() - ? process.env.VOICE_URL - : request.getIngressInfo().getWebhook().trim(); - -export const getAppRef = (request: CreateNumberRequest | UpdateNumberRequest) => - request.getIngressInfo()?.getAppRef() - ? request.getIngressInfo()?.getAppRef() - : null; diff --git a/mods/numbers/test/numbers.unit.test.ts b/mods/numbers/test/numbers.unit.test.ts deleted file mode 100644 index 31eb82906..000000000 --- a/mods/numbers/test/numbers.unit.test.ts +++ /dev/null @@ -1,328 +0,0 @@ -import Numbers from "../src/client/numbers"; -import chai from "chai"; -import sinonChai from "sinon-chai"; -import sinon from "sinon"; -import chaiAsPromised from "chai-as-promised"; -import { APIClient } from "@fonoster/common"; -import { NumbersPB } from "../src/client/numbers"; -import { CreateNumberResponse } from "../src/client/types"; -import numberDecoder from "../src/service/decoder"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/number", () => { - const numberObj = new NumbersPB.Number(); - const ingressInfo = new NumbersPB.IngressInfo(); - ingressInfo.setWebhook("https://webhooks.acme.com/calls"); - ingressInfo.setAccessKeyId("603693c0afaa1a080000000c"); - numberObj.setRef("cb8V0CNTfH"); - numberObj.setE164Number("16471234567"); - numberObj.setAorLink("sip:john@sip.local"); - numberObj.setProviderRef("Nx05y-ldZa"); - numberObj.setIngressInfo(ingressInfo); - numberObj.setUpdateTime("..."); - numberObj.setCreateTime("..."); - - const numberPlain = { - ref: numberObj.getRef(), - e164Number: numberObj.getE164Number(), - aorLink: numberObj.getAorLink(), - metadata: { - webhook: numberObj.getIngressInfo()?.getWebhook(), - appRef: numberObj.getIngressInfo()?.getAppRef() - }, - providerRef: numberObj.getProviderRef() - }; - - afterEach(() => sandbox.restore()); - - it("should create a number", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const stubNumber = sandbox.stub(APIClient.prototype, "getService").returns({ - createNumber: () => { - return { - sendMessage: () => Promise.resolve(numberObj) - }; - } - }); - - const numbers = new Numbers(); - const result: CreateNumberResponse = await numbers.createNumber({ - e164Number: numberPlain.e164Number, - providerRef: numberPlain.providerRef - }); - - expect(stubNumber).to.be.calledTwice; - expect(result).to.have.property("ref").to.be.equal(numberPlain.ref); - }); - - it("should get a number by ref", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - sandbox.stub(APIClient.prototype, "getService").returns({ - getNumber: () => { - return { - sendMessage: () => Promise.resolve(numberObj) - }; - } - }); - - const numbers = new Numbers(); - const result = await numbers.getNumber(numberPlain.ref); - expect(result).to.have.property("ref").to.be.equal(numberPlain.ref); - expect(result) - .to.have.property("e164Number") - .to.be.equal(numberPlain.e164Number); - expect(result).to.have.property("aorLink").to.be.equal(numberPlain.aorLink); - expect(result) - .to.have.property("ingressInfo") - .to.have.property("webhook") - .to.be.equal(numberPlain.metadata.webhook); - expect(result) - .to.have.property("ingressInfo") - .to.have.property("appRef") - .to.be.equal(numberPlain.metadata.appRef); - expect(result) - .to.have.property("providerRef") - .to.be.equal(numberPlain.providerRef); - expect(result).to.have.property("createTime").not.to.be.null; - expect(result).to.have.property("updateTime").not.to.be.null; - }); - - it("should delete a number", async () => { - const refReturn = { - ref: numberPlain.ref - }; - sandbox.stub(APIClient.prototype, "init").returns(); - const stubNumber = sandbox.stub(APIClient.prototype, "getService").returns({ - deleteNumber: () => { - return { - sendMessage: () => Promise.resolve(refReturn) - }; - } - }); - - const numbers = new Numbers(); - const result = await numbers.deleteNumber(numberPlain.ref); - - expect(stubNumber).to.be.calledTwice; - expect(result).to.have.property("ref").to.be.equal(numberPlain.ref); - }); - - it("should get a number list", async () => { - const request = { - pageSize: 0, - pageToken: "1", - view: 0 - }; - - sandbox.stub(APIClient.prototype, "init").returns(); - const stubNumber = sandbox.stub(APIClient.prototype, "getService").returns({ - listNumbers: () => { - return { - sendMessage: () => - Promise.resolve({ - getNextPageToken: () => { - return "1"; - }, - getNumbersList: () => [numberObj] - }) - }; - } - }); - - const numbers = new Numbers(); - const result = await numbers.listNumbers(request); - expect(stubNumber).to.be.calledTwice; - expect(result) - .to.have.property("nextPageToken") - .to.be.equal(request.pageToken); - expect(result.numbers[0]) - .to.have.property("ref") - .to.be.equal(numberPlain.ref); - expect(result.numbers[0]) - .to.have.property("e164Number") - .to.be.equal(numberPlain.e164Number); - expect(result.numbers[0]) - .to.have.property("aorLink") - .to.be.equal(numberPlain.aorLink); - expect(result.numbers[0]) - .to.have.property("providerRef") - .to.be.equal(numberPlain.providerRef); - expect(result.numbers[0]).to.have.property("createTime").not.to.be.null; - expect(result.numbers[0]).to.have.property("updateTime").not.to.be.null; - }); - - it("Should return error with aorLink and ingressInfo", async () => { - const request = { - ref: numberPlain.ref, - aorLink: numberPlain.aorLink, - metadata: { - webhook: numberPlain.metadata.webhook - } - }; - - sandbox.stub(APIClient.prototype, "init").returns(); - sandbox.stub(APIClient.prototype, "getService").returns({ - getNumber: () => { - return { - sendMessage: () => Promise.resolve(numberObj) - }; - } - }); - - const numbers = new Numbers(); - expect(numbers.updateNumber(request)).to.eventually.be.rejectedWith( - "are not compatible parameters" - ); - }); - - it("Should return error with no aorLink and ingressInfo", async () => { - const request = { - ref: numberPlain.ref - }; - sandbox.stub(APIClient.prototype, "init").returns(); - sandbox.stub(APIClient.prototype, "getService").returns({ - getNumber: () => { - return { - sendMessage: () => Promise.resolve(numberObj) - }; - } - }); - - const numbers = new Numbers(); - expect(numbers.updateNumber(request)).to.eventually.be.rejectedWith( - "You must provider either" - ); - }); - - it("Should udpdate a number with aorLink", async () => { - const request = { - ref: numberPlain.ref, - aorLink: numberPlain.aorLink - }; - sandbox.stub(APIClient.prototype, "init").returns(); - const returnNumberDb = new NumbersPB.Number(); - returnNumberDb.setRef(request.ref); - sandbox.stub(APIClient.prototype, "getService").returns({ - updateNumber: () => { - return { - sendMessage: () => Promise.resolve(returnNumberDb) - }; - }, - getNumber: () => { - return { - sendMessage: () => Promise.resolve(returnNumberDb) - }; - } - }); - - const numbers = new Numbers(); - const result = await numbers.updateNumber(request); - - expect(result).to.have.property("ref").to.be.equal(numberPlain.ref); - }); - - it("Should udpdate a number with ingressInfo", async () => { - const request = { - ref: numberPlain.ref, - ingressInfo: { - webhook: numberPlain.metadata.webhook - } - }; - const returnNumberDb = new NumbersPB.Number(); - returnNumberDb.setRef(request.ref); - - sandbox.stub(APIClient.prototype, "init").returns(); - sandbox.stub(APIClient.prototype, "getService").returns({ - updateNumber: () => { - return { - sendMessage: () => Promise.resolve(returnNumberDb) - }; - }, - getNumber: () => { - return { - sendMessage: () => Promise.resolve(returnNumberDb) - }; - } - }); - - const numbers = new Numbers(); - const result = await numbers.updateNumber(request); - expect(result).to.have.property("ref").to.be.equal(numberPlain.ref); - }); - - it("Should return the ingress info for a number", async () => { - const returnIngressInfo = new NumbersPB.IngressInfo(); - returnIngressInfo.setWebhook("https://webhooks.acme.com/calls"); - returnIngressInfo.setAppRef("134"); - - sandbox.stub(APIClient.prototype, "init").returns(); - sandbox.stub(APIClient.prototype, "getService").returns({ - getIngressInfo: () => { - return { - sendMessage: () => Promise.resolve(returnIngressInfo) - }; - } - }); - - const numbers = new Numbers(); - const result = await numbers.getIngressInfo({ e164Number: "16471234567" }); - expect(result) - .to.have.property("webhook") - .to.be.equal(returnIngressInfo.getWebhook()); - expect(result) - .to.have.property("appRef") - .to.be.equal(returnIngressInfo.getAppRef()); - }); - - context("number decoder", () => { - let jsonObj; - - beforeEach(() => { - jsonObj = { - metadata: { - ref: "001", - gwRef: "1001", - createdOn: "DATE", - modifiedOn: "DATE", - webhook: "http://localhost:8080/apps/hello-world" - }, - spec: { - location: { - telUrl: "tel:17853178070" - } - } - }; - }); - - it("should create a number object from a json object", () => { - const number = numberDecoder(jsonObj); - expect(number.getRef()).to.be.equal(jsonObj.metadata.ref); - expect(number.getProviderRef()).to.be.equal(jsonObj.metadata.gwRef); - expect(number.getCreateTime()).to.be.equal(jsonObj.metadata.createdOn); - expect(number.getUpdateTime()).to.be.equal(jsonObj.metadata.modifiedOn); - expect(number.getIngressInfo().getWebhook()).to.be.equal( - jsonObj.metadata.webhook - ); - expect(number.getE164Number()).to.be.equal( - jsonObj.spec.location.telUrl.split(":")[1] - ); - }); - - it("should create a number object from without ingress app", () => { - delete jsonObj.metadata.webhook; - const number = numberDecoder(jsonObj); - expect(number.getRef()).to.be.equal(jsonObj.metadata.ref); - expect(number.getProviderRef()).to.be.equal(jsonObj.metadata.gwRef); - expect(number.getCreateTime()).to.be.equal(jsonObj.metadata.createdOn); - expect(number.getUpdateTime()).to.be.equal(jsonObj.metadata.modifiedOn); - //expect(number.getIngressInfo().getWebhook()).to.be.a("string").lengthOf(0); - expect(number.getE164Number()).to.be.equal( - jsonObj.spec.location.telUrl.split(":")[1] - ); - }); - }); -}); diff --git a/mods/numbers/test/service/numbers.unit.test.ts b/mods/numbers/test/service/numbers.unit.test.ts deleted file mode 100644 index 411218e44..000000000 --- a/mods/numbers/test/service/numbers.unit.test.ts +++ /dev/null @@ -1,106 +0,0 @@ -import chai from "chai"; -import sinonChai from "sinon-chai"; -import sinon from "sinon"; -import chaiAsPromised from "chai-as-promised"; -import {NumbersPB} from "../../src/client/numbers"; -import NumbersServer from "../../src/service/numbers" -import NumberPB, {CreateNumberRequest} from "../../src/service/protos/numbers_pb"; -import grpc from "@grpc/grpc-js"; -import RoutrClient from "@fonoster/core/dist/common/routr_client"; -import exp from "constants"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/service/number", () => { - - afterEach(() => sandbox.restore()); - - it("correct E164 Number", async () => { - const numberList = ['16471234567', '+16471234567', '+1(817) 569-8900', '(817) 569-8900'] - - sandbox.stub(RoutrClient.prototype, "connect").returns({}); - sandbox.stub(RoutrClient.prototype, "resourceType").returns({ - create: () => Promise.resolve({}), - get: () => Promise.resolve({ - metadata : { - ref: "ref1", - gwRef: "gwRef1", - createdOn: "2022-12-20 13:56", - modifiedOn: "2022-12-20 13:56" - } - }) - }); - - for (let n of numberList) { - const createNumberRequest = new CreateNumberRequest(); - createNumberRequest.setE164Number(n) - createNumberRequest.setAorLink('sip:john@sip.local') - const call = { - request: createNumberRequest, - metadata: { - internalRepr: new Map([ - ["access_key_id", "value1"] - ]) - } - } as unknown as grpc.ServerUnaryCall; - const numberServer = new NumbersServer(); - let result = {} as NumbersPB.Number; - let error = {} - await numberServer.createNumber(call, (e, r) => { - result = r; - error = e; - }); - - expect(error).to.be.null; - expect(result.getRef()).to.be.eq('ref1'); - } - }); - - it("incorrect E164 Number", async () => { - const numberList = ['1647123456712345234523453' ] - - sandbox.stub(RoutrClient.prototype, "connect").returns({}); - sandbox.stub(RoutrClient.prototype, "resourceType").returns({ - create: () => Promise.resolve({}), - get: () => Promise.resolve({ - metadata : { - ref: "ref1", - gwRef: "gwRef1", - createdOn: "2022-12-20 13:56", - modifiedOn: "2022-12-20 13:56" - } - }) - }); - - for (let n of numberList) { - const createNumberRequest = new CreateNumberRequest(); - createNumberRequest.setE164Number(n) - createNumberRequest.setAorLink('sip:john@sip.local') - const call = { - request: createNumberRequest, - metadata: { - internalRepr: new Map([ - ["access_key_id", "value1"] - ]) - } - } as unknown as grpc.ServerUnaryCall; - const numberServer = new NumbersServer(); - let result = {} as NumbersPB.Number; - let error = {} - await numberServer.createNumber(call, (e, r) => { - result = r; - error = e; - }); - expect(result).to.be.null; - expect(error) - .to.have.property("name") - .to.be.equal('FonosInvalidArgument'); - expect(error) - .to.have.property("message") - .to.be.equal('e164Number field must be a valid e164 value.'); - } - }); -}); diff --git a/mods/numbers/tsconfig.json b/mods/numbers/tsconfig.json deleted file mode 100644 index 0c169dcd0..000000000 --- a/mods/numbers/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../apps" }, - { "path": "../common" }, - { "path": "../core" }, - { "path": "../logger" }, - { "path": "../errors" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/projects/.dockerignore b/mods/projects/.dockerignore deleted file mode 100644 index b512c09d4..000000000 --- a/mods/projects/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/mods/projects/.lerna-changed-buster-192 b/mods/projects/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/projects/.npmignore b/mods/projects/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/projects/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/projects/Dockerfile b/mods/projects/Dockerfile deleted file mode 100644 index 155217c19..000000000 --- a/mods/projects/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs \ - && npm install -g fonoster-*.tgz \ - && apk del npm git - -USER fonoster - -CMD ["run_projects"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_projects" ] \ No newline at end of file diff --git a/mods/projects/package-lock.json b/mods/projects/package-lock.json deleted file mode 100644 index cd6c707a0..000000000 --- a/mods/projects/package-lock.json +++ /dev/null @@ -1,678 +0,0 @@ -{ - "name": "@fonoster/projects", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/projects", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_projects": "dist/service/healthcheck.js", - "run_projects": "dist/service/runner.js" - } - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "grpc-ts-health-check": "^2.0.6", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.3.3", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.3.3" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "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/bson-objectid": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.2.tgz", - "integrity": "sha512-61Yo6MBAftkyc+nU0smq+VX2SCeKgtC6+cRI+JkatdCy1tPdAzvR1ezEQFlio6St2tDhKZm/IUXc2bzg0QSnqQ==" - }, - "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/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/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/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/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/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/google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.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/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/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/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/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" - } - } - }, - "dependencies": { - "@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - } - }, - "@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "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" - } - }, - "bson-objectid": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.2.tgz", - "integrity": "sha512-61Yo6MBAftkyc+nU0smq+VX2SCeKgtC6+cRI+JkatdCy1tPdAzvR1ezEQFlio6St2tDhKZm/IUXc2bzg0QSnqQ==" - }, - "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" - } - }, - "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==" - }, - "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==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "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==" - }, - "google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "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" - } - }, - "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==" - } - } -} diff --git a/mods/projects/package.json b/mods/projects/package.json deleted file mode 100644 index f975eead4..000000000 --- a/mods/projects/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "@fonoster/projects", - "version": "0.3.22", - "description": "User Projects", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/client/projects", - "types": "dist/client/projects", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "postbuild": "cp -a ./src/service/protos/ ./dist/service/protos", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/srv_runner" - }, - "bin": { - "run_projects": "dist/service/runner.js", - "healthcheck_projects": "dist/service/healthcheck.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/errors": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/projects/src/client/projects.ts b/mods/projects/src/client/projects.ts deleted file mode 100644 index c85e95241..000000000 --- a/mods/projects/src/client/projects.ts +++ /dev/null @@ -1,277 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { APIClient, ClientOptions } from "@fonoster/common"; -import { ProjectsClient } from "../service/protos/projects_grpc_pb"; -import ProjectsPB from "../service/protos/projects_pb"; -import CommonPB from "../service/protos/common_pb"; -import { promisifyAll } from "grpc-promise"; -import { - CreateProjectRequest, - CreateProjectResponse, - DeleteProjectResponse, - GetProjectResponse, - UpdateProjectRequest, - UpdateProjectResponse, - RenewAccessKeySecretRequest, - RenewAccessKeySecretResponse, - IProjectsClient, - ListProjectsRequest, - ListProjectsResponse -} from "./types"; - -/** - * @classdesc Use Fonoster Projects, a capability of Fonoster, - * to create, update, get and delete Projects. Projects requires of a - * running Fonoster deployment. - * - * @extends APIClient - * @example - * - * const Fonoster = require("@fonoster/sdk") - * const Projects = new Fonoster.Projects() - * - * const request = { - * name: "project002", - * allowExperiments: false - * } - * - * projects.createProject(request) - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)) // an error occurred - */ -export default class Projects extends APIClient implements IProjectsClient { - /** - * Constructs a new Projects object. - * - * @param {ClientOptions} options - Options to indicate the objects endpoint - * @see module:core:APIClient - */ - constructor(options?: ClientOptions) { - super(ProjectsClient, options); - super.init(); - promisifyAll(super.getService(), { metadata: super.getMeta() }); - } - - /** - * Returns a list of Projects - * - * @param {ListProjectsRequest} request - Reserved for future filters - * @return {Promise} - * @example - * - * projects.listProjects({}) - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)) // an error occurred - */ - async listProjects( - // eslint-disable-next-line @typescript-eslint/no-unused-vars - request?: ListProjectsRequest - ): Promise { - const res = new ProjectsPB.ListProjectsRequest(); - const paginatedList = await super - .getService() - .listProjects() - .sendMessage(res); - - return { - projects: paginatedList.getProjectsList().map((p: ProjectsPB.Project) => { - return { - ref: p.getRef(), - name: p.getName(), - userRef: p.getUserRef(), - accessKeyId: p.getAccessKeyId(), - accessKeySecret: p.getAccessKeySecret(), - allowExperiments: p.getAllowExperiments(), - createTime: p.getCreateTime(), - updateTime: p.getUpdateTime() - }; - }) - }; - } - - /** - * Creates a new Project. - * - * @param {CreateProjectRequest} request - Request to create a new Project - * @param {string} request.name - Project's name - * @param {string} request.allowExperiments - Enables experimental APIs - * @return {Promise} - * @example - * - * const request = { - * name: "project001", - * allowExperiments: true - * } - * - * projects.createProject(request) - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)) // an error occurred - */ - async createProject( - request: CreateProjectRequest - ): Promise { - const project = new ProjectsPB.CreateProjectRequest(); - project.setName(request.name); - project.setAllowExperiments(request.allowExperiments); - - const res = await super.getService().createProject().sendMessage(project); - - return { - ref: res.getRef(), - name: res.getName(), - userRef: res.getUserRef(), - accessKeyId: res.getAccessKeyId(), - accessKeySecret: res.getAccessKeySecret(), - allowExperiments: res.getAllowExperiments(), - createTime: res.getCreateTime(), - updateTime: res.getUpdateTime() - }; - } - - /** - * Get a Project by reference. - * - * @param {string} ref - Reference to Project - * @return {Promise} The Project - * @throws if ref is null or Project does not exist - * @example - * - * const ref = "507f1f77bcf86cd799439011"; - * - * projects.getProject(ref) - * .then(result => { - * console.log(result) // returns the Project payload - * }).catch(e => console.error(e)) // an error occurred - */ - async getProject(ref: string): Promise { - const request = new ProjectsPB.GetProjectRequest(); - request.setRef(ref); - const res = await super.getService().getProject().sendMessage(request); - - return { - ref: res.getRef(), - name: res.getName(), - userRef: res.getUserRef(), - accessKeyId: res.getAccessKeyId(), - accessKeySecret: res.getAccessKeySecret(), - allowExperiments: res.getAllowExperiments(), - createTime: res.getCreateTime(), - updateTime: res.getUpdateTime() - }; - } - - /** - * Update a Project. - * - * @param {UpdateProjectRequest} request - Request update of an Project - * @param {string} request.ref - Required reference to the Project - * @param {string} request.name - Value to rename the application to - * @param {string} request.allowExperiments - Enables experimental APIs - * @return {Promise} - * @example - * - * const request = { - * name: "project001", - * ref: "507f1f77bcf86cd799439011" - * } - * - * projects.updateProject(request) - * .then(result => { - * console.log(result) // returns the UpdateProjectResponse payload - * }).catch(e => console.error(e)) // an error occurred - */ - async updateProject( - request: UpdateProjectRequest - ): Promise { - const req = new ProjectsPB.UpdateProjectRequest(); - req.setRef(request.ref); - - if (request.name) req.setName(request.name); - if (request.allowExperiments) - req.setAllowExperiments(request.allowExperiments); - - const res = await super.getService().updateProject().sendMessage(req); - - return { - ref: res.getRef() - }; - } - - /** - * Delete a Project. - * - * @param {string} ref - Project's reference - * @example - * - * const ref = "507f1f77bcf86cd799439011" - * - * projects.deleteProject(ref) - * .then(() => { - * console.log("done") // returns a reference of the Project - * }).catch(e => console.error(e)) // an error occurred - */ - async deleteProject(ref: string): Promise { - const req = new ProjectsPB.DeleteProjectRequest(); - req.setRef(ref); - await super.getService().deleteProject().sendMessage(req); - return { ref }; - } - - /** - * Generate a new accessKeySecret. Be sure to update your applications with the new value. - * - * @param {LoginRequest} request - Request update of an Project - * @param {string} request.ref - Project's reference - * @example - * - * const request = { - * ref: "507f1f77bcf86cd799439011" - * } - * - * projects.renewAccessKeySecret(request) - * .then(result => { - * console.log(result) // returns the new accessKeySecret - * }).catch(e => console.error(e)) // an error occurred - */ - async renewAccessKeySecret( - request: RenewAccessKeySecretRequest - ): Promise { - const req = new ProjectsPB.RenewAccessKeySecretRequest(); - req.setRef(request.ref); - - const res = await super - .getService() - .renewAccessKeySecret() - .sendMessage(req); - - return { - accessKeySecret: res.getAccessKeySecret() - }; - } -} - -export { ProjectsPB, CommonPB, IProjectsClient }; - -// WARNING: Workaround for support to commonjs clients -module.exports = Projects; -module.exports.ProjectsPB = ProjectsPB; -module.exports.CommonPB = CommonPB; diff --git a/mods/projects/src/client/types.ts b/mods/projects/src/client/types.ts deleted file mode 100644 index 883d49e63..000000000 --- a/mods/projects/src/client/types.ts +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface IProjectsClient { - createProject(request: CreateProjectRequest): Promise; - getProject(ref: string): Promise; - updateProject(request: UpdateProjectRequest): Promise; - listProjects(request: ListProjectsRequest): Promise; - deleteProject(ref: string): Promise; -} - -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface ListProjectsRequest {} -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface ListProjectsResponse { - projects: Project[]; -} - -export interface Project { - ref: string; - name: string; - userRef: string; - accessKeyId: string; - accessKeySecret: string; - allowExperiments: string; - createTime: string; - updateTime: string; -} - -export interface CreateProjectRequest { - name: string; - allowExperiments: boolean; -} - -export interface CreateProjectResponse { - ref: string; - name: string; - userRef: string; - accessKeyId: string; - accessKeySecret: string; - allowExperiments: string; - createTime: string; - updateTime: string; -} - -export interface UpdateProjectRequest { - ref: string; - name?: string; - allowExperiments: boolean; -} - -export interface UpdateProjectResponse { - ref: string; -} - -export interface GetProjectRequest { - ref: string; -} - -export interface GetProjectResponse { - ref: string; - name: string; - userRef: string; - accessKeyId: string; - accessKeySecret: string; - allowExperiments: string; - createTime: string; - updateTime: string; -} - -export interface DeleteProjectRequest { - ref: string; -} - -export interface DeleteProjectResponse { - ref: string; -} - -export interface RenewAccessKeySecretRequest { - ref: string; -} - -export interface RenewAccessKeySecretResponse { - accessKeySecret: string; -} diff --git a/mods/projects/src/protos/projects.proto b/mods/projects/src/protos/projects.proto deleted file mode 100644 index e3f3b718f..000000000 --- a/mods/projects/src/protos/projects.proto +++ /dev/null @@ -1,109 +0,0 @@ -/** -* MIT License -* Copyright (c) 2021 Fonoster Inc -* -* The Users proto contains the artificats for the administration -* of Users. -*/ -syntax = "proto3"; - -package fonoster.projects.v1beta1; - -option go_package = "github.com/fonoster/fonoster/mods/users/fonoster/services/protos/users"; - -import "protoc-gen-openapiv2/options/annotations.proto"; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "common.proto"; - -service Projects { - // Lists all the Projects for a given User - rpc ListProjects (ListProjectsRequest) returns (ListProjectsResponse) { - option (google.api.http) = { get: "/v1beta1/projects" }; - }; - // Creates a new Project resource - rpc CreateProject (CreateProjectRequest) returns (Project) { - option (google.api.http) = { - post: "/v1beta1/projects" - body: "*" - }; - }; - // Updates a given Project - rpc UpdateProject (UpdateProjectRequest) returns (Project) { - option (google.api.http) = { - put: "/v1beta1/projects/{ref}" - body: "*" - }; - }; - // Gets a Project by AccessKeyId - rpc GetProject (GetProjectRequest) returns (Project) { - option (google.api.http) = { get: "/v1beta1/projects/{ref}" }; - }; - // WARNING: Hard delete of a Project will remove all related resources - rpc DeleteProject (DeleteProjectRequest) returns (fonoster.common.v1beta1.Empty) { - option (google.api.http) = { delete: "/v1beta1/projects/{ref}" }; - }; - // Regenerates the accessKeySecret - rpc RenewAccessKeySecret (RenewAccessKeySecretRequest) returns (RenewAccessKeySecretResponse) { - option (google.api.http) = { get: "/v1beta1/projects/{ref}/credentials" }; - }; -} - -message ListProjectsRequest { -} - -message ListProjectsResponse { - repeated Project projects = 1; -} - -message CreateProjectRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"name\": \"Acme Corp\"}" - }; - string name = 1 [(google.api.field_behavior) = REQUIRED]; - bool allow_experiments = 2; -} - -message UpdateProjectRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"name\": \"Acme Corp 2\", \"allowExperiments\": true}" - }; - // Project's reference - string ref = 1; - string name = 2; - bool allow_experiments = 3 [(google.api.field_behavior) = REQUIRED]; -} - -message GetProjectRequest { - // Project's reference - string ref = 1; -} - -message DeleteProjectRequest { - // Project's reference - string ref = 1; -} - -message RenewAccessKeySecretRequest { - // Project's reference - string ref = 1; -} - -message RenewAccessKeySecretResponse { - string access_key_secret = 1; -} - -message Project { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"ref\": \"507f191e810c19729de860ea\", \"userRef\": \"057d191e810c19563de45767\", \"name\": \"Acme Main\", \"accessKeyId\": \"507f191e810c19729de860ea\", \"accessKeySecret\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\", \"allowExperiments\": false, \"createTime\": \"2021-10-05T13:23:07.221Z\", \"updateTime\": \"2021-10-05T13:23:07.221Z\"}" - }; - string name = 1 [(google.api.field_behavior) = REQUIRED]; - // Project's reference - string ref = 2 [(google.api.field_behavior) = REQUIRED]; - string user_ref = 3 [(google.api.field_behavior) = REQUIRED]; - string access_key_id = 4 [(google.api.field_behavior) = REQUIRED]; - string access_key_secret = 5 [(google.api.field_behavior) = REQUIRED]; - bool allow_experiments = 6; - string create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - string update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/mods/projects/src/service/assertions.ts b/mods/projects/src/service/assertions.ts deleted file mode 100644 index 79b2a2020..000000000 --- a/mods/projects/src/service/assertions.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { FonosterError, ErrorCodes } from "@fonoster/errors"; - -// TODO: Move to @fonoster/common -export const assertNotEmpty = (name: string, value: string): void => { - if (value.length == 0) - throw new FonosterError( - `the parameter '${name}' is required but was not found`, - ErrorCodes.INVALID_ARGUMENT - ); -}; diff --git a/mods/projects/src/service/decoder.ts b/mods/projects/src/service/decoder.ts deleted file mode 100644 index d0ce68e62..000000000 --- a/mods/projects/src/service/decoder.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Project } from "./protos/projects_pb"; - -export default (raw: string): Project => { - const projectJSON = JSON.parse(raw); - const project = new Project(); - project.setRef(projectJSON.ref); - project.setUserRef(projectJSON.userRef); - project.setAccessKeyId(projectJSON.accessKeyId); - project.setAccessKeySecret(projectJSON.accessKeySecret); - project.setName(projectJSON.name); - project.setAllowExperiments(projectJSON.allowExperiments); - project.setCreateTime(projectJSON.createTime); - project.setUpdateTime(projectJSON.updateTime); - return project; -}; diff --git a/mods/projects/src/service/encoder.ts b/mods/projects/src/service/encoder.ts deleted file mode 100644 index fe4913f7e..000000000 --- a/mods/projects/src/service/encoder.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Project } from "./protos/projects_pb"; - -export default (project: Project): string => { - const projectJSON = { - ref: project.getRef(), - userRef: project.getUserRef(), - accessKeyId: project.getAccessKeyId(), - accessKeySecret: project.getAccessKeySecret(), - name: project.getName(), - allowExperiments: project.getAllowExperiments(), - createTime: project.getCreateTime(), - updateTime: project.getUpdateTime() - }; - return JSON.stringify(projectJSON); -}; diff --git a/mods/projects/src/service/healthcheck.ts b/mods/projects/src/service/healthcheck.ts deleted file mode 100644 index 05ab1a96f..000000000 --- a/mods/projects/src/service/healthcheck.ts +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -healthcheck(); diff --git a/mods/projects/src/service/projects.ts b/mods/projects/src/service/projects.ts deleted file mode 100644 index df3b7a704..000000000 --- a/mods/projects/src/service/projects.ts +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* eslint-disable require-jsdoc */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -import grpc from "@grpc/grpc-js"; -import ProjectsPB, { - ListProjectsRequest, - ListProjectsResponse, - CreateProjectRequest, - UpdateProjectRequest, - GetProjectRequest, - DeleteProjectRequest, - RenewAccessKeySecretRequest, - RenewAccessKeySecretResponse, - Project -} from "./protos/projects_pb"; -import { Empty } from "./protos/common_pb"; -import { - IProjectsService, - ProjectsService, - IProjectsServer -} from "./protos/projects_grpc_pb"; -import { getRedisConnection, getAccessKeyId } from "@fonoster/core"; -import objectid from "bson-objectid"; -import encoder from "./encoder"; -import { assertNotEmpty } from "./assertions"; -import JWT from "@fonoster/auth/dist/utils/jwt"; -import { AUTH_ISS, getSalt } from "@fonoster/certs"; -import Auth from "@fonoster/auth/dist/utils/auth_utils"; -import decoder from "./decoder"; -import { ErrorCodes, FonosterError } from "@fonoster/errors"; - -const authenticator = new Auth(new JWT()); -const redis = getRedisConnection(); - -class ProjectsServer implements IProjectsServer { - [name: string]: grpc.UntypedHandleCall; - async createProject( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ): Promise { - try { - assertNotEmpty("name", call.request.getName()); - - // Prefixing Project's accessKeyID to avoid confusion with user accounts - const ref = "PJ" + objectid(); - const userRef = getAccessKeyId(call); - const project = new ProjectsPB.Project(); - - const result = await authenticator.createToken( - ref, - AUTH_ISS, - "PROJECT", - getSalt(), - "1y" - ); - - project.setRef(ref); - project.setAccessKeyId(ref); - project.setUserRef(userRef); - project.setAccessKeySecret(result.accessToken); - project.setName(call.request.getName()); - project.setAllowExperiments(call.request.getAllowExperiments()); - project.setUpdateTime(new Date().toISOString()); - project.setCreateTime(new Date().toISOString()); - - redis.set(ref, encoder(project)); - redis.sadd("u_" + userRef, ref); - callback(null, project); - } catch (e) { - callback(e, null); - } - } - - async updateProject( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const ref = call.request.getRef(); - const raw = await redis.get(ref); - if (!raw) throw new FonosterError("not found", ErrorCodes.NOT_FOUND); - - const project = decoder(raw.toString()); - - if (getAccessKeyId(call) !== project.getUserRef()) { - throw new FonosterError( - "permission denied", - ErrorCodes.PERMISSION_DENIED - ); - } - - if (call.request.getName()) project.setName(call.request.getName()); - - // TODO: Make this parameter optional. - project.setAllowExperiments(call.request.getAllowExperiments()); - project.setUpdateTime(new Date().toISOString()); - redis.set(ref, encoder(project)); - callback(null, project); - } catch (e) { - callback(e, null); - } - } - - async getProject( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const ref = call.request.getRef(); - const raw = await redis.get(ref); - if (!raw) throw new FonosterError("not found", ErrorCodes.NOT_FOUND); - - const project = decoder(raw.toString()); - - if (getAccessKeyId(call) !== project.getUserRef()) { - throw new FonosterError( - "permission denied", - ErrorCodes.PERMISSION_DENIED - ); - } - - callback(null, project); - } catch (e) { - callback(e, null); - } - } - - async deleteProject( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const ref = call.request.getRef(); - const raw = await redis.get(ref); - if (!raw) throw new FonosterError("not found", ErrorCodes.NOT_FOUND); - - const project = decoder(raw.toString()); - - if (getAccessKeyId(call) !== project.getUserRef()) { - throw new FonosterError( - "permission denied", - ErrorCodes.PERMISSION_DENIED - ); - } - - redis.del(project.getRef()); - redis.srem("u_" + project.getUserRef(), project.getRef()); - - callback(null, new Empty()); - } catch (e) { - callback(e, null); - } - } - - async listProjects( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const list = await redis.smembers("u_" + getAccessKeyId(call)); - const projects: Project[] = await Promise.all( - list.map(async (ref) => { - const raw = (await redis.get(ref)).toString(); - return decoder(raw); - }) - ); - - const response = new ListProjectsResponse(); - response.setProjectsList(projects); - - callback(null, response); - } catch (e) { - callback(e, null); - } - } - - async renewAccessKeySecret( - call: grpc.ServerUnaryCall< - RenewAccessKeySecretRequest, - RenewAccessKeySecretResponse - >, - callback: grpc.sendUnaryData - ) { - try { - const ref = call.request.getRef(); - const raw = await redis.get(ref); - if (!raw) throw new FonosterError("not found", ErrorCodes.NOT_FOUND); - - const project = decoder(raw.toString()); - - if (getAccessKeyId(call) !== project.getUserRef()) { - throw new FonosterError( - "permission denied", - ErrorCodes.PERMISSION_DENIED - ); - } - - const result = await authenticator.createToken( - project.getAccessKeyId(), - AUTH_ISS, - "PROJECT", - getSalt(), - "1y" - ); - - project.setAccessKeySecret(result.accessToken); - project.setUpdateTime(new Date().toISOString()); - redis.set(project.getRef(), encoder(project)); - - const response = new RenewAccessKeySecretResponse(); - response.setAccessKeySecret(result.accessToken); - callback(null, response); - } catch (e) { - callback(e, null); - } - } -} - -export { ProjectsServer as default, IProjectsService, ProjectsService }; diff --git a/mods/projects/src/service/protos/common_grpc_pb.js b/mods/projects/src/service/protos/common_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/projects/src/service/protos/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/projects/src/service/protos/common_pb.d.ts b/mods/projects/src/service/protos/common_pb.d.ts deleted file mode 100644 index f8b5fb810..000000000 --- a/mods/projects/src/service/protos/common_pb.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// package: fonoster.common.v1beta1 -// file: common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class Empty extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Empty.AsObject; - static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Empty; - static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; -} - -export namespace Empty { - export type AsObject = { - } -} - -export class ErrorResponse extends jspb.Message { - getStatus(): number; - setStatus(value: number): ErrorResponse; - getMessage(): string; - setMessage(value: string): ErrorResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ErrorResponse.AsObject; - static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ErrorResponse; - static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse; -} - -export namespace ErrorResponse { - export type AsObject = { - status: number, - message: string, - } -} - -export enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2, -} diff --git a/mods/projects/src/service/protos/common_pb.js b/mods/projects/src/service/protos/common_pb.js deleted file mode 100644 index b7f99c7ea..000000000 --- a/mods/projects/src/service/protos/common_pb.js +++ /dev/null @@ -1,335 +0,0 @@ -// source: common.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -goog.exportSymbol('proto.fonoster.common.v1beta1.Empty', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.ErrorResponse', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.View', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.Empty = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.Empty, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.Empty.displayName = 'proto.fonoster.common.v1beta1.Empty'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.ErrorResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.ErrorResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.ErrorResponse.displayName = 'proto.fonoster.common.v1beta1.ErrorResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.Empty.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.Empty.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.Empty} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.Empty; - return proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.Empty} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.Empty.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.Empty} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.ErrorResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.toObject = function(includeInstance, msg) { - var f, obj = { - status: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.ErrorResponse; - return proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setStatus(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getStatus(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional int32 status = 1; - * @return {number} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getStatus = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setStatus = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * @enum {number} - */ -proto.fonoster.common.v1beta1.View = { - BASIC: 0, - STANDARD: 1, - FULL: 2 -}; - -goog.object.extend(exports, proto.fonoster.common.v1beta1); diff --git a/mods/projects/src/service/protos/google/api/annotations_grpc_pb.js b/mods/projects/src/service/protos/google/api/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/projects/src/service/protos/google/api/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/projects/src/service/protos/google/api/annotations_pb.d.ts b/mods/projects/src/service/protos/google/api/annotations_pb.d.ts deleted file mode 100644 index 06072f3bd..000000000 --- a/mods/projects/src/service/protos/google/api/annotations_pb.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// package: google.api -// file: google/api/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_api_http_pb from "../../google/api/http_pb"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const http: jspb.ExtensionFieldInfo; diff --git a/mods/projects/src/service/protos/google/api/annotations_pb.js b/mods/projects/src/service/protos/google/api/annotations_pb.js deleted file mode 100644 index 99e4c1824..000000000 --- a/mods/projects/src/service/protos/google/api/annotations_pb.js +++ /dev/null @@ -1,48 +0,0 @@ -// source: google/api/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_http_pb = require('../../google/api/http_pb.js'); -goog.object.extend(proto, google_api_http_pb); -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.http', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `http`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.google.api.http = new jspb.ExtensionFieldInfo( - 72295728, - {http: 0}, - google_api_http_pb.HttpRule, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - google_api_http_pb.HttpRule.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[72295728] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.http, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - google_api_http_pb.HttpRule.serializeBinaryToWriter, - google_api_http_pb.HttpRule.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[72295728] = proto.google.api.http; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/projects/src/service/protos/google/api/field_behavior_grpc_pb.js b/mods/projects/src/service/protos/google/api/field_behavior_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/projects/src/service/protos/google/api/field_behavior_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/projects/src/service/protos/google/api/field_behavior_pb.d.ts b/mods/projects/src/service/protos/google/api/field_behavior_pb.d.ts deleted file mode 100644 index 9b853705f..000000000 --- a/mods/projects/src/service/protos/google/api/field_behavior_pb.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -// package: google.api -// file: google/api/field_behavior.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const fieldBehavior: jspb.ExtensionFieldInfo; - -export enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, -} diff --git a/mods/projects/src/service/protos/google/api/field_behavior_pb.js b/mods/projects/src/service/protos/google/api/field_behavior_pb.js deleted file mode 100644 index 44160cc41..000000000 --- a/mods/projects/src/service/protos/google/api/field_behavior_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// source: google/api/field_behavior.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.FieldBehavior', null, global); -goog.exportSymbol('proto.google.api.fieldBehaviorList', null, global); -/** - * @enum {number} - */ -proto.google.api.FieldBehavior = { - FIELD_BEHAVIOR_UNSPECIFIED: 0, - OPTIONAL: 1, - REQUIRED: 2, - OUTPUT_ONLY: 3, - INPUT_ONLY: 4, - IMMUTABLE: 5, - UNORDERED_LIST: 6, - NON_EMPTY_DEFAULT: 7 -}; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `fieldBehaviorList`. - * @type {!jspb.ExtensionFieldInfo>} - */ -proto.google.api.fieldBehaviorList = new jspb.ExtensionFieldInfo( - 1052, - {fieldBehaviorList: 0}, - null, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - null), - 1); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1052] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.fieldBehaviorList, - jspb.BinaryReader.prototype.readPackedEnum, - jspb.BinaryWriter.prototype.writePackedEnum, - undefined, - undefined, - true); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1052] = proto.google.api.fieldBehaviorList; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/projects/src/service/protos/google/api/http_grpc_pb.js b/mods/projects/src/service/protos/google/api/http_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/projects/src/service/protos/google/api/http_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/projects/src/service/protos/google/api/http_pb.d.ts b/mods/projects/src/service/protos/google/api/http_pb.d.ts deleted file mode 100644 index 02c3b1ece..000000000 --- a/mods/projects/src/service/protos/google/api/http_pb.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -// package: google.api -// file: google/api/http.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Http extends jspb.Message { - clearRulesList(): void; - getRulesList(): Array; - setRulesList(value: Array): Http; - addRules(value?: HttpRule, index?: number): HttpRule; - getFullyDecodeReservedExpansion(): boolean; - setFullyDecodeReservedExpansion(value: boolean): Http; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Http.AsObject; - static toObject(includeInstance: boolean, msg: Http): Http.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Http; - static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http; -} - -export namespace Http { - export type AsObject = { - rulesList: Array, - fullyDecodeReservedExpansion: boolean, - } -} - -export class HttpRule extends jspb.Message { - getSelector(): string; - setSelector(value: string): HttpRule; - - hasGet(): boolean; - clearGet(): void; - getGet(): string; - setGet(value: string): HttpRule; - - hasPut(): boolean; - clearPut(): void; - getPut(): string; - setPut(value: string): HttpRule; - - hasPost(): boolean; - clearPost(): void; - getPost(): string; - setPost(value: string): HttpRule; - - hasDelete(): boolean; - clearDelete(): void; - getDelete(): string; - setDelete(value: string): HttpRule; - - hasPatch(): boolean; - clearPatch(): void; - getPatch(): string; - setPatch(value: string): HttpRule; - - hasCustom(): boolean; - clearCustom(): void; - getCustom(): CustomHttpPattern | undefined; - setCustom(value?: CustomHttpPattern): HttpRule; - getBody(): string; - setBody(value: string): HttpRule; - getResponseBody(): string; - setResponseBody(value: string): HttpRule; - clearAdditionalBindingsList(): void; - getAdditionalBindingsList(): Array; - setAdditionalBindingsList(value: Array): HttpRule; - addAdditionalBindings(value?: HttpRule, index?: number): HttpRule; - - getPatternCase(): HttpRule.PatternCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpRule.AsObject; - static toObject(includeInstance: boolean, msg: HttpRule): HttpRule.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpRule, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpRule; - static deserializeBinaryFromReader(message: HttpRule, reader: jspb.BinaryReader): HttpRule; -} - -export namespace HttpRule { - export type AsObject = { - selector: string, - get: string, - put: string, - post: string, - pb_delete: string, - patch: string, - custom?: CustomHttpPattern.AsObject, - body: string, - responseBody: string, - additionalBindingsList: Array, - } - - export enum PatternCase { - PATTERN_NOT_SET = 0, - GET = 2, - PUT = 3, - POST = 4, - DELETE = 5, - PATCH = 6, - CUSTOM = 8, - } - -} - -export class CustomHttpPattern extends jspb.Message { - getKind(): string; - setKind(value: string): CustomHttpPattern; - getPath(): string; - setPath(value: string): CustomHttpPattern; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CustomHttpPattern.AsObject; - static toObject(includeInstance: boolean, msg: CustomHttpPattern): CustomHttpPattern.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CustomHttpPattern, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CustomHttpPattern; - static deserializeBinaryFromReader(message: CustomHttpPattern, reader: jspb.BinaryReader): CustomHttpPattern; -} - -export namespace CustomHttpPattern { - export type AsObject = { - kind: string, - path: string, - } -} diff --git a/mods/projects/src/service/protos/google/api/http_pb.js b/mods/projects/src/service/protos/google/api/http_pb.js deleted file mode 100644 index 0359c5eec..000000000 --- a/mods/projects/src/service/protos/google/api/http_pb.js +++ /dev/null @@ -1,1006 +0,0 @@ -// source: google/api/http.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.google.api.CustomHttpPattern', null, global); -goog.exportSymbol('proto.google.api.Http', null, global); -goog.exportSymbol('proto.google.api.HttpRule', null, global); -goog.exportSymbol('proto.google.api.HttpRule.PatternCase', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.Http = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Http.repeatedFields_, null); -}; -goog.inherits(proto.google.api.Http, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.Http.displayName = 'proto.google.api.Http'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpRule = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpRule.repeatedFields_, proto.google.api.HttpRule.oneofGroups_); -}; -goog.inherits(proto.google.api.HttpRule, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpRule.displayName = 'proto.google.api.HttpRule'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.CustomHttpPattern = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.google.api.CustomHttpPattern, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.CustomHttpPattern.displayName = 'proto.google.api.CustomHttpPattern'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.Http.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.Http.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.Http.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.Http} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.toObject = function(includeInstance, msg) { - var f, obj = { - rulesList: jspb.Message.toObjectList(msg.getRulesList(), - proto.google.api.HttpRule.toObject, includeInstance), - fullyDecodeReservedExpansion: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.Http; - return proto.google.api.Http.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.Http} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addRules(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFullyDecodeReservedExpansion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.Http.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.Http.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.Http} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRulesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } - f = message.getFullyDecodeReservedExpansion(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * repeated HttpRule rules = 1; - * @return {!Array} - */ -proto.google.api.Http.prototype.getRulesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.Http} returns this -*/ -proto.google.api.Http.prototype.setRulesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.Http.prototype.addRules = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.clearRulesList = function() { - return this.setRulesList([]); -}; - - -/** - * optional bool fully_decode_reserved_expansion = 2; - * @return {boolean} - */ -proto.google.api.Http.prototype.getFullyDecodeReservedExpansion = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.setFullyDecodeReservedExpansion = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpRule.repeatedFields_ = [11]; - -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.google.api.HttpRule.oneofGroups_ = [[2,3,4,5,6,8]]; - -/** - * @enum {number} - */ -proto.google.api.HttpRule.PatternCase = { - PATTERN_NOT_SET: 0, - GET: 2, - PUT: 3, - POST: 4, - DELETE: 5, - PATCH: 6, - CUSTOM: 8 -}; - -/** - * @return {proto.google.api.HttpRule.PatternCase} - */ -proto.google.api.HttpRule.prototype.getPatternCase = function() { - return /** @type {proto.google.api.HttpRule.PatternCase} */(jspb.Message.computeOneofCase(this, proto.google.api.HttpRule.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpRule.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpRule.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpRule} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.toObject = function(includeInstance, msg) { - var f, obj = { - selector: jspb.Message.getFieldWithDefault(msg, 1, ""), - get: jspb.Message.getFieldWithDefault(msg, 2, ""), - put: jspb.Message.getFieldWithDefault(msg, 3, ""), - post: jspb.Message.getFieldWithDefault(msg, 4, ""), - pb_delete: jspb.Message.getFieldWithDefault(msg, 5, ""), - patch: jspb.Message.getFieldWithDefault(msg, 6, ""), - custom: (f = msg.getCustom()) && proto.google.api.CustomHttpPattern.toObject(includeInstance, f), - body: jspb.Message.getFieldWithDefault(msg, 7, ""), - responseBody: jspb.Message.getFieldWithDefault(msg, 12, ""), - additionalBindingsList: jspb.Message.toObjectList(msg.getAdditionalBindingsList(), - proto.google.api.HttpRule.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpRule; - return proto.google.api.HttpRule.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpRule} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSelector(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setGet(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPut(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPost(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDelete(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPatch(value); - break; - case 8: - var value = new proto.google.api.CustomHttpPattern; - reader.readMessage(value,proto.google.api.CustomHttpPattern.deserializeBinaryFromReader); - msg.setCustom(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBody(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setResponseBody(value); - break; - case 11: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addAdditionalBindings(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpRule.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpRule.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpRule} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSelector(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeString( - 3, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeString( - 4, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 5)); - if (f != null) { - writer.writeString( - 5, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 6)); - if (f != null) { - writer.writeString( - 6, - f - ); - } - f = message.getCustom(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.google.api.CustomHttpPattern.serializeBinaryToWriter - ); - } - f = message.getBody(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getResponseBody(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getAdditionalBindingsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 11, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string selector = 1; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getSelector = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setSelector = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string get = 2; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getGet = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setGet = function(value) { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearGet = function() { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasGet = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string put = 3; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPut = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPut = function(value) { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPut = function() { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPut = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional string post = 4; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPost = function(value) { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPost = function() { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPost = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string delete = 5; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getDelete = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setDelete = function(value) { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearDelete = function() { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasDelete = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string patch = 6; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPatch = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPatch = function(value) { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPatch = function() { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPatch = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional CustomHttpPattern custom = 8; - * @return {?proto.google.api.CustomHttpPattern} - */ -proto.google.api.HttpRule.prototype.getCustom = function() { - return /** @type{?proto.google.api.CustomHttpPattern} */ ( - jspb.Message.getWrapperField(this, proto.google.api.CustomHttpPattern, 8)); -}; - - -/** - * @param {?proto.google.api.CustomHttpPattern|undefined} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setCustom = function(value) { - return jspb.Message.setOneofWrapperField(this, 8, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearCustom = function() { - return this.setCustom(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasCustom = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional string body = 7; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setBody = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string response_body = 12; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getResponseBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setResponseBody = function(value) { - return jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * repeated HttpRule additional_bindings = 11; - * @return {!Array} - */ -proto.google.api.HttpRule.prototype.getAdditionalBindingsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 11)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setAdditionalBindingsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 11, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.prototype.addAdditionalBindings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearAdditionalBindingsList = function() { - return this.setAdditionalBindingsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.CustomHttpPattern.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.CustomHttpPattern.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.CustomHttpPattern} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.toObject = function(includeInstance, msg) { - var f, obj = { - kind: jspb.Message.getFieldWithDefault(msg, 1, ""), - path: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.CustomHttpPattern; - return proto.google.api.CustomHttpPattern.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.CustomHttpPattern} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKind(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.CustomHttpPattern.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.CustomHttpPattern.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.CustomHttpPattern} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKind(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string kind = 1; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getKind = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setKind = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string path = 2; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/projects/src/service/protos/google/api/httpbody_grpc_pb.js b/mods/projects/src/service/protos/google/api/httpbody_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/projects/src/service/protos/google/api/httpbody_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/projects/src/service/protos/google/api/httpbody_pb.d.ts b/mods/projects/src/service/protos/google/api/httpbody_pb.d.ts deleted file mode 100644 index 98d973068..000000000 --- a/mods/projects/src/service/protos/google/api/httpbody_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// package: google.api -// file: google/api/httpbody.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb"; - -export class HttpBody extends jspb.Message { - getContentType(): string; - setContentType(value: string): HttpBody; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): HttpBody; - clearExtensionsList(): void; - getExtensionsList(): Array; - setExtensionsList(value: Array): HttpBody; - addExtensions(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpBody.AsObject; - static toObject(includeInstance: boolean, msg: HttpBody): HttpBody.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpBody, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpBody; - static deserializeBinaryFromReader(message: HttpBody, reader: jspb.BinaryReader): HttpBody; -} - -export namespace HttpBody { - export type AsObject = { - contentType: string, - data: Uint8Array | string, - extensionsList: Array, - } -} diff --git a/mods/projects/src/service/protos/google/api/httpbody_pb.js b/mods/projects/src/service/protos/google/api/httpbody_pb.js deleted file mode 100644 index 5539f5936..000000000 --- a/mods/projects/src/service/protos/google/api/httpbody_pb.js +++ /dev/null @@ -1,286 +0,0 @@ -// source: google/api/httpbody.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js'); -goog.object.extend(proto, google_protobuf_any_pb); -goog.exportSymbol('proto.google.api.HttpBody', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpBody = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpBody.repeatedFields_, null); -}; -goog.inherits(proto.google.api.HttpBody, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpBody.displayName = 'proto.google.api.HttpBody'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpBody.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpBody.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpBody.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpBody} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.toObject = function(includeInstance, msg) { - var f, obj = { - contentType: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64(), - extensionsList: jspb.Message.toObjectList(msg.getExtensionsList(), - google_protobuf_any_pb.Any.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpBody; - return proto.google.api.HttpBody.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpBody} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setContentType(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 3: - var value = new google_protobuf_any_pb.Any; - reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader); - msg.addExtensions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpBody.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpBody} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContentType(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getExtensionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - google_protobuf_any_pb.Any.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string content_type = 1; - * @return {string} - */ -proto.google.api.HttpBody.prototype.getContentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setContentType = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.google.api.HttpBody.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.google.api.HttpBody.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setData = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * repeated google.protobuf.Any extensions = 3; - * @return {!Array} - */ -proto.google.api.HttpBody.prototype.getExtensionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpBody} returns this -*/ -proto.google.api.HttpBody.prototype.setExtensionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.google.protobuf.Any=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.Any} - */ -proto.google.api.HttpBody.prototype.addExtensions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.clearExtensionsList = function() { - return this.setExtensionsList([]); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/projects/src/service/protos/projects_grpc_pb.d.ts b/mods/projects/src/service/protos/projects_grpc_pb.d.ts deleted file mode 100644 index 153dd6a64..000000000 --- a/mods/projects/src/service/protos/projects_grpc_pb.d.ts +++ /dev/null @@ -1,130 +0,0 @@ -// package: fonoster.projects.v1beta1 -// file: projects.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import {handleClientStreamingCall} from "@grpc/grpc-js/build/src/server-call"; -import * as projects_pb from "./projects_pb"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as common_pb from "./common_pb"; - -interface IProjectsService extends grpc.ServiceDefinition { - listProjects: IProjectsService_IListProjects; - createProject: IProjectsService_ICreateProject; - updateProject: IProjectsService_IUpdateProject; - getProject: IProjectsService_IGetProject; - deleteProject: IProjectsService_IDeleteProject; - renewAccessKeySecret: IProjectsService_IRenewAccessKeySecret; -} - -interface IProjectsService_IListProjects extends grpc.MethodDefinition { - path: "/fonoster.projects.v1beta1.Projects/ListProjects"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IProjectsService_ICreateProject extends grpc.MethodDefinition { - path: "/fonoster.projects.v1beta1.Projects/CreateProject"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IProjectsService_IUpdateProject extends grpc.MethodDefinition { - path: "/fonoster.projects.v1beta1.Projects/UpdateProject"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IProjectsService_IGetProject extends grpc.MethodDefinition { - path: "/fonoster.projects.v1beta1.Projects/GetProject"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IProjectsService_IDeleteProject extends grpc.MethodDefinition { - path: "/fonoster.projects.v1beta1.Projects/DeleteProject"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IProjectsService_IRenewAccessKeySecret extends grpc.MethodDefinition { - path: "/fonoster.projects.v1beta1.Projects/RenewAccessKeySecret"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const ProjectsService: IProjectsService; - -export interface IProjectsServer extends grpc.UntypedServiceImplementation { - listProjects: grpc.handleUnaryCall; - createProject: grpc.handleUnaryCall; - updateProject: grpc.handleUnaryCall; - getProject: grpc.handleUnaryCall; - deleteProject: grpc.handleUnaryCall; - renewAccessKeySecret: grpc.handleUnaryCall; -} - -export interface IProjectsClient { - listProjects(request: projects_pb.ListProjectsRequest, callback: (error: grpc.ServiceError | null, response: projects_pb.ListProjectsResponse) => void): grpc.ClientUnaryCall; - listProjects(request: projects_pb.ListProjectsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: projects_pb.ListProjectsResponse) => void): grpc.ClientUnaryCall; - listProjects(request: projects_pb.ListProjectsRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: projects_pb.ListProjectsResponse) => void): grpc.ClientUnaryCall; - createProject(request: projects_pb.CreateProjectRequest, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - createProject(request: projects_pb.CreateProjectRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - createProject(request: projects_pb.CreateProjectRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - updateProject(request: projects_pb.UpdateProjectRequest, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - updateProject(request: projects_pb.UpdateProjectRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - updateProject(request: projects_pb.UpdateProjectRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - getProject(request: projects_pb.GetProjectRequest, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - getProject(request: projects_pb.GetProjectRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - getProject(request: projects_pb.GetProjectRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - deleteProject(request: projects_pb.DeleteProjectRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteProject(request: projects_pb.DeleteProjectRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteProject(request: projects_pb.DeleteProjectRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - renewAccessKeySecret(request: projects_pb.RenewAccessKeySecretRequest, callback: (error: grpc.ServiceError | null, response: projects_pb.RenewAccessKeySecretResponse) => void): grpc.ClientUnaryCall; - renewAccessKeySecret(request: projects_pb.RenewAccessKeySecretRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: projects_pb.RenewAccessKeySecretResponse) => void): grpc.ClientUnaryCall; - renewAccessKeySecret(request: projects_pb.RenewAccessKeySecretRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: projects_pb.RenewAccessKeySecretResponse) => void): grpc.ClientUnaryCall; -} - -export class ProjectsClient extends grpc.Client implements IProjectsClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public listProjects(request: projects_pb.ListProjectsRequest, callback: (error: grpc.ServiceError | null, response: projects_pb.ListProjectsResponse) => void): grpc.ClientUnaryCall; - public listProjects(request: projects_pb.ListProjectsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: projects_pb.ListProjectsResponse) => void): grpc.ClientUnaryCall; - public listProjects(request: projects_pb.ListProjectsRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: projects_pb.ListProjectsResponse) => void): grpc.ClientUnaryCall; - public createProject(request: projects_pb.CreateProjectRequest, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - public createProject(request: projects_pb.CreateProjectRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - public createProject(request: projects_pb.CreateProjectRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - public updateProject(request: projects_pb.UpdateProjectRequest, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - public updateProject(request: projects_pb.UpdateProjectRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - public updateProject(request: projects_pb.UpdateProjectRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - public getProject(request: projects_pb.GetProjectRequest, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - public getProject(request: projects_pb.GetProjectRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - public getProject(request: projects_pb.GetProjectRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: projects_pb.Project) => void): grpc.ClientUnaryCall; - public deleteProject(request: projects_pb.DeleteProjectRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteProject(request: projects_pb.DeleteProjectRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteProject(request: projects_pb.DeleteProjectRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public renewAccessKeySecret(request: projects_pb.RenewAccessKeySecretRequest, callback: (error: grpc.ServiceError | null, response: projects_pb.RenewAccessKeySecretResponse) => void): grpc.ClientUnaryCall; - public renewAccessKeySecret(request: projects_pb.RenewAccessKeySecretRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: projects_pb.RenewAccessKeySecretResponse) => void): grpc.ClientUnaryCall; - public renewAccessKeySecret(request: projects_pb.RenewAccessKeySecretRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: projects_pb.RenewAccessKeySecretResponse) => void): grpc.ClientUnaryCall; -} diff --git a/mods/projects/src/service/protos/projects_grpc_pb.js b/mods/projects/src/service/protos/projects_grpc_pb.js deleted file mode 100644 index b336e7aee..000000000 --- a/mods/projects/src/service/protos/projects_grpc_pb.js +++ /dev/null @@ -1,204 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// * -// MIT License -// Copyright (c) 2021 Fonoster Inc -// -// The Users proto contains the artificats for the administration -// of Users. -'use strict'; -var grpc = require('@grpc/grpc-js'); -var projects_pb = require('./projects_pb.js'); -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -var common_pb = require('./common_pb.js'); - -function serialize_fonoster_common_v1beta1_Empty(arg) { - if (!(arg instanceof common_pb.Empty)) { - throw new Error('Expected argument of type fonoster.common.v1beta1.Empty'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_common_v1beta1_Empty(buffer_arg) { - return common_pb.Empty.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_projects_v1beta1_CreateProjectRequest(arg) { - if (!(arg instanceof projects_pb.CreateProjectRequest)) { - throw new Error('Expected argument of type fonoster.projects.v1beta1.CreateProjectRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_projects_v1beta1_CreateProjectRequest(buffer_arg) { - return projects_pb.CreateProjectRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_projects_v1beta1_DeleteProjectRequest(arg) { - if (!(arg instanceof projects_pb.DeleteProjectRequest)) { - throw new Error('Expected argument of type fonoster.projects.v1beta1.DeleteProjectRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_projects_v1beta1_DeleteProjectRequest(buffer_arg) { - return projects_pb.DeleteProjectRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_projects_v1beta1_GetProjectRequest(arg) { - if (!(arg instanceof projects_pb.GetProjectRequest)) { - throw new Error('Expected argument of type fonoster.projects.v1beta1.GetProjectRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_projects_v1beta1_GetProjectRequest(buffer_arg) { - return projects_pb.GetProjectRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_projects_v1beta1_ListProjectsRequest(arg) { - if (!(arg instanceof projects_pb.ListProjectsRequest)) { - throw new Error('Expected argument of type fonoster.projects.v1beta1.ListProjectsRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_projects_v1beta1_ListProjectsRequest(buffer_arg) { - return projects_pb.ListProjectsRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_projects_v1beta1_ListProjectsResponse(arg) { - if (!(arg instanceof projects_pb.ListProjectsResponse)) { - throw new Error('Expected argument of type fonoster.projects.v1beta1.ListProjectsResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_projects_v1beta1_ListProjectsResponse(buffer_arg) { - return projects_pb.ListProjectsResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_projects_v1beta1_Project(arg) { - if (!(arg instanceof projects_pb.Project)) { - throw new Error('Expected argument of type fonoster.projects.v1beta1.Project'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_projects_v1beta1_Project(buffer_arg) { - return projects_pb.Project.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_projects_v1beta1_RenewAccessKeySecretRequest(arg) { - if (!(arg instanceof projects_pb.RenewAccessKeySecretRequest)) { - throw new Error('Expected argument of type fonoster.projects.v1beta1.RenewAccessKeySecretRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_projects_v1beta1_RenewAccessKeySecretRequest(buffer_arg) { - return projects_pb.RenewAccessKeySecretRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_projects_v1beta1_RenewAccessKeySecretResponse(arg) { - if (!(arg instanceof projects_pb.RenewAccessKeySecretResponse)) { - throw new Error('Expected argument of type fonoster.projects.v1beta1.RenewAccessKeySecretResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_projects_v1beta1_RenewAccessKeySecretResponse(buffer_arg) { - return projects_pb.RenewAccessKeySecretResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_projects_v1beta1_UpdateProjectRequest(arg) { - if (!(arg instanceof projects_pb.UpdateProjectRequest)) { - throw new Error('Expected argument of type fonoster.projects.v1beta1.UpdateProjectRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_projects_v1beta1_UpdateProjectRequest(buffer_arg) { - return projects_pb.UpdateProjectRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var ProjectsService = exports.ProjectsService = { - // Lists all the Projects for a given User -listProjects: { - path: '/fonoster.projects.v1beta1.Projects/ListProjects', - requestStream: false, - responseStream: false, - requestType: projects_pb.ListProjectsRequest, - responseType: projects_pb.ListProjectsResponse, - requestSerialize: serialize_fonoster_projects_v1beta1_ListProjectsRequest, - requestDeserialize: deserialize_fonoster_projects_v1beta1_ListProjectsRequest, - responseSerialize: serialize_fonoster_projects_v1beta1_ListProjectsResponse, - responseDeserialize: deserialize_fonoster_projects_v1beta1_ListProjectsResponse, - }, - // Creates a new Project resource -createProject: { - path: '/fonoster.projects.v1beta1.Projects/CreateProject', - requestStream: false, - responseStream: false, - requestType: projects_pb.CreateProjectRequest, - responseType: projects_pb.Project, - requestSerialize: serialize_fonoster_projects_v1beta1_CreateProjectRequest, - requestDeserialize: deserialize_fonoster_projects_v1beta1_CreateProjectRequest, - responseSerialize: serialize_fonoster_projects_v1beta1_Project, - responseDeserialize: deserialize_fonoster_projects_v1beta1_Project, - }, - // Updates a given Project -updateProject: { - path: '/fonoster.projects.v1beta1.Projects/UpdateProject', - requestStream: false, - responseStream: false, - requestType: projects_pb.UpdateProjectRequest, - responseType: projects_pb.Project, - requestSerialize: serialize_fonoster_projects_v1beta1_UpdateProjectRequest, - requestDeserialize: deserialize_fonoster_projects_v1beta1_UpdateProjectRequest, - responseSerialize: serialize_fonoster_projects_v1beta1_Project, - responseDeserialize: deserialize_fonoster_projects_v1beta1_Project, - }, - // Gets a Project by AccessKeyId -getProject: { - path: '/fonoster.projects.v1beta1.Projects/GetProject', - requestStream: false, - responseStream: false, - requestType: projects_pb.GetProjectRequest, - responseType: projects_pb.Project, - requestSerialize: serialize_fonoster_projects_v1beta1_GetProjectRequest, - requestDeserialize: deserialize_fonoster_projects_v1beta1_GetProjectRequest, - responseSerialize: serialize_fonoster_projects_v1beta1_Project, - responseDeserialize: deserialize_fonoster_projects_v1beta1_Project, - }, - // WARNING: Hard delete of a Project will remove all related resources -deleteProject: { - path: '/fonoster.projects.v1beta1.Projects/DeleteProject', - requestStream: false, - responseStream: false, - requestType: projects_pb.DeleteProjectRequest, - responseType: common_pb.Empty, - requestSerialize: serialize_fonoster_projects_v1beta1_DeleteProjectRequest, - requestDeserialize: deserialize_fonoster_projects_v1beta1_DeleteProjectRequest, - responseSerialize: serialize_fonoster_common_v1beta1_Empty, - responseDeserialize: deserialize_fonoster_common_v1beta1_Empty, - }, - // Regenerates the accessKeySecret -renewAccessKeySecret: { - path: '/fonoster.projects.v1beta1.Projects/RenewAccessKeySecret', - requestStream: false, - responseStream: false, - requestType: projects_pb.RenewAccessKeySecretRequest, - responseType: projects_pb.RenewAccessKeySecretResponse, - requestSerialize: serialize_fonoster_projects_v1beta1_RenewAccessKeySecretRequest, - requestDeserialize: deserialize_fonoster_projects_v1beta1_RenewAccessKeySecretRequest, - responseSerialize: serialize_fonoster_projects_v1beta1_RenewAccessKeySecretResponse, - responseDeserialize: deserialize_fonoster_projects_v1beta1_RenewAccessKeySecretResponse, - }, -}; - -exports.ProjectsClient = grpc.makeGenericClientConstructor(ProjectsService); diff --git a/mods/projects/src/service/protos/projects_pb.d.ts b/mods/projects/src/service/protos/projects_pb.d.ts deleted file mode 100644 index 21119eca3..000000000 --- a/mods/projects/src/service/protos/projects_pb.d.ts +++ /dev/null @@ -1,219 +0,0 @@ -// package: fonoster.projects.v1beta1 -// file: projects.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as common_pb from "./common_pb"; - -export class ListProjectsRequest extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListProjectsRequest.AsObject; - static toObject(includeInstance: boolean, msg: ListProjectsRequest): ListProjectsRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListProjectsRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListProjectsRequest; - static deserializeBinaryFromReader(message: ListProjectsRequest, reader: jspb.BinaryReader): ListProjectsRequest; -} - -export namespace ListProjectsRequest { - export type AsObject = { - } -} - -export class ListProjectsResponse extends jspb.Message { - clearProjectsList(): void; - getProjectsList(): Array; - setProjectsList(value: Array): ListProjectsResponse; - addProjects(value?: Project, index?: number): Project; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListProjectsResponse.AsObject; - static toObject(includeInstance: boolean, msg: ListProjectsResponse): ListProjectsResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListProjectsResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListProjectsResponse; - static deserializeBinaryFromReader(message: ListProjectsResponse, reader: jspb.BinaryReader): ListProjectsResponse; -} - -export namespace ListProjectsResponse { - export type AsObject = { - projectsList: Array, - } -} - -export class CreateProjectRequest extends jspb.Message { - getName(): string; - setName(value: string): CreateProjectRequest; - getAllowExperiments(): boolean; - setAllowExperiments(value: boolean): CreateProjectRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateProjectRequest.AsObject; - static toObject(includeInstance: boolean, msg: CreateProjectRequest): CreateProjectRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateProjectRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateProjectRequest; - static deserializeBinaryFromReader(message: CreateProjectRequest, reader: jspb.BinaryReader): CreateProjectRequest; -} - -export namespace CreateProjectRequest { - export type AsObject = { - name: string, - allowExperiments: boolean, - } -} - -export class UpdateProjectRequest extends jspb.Message { - getRef(): string; - setRef(value: string): UpdateProjectRequest; - getName(): string; - setName(value: string): UpdateProjectRequest; - getAllowExperiments(): boolean; - setAllowExperiments(value: boolean): UpdateProjectRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UpdateProjectRequest.AsObject; - static toObject(includeInstance: boolean, msg: UpdateProjectRequest): UpdateProjectRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UpdateProjectRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UpdateProjectRequest; - static deserializeBinaryFromReader(message: UpdateProjectRequest, reader: jspb.BinaryReader): UpdateProjectRequest; -} - -export namespace UpdateProjectRequest { - export type AsObject = { - ref: string, - name: string, - allowExperiments: boolean, - } -} - -export class GetProjectRequest extends jspb.Message { - getRef(): string; - setRef(value: string): GetProjectRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProjectRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetProjectRequest): GetProjectRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProjectRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProjectRequest; - static deserializeBinaryFromReader(message: GetProjectRequest, reader: jspb.BinaryReader): GetProjectRequest; -} - -export namespace GetProjectRequest { - export type AsObject = { - ref: string, - } -} - -export class DeleteProjectRequest extends jspb.Message { - getRef(): string; - setRef(value: string): DeleteProjectRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DeleteProjectRequest.AsObject; - static toObject(includeInstance: boolean, msg: DeleteProjectRequest): DeleteProjectRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DeleteProjectRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DeleteProjectRequest; - static deserializeBinaryFromReader(message: DeleteProjectRequest, reader: jspb.BinaryReader): DeleteProjectRequest; -} - -export namespace DeleteProjectRequest { - export type AsObject = { - ref: string, - } -} - -export class RenewAccessKeySecretRequest extends jspb.Message { - getRef(): string; - setRef(value: string): RenewAccessKeySecretRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): RenewAccessKeySecretRequest.AsObject; - static toObject(includeInstance: boolean, msg: RenewAccessKeySecretRequest): RenewAccessKeySecretRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: RenewAccessKeySecretRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): RenewAccessKeySecretRequest; - static deserializeBinaryFromReader(message: RenewAccessKeySecretRequest, reader: jspb.BinaryReader): RenewAccessKeySecretRequest; -} - -export namespace RenewAccessKeySecretRequest { - export type AsObject = { - ref: string, - } -} - -export class RenewAccessKeySecretResponse extends jspb.Message { - getAccessKeySecret(): string; - setAccessKeySecret(value: string): RenewAccessKeySecretResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): RenewAccessKeySecretResponse.AsObject; - static toObject(includeInstance: boolean, msg: RenewAccessKeySecretResponse): RenewAccessKeySecretResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: RenewAccessKeySecretResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): RenewAccessKeySecretResponse; - static deserializeBinaryFromReader(message: RenewAccessKeySecretResponse, reader: jspb.BinaryReader): RenewAccessKeySecretResponse; -} - -export namespace RenewAccessKeySecretResponse { - export type AsObject = { - accessKeySecret: string, - } -} - -export class Project extends jspb.Message { - getName(): string; - setName(value: string): Project; - getRef(): string; - setRef(value: string): Project; - getUserRef(): string; - setUserRef(value: string): Project; - getAccessKeyId(): string; - setAccessKeyId(value: string): Project; - getAccessKeySecret(): string; - setAccessKeySecret(value: string): Project; - getAllowExperiments(): boolean; - setAllowExperiments(value: boolean): Project; - getCreateTime(): string; - setCreateTime(value: string): Project; - getUpdateTime(): string; - setUpdateTime(value: string): Project; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Project.AsObject; - static toObject(includeInstance: boolean, msg: Project): Project.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Project, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Project; - static deserializeBinaryFromReader(message: Project, reader: jspb.BinaryReader): Project; -} - -export namespace Project { - export type AsObject = { - name: string, - ref: string, - userRef: string, - accessKeyId: string, - accessKeySecret: string, - allowExperiments: boolean, - createTime: string, - updateTime: string, - } -} diff --git a/mods/projects/src/service/protos/projects_pb.js b/mods/projects/src/service/protos/projects_pb.js deleted file mode 100644 index 8985572c5..000000000 --- a/mods/projects/src/service/protos/projects_pb.js +++ /dev/null @@ -1,1695 +0,0 @@ -// source: projects.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -goog.object.extend(proto, google_api_annotations_pb); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -goog.object.extend(proto, google_api_field_behavior_pb); -var common_pb = require('./common_pb.js'); -goog.object.extend(proto, common_pb); -goog.exportSymbol('proto.fonoster.projects.v1beta1.CreateProjectRequest', null, global); -goog.exportSymbol('proto.fonoster.projects.v1beta1.DeleteProjectRequest', null, global); -goog.exportSymbol('proto.fonoster.projects.v1beta1.GetProjectRequest', null, global); -goog.exportSymbol('proto.fonoster.projects.v1beta1.ListProjectsRequest', null, global); -goog.exportSymbol('proto.fonoster.projects.v1beta1.ListProjectsResponse', null, global); -goog.exportSymbol('proto.fonoster.projects.v1beta1.Project', null, global); -goog.exportSymbol('proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest', null, global); -goog.exportSymbol('proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse', null, global); -goog.exportSymbol('proto.fonoster.projects.v1beta1.UpdateProjectRequest', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.projects.v1beta1.ListProjectsRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.projects.v1beta1.ListProjectsRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.projects.v1beta1.ListProjectsRequest.displayName = 'proto.fonoster.projects.v1beta1.ListProjectsRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.projects.v1beta1.ListProjectsResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.projects.v1beta1.ListProjectsResponse.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.projects.v1beta1.ListProjectsResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.projects.v1beta1.ListProjectsResponse.displayName = 'proto.fonoster.projects.v1beta1.ListProjectsResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.projects.v1beta1.CreateProjectRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.projects.v1beta1.CreateProjectRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.projects.v1beta1.CreateProjectRequest.displayName = 'proto.fonoster.projects.v1beta1.CreateProjectRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.projects.v1beta1.UpdateProjectRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.projects.v1beta1.UpdateProjectRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.projects.v1beta1.UpdateProjectRequest.displayName = 'proto.fonoster.projects.v1beta1.UpdateProjectRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.projects.v1beta1.GetProjectRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.projects.v1beta1.GetProjectRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.projects.v1beta1.GetProjectRequest.displayName = 'proto.fonoster.projects.v1beta1.GetProjectRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.projects.v1beta1.DeleteProjectRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.projects.v1beta1.DeleteProjectRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.projects.v1beta1.DeleteProjectRequest.displayName = 'proto.fonoster.projects.v1beta1.DeleteProjectRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest.displayName = 'proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse.displayName = 'proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.projects.v1beta1.Project = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.projects.v1beta1.Project, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.projects.v1beta1.Project.displayName = 'proto.fonoster.projects.v1beta1.Project'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.projects.v1beta1.ListProjectsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.projects.v1beta1.ListProjectsRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.projects.v1beta1.ListProjectsRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.ListProjectsRequest.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.projects.v1beta1.ListProjectsRequest} - */ -proto.fonoster.projects.v1beta1.ListProjectsRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.projects.v1beta1.ListProjectsRequest; - return proto.fonoster.projects.v1beta1.ListProjectsRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.projects.v1beta1.ListProjectsRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.projects.v1beta1.ListProjectsRequest} - */ -proto.fonoster.projects.v1beta1.ListProjectsRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.projects.v1beta1.ListProjectsRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.projects.v1beta1.ListProjectsRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.projects.v1beta1.ListProjectsRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.ListProjectsRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.projects.v1beta1.ListProjectsResponse.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.projects.v1beta1.ListProjectsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.projects.v1beta1.ListProjectsResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.projects.v1beta1.ListProjectsResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.ListProjectsResponse.toObject = function(includeInstance, msg) { - var f, obj = { - projectsList: jspb.Message.toObjectList(msg.getProjectsList(), - proto.fonoster.projects.v1beta1.Project.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.projects.v1beta1.ListProjectsResponse} - */ -proto.fonoster.projects.v1beta1.ListProjectsResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.projects.v1beta1.ListProjectsResponse; - return proto.fonoster.projects.v1beta1.ListProjectsResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.projects.v1beta1.ListProjectsResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.projects.v1beta1.ListProjectsResponse} - */ -proto.fonoster.projects.v1beta1.ListProjectsResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.fonoster.projects.v1beta1.Project; - reader.readMessage(value,proto.fonoster.projects.v1beta1.Project.deserializeBinaryFromReader); - msg.addProjects(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.projects.v1beta1.ListProjectsResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.projects.v1beta1.ListProjectsResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.projects.v1beta1.ListProjectsResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.ListProjectsResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getProjectsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.fonoster.projects.v1beta1.Project.serializeBinaryToWriter - ); - } -}; - - -/** - * repeated Project projects = 1; - * @return {!Array} - */ -proto.fonoster.projects.v1beta1.ListProjectsResponse.prototype.getProjectsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.fonoster.projects.v1beta1.Project, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.projects.v1beta1.ListProjectsResponse} returns this -*/ -proto.fonoster.projects.v1beta1.ListProjectsResponse.prototype.setProjectsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.fonoster.projects.v1beta1.Project=} opt_value - * @param {number=} opt_index - * @return {!proto.fonoster.projects.v1beta1.Project} - */ -proto.fonoster.projects.v1beta1.ListProjectsResponse.prototype.addProjects = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.projects.v1beta1.Project, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.projects.v1beta1.ListProjectsResponse} returns this - */ -proto.fonoster.projects.v1beta1.ListProjectsResponse.prototype.clearProjectsList = function() { - return this.setProjectsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.projects.v1beta1.CreateProjectRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.projects.v1beta1.CreateProjectRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.projects.v1beta1.CreateProjectRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.CreateProjectRequest.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - allowExperiments: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.projects.v1beta1.CreateProjectRequest} - */ -proto.fonoster.projects.v1beta1.CreateProjectRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.projects.v1beta1.CreateProjectRequest; - return proto.fonoster.projects.v1beta1.CreateProjectRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.projects.v1beta1.CreateProjectRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.projects.v1beta1.CreateProjectRequest} - */ -proto.fonoster.projects.v1beta1.CreateProjectRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setAllowExperiments(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.projects.v1beta1.CreateProjectRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.projects.v1beta1.CreateProjectRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.projects.v1beta1.CreateProjectRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.CreateProjectRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getAllowExperiments(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.projects.v1beta1.CreateProjectRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.CreateProjectRequest} returns this - */ -proto.fonoster.projects.v1beta1.CreateProjectRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bool allow_experiments = 2; - * @return {boolean} - */ -proto.fonoster.projects.v1beta1.CreateProjectRequest.prototype.getAllowExperiments = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.fonoster.projects.v1beta1.CreateProjectRequest} returns this - */ -proto.fonoster.projects.v1beta1.CreateProjectRequest.prototype.setAllowExperiments = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.projects.v1beta1.UpdateProjectRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.projects.v1beta1.UpdateProjectRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.projects.v1beta1.UpdateProjectRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.UpdateProjectRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - allowExperiments: jspb.Message.getBooleanFieldWithDefault(msg, 3, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.projects.v1beta1.UpdateProjectRequest} - */ -proto.fonoster.projects.v1beta1.UpdateProjectRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.projects.v1beta1.UpdateProjectRequest; - return proto.fonoster.projects.v1beta1.UpdateProjectRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.projects.v1beta1.UpdateProjectRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.projects.v1beta1.UpdateProjectRequest} - */ -proto.fonoster.projects.v1beta1.UpdateProjectRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setAllowExperiments(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.projects.v1beta1.UpdateProjectRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.projects.v1beta1.UpdateProjectRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.projects.v1beta1.UpdateProjectRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.UpdateProjectRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getAllowExperiments(); - if (f) { - writer.writeBool( - 3, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.projects.v1beta1.UpdateProjectRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.UpdateProjectRequest} returns this - */ -proto.fonoster.projects.v1beta1.UpdateProjectRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.fonoster.projects.v1beta1.UpdateProjectRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.UpdateProjectRequest} returns this - */ -proto.fonoster.projects.v1beta1.UpdateProjectRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool allow_experiments = 3; - * @return {boolean} - */ -proto.fonoster.projects.v1beta1.UpdateProjectRequest.prototype.getAllowExperiments = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.fonoster.projects.v1beta1.UpdateProjectRequest} returns this - */ -proto.fonoster.projects.v1beta1.UpdateProjectRequest.prototype.setAllowExperiments = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.projects.v1beta1.GetProjectRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.projects.v1beta1.GetProjectRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.projects.v1beta1.GetProjectRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.GetProjectRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.projects.v1beta1.GetProjectRequest} - */ -proto.fonoster.projects.v1beta1.GetProjectRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.projects.v1beta1.GetProjectRequest; - return proto.fonoster.projects.v1beta1.GetProjectRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.projects.v1beta1.GetProjectRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.projects.v1beta1.GetProjectRequest} - */ -proto.fonoster.projects.v1beta1.GetProjectRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.projects.v1beta1.GetProjectRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.projects.v1beta1.GetProjectRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.projects.v1beta1.GetProjectRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.GetProjectRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.projects.v1beta1.GetProjectRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.GetProjectRequest} returns this - */ -proto.fonoster.projects.v1beta1.GetProjectRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.projects.v1beta1.DeleteProjectRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.projects.v1beta1.DeleteProjectRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.projects.v1beta1.DeleteProjectRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.DeleteProjectRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.projects.v1beta1.DeleteProjectRequest} - */ -proto.fonoster.projects.v1beta1.DeleteProjectRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.projects.v1beta1.DeleteProjectRequest; - return proto.fonoster.projects.v1beta1.DeleteProjectRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.projects.v1beta1.DeleteProjectRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.projects.v1beta1.DeleteProjectRequest} - */ -proto.fonoster.projects.v1beta1.DeleteProjectRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.projects.v1beta1.DeleteProjectRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.projects.v1beta1.DeleteProjectRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.projects.v1beta1.DeleteProjectRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.DeleteProjectRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.projects.v1beta1.DeleteProjectRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.DeleteProjectRequest} returns this - */ -proto.fonoster.projects.v1beta1.DeleteProjectRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest} - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest; - return proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest} - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest} returns this - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse.toObject = function(includeInstance, msg) { - var f, obj = { - accessKeySecret: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse} - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse; - return proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse} - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setAccessKeySecret(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getAccessKeySecret(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string access_key_secret = 1; - * @return {string} - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse.prototype.getAccessKeySecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse} returns this - */ -proto.fonoster.projects.v1beta1.RenewAccessKeySecretResponse.prototype.setAccessKeySecret = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.projects.v1beta1.Project.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.projects.v1beta1.Project.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.projects.v1beta1.Project} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.Project.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - ref: jspb.Message.getFieldWithDefault(msg, 2, ""), - userRef: jspb.Message.getFieldWithDefault(msg, 3, ""), - accessKeyId: jspb.Message.getFieldWithDefault(msg, 4, ""), - accessKeySecret: jspb.Message.getFieldWithDefault(msg, 5, ""), - allowExperiments: jspb.Message.getBooleanFieldWithDefault(msg, 6, false), - createTime: jspb.Message.getFieldWithDefault(msg, 7, ""), - updateTime: jspb.Message.getFieldWithDefault(msg, 8, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.projects.v1beta1.Project} - */ -proto.fonoster.projects.v1beta1.Project.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.projects.v1beta1.Project; - return proto.fonoster.projects.v1beta1.Project.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.projects.v1beta1.Project} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.projects.v1beta1.Project} - */ -proto.fonoster.projects.v1beta1.Project.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setUserRef(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setAccessKeyId(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setAccessKeySecret(value); - break; - case 6: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setAllowExperiments(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setCreateTime(value); - break; - case 8: - var value = /** @type {string} */ (reader.readString()); - msg.setUpdateTime(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.projects.v1beta1.Project.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.projects.v1beta1.Project.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.projects.v1beta1.Project} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.projects.v1beta1.Project.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getUserRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getAccessKeyId(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getAccessKeySecret(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getAllowExperiments(); - if (f) { - writer.writeBool( - 6, - f - ); - } - f = message.getCreateTime(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getUpdateTime(); - if (f.length > 0) { - writer.writeString( - 8, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.projects.v1beta1.Project.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.Project} returns this - */ -proto.fonoster.projects.v1beta1.Project.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string ref = 2; - * @return {string} - */ -proto.fonoster.projects.v1beta1.Project.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.Project} returns this - */ -proto.fonoster.projects.v1beta1.Project.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string user_ref = 3; - * @return {string} - */ -proto.fonoster.projects.v1beta1.Project.prototype.getUserRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.Project} returns this - */ -proto.fonoster.projects.v1beta1.Project.prototype.setUserRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string access_key_id = 4; - * @return {string} - */ -proto.fonoster.projects.v1beta1.Project.prototype.getAccessKeyId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.Project} returns this - */ -proto.fonoster.projects.v1beta1.Project.prototype.setAccessKeyId = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string access_key_secret = 5; - * @return {string} - */ -proto.fonoster.projects.v1beta1.Project.prototype.getAccessKeySecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.Project} returns this - */ -proto.fonoster.projects.v1beta1.Project.prototype.setAccessKeySecret = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional bool allow_experiments = 6; - * @return {boolean} - */ -proto.fonoster.projects.v1beta1.Project.prototype.getAllowExperiments = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.fonoster.projects.v1beta1.Project} returns this - */ -proto.fonoster.projects.v1beta1.Project.prototype.setAllowExperiments = function(value) { - return jspb.Message.setProto3BooleanField(this, 6, value); -}; - - -/** - * optional string create_time = 7; - * @return {string} - */ -proto.fonoster.projects.v1beta1.Project.prototype.getCreateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.Project} returns this - */ -proto.fonoster.projects.v1beta1.Project.prototype.setCreateTime = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string update_time = 8; - * @return {string} - */ -proto.fonoster.projects.v1beta1.Project.prototype.getUpdateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.projects.v1beta1.Project} returns this - */ -proto.fonoster.projects.v1beta1.Project.prototype.setUpdateTime = function(value) { - return jspb.Message.setProto3StringField(this, 8, value); -}; - - -goog.object.extend(exports, proto.fonoster.projects.v1beta1); diff --git a/mods/projects/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js b/mods/projects/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/projects/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/projects/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts b/mods/projects/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts deleted file mode 100644 index 8e3a35012..000000000 --- a/mods/projects/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; -import * as protoc_gen_openapiv2_options_openapiv2_pb from "../../protoc-gen-openapiv2/options/openapiv2_pb"; - -export const openapiv2Swagger: jspb.ExtensionFieldInfo; - -export const openapiv2Operation: jspb.ExtensionFieldInfo; - -export const openapiv2Schema: jspb.ExtensionFieldInfo; - -export const openapiv2Tag: jspb.ExtensionFieldInfo; - -export const openapiv2Field: jspb.ExtensionFieldInfo; diff --git a/mods/projects/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js b/mods/projects/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js deleted file mode 100644 index e92ccec18..000000000 --- a/mods/projects/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js +++ /dev/null @@ -1,152 +0,0 @@ -// source: protoc-gen-openapiv2/options/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -var protoc$gen$openapiv2_options_openapiv2_pb = require('../../protoc-gen-openapiv2/options/openapiv2_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_openapiv2_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Swagger`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Swagger: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.toObject), - 0); - -google_protobuf_descriptor_pb.FileOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FileOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Operation`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Operation: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Operation, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Operation.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Schema`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Schema: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Schema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Schema.toObject), - 0); - -google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MessageOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Tag`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Tag: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Tag, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Tag.toObject), - 0); - -google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.ServiceOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Field`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Field: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.toObject), - 0); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/projects/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js b/mods/projects/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/projects/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/projects/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts b/mods/projects/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts deleted file mode 100644 index 3c3972ea9..000000000 --- a/mods/projects/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +++ /dev/null @@ -1,685 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/openapiv2.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class Swagger extends jspb.Message { - getSwagger(): string; - setSwagger(value: string): Swagger; - - hasInfo(): boolean; - clearInfo(): void; - getInfo(): Info | undefined; - setInfo(value?: Info): Swagger; - getHost(): string; - setHost(value: string): Swagger; - getBasePath(): string; - setBasePath(value: string): Swagger; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Swagger; - addSchemes(value: Scheme, index?: number): Scheme; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Swagger; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Swagger; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - - hasSecurityDefinitions(): boolean; - clearSecurityDefinitions(): void; - getSecurityDefinitions(): SecurityDefinitions | undefined; - setSecurityDefinitions(value?: SecurityDefinitions): Swagger; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Swagger; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Swagger; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Swagger.AsObject; - static toObject(includeInstance: boolean, msg: Swagger): Swagger.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Swagger, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Swagger; - static deserializeBinaryFromReader(message: Swagger, reader: jspb.BinaryReader): Swagger; -} - -export namespace Swagger { - export type AsObject = { - swagger: string, - info?: Info.AsObject, - host: string, - basePath: string, - schemesList: Array, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - securityDefinitions?: SecurityDefinitions.AsObject, - securityList: Array, - externalDocs?: ExternalDocumentation.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Operation extends jspb.Message { - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): Operation; - addTags(value: string, index?: number): string; - getSummary(): string; - setSummary(value: string): Operation; - getDescription(): string; - setDescription(value: string): Operation; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Operation; - getOperationId(): string; - setOperationId(value: string): Operation; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Operation; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Operation; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Operation; - addSchemes(value: Scheme, index?: number): Scheme; - getDeprecated(): boolean; - setDeprecated(value: boolean): Operation; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Operation; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Operation.AsObject; - static toObject(includeInstance: boolean, msg: Operation): Operation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Operation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Operation; - static deserializeBinaryFromReader(message: Operation, reader: jspb.BinaryReader): Operation; -} - -export namespace Operation { - export type AsObject = { - tagsList: Array, - summary: string, - description: string, - externalDocs?: ExternalDocumentation.AsObject, - operationId: string, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - schemesList: Array, - deprecated: boolean, - securityList: Array, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Header extends jspb.Message { - getDescription(): string; - setDescription(value: string): Header; - getType(): string; - setType(value: string): Header; - getFormat(): string; - setFormat(value: string): Header; - getDefault(): string; - setDefault(value: string): Header; - getPattern(): string; - setPattern(value: string): Header; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Header.AsObject; - static toObject(includeInstance: boolean, msg: Header): Header.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Header, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Header; - static deserializeBinaryFromReader(message: Header, reader: jspb.BinaryReader): Header; -} - -export namespace Header { - export type AsObject = { - description: string, - type: string, - format: string, - pb_default: string, - pattern: string, - } -} - -export class Response extends jspb.Message { - getDescription(): string; - setDescription(value: string): Response; - - hasSchema(): boolean; - clearSchema(): void; - getSchema(): Schema | undefined; - setSchema(value?: Schema): Response; - - getHeadersMap(): jspb.Map; - clearHeadersMap(): void; - - getExamplesMap(): jspb.Map; - clearExamplesMap(): void; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Response.AsObject; - static toObject(includeInstance: boolean, msg: Response): Response.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Response, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Response; - static deserializeBinaryFromReader(message: Response, reader: jspb.BinaryReader): Response; -} - -export namespace Response { - export type AsObject = { - description: string, - schema?: Schema.AsObject, - - headersMap: Array<[string, Header.AsObject]>, - - examplesMap: Array<[string, string]>, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Info extends jspb.Message { - getTitle(): string; - setTitle(value: string): Info; - getDescription(): string; - setDescription(value: string): Info; - getTermsOfService(): string; - setTermsOfService(value: string): Info; - - hasContact(): boolean; - clearContact(): void; - getContact(): Contact | undefined; - setContact(value?: Contact): Info; - - hasLicense(): boolean; - clearLicense(): void; - getLicense(): License | undefined; - setLicense(value?: License): Info; - getVersion(): string; - setVersion(value: string): Info; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Info.AsObject; - static toObject(includeInstance: boolean, msg: Info): Info.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Info, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Info; - static deserializeBinaryFromReader(message: Info, reader: jspb.BinaryReader): Info; -} - -export namespace Info { - export type AsObject = { - title: string, - description: string, - termsOfService: string, - contact?: Contact.AsObject, - license?: License.AsObject, - version: string, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Contact extends jspb.Message { - getName(): string; - setName(value: string): Contact; - getUrl(): string; - setUrl(value: string): Contact; - getEmail(): string; - setEmail(value: string): Contact; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contact.AsObject; - static toObject(includeInstance: boolean, msg: Contact): Contact.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contact, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contact; - static deserializeBinaryFromReader(message: Contact, reader: jspb.BinaryReader): Contact; -} - -export namespace Contact { - export type AsObject = { - name: string, - url: string, - email: string, - } -} - -export class License extends jspb.Message { - getName(): string; - setName(value: string): License; - getUrl(): string; - setUrl(value: string): License; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): License.AsObject; - static toObject(includeInstance: boolean, msg: License): License.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: License, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): License; - static deserializeBinaryFromReader(message: License, reader: jspb.BinaryReader): License; -} - -export namespace License { - export type AsObject = { - name: string, - url: string, - } -} - -export class ExternalDocumentation extends jspb.Message { - getDescription(): string; - setDescription(value: string): ExternalDocumentation; - getUrl(): string; - setUrl(value: string): ExternalDocumentation; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ExternalDocumentation.AsObject; - static toObject(includeInstance: boolean, msg: ExternalDocumentation): ExternalDocumentation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ExternalDocumentation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ExternalDocumentation; - static deserializeBinaryFromReader(message: ExternalDocumentation, reader: jspb.BinaryReader): ExternalDocumentation; -} - -export namespace ExternalDocumentation { - export type AsObject = { - description: string, - url: string, - } -} - -export class Schema extends jspb.Message { - - hasJsonSchema(): boolean; - clearJsonSchema(): void; - getJsonSchema(): JSONSchema | undefined; - setJsonSchema(value?: JSONSchema): Schema; - getDiscriminator(): string; - setDiscriminator(value: string): Schema; - getReadOnly(): boolean; - setReadOnly(value: boolean): Schema; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Schema; - getExample(): string; - setExample(value: string): Schema; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Schema.AsObject; - static toObject(includeInstance: boolean, msg: Schema): Schema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Schema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Schema; - static deserializeBinaryFromReader(message: Schema, reader: jspb.BinaryReader): Schema; -} - -export namespace Schema { - export type AsObject = { - jsonSchema?: JSONSchema.AsObject, - discriminator: string, - readOnly: boolean, - externalDocs?: ExternalDocumentation.AsObject, - example: string, - } -} - -export class JSONSchema extends jspb.Message { - getRef(): string; - setRef(value: string): JSONSchema; - getTitle(): string; - setTitle(value: string): JSONSchema; - getDescription(): string; - setDescription(value: string): JSONSchema; - getDefault(): string; - setDefault(value: string): JSONSchema; - getReadOnly(): boolean; - setReadOnly(value: boolean): JSONSchema; - getExample(): string; - setExample(value: string): JSONSchema; - getMultipleOf(): number; - setMultipleOf(value: number): JSONSchema; - getMaximum(): number; - setMaximum(value: number): JSONSchema; - getExclusiveMaximum(): boolean; - setExclusiveMaximum(value: boolean): JSONSchema; - getMinimum(): number; - setMinimum(value: number): JSONSchema; - getExclusiveMinimum(): boolean; - setExclusiveMinimum(value: boolean): JSONSchema; - getMaxLength(): number; - setMaxLength(value: number): JSONSchema; - getMinLength(): number; - setMinLength(value: number): JSONSchema; - getPattern(): string; - setPattern(value: string): JSONSchema; - getMaxItems(): number; - setMaxItems(value: number): JSONSchema; - getMinItems(): number; - setMinItems(value: number): JSONSchema; - getUniqueItems(): boolean; - setUniqueItems(value: boolean): JSONSchema; - getMaxProperties(): number; - setMaxProperties(value: number): JSONSchema; - getMinProperties(): number; - setMinProperties(value: number): JSONSchema; - clearRequiredList(): void; - getRequiredList(): Array; - setRequiredList(value: Array): JSONSchema; - addRequired(value: string, index?: number): string; - clearArrayList(): void; - getArrayList(): Array; - setArrayList(value: Array): JSONSchema; - addArray(value: string, index?: number): string; - clearTypeList(): void; - getTypeList(): Array; - setTypeList(value: Array): JSONSchema; - addType(value: JSONSchema.JSONSchemaSimpleTypes, index?: number): JSONSchema.JSONSchemaSimpleTypes; - getFormat(): string; - setFormat(value: string): JSONSchema; - clearEnumList(): void; - getEnumList(): Array; - setEnumList(value: Array): JSONSchema; - addEnum(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): JSONSchema.AsObject; - static toObject(includeInstance: boolean, msg: JSONSchema): JSONSchema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: JSONSchema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): JSONSchema; - static deserializeBinaryFromReader(message: JSONSchema, reader: jspb.BinaryReader): JSONSchema; -} - -export namespace JSONSchema { - export type AsObject = { - ref: string, - title: string, - description: string, - pb_default: string, - readOnly: boolean, - example: string, - multipleOf: number, - maximum: number, - exclusiveMaximum: boolean, - minimum: number, - exclusiveMinimum: boolean, - maxLength: number, - minLength: number, - pattern: string, - maxItems: number, - minItems: number, - uniqueItems: boolean, - maxProperties: number, - minProperties: number, - requiredList: Array, - arrayList: Array, - typeList: Array, - format: string, - pb_enumList: Array, - } - - export enum JSONSchemaSimpleTypes { - UNKNOWN = 0, - ARRAY = 1, - BOOLEAN = 2, - INTEGER = 3, - NULL = 4, - NUMBER = 5, - OBJECT = 6, - STRING = 7, - } - -} - -export class Tag extends jspb.Message { - getDescription(): string; - setDescription(value: string): Tag; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Tag; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Tag.AsObject; - static toObject(includeInstance: boolean, msg: Tag): Tag.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Tag, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Tag; - static deserializeBinaryFromReader(message: Tag, reader: jspb.BinaryReader): Tag; -} - -export namespace Tag { - export type AsObject = { - description: string, - externalDocs?: ExternalDocumentation.AsObject, - } -} - -export class SecurityDefinitions extends jspb.Message { - - getSecurityMap(): jspb.Map; - clearSecurityMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityDefinitions.AsObject; - static toObject(includeInstance: boolean, msg: SecurityDefinitions): SecurityDefinitions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityDefinitions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityDefinitions; - static deserializeBinaryFromReader(message: SecurityDefinitions, reader: jspb.BinaryReader): SecurityDefinitions; -} - -export namespace SecurityDefinitions { - export type AsObject = { - - securityMap: Array<[string, SecurityScheme.AsObject]>, - } -} - -export class SecurityScheme extends jspb.Message { - getType(): SecurityScheme.Type; - setType(value: SecurityScheme.Type): SecurityScheme; - getDescription(): string; - setDescription(value: string): SecurityScheme; - getName(): string; - setName(value: string): SecurityScheme; - getIn(): SecurityScheme.In; - setIn(value: SecurityScheme.In): SecurityScheme; - getFlow(): SecurityScheme.Flow; - setFlow(value: SecurityScheme.Flow): SecurityScheme; - getAuthorizationUrl(): string; - setAuthorizationUrl(value: string): SecurityScheme; - getTokenUrl(): string; - setTokenUrl(value: string): SecurityScheme; - - hasScopes(): boolean; - clearScopes(): void; - getScopes(): Scopes | undefined; - setScopes(value?: Scopes): SecurityScheme; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityScheme.AsObject; - static toObject(includeInstance: boolean, msg: SecurityScheme): SecurityScheme.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityScheme, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityScheme; - static deserializeBinaryFromReader(message: SecurityScheme, reader: jspb.BinaryReader): SecurityScheme; -} - -export namespace SecurityScheme { - export type AsObject = { - type: SecurityScheme.Type, - description: string, - name: string, - pb_in: SecurityScheme.In, - flow: SecurityScheme.Flow, - authorizationUrl: string, - tokenUrl: string, - scopes?: Scopes.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } - - export enum Type { - TYPE_INVALID = 0, - TYPE_BASIC = 1, - TYPE_API_KEY = 2, - TYPE_OAUTH2 = 3, - } - - export enum In { - IN_INVALID = 0, - IN_QUERY = 1, - IN_HEADER = 2, - } - - export enum Flow { - FLOW_INVALID = 0, - FLOW_IMPLICIT = 1, - FLOW_PASSWORD = 2, - FLOW_APPLICATION = 3, - FLOW_ACCESS_CODE = 4, - } - -} - -export class SecurityRequirement extends jspb.Message { - - getSecurityRequirementMap(): jspb.Map; - clearSecurityRequirementMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirement.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirement): SecurityRequirement.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirement, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirement; - static deserializeBinaryFromReader(message: SecurityRequirement, reader: jspb.BinaryReader): SecurityRequirement; -} - -export namespace SecurityRequirement { - export type AsObject = { - - securityRequirementMap: Array<[string, SecurityRequirement.SecurityRequirementValue.AsObject]>, - } - - - export class SecurityRequirementValue extends jspb.Message { - clearScopeList(): void; - getScopeList(): Array; - setScopeList(value: Array): SecurityRequirementValue; - addScope(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirementValue.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirementValue): SecurityRequirementValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirementValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirementValue; - static deserializeBinaryFromReader(message: SecurityRequirementValue, reader: jspb.BinaryReader): SecurityRequirementValue; - } - - export namespace SecurityRequirementValue { - export type AsObject = { - scopeList: Array, - } - } - -} - -export class Scopes extends jspb.Message { - - getScopeMap(): jspb.Map; - clearScopeMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Scopes.AsObject; - static toObject(includeInstance: boolean, msg: Scopes): Scopes.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Scopes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Scopes; - static deserializeBinaryFromReader(message: Scopes, reader: jspb.BinaryReader): Scopes; -} - -export namespace Scopes { - export type AsObject = { - - scopeMap: Array<[string, string]>, - } -} - -export enum Scheme { - UNKNOWN = 0, - HTTP = 1, - HTTPS = 2, - WS = 3, - WSS = 4, -} diff --git a/mods/projects/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js b/mods/projects/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js deleted file mode 100644 index be8a6bfd2..000000000 --- a/mods/projects/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js +++ /dev/null @@ -1,5367 +0,0 @@ -// source: protoc-gen-openapiv2/options/openapiv2.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Contact', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Header', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Info', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.License', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Response', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Tag', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Operation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Operation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Header, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Header'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Response, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Response'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Info, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Info'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Contact'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.License, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.License.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.License'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Schema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Tag, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Tag'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_ = [5,6,7,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject = function(includeInstance, msg) { - var f, obj = { - swagger: jspb.Message.getFieldWithDefault(msg, 1, ""), - info: (f = msg.getInfo()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(includeInstance, f), - host: jspb.Message.getFieldWithDefault(msg, 3, ""), - basePath: jspb.Message.getFieldWithDefault(msg, 4, ""), - schemesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - securityDefinitions: (f = msg.getSecurityDefinitions()) && proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(includeInstance, f), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSwagger(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader); - msg.setInfo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setBasePath(value); - break; - case 5: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 10: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 11: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader); - msg.setSecurityDefinitions(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 14: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 15: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSwagger(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInfo(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBasePath(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSecurityDefinitions(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 14, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string swagger = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSwagger = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSwagger = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Info info = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getInfo = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Info, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearInfo = function() { - return this.setInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasInfo = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string host = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string base_path = 4; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getBasePath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setBasePath = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated Scheme schemes = 5; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 10; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 10, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * optional SecurityDefinitions security_definitions = 11; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityDefinitions = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, 11)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityDefinitions = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityDefinitions = function() { - return this.setSecurityDefinitions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasSecurityDefinitions = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * optional ExternalDocumentation external_docs = 14; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 14)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 14, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 14) != null; -}; - - -/** - * map extensions = 15; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 15, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_ = [1,6,7,10,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject = function(includeInstance, msg) { - var f, obj = { - tagsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - summary: jspb.Message.getFieldWithDefault(msg, 2, ""), - description: jspb.Message.getFieldWithDefault(msg, 3, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - operationId: jspb.Message.getFieldWithDefault(msg, 5, ""), - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - schemesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f, - deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 11, false), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Operation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSummary(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setOperationId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 9: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 10: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDeprecated(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 13: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getSummary(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getOperationId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 10, - f - ); - } - f = message.getDeprecated(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * repeated string tags = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getTagsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setTagsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addTags = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearTagsList = function() { - return this.setTagsList([]); -}; - - -/** - * optional string summary = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSummary = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSummary = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string description = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string operation_id = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getOperationId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setOperationId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * repeated Scheme schemes = 10; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 10, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 10, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * optional bool deprecated = 11; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDeprecated = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDeprecated = function(value) { - return jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * map extensions = 13; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 13, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, ""), - format: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 6, ""), - pattern: jspb.Message.getFieldWithDefault(msg, 13, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Header; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string type = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string format = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string default = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string pattern = 13; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 13, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - schema: (f = msg.getSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(includeInstance, f), - headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject) : [], - examplesMap: (f = msg.getExamplesMap()) ? f.toObject(includeInstance, undefined) : [], - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Response; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader); - msg.setSchema(value); - break; - case 3: - var value = msg.getHeadersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Header()); - }); - break; - case 4: - var value = msg.getExamplesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - case 5: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchema(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter - ); - } - f = message.getHeadersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter); - } - f = message.getExamplesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Schema schema = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setSchema = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearSchema = function() { - return this.setSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.hasSchema = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * map headers = 3; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getHeadersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 3, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Header)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearHeadersMap = function() { - this.getHeadersMap().clear(); - return this;}; - - -/** - * map examples = 4; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExamplesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 4, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExamplesMap = function() { - this.getExamplesMap().clear(); - return this;}; - - -/** - * map extensions = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject = function(includeInstance, msg) { - var f, obj = { - title: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - termsOfService: jspb.Message.getFieldWithDefault(msg, 3, ""), - contact: (f = msg.getContact()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(includeInstance, f), - license: (f = msg.getLicense()) && proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(includeInstance, f), - version: jspb.Message.getFieldWithDefault(msg, 6, ""), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTermsOfService(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader); - msg.setContact(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader); - msg.setLicense(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 7: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTermsOfService(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getContact(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter - ); - } - f = message.getLicense(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string title = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string terms_of_service = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTermsOfService = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTermsOfService = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional Contact contact = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getContact = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setContact = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearContact = function() { - return this.setContact(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasContact = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional License license = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getLicense = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.License} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.License, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.License|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setLicense = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearLicense = function() { - return this.setLicense(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasLicense = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string version = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setVersion = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * map extensions = 7; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 7, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject = function(includeInstance, msg) { - var f, obj = { - jsonSchema: (f = msg.getJsonSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(includeInstance, f), - discriminator: jspb.Message.getFieldWithDefault(msg, 2, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - example: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader); - msg.setJsonSchema(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDiscriminator(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsonSchema(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter - ); - } - f = message.getDiscriminator(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional JSONSchema json_schema = 1; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getJsonSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, 1)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setJsonSchema = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearJsonSchema = function() { - return this.setJsonSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasJsonSchema = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string discriminator = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getDiscriminator = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setDiscriminator = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool read_only = 3; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string example = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_ = [26,34,35,46]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 3, ""), - title: jspb.Message.getFieldWithDefault(msg, 5, ""), - description: jspb.Message.getFieldWithDefault(msg, 6, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 7, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - example: jspb.Message.getFieldWithDefault(msg, 9, ""), - multipleOf: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0), - maximum: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0), - exclusiveMaximum: jspb.Message.getBooleanFieldWithDefault(msg, 12, false), - minimum: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), - exclusiveMinimum: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - maxLength: jspb.Message.getFieldWithDefault(msg, 15, 0), - minLength: jspb.Message.getFieldWithDefault(msg, 16, 0), - pattern: jspb.Message.getFieldWithDefault(msg, 17, ""), - maxItems: jspb.Message.getFieldWithDefault(msg, 20, 0), - minItems: jspb.Message.getFieldWithDefault(msg, 21, 0), - uniqueItems: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), - maxProperties: jspb.Message.getFieldWithDefault(msg, 24, 0), - minProperties: jspb.Message.getFieldWithDefault(msg, 25, 0), - requiredList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, - arrayList: (f = jspb.Message.getRepeatedField(msg, 34)) == null ? undefined : f, - typeList: (f = jspb.Message.getRepeatedField(msg, 35)) == null ? undefined : f, - format: jspb.Message.getFieldWithDefault(msg, 36, ""), - enumList: (f = jspb.Message.getRepeatedField(msg, 46)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - case 10: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMultipleOf(value); - break; - case 11: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMaximum(value); - break; - case 12: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMaximum(value); - break; - case 13: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMinimum(value); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMinimum(value); - break; - case 15: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxLength(value); - break; - case 16: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinLength(value); - break; - case 17: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - case 20: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxItems(value); - break; - case 21: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinItems(value); - break; - case 22: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUniqueItems(value); - break; - case 24: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxProperties(value); - break; - case 25: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinProperties(value); - break; - case 26: - var value = /** @type {string} */ (reader.readString()); - msg.addRequired(value); - break; - case 34: - var value = /** @type {string} */ (reader.readString()); - msg.addArray(value); - break; - case 35: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addType(values[i]); - } - break; - case 36: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 46: - var value = /** @type {string} */ (reader.readString()); - msg.addEnum(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getMultipleOf(); - if (f !== 0.0) { - writer.writeDouble( - 10, - f - ); - } - f = message.getMaximum(); - if (f !== 0.0) { - writer.writeDouble( - 11, - f - ); - } - f = message.getExclusiveMaximum(); - if (f) { - writer.writeBool( - 12, - f - ); - } - f = message.getMinimum(); - if (f !== 0.0) { - writer.writeDouble( - 13, - f - ); - } - f = message.getExclusiveMinimum(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getMaxLength(); - if (f !== 0) { - writer.writeUint64( - 15, - f - ); - } - f = message.getMinLength(); - if (f !== 0) { - writer.writeUint64( - 16, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 17, - f - ); - } - f = message.getMaxItems(); - if (f !== 0) { - writer.writeUint64( - 20, - f - ); - } - f = message.getMinItems(); - if (f !== 0) { - writer.writeUint64( - 21, - f - ); - } - f = message.getUniqueItems(); - if (f) { - writer.writeBool( - 22, - f - ); - } - f = message.getMaxProperties(); - if (f !== 0) { - writer.writeUint64( - 24, - f - ); - } - f = message.getMinProperties(); - if (f !== 0) { - writer.writeUint64( - 25, - f - ); - } - f = message.getRequiredList(); - if (f.length > 0) { - writer.writeRepeatedString( - 26, - f - ); - } - f = message.getArrayList(); - if (f.length > 0) { - writer.writeRepeatedString( - 34, - f - ); - } - f = message.getTypeList(); - if (f.length > 0) { - writer.writePackedEnum( - 35, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 36, - f - ); - } - f = message.getEnumList(); - if (f.length > 0) { - writer.writeRepeatedString( - 46, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes = { - UNKNOWN: 0, - ARRAY: 1, - BOOLEAN: 2, - INTEGER: 3, - NULL: 4, - NUMBER: 5, - OBJECT: 6, - STRING: 7 -}; - -/** - * optional string ref = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string title = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string description = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string default = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional bool read_only = 8; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - -/** - * optional string example = 9; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional double multiple_of = 10; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMultipleOf = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMultipleOf = function(value) { - return jspb.Message.setProto3FloatField(this, 10, value); -}; - - -/** - * optional double maximum = 11; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaximum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaximum = function(value) { - return jspb.Message.setProto3FloatField(this, 11, value); -}; - - -/** - * optional bool exclusive_maximum = 12; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMaximum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMaximum = function(value) { - return jspb.Message.setProto3BooleanField(this, 12, value); -}; - - -/** - * optional double minimum = 13; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinimum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinimum = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); -}; - - -/** - * optional bool exclusive_minimum = 14; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMinimum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMinimum = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * optional uint64 max_length = 15; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxLength = function(value) { - return jspb.Message.setProto3IntField(this, 15, value); -}; - - -/** - * optional uint64 min_length = 16; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinLength = function(value) { - return jspb.Message.setProto3IntField(this, 16, value); -}; - - -/** - * optional string pattern = 17; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 17, value); -}; - - -/** - * optional uint64 max_items = 20; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxItems = function(value) { - return jspb.Message.setProto3IntField(this, 20, value); -}; - - -/** - * optional uint64 min_items = 21; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinItems = function(value) { - return jspb.Message.setProto3IntField(this, 21, value); -}; - - -/** - * optional bool unique_items = 22; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getUniqueItems = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setUniqueItems = function(value) { - return jspb.Message.setProto3BooleanField(this, 22, value); -}; - - -/** - * optional uint64 max_properties = 24; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxProperties = function(value) { - return jspb.Message.setProto3IntField(this, 24, value); -}; - - -/** - * optional uint64 min_properties = 25; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinProperties = function(value) { - return jspb.Message.setProto3IntField(this, 25, value); -}; - - -/** - * repeated string required = 26; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRequiredList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 26)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRequiredList = function(value) { - return jspb.Message.setField(this, 26, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addRequired = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 26, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearRequiredList = function() { - return this.setRequiredList([]); -}; - - -/** - * repeated string array = 34; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getArrayList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 34)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setArrayList = function(value) { - return jspb.Message.setField(this, 34, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addArray = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 34, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearArrayList = function() { - return this.setArrayList([]); -}; - - -/** - * repeated JSONSchemaSimpleTypes type = 35; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTypeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 35)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTypeList = function(value) { - return jspb.Message.setField(this, 35, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addType = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 35, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearTypeList = function() { - return this.setTypeList([]); -}; - - -/** - * optional string format = 36; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 36, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 36, value); -}; - - -/** - * repeated string enum = 46; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getEnumList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 46)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setEnumList = function(value) { - return jspb.Message.setField(this, 46, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addEnum = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 46, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearEnumList = function() { - return this.setEnumList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Tag; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 3; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 3)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject = function(includeInstance, msg) { - var f, obj = { - securityMap: (f = msg.getSecurityMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter); - } -}; - - -/** - * map security = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.getSecurityMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.clearSecurityMap = function() { - this.getSecurityMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject = function(includeInstance, msg) { - var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_in: jspb.Message.getFieldWithDefault(msg, 4, 0), - flow: jspb.Message.getFieldWithDefault(msg, 5, 0), - authorizationUrl: jspb.Message.getFieldWithDefault(msg, 6, ""), - tokenUrl: jspb.Message.getFieldWithDefault(msg, 7, ""), - scopes: (f = msg.getScopes()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (reader.readEnum()); - msg.setIn(value); - break; - case 5: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (reader.readEnum()); - msg.setFlow(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthorizationUrl(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setTokenUrl(value); - break; - case 8: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader); - msg.setScopes(value); - break; - case 9: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIn(); - if (f !== 0.0) { - writer.writeEnum( - 4, - f - ); - } - f = message.getFlow(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } - f = message.getAuthorizationUrl(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getTokenUrl(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getScopes(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type = { - TYPE_INVALID: 0, - TYPE_BASIC: 1, - TYPE_API_KEY: 2, - TYPE_OAUTH2: 3 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In = { - IN_INVALID: 0, - IN_QUERY: 1, - IN_HEADER: 2 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow = { - FLOW_INVALID: 0, - FLOW_IMPLICIT: 1, - FLOW_PASSWORD: 2, - FLOW_APPLICATION: 3, - FLOW_ACCESS_CODE: 4 -}; - -/** - * optional Type type = 1; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getType = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional In in = 4; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getIn = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setIn = function(value) { - return jspb.Message.setProto3EnumField(this, 4, value); -}; - - -/** - * optional Flow flow = 5; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getFlow = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setFlow = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); -}; - - -/** - * optional string authorization_url = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getAuthorizationUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setAuthorizationUrl = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string token_url = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getTokenUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setTokenUrl = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional Scopes scopes = 8; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getScopes = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, 8)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setScopes = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearScopes = function() { - return this.setScopes(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.hasScopes = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * map extensions = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject = function(includeInstance, msg) { - var f, obj = { - securityRequirementMap: (f = msg.getSecurityRequirementMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityRequirementMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityRequirementMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject = function(includeInstance, msg) { - var f, obj = { - scopeList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addScope(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } -}; - - -/** - * repeated string scope = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.getScopeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.setScopeList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.addScope = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.clearScopeList = function() { - return this.setScopeList([]); -}; - - -/** - * map security_requirement = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.getSecurityRequirementMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.clearSecurityRequirementMap = function() { - this.getSecurityRequirementMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject = function(includeInstance, msg) { - var f, obj = { - scopeMap: (f = msg.getScopeMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getScopeMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map scope = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.getScopeMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.clearScopeMap = function() { - this.getScopeMap().clear(); - return this;}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme = { - UNKNOWN: 0, - HTTP: 1, - HTTPS: 2, - WS: 3, - WSS: 4 -}; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/projects/src/service/runner.ts b/mods/projects/src/service/runner.ts deleted file mode 100644 index b4def0d3d..000000000 --- a/mods/projects/src/service/runner.ts +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// eslint-disable-next-line @typescript-eslint/no-var-requires -require("@fonoster/common").Tracer.init("projects-service"); -import ProjectsServer from "./projects"; -import { ProjectsService } from "./protos/projects_grpc_pb"; -import { AuthMiddleware, limiterMiddleware } from "@fonoster/auth"; -import { getSalt } from "@fonoster/certs"; -import { runServices } from "@fonoster/common"; - -const services = [ - { - name: "projects", - version: "v1beta1", - service: ProjectsService, - server: new ProjectsServer() - } -]; - -const middlewares = [ - { - name: "authenticator", - middlewareObj: new AuthMiddleware(getSalt()).middleware - }, - { - name: "limiter", - middlewareObj: limiterMiddleware - } -]; - -runServices(services, middlewares); diff --git a/mods/projects/test/projects.unit.test.ts b/mods/projects/test/projects.unit.test.ts deleted file mode 100644 index 5aaebb6a9..000000000 --- a/mods/projects/test/projects.unit.test.ts +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import Projects, { ProjectsPB } from "../src/client/projects"; -import chaiAsPromised from "chai-as-promised"; -import { APIClient } from "@fonoster/common"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/projects", () => { - const projectObj = new ProjectsPB.Project(); - projectObj.setRef("Nx05y-ldZa"); - projectObj.setName("John Doe"); - projectObj.setUserRef("Ux0ey-cdZa"); - projectObj.setAccessKeyId("Nx05y-ldZa"); - projectObj.setAccessKeySecret("..."); - projectObj.setAllowExperiments(false); - projectObj.setCreateTime("Nx05y-ldZa"); - projectObj.setUpdateTime("Nx05y-ldZa"); - - afterEach(() => sandbox.restore()); - - it("should create a project", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - createProject: () => { - return { - sendMessage: () => Promise.resolve(projectObj) - }; - } - }); - - const req = { - name: projectObj.getName(), - allowExperiments: false - }; - - const projectsAPI = new Projects(); - const result = await projectsAPI.createProject(req); - - expect(result).to.have.property("ref").to.be.equal(projectObj.getRef()); - expect(result).to.have.property("name").to.be.equal(projectObj.getName()); - expect(result) - .to.have.property("userRef") - .to.be.equal(projectObj.getUserRef()); - expect(result) - .to.have.property("accessKeyId") - .to.be.equal(projectObj.getAccessKeyId()); - expect(result) - .to.have.property("accessKeySecret") - .to.be.equal(projectObj.getAccessKeySecret()); - expect(result) - .to.have.property("allowExperiments") - .to.be.equal(projectObj.getAllowExperiments()); - expect(result).to.have.property("createTime").not.to.be.null; - expect(result).to.have.property("updateTime").not.to.be.null; - expect(serviceStub).to.have.been.calledTwice; - }); - - it("should get a project", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - getProject: () => { - return { - sendMessage: () => Promise.resolve(projectObj) - }; - } - }); - - const ref = "Nx05y-ldZa"; - const projectsAPI = new Projects(); - const result = await projectsAPI.getProject(ref); - - expect(result).to.have.property("ref").to.be.equal(projectObj.getRef()); - expect(result).to.have.property("name").to.be.equal(projectObj.getName()); - expect(result) - .to.have.property("userRef") - .to.be.equal(projectObj.getUserRef()); - expect(result) - .to.have.property("accessKeyId") - .to.be.equal(projectObj.getAccessKeyId()); - expect(result) - .to.have.property("accessKeySecret") - .to.be.equal(projectObj.getAccessKeySecret()); - expect(result) - .to.have.property("allowExperiments") - .to.be.equal(projectObj.getAllowExperiments()); - expect(result).to.have.property("createTime").not.to.be.null; - expect(result).to.have.property("updateTime").not.to.be.null; - expect(serviceStub).to.have.been.calledTwice; - }); - - it("should delete a project", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - deleteProject: () => { - return { - sendMessage: () => Promise.resolve({ ref: "Nx05y-ldZa" }) - }; - } - }); - - const projectsAPI = new Projects(); - const res = await projectsAPI.deleteProject(projectObj.getRef()); - - expect(serviceStub).to.have.been.calledTwice; - expect(res).to.have.property("ref").to.be.equal(projectObj.getRef()); - }); - - it("should list projects", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - listProjects: () => { - return { - sendMessage: () => - Promise.resolve({ - getProjectsList: () => [projectObj] - }) - }; - } - }); - - const projectsAPI = new Projects(); - const result = await projectsAPI.listProjects({}); - - expect(serviceStub).to.be.calledTwice; - expect(result.projects[0]) - .to.have.property("ref") - .to.be.equal(projectObj.getRef()); - expect(result.projects[0]) - .to.have.property("name") - .to.be.equal(projectObj.getName()); - expect(result.projects[0]) - .to.have.property("userRef") - .to.be.equal(projectObj.getUserRef()); - expect(result.projects[0]) - .to.have.property("accessKeyId") - .to.be.equal(projectObj.getAccessKeyId()); - expect(result.projects[0]) - .to.have.property("accessKeySecret") - .to.be.equal(projectObj.getAccessKeySecret()); - expect(result.projects[0]) - .to.have.property("allowExperiments") - .to.be.equal(projectObj.getAllowExperiments()); - expect(result.projects[0]) - .to.have.property("createTime") - .to.be.equal(projectObj.getCreateTime()); - expect(result.projects[0]) - .to.have.property("updateTime") - .to.be.equal(projectObj.getUpdateTime()); - }); - - it("should update a project", async () => { - const request = { - ref: projectObj.getRef(), - name: "p1", - allowExperiments: projectObj.getAllowExperiments() - }; - - sandbox.stub(APIClient.prototype, "init").returns(); - const updateProjectStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - updateProject: () => { - return { - sendMessage: () => - Promise.resolve({ getRef: () => projectObj.getRef() }) - }; - } - }); - - const projectsAPI = new Projects(); - const result = await projectsAPI.updateProject(request); - expect(result).to.have.property("ref").to.be.equal(projectObj.getRef()); - expect(updateProjectStub).to.be.calledTwice; - }); - - it("should renew a project's token", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const loginProjectStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - renewAccessKeySecret: () => { - return { - sendMessage: () => - Promise.resolve({ - getAccessKeyId: () => projectObj.getAccessKeyId(), - getAccessKeySecret: () => "..." - }) - }; - } - }); - - const request = { - ref: projectObj.getRef() - }; - - const projectsAPI = new Projects(); - const result = await projectsAPI.renewAccessKeySecret(request); - expect(result).to.have.property("accessKeySecret").to.be.equal("..."); - expect(loginProjectStub).to.be.calledTwice; - }); -}); diff --git a/mods/projects/tsconfig.json b/mods/projects/tsconfig.json deleted file mode 100644 index 0fddb065f..000000000 --- a/mods/projects/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../common" }, - { "path": "../core" }, - { "path": "../logger" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/providers/.dockerignore b/mods/providers/.dockerignore deleted file mode 100644 index b512c09d4..000000000 --- a/mods/providers/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/mods/providers/.lerna-changed-buster-192 b/mods/providers/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/providers/.npmignore b/mods/providers/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/providers/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/providers/Dockerfile b/mods/providers/Dockerfile deleted file mode 100644 index 4988b8c73..000000000 --- a/mods/providers/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs \ - && npm install -g fonoster-*.tgz \ - && apk del npm git - -USER fonoster - -CMD ["run_providers"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_providers" ] \ No newline at end of file diff --git a/mods/providers/package-lock.json b/mods/providers/package-lock.json deleted file mode 100644 index 636c69dd9..000000000 --- a/mods/providers/package-lock.json +++ /dev/null @@ -1,697 +0,0 @@ -{ - "name": "@fonoster/providers", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/providers", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-host": "^1.0.1" - }, - "bin": { - "healthcheck_providers": "dist/service/healthcheck.js", - "run_providers": "dist/service/runner.js" - }, - "devDependencies": {} - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/common": "^0.3.18", - "@fonoster/errors": "^0.3.18", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - }, - "devDependencies": { - "minipass": "3.3.4" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "grpc-ts-health-check": "^2.0.6", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.3.18", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.18", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.4.4.tgz", - "integrity": "sha512-a6222b7Dl6fIlMgzVl7e+NiRoLiZFbpcwvBH2Oli56Bn7W4/3Ld+86hK4ffPn5rx2DlDidmIcvIJiOQXyhv9gA==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.6.tgz", - "integrity": "sha512-cdMaPZ8AiFz6ua6PUbP+LKbhwJbFXnrQ/mlnKGUyzDUZ3wp7vPLksnmLCBX6SHgSmjX7CbNVNLFYD5GmmjO4GQ==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.1.1" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/node": { - "version": "16.11.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.7.tgz", - "integrity": "sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==" - }, - "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/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/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/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/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/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/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/google-protobuf": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.1.tgz", - "integrity": "sha512-Isv1RlNC+IzZzilcxnlVSf+JvuhxmY7DaxYCBy+zPS9XVuJRtlTTIXR9hnZ1YL1MMusJn/7eSy2swCzZIomQSg==" - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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-valid-host": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-valid-host/-/is-valid-host-1.0.1.tgz", - "integrity": "sha512-LPjR7ypIMG/MLCh/dkz4lqQw4KZWFD2AeHNSbY4Y9pGp2rnWMMWqBY/iJLMwoVbOIG2r2y7L/wS9pHhr0gYRrg==" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.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/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/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/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/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" - } - } - }, - "dependencies": { - "@grpc/grpc-js": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.4.4.tgz", - "integrity": "sha512-a6222b7Dl6fIlMgzVl7e+NiRoLiZFbpcwvBH2Oli56Bn7W4/3Ld+86hK4ffPn5rx2DlDidmIcvIJiOQXyhv9gA==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.6.tgz", - "integrity": "sha512-cdMaPZ8AiFz6ua6PUbP+LKbhwJbFXnrQ/mlnKGUyzDUZ3wp7vPLksnmLCBX6SHgSmjX7CbNVNLFYD5GmmjO4GQ==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.1.1" - } - }, - "@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/node": { - "version": "16.11.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.7.tgz", - "integrity": "sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==" - }, - "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" - } - }, - "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" - } - }, - "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==" - }, - "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==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "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==" - }, - "google-protobuf": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.1.tgz", - "integrity": "sha512-Isv1RlNC+IzZzilcxnlVSf+JvuhxmY7DaxYCBy+zPS9XVuJRtlTTIXR9hnZ1YL1MMusJn/7eSy2swCzZIomQSg==" - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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-valid-host": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-valid-host/-/is-valid-host-1.0.1.tgz", - "integrity": "sha512-LPjR7ypIMG/MLCh/dkz4lqQw4KZWFD2AeHNSbY4Y9pGp2rnWMMWqBY/iJLMwoVbOIG2r2y7L/wS9pHhr0gYRrg==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "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" - } - }, - "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==" - } - } -} diff --git a/mods/providers/package.json b/mods/providers/package.json deleted file mode 100644 index af24c7e1c..000000000 --- a/mods/providers/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "@fonoster/providers", - "version": "0.3.22", - "description": "VoIP Providers", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/client/providers", - "types": "dist/client/providers", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "postbuild": "cp -a ./src/service/protos/ ./dist/service/protos", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/srv_runner" - }, - "bin": { - "run_providers": "dist/service/runner.js", - "healthcheck_providers": "dist/service/healthcheck.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/errors": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-host": "^1.0.1" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/providers/src/client/providers.ts b/mods/providers/src/client/providers.ts deleted file mode 100644 index 2aeaa1c25..000000000 --- a/mods/providers/src/client/providers.ts +++ /dev/null @@ -1,295 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { - CreateProviderRequest, - CreateProviderResponse, - UpdateProviderRequest, - UpdateProviderResponse, - ListProvidersRequest, - ListProvidersResponse, - GetProviderResponse, - DeleteProviderResponse, - IProvidersClient, - Provider -} from "./types"; -import { APIClient, ClientOptions } from "@fonoster/common"; -import { ProvidersClient } from "../service/protos/providers_grpc_pb"; -import ProvidersPB from "../service/protos/providers_pb"; -import CommonPB from "../service/protos/common_pb"; -import { promisifyAll } from "grpc-promise"; - -/** - * @classdesc Use Fonoster Providers, a capability of Fonoster SIP Proxy subsystem, - * to create, update, get and delete providers. Fonoster Providers requires of a - * running Fonosterdeployment. - * - * @extends APIClient - * @example - * - * const Fonoster = require("@fonoster/sdk"); - * const providers = new Fonoster.Providers(); - * - * const request = { - * name: "SIP Provider", - * username: "trunk001", - * secret: "secretkey", - * host: "sip.provider.net" - * }; - * - * providers.createProvider(request) - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)); // an error occurred - */ -export default class Providers extends APIClient implements IProvidersClient { - /** - * Constructs a new Providers object. - * - * @param {ClientOptions} options - Options to indicate the objects endpoint - * @see module:core:APIClient - */ - constructor(options?: ClientOptions) { - super(ProvidersClient, options); - super.init(); - promisifyAll(super.getService(), { metadata: super.getMeta() }); - } - - /** - * Creates a new Provider on the SIP Proxy subsystem. - * - * @param {Object} request - Request for the provision of a new Provider - * @param {string} request.name - Friendly name to the Provider - * @param {string} request.username - Username for the trunk. No required for - * static IP authentication - * @param {string} request.secret - Password for the trunk. No required for - * static IP authentication - * @param {string} request.host - Hostname or IP of the Provider - * @param {string} request.transport - The transport for the Provider. - *Fonoster will use TCP if none is provided - * @param {string} request.expires - Expiration time for the registration. - * @param {boolean} request.register - Indicates if the Provider should be registered - *Fonoster will use 600 if non is provided - * @return {Promise} - * @example - * - * const request = { - * name: "Provider Name", - * username: "trunk001", - * secret: "secretkey", - * host: "sip.provider.net", - * register: true - * }; - * - * providers.createProvider(request) - * .then(result => { - * console.log(result) // returns the Provider object - * }).catch(e => console.error(e)); // an error occurred - */ - async createProvider( - request: CreateProviderRequest - ): Promise { - const req = new ProvidersPB.CreateProviderRequest(); - req.setName(request.name); - req.setUsername(request.username); - req.setSecret(request.secret); - req.setHost(request.host); - req.setTransport(request.transport || "tcp"); - req.setExpires(request.expires || 600); - req.setRegister(Boolean(request.register)); - - const res = await super.getService().createProvider().sendMessage(req); - - return { - ref: res.getRef(), - name: res.getName(), - username: res.getUsername(), - secret: res.getSecret(), - host: res.getHost(), - transport: res.getTransport(), - expires: res.getExpires(), - register: res.getRegister(), - createTime: res.getCreateTime(), - updateTime: res.getUpdateTime() - }; - } - - /** - * Retrieves a Provider by its reference. - * - * @param {string} ref - Reference to Provider - * @return {Promise} The provider - * @throws if ref is null or Provider does not exist - * @example - * - * providers.getProvider(ref) - * .then(result => { - * console.log(result) // returns the Provider object - * }).catch(e => console.error(e)); // an error occurred - */ - async getProvider(ref: string): Promise { - const request = new ProvidersPB.GetProviderRequest(); - request.setRef(ref); - - const res = await super.getService().getProvider().sendMessage(request); - - return { - ref: res.getRef(), - name: res.getName(), - username: res.getUsername(), - secret: res.getSecret(), - host: res.getHost(), - transport: res.getTransport(), - expires: res.getExpires(), - register: res.getRegister(), - createTime: res.getCreateTime(), - updateTime: res.getUpdateTime() - }; - } - - /** - * Update a Provider at the SIP Proxy subsystem. - * - * @param {Object} request - Request to update a Provider - * @param {string} request.ref - Providers reference - * @param {string} request.name - Friendly name to the Provider - * @param {string} request.username - Username for the trunk. No required for - * static IP authentication - * @param {string} request.secret - Password for the trunk. No required for - * static IP authentication - * @param {string} request.host - Hostname or IP of the Provider - * @param {string} request.transport - The transport for the Provider. - *Fonoster will use TCP if none is provided - * @param {string} request.expires - Expiration time for the registration. - * @param {boolean} request.register - Indicates if the Provider should be registered - *Fonoster will use 600 if non is provided - * @return {Promise} - * @example - * - * const request = { - * ref: "hYTHYCYv_U", - * host: "sip.provider.net" - * }; - * - * providers.updateProvider(request) - * .then(result => { - * console.log(result) // returns the Provider from the DB - * }).catch(e => console.error(e)); // an error occurred - */ - async updateProvider( - request: UpdateProviderRequest - ): Promise { - const req = new ProvidersPB.UpdateProviderRequest(); - req.setRef(request.ref); - if (request.name) req.setName(request.name); - if (request.username) req.setUsername(request.username); - if (request.secret) req.setSecret(request.secret); - if (request.host) req.setHost(request.host); - if (request.transport) req.setTransport(request.transport); - if (request.expires) req.setExpires(request.expires); - if (typeof request.register === 'boolean') req.setRegister(request.register); - - const res = await super.getService().updateProvider().sendMessage(req); - - return { - ref: res.getRef() - }; - } - - /** - * List the Providers registered in Fonoster SIP Proxy subsystem. - * - * @param {Object} request - * @param {provider} request.pageSize - Provider of element per page - * (defaults to 20) - * @param {string} request.pageToken - The next_page_token value returned from - * a previous List request, if any - * @return {Promise} List of Providers - * @example - * - * const request = { - * pageSize: 20, - * pageToken: 2 - * }; - * - * providers.listProviders(request) - * .then(() => { - * console.log(result) // returns a ListProvidersResponse object - * }).catch(e => console.error(e)); // an error occurred - */ - async listProviders( - request: ListProvidersRequest - ): Promise { - const r = new ProvidersPB.ListProvidersRequest(); - r.setPageSize(request.pageSize); - r.setPageToken(request.pageToken); - r.setView(request.view); - - const paginatedList = await this.getService() - .listProviders() - .sendMessage(r); - - return { - nextPageToken: paginatedList.getNextPageToken(), - providers: paginatedList - .getProvidersList() - .map((provider: ProvidersPB.Provider) => { - return { - ref: provider.getRef(), - name: provider.getName(), - username: provider.getUsername(), - secret: provider.getSecret(), - host: provider.getHost(), - transport: provider.getTransport(), - expires: provider.getExpires(), - register: provider.getRegister(), - createTime: provider.getCreateTime(), - updateTime: provider.getUpdateTime() - }; - }) - }; - } - - /** - * Deletes a Provider from SIP Proxy subsystem. Notice, that in order to delete - * a Provider, you must first delete all it"s Agents. - * - * @param {string} ref - Reference to the Provider - * @example - * - * const ref = "hYTHYCYv_U"; - * - * providers.deleteProvider(ref) - * .then(() => { - * console.log("done") // returns an empty object - * }).catch(e => console.error(e)); // an error occurred - */ - async deleteProvider(ref: string): Promise { - const req = new ProvidersPB.DeleteProviderRequest(); - req.setRef(ref); - await super.getService().deleteProvider().sendMessage(req); - return { ref }; - } -} - -export { Provider, ProvidersPB, CommonPB, IProvidersClient }; - -// WARNING: Workaround to support commonjs clients -module.exports = Providers; -module.exports.ProvidersPB = ProvidersPB; -module.exports.CommonPB = CommonPB; diff --git a/mods/providers/src/client/types.ts b/mods/providers/src/client/types.ts deleted file mode 100644 index 30fd98771..000000000 --- a/mods/providers/src/client/types.ts +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface IProvidersClient { - createProvider( - request: CreateProviderRequest - ): Promise; - getProvider(ref: string): Promise; - updateProvider( - request: UpdateProviderRequest - ): Promise; - listProviders(request: ListProvidersRequest): Promise; - deleteProvider(ref: string): Promise; -} - -export interface Provider { - ref: string; - name: string; - username: string; - secret: string; - host: string; - transport: string; - expires: number; - createTime?: string; - updateTime?: string; - register?: boolean; -} - -export interface CreateProviderRequest { - ref?: string; - name: string; - username: string; - secret: string; - host: string; - transport: string; - expires: number; - register?: boolean; -} - -export interface CreateProviderResponse { - ref: string; - name: string; - username: string; - secret: string; - host: string; - transport: string; - expires: number; - createTime: string; - updateTime: string; - register?: boolean; -} - -export interface GetProviderResponse { - ref: string; - name: string; - username: string; - secret: string; - host: string; - transport: string; - expires: number; - createTime: string; - updateTime: string; - register?: boolean; -} - -export interface UpdateProviderRequest { - ref: string; - name?: string; - username?: string; - secret?: string; - host?: string; - transport?: string; - expires?: number; - register?: boolean; -} - -export interface UpdateProviderResponse { - ref: string; -} - -export interface ListProvidersRequest { - pageSize?: number; - pageToken?: string; - view?: number; -} - -export interface ListProvidersResponse { - nextPageToken: string; - providers: Provider[]; -} - -export interface DeleteProviderResponse { - ref: string; -} diff --git a/mods/providers/src/protos/providers.proto b/mods/providers/src/protos/providers.proto deleted file mode 100644 index 049733fb5..000000000 --- a/mods/providers/src/protos/providers.proto +++ /dev/null @@ -1,122 +0,0 @@ -/** - * MIT License - * Copyright (c) 2021 Fonoster Inc - * - * The Providers proto contains the artificats for the administration - * of Providers. - */ -syntax = "proto3"; - -package fonoster.providers.v1beta1; - -option go_package = "github.com/fonoster/fonoster/mods/providers/fonoster/services/protos/providers"; - -import "protoc-gen-openapiv2/options/annotations.proto"; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "common.proto"; - -service Providers { - // Lists Providers from the SIP Proxy subsystem - rpc ListProviders (ListProvidersRequest) returns (ListProvidersResponse) { - option (google.api.http) = { get: "/v1beta1/providers" }; - }; - // Creates a new Provider resource. - rpc CreateProvider (CreateProviderRequest) returns (Provider) { - option (google.api.http) = { - post: "/v1beta1/providers" - body: "*" - }; - }; - // Gets Provider using its reference - rpc GetProvider (GetProviderRequest) returns (Provider) { - option (google.api.http) = { get: "/v1beta1/providers/{ref}" }; - }; - // Change or update fields in a resource - rpc UpdateProvider (UpdateProviderRequest) returns (Provider) { - option (google.api.http) = { - put: "/v1beta1/providers/{ref}" - body: "*" - }; - }; - // Hard delete of a Provider resource - rpc DeleteProvider (DeleteProviderRequest) returns (fonoster.common.v1beta1.Empty) { - option (google.api.http) = { - delete: "/v1beta1/providers/{ref}" - }; - }; -} - -message ListProvidersRequest { - // The maximum number of items in the list - int32 page_size = 1; - - // The next_page_token value returned from the previous request, if any - string page_token = 2; - - // Level of detail of the individual entities (reserved) - fonoster.common.v1beta1.View view = 3; -} - -message ListProvidersResponse { - // List of Providers - repeated Provider providers = 1; - - // Token to retrieve the next page of results, or empty if there are no more results in the list - string next_page_token = 2; -} - -message CreateProviderRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"name\": \"VoIP.ms\", \"username\": \"200122\", \"secret\": \"TerD$$sd01\", \"host\": \"newyork1.voip.ms\", \"transport\": \"tcp\", \"expires\": 300, \"register\": true}" - }; - string name = 2 [(google.api.field_behavior) = REQUIRED]; - string username = 3 [(google.api.field_behavior) = REQUIRED]; - string secret = 4 [(google.api.field_behavior) = REQUIRED]; - string host = 5 [(google.api.field_behavior) = REQUIRED]; - string transport = 6 [(google.api.field_behavior) = REQUIRED]; - int32 expires = 7; - bool register = 8; -} - -message UpdateProviderRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"username\": \"200122\", \"secret\": \"TerD$$sd01\"}" - }; - // Provider's reference - string ref = 1; - string name = 2 [(google.api.field_behavior) = REQUIRED]; - string username = 3 [(google.api.field_behavior) = REQUIRED]; - string secret = 4 [(google.api.field_behavior) = REQUIRED]; - string host = 5 [(google.api.field_behavior) = REQUIRED]; - string transport = 6 [(google.api.field_behavior) = REQUIRED]; - int32 expires = 7; - bool register = 8; -} - -message GetProviderRequest { - // Provider's reference - string ref = 1; -} - -message DeleteProviderRequest { - // Provider's reference - string ref = 1; -} - -message Provider { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"ref\": \"ghnH1z0tzd\", \"name\": \"VoIP.ms\", \"username\": \"200122\", \"secret\": \"TerD$$sd01\", \"host\": \"newyork1.voip.ms\", \"transport\": \"tcp\", \"expires\": 300, \"createTime\": \"2021-10-05T13:23:07.221Z\", \"updateTime\": \"2021-10-05T13:23:07.221Z\", \"register\": true}" - }; - // Provider's reference - string ref = 1; - string name = 2 [(google.api.field_behavior) = REQUIRED]; - string username = 3 [(google.api.field_behavior) = REQUIRED]; - string secret = 4 [(google.api.field_behavior) = REQUIRED]; - string host = 5 [(google.api.field_behavior) = REQUIRED]; - string transport = 6 [(google.api.field_behavior) = REQUIRED]; - int32 expires = 7; - string create_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - string update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - bool register = 10; -} diff --git a/mods/providers/src/service/assertions.ts b/mods/providers/src/service/assertions.ts deleted file mode 100644 index 8e44f98d3..000000000 --- a/mods/providers/src/service/assertions.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { FonosterInvalidArgument } from "@fonoster/errors"; -import isValidHost from "is-valid-host"; - -export const assertIsValidHost = (host: string) => { - if (!isValidHost(host)) { - throw new FonosterInvalidArgument(`invalid host: ${host}`); - } -}; diff --git a/mods/providers/src/service/decoder.ts b/mods/providers/src/service/decoder.ts deleted file mode 100644 index 6a6a45fc6..000000000 --- a/mods/providers/src/service/decoder.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Provider } from "./protos/providers_pb"; - -export default function (jsonObj: any) { - const provider = new Provider(); - const spec = jsonObj?.spec; - - provider.setRef(jsonObj.metadata.ref); - provider.setName(jsonObj.metadata.name); - provider.setCreateTime(jsonObj.metadata.createdOn); - provider.setUpdateTime(jsonObj.metadata.modifiedOn); - provider.setHost(spec?.host); - provider.setTransport(spec?.transport); - provider.setExpires(spec?.expires); - provider.setRegister(spec?.sendRegister); - - if (spec.credentials) { - provider.setUsername(spec.credentials.username); - provider.setSecret(spec.credentials.secret); - } - - return provider; -} diff --git a/mods/providers/src/service/healthcheck.ts b/mods/providers/src/service/healthcheck.ts deleted file mode 100644 index a8988fbb7..000000000 --- a/mods/providers/src/service/healthcheck.ts +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonos - * - * This file is part of Project Fonos - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -healthcheck(); diff --git a/mods/providers/src/service/protos/common_grpc_pb.js b/mods/providers/src/service/protos/common_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/providers/src/service/protos/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/providers/src/service/protos/common_pb.d.ts b/mods/providers/src/service/protos/common_pb.d.ts deleted file mode 100644 index f8b5fb810..000000000 --- a/mods/providers/src/service/protos/common_pb.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// package: fonoster.common.v1beta1 -// file: common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class Empty extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Empty.AsObject; - static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Empty; - static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; -} - -export namespace Empty { - export type AsObject = { - } -} - -export class ErrorResponse extends jspb.Message { - getStatus(): number; - setStatus(value: number): ErrorResponse; - getMessage(): string; - setMessage(value: string): ErrorResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ErrorResponse.AsObject; - static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ErrorResponse; - static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse; -} - -export namespace ErrorResponse { - export type AsObject = { - status: number, - message: string, - } -} - -export enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2, -} diff --git a/mods/providers/src/service/protos/common_pb.js b/mods/providers/src/service/protos/common_pb.js deleted file mode 100644 index b7f99c7ea..000000000 --- a/mods/providers/src/service/protos/common_pb.js +++ /dev/null @@ -1,335 +0,0 @@ -// source: common.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -goog.exportSymbol('proto.fonoster.common.v1beta1.Empty', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.ErrorResponse', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.View', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.Empty = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.Empty, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.Empty.displayName = 'proto.fonoster.common.v1beta1.Empty'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.ErrorResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.ErrorResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.ErrorResponse.displayName = 'proto.fonoster.common.v1beta1.ErrorResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.Empty.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.Empty.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.Empty} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.Empty; - return proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.Empty} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.Empty.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.Empty} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.ErrorResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.toObject = function(includeInstance, msg) { - var f, obj = { - status: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.ErrorResponse; - return proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setStatus(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getStatus(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional int32 status = 1; - * @return {number} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getStatus = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setStatus = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * @enum {number} - */ -proto.fonoster.common.v1beta1.View = { - BASIC: 0, - STANDARD: 1, - FULL: 2 -}; - -goog.object.extend(exports, proto.fonoster.common.v1beta1); diff --git a/mods/providers/src/service/protos/google/api/annotations_grpc_pb.js b/mods/providers/src/service/protos/google/api/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/providers/src/service/protos/google/api/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/providers/src/service/protos/google/api/annotations_pb.d.ts b/mods/providers/src/service/protos/google/api/annotations_pb.d.ts deleted file mode 100644 index 06072f3bd..000000000 --- a/mods/providers/src/service/protos/google/api/annotations_pb.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// package: google.api -// file: google/api/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_api_http_pb from "../../google/api/http_pb"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const http: jspb.ExtensionFieldInfo; diff --git a/mods/providers/src/service/protos/google/api/annotations_pb.js b/mods/providers/src/service/protos/google/api/annotations_pb.js deleted file mode 100644 index 99e4c1824..000000000 --- a/mods/providers/src/service/protos/google/api/annotations_pb.js +++ /dev/null @@ -1,48 +0,0 @@ -// source: google/api/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_http_pb = require('../../google/api/http_pb.js'); -goog.object.extend(proto, google_api_http_pb); -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.http', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `http`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.google.api.http = new jspb.ExtensionFieldInfo( - 72295728, - {http: 0}, - google_api_http_pb.HttpRule, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - google_api_http_pb.HttpRule.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[72295728] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.http, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - google_api_http_pb.HttpRule.serializeBinaryToWriter, - google_api_http_pb.HttpRule.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[72295728] = proto.google.api.http; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/providers/src/service/protos/google/api/field_behavior_grpc_pb.js b/mods/providers/src/service/protos/google/api/field_behavior_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/providers/src/service/protos/google/api/field_behavior_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/providers/src/service/protos/google/api/field_behavior_pb.d.ts b/mods/providers/src/service/protos/google/api/field_behavior_pb.d.ts deleted file mode 100644 index 9b853705f..000000000 --- a/mods/providers/src/service/protos/google/api/field_behavior_pb.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -// package: google.api -// file: google/api/field_behavior.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const fieldBehavior: jspb.ExtensionFieldInfo; - -export enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, -} diff --git a/mods/providers/src/service/protos/google/api/field_behavior_pb.js b/mods/providers/src/service/protos/google/api/field_behavior_pb.js deleted file mode 100644 index 44160cc41..000000000 --- a/mods/providers/src/service/protos/google/api/field_behavior_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// source: google/api/field_behavior.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.FieldBehavior', null, global); -goog.exportSymbol('proto.google.api.fieldBehaviorList', null, global); -/** - * @enum {number} - */ -proto.google.api.FieldBehavior = { - FIELD_BEHAVIOR_UNSPECIFIED: 0, - OPTIONAL: 1, - REQUIRED: 2, - OUTPUT_ONLY: 3, - INPUT_ONLY: 4, - IMMUTABLE: 5, - UNORDERED_LIST: 6, - NON_EMPTY_DEFAULT: 7 -}; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `fieldBehaviorList`. - * @type {!jspb.ExtensionFieldInfo>} - */ -proto.google.api.fieldBehaviorList = new jspb.ExtensionFieldInfo( - 1052, - {fieldBehaviorList: 0}, - null, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - null), - 1); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1052] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.fieldBehaviorList, - jspb.BinaryReader.prototype.readPackedEnum, - jspb.BinaryWriter.prototype.writePackedEnum, - undefined, - undefined, - true); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1052] = proto.google.api.fieldBehaviorList; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/providers/src/service/protos/google/api/http_grpc_pb.js b/mods/providers/src/service/protos/google/api/http_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/providers/src/service/protos/google/api/http_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/providers/src/service/protos/google/api/http_pb.d.ts b/mods/providers/src/service/protos/google/api/http_pb.d.ts deleted file mode 100644 index 02c3b1ece..000000000 --- a/mods/providers/src/service/protos/google/api/http_pb.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -// package: google.api -// file: google/api/http.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Http extends jspb.Message { - clearRulesList(): void; - getRulesList(): Array; - setRulesList(value: Array): Http; - addRules(value?: HttpRule, index?: number): HttpRule; - getFullyDecodeReservedExpansion(): boolean; - setFullyDecodeReservedExpansion(value: boolean): Http; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Http.AsObject; - static toObject(includeInstance: boolean, msg: Http): Http.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Http; - static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http; -} - -export namespace Http { - export type AsObject = { - rulesList: Array, - fullyDecodeReservedExpansion: boolean, - } -} - -export class HttpRule extends jspb.Message { - getSelector(): string; - setSelector(value: string): HttpRule; - - hasGet(): boolean; - clearGet(): void; - getGet(): string; - setGet(value: string): HttpRule; - - hasPut(): boolean; - clearPut(): void; - getPut(): string; - setPut(value: string): HttpRule; - - hasPost(): boolean; - clearPost(): void; - getPost(): string; - setPost(value: string): HttpRule; - - hasDelete(): boolean; - clearDelete(): void; - getDelete(): string; - setDelete(value: string): HttpRule; - - hasPatch(): boolean; - clearPatch(): void; - getPatch(): string; - setPatch(value: string): HttpRule; - - hasCustom(): boolean; - clearCustom(): void; - getCustom(): CustomHttpPattern | undefined; - setCustom(value?: CustomHttpPattern): HttpRule; - getBody(): string; - setBody(value: string): HttpRule; - getResponseBody(): string; - setResponseBody(value: string): HttpRule; - clearAdditionalBindingsList(): void; - getAdditionalBindingsList(): Array; - setAdditionalBindingsList(value: Array): HttpRule; - addAdditionalBindings(value?: HttpRule, index?: number): HttpRule; - - getPatternCase(): HttpRule.PatternCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpRule.AsObject; - static toObject(includeInstance: boolean, msg: HttpRule): HttpRule.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpRule, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpRule; - static deserializeBinaryFromReader(message: HttpRule, reader: jspb.BinaryReader): HttpRule; -} - -export namespace HttpRule { - export type AsObject = { - selector: string, - get: string, - put: string, - post: string, - pb_delete: string, - patch: string, - custom?: CustomHttpPattern.AsObject, - body: string, - responseBody: string, - additionalBindingsList: Array, - } - - export enum PatternCase { - PATTERN_NOT_SET = 0, - GET = 2, - PUT = 3, - POST = 4, - DELETE = 5, - PATCH = 6, - CUSTOM = 8, - } - -} - -export class CustomHttpPattern extends jspb.Message { - getKind(): string; - setKind(value: string): CustomHttpPattern; - getPath(): string; - setPath(value: string): CustomHttpPattern; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CustomHttpPattern.AsObject; - static toObject(includeInstance: boolean, msg: CustomHttpPattern): CustomHttpPattern.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CustomHttpPattern, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CustomHttpPattern; - static deserializeBinaryFromReader(message: CustomHttpPattern, reader: jspb.BinaryReader): CustomHttpPattern; -} - -export namespace CustomHttpPattern { - export type AsObject = { - kind: string, - path: string, - } -} diff --git a/mods/providers/src/service/protos/google/api/http_pb.js b/mods/providers/src/service/protos/google/api/http_pb.js deleted file mode 100644 index 0359c5eec..000000000 --- a/mods/providers/src/service/protos/google/api/http_pb.js +++ /dev/null @@ -1,1006 +0,0 @@ -// source: google/api/http.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.google.api.CustomHttpPattern', null, global); -goog.exportSymbol('proto.google.api.Http', null, global); -goog.exportSymbol('proto.google.api.HttpRule', null, global); -goog.exportSymbol('proto.google.api.HttpRule.PatternCase', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.Http = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Http.repeatedFields_, null); -}; -goog.inherits(proto.google.api.Http, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.Http.displayName = 'proto.google.api.Http'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpRule = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpRule.repeatedFields_, proto.google.api.HttpRule.oneofGroups_); -}; -goog.inherits(proto.google.api.HttpRule, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpRule.displayName = 'proto.google.api.HttpRule'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.CustomHttpPattern = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.google.api.CustomHttpPattern, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.CustomHttpPattern.displayName = 'proto.google.api.CustomHttpPattern'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.Http.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.Http.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.Http.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.Http} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.toObject = function(includeInstance, msg) { - var f, obj = { - rulesList: jspb.Message.toObjectList(msg.getRulesList(), - proto.google.api.HttpRule.toObject, includeInstance), - fullyDecodeReservedExpansion: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.Http; - return proto.google.api.Http.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.Http} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addRules(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFullyDecodeReservedExpansion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.Http.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.Http.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.Http} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRulesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } - f = message.getFullyDecodeReservedExpansion(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * repeated HttpRule rules = 1; - * @return {!Array} - */ -proto.google.api.Http.prototype.getRulesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.Http} returns this -*/ -proto.google.api.Http.prototype.setRulesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.Http.prototype.addRules = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.clearRulesList = function() { - return this.setRulesList([]); -}; - - -/** - * optional bool fully_decode_reserved_expansion = 2; - * @return {boolean} - */ -proto.google.api.Http.prototype.getFullyDecodeReservedExpansion = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.setFullyDecodeReservedExpansion = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpRule.repeatedFields_ = [11]; - -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.google.api.HttpRule.oneofGroups_ = [[2,3,4,5,6,8]]; - -/** - * @enum {number} - */ -proto.google.api.HttpRule.PatternCase = { - PATTERN_NOT_SET: 0, - GET: 2, - PUT: 3, - POST: 4, - DELETE: 5, - PATCH: 6, - CUSTOM: 8 -}; - -/** - * @return {proto.google.api.HttpRule.PatternCase} - */ -proto.google.api.HttpRule.prototype.getPatternCase = function() { - return /** @type {proto.google.api.HttpRule.PatternCase} */(jspb.Message.computeOneofCase(this, proto.google.api.HttpRule.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpRule.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpRule.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpRule} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.toObject = function(includeInstance, msg) { - var f, obj = { - selector: jspb.Message.getFieldWithDefault(msg, 1, ""), - get: jspb.Message.getFieldWithDefault(msg, 2, ""), - put: jspb.Message.getFieldWithDefault(msg, 3, ""), - post: jspb.Message.getFieldWithDefault(msg, 4, ""), - pb_delete: jspb.Message.getFieldWithDefault(msg, 5, ""), - patch: jspb.Message.getFieldWithDefault(msg, 6, ""), - custom: (f = msg.getCustom()) && proto.google.api.CustomHttpPattern.toObject(includeInstance, f), - body: jspb.Message.getFieldWithDefault(msg, 7, ""), - responseBody: jspb.Message.getFieldWithDefault(msg, 12, ""), - additionalBindingsList: jspb.Message.toObjectList(msg.getAdditionalBindingsList(), - proto.google.api.HttpRule.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpRule; - return proto.google.api.HttpRule.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpRule} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSelector(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setGet(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPut(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPost(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDelete(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPatch(value); - break; - case 8: - var value = new proto.google.api.CustomHttpPattern; - reader.readMessage(value,proto.google.api.CustomHttpPattern.deserializeBinaryFromReader); - msg.setCustom(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBody(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setResponseBody(value); - break; - case 11: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addAdditionalBindings(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpRule.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpRule.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpRule} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSelector(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeString( - 3, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeString( - 4, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 5)); - if (f != null) { - writer.writeString( - 5, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 6)); - if (f != null) { - writer.writeString( - 6, - f - ); - } - f = message.getCustom(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.google.api.CustomHttpPattern.serializeBinaryToWriter - ); - } - f = message.getBody(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getResponseBody(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getAdditionalBindingsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 11, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string selector = 1; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getSelector = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setSelector = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string get = 2; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getGet = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setGet = function(value) { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearGet = function() { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasGet = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string put = 3; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPut = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPut = function(value) { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPut = function() { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPut = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional string post = 4; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPost = function(value) { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPost = function() { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPost = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string delete = 5; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getDelete = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setDelete = function(value) { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearDelete = function() { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasDelete = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string patch = 6; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPatch = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPatch = function(value) { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPatch = function() { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPatch = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional CustomHttpPattern custom = 8; - * @return {?proto.google.api.CustomHttpPattern} - */ -proto.google.api.HttpRule.prototype.getCustom = function() { - return /** @type{?proto.google.api.CustomHttpPattern} */ ( - jspb.Message.getWrapperField(this, proto.google.api.CustomHttpPattern, 8)); -}; - - -/** - * @param {?proto.google.api.CustomHttpPattern|undefined} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setCustom = function(value) { - return jspb.Message.setOneofWrapperField(this, 8, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearCustom = function() { - return this.setCustom(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasCustom = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional string body = 7; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setBody = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string response_body = 12; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getResponseBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setResponseBody = function(value) { - return jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * repeated HttpRule additional_bindings = 11; - * @return {!Array} - */ -proto.google.api.HttpRule.prototype.getAdditionalBindingsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 11)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setAdditionalBindingsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 11, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.prototype.addAdditionalBindings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearAdditionalBindingsList = function() { - return this.setAdditionalBindingsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.CustomHttpPattern.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.CustomHttpPattern.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.CustomHttpPattern} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.toObject = function(includeInstance, msg) { - var f, obj = { - kind: jspb.Message.getFieldWithDefault(msg, 1, ""), - path: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.CustomHttpPattern; - return proto.google.api.CustomHttpPattern.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.CustomHttpPattern} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKind(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.CustomHttpPattern.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.CustomHttpPattern.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.CustomHttpPattern} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKind(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string kind = 1; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getKind = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setKind = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string path = 2; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/providers/src/service/protos/google/api/httpbody_grpc_pb.js b/mods/providers/src/service/protos/google/api/httpbody_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/providers/src/service/protos/google/api/httpbody_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/providers/src/service/protos/google/api/httpbody_pb.d.ts b/mods/providers/src/service/protos/google/api/httpbody_pb.d.ts deleted file mode 100644 index 98d973068..000000000 --- a/mods/providers/src/service/protos/google/api/httpbody_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// package: google.api -// file: google/api/httpbody.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb"; - -export class HttpBody extends jspb.Message { - getContentType(): string; - setContentType(value: string): HttpBody; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): HttpBody; - clearExtensionsList(): void; - getExtensionsList(): Array; - setExtensionsList(value: Array): HttpBody; - addExtensions(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpBody.AsObject; - static toObject(includeInstance: boolean, msg: HttpBody): HttpBody.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpBody, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpBody; - static deserializeBinaryFromReader(message: HttpBody, reader: jspb.BinaryReader): HttpBody; -} - -export namespace HttpBody { - export type AsObject = { - contentType: string, - data: Uint8Array | string, - extensionsList: Array, - } -} diff --git a/mods/providers/src/service/protos/google/api/httpbody_pb.js b/mods/providers/src/service/protos/google/api/httpbody_pb.js deleted file mode 100644 index 5539f5936..000000000 --- a/mods/providers/src/service/protos/google/api/httpbody_pb.js +++ /dev/null @@ -1,286 +0,0 @@ -// source: google/api/httpbody.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js'); -goog.object.extend(proto, google_protobuf_any_pb); -goog.exportSymbol('proto.google.api.HttpBody', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpBody = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpBody.repeatedFields_, null); -}; -goog.inherits(proto.google.api.HttpBody, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpBody.displayName = 'proto.google.api.HttpBody'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpBody.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpBody.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpBody.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpBody} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.toObject = function(includeInstance, msg) { - var f, obj = { - contentType: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64(), - extensionsList: jspb.Message.toObjectList(msg.getExtensionsList(), - google_protobuf_any_pb.Any.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpBody; - return proto.google.api.HttpBody.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpBody} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setContentType(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 3: - var value = new google_protobuf_any_pb.Any; - reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader); - msg.addExtensions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpBody.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpBody} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContentType(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getExtensionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - google_protobuf_any_pb.Any.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string content_type = 1; - * @return {string} - */ -proto.google.api.HttpBody.prototype.getContentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setContentType = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.google.api.HttpBody.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.google.api.HttpBody.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setData = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * repeated google.protobuf.Any extensions = 3; - * @return {!Array} - */ -proto.google.api.HttpBody.prototype.getExtensionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpBody} returns this -*/ -proto.google.api.HttpBody.prototype.setExtensionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.google.protobuf.Any=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.Any} - */ -proto.google.api.HttpBody.prototype.addExtensions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.clearExtensionsList = function() { - return this.setExtensionsList([]); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/providers/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js b/mods/providers/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/providers/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/providers/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts b/mods/providers/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts deleted file mode 100644 index 8e3a35012..000000000 --- a/mods/providers/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; -import * as protoc_gen_openapiv2_options_openapiv2_pb from "../../protoc-gen-openapiv2/options/openapiv2_pb"; - -export const openapiv2Swagger: jspb.ExtensionFieldInfo; - -export const openapiv2Operation: jspb.ExtensionFieldInfo; - -export const openapiv2Schema: jspb.ExtensionFieldInfo; - -export const openapiv2Tag: jspb.ExtensionFieldInfo; - -export const openapiv2Field: jspb.ExtensionFieldInfo; diff --git a/mods/providers/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js b/mods/providers/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js deleted file mode 100644 index e92ccec18..000000000 --- a/mods/providers/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js +++ /dev/null @@ -1,152 +0,0 @@ -// source: protoc-gen-openapiv2/options/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -var protoc$gen$openapiv2_options_openapiv2_pb = require('../../protoc-gen-openapiv2/options/openapiv2_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_openapiv2_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Swagger`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Swagger: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.toObject), - 0); - -google_protobuf_descriptor_pb.FileOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FileOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Operation`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Operation: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Operation, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Operation.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Schema`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Schema: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Schema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Schema.toObject), - 0); - -google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MessageOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Tag`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Tag: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Tag, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Tag.toObject), - 0); - -google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.ServiceOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Field`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Field: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.toObject), - 0); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/providers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js b/mods/providers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/providers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/providers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts b/mods/providers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts deleted file mode 100644 index 3c3972ea9..000000000 --- a/mods/providers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +++ /dev/null @@ -1,685 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/openapiv2.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class Swagger extends jspb.Message { - getSwagger(): string; - setSwagger(value: string): Swagger; - - hasInfo(): boolean; - clearInfo(): void; - getInfo(): Info | undefined; - setInfo(value?: Info): Swagger; - getHost(): string; - setHost(value: string): Swagger; - getBasePath(): string; - setBasePath(value: string): Swagger; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Swagger; - addSchemes(value: Scheme, index?: number): Scheme; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Swagger; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Swagger; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - - hasSecurityDefinitions(): boolean; - clearSecurityDefinitions(): void; - getSecurityDefinitions(): SecurityDefinitions | undefined; - setSecurityDefinitions(value?: SecurityDefinitions): Swagger; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Swagger; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Swagger; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Swagger.AsObject; - static toObject(includeInstance: boolean, msg: Swagger): Swagger.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Swagger, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Swagger; - static deserializeBinaryFromReader(message: Swagger, reader: jspb.BinaryReader): Swagger; -} - -export namespace Swagger { - export type AsObject = { - swagger: string, - info?: Info.AsObject, - host: string, - basePath: string, - schemesList: Array, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - securityDefinitions?: SecurityDefinitions.AsObject, - securityList: Array, - externalDocs?: ExternalDocumentation.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Operation extends jspb.Message { - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): Operation; - addTags(value: string, index?: number): string; - getSummary(): string; - setSummary(value: string): Operation; - getDescription(): string; - setDescription(value: string): Operation; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Operation; - getOperationId(): string; - setOperationId(value: string): Operation; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Operation; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Operation; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Operation; - addSchemes(value: Scheme, index?: number): Scheme; - getDeprecated(): boolean; - setDeprecated(value: boolean): Operation; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Operation; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Operation.AsObject; - static toObject(includeInstance: boolean, msg: Operation): Operation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Operation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Operation; - static deserializeBinaryFromReader(message: Operation, reader: jspb.BinaryReader): Operation; -} - -export namespace Operation { - export type AsObject = { - tagsList: Array, - summary: string, - description: string, - externalDocs?: ExternalDocumentation.AsObject, - operationId: string, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - schemesList: Array, - deprecated: boolean, - securityList: Array, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Header extends jspb.Message { - getDescription(): string; - setDescription(value: string): Header; - getType(): string; - setType(value: string): Header; - getFormat(): string; - setFormat(value: string): Header; - getDefault(): string; - setDefault(value: string): Header; - getPattern(): string; - setPattern(value: string): Header; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Header.AsObject; - static toObject(includeInstance: boolean, msg: Header): Header.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Header, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Header; - static deserializeBinaryFromReader(message: Header, reader: jspb.BinaryReader): Header; -} - -export namespace Header { - export type AsObject = { - description: string, - type: string, - format: string, - pb_default: string, - pattern: string, - } -} - -export class Response extends jspb.Message { - getDescription(): string; - setDescription(value: string): Response; - - hasSchema(): boolean; - clearSchema(): void; - getSchema(): Schema | undefined; - setSchema(value?: Schema): Response; - - getHeadersMap(): jspb.Map; - clearHeadersMap(): void; - - getExamplesMap(): jspb.Map; - clearExamplesMap(): void; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Response.AsObject; - static toObject(includeInstance: boolean, msg: Response): Response.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Response, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Response; - static deserializeBinaryFromReader(message: Response, reader: jspb.BinaryReader): Response; -} - -export namespace Response { - export type AsObject = { - description: string, - schema?: Schema.AsObject, - - headersMap: Array<[string, Header.AsObject]>, - - examplesMap: Array<[string, string]>, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Info extends jspb.Message { - getTitle(): string; - setTitle(value: string): Info; - getDescription(): string; - setDescription(value: string): Info; - getTermsOfService(): string; - setTermsOfService(value: string): Info; - - hasContact(): boolean; - clearContact(): void; - getContact(): Contact | undefined; - setContact(value?: Contact): Info; - - hasLicense(): boolean; - clearLicense(): void; - getLicense(): License | undefined; - setLicense(value?: License): Info; - getVersion(): string; - setVersion(value: string): Info; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Info.AsObject; - static toObject(includeInstance: boolean, msg: Info): Info.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Info, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Info; - static deserializeBinaryFromReader(message: Info, reader: jspb.BinaryReader): Info; -} - -export namespace Info { - export type AsObject = { - title: string, - description: string, - termsOfService: string, - contact?: Contact.AsObject, - license?: License.AsObject, - version: string, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Contact extends jspb.Message { - getName(): string; - setName(value: string): Contact; - getUrl(): string; - setUrl(value: string): Contact; - getEmail(): string; - setEmail(value: string): Contact; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contact.AsObject; - static toObject(includeInstance: boolean, msg: Contact): Contact.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contact, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contact; - static deserializeBinaryFromReader(message: Contact, reader: jspb.BinaryReader): Contact; -} - -export namespace Contact { - export type AsObject = { - name: string, - url: string, - email: string, - } -} - -export class License extends jspb.Message { - getName(): string; - setName(value: string): License; - getUrl(): string; - setUrl(value: string): License; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): License.AsObject; - static toObject(includeInstance: boolean, msg: License): License.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: License, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): License; - static deserializeBinaryFromReader(message: License, reader: jspb.BinaryReader): License; -} - -export namespace License { - export type AsObject = { - name: string, - url: string, - } -} - -export class ExternalDocumentation extends jspb.Message { - getDescription(): string; - setDescription(value: string): ExternalDocumentation; - getUrl(): string; - setUrl(value: string): ExternalDocumentation; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ExternalDocumentation.AsObject; - static toObject(includeInstance: boolean, msg: ExternalDocumentation): ExternalDocumentation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ExternalDocumentation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ExternalDocumentation; - static deserializeBinaryFromReader(message: ExternalDocumentation, reader: jspb.BinaryReader): ExternalDocumentation; -} - -export namespace ExternalDocumentation { - export type AsObject = { - description: string, - url: string, - } -} - -export class Schema extends jspb.Message { - - hasJsonSchema(): boolean; - clearJsonSchema(): void; - getJsonSchema(): JSONSchema | undefined; - setJsonSchema(value?: JSONSchema): Schema; - getDiscriminator(): string; - setDiscriminator(value: string): Schema; - getReadOnly(): boolean; - setReadOnly(value: boolean): Schema; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Schema; - getExample(): string; - setExample(value: string): Schema; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Schema.AsObject; - static toObject(includeInstance: boolean, msg: Schema): Schema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Schema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Schema; - static deserializeBinaryFromReader(message: Schema, reader: jspb.BinaryReader): Schema; -} - -export namespace Schema { - export type AsObject = { - jsonSchema?: JSONSchema.AsObject, - discriminator: string, - readOnly: boolean, - externalDocs?: ExternalDocumentation.AsObject, - example: string, - } -} - -export class JSONSchema extends jspb.Message { - getRef(): string; - setRef(value: string): JSONSchema; - getTitle(): string; - setTitle(value: string): JSONSchema; - getDescription(): string; - setDescription(value: string): JSONSchema; - getDefault(): string; - setDefault(value: string): JSONSchema; - getReadOnly(): boolean; - setReadOnly(value: boolean): JSONSchema; - getExample(): string; - setExample(value: string): JSONSchema; - getMultipleOf(): number; - setMultipleOf(value: number): JSONSchema; - getMaximum(): number; - setMaximum(value: number): JSONSchema; - getExclusiveMaximum(): boolean; - setExclusiveMaximum(value: boolean): JSONSchema; - getMinimum(): number; - setMinimum(value: number): JSONSchema; - getExclusiveMinimum(): boolean; - setExclusiveMinimum(value: boolean): JSONSchema; - getMaxLength(): number; - setMaxLength(value: number): JSONSchema; - getMinLength(): number; - setMinLength(value: number): JSONSchema; - getPattern(): string; - setPattern(value: string): JSONSchema; - getMaxItems(): number; - setMaxItems(value: number): JSONSchema; - getMinItems(): number; - setMinItems(value: number): JSONSchema; - getUniqueItems(): boolean; - setUniqueItems(value: boolean): JSONSchema; - getMaxProperties(): number; - setMaxProperties(value: number): JSONSchema; - getMinProperties(): number; - setMinProperties(value: number): JSONSchema; - clearRequiredList(): void; - getRequiredList(): Array; - setRequiredList(value: Array): JSONSchema; - addRequired(value: string, index?: number): string; - clearArrayList(): void; - getArrayList(): Array; - setArrayList(value: Array): JSONSchema; - addArray(value: string, index?: number): string; - clearTypeList(): void; - getTypeList(): Array; - setTypeList(value: Array): JSONSchema; - addType(value: JSONSchema.JSONSchemaSimpleTypes, index?: number): JSONSchema.JSONSchemaSimpleTypes; - getFormat(): string; - setFormat(value: string): JSONSchema; - clearEnumList(): void; - getEnumList(): Array; - setEnumList(value: Array): JSONSchema; - addEnum(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): JSONSchema.AsObject; - static toObject(includeInstance: boolean, msg: JSONSchema): JSONSchema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: JSONSchema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): JSONSchema; - static deserializeBinaryFromReader(message: JSONSchema, reader: jspb.BinaryReader): JSONSchema; -} - -export namespace JSONSchema { - export type AsObject = { - ref: string, - title: string, - description: string, - pb_default: string, - readOnly: boolean, - example: string, - multipleOf: number, - maximum: number, - exclusiveMaximum: boolean, - minimum: number, - exclusiveMinimum: boolean, - maxLength: number, - minLength: number, - pattern: string, - maxItems: number, - minItems: number, - uniqueItems: boolean, - maxProperties: number, - minProperties: number, - requiredList: Array, - arrayList: Array, - typeList: Array, - format: string, - pb_enumList: Array, - } - - export enum JSONSchemaSimpleTypes { - UNKNOWN = 0, - ARRAY = 1, - BOOLEAN = 2, - INTEGER = 3, - NULL = 4, - NUMBER = 5, - OBJECT = 6, - STRING = 7, - } - -} - -export class Tag extends jspb.Message { - getDescription(): string; - setDescription(value: string): Tag; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Tag; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Tag.AsObject; - static toObject(includeInstance: boolean, msg: Tag): Tag.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Tag, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Tag; - static deserializeBinaryFromReader(message: Tag, reader: jspb.BinaryReader): Tag; -} - -export namespace Tag { - export type AsObject = { - description: string, - externalDocs?: ExternalDocumentation.AsObject, - } -} - -export class SecurityDefinitions extends jspb.Message { - - getSecurityMap(): jspb.Map; - clearSecurityMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityDefinitions.AsObject; - static toObject(includeInstance: boolean, msg: SecurityDefinitions): SecurityDefinitions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityDefinitions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityDefinitions; - static deserializeBinaryFromReader(message: SecurityDefinitions, reader: jspb.BinaryReader): SecurityDefinitions; -} - -export namespace SecurityDefinitions { - export type AsObject = { - - securityMap: Array<[string, SecurityScheme.AsObject]>, - } -} - -export class SecurityScheme extends jspb.Message { - getType(): SecurityScheme.Type; - setType(value: SecurityScheme.Type): SecurityScheme; - getDescription(): string; - setDescription(value: string): SecurityScheme; - getName(): string; - setName(value: string): SecurityScheme; - getIn(): SecurityScheme.In; - setIn(value: SecurityScheme.In): SecurityScheme; - getFlow(): SecurityScheme.Flow; - setFlow(value: SecurityScheme.Flow): SecurityScheme; - getAuthorizationUrl(): string; - setAuthorizationUrl(value: string): SecurityScheme; - getTokenUrl(): string; - setTokenUrl(value: string): SecurityScheme; - - hasScopes(): boolean; - clearScopes(): void; - getScopes(): Scopes | undefined; - setScopes(value?: Scopes): SecurityScheme; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityScheme.AsObject; - static toObject(includeInstance: boolean, msg: SecurityScheme): SecurityScheme.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityScheme, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityScheme; - static deserializeBinaryFromReader(message: SecurityScheme, reader: jspb.BinaryReader): SecurityScheme; -} - -export namespace SecurityScheme { - export type AsObject = { - type: SecurityScheme.Type, - description: string, - name: string, - pb_in: SecurityScheme.In, - flow: SecurityScheme.Flow, - authorizationUrl: string, - tokenUrl: string, - scopes?: Scopes.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } - - export enum Type { - TYPE_INVALID = 0, - TYPE_BASIC = 1, - TYPE_API_KEY = 2, - TYPE_OAUTH2 = 3, - } - - export enum In { - IN_INVALID = 0, - IN_QUERY = 1, - IN_HEADER = 2, - } - - export enum Flow { - FLOW_INVALID = 0, - FLOW_IMPLICIT = 1, - FLOW_PASSWORD = 2, - FLOW_APPLICATION = 3, - FLOW_ACCESS_CODE = 4, - } - -} - -export class SecurityRequirement extends jspb.Message { - - getSecurityRequirementMap(): jspb.Map; - clearSecurityRequirementMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirement.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirement): SecurityRequirement.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirement, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirement; - static deserializeBinaryFromReader(message: SecurityRequirement, reader: jspb.BinaryReader): SecurityRequirement; -} - -export namespace SecurityRequirement { - export type AsObject = { - - securityRequirementMap: Array<[string, SecurityRequirement.SecurityRequirementValue.AsObject]>, - } - - - export class SecurityRequirementValue extends jspb.Message { - clearScopeList(): void; - getScopeList(): Array; - setScopeList(value: Array): SecurityRequirementValue; - addScope(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirementValue.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirementValue): SecurityRequirementValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirementValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirementValue; - static deserializeBinaryFromReader(message: SecurityRequirementValue, reader: jspb.BinaryReader): SecurityRequirementValue; - } - - export namespace SecurityRequirementValue { - export type AsObject = { - scopeList: Array, - } - } - -} - -export class Scopes extends jspb.Message { - - getScopeMap(): jspb.Map; - clearScopeMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Scopes.AsObject; - static toObject(includeInstance: boolean, msg: Scopes): Scopes.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Scopes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Scopes; - static deserializeBinaryFromReader(message: Scopes, reader: jspb.BinaryReader): Scopes; -} - -export namespace Scopes { - export type AsObject = { - - scopeMap: Array<[string, string]>, - } -} - -export enum Scheme { - UNKNOWN = 0, - HTTP = 1, - HTTPS = 2, - WS = 3, - WSS = 4, -} diff --git a/mods/providers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js b/mods/providers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js deleted file mode 100644 index be8a6bfd2..000000000 --- a/mods/providers/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js +++ /dev/null @@ -1,5367 +0,0 @@ -// source: protoc-gen-openapiv2/options/openapiv2.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Contact', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Header', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Info', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.License', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Response', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Tag', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Operation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Operation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Header, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Header'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Response, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Response'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Info, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Info'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Contact'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.License, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.License.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.License'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Schema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Tag, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Tag'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_ = [5,6,7,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject = function(includeInstance, msg) { - var f, obj = { - swagger: jspb.Message.getFieldWithDefault(msg, 1, ""), - info: (f = msg.getInfo()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(includeInstance, f), - host: jspb.Message.getFieldWithDefault(msg, 3, ""), - basePath: jspb.Message.getFieldWithDefault(msg, 4, ""), - schemesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - securityDefinitions: (f = msg.getSecurityDefinitions()) && proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(includeInstance, f), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSwagger(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader); - msg.setInfo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setBasePath(value); - break; - case 5: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 10: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 11: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader); - msg.setSecurityDefinitions(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 14: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 15: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSwagger(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInfo(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBasePath(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSecurityDefinitions(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 14, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string swagger = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSwagger = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSwagger = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Info info = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getInfo = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Info, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearInfo = function() { - return this.setInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasInfo = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string host = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string base_path = 4; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getBasePath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setBasePath = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated Scheme schemes = 5; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 10; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 10, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * optional SecurityDefinitions security_definitions = 11; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityDefinitions = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, 11)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityDefinitions = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityDefinitions = function() { - return this.setSecurityDefinitions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasSecurityDefinitions = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * optional ExternalDocumentation external_docs = 14; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 14)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 14, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 14) != null; -}; - - -/** - * map extensions = 15; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 15, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_ = [1,6,7,10,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject = function(includeInstance, msg) { - var f, obj = { - tagsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - summary: jspb.Message.getFieldWithDefault(msg, 2, ""), - description: jspb.Message.getFieldWithDefault(msg, 3, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - operationId: jspb.Message.getFieldWithDefault(msg, 5, ""), - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - schemesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f, - deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 11, false), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Operation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSummary(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setOperationId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 9: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 10: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDeprecated(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 13: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getSummary(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getOperationId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 10, - f - ); - } - f = message.getDeprecated(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * repeated string tags = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getTagsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setTagsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addTags = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearTagsList = function() { - return this.setTagsList([]); -}; - - -/** - * optional string summary = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSummary = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSummary = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string description = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string operation_id = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getOperationId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setOperationId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * repeated Scheme schemes = 10; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 10, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 10, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * optional bool deprecated = 11; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDeprecated = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDeprecated = function(value) { - return jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * map extensions = 13; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 13, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, ""), - format: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 6, ""), - pattern: jspb.Message.getFieldWithDefault(msg, 13, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Header; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string type = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string format = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string default = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string pattern = 13; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 13, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - schema: (f = msg.getSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(includeInstance, f), - headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject) : [], - examplesMap: (f = msg.getExamplesMap()) ? f.toObject(includeInstance, undefined) : [], - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Response; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader); - msg.setSchema(value); - break; - case 3: - var value = msg.getHeadersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Header()); - }); - break; - case 4: - var value = msg.getExamplesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - case 5: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchema(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter - ); - } - f = message.getHeadersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter); - } - f = message.getExamplesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Schema schema = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setSchema = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearSchema = function() { - return this.setSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.hasSchema = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * map headers = 3; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getHeadersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 3, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Header)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearHeadersMap = function() { - this.getHeadersMap().clear(); - return this;}; - - -/** - * map examples = 4; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExamplesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 4, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExamplesMap = function() { - this.getExamplesMap().clear(); - return this;}; - - -/** - * map extensions = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject = function(includeInstance, msg) { - var f, obj = { - title: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - termsOfService: jspb.Message.getFieldWithDefault(msg, 3, ""), - contact: (f = msg.getContact()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(includeInstance, f), - license: (f = msg.getLicense()) && proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(includeInstance, f), - version: jspb.Message.getFieldWithDefault(msg, 6, ""), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTermsOfService(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader); - msg.setContact(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader); - msg.setLicense(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 7: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTermsOfService(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getContact(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter - ); - } - f = message.getLicense(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string title = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string terms_of_service = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTermsOfService = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTermsOfService = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional Contact contact = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getContact = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setContact = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearContact = function() { - return this.setContact(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasContact = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional License license = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getLicense = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.License} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.License, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.License|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setLicense = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearLicense = function() { - return this.setLicense(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasLicense = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string version = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setVersion = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * map extensions = 7; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 7, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject = function(includeInstance, msg) { - var f, obj = { - jsonSchema: (f = msg.getJsonSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(includeInstance, f), - discriminator: jspb.Message.getFieldWithDefault(msg, 2, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - example: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader); - msg.setJsonSchema(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDiscriminator(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsonSchema(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter - ); - } - f = message.getDiscriminator(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional JSONSchema json_schema = 1; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getJsonSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, 1)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setJsonSchema = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearJsonSchema = function() { - return this.setJsonSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasJsonSchema = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string discriminator = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getDiscriminator = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setDiscriminator = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool read_only = 3; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string example = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_ = [26,34,35,46]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 3, ""), - title: jspb.Message.getFieldWithDefault(msg, 5, ""), - description: jspb.Message.getFieldWithDefault(msg, 6, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 7, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - example: jspb.Message.getFieldWithDefault(msg, 9, ""), - multipleOf: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0), - maximum: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0), - exclusiveMaximum: jspb.Message.getBooleanFieldWithDefault(msg, 12, false), - minimum: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), - exclusiveMinimum: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - maxLength: jspb.Message.getFieldWithDefault(msg, 15, 0), - minLength: jspb.Message.getFieldWithDefault(msg, 16, 0), - pattern: jspb.Message.getFieldWithDefault(msg, 17, ""), - maxItems: jspb.Message.getFieldWithDefault(msg, 20, 0), - minItems: jspb.Message.getFieldWithDefault(msg, 21, 0), - uniqueItems: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), - maxProperties: jspb.Message.getFieldWithDefault(msg, 24, 0), - minProperties: jspb.Message.getFieldWithDefault(msg, 25, 0), - requiredList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, - arrayList: (f = jspb.Message.getRepeatedField(msg, 34)) == null ? undefined : f, - typeList: (f = jspb.Message.getRepeatedField(msg, 35)) == null ? undefined : f, - format: jspb.Message.getFieldWithDefault(msg, 36, ""), - enumList: (f = jspb.Message.getRepeatedField(msg, 46)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - case 10: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMultipleOf(value); - break; - case 11: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMaximum(value); - break; - case 12: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMaximum(value); - break; - case 13: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMinimum(value); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMinimum(value); - break; - case 15: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxLength(value); - break; - case 16: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinLength(value); - break; - case 17: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - case 20: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxItems(value); - break; - case 21: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinItems(value); - break; - case 22: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUniqueItems(value); - break; - case 24: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxProperties(value); - break; - case 25: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinProperties(value); - break; - case 26: - var value = /** @type {string} */ (reader.readString()); - msg.addRequired(value); - break; - case 34: - var value = /** @type {string} */ (reader.readString()); - msg.addArray(value); - break; - case 35: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addType(values[i]); - } - break; - case 36: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 46: - var value = /** @type {string} */ (reader.readString()); - msg.addEnum(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getMultipleOf(); - if (f !== 0.0) { - writer.writeDouble( - 10, - f - ); - } - f = message.getMaximum(); - if (f !== 0.0) { - writer.writeDouble( - 11, - f - ); - } - f = message.getExclusiveMaximum(); - if (f) { - writer.writeBool( - 12, - f - ); - } - f = message.getMinimum(); - if (f !== 0.0) { - writer.writeDouble( - 13, - f - ); - } - f = message.getExclusiveMinimum(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getMaxLength(); - if (f !== 0) { - writer.writeUint64( - 15, - f - ); - } - f = message.getMinLength(); - if (f !== 0) { - writer.writeUint64( - 16, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 17, - f - ); - } - f = message.getMaxItems(); - if (f !== 0) { - writer.writeUint64( - 20, - f - ); - } - f = message.getMinItems(); - if (f !== 0) { - writer.writeUint64( - 21, - f - ); - } - f = message.getUniqueItems(); - if (f) { - writer.writeBool( - 22, - f - ); - } - f = message.getMaxProperties(); - if (f !== 0) { - writer.writeUint64( - 24, - f - ); - } - f = message.getMinProperties(); - if (f !== 0) { - writer.writeUint64( - 25, - f - ); - } - f = message.getRequiredList(); - if (f.length > 0) { - writer.writeRepeatedString( - 26, - f - ); - } - f = message.getArrayList(); - if (f.length > 0) { - writer.writeRepeatedString( - 34, - f - ); - } - f = message.getTypeList(); - if (f.length > 0) { - writer.writePackedEnum( - 35, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 36, - f - ); - } - f = message.getEnumList(); - if (f.length > 0) { - writer.writeRepeatedString( - 46, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes = { - UNKNOWN: 0, - ARRAY: 1, - BOOLEAN: 2, - INTEGER: 3, - NULL: 4, - NUMBER: 5, - OBJECT: 6, - STRING: 7 -}; - -/** - * optional string ref = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string title = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string description = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string default = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional bool read_only = 8; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - -/** - * optional string example = 9; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional double multiple_of = 10; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMultipleOf = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMultipleOf = function(value) { - return jspb.Message.setProto3FloatField(this, 10, value); -}; - - -/** - * optional double maximum = 11; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaximum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaximum = function(value) { - return jspb.Message.setProto3FloatField(this, 11, value); -}; - - -/** - * optional bool exclusive_maximum = 12; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMaximum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMaximum = function(value) { - return jspb.Message.setProto3BooleanField(this, 12, value); -}; - - -/** - * optional double minimum = 13; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinimum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinimum = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); -}; - - -/** - * optional bool exclusive_minimum = 14; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMinimum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMinimum = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * optional uint64 max_length = 15; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxLength = function(value) { - return jspb.Message.setProto3IntField(this, 15, value); -}; - - -/** - * optional uint64 min_length = 16; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinLength = function(value) { - return jspb.Message.setProto3IntField(this, 16, value); -}; - - -/** - * optional string pattern = 17; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 17, value); -}; - - -/** - * optional uint64 max_items = 20; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxItems = function(value) { - return jspb.Message.setProto3IntField(this, 20, value); -}; - - -/** - * optional uint64 min_items = 21; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinItems = function(value) { - return jspb.Message.setProto3IntField(this, 21, value); -}; - - -/** - * optional bool unique_items = 22; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getUniqueItems = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setUniqueItems = function(value) { - return jspb.Message.setProto3BooleanField(this, 22, value); -}; - - -/** - * optional uint64 max_properties = 24; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxProperties = function(value) { - return jspb.Message.setProto3IntField(this, 24, value); -}; - - -/** - * optional uint64 min_properties = 25; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinProperties = function(value) { - return jspb.Message.setProto3IntField(this, 25, value); -}; - - -/** - * repeated string required = 26; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRequiredList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 26)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRequiredList = function(value) { - return jspb.Message.setField(this, 26, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addRequired = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 26, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearRequiredList = function() { - return this.setRequiredList([]); -}; - - -/** - * repeated string array = 34; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getArrayList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 34)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setArrayList = function(value) { - return jspb.Message.setField(this, 34, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addArray = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 34, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearArrayList = function() { - return this.setArrayList([]); -}; - - -/** - * repeated JSONSchemaSimpleTypes type = 35; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTypeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 35)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTypeList = function(value) { - return jspb.Message.setField(this, 35, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addType = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 35, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearTypeList = function() { - return this.setTypeList([]); -}; - - -/** - * optional string format = 36; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 36, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 36, value); -}; - - -/** - * repeated string enum = 46; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getEnumList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 46)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setEnumList = function(value) { - return jspb.Message.setField(this, 46, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addEnum = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 46, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearEnumList = function() { - return this.setEnumList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Tag; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 3; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 3)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject = function(includeInstance, msg) { - var f, obj = { - securityMap: (f = msg.getSecurityMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter); - } -}; - - -/** - * map security = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.getSecurityMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.clearSecurityMap = function() { - this.getSecurityMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject = function(includeInstance, msg) { - var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_in: jspb.Message.getFieldWithDefault(msg, 4, 0), - flow: jspb.Message.getFieldWithDefault(msg, 5, 0), - authorizationUrl: jspb.Message.getFieldWithDefault(msg, 6, ""), - tokenUrl: jspb.Message.getFieldWithDefault(msg, 7, ""), - scopes: (f = msg.getScopes()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (reader.readEnum()); - msg.setIn(value); - break; - case 5: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (reader.readEnum()); - msg.setFlow(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthorizationUrl(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setTokenUrl(value); - break; - case 8: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader); - msg.setScopes(value); - break; - case 9: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIn(); - if (f !== 0.0) { - writer.writeEnum( - 4, - f - ); - } - f = message.getFlow(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } - f = message.getAuthorizationUrl(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getTokenUrl(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getScopes(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type = { - TYPE_INVALID: 0, - TYPE_BASIC: 1, - TYPE_API_KEY: 2, - TYPE_OAUTH2: 3 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In = { - IN_INVALID: 0, - IN_QUERY: 1, - IN_HEADER: 2 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow = { - FLOW_INVALID: 0, - FLOW_IMPLICIT: 1, - FLOW_PASSWORD: 2, - FLOW_APPLICATION: 3, - FLOW_ACCESS_CODE: 4 -}; - -/** - * optional Type type = 1; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getType = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional In in = 4; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getIn = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setIn = function(value) { - return jspb.Message.setProto3EnumField(this, 4, value); -}; - - -/** - * optional Flow flow = 5; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getFlow = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setFlow = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); -}; - - -/** - * optional string authorization_url = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getAuthorizationUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setAuthorizationUrl = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string token_url = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getTokenUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setTokenUrl = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional Scopes scopes = 8; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getScopes = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, 8)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setScopes = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearScopes = function() { - return this.setScopes(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.hasScopes = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * map extensions = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject = function(includeInstance, msg) { - var f, obj = { - securityRequirementMap: (f = msg.getSecurityRequirementMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityRequirementMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityRequirementMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject = function(includeInstance, msg) { - var f, obj = { - scopeList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addScope(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } -}; - - -/** - * repeated string scope = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.getScopeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.setScopeList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.addScope = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.clearScopeList = function() { - return this.setScopeList([]); -}; - - -/** - * map security_requirement = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.getSecurityRequirementMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.clearSecurityRequirementMap = function() { - this.getSecurityRequirementMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject = function(includeInstance, msg) { - var f, obj = { - scopeMap: (f = msg.getScopeMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getScopeMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map scope = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.getScopeMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.clearScopeMap = function() { - this.getScopeMap().clear(); - return this;}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme = { - UNKNOWN: 0, - HTTP: 1, - HTTPS: 2, - WS: 3, - WSS: 4 -}; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/providers/src/service/protos/providers_grpc_pb.d.ts b/mods/providers/src/service/protos/providers_grpc_pb.d.ts deleted file mode 100644 index 8f1f2b92a..000000000 --- a/mods/providers/src/service/protos/providers_grpc_pb.d.ts +++ /dev/null @@ -1,113 +0,0 @@ -// package: fonoster.providers.v1beta1 -// file: providers.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import {handleClientStreamingCall} from "@grpc/grpc-js/build/src/server-call"; -import * as providers_pb from "./providers_pb"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as common_pb from "./common_pb"; - -interface IProvidersService extends grpc.ServiceDefinition { - listProviders: IProvidersService_IListProviders; - createProvider: IProvidersService_ICreateProvider; - getProvider: IProvidersService_IGetProvider; - updateProvider: IProvidersService_IUpdateProvider; - deleteProvider: IProvidersService_IDeleteProvider; -} - -interface IProvidersService_IListProviders extends grpc.MethodDefinition { - path: "/fonoster.providers.v1beta1.Providers/ListProviders"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IProvidersService_ICreateProvider extends grpc.MethodDefinition { - path: "/fonoster.providers.v1beta1.Providers/CreateProvider"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IProvidersService_IGetProvider extends grpc.MethodDefinition { - path: "/fonoster.providers.v1beta1.Providers/GetProvider"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IProvidersService_IUpdateProvider extends grpc.MethodDefinition { - path: "/fonoster.providers.v1beta1.Providers/UpdateProvider"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IProvidersService_IDeleteProvider extends grpc.MethodDefinition { - path: "/fonoster.providers.v1beta1.Providers/DeleteProvider"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const ProvidersService: IProvidersService; - -export interface IProvidersServer extends grpc.UntypedServiceImplementation { - listProviders: grpc.handleUnaryCall; - createProvider: grpc.handleUnaryCall; - getProvider: grpc.handleUnaryCall; - updateProvider: grpc.handleUnaryCall; - deleteProvider: grpc.handleUnaryCall; -} - -export interface IProvidersClient { - listProviders(request: providers_pb.ListProvidersRequest, callback: (error: grpc.ServiceError | null, response: providers_pb.ListProvidersResponse) => void): grpc.ClientUnaryCall; - listProviders(request: providers_pb.ListProvidersRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: providers_pb.ListProvidersResponse) => void): grpc.ClientUnaryCall; - listProviders(request: providers_pb.ListProvidersRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: providers_pb.ListProvidersResponse) => void): grpc.ClientUnaryCall; - createProvider(request: providers_pb.CreateProviderRequest, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - createProvider(request: providers_pb.CreateProviderRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - createProvider(request: providers_pb.CreateProviderRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - getProvider(request: providers_pb.GetProviderRequest, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - getProvider(request: providers_pb.GetProviderRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - getProvider(request: providers_pb.GetProviderRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - updateProvider(request: providers_pb.UpdateProviderRequest, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - updateProvider(request: providers_pb.UpdateProviderRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - updateProvider(request: providers_pb.UpdateProviderRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - deleteProvider(request: providers_pb.DeleteProviderRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteProvider(request: providers_pb.DeleteProviderRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteProvider(request: providers_pb.DeleteProviderRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; -} - -export class ProvidersClient extends grpc.Client implements IProvidersClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public listProviders(request: providers_pb.ListProvidersRequest, callback: (error: grpc.ServiceError | null, response: providers_pb.ListProvidersResponse) => void): grpc.ClientUnaryCall; - public listProviders(request: providers_pb.ListProvidersRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: providers_pb.ListProvidersResponse) => void): grpc.ClientUnaryCall; - public listProviders(request: providers_pb.ListProvidersRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: providers_pb.ListProvidersResponse) => void): grpc.ClientUnaryCall; - public createProvider(request: providers_pb.CreateProviderRequest, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - public createProvider(request: providers_pb.CreateProviderRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - public createProvider(request: providers_pb.CreateProviderRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - public getProvider(request: providers_pb.GetProviderRequest, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - public getProvider(request: providers_pb.GetProviderRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - public getProvider(request: providers_pb.GetProviderRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - public updateProvider(request: providers_pb.UpdateProviderRequest, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - public updateProvider(request: providers_pb.UpdateProviderRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - public updateProvider(request: providers_pb.UpdateProviderRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: providers_pb.Provider) => void): grpc.ClientUnaryCall; - public deleteProvider(request: providers_pb.DeleteProviderRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteProvider(request: providers_pb.DeleteProviderRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteProvider(request: providers_pb.DeleteProviderRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; -} diff --git a/mods/providers/src/service/protos/providers_grpc_pb.js b/mods/providers/src/service/protos/providers_grpc_pb.js deleted file mode 100644 index 743e60315..000000000 --- a/mods/providers/src/service/protos/providers_grpc_pb.js +++ /dev/null @@ -1,170 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// * -// MIT License -// Copyright (c) 2021 Fonoster Inc -// -// The Providers proto contains the artificats for the administration -// of Providers. -'use strict'; -var grpc = require('@grpc/grpc-js'); -var providers_pb = require('./providers_pb.js'); -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -var common_pb = require('./common_pb.js'); - -function serialize_fonoster_common_v1beta1_Empty(arg) { - if (!(arg instanceof common_pb.Empty)) { - throw new Error('Expected argument of type fonoster.common.v1beta1.Empty'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_common_v1beta1_Empty(buffer_arg) { - return common_pb.Empty.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_providers_v1beta1_CreateProviderRequest(arg) { - if (!(arg instanceof providers_pb.CreateProviderRequest)) { - throw new Error('Expected argument of type fonoster.providers.v1beta1.CreateProviderRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_providers_v1beta1_CreateProviderRequest(buffer_arg) { - return providers_pb.CreateProviderRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_providers_v1beta1_DeleteProviderRequest(arg) { - if (!(arg instanceof providers_pb.DeleteProviderRequest)) { - throw new Error('Expected argument of type fonoster.providers.v1beta1.DeleteProviderRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_providers_v1beta1_DeleteProviderRequest(buffer_arg) { - return providers_pb.DeleteProviderRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_providers_v1beta1_GetProviderRequest(arg) { - if (!(arg instanceof providers_pb.GetProviderRequest)) { - throw new Error('Expected argument of type fonoster.providers.v1beta1.GetProviderRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_providers_v1beta1_GetProviderRequest(buffer_arg) { - return providers_pb.GetProviderRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_providers_v1beta1_ListProvidersRequest(arg) { - if (!(arg instanceof providers_pb.ListProvidersRequest)) { - throw new Error('Expected argument of type fonoster.providers.v1beta1.ListProvidersRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_providers_v1beta1_ListProvidersRequest(buffer_arg) { - return providers_pb.ListProvidersRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_providers_v1beta1_ListProvidersResponse(arg) { - if (!(arg instanceof providers_pb.ListProvidersResponse)) { - throw new Error('Expected argument of type fonoster.providers.v1beta1.ListProvidersResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_providers_v1beta1_ListProvidersResponse(buffer_arg) { - return providers_pb.ListProvidersResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_providers_v1beta1_Provider(arg) { - if (!(arg instanceof providers_pb.Provider)) { - throw new Error('Expected argument of type fonoster.providers.v1beta1.Provider'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_providers_v1beta1_Provider(buffer_arg) { - return providers_pb.Provider.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_providers_v1beta1_UpdateProviderRequest(arg) { - if (!(arg instanceof providers_pb.UpdateProviderRequest)) { - throw new Error('Expected argument of type fonoster.providers.v1beta1.UpdateProviderRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_providers_v1beta1_UpdateProviderRequest(buffer_arg) { - return providers_pb.UpdateProviderRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var ProvidersService = exports.ProvidersService = { - // Lists Providers from the SIP Proxy subsystem -listProviders: { - path: '/fonoster.providers.v1beta1.Providers/ListProviders', - requestStream: false, - responseStream: false, - requestType: providers_pb.ListProvidersRequest, - responseType: providers_pb.ListProvidersResponse, - requestSerialize: serialize_fonoster_providers_v1beta1_ListProvidersRequest, - requestDeserialize: deserialize_fonoster_providers_v1beta1_ListProvidersRequest, - responseSerialize: serialize_fonoster_providers_v1beta1_ListProvidersResponse, - responseDeserialize: deserialize_fonoster_providers_v1beta1_ListProvidersResponse, - }, - // Creates a new Provider resource. -createProvider: { - path: '/fonoster.providers.v1beta1.Providers/CreateProvider', - requestStream: false, - responseStream: false, - requestType: providers_pb.CreateProviderRequest, - responseType: providers_pb.Provider, - requestSerialize: serialize_fonoster_providers_v1beta1_CreateProviderRequest, - requestDeserialize: deserialize_fonoster_providers_v1beta1_CreateProviderRequest, - responseSerialize: serialize_fonoster_providers_v1beta1_Provider, - responseDeserialize: deserialize_fonoster_providers_v1beta1_Provider, - }, - // Gets Provider using its reference -getProvider: { - path: '/fonoster.providers.v1beta1.Providers/GetProvider', - requestStream: false, - responseStream: false, - requestType: providers_pb.GetProviderRequest, - responseType: providers_pb.Provider, - requestSerialize: serialize_fonoster_providers_v1beta1_GetProviderRequest, - requestDeserialize: deserialize_fonoster_providers_v1beta1_GetProviderRequest, - responseSerialize: serialize_fonoster_providers_v1beta1_Provider, - responseDeserialize: deserialize_fonoster_providers_v1beta1_Provider, - }, - // Change or update fields in a resource -updateProvider: { - path: '/fonoster.providers.v1beta1.Providers/UpdateProvider', - requestStream: false, - responseStream: false, - requestType: providers_pb.UpdateProviderRequest, - responseType: providers_pb.Provider, - requestSerialize: serialize_fonoster_providers_v1beta1_UpdateProviderRequest, - requestDeserialize: deserialize_fonoster_providers_v1beta1_UpdateProviderRequest, - responseSerialize: serialize_fonoster_providers_v1beta1_Provider, - responseDeserialize: deserialize_fonoster_providers_v1beta1_Provider, - }, - // Hard delete of a Provider resource -deleteProvider: { - path: '/fonoster.providers.v1beta1.Providers/DeleteProvider', - requestStream: false, - responseStream: false, - requestType: providers_pb.DeleteProviderRequest, - responseType: common_pb.Empty, - requestSerialize: serialize_fonoster_providers_v1beta1_DeleteProviderRequest, - requestDeserialize: deserialize_fonoster_providers_v1beta1_DeleteProviderRequest, - responseSerialize: serialize_fonoster_common_v1beta1_Empty, - responseDeserialize: deserialize_fonoster_common_v1beta1_Empty, - }, -}; - -exports.ProvidersClient = grpc.makeGenericClientConstructor(ProvidersService); diff --git a/mods/providers/src/service/protos/providers_pb.d.ts b/mods/providers/src/service/protos/providers_pb.d.ts deleted file mode 100644 index 946131e7b..000000000 --- a/mods/providers/src/service/protos/providers_pb.d.ts +++ /dev/null @@ -1,227 +0,0 @@ -// package: fonoster.providers.v1beta1 -// file: providers.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as common_pb from "./common_pb"; - -export class ListProvidersRequest extends jspb.Message { - getPageSize(): number; - setPageSize(value: number): ListProvidersRequest; - getPageToken(): string; - setPageToken(value: string): ListProvidersRequest; - getView(): common_pb.View; - setView(value: common_pb.View): ListProvidersRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListProvidersRequest.AsObject; - static toObject(includeInstance: boolean, msg: ListProvidersRequest): ListProvidersRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListProvidersRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListProvidersRequest; - static deserializeBinaryFromReader(message: ListProvidersRequest, reader: jspb.BinaryReader): ListProvidersRequest; -} - -export namespace ListProvidersRequest { - export type AsObject = { - pageSize: number, - pageToken: string, - view: common_pb.View, - } -} - -export class ListProvidersResponse extends jspb.Message { - clearProvidersList(): void; - getProvidersList(): Array; - setProvidersList(value: Array): ListProvidersResponse; - addProviders(value?: Provider, index?: number): Provider; - getNextPageToken(): string; - setNextPageToken(value: string): ListProvidersResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListProvidersResponse.AsObject; - static toObject(includeInstance: boolean, msg: ListProvidersResponse): ListProvidersResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListProvidersResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListProvidersResponse; - static deserializeBinaryFromReader(message: ListProvidersResponse, reader: jspb.BinaryReader): ListProvidersResponse; -} - -export namespace ListProvidersResponse { - export type AsObject = { - providersList: Array, - nextPageToken: string, - } -} - -export class CreateProviderRequest extends jspb.Message { - getName(): string; - setName(value: string): CreateProviderRequest; - getUsername(): string; - setUsername(value: string): CreateProviderRequest; - getSecret(): string; - setSecret(value: string): CreateProviderRequest; - getHost(): string; - setHost(value: string): CreateProviderRequest; - getTransport(): string; - setTransport(value: string): CreateProviderRequest; - getExpires(): number; - setExpires(value: number): CreateProviderRequest; - getRegister(): boolean; - setRegister(value: boolean): CreateProviderRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateProviderRequest.AsObject; - static toObject(includeInstance: boolean, msg: CreateProviderRequest): CreateProviderRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateProviderRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateProviderRequest; - static deserializeBinaryFromReader(message: CreateProviderRequest, reader: jspb.BinaryReader): CreateProviderRequest; -} - -export namespace CreateProviderRequest { - export type AsObject = { - name: string, - username: string, - secret: string, - host: string, - transport: string, - expires: number, - register: boolean, - } -} - -export class UpdateProviderRequest extends jspb.Message { - getRef(): string; - setRef(value: string): UpdateProviderRequest; - getName(): string; - setName(value: string): UpdateProviderRequest; - getUsername(): string; - setUsername(value: string): UpdateProviderRequest; - getSecret(): string; - setSecret(value: string): UpdateProviderRequest; - getHost(): string; - setHost(value: string): UpdateProviderRequest; - getTransport(): string; - setTransport(value: string): UpdateProviderRequest; - getExpires(): number; - setExpires(value: number): UpdateProviderRequest; - getRegister(): boolean; - setRegister(value: boolean): UpdateProviderRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UpdateProviderRequest.AsObject; - static toObject(includeInstance: boolean, msg: UpdateProviderRequest): UpdateProviderRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UpdateProviderRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UpdateProviderRequest; - static deserializeBinaryFromReader(message: UpdateProviderRequest, reader: jspb.BinaryReader): UpdateProviderRequest; -} - -export namespace UpdateProviderRequest { - export type AsObject = { - ref: string, - name: string, - username: string, - secret: string, - host: string, - transport: string, - expires: number, - register: boolean, - } -} - -export class GetProviderRequest extends jspb.Message { - getRef(): string; - setRef(value: string): GetProviderRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetProviderRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetProviderRequest): GetProviderRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetProviderRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetProviderRequest; - static deserializeBinaryFromReader(message: GetProviderRequest, reader: jspb.BinaryReader): GetProviderRequest; -} - -export namespace GetProviderRequest { - export type AsObject = { - ref: string, - } -} - -export class DeleteProviderRequest extends jspb.Message { - getRef(): string; - setRef(value: string): DeleteProviderRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DeleteProviderRequest.AsObject; - static toObject(includeInstance: boolean, msg: DeleteProviderRequest): DeleteProviderRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DeleteProviderRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DeleteProviderRequest; - static deserializeBinaryFromReader(message: DeleteProviderRequest, reader: jspb.BinaryReader): DeleteProviderRequest; -} - -export namespace DeleteProviderRequest { - export type AsObject = { - ref: string, - } -} - -export class Provider extends jspb.Message { - getRef(): string; - setRef(value: string): Provider; - getName(): string; - setName(value: string): Provider; - getUsername(): string; - setUsername(value: string): Provider; - getSecret(): string; - setSecret(value: string): Provider; - getHost(): string; - setHost(value: string): Provider; - getTransport(): string; - setTransport(value: string): Provider; - getExpires(): number; - setExpires(value: number): Provider; - getCreateTime(): string; - setCreateTime(value: string): Provider; - getUpdateTime(): string; - setUpdateTime(value: string): Provider; - getRegister(): boolean; - setRegister(value: boolean): Provider; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Provider.AsObject; - static toObject(includeInstance: boolean, msg: Provider): Provider.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Provider, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Provider; - static deserializeBinaryFromReader(message: Provider, reader: jspb.BinaryReader): Provider; -} - -export namespace Provider { - export type AsObject = { - ref: string, - name: string, - username: string, - secret: string, - host: string, - transport: string, - expires: number, - createTime: string, - updateTime: string, - register: boolean, - } -} diff --git a/mods/providers/src/service/protos/providers_pb.js b/mods/providers/src/service/protos/providers_pb.js deleted file mode 100644 index a135b7d56..000000000 --- a/mods/providers/src/service/protos/providers_pb.js +++ /dev/null @@ -1,1870 +0,0 @@ -// source: providers.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -goog.object.extend(proto, google_api_annotations_pb); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -goog.object.extend(proto, google_api_field_behavior_pb); -var common_pb = require('./common_pb.js'); -goog.object.extend(proto, common_pb); -goog.exportSymbol('proto.fonoster.providers.v1beta1.CreateProviderRequest', null, global); -goog.exportSymbol('proto.fonoster.providers.v1beta1.DeleteProviderRequest', null, global); -goog.exportSymbol('proto.fonoster.providers.v1beta1.GetProviderRequest', null, global); -goog.exportSymbol('proto.fonoster.providers.v1beta1.ListProvidersRequest', null, global); -goog.exportSymbol('proto.fonoster.providers.v1beta1.ListProvidersResponse', null, global); -goog.exportSymbol('proto.fonoster.providers.v1beta1.Provider', null, global); -goog.exportSymbol('proto.fonoster.providers.v1beta1.UpdateProviderRequest', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.providers.v1beta1.ListProvidersRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.providers.v1beta1.ListProvidersRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.providers.v1beta1.ListProvidersRequest.displayName = 'proto.fonoster.providers.v1beta1.ListProvidersRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.providers.v1beta1.ListProvidersResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.providers.v1beta1.ListProvidersResponse.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.providers.v1beta1.ListProvidersResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.providers.v1beta1.ListProvidersResponse.displayName = 'proto.fonoster.providers.v1beta1.ListProvidersResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.providers.v1beta1.CreateProviderRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.providers.v1beta1.CreateProviderRequest.displayName = 'proto.fonoster.providers.v1beta1.CreateProviderRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.providers.v1beta1.UpdateProviderRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.providers.v1beta1.UpdateProviderRequest.displayName = 'proto.fonoster.providers.v1beta1.UpdateProviderRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.providers.v1beta1.GetProviderRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.providers.v1beta1.GetProviderRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.providers.v1beta1.GetProviderRequest.displayName = 'proto.fonoster.providers.v1beta1.GetProviderRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.providers.v1beta1.DeleteProviderRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.providers.v1beta1.DeleteProviderRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.providers.v1beta1.DeleteProviderRequest.displayName = 'proto.fonoster.providers.v1beta1.DeleteProviderRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.providers.v1beta1.Provider = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.providers.v1beta1.Provider, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.providers.v1beta1.Provider.displayName = 'proto.fonoster.providers.v1beta1.Provider'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.providers.v1beta1.ListProvidersRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.providers.v1beta1.ListProvidersRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.providers.v1beta1.ListProvidersRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.ListProvidersRequest.toObject = function(includeInstance, msg) { - var f, obj = { - pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), - pageToken: jspb.Message.getFieldWithDefault(msg, 2, ""), - view: jspb.Message.getFieldWithDefault(msg, 3, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.providers.v1beta1.ListProvidersRequest} - */ -proto.fonoster.providers.v1beta1.ListProvidersRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.providers.v1beta1.ListProvidersRequest; - return proto.fonoster.providers.v1beta1.ListProvidersRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.providers.v1beta1.ListProvidersRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.providers.v1beta1.ListProvidersRequest} - */ -proto.fonoster.providers.v1beta1.ListProvidersRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setPageSize(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPageToken(value); - break; - case 3: - var value = /** @type {!proto.fonoster.common.v1beta1.View} */ (reader.readEnum()); - msg.setView(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.providers.v1beta1.ListProvidersRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.providers.v1beta1.ListProvidersRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.providers.v1beta1.ListProvidersRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.ListProvidersRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getPageSize(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getView(); - if (f !== 0.0) { - writer.writeEnum( - 3, - f - ); - } -}; - - -/** - * optional int32 page_size = 1; - * @return {number} - */ -proto.fonoster.providers.v1beta1.ListProvidersRequest.prototype.getPageSize = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.providers.v1beta1.ListProvidersRequest} returns this - */ -proto.fonoster.providers.v1beta1.ListProvidersRequest.prototype.setPageSize = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string page_token = 2; - * @return {string} - */ -proto.fonoster.providers.v1beta1.ListProvidersRequest.prototype.getPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.ListProvidersRequest} returns this - */ -proto.fonoster.providers.v1beta1.ListProvidersRequest.prototype.setPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional fonoster.common.v1beta1.View view = 3; - * @return {!proto.fonoster.common.v1beta1.View} - */ -proto.fonoster.providers.v1beta1.ListProvidersRequest.prototype.getView = function() { - return /** @type {!proto.fonoster.common.v1beta1.View} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {!proto.fonoster.common.v1beta1.View} value - * @return {!proto.fonoster.providers.v1beta1.ListProvidersRequest} returns this - */ -proto.fonoster.providers.v1beta1.ListProvidersRequest.prototype.setView = function(value) { - return jspb.Message.setProto3EnumField(this, 3, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.providers.v1beta1.ListProvidersResponse.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.providers.v1beta1.ListProvidersResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.providers.v1beta1.ListProvidersResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.providers.v1beta1.ListProvidersResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.ListProvidersResponse.toObject = function(includeInstance, msg) { - var f, obj = { - providersList: jspb.Message.toObjectList(msg.getProvidersList(), - proto.fonoster.providers.v1beta1.Provider.toObject, includeInstance), - nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.providers.v1beta1.ListProvidersResponse} - */ -proto.fonoster.providers.v1beta1.ListProvidersResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.providers.v1beta1.ListProvidersResponse; - return proto.fonoster.providers.v1beta1.ListProvidersResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.providers.v1beta1.ListProvidersResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.providers.v1beta1.ListProvidersResponse} - */ -proto.fonoster.providers.v1beta1.ListProvidersResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.fonoster.providers.v1beta1.Provider; - reader.readMessage(value,proto.fonoster.providers.v1beta1.Provider.deserializeBinaryFromReader); - msg.addProviders(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setNextPageToken(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.providers.v1beta1.ListProvidersResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.providers.v1beta1.ListProvidersResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.providers.v1beta1.ListProvidersResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.ListProvidersResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getProvidersList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.fonoster.providers.v1beta1.Provider.serializeBinaryToWriter - ); - } - f = message.getNextPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * repeated Provider providers = 1; - * @return {!Array} - */ -proto.fonoster.providers.v1beta1.ListProvidersResponse.prototype.getProvidersList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.fonoster.providers.v1beta1.Provider, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.providers.v1beta1.ListProvidersResponse} returns this -*/ -proto.fonoster.providers.v1beta1.ListProvidersResponse.prototype.setProvidersList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.fonoster.providers.v1beta1.Provider=} opt_value - * @param {number=} opt_index - * @return {!proto.fonoster.providers.v1beta1.Provider} - */ -proto.fonoster.providers.v1beta1.ListProvidersResponse.prototype.addProviders = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.providers.v1beta1.Provider, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.providers.v1beta1.ListProvidersResponse} returns this - */ -proto.fonoster.providers.v1beta1.ListProvidersResponse.prototype.clearProvidersList = function() { - return this.setProvidersList([]); -}; - - -/** - * optional string next_page_token = 2; - * @return {string} - */ -proto.fonoster.providers.v1beta1.ListProvidersResponse.prototype.getNextPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.ListProvidersResponse} returns this - */ -proto.fonoster.providers.v1beta1.ListProvidersResponse.prototype.setNextPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.providers.v1beta1.CreateProviderRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.providers.v1beta1.CreateProviderRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - username: jspb.Message.getFieldWithDefault(msg, 3, ""), - secret: jspb.Message.getFieldWithDefault(msg, 4, ""), - host: jspb.Message.getFieldWithDefault(msg, 5, ""), - transport: jspb.Message.getFieldWithDefault(msg, 6, ""), - expires: jspb.Message.getFieldWithDefault(msg, 7, 0), - register: jspb.Message.getBooleanFieldWithDefault(msg, 8, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.providers.v1beta1.CreateProviderRequest} - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.providers.v1beta1.CreateProviderRequest; - return proto.fonoster.providers.v1beta1.CreateProviderRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.providers.v1beta1.CreateProviderRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.providers.v1beta1.CreateProviderRequest} - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setUsername(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setSecret(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setTransport(value); - break; - case 7: - var value = /** @type {number} */ (reader.readInt32()); - msg.setExpires(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setRegister(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.providers.v1beta1.CreateProviderRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.providers.v1beta1.CreateProviderRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getUsername(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getSecret(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getTransport(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExpires(); - if (f !== 0) { - writer.writeInt32( - 7, - f - ); - } - f = message.getRegister(); - if (f) { - writer.writeBool( - 8, - f - ); - } -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.CreateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string username = 3; - * @return {string} - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.getUsername = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.CreateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.setUsername = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string secret = 4; - * @return {string} - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.getSecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.CreateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.setSecret = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string host = 5; - * @return {string} - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.CreateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string transport = 6; - * @return {string} - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.getTransport = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.CreateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.setTransport = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional int32 expires = 7; - * @return {number} - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.getExpires = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.providers.v1beta1.CreateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.setExpires = function(value) { - return jspb.Message.setProto3IntField(this, 7, value); -}; - - -/** - * optional bool register = 8; - * @return {boolean} - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.getRegister = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.fonoster.providers.v1beta1.CreateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.CreateProviderRequest.prototype.setRegister = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.providers.v1beta1.UpdateProviderRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.providers.v1beta1.UpdateProviderRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - username: jspb.Message.getFieldWithDefault(msg, 3, ""), - secret: jspb.Message.getFieldWithDefault(msg, 4, ""), - host: jspb.Message.getFieldWithDefault(msg, 5, ""), - transport: jspb.Message.getFieldWithDefault(msg, 6, ""), - expires: jspb.Message.getFieldWithDefault(msg, 7, 0), - register: jspb.Message.getBooleanFieldWithDefault(msg, 8, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.providers.v1beta1.UpdateProviderRequest} - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.providers.v1beta1.UpdateProviderRequest; - return proto.fonoster.providers.v1beta1.UpdateProviderRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.providers.v1beta1.UpdateProviderRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.providers.v1beta1.UpdateProviderRequest} - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setUsername(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setSecret(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setTransport(value); - break; - case 7: - var value = /** @type {number} */ (reader.readInt32()); - msg.setExpires(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setRegister(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.providers.v1beta1.UpdateProviderRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.providers.v1beta1.UpdateProviderRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getUsername(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getSecret(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getTransport(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExpires(); - if (f !== 0) { - writer.writeInt32( - 7, - f - ); - } - f = message.getRegister(); - if (f) { - writer.writeBool( - 8, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.UpdateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.UpdateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string username = 3; - * @return {string} - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.getUsername = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.UpdateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.setUsername = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string secret = 4; - * @return {string} - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.getSecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.UpdateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.setSecret = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string host = 5; - * @return {string} - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.UpdateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string transport = 6; - * @return {string} - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.getTransport = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.UpdateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.setTransport = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional int32 expires = 7; - * @return {number} - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.getExpires = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.providers.v1beta1.UpdateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.setExpires = function(value) { - return jspb.Message.setProto3IntField(this, 7, value); -}; - - -/** - * optional bool register = 8; - * @return {boolean} - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.getRegister = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.fonoster.providers.v1beta1.UpdateProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.UpdateProviderRequest.prototype.setRegister = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.providers.v1beta1.GetProviderRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.providers.v1beta1.GetProviderRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.providers.v1beta1.GetProviderRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.GetProviderRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.providers.v1beta1.GetProviderRequest} - */ -proto.fonoster.providers.v1beta1.GetProviderRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.providers.v1beta1.GetProviderRequest; - return proto.fonoster.providers.v1beta1.GetProviderRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.providers.v1beta1.GetProviderRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.providers.v1beta1.GetProviderRequest} - */ -proto.fonoster.providers.v1beta1.GetProviderRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.providers.v1beta1.GetProviderRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.providers.v1beta1.GetProviderRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.providers.v1beta1.GetProviderRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.GetProviderRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.providers.v1beta1.GetProviderRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.GetProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.GetProviderRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.providers.v1beta1.DeleteProviderRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.providers.v1beta1.DeleteProviderRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.providers.v1beta1.DeleteProviderRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.DeleteProviderRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.providers.v1beta1.DeleteProviderRequest} - */ -proto.fonoster.providers.v1beta1.DeleteProviderRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.providers.v1beta1.DeleteProviderRequest; - return proto.fonoster.providers.v1beta1.DeleteProviderRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.providers.v1beta1.DeleteProviderRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.providers.v1beta1.DeleteProviderRequest} - */ -proto.fonoster.providers.v1beta1.DeleteProviderRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.providers.v1beta1.DeleteProviderRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.providers.v1beta1.DeleteProviderRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.providers.v1beta1.DeleteProviderRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.DeleteProviderRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.providers.v1beta1.DeleteProviderRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.DeleteProviderRequest} returns this - */ -proto.fonoster.providers.v1beta1.DeleteProviderRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.providers.v1beta1.Provider.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.providers.v1beta1.Provider.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.providers.v1beta1.Provider} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.Provider.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - username: jspb.Message.getFieldWithDefault(msg, 3, ""), - secret: jspb.Message.getFieldWithDefault(msg, 4, ""), - host: jspb.Message.getFieldWithDefault(msg, 5, ""), - transport: jspb.Message.getFieldWithDefault(msg, 6, ""), - expires: jspb.Message.getFieldWithDefault(msg, 7, 0), - createTime: jspb.Message.getFieldWithDefault(msg, 8, ""), - updateTime: jspb.Message.getFieldWithDefault(msg, 9, ""), - register: jspb.Message.getBooleanFieldWithDefault(msg, 10, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.providers.v1beta1.Provider} - */ -proto.fonoster.providers.v1beta1.Provider.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.providers.v1beta1.Provider; - return proto.fonoster.providers.v1beta1.Provider.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.providers.v1beta1.Provider} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.providers.v1beta1.Provider} - */ -proto.fonoster.providers.v1beta1.Provider.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setUsername(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setSecret(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setTransport(value); - break; - case 7: - var value = /** @type {number} */ (reader.readInt32()); - msg.setExpires(value); - break; - case 8: - var value = /** @type {string} */ (reader.readString()); - msg.setCreateTime(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setUpdateTime(value); - break; - case 10: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setRegister(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.providers.v1beta1.Provider.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.providers.v1beta1.Provider.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.providers.v1beta1.Provider} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.providers.v1beta1.Provider.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getUsername(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getSecret(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getTransport(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExpires(); - if (f !== 0) { - writer.writeInt32( - 7, - f - ); - } - f = message.getCreateTime(); - if (f.length > 0) { - writer.writeString( - 8, - f - ); - } - f = message.getUpdateTime(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getRegister(); - if (f) { - writer.writeBool( - 10, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.providers.v1beta1.Provider.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.Provider} returns this - */ -proto.fonoster.providers.v1beta1.Provider.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.fonoster.providers.v1beta1.Provider.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.Provider} returns this - */ -proto.fonoster.providers.v1beta1.Provider.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string username = 3; - * @return {string} - */ -proto.fonoster.providers.v1beta1.Provider.prototype.getUsername = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.Provider} returns this - */ -proto.fonoster.providers.v1beta1.Provider.prototype.setUsername = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string secret = 4; - * @return {string} - */ -proto.fonoster.providers.v1beta1.Provider.prototype.getSecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.Provider} returns this - */ -proto.fonoster.providers.v1beta1.Provider.prototype.setSecret = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string host = 5; - * @return {string} - */ -proto.fonoster.providers.v1beta1.Provider.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.Provider} returns this - */ -proto.fonoster.providers.v1beta1.Provider.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string transport = 6; - * @return {string} - */ -proto.fonoster.providers.v1beta1.Provider.prototype.getTransport = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.Provider} returns this - */ -proto.fonoster.providers.v1beta1.Provider.prototype.setTransport = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional int32 expires = 7; - * @return {number} - */ -proto.fonoster.providers.v1beta1.Provider.prototype.getExpires = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.providers.v1beta1.Provider} returns this - */ -proto.fonoster.providers.v1beta1.Provider.prototype.setExpires = function(value) { - return jspb.Message.setProto3IntField(this, 7, value); -}; - - -/** - * optional string create_time = 8; - * @return {string} - */ -proto.fonoster.providers.v1beta1.Provider.prototype.getCreateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.Provider} returns this - */ -proto.fonoster.providers.v1beta1.Provider.prototype.setCreateTime = function(value) { - return jspb.Message.setProto3StringField(this, 8, value); -}; - - -/** - * optional string update_time = 9; - * @return {string} - */ -proto.fonoster.providers.v1beta1.Provider.prototype.getUpdateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.providers.v1beta1.Provider} returns this - */ -proto.fonoster.providers.v1beta1.Provider.prototype.setUpdateTime = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional bool register = 10; - * @return {boolean} - */ -proto.fonoster.providers.v1beta1.Provider.prototype.getRegister = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 10, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.fonoster.providers.v1beta1.Provider} returns this - */ -proto.fonoster.providers.v1beta1.Provider.prototype.setRegister = function(value) { - return jspb.Message.setProto3BooleanField(this, 10, value); -}; - - -goog.object.extend(exports, proto.fonoster.providers.v1beta1); diff --git a/mods/providers/src/service/providers.ts b/mods/providers/src/service/providers.ts deleted file mode 100644 index 7dd473d39..000000000 --- a/mods/providers/src/service/providers.ts +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable require-jsdoc */ -import grpc from "@grpc/grpc-js"; -import { - Provider, - ListProvidersRequest, - ListProvidersResponse, - GetProviderRequest, - CreateProviderRequest, - UpdateProviderRequest, - DeleteProviderRequest -} from "./protos/providers_pb"; -import { Empty } from "./protos/common_pb"; -import { - IProvidersService, - ProvidersService, - IProvidersServer -} from "./protos/providers_grpc_pb"; -import { Kind, ResourceBuilder } from "@fonoster/core"; -import { - updateResource, - createResource, - ResourceServer, - getAccessKeyId -} from "@fonoster/core"; -import decoder from "./decoder"; -import { assertIsValidHost } from "./assertions"; - -class ProvidersServer implements IProvidersServer { - [name: string]: grpc.UntypedHandleCall; - async listProviders( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - const result = await ResourceServer.listResources(Kind.GATEWAY, call); - const response = new ListProvidersResponse(); - if (result && result.resources) { - const providers = result.resources.map((resource) => decoder(resource)); - response.setNextPageToken(result.nextPageToken + ""); - response.setProvidersList(providers); - } - callback(null, response); - } - - async createProvider( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - // The host must be hostname:{port} - assertIsValidHost(call.request.getHost()); - const resource = new ResourceBuilder(Kind.GATEWAY, call.request.getName()) - .withCredentials(call.request.getUsername(), call.request.getSecret()) - .withHost(call.request.getHost()) - .withTransport(call.request.getTransport()) - .withExpires(call.request.getExpires()) - .withMetadata({ accessKeyId: getAccessKeyId(call) }) - .withSendRegister(call.request.getRegister()) - .build(); - - const result = await createResource(resource); - callback(null, decoder(result)); - } catch (e) { - callback(e, null); - } - } - - async updateProvider( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - assertIsValidHost(call.request.getHost()); - const provider = (await ResourceServer.getResource( - Kind.GATEWAY, - call - )) as any; - - const resource = new ResourceBuilder( - Kind.GATEWAY, - call.request.getName(), - provider.metadata.ref - ) - .withMetadata({ - createdOn: provider.metadata.createdOn - }) - .withCredentials(call.request.getUsername(), call.request.getSecret()) - .withHost(call.request.getHost()) - .withTransport(call.request.getTransport()) - .withExpires(call.request.getExpires()) - .withSendRegister(call.request.getRegister()) - .build(); - - const result = await updateResource({ - resource, - accessKeyId: getAccessKeyId(call) - }); - - callback(null, decoder(result)); - } catch (e) { - callback(e, null); - } - } - - async getProvider( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const result = await ResourceServer.getResource(Kind.GATEWAY, call); - callback(null, decoder(result)); - } catch (e) { - callback(e, null); - } - } - - async deleteProvider( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - await ResourceServer.deleteResource(Kind.GATEWAY, call); - callback(null, new Empty()); - } catch (e) { - callback(e, null); - } - } -} - -export { ProvidersServer as default, IProvidersService, ProvidersService }; diff --git a/mods/providers/src/service/runner.ts b/mods/providers/src/service/runner.ts deleted file mode 100644 index 9b481856f..000000000 --- a/mods/providers/src/service/runner.ts +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -require("@fonoster/common").Tracer.init("providers-service"); -import ProvidersServer from "./providers"; -import { ProvidersService } from "./protos/providers_grpc_pb"; -import { AuthMiddleware, limiterMiddleware } from "@fonoster/auth"; -import { getSalt } from "@fonoster/certs"; -import { runServices } from "@fonoster/common"; - -const services = [ - { - name: "providers", - version: "v1beta1", - service: ProvidersService, - server: new ProvidersServer() - } -]; - -const middlewares = [ - { - name: "authenticator", - middlewareObj: new AuthMiddleware(getSalt()).middleware - }, - { - name: "limiter", - middlewareObj: limiterMiddleware - } -]; - -runServices(services, middlewares); diff --git a/mods/providers/test/providers.unit.test.ts b/mods/providers/test/providers.unit.test.ts deleted file mode 100644 index d040d7197..000000000 --- a/mods/providers/test/providers.unit.test.ts +++ /dev/null @@ -1,278 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { APIClient } from "@fonoster/common"; -import Providers, { ProvidersPB } from "../src/client/providers"; -import providerDecoder from "../src/service/decoder"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/providers", () => { - const providerObj = new ProvidersPB.Provider(); - providerObj.setRef("Nx05y-ldZa"); - providerObj.setName("Fake Provider"); - providerObj.setUsername("test"); - providerObj.setSecret("uio3uwd12s23"); - providerObj.setHost("sip.provider.net"); - providerObj.setTransport("tcp"); - providerObj.setExpires(600); - providerObj.setRegister(true); - providerObj.setUpdateTime("..."); - providerObj.setCreateTime("..."); - - afterEach(() => sandbox.restore()); - - it("should create a provider", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - createProvider: () => { - return { - sendMessage: () => Promise.resolve(providerObj) - }; - } - }); - - const req = { - name: providerObj.getName(), - username: providerObj.getUsername(), - secret: providerObj.getSecret(), - host: providerObj.getHost(), - transport: providerObj.getTransport(), - expires: providerObj.getExpires(), - register: providerObj.getRegister(), - createTime: providerObj.getCreateTime(), - updateTime: providerObj.getUpdateTime() - }; - - const providerAPI = new Providers(); - const result = await providerAPI.createProvider(req); - - expect(result).to.have.property("ref").to.be.equal(providerObj.getRef()); - expect(result).to.have.property("name").to.be.equal(providerObj.getName()); - expect(result).to.have.property("host").to.be.equal(providerObj.getHost()); - expect(result).to.have.property("register").to.be.equal(providerObj.getRegister()); - expect(result) - .to.have.property("transport") - .to.be.equal(providerObj.getTransport()); - expect(result).to.have.property("createTime").not.to.be.null; - expect(result).to.have.property("updateTime").not.to.be.null; - - expect(serviceStub).to.have.been.calledTwice; - }); - - it("should get a provider", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - getProvider: () => { - return { - sendMessage: () => Promise.resolve(providerObj) - }; - } - }); - - const request = "Nx05y-ldZa"; - - const providerAPI = new Providers(); - const result = await providerAPI.getProvider(request); - - expect(result).to.have.property("ref").to.be.equal(providerObj.getRef()); - expect(result).to.have.property("name").to.be.equal(providerObj.getName()); - expect(result).to.have.property("host").to.be.equal(providerObj.getHost()); - expect(result).to.have.property("register").to.be.equal(providerObj.getRegister()); - expect(result) - .to.have.property("transport") - .to.be.equal(providerObj.getTransport()); - expect(result).to.have.property("createTime").not.to.be.null; - expect(result).to.have.property("updateTime").not.to.be.null; - expect(serviceStub).to.have.been.calledTwice; - }); - - it("should delete a Provider", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - deleteProvider: () => { - return { - sendMessage: () => Promise.resolve({ ref: providerObj.getRef() }) - }; - } - }); - - const providerAPI = new Providers(); - const res = await providerAPI.deleteProvider(providerObj.getRef()); - expect(serviceStub).to.have.been.calledTwice; - expect(res).to.have.property("ref").to.be.equal(providerObj.getRef()); - }); - - it("should list providers", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - listProviders: () => { - return { - sendMessage: () => - Promise.resolve({ - getNextPageToken: () => "1", - getProvidersList: () => [providerObj] - }) - }; - } - }); - - const request = { - pageSize: 0, - pageToken: "1", - view: 0 - }; - - const providerAPI = new Providers(); - const result = await providerAPI.listProviders(request); - - expect(serviceStub).to.be.calledTwice; - expect(result).to.have.property("nextPageToken").to.be.equal("1"); - expect(result.providers[0]) - .to.have.property("ref") - .to.be.equal(providerObj.getRef()); - expect(result.providers[0]) - .to.have.property("name") - .to.be.equal(providerObj.getName()); - expect(result.providers[0]) - .to.have.property("host") - .to.be.equal(providerObj.getHost()); - expect(result.providers[0]) - .to.have.property("transport") - .to.be.equal(providerObj.getTransport()); - expect(result.providers[0]) - .to.have.property("register") - .to.be.equal(providerObj.getRegister()); - expect(result.providers[0]).to.have.property("createTime").not.to.be.null; - expect(result.providers[0]).to.have.property("updateTime").not.to.be.null; - }); - - it("should update a provider (name)", async () => { - const request = { - ref: providerObj.getRef(), - name: providerObj.getName(), - register: providerObj.getRegister(), - }; - - const returnProvider = { - ref: providerObj.getRef(), - name: providerObj.getName(), - username: providerObj.getName(), - secret: providerObj.getName(), - host: providerObj.getName(), - transport: providerObj.getName(), - expires: providerObj.getName(), - register: providerObj.getRegister(), - createTime: providerObj.getCreateTime(), - updateTime: providerObj.getUpdateTime() - }; - - sandbox.stub(APIClient.prototype, "init").returns(); - const updateProviderStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - updateProvider: () => { - return { - sendMessage: () => - Promise.resolve({ getRef: () => returnProvider.ref }) - }; - }, - getProvider: () => { - return { - sendMessage: () => Promise.resolve(providerObj) - }; - } - }); - - const providerAPI = new Providers(); - const result = await providerAPI.updateProvider(request); - expect(result).to.have.property("ref").to.be.equal(returnProvider.ref); - expect(updateProviderStub).to.be.calledTwice; - }); - - context("provider decoder", () => { - let jsonObj; - - beforeEach(() => { - jsonObj = { - metadata: { - ref: "001", - name: "provider002", - createdOn: "DATE", - modifiedOn: "DATE" - }, - spec: { - host: "127.0.0.1", - transport: "tcp", - expires: 0, - register: false, - credentials: { - username: "trunk001", - secret: "1234" - } - } - }; - }); - - it("should create a provider object from a json object", () => { - const provider = providerDecoder(jsonObj); - expect(provider.getRef()).to.be.equal(jsonObj.metadata.ref); - expect(provider.getName()).to.be.equal(jsonObj.metadata.name); - expect(provider.getCreateTime()).to.be.equal(jsonObj.metadata.createdOn); - expect(provider.getUpdateTime()).to.be.equal(jsonObj.metadata.modifiedOn); - expect(provider.getHost()).to.be.equal(jsonObj.spec.host); - expect(provider.getTransport()).to.be.equal(jsonObj.spec.transport); - expect(provider.getExpires()).to.be.equal(jsonObj.spec.expires); - expect(provider.getRegister()).to.be.equal(jsonObj.spec.register); - expect(provider.getUsername()).to.be.equal( - jsonObj.spec.credentials.username - ); - expect(provider.getSecret()).to.be.equal(jsonObj.spec.credentials.secret); - }); - - it("should create a provider object from a json object without credentials", () => { - delete jsonObj.spec.credentials; - const provider = providerDecoder(jsonObj); - expect(provider.getRef()).to.be.equal(jsonObj.metadata.ref); - expect(provider.getName()).to.be.equal(jsonObj.metadata.name); - expect(provider.getCreateTime()).to.be.equal(jsonObj.metadata.createdOn); - expect(provider.getUpdateTime()).to.be.equal(jsonObj.metadata.modifiedOn); - expect(provider.getHost()).to.be.equal(jsonObj.spec.host); - expect(provider.getTransport()).to.be.equal(jsonObj.spec.transport); - expect(provider.getExpires()).to.be.equal(jsonObj.spec.expires); - expect(provider.getRegister()).to.be.equal(jsonObj.spec.register); - expect(provider.getUsername()).to.be.a("string").lengthOf(0); - expect(provider.getSecret()).to.be.a("string").lengthOf(0); - }); - }); -}); diff --git a/mods/providers/tsconfig.json b/mods/providers/tsconfig.json deleted file mode 100644 index b99288228..000000000 --- a/mods/providers/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../common" }, - { "path": "../core" }, - { "path": "../types" }, - { "path": "../logger" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/sdk/.gitignore b/mods/sdk/.gitignore new file mode 100644 index 000000000..eea9ff2c8 --- /dev/null +++ b/mods/sdk/.gitignore @@ -0,0 +1,2 @@ +.rollup.cache/* +public/fonoster.min.js \ No newline at end of file diff --git a/mods/sdk/.intro.md b/mods/sdk/.intro.md new file mode 100644 index 000000000..6604fd1b1 --- /dev/null +++ b/mods/sdk/.intro.md @@ -0,0 +1,120 @@ +sdk +================= + +[![Fonoster](https://img.shields.io/badge/fonoster-sdk-brightgreen.svg)](https://fonoster.com) +[![Version](https://img.shields.io/npm/v/@fonoster/sdk.svg)](https://npmjs.org/package/@fonoster/sdk) +[![Downloads/week](https://img.shields.io/npm/dw/@fonoster/sdk.svg)](https://npmjs.org/package/@fonoster/sdk) +[![License](https://img.shields.io/npm/l/@fonoster/sdk.svg)](https://github.com/fonoster/fonoster/blob/main/package.json) + +This package provides a set of utilities for working with Fonoster services. It is a polymorphic SDK that can be used in a browser or a Node.js environment. + +* [Installation](#installation) +* [Example](#example) +* [APIs](#apis) + +## Installation + +```sh-session +$ npm install --save @fonoster/sdk +``` + +Or using yarn: + +```sh-session +$ yarn add @fonoster/sdk +``` + +Or in the browser: + +```html + +``` + +### Importing the library + +For CommonJS projects: + +```typescript +const SDK = require("@fonoster/sdk"); +``` + +For ES6 modules: + +```typescript +import * as SDK from "@fonoster/sdk"; +``` + +Directly in the browser: + +```html + + +``` + +## Example + +Create a new SDK instance to interact with the Fonoster API. The SDK requires a client object to handle communication with the API. + +### Creating a client object + +In Node.js: + +```typescript +const SDK = require("@fonoster/sdk"); +const ACCESS_KEY_ID = "WO00000000000000000000000000000000"; +const ENDPOINT = "api.fonoster.com"; +const client = new SDK.Client({ accessKeyId: ACCESS_KEY_ID, endpoint: ENDPOINT }); +``` + +When connecting to Fonoster's cloud services, you can omit the `endpoint` parameter. + +In the browser: + +```typescript +const SDK = require("@fonoster/sdk"); +const ACCESS_KEY_ID = "WO00000000000000000000000000000000"; +const URL = "https://api.fonoster.com/v1beta2"; +const client = new SDK.WebClient({ accessKeyId: ACCESS_KEY_ID, url: URL }); +``` + +When connecting to Fonoster's cloud services, you can omit the `url` parameter. + +### Login in and make requests + +```typescript +const username = "admin@fonoster.local"; +const password = "changeme"; + +async function main() { + await client.login(username, password); + const applications = new SDK.Applications(client); + await applications.createApplication({ + name: "MyApp", + type: "EXTERNAL", + endpoint: "localhost:50061" // Your app's endpoint + }); +} + +main().catch(console.error); +``` + +In addition to the `login` method, the SDK provides a `loginWithApiKey` and `loginWithRefreshToken` methods. The `loginWithRefreshToken` is helpful in browser environments where you want to keep the user logged in between sessions. + +The SDK will automatically refresh the token when it expires. + +## APIs + +* [`Applications`](#Applications) +* [`Acls`](#Acls) +* [`Agents`](#Agents) +* [`ApiKeys`](#ApiKeys) +* [`Calls`](#Calls) +* [`Credentials`](#Credentials) +* [`Domains`](#Domains) +* [`Numbers`](#Numbers) +* [`Secrets`](#Secrets) +* [`Trunks`](#Trunks) +* [`Users`](#Users) +* [`Workspaces`](#Workspaces) diff --git a/mods/sdk/.lerna-changed-buster-192 b/mods/sdk/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/ctl/.lerna-changed-buster-192 b/mods/sdk/.lerna-changed-buster-5577 similarity index 100% rename from mods/ctl/.lerna-changed-buster-192 rename to mods/sdk/.lerna-changed-buster-5577 diff --git a/mods/sdk/.npmignore b/mods/sdk/.npmignore index 385fe1863..1bc36bdd4 100644 --- a/mods/sdk/.npmignore +++ b/mods/sdk/.npmignore @@ -1,7 +1,7 @@ -node_modules .nyc_output coverage src test *.log -*.ts \ No newline at end of file +.ts +.rollup.cache/* \ No newline at end of file diff --git a/mods/sdk/README.md b/mods/sdk/README.md new file mode 100644 index 000000000..29b5d7813 --- /dev/null +++ b/mods/sdk/README.md @@ -0,0 +1,2570 @@ +sdk +================= + +[![Fonoster](https://img.shields.io/badge/fonoster-sdk-brightgreen.svg)](https://fonoster.com) +[![Version](https://img.shields.io/npm/v/@fonoster/sdk.svg)](https://npmjs.org/package/@fonoster/sdk) +[![Downloads/week](https://img.shields.io/npm/dw/@fonoster/sdk.svg)](https://npmjs.org/package/@fonoster/sdk) +[![License](https://img.shields.io/npm/l/@fonoster/sdk.svg)](https://github.com/fonoster/fonoster/blob/main/package.json) + +This package provides a set of utilities for working with Fonoster services. It is a polymorphic SDK that can be used in a browser or a Node.js environment. + +* [Installation](#installation) +* [Example](#example) +* [APIs](#apis) + +## Installation + +```sh-session +$ npm install --save @fonoster/sdk +``` + +Or using yarn: + +```sh-session +$ yarn add @fonoster/sdk +``` + +Or in the browser: + +```html + +``` + +### Importing the library + +For CommonJS projects: + +```typescript +const SDK = require("@fonoster/sdk"); +``` + +For ES6 modules: + +```typescript +import * as SDK from "@fonoster/sdk"; +``` + +Directly in the browser: + +```html + + +``` + +## Example + +Create a new SDK instance to interact with the Fonoster API. The SDK requires a client object to handle communication with the API. + +### Creating a client object + +In Node.js: + +```typescript +const SDK = require("@fonoster/sdk"); +const ACCESS_KEY_ID = "WO00000000000000000000000000000000"; +const ENDPOINT = "api.fonoster.com"; +const client = new SDK.Client({ accessKeyId: ACCESS_KEY_ID, endpoint: ENDPOINT }); +``` + +When connecting to Fonoster's cloud services, you can omit the `endpoint` parameter. + +In the browser: + +```typescript +const SDK = require("@fonoster/sdk"); +const ACCESS_KEY_ID = "WO00000000000000000000000000000000"; +const URL = "https://api.fonoster.com/v1beta2"; +const client = new SDK.WebClient({ accessKeyId: ACCESS_KEY_ID, url: URL }); +``` + +When connecting to Fonoster's cloud services, you can omit the `url` parameter. + +### Login in and make requests + +```typescript +const username = "admin@fonoster.local"; +const password = "changeme"; + +async function main() { + await client.login(username, password); + const applications = new SDK.Applications(client); + await applications.createApplication({ + name: "MyApp", + type: "EXTERNAL", + endpoint: "localhost:50061" // Your app's endpoint + }); +} + +main().catch(console.error); +``` + +In addition to the `login` method, the SDK provides a `loginWithApiKey` and `loginWithRefreshToken` methods. The `loginWithRefreshToken` is helpful in browser environments where you want to keep the user logged in between sessions. + +The SDK will automatically refresh the token when it expires. + +## APIs + +* [`Applications`](#Applications) +* [`Acls`](#Acls) +* [`Agents`](#Agents) +* [`ApiKeys`](#ApiKeys) +* [`Calls`](#Calls) +* [`Credentials`](#Credentials) +* [`Domains`](#Domains) +* [`Numbers`](#Numbers) +* [`Secrets`](#Secrets) +* [`Trunks`](#Trunks) +* [`Users`](#Users) +* [`Workspaces`](#Workspaces) + + + + +## Acls +Fonoster Acls, part of the Fonoster SIP Proxy subsystem, +allows you to create, update, retrieve, and delete Access Control Lists (ACLs) rules for your deployment. +Note that an active Fonoster deployment is required. + +**Kind**: global class +**See** + +- AbstractClient +- FonosterClient + + +* [Acls](#Acls) + * [new Acls(client)](#new_Acls_new) + * [.createAcl(request)](#Acls+createAcl) ⇒ Promise.<BaseApiObject> + * [.getAcl(ref)](#Acls+getAcl) ⇒ Promise.<Acl> + * [.updateAcl(request)](#Acls+updateAcl) ⇒ Promise.<BaseApiObject> + * [.listAcls(request)](#Acls+listAcls) ⇒ Promise.<ListAclsResponse> + * [.deleteAcl(ref)](#Acls+deleteAcl) ⇒ Promise.<BaseApiObject> + + + +### new Acls(client) +Constructs a new Acls object. + + +| Param | Type | Description | +| --- | --- | --- | +| client | FonosterClient | Client object with underlying implementations to make requests to Fonoster's API | + +**Example** +```js +const SDK = require("@fonoster/sdk"); + +async function main(request) { + const apiKey = "your-api-key"; + const apiSecret = "your-api-secret" + const accessKeyId = "WO00000000000000000000000000000000"; + + try { + const client = SDK.Client({ accessKeyId }); + await client.loginWithApiKey(apiKey, apiSecret); + + const acls = new SDK.Acls(client); + const response = await acls.createAcl(request); + + console.log(response); // successful response + } catch (e) { + console.error(e); // an error occurred + } +} + +const request = { + name: "My ACL", + allow: ["47.132.130.31"] // Allow only this IP +}; + +main(request); +``` + + +### acls.createAcl(request) ⇒ Promise.<BaseApiObject> +Creates a new Acl in the Workspace. + +**Kind**: instance method of [Acls](#Acls) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the created Acl + +| Param | Type | Description | +| --- | --- | --- | +| request | CreateAclRequest | The request object that contains the necessary information to create a new Acl | +| request.name | string | The name of the Acl | +| request.allow | Array.<string> | The list of IPs to allow | + +**Example** +```js +const acls = new SDK.Acls(client); // Existing client object + +const request = { + name: "My ACL", + allow: ["47.132.130.31"] // Allow only this IP +}; + +acls + .createAcl(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### acls.getAcl(ref) ⇒ Promise.<Acl> +Retrieves an existing Acl in the Workspace. + +**Kind**: instance method of [Acls](#Acls) +**Returns**: Promise.<Acl> - - The response object that contains the Acl information + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Acl to retrieve | + +**Example** +```js +const acls = new SDK.Acls(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +acls + .getAcl(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### acls.updateAcl(request) ⇒ Promise.<BaseApiObject> +Updates an existing Acl in the Workspace. + +**Kind**: instance method of [Acls](#Acls) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the updated Acl + +| Param | Type | Description | +| --- | --- | --- | +| request | UpdateAclRequest | The request object that contains the necessary information to update an existing Acl | +| request.ref | string | The reference of the Acl to update | +| request.name | string | The name of the Acl | +| request.allow | Array.<string> | The list of IPs to allow | + +**Example** +```js +const acls = new SDK.Acls(client); // Existing client object + +const request = { + ref: "00000000-0000-0000-0000-000000000000", + name: "My ACL", + allow: ["47.132.130.31"] // Allow only this IP +}; + +acls + .updateAcl(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### acls.listAcls(request) ⇒ Promise.<ListAclsResponse> +Retrieves a list of Acls from a Workspace. + +**Kind**: instance method of [Acls](#Acls) +**Returns**: Promise.<ListAclsResponse> - - The response object that contains the list of Acls + +| Param | Type | Description | +| --- | --- | --- | +| request | ListAclsRequest | The request object that contains the necessary information to retrieve a list of Acls | +| request.pageSize | number | The number of Acls to retrieve | +| request.pageToken | string | The token to retrieve the next page of Acls | + +**Example** +```js +const acls = new SDK.Acls(client); // Existing client object + +const request = { + pageSize: 10, + pageToken: "00000000-0000-0000-0000-000000000000" +}; + +acls + .listAcls(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### acls.deleteAcl(ref) ⇒ Promise.<BaseApiObject> +Deletes an existing Acl from Fonoster. +Note that this operation is irreversible. + +**Kind**: instance method of [Acls](#Acls) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the deleted Acl + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Acl to delete | + +**Example** +```js +const acls = new SDK.Acls(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +acls + .deleteAcl(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + + +## Agents +Fonoster Agents, part of the Fonoster SIP Proxy subsystem, +allows you to create, update, retrieve, and delete SIP Agents for your deployment. +Note that an active Fonoster deployment is required. + +**Kind**: global class +**See** + +- AbstractClient +- FonosterClient + + +* [Agents](#Agents) + * [new Agents(client)](#new_Agents_new) + * [.createAgent(request)](#Agents+createAgent) ⇒ Promise.<BaseApiObject> + * [.getAgent(ref)](#Agents+getAgent) ⇒ Promise.<Acl> + * [.updateAgent(request)](#Agents+updateAgent) ⇒ Promise.<BaseApiObject> + * [.listAgents(request)](#Agents+listAgents) ⇒ Promise.<ListAgentsResponse> + * [.deleteAgent(ref)](#Agents+deleteAgent) ⇒ Promise.<BaseApiObject> + + + +### new Agents(client) +Constructs a new Agents object. + + +| Param | Type | Description | +| --- | --- | --- | +| client | FonosterClient | Client object with underlying implementations to make requests to Fonoster's API | + +**Example** +```js +const SDK = require("@fonoster/sdk"); + +async function main(request) { + const apiKey = "your-api-key"; + const apiSecret = "your-api-secret" + const accessKeyId = "WO00000000000000000000000000000000"; + + try { + const client = SDK.Client({ accessKeyId }); + await client.loginWithApiKey(apiKey, apiSecret); + + const agents = new SDK.Agents(client); + const response = await agents.createAgent(request); + + console.log(response); // successful response + } catch (e) { + console.error(e); // an error occurred + } +} + +const request = { + name: "John Doe", + username: "1001", + privacy: "PRIVATE", + enabled: true, + maxContacts: 3 + domainRef: "00000000-0000-0000-0000-000000000000" +}; + +main(request); +``` + + +### agents.createAgent(request) ⇒ Promise.<BaseApiObject> +Creates a new Agent in the Workspace. + +**Kind**: instance method of [Agents](#Agents) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the created Agent + +| Param | Type | Description | +| --- | --- | --- | +| request | CreateAgentRequest | The request object that contains the necessary information to create a new Agent | +| request.name | string | The name of the Agent | +| request.username | string | The username of the Agent | +| request.privacy | Privacy | The privacy of the Agent | +| request.enabled | boolean | The status of the Agent | +| request.maxContacts | number | The maximum number of contacts the Agent can have | +| request.domainRef | string | The reference of the Domain to associate the Agent | + +**Example** +```js +const agents = new SDK.Agents(client); // Existing client object + +const request = { + name: "John Doe", + username: "1001", + privacy: "PRIVATE", + enabled: true, + maxContacts: 3 + domainRef: "00000000-0000-0000-0000-000000000000" +}; + +agents + .createAgent(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### agents.getAgent(ref) ⇒ Promise.<Acl> +Retrieves an existing Agent in the Workspace. + +**Kind**: instance method of [Agents](#Agents) +**Returns**: Promise.<Acl> - - The response object that contains the Agent information + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Agent to retrieve | + +**Example** +```js +const agents = new SDK.Agents(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +agents + .getAgent(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### agents.updateAgent(request) ⇒ Promise.<BaseApiObject> +Updates an existing Agent in the Workspace. + +**Kind**: instance method of [Agents](#Agents) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the updated Agent + +| Param | Type | Description | +| --- | --- | --- | +| request | UpdateAgentRequest | The request object that contains the necessary information to update an existing Agent | +| request.ref | string | The reference of the Agent to update | +| request.name | string | The name of the Agent | +| request.privacy | Privacy | The privacy of the Agent | +| request.enabled | boolean | The status of the Agent | +| request.maxContacts | number | The maximum number of contacts the Agent can have | +| request.domainRef | string | The reference of the Domain to associate the Agent | + +**Example** +```js +const agents = new SDK.Agents(client); // Existing client object + +const request = { + ref: "00000000-0000-0000-0000-000000000000", + name: "John Doe", + privacy: "PRIVATE", + enabled: true, + maxContacts: 3 + domainRef: "00000000-0000-0000-0000-000000000000" +}; + +agents + .updateAgent(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### agents.listAgents(request) ⇒ Promise.<ListAgentsResponse> +Retrieves a list of Agents from a Workspace. + +**Kind**: instance method of [Agents](#Agents) +**Returns**: Promise.<ListAgentsResponse> - - The response object that contains the list of Agents + +| Param | Type | Description | +| --- | --- | --- | +| request | ListAgentsRequest | The request object that contains the necessary information to retrieve a list of Agents | +| request.pageSize | number | The number of Agents to retrieve | +| request.pageToken | string | The token to retrieve the next page of Agents | + +**Example** +```js +const agents = new SDK.Agents(client); // Existing client object + +const request = { + pageSize: 10, + pageToken: "00000000-0000-0000-0000-000000000000" +}; + +agents + .listAgents(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### agents.deleteAgent(ref) ⇒ Promise.<BaseApiObject> +Deletes an existing Agent from Fonoster. +Note that this operation is irreversible. + +**Kind**: instance method of [Agents](#Agents) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the deleted Agent + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Agent to delete | + +**Example** +```js +const agents = new SDK.Agents(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +agents + .deleteAgent(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + + +## ApiKeys +Fonoster ApiKeys, part of the Fonoster Identity subsystem, +allows you to create, update, retrieve, and delete ApiKeys for your deployment. +Note that an active Fonoster deployment is required. + +**Kind**: global class +**See** + +- AbstractClient +- FonosterClient + + +* [ApiKeys](#ApiKeys) + * [new ApiKeys(client)](#new_ApiKeys_new) + * [.createApiKey(request)](#ApiKeys+createApiKey) ⇒ Promise.<CreateApiKeyResponse> + * [.regenerateApiKey(ref)](#ApiKeys+regenerateApiKey) ⇒ Promise.<CreateApiKeyResponse> + * [.listApiKeys(request)](#ApiKeys+listApiKeys) ⇒ Promise.<ListApiKeysResponse> + * [.deleteApiKey(ref)](#ApiKeys+deleteApiKey) ⇒ Promise.<BaseApiObject> + + + +### new ApiKeys(client) +Constructs a new ApiKeys object. + + +| Param | Type | Description | +| --- | --- | --- | +| client | FonosterClient | Client object with underlying implementations to make requests to Fonoster's API | + +**Example** +```js +const SDK = require("@fonoster/sdk"); + +async function main(request) { + const apiKey = "your-api-key"; + const apiSecret = "your-api-secret" + const accessKeyId = "WO00000000000000000000000000000000"; + + try { + const client = SDK.Client({ accessKeyId }); + await client.loginWithApiKey(apiKey, apiSecret); + + const apiKeys = new SDK.ApiKeys(client); + const response = await apiKeys.createApiKey(request); + + console.log(response); // successful response + } catch (e) { + console.error(e); // an error occurred + } +} + +const request = { + role: "WORKSPACE_ADMIN" +}; + +main(request); +``` + + +### apiKeys.createApiKey(request) ⇒ Promise.<CreateApiKeyResponse> +Creates a new ApiKey for a Workspace. + +**Kind**: instance method of [ApiKeys](#ApiKeys) +**Returns**: Promise.<CreateApiKeyResponse> - - The response object that contains the reference to the created ApiKey + +| Param | Type | Description | +| --- | --- | --- | +| request | CreateApiKeyRequest | The request object that contains the necessary information to create a new ApiKey | +| request.role | ApiRoleEnum | The role of the ApiKey | + +**Example** +```js +const apiKeys = new SDK.ApiKeys(client); // Existing client object + +const request = { + role: "WORKSPACE_ADMIN" +}; + +apiKeys + .createApiKey(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### apiKeys.regenerateApiKey(ref) ⇒ Promise.<CreateApiKeyResponse> +Regenerates an existing ApiKey for a Workspace. +Note that this operation is irreversible. + +**Kind**: instance method of [ApiKeys](#ApiKeys) +**Returns**: Promise.<CreateApiKeyResponse> - - The response object that contains the reference to the regenerated ApiKey + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the ApiKey to regenerate | + +**Example** +```js +const apiKeys = new SDK.ApiKeys(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +apiKeys + .regenerateApiKey(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### apiKeys.listApiKeys(request) ⇒ Promise.<ListApiKeysResponse> +Retrieves a list of ApiKeys from a Workspace. + +**Kind**: instance method of [ApiKeys](#ApiKeys) +**Returns**: Promise.<ListApiKeysResponse> - - The response object that contains the list of ApiKeys + +| Param | Type | Description | +| --- | --- | --- | +| request | ListApiKeysRequest | The request object that contains the necessary information to retrieve a list of ApiKeys | +| request.pageSize | number | The number of ApiKeys to retrieve | +| request.pageToken | string | The token to retrieve the next page of ApiKeys | + +**Example** +```js +const apiKeys = new SDK.ApiKeys(client); // Existing client object + +const request = { + pageSize: 10, + pageToken: "00000000-0000-0000-0000-000000000000" +}; + +apiKeys + .listApiKeys(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### apiKeys.deleteApiKey(ref) ⇒ Promise.<BaseApiObject> +Deletes an existing ApiKey from Fonoster. +Note that this operation is irreversible. + +**Kind**: instance method of [ApiKeys](#ApiKeys) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the deleted ApiKey + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the ApiKey to delete | + +**Example** +```js +const apiKeys = new SDK.ApiKeys(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +apiKeys + .deleteApiKey(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + + +## Applications +Fonoster Applications, part of the Fonoster Voice Subsystem, +allow you to create, update, retrieve, and delete Voice Applications. +Note that an active Fonoster deployment is required. + +**Kind**: global class +**See** + +- AbstractClient +- FonosterClient + + +* [Applications](#Applications) + * [new Applications(client)](#new_Applications_new) + * [.createApplication(request)](#Applications+createApplication) ⇒ Promise.<CreateAppResponse> + * [.getApplication(ref)](#Applications+getApplication) ⇒ Promise.<Application> + * [.updateApplication(request)](#Applications+updateApplication) ⇒ Promise.<BaseApiObject> + * [.listApplications(request)](#Applications+listApplications) ⇒ Promise.<ListApplicationsResponse> + * [.deleteApplication(ref)](#Applications+deleteApplication) ⇒ Promise.<BaseApiObject> + + + +### new Applications(client) +Constructs a new Applications object. + + +| Param | Type | Description | +| --- | --- | --- | +| client | FonosterClient | Client object with underlying implementations to make requests to Fonoster's API | + +**Example** +```js +const SDK = require("@fonoster/sdk"); + +async function main(request) { + const apiKey = "your-api-key"; + const apiSecret = "your-api-secret" + const accessKeyId = "WO00000000000000000000000000000000"; + + try { + const client = SDK.Client({ accessKeyId }); + await client.loginWithApiKey(apiKey, apiSecret); + + const apps = new SDK.Applications(client); + const response = await apps.createApplication(request); + + console.log(response); // successful response + } catch (e) { + console.error(e); // an error occurred + } +} + +const request = { + name: "My application", + type: "EXTERNAL", + endpoint: "myapp.mydomain.com", + textToSpeech: { + productRef: "tts.google", + config: { + voice: "en-US-Casual-K" + } + }, + speechToText: { + productRef: "stt.google", + config: { + languageCode: "en-US" + } + }, + intelligence: { + productRef: "nlu.dialogflowcx", + config: { + agentId: "your-agent-id" + } + } +}; + +main(request); +``` + + +### applications.createApplication(request) ⇒ Promise.<CreateAppResponse> +Creates a new Application in Fonoster. The only required fields are the name and type of the application. + +**Kind**: instance method of [Applications](#Applications) +**Returns**: Promise.<CreateAppResponse> - - The response object that contains the reference to the newly created application + +| Param | Type | Description | +| --- | --- | --- | +| request | CreateApplicationRequest | The request object that contains the necessary information to create a new application | +| request.name | string | The name of the application | +| request.type | ApplicationType | The type of application (e.g., EXTERNAL) | +| request.endpoint | string | The endpoint where the application is hosted | +| request.textToSpeech | TextToSpeech | The text-to-speech configuration | +| request.textToSpeech.productRef | string | The product reference of the text-to-speech engine (e.g., tts.google) | +| request.textToSpeech.config | object | The configuration object for the text-to-speech engine (e.g., { voice: "en-US-Casual-K" }) | +| request.speechToText | SpeechToText | The speech-to-text configuration | +| request.speechToText.productRef | string | The product reference of the speech-to-text engine (e.g., stt.google) | +| request.speechToText.config | object | The configuration object for the speech-to-text engine (e.g., { languageCode: "en-US" }) | +| request.intelligence | Intelligence | The intelligence configuration | +| request.intelligence.productRef | string | The product reference of the intelligence engine (e.g., nlu.dialogflowcx) | +| request.intelligence.config | object | The configuration object for the intelligence engine (e.g., { agentId: "your-agent-id" }) | + +**Example** +```js +const apps = new SDK.Applications(client); // Existing client object + +const request = { + name: "My application", + type: "EXTERNAL", + endpoint: "myapp.mydomain.com", + textToSpeech: { + productRef: "tts.google", + config: { + voice: "en-US-Casual-K" + } + }, + speechToText: { + productRef: "stt.google", + config: { + languageCode: "en-US" + } + }, + intelligence: { + productRef: "nlu.dialogflowcx", + config: { + agentId: "your-agent-id" + } + } +}; + +apps + .createApplication(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### applications.getApplication(ref) ⇒ Promise.<Application> +Retrieves an existing Application in the Workspace. + +**Kind**: instance method of [Applications](#Applications) +**Returns**: Promise.<Application> - - The response object that contains the Application information + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Application to retrieve | + +**Example** +```js +const apps = new SDK.Applications(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +apps + .getApplication(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### applications.updateApplication(request) ⇒ Promise.<BaseApiObject> +Updates an existing application in Fonoster. + +**Kind**: instance method of [Applications](#Applications) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the updated application + +| Param | Type | Description | +| --- | --- | --- | +| request | UpdateApplicationRequest | The request object that contains the necessary information to update an application | +| request.ref | string | The reference of the application to update | +| request.name | string | The name of the application | +| request.endpoint | string | The endpoint where the application is hosted | +| request.textToSpeech | TextToSpeech | The text-to-speech configuration | +| request.textToSpeech.productRef | string | The product reference of the text-to-speech engine (e.g., tts.google) | +| request.textToSpeech.config | object | The configuration object for the text-to-speech engine (e.g., { voice: "en-US-Casual-K" }) | +| request.speechToText | SpeechToText | The speech-to-text configuration | +| request.speechToText.productRef | string | The product reference of the speech-to-text engine (e.g., stt.google) | +| request.speechToText.config | object | The configuration object for the speech-to-text engine (e.g., { languageCode: "en-US" }) | +| request.intelligence | Intelligence | The intelligence configuration | +| request.intelligence.productRef | string | The product reference of the intelligence engine (e.g., nlu.dialogflowcx) | +| request.intelligence.config | object | The configuration object for the intelligence engine (e.g., { agentId: "your-agent-id" }) | + +**Example** +```js +const apps = new SDK.Applications(client); // Existing client object + +const request = { + ref: "00000000-0000-0000-0000-000000000000", + name: "My application", + endpoint: "myapp.mydomain.com" +}; + +apps + .updateApplication(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### applications.listApplications(request) ⇒ Promise.<ListApplicationsResponse> +Retrieves a list of Applications from Fonoster. + +**Kind**: instance method of [Applications](#Applications) +**Returns**: Promise.<ListApplicationsResponse> - - The response object that contains the list of Applications + +| Param | Type | Description | +| --- | --- | --- | +| request | ListApplicationsRequest | The request object that contains the necessary information to retrieve a list of Applications | +| request.pageSize | number | The number of Applications to retrieve | +| request.pageToken | string | The token to retrieve the next page of Applications | + +**Example** +```js +const apps = new SDK.Applications(client); // Existing client object + +const request = { + pageSize: 10, + pageToken: "00000000-0000-0000-0000-000000000000" +}; + +apps + .listApplications(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### applications.deleteApplication(ref) ⇒ Promise.<BaseApiObject> +Deletes an existing Application from Fonoster. +Note that this operation is irreversible. + +**Kind**: instance method of [Applications](#Applications) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the deleted application + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Application to delete | + +**Example** +```js +const apps = new SDK.Applications(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +apps + .deleteApplication(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + + +## Calls +Fonoster Calls, part of the Fonoster Media subsystem, +allows you to create, list, and track calls in your deployment. +Note that an active Fonoster deployment is required. + +**Kind**: global class +**See** + +- AbstractClient +- FonosterClient + + +* [Calls](#Calls) + * [new Calls(client)](#new_Calls_new) + * [.createCall(request)](#Calls+createCall) ⇒ Object + * [.getCall(ref)](#Calls+getCall) ⇒ Promise.<CallDetailRecord> + * [.listCalls(request)](#Calls+listCalls) ⇒ Promise.<ListCallsResponse> + + + +### new Calls(client) +Constructs a new Calls object. + + +| Param | Type | Description | +| --- | --- | --- | +| client | FonosterClient | Client object with underlying implementations to make requests to Fonoster's API | + +**Example** +```js +const SDK = require("@fonoster/sdk"); + +async function main(request) { + const apiKey = "your-api-key"; + const apiSecret = "your-api-secret" + const accessKeyId = "WO00000000000000000000000000000000"; + + try { + const client = SDK.Client({ accessKeyId }); + await client.loginWithApiKey(apiKey, apiSecret); + + const calls = new SDK.Calls(client); + const response = await calls.createCall(request); + + console.log(response); // successful response + } catch (e) { + console.error(e); // an error occurred + } +} + +const request = { + from: "+18287854037", + to: "+17853178070", + appRef: "00000000-0000-0000-0000-000000000000" +}; + +main(request); +``` + + +### calls.createCall(request) ⇒ Object +Creates a new Call in the Workspace. + +**Kind**: instance method of [Calls](#Calls) +**Returns**: Object - - The response object that contains the Call reference and a stream of status updates +**See**: DialStatus + +| Param | Type | Description | +| --- | --- | --- | +| request | CreateCallRequest | The request object that contains the necessary information to create a new Call | +| request.from | string | The number that originated the call | +| request.to | string | The number that received the call | +| request.appRef | string | The reference of the App that will handle the call | +| request.timeout | number | The time in seconds to wait for the call to be answered. Default is 60 seconds | + +**Example** +```js +const calls = new SDK.Calls(client); // Existing client object + +const request = { + from: "+18287854037", + to: "+17853178070", + appRef: "00000000-0000-0000-0000-000000000000", + timeout: 30 +}; + +const response = await calls.createCall(request); +const { ref, statusStream } = response; + +console.log(ref); // Call reference + +for await (const status of statusStream) { + console.log(status); // Streamed status +} +``` + + +### calls.getCall(ref) ⇒ Promise.<CallDetailRecord> +Retrieves an existing Call in the Workspace. + +**Kind**: instance method of [Calls](#Calls) +**Returns**: Promise.<CallDetailRecord> - - The response object that contains the Call detail + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Call to retrieve | + +**Example** +```js +const calls = new SDK.Calls(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +calls + .getCall(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### calls.listCalls(request) ⇒ Promise.<ListCallsResponse> +Retrieves a list of Calls from a Workspace. + +**Kind**: instance method of [Calls](#Calls) +**Returns**: Promise.<ListCallsResponse> - - The response object that contains the list of Calls + +| Param | Type | Description | +| --- | --- | --- | +| request | ListCallsRequest | The request object that contains the necessary information to retrieve a list of Calls | +| request.pageSize | number | The number of Calls to retrieve | +| request.pageToken | string | The token to retrieve the next page of Calls | + +**Example** +```js +const calls = new SDK.Calls(client); // Existing client object + +const request = { + pageSize: 10, + pageToken: "00000000-0000-0000-0000-000000000000" +}; + +calls + .listCalls(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + + +## Credentials +Fonoster Credentials, part of the Fonoster SIP Proxy subsystem, +allows you to create, update, retrieve, and delete SIP Credentials for your deployment. +Note that an active Fonoster deployment is required. + +**Kind**: global class +**See** + +- AbstractClient +- FonosterClient + + +* [Credentials](#Credentials) + * [new Credentials(client)](#new_Credentials_new) + * [.createCredentials(request)](#Credentials+createCredentials) ⇒ Promise.<BaseApiObject> + * [.getCredentials(ref)](#Credentials+getCredentials) ⇒ Promise.<Acl> + * [.updateCredentials(request)](#Credentials+updateCredentials) ⇒ Promise.<BaseApiObject> + * [.listCredentials(request)](#Credentials+listCredentials) ⇒ Promise.<ListCredentialsResponse> + * [.deleteCredentials(ref)](#Credentials+deleteCredentials) ⇒ Promise.<BaseApiObject> + + + +### new Credentials(client) +Constructs a new Credentials object. + + +| Param | Type | Description | +| --- | --- | --- | +| client | FonosterClient | Client object with underlying implementations to make requests to Fonoster's API | + +**Example** +```js +const SDK = require("@fonoster/sdk"); + +async function main(request) { + const apiKey = "your-api-key"; + const apiSecret = "your-api-secret" + const accessKeyId = "WO00000000000000000000000000000000"; + + try { + const client = SDK.Client({ accessKeyId }); + await client.loginWithApiKey(apiKey, apiSecret); + + const credentials = new SDK.Credentials(client); + const response = await apiKeys.createCredentials(request); + + console.log(response); // successful response + } catch (e) { + console.error(e); // an error occurred + } +} + +const request = { + name: "My Credentials", + username: "myusername", + password: "mysecret" +}; + +main(request); +``` + + +### credentials.createCredentials(request) ⇒ Promise.<BaseApiObject> +Creates a new set of Credentials in the Workspace. + +**Kind**: instance method of [Credentials](#Credentials) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the created Credentials + +| Param | Type | Description | +| --- | --- | --- | +| request | CreateCredentialsRequest | The request object that contains the necessary information to create a new set of Credentials | +| request.name | string | The name of the Credentials | +| request.username | string | The username of the Credentials | +| request.password | string | The password of the Credentials | + +**Example** +```js +const credentials = new SDK.Credentials(client); // Existing client object + +const request = { + name: "My Credentials", + username: "myusername", + password: "mysecret" +}; + +credentials + .createCredentials(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### credentials.getCredentials(ref) ⇒ Promise.<Acl> +Retrieves an existing set of Credentials in the Workspace. + +**Kind**: instance method of [Credentials](#Credentials) +**Returns**: Promise.<Acl> - - The response object that contains the Credentials + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Credentials to retrieve | + +**Example** +```js +const credentials = new SDK.Credentials(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +credentials + .getCredentials(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### credentials.updateCredentials(request) ⇒ Promise.<BaseApiObject> +Updates an existing set of Credentials in the Workspace. + +**Kind**: instance method of [Credentials](#Credentials) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the updated Credentials + +| Param | Type | Description | +| --- | --- | --- | +| request | UpdateCredentialsRequest | The request object that contains the necessary information to update an existing set of Credentials | +| request.ref | string | The reference of the Credentials to update | +| request.name | string | The name of the Credentials | +| request.password | string | The password of the Credentials | + +**Example** +```js +const credentials = new SDK.Credentials(client); // Existing client object + +const request = { + ref: "00000000-0000-0000-0000-000000000000", + name: "My Credentials", + password: "mysecret" +}; + +credentials + .updateCredentials(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### credentials.listCredentials(request) ⇒ Promise.<ListCredentialsResponse> +Retrieves a list of Credentials from a Workspace. + +**Kind**: instance method of [Credentials](#Credentials) +**Returns**: Promise.<ListCredentialsResponse> - - The response object that contains the list of Credentials + +| Param | Type | Description | +| --- | --- | --- | +| request | ListCredentialsRequest | The request object that contains the necessary information to retrieve a list of Credentials | +| request.pageSize | number | The number of Credentials to retrieve | +| request.pageToken | string | The token to retrieve the next page of Credentials | + +**Example** +```js +const credentials = new SDK.Credentials(client); // Existing client object + +const request = { + pageSize: 10, + pageToken: "00000000-0000-0000-0000-000000000000" +}; + +credentials + .listCredentials(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### credentials.deleteCredentials(ref) ⇒ Promise.<BaseApiObject> +Deletes an existing set of Credentials from Fonoster. +Note that this operation is irreversible. + +**Kind**: instance method of [Credentials](#Credentials) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the deleted Credentials + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Credentials to delete | + +**Example** +```js +const credentials = new SDK.Credentials(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +credentials + .deleteCredentials(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + + +## Domains +Fonoster Domains, part of the Fonoster SIP Proxy subsystem, +allows you to create, update, retrieve, and delete SIP Domain for your deployment. +Note that an active Fonoster deployment is required. + +**Kind**: global class +**See** + +- AbstractClient +- FonosterClient + + +* [Domains](#Domains) + * [new Domains(client)](#new_Domains_new) + * [.createDomain(request)](#Domains+createDomain) ⇒ Promise.<BaseApiObject> + * [.getDomain(ref)](#Domains+getDomain) ⇒ Promise.<Acl> + * [.updateDomain(request)](#Domains+updateDomain) ⇒ Promise.<BaseApiObject> + * [.listDomains(request)](#Domains+listDomains) ⇒ Promise.<ListDomainsResponse> + * [.deleteDomain(ref)](#Domains+deleteDomain) ⇒ Promise.<BaseApiObject> + + + +### new Domains(client) +Constructs a new Domains object. + + +| Param | Type | Description | +| --- | --- | --- | +| client | FonosterClient | Client object with underlying implementations to make requests to Fonoster's API | + +**Example** +```js +const SDK = require("@fonoster/sdk"); + +async function main(request) { + const apiKey = "your-api-key"; + const apiSecret = "your-api-secret" + const accessKeyId = "WO00000000000000000000000000000000"; + + try { + const client = SDK.Client({ accessKeyId }); + await client.loginWithApiKey(apiKey, apiSecret); + + const domains = new SDK.Domains(client); + const response = await domains.createDomain(request); + + console.log(response); // successful response + } catch (e) { + console.error(e); // an error occurred + } +} + +const request = { + name: "My Domain", + domainUri: "sip.project.fonoster.io" +}; + +main(request); +``` + + +### domains.createDomain(request) ⇒ Promise.<BaseApiObject> +Creates a new Domain in the Workspace. + +**Kind**: instance method of [Domains](#Domains) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the created Domain + +| Param | Type | Description | +| --- | --- | --- | +| request | CreateDomainRequest | The request object that contains the necessary information to create a new Domain | +| request.name | string | The name of the Domain | +| request.domainUri | string | The URI of the Domain | +| request.accessControlListRef | AccessControlListRef | The reference to the Access Control List (ACL) to associate with the Domain | +| request.egressPolicy | Array.<EgressPolicy> | The egress policy of the Domain | +| request.egressPolicy[].rule | string | A regular expression that defines which calls to send to the PSTN | +| request.egressPolicy[].numberRef | string | The Number that will be used to send the call to the PSTN | + +**Example** +```js +const domains = new SDK.Domains(client); // Existing client object + +const request = { + name: "My Domain", + domainUri: "sip.project.fonoster.io" +}; + +domains + .createDomain(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### domains.getDomain(ref) ⇒ Promise.<Acl> +Retrieves an existing Domain in the Workspace. + +**Kind**: instance method of [Domains](#Domains) +**Returns**: Promise.<Acl> - - The response object that contains the Domain + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Domain to retrieve | + +**Example** +```js +const domains = new SDK.Domains(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +domains + .getDomain(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### domains.updateDomain(request) ⇒ Promise.<BaseApiObject> +Updates an existing Domain in the Workspace. + +**Kind**: instance method of [Domains](#Domains) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the updated Domain + +| Param | Type | Description | +| --- | --- | --- | +| request | UpdateDomainRequest | The request object that contains the necessary information to update an existing Domain | +| request.ref | string | The reference of the Domain to update | +| request.name | string | The name of the Domain | +| request.domainUri | string | The URI of the Domain | +| request.accessControlListRef | AccessControlListRef | The reference to the Access Control List (ACL) to associate with the Domain | +| request.egressPolicy | Array.<EgressPolicy> | The egress policy of the Domain | +| request.egressPolicy[].rule | string | A regular expression that defines which calls to send to the PSTN | +| request.egressPolicy[].numberRef | string | The Number that will be used to send the call to the PSTN | + +**Example** +```js +const domains = new SDK.Domains(client); // Existing client object + +const request = { + ref: "00000000-0000-0000-0000-000000000000", + accessControlListRef: "00000000-0000-0000-0000-000000000001" +}; + +domains + .updateDomain(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### domains.listDomains(request) ⇒ Promise.<ListDomainsResponse> +Retrieves a list of Domains from a Workspace. + +**Kind**: instance method of [Domains](#Domains) +**Returns**: Promise.<ListDomainsResponse> - - The response object that contains the list of Domains + +| Param | Type | Description | +| --- | --- | --- | +| request | ListDomainsRequest | The request object that contains the necessary information to retrieve a list of Domains | +| request.pageSize | number | The number of Domains to retrieve | +| request.pageToken | string | The token to retrieve the next page of Domains | + +**Example** +```js +const domains = new SDK.Domains(client); // Existing client object + +const request = { + pageSize: 10, + pageToken: "00000000-0000-0000-0000-000000000000" +}; + +domains + .listDomains(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### domains.deleteDomain(ref) ⇒ Promise.<BaseApiObject> +Deletes an existing Domain from Fonoster. +Note that this operation is irreversible. + +**Kind**: instance method of [Domains](#Domains) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the deleted Domain + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Domain to delete | + +**Example** +```js +const domains = new SDK.Domains(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +domains + .deleteDomain(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + + +## Numbers +Fonoster Numbers, part of the Fonoster SIP Proxy subsystem, +allows you to create, update, retrieve, and delete SIP Number for your deployment. +Note that an active Fonoster deployment is required. + +**Kind**: global class +**See** + +- AbstractClient +- FonosterClient + + +* [Numbers](#Numbers) + * [new Numbers(client)](#new_Numbers_new) + * [.createNumber(request)](#Numbers+createNumber) ⇒ Promise.<BaseApiObject> + * [.getNumber(ref)](#Numbers+getNumber) ⇒ Promise.<Acl> + * [.updateNumber(request)](#Numbers+updateNumber) ⇒ Promise.<BaseApiObject> + * [.listNumbers(request)](#Numbers+listNumbers) ⇒ Promise.<ListNumbersResponse> + * [.deleteNumber(ref)](#Numbers+deleteNumber) ⇒ Promise.<BaseApiObject> + + + +### new Numbers(client) +Constructs a new Numbers object. + + +| Param | Type | Description | +| --- | --- | --- | +| client | FonosterClient | Client object with underlying implementations to make requests to Fonoster's API | + +**Example** +```js +const SDK = require("@fonoster/sdk"); + +async function main(request) { + const apiKey = "your-api-key"; + const apiSecret = "your-api-secret" + const accessKeyId = "WO00000000000000000000000000000000"; + + try { + const client = SDK.Client({ accessKeyId }); + await client.loginWithApiKey(apiKey, apiSecret); + + const numbers = new SDK.Numbers(client); + const response = await numbers.createNumber(request); + + console.log(response); // successful response + } catch (e) { + console.error(e); // an error occurred + } +} + +const request = { + name: "My Number", + telUrl: "tel:+17853178070", + city: "Asheville", + country: "United States", + countryIsoCode: "US" +}; + +main(request); +``` + + +### numbers.createNumber(request) ⇒ Promise.<BaseApiObject> +Creates a new Number in the Workspace. + +**Kind**: instance method of [Numbers](#Numbers) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the created Number + +| Param | Type | Description | +| --- | --- | --- | +| request | CreateNumberRequest | The request object that contains the necessary information to create a new Number | +| request.name | string | The name of the Number | +| request.telUrl | string | The telUrl of the Number | +| request.city | string | The city of the Number | +| request.country | string | The country of the Number | +| request.countryIsoCode | string | The countryIsoCode of the Number | + +**Example** +```js +const numbers = new SDK.Numbers(client); // Existing client object + +const request = { + name: "My Number", + telUrl: "tel:+17853178070", + city: "Asheville", + country: "United States", + countryIsoCode: "US" +}; + +numbers + .createNumber(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### numbers.getNumber(ref) ⇒ Promise.<Acl> +Retrieves an existing Number in the Workspace. + +**Kind**: instance method of [Numbers](#Numbers) +**Returns**: Promise.<Acl> - - The response object that contains the Number + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Number to retrieve | + +**Example** +```js +const numbers = new SDK.Numbers(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +numbers + .getNumber(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### numbers.updateNumber(request) ⇒ Promise.<BaseApiObject> +Updates an existing Number in the Workspace. + +**Kind**: instance method of [Numbers](#Numbers) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the updated Number + +| Param | Type | Description | +| --- | --- | --- | +| request | UpdateNumberRequest | The request object that contains the necessary information to update an existing Number | +| request.ref | string | The reference of the Number to update | +| request.name | string | The name of the Number | + +**Example** +```js +const numbers = new SDK.Numbers(client); // Existing client object + +const request = { + ref: "00000000-0000-0000-0000-000000000000", + name: "My Number" +}; + +numbers + .updateNumber(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### numbers.listNumbers(request) ⇒ Promise.<ListNumbersResponse> +Retrieves a list of Numbers from a Workspace. + +**Kind**: instance method of [Numbers](#Numbers) +**Returns**: Promise.<ListNumbersResponse> - - The response object that contains the list of Numbers + +| Param | Type | Description | +| --- | --- | --- | +| request | ListNumbersRequest | The request object that contains the necessary information to retrieve a list of Numbers | +| request.pageSize | number | The number of Numbers to retrieve | +| request.pageToken | string | The token to retrieve the next page of Numbers | + +**Example** +```js +const numbers = new SDK.Numbers(client); // Existing client object + +const request = { + pageSize: 10, + pageToken: "00000000-0000-0000-0000-000000000000" +}; + +numbers + .listNumbers(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### numbers.deleteNumber(ref) ⇒ Promise.<BaseApiObject> +Deletes an existing Number from Fonoster. +Note that this operation is irreversible. + +**Kind**: instance method of [Numbers](#Numbers) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the deleted Number + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Number to delete | + +**Example** +```js +const numbers = new SDK.Numbers(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +numbers + .deleteNumber(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + + +## Secrets +Fonoster Secrets, part of the Fonoster Core, +allows you to create, update, retrieve, and delete Secrets for your deployment. +Note that an active Fonoster deployment is required. + +**Kind**: global class +**See** + +- AbstractClient +- FonosterClient + + +* [Secrets](#Secrets) + * [new Secrets(client)](#new_Secrets_new) + * [.createSecret(request)](#Secrets+createSecret) ⇒ Promise.<BaseApiObject> + * [.getSecret(ref)](#Secrets+getSecret) ⇒ Promise.<Acl> + * [.updateSecret(request)](#Secrets+updateSecret) ⇒ Promise.<BaseApiObject> + * [.listSecrets(request)](#Secrets+listSecrets) ⇒ Promise.<ListSecretsResponse> + * [.deleteSecret(ref)](#Secrets+deleteSecret) ⇒ Promise.<BaseApiObject> + + + +### new Secrets(client) +Constructs a new Secrets object. + + +| Param | Type | Description | +| --- | --- | --- | +| client | FonosterClient | Client object with underlying implementations to make requests to Fonoster's API | + +**Example** +```js +const SDK = require("@fonoster/sdk"); + +async function main(request) { + const apiKey = "your-api-key"; + const apiSecret = "your-api-secret" + const accessKeyId = "WO00000000000000000000000000000000"; + + try { + const client = SDK.Client({ accessKeyId }); + await client.loginWithApiKey(apiKey, apiSecret); + + const secrets = new SDK.Secrets(client); + const response = await secrets.creteSecret(request); + + console.log(response); // successful response + } catch (e) { + console.error(e); // an error occurred + } +} + +const request = { + name: "FRIENDLY_NAME", + secret: "mysecret" +}; + +main(request); +``` + + +### secrets.createSecret(request) ⇒ Promise.<BaseApiObject> +Creates a new Secret in the Workspace. + +**Kind**: instance method of [Secrets](#Secrets) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the created Secret + +| Param | Type | Description | +| --- | --- | --- | +| request | CreateSecretRequest | The request object that contains the necessary information to create a new Secret | +| request.name | string | The name of the Secret | +| request.secret | string | The secret of the Secret | + +**Example** +```js +const secrets = new SDK.Secrets(client); // Existing client object + +const request = { + name: "FRIENDLY_NAME", + secret: "mysecret" +}; + +secrets + .createSecret(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### secrets.getSecret(ref) ⇒ Promise.<Acl> +Retrieves an existing Secret in the Workspace. + +**Kind**: instance method of [Secrets](#Secrets) +**Returns**: Promise.<Acl> - - The response object that contains the Secret + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Secret to retrieve | + +**Example** +```js +const secrets = new SDK.Secrets(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +secrets + .getSecret(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### secrets.updateSecret(request) ⇒ Promise.<BaseApiObject> +Updates an existing Secret in the Workspace. + +**Kind**: instance method of [Secrets](#Secrets) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the updated Secret + +| Param | Type | Description | +| --- | --- | --- | +| request | UpdateSecretRequest | The request object that contains the necessary information to update an existing Secret | +| request.ref | string | The reference of the Secret to update | +| request.name | string | The name of the Secret | +| request.secret | string | The secret of the Secret | + +**Example** +```js +const secrets = new SDK.Secrets(client); // Existing client object + +const request = { + ref: "00000000-0000-0000-0000-000000000000", + secret: "mysecret" +}; + +secrets + .updateSecret(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### secrets.listSecrets(request) ⇒ Promise.<ListSecretsResponse> +Retrieves a list of Secrets from a Workspace. + +**Kind**: instance method of [Secrets](#Secrets) +**Returns**: Promise.<ListSecretsResponse> - - The response object that contains the list of Secrets + +| Param | Type | Description | +| --- | --- | --- | +| request | ListSecretsRequest | The request object that contains the necessary information to retrieve a list of Secrets | +| request.pageSize | number | The secret of Secrets to retrieve | +| request.pageToken | string | The token to retrieve the next page of Secrets | + +**Example** +```js +const secrets = new SDK.Secrets(client); // Existing client object + +const request = { + pageSize: 10, + pageToken: "00000000-0000-0000-0000-000000000000" +}; + +secrets + .listSecrets(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### secrets.deleteSecret(ref) ⇒ Promise.<BaseApiObject> +Deletes an existing Secret from Fonoster. +Note that this operation is irreversible. + +**Kind**: instance method of [Secrets](#Secrets) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the deleted Secret + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Secret to delete | + +**Example** +```js +const secrets = new SDK.Secrets(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +secrets + .deleteSecret(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + + +## Trunks +Fonoster Trunks, part of the Fonoster SIP Proxy subsystem, +allows you to create, update, retrieve, and delete SIP Trunks for your deployment. +Note that an active Fonoster deployment is required. + +**Kind**: global class +**See** + +- AbstractClient +- FonosterClient + + +* [Trunks](#Trunks) + * [new Trunks(client)](#new_Trunks_new) + * [.createTrunk(request)](#Trunks+createTrunk) ⇒ Promise.<BaseApiObject> + * [.getTrunk(ref)](#Trunks+getTrunk) ⇒ Promise.<Acl> + * [.updateTrunk(request)](#Trunks+updateTrunk) ⇒ Promise.<BaseApiObject> + * [.listTrunks(request)](#Trunks+listTrunks) ⇒ Promise.<ListTrunksResponse> + * [.deleteTrunk(ref)](#Trunks+deleteTrunk) ⇒ Promise.<BaseApiObject> + + + +### new Trunks(client) +Constructs a new Trunks object. + + +| Param | Type | Description | +| --- | --- | --- | +| client | FonosterClient | Client object with underlying implementations to make requests to Fonoster's API | + +**Example** +```js +const SDK = require("@fonoster/sdk"); + +async function main(request) { + const apiKey = "your-api-key"; + const apiSecret = "your-api-secret" + const accessKeyId = "WO00000000000000000000000000000000"; + + try { + const client = SDK.Client({ accessKeyId }); + await client.loginWithApiKey(apiKey, apiSecret); + + const trunks = new SDK.Trunks(client); + const response = await trunks.createTrunk(request); + + console.log(response); // successful response + } catch (e) { + console.error(e); // an error occurred + } +} + +const request = { + name: "My Trunk", + inboundUri: "sip.company.fonoster.io" +}; + +main(request); +``` + + +### trunks.createTrunk(request) ⇒ Promise.<BaseApiObject> +Creates a new Trunk in the Workspace. + +**Kind**: instance method of [Trunks](#Trunks) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the created Trunk + +| Param | Type | Description | +| --- | --- | --- | +| request | CreateTrunkRequest | The request object that contains the necessary information to create a new Trunk | +| request.name | string | The name of the Trunk | +| request.inboundUri | string | The inboundUri of the Trunk | +| request.sendRegister | boolean | The sendRegister of the Trunk | +| request.accessControlListRef | string | The accessControlListRef of the Trunk | +| request.inboundCredentialsRef | string | The inboundCredentialsRef of the Trunk | +| request.outboundCredentialsRef | string | The outboundCredentialsRef of the Trunk | +| request.uris | Array.<TrunkUri> | The uris of the Trunk | +| request.uris[].host | string | The host of the Trunk | +| request.uris[].port | number | The port of the Trunk | +| request.uris[].transport | Transport | The transport of the Trunk | +| request.uris[].user | string | Optional user of the Trunk | +| request.uris[].weight | number | Optional weight of the Trunk | +| request.uris[].priority | number | Optional priority of the Trunk | +| request.uris[].enabled | boolean | Optional enabled of the Trunk | + +**Example** +```js +const trunks = new SDK.Trunks(client); // Existing client object + +const request = { + name: "My Trunk", + inboundUri: "sip.company.fonoster.io" + sendRegister: true + uris: [{ + host: "sip.company.fonoster.io", + port: 5060, + transport: "UDP", + user: "user", + weight: 0, + priority: 0, + enabled: true + }] +}; + +trunks + .createTrunk(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### trunks.getTrunk(ref) ⇒ Promise.<Acl> +Retrieves an existing Trunk in the Workspace. + +**Kind**: instance method of [Trunks](#Trunks) +**Returns**: Promise.<Acl> - - The response object that contains the Trunk + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Trunk to retrieve | + +**Example** +```js +const trunks = new SDK.Trunks(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +trunks + .getTrunk(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### trunks.updateTrunk(request) ⇒ Promise.<BaseApiObject> +Updates an existing Trunk in the Workspace. + +**Kind**: instance method of [Trunks](#Trunks) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the updated Trunk + +| Param | Type | Description | +| --- | --- | --- | +| request | UpdateTrunkRequest | The request object that contains the necessary information to update an existing Trunk | +| request.ref | string | The reference of the Trunk to update | +| request.name | string | The name of the Trunk | +| request.sendRegister | boolean | The sendRegister of the Trunk | +| request.accessControlListRef | string | The accessControlListRef of the Trunk | +| request.inboundCredentialsRef | string | The inboundCredentialsRef of the Trunk | +| request.outboundCredentialsRef | string | The outboundCredentialsRef of the Trunk | +| request.uris | Array.<TrunkUri> | The uris of the Trunk | +| request.uris[].host | string | The host of the Trunk | +| request.uris[].port | number | The port of the Trunk | +| request.uris[].transport | Transport | The transport of the Trunk | +| request.uris[].user | string | Optional user of the Trunk | +| request.uris[].weight | number | Optional weight of the Trunk | +| request.uris[].priority | number | Optional priority of the Trunk | +| request.uris[].enabled | boolean | Optional enabled of the Trunk | + +**Example** +```js +const trunks = new SDK.Trunks(client); // Existing client object + +const request = { + ref: "00000000-0000-0000-0000-000000000000", + name: "My Trunk", + sendRegister: true + uris: [{ + host: "sip.company.fonoster.io", + port: 5060, + transport: "UDP", + user: "user", + weight: 0, + priority: 0, + enabled: true + }] +}; + +trunks + .updateTrunk(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### trunks.listTrunks(request) ⇒ Promise.<ListTrunksResponse> +Retrieves a list of Trunks from a Workspace. + +**Kind**: instance method of [Trunks](#Trunks) +**Returns**: Promise.<ListTrunksResponse> - - The response object that contains the list of Trunks + +| Param | Type | Description | +| --- | --- | --- | +| request | ListTrunksRequest | The request object that contains the necessary information to retrieve a list of Trunks | +| request.pageSize | number | The trunk of Trunks to retrieve | +| request.pageToken | string | The token to retrieve the next page of Trunks | + +**Example** +```js +const trunks = new SDK.Trunks(client); // Existing client object + +const request = { + pageSize: 10, + pageToken: "00000000-0000-0000-0000-000000000000" +}; + +trunks + .listTrunks(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### trunks.deleteTrunk(ref) ⇒ Promise.<BaseApiObject> +Deletes an existing Trunk from Fonoster. +Note that this operation is irreversible. + +**Kind**: instance method of [Trunks](#Trunks) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the deleted Trunk + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Trunk to delete | + +**Example** +```js +const trunks = new SDK.Trunks(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +trunks + .deleteTrunk(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + + +## Users +Fonoster Users, part of the Fonoster Identity subsystem, +allows you to create, update, retrieve, and delete a Users in the system. +Note that an active Fonoster deployment is required. + +**Kind**: global class +**See** + +- AbstractClient +- FonosterClient + + +* [Users](#Users) + * [new Users(client)](#new_Users_new) + * [.createUser(request)](#Users+createUser) ⇒ Promise.<BaseApiObject> + * [.getUser(ref)](#Users+getUser) ⇒ Promise.<Acl> + * [.updateUser(request)](#Users+updateUser) ⇒ Promise.<BaseApiObject> + * [.deleteUser(ref)](#Users+deleteUser) ⇒ Promise.<BaseApiObject> + + + +### new Users(client) +Constructs a new Users object. + + +| Param | Type | Description | +| --- | --- | --- | +| client | FonosterClient | Client object with underlying implementations to make requests to Fonoster's API | + +**Example** +```js +const SDK = require("@fonoster/sdk"); + +async function main(request) { + const apiKey = "your-api-key"; + const apiSecret = "your-api-secret" + const accessKeyId = "WO00000000000000000000000000000000"; + + try { + const client = SDK.Client({ accessKeyId }); + await client.loginWithApiKey(apiKey, apiSecret); + + const users = new SDK.Users(client); + const response = await users.createUser(request); + + console.log(response); // successful response + } catch (e) { + console.error(e); // an error occurred + } +} + +const request = { + name: "John Doe", + email: "john.doe@example.com", + password: "password", + avatar: "https://example.com/avatar.jpg" +}; + +main(request); +``` + + +### users.createUser(request) ⇒ Promise.<BaseApiObject> +Creates a new User in the Workspace. + +**Kind**: instance method of [Users](#Users) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the created User + +| Param | Type | Description | +| --- | --- | --- | +| request | CreateUserRequest | The request object that contains the necessary information to create a new User | +| request.name | string | The name of the User | +| request.email | string | The email of the User | +| request.password | string | The password of the User | +| request.avatar | string | The avatar of the User | + +**Example** +```js +const users = new SDK.Users(client); // Existing client object + +const request = { + name: "John Doe", + email: "john.doe@example.com", + password: "password", + avatar: "https://example.com/avatar.jpg" +}; + +users + .createUser(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### users.getUser(ref) ⇒ Promise.<Acl> +Retrieves an existing User in the Workspace. + +**Kind**: instance method of [Users](#Users) +**Returns**: Promise.<Acl> - - The response object that contains the User + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the User to retrieve | + +**Example** +```js +const users = new SDK.Users(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +users + .getUser(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### users.updateUser(request) ⇒ Promise.<BaseApiObject> +Updates an existing User in the Workspace. + +**Kind**: instance method of [Users](#Users) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the updated User + +| Param | Type | Description | +| --- | --- | --- | +| request | UpdateUserRequest | The request object that contains the necessary information to update a User | +| request.ref | string | The reference of the User to update | +| request.name | string | The name of the User | +| request.password | string | The password of the User | +| request.avatar | string | The avatar of the User | + +**Example** +```js +const users = new SDK.Users(client); // Existing client object + +const request = { + ref: "00000000-0000-0000-0000-000000000000", + name: "John Doe", + password: "password", + avatar: "https://example.com/avatar.jpg" +}; + +users + .updateUser(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### users.deleteUser(ref) ⇒ Promise.<BaseApiObject> +Deletes an existing User from Fonoster. +Note that this operation is irreversible. + +**Kind**: instance method of [Users](#Users) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the deleted User + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the User to delete | + +**Example** +```js +const users = new SDK.Users(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +users + .deleteUser(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + + +## Workspaces +Fonoster Workspaces, part of the Fonoster Identity subsystem, +allows you to create, update, retrieve, and delete Workspaces in the system. +Note that an active Fonoster deployment is required. + +**Kind**: global class +**See** + +- AbstractClient +- FonosterClient + + +* [Workspaces](#Workspaces) + * [new Workspaces(client)](#new_Workspaces_new) + * [.createWorkspace(request)](#Workspaces+createWorkspace) ⇒ Promise.<BaseApiObject> + * [.getWorkspace(ref)](#Workspaces+getWorkspace) ⇒ Promise.<Acl> + * [.updateWorkspace(request)](#Workspaces+updateWorkspace) ⇒ Promise.<BaseApiObject> + * [.deleteWorkspace(ref)](#Workspaces+deleteWorkspace) ⇒ Promise.<BaseApiObject> + * [.listWorkspaces(request)](#Workspaces+listWorkspaces) ⇒ Promise.<ListWorkspacesResponse> + * [.inviteUserToWorkspace(request)](#Workspaces+inviteUserToWorkspace) ⇒ Promise.<BaseApiObject> + * [.resendWorkspaceMembershipInvitation(userRef)](#Workspaces+resendWorkspaceMembershipInvitation) ⇒ Promise.<ResendWorkspaceMembershipInvitationResponse> + * [.removeUserFromWorkspace(userRef)](#Workspaces+removeUserFromWorkspace) ⇒ Promise.<RemoveUserFromWorkspaceResponse> + + + +### new Workspaces(client) +Constructs a new Workspaces object. + + +| Param | Type | Description | +| --- | --- | --- | +| client | FonosterClient | Client object with underlying implementations to make requests to Fonoster's API | + +**Example** +```js +const SDK = require("@fonoster/sdk"); + +async function main(request) { + const apiKey = "your-api-key"; + const apiSecret = "your-api-secret" + const accessKeyId = "WO00000000000000000000000000000000"; + + try { + const client = SDK.Client({ accessKeyId }); + await client.loginWithApiKey(apiKey, apiSecret); + + const workspaces = new SDK.Workspaces(client); + const response = await workspaces.createWorkspace(request); + + console.log(response); // successful response + } catch (e) { + console.error(e); // an error occurred + } +} + +const request = { + name: "My Workspace" +}; + +main(request); +``` + + +### workspaces.createWorkspace(request) ⇒ Promise.<BaseApiObject> +Creates a new Workspace in the system. + +**Kind**: instance method of [Workspaces](#Workspaces) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the created Workspace + +| Param | Type | Description | +| --- | --- | --- | +| request | CreateWorkspaceRequest | The request object that contains the necessary information to create a new Workspace | +| request.name | string | The name of the Workspace | + +**Example** +```js +const workspaces = new SDK.Workspaces(client); // Existing client object + +const request = { + name: "My Workspace" +}; + +workspaces + .createWorkspace(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### workspaces.getWorkspace(ref) ⇒ Promise.<Acl> +Retrieves an existing Workspace in the system. + +**Kind**: instance method of [Workspaces](#Workspaces) +**Returns**: Promise.<Acl> - - The response object that contains the Workspace + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Workspace to retrieve | + +**Example** +```js +const workspaces = new SDK.Workspaces(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +workspaces + .getWorkspace(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### workspaces.updateWorkspace(request) ⇒ Promise.<BaseApiObject> +Updates an existing Workspace in the system. + +**Kind**: instance method of [Workspaces](#Workspaces) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the updated Workspace + +| Param | Type | Description | +| --- | --- | --- | +| request | UpdateWorkspaceRequest | The request object that contains the necessary information to update a Workspace | +| request.ref | string | The reference of the Workspace to update | +| request.name | string | The name of the Workspace | + +**Example** +```js +const workspaces = new SDK.Workspaces(client); // Existing client object + +const request = { + ref: "00000000-0000-0000-0000-000000000000", + name: "My Workspace" +}; + +workspaces + .updateWorkspace(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### workspaces.deleteWorkspace(ref) ⇒ Promise.<BaseApiObject> +Deletes an existing Workspace from Fonoster. +Note that this operation is irreversible. + +**Kind**: instance method of [Workspaces](#Workspaces) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the deleted Workspace + +| Param | Type | Description | +| --- | --- | --- | +| ref | string | The reference of the Workspace to delete | + +**Example** +```js +const workspaces = new SDK.Workspaces(client); // Existing client object + +const ref = "00000000-0000-0000-0000-000000000000"; + +workspaces + .deleteWorkspace(ref) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### workspaces.listWorkspaces(request) ⇒ Promise.<ListWorkspacesResponse> +Retrieves a list of Workspaces from a Workspace. + +**Kind**: instance method of [Workspaces](#Workspaces) +**Returns**: Promise.<ListWorkspacesResponse> - - The response object that contains the list of Workspaces + +| Param | Type | Description | +| --- | --- | --- | +| request | ListWorkspacesRequest | The request object that contains the necessary information to retrieve a list of Workspaces | +| request.pageSize | number | The workspace of Workspaces to retrieve | +| request.pageToken | string | The token to retrieve the next page of Workspaces | + +**Example** +```js +const workspaces = new SDK.Workspaces(client); // Existing client object + +const request = { + pageSize: 10, + pageToken: "00000000-0000-0000-0000-000000000000" +}; + +workspaces + .listWorkspaces(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### workspaces.inviteUserToWorkspace(request) ⇒ Promise.<BaseApiObject> +Invites a User to a Workspace. + +**Kind**: instance method of [Workspaces](#Workspaces) +**Returns**: Promise.<BaseApiObject> - - The response object that contains the reference to the invitation + +| Param | Type | Description | +| --- | --- | --- | +| request | InviteUserToWorkspaceRequest | The request object that contains the necessary information to invite a User to a Workspace | +| request.workspaceRef | string | The reference of the Workspace to invite the User to | +| request.email | string | The email of the User to invite | +| request.password | string | Temporary password for the User. Leave empty to generate a random password | + +**Example** +```js +const workspaces = new SDK.Workspaces(client); // Existing client object + +const request = { + workspaceRef: "00000000-0000-0000-0000-000000000000", + email: "jane.doe@example.com", + role: "WORKSPACE_MEMBER", + password: "password" // Temporary password for the User. Leave empty to generate a random password +}; + +workspaces + .inviteUserToWorkspace(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### workspaces.resendWorkspaceMembershipInvitation(userRef) ⇒ Promise.<ResendWorkspaceMembershipInvitationResponse> +Resend a Workspace membership invitation. + +**Kind**: instance method of [Workspaces](#Workspaces) +**Returns**: Promise.<ResendWorkspaceMembershipInvitationResponse> - - The response object that contains the reference to the invitation + +| Param | Type | Description | +| --- | --- | --- | +| userRef | string | The reference to the user to resend the invitation | + +**Example** +```js +const workspaces = new SDK.Workspaces(client); // Existing client object + +const userRef: "00000000-0000-0000-0000-000000000000"; + +workspaces + .resendWorkspaceMembershipInvitation(request) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + + +### workspaces.removeUserFromWorkspace(userRef) ⇒ Promise.<RemoveUserFromWorkspaceResponse> +Removes a User from a Workspace. + +**Kind**: instance method of [Workspaces](#Workspaces) +**Returns**: Promise.<RemoveUserFromWorkspaceResponse> - - The response object that contains the reference to the removed User + +| Param | Type | Description | +| --- | --- | --- | +| userRef | string | The reference of the User to remove from the Workspace | + +**Example** +```js +const workspaces = new SDK.Workspaces(client); // Existing client object + +const userRef = "00000000-0000-0000-0000-000000000000"; + +workspaces + .removeUserFromWorkspace(userRef) + .then(console.log) // successful response + .catch(console.error); // an error occurred +``` + diff --git a/mods/sdk/package-lock.json b/mods/sdk/package-lock.json deleted file mode 100644 index 01d2618fe..000000000 --- a/mods/sdk/package-lock.json +++ /dev/null @@ -1,388 +0,0 @@ -{ - "name": "@fonoster/sdk", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/sdk", - "version": "0.3.22", - "license": "MIT", - "devDependencies": {} - }, - "../agents": { - "name": "@fonoster/agents", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/core": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_agents": "dist/service/healthcheck.js", - "run_agents": "dist/service/runner.js" - } - }, - "../apps": { - "name": "@fonoster/apps", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/core": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3" - }, - "bin": { - "healthcheck_apps": "dist/service/healthcheck.js", - "run_apps": "dist/service/runner.js" - }, - "devDependencies": { - "@types/google-protobuf": "^3.15.2" - } - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../callmanager": { - "name": "@fonoster/callmanager", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/core": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "ari-client": "^2.2.0", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "bin": { - "healthcheck_callmanager": "dist/service/healthcheck.js", - "run_callmanager": "dist/service/runner.js" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "grpc-ts-health-check": "^2.0.6", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - } - }, - "../domains": { - "name": "@fonoster/domains", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/core": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-domain": "^0.1.2" - }, - "bin": { - "healthcheck_domains": "dist/service/healthcheck.js", - "run_domains": "dist/service/runner.js" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.3.3", - "extraneous": true, - "license": "MIT" - }, - "../funcs": { - "name": "@fonoster/funcs", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/core": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@fonoster/storage": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "btoa": "^1.2.1", - "container-image-builder": "^3.2.0", - "cron-validate": "^1.4.3", - "cross-spawn": "^7.0.3", - "dockerode": "^3.3.0", - "fs-extra": "^8.1.0", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "ndjson": "^2.0.0", - "openfaas-client": "^0.0.2", - "tar": "^6.1.0", - "walk": "^2.3.14" - }, - "bin": { - "healthcheck_funcs": "dist/service/healthcheck.js", - "run_funcs": "dist/service/runner.js" - }, - "devDependencies": { - "@types/bluebird": "^3.5.35", - "@types/fs-extra": "^9.0.1", - "@types/google-protobuf": "^3.15.2", - "@types/tar": "^4.0.3" - } - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.3.3" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "../monitor": { - "name": "@fonoster/monitor", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@elastic/elasticsearch": "^7.16.0", - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/core": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_monitor": "dist/service/healthcheck.js", - "run_monitor": "dist/service/runner.js" - } - }, - "../numbers": { - "name": "@fonoster/numbers", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/apps": "^0.3.0", - "@fonoster/auth": "^0.3.0", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.0", - "@fonoster/core": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_numbers": "dist/service/healthcheck.js", - "run_numbers": "dist/service/runner.js" - } - }, - "../projects": { - "name": "@fonoster/projects", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/core": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "objectid": "^2.3.0" - }, - "bin": { - "healthcheck_projects": "dist/service/healthcheck.js", - "run_projects": "dist/service/runner.js" - } - }, - "../providers": { - "name": "@fonoster/providers", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/core": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-host": "^1.0.1" - }, - "bin": { - "healthcheck_providers": "dist/service/healthcheck.js", - "run_providers": "dist/service/runner.js" - } - }, - "../secrets": { - "name": "@fonoster/secrets", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/core": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "grpc-promise": "^1.4.0", - "node-vault": "^0.9.21" - }, - "bin": { - "healthcheck_secrets": "dist/service/healthcheck.js", - "init": "dist/utils/init.js", - "run_secrets": "dist/service/runner.js" - } - }, - "../storage": { - "name": "@fonoster/storage", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/core": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "minio": "^7.0.18", - "objectid": "^3.2.1", - "sync": "^0.2.5", - "tar": "^6.1.0", - "walk": "^2.3.14" - }, - "bin": { - "healthcheck_storage": "dist/service/healthcheck.js", - "run_storage": "dist/service/runner.js" - } - }, - "../users": { - "name": "@fonoster/users", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/core": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "bcrypt": "^5.0.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "objectid": "^2.3.0" - }, - "bin": { - "healthcheck_users": "dist/service/healthcheck.js", - "run_users": "dist/service/runner.js" - } - } - } -} diff --git a/mods/sdk/package.json b/mods/sdk/package.json index 9494f7cba..644380ff5 100644 --- a/mods/sdk/package.json +++ b/mods/sdk/package.json @@ -1,20 +1,38 @@ { "name": "@fonoster/sdk", - "version": "0.3.22", - "description": "Fonoster SDK module", + "version": "0.9.0", + "description": "Web and Node.js SDK for Fonoster", "author": "Pedro Sanders ", "homepage": "https://github.com/fonoster/fonoster#readme", "license": "MIT", - "main": "dist/index", - "types": "dist/index", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json" - }, + "main": "dist/node/node.js", + "module": "dist/node/index.esm.js", + "browser": "dist/web/index.esm.js", + "unpkg": "dist/web/fonoster.min.js", + "types": "dist/node/node.d.ts", "directories": { "src": "src", "test": "test" }, + "scripts": { + "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", + "build": "rollup -c rollup.config.mjs && tsc --project tsconfig.json", + "postbuild": "mv dist/node/src/* dist/node && rm -rf dist/node/generated && cp -a src/generated dist/node/generated/ && cp dist/web/fonoster.min.js public/fonoster.min.js", + "clean": "rimraf ./dist node_modules tsconfig.tsbuildinfo", + "generate:readme": "node ../../.scripts/gen-readme.js" + }, + "keywords": [ + "sdk", + "fonoster" + ], + "dependencies": { + "@fonoster/common": "^0.9.0", + "@fonoster/types": "^0.9.0", + "@grpc/grpc-js": "~1.10.6", + "@grpc/proto-loader": "^0.7.12", + "google-protobuf": "^3.21.2", + "grpc-web": "^1.5.0" + }, "files": [ "dist" ], @@ -28,21 +46,21 @@ "bugs": { "url": "https://github.com/fonoster/fonoster/issues" }, - "dependencies": { - "@fonoster/agents": "^0.3.22", - "@fonoster/apps": "^0.3.22", - "@fonoster/auth": "^0.3.22", - "@fonoster/callmanager": "^0.3.22", - "@fonoster/domains": "^0.3.22", - "@fonoster/funcs": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@fonoster/monitor": "^0.3.22", - "@fonoster/numbers": "^0.3.22", - "@fonoster/projects": "^0.3.22", - "@fonoster/providers": "^0.3.22", - "@fonoster/secrets": "^0.3.22", - "@fonoster/storage": "^0.3.22", - "@fonoster/users": "^0.3.22" + "devDependencies": { + "@esm-bundle/chai": "^4.3.4-fix.0", + "@rollup/plugin-commonjs": "^26.0.1", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-replace": "^5.0.7", + "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "^11.1.6", + "@types/google-protobuf": "^3.15.12", + "@types/mustache": "^4.2.5", + "@web/dev-server-esbuild": "^1.0.2", + "@web/test-runner": "^0.18.2", + "@web/test-runner-playwright": "^0.11.0", + "mustache": "^4.2.0", + "rollup": "^4.18.0", + "serve": "^14.2.3" }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" + "gitHead": "d4aa82f7926c0f451d2f580c59ab812c74a7f579" } diff --git a/mods/sdk/public/index.html b/mods/sdk/public/index.html new file mode 100644 index 000000000..2700a138a --- /dev/null +++ b/mods/sdk/public/index.html @@ -0,0 +1,28 @@ + + + +

Check the console for the response!

\ No newline at end of file diff --git a/mods/sdk/rollup.config.mjs b/mods/sdk/rollup.config.mjs new file mode 100644 index 000000000..791a952e9 --- /dev/null +++ b/mods/sdk/rollup.config.mjs @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import commonjs from "@rollup/plugin-commonjs"; +import resolve from "@rollup/plugin-node-resolve"; +import replace from "@rollup/plugin-replace"; +import terser from "@rollup/plugin-terser"; +import typescript from "@rollup/plugin-typescript"; + +const webConfig = { + input: "src/web.ts", + output: [ + { + file: "dist/web/fonoster.min.js", + format: "umd", + name: "SDK", + exports: "auto" + }, + { + file: "dist/web/index.esm.js", + format: "es" + } + ], + plugins: [ + replace({ + "process.env.NODE_ENV": JSON.stringify("browser"), + preventAssignment: true + }), + typescript({ + tsconfig: "./tsconfig.web.json", + exclude: ["src/client/Client.ts", "src/generated/node/*"] + }), + commonjs(), + resolve({ + browser: true + }), + terser({ + format: { + comments: false + } + }) + ] +}; + +export default [webConfig]; diff --git a/mods/sdk/src/Acls.ts b/mods/sdk/src/Acls.ts new file mode 100644 index 000000000..0320b56b7 --- /dev/null +++ b/mods/sdk/src/Acls.ts @@ -0,0 +1,298 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + Acl, + BaseApiObject, + CreateAclRequest, + ListAclsRequest, + ListAclsResponse, + UpdateAclRequest +} from "@fonoster/types"; +import { makeRpcRequest } from "./client/makeRpcRequest"; +import { FonosterClient } from "./client/types"; +import { + CreateAclRequest as CreateAclRequestPB, + DeleteAclRequest as DeleteAclRequestPB, + DeleteAclResponse as DeleteAclResponsePB, + GetAclRequest as GetAclRequestPB, + ListAclsRequest as ListAclsRequestPB, + UpdateAclRequest as UpdateAclRequestPB +} from "./generated/node/acls_pb"; + +/** + * @classdesc Fonoster Acls, part of the Fonoster SIP Proxy subsystem, + * allows you to create, update, retrieve, and delete Access Control Lists (ACLs) rules for your deployment. + * Note that an active Fonoster deployment is required. + * + * @example + * const SDK = require("@fonoster/sdk"); + * + * async function main(request) { + * const apiKey = "your-api-key"; + * const apiSecret = "your-api-secret" + * const accessKeyId = "WO00000000000000000000000000000000"; + * + * try { + * const client = SDK.Client({ accessKeyId }); + * await client.loginWithApiKey(apiKey, apiSecret); + * + * const acls = new SDK.Acls(client); + * const response = await acls.createAcl(request); + * + * console.log(response); // successful response + * } catch (e) { + * console.error(e); // an error occurred + * } + * } + * + * const request = { + * name: "My ACL", + * allow: ["47.132.130.31"] // Allow only this IP + * }; + * + * main(request); + */ +class Acls { + private readonly client: FonosterClient; + /** + * Constructs a new Acls object. + * + * @param {FonosterClient} client - Client object with underlying implementations to make requests to Fonoster's API + * @see AbstractClient + * @see FonosterClient + */ + constructor(client: FonosterClient) { + this.client = client; + } + + /** + * Creates a new Acl in the Workspace. + * + * @param {CreateAclRequest} request - The request object that contains the necessary information to create a new Acl + * @param {string} request.name - The name of the Acl + * @param {string[]} request.allow - The list of IPs to allow + * @return {Promise} - The response object that contains the reference to the created Acl + * @example + * const acls = new SDK.Acls(client); // Existing client object + * + * const request = { + * name: "My ACL", + * allow: ["47.132.130.31"] // Allow only this IP + * }; + * + * acls + * .createAcl(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async createAcl(request: CreateAclRequest): Promise { + const client = this.client.getAclsClient(); + const createAclRequest = new CreateAclRequestPB(); + createAclRequest.setName(request.name); + createAclRequest.setAllowList(request.allow); + + return new Promise((resolve, reject) => { + client.createAcl( + createAclRequest, + this.client.getMetadata(), + (err, response) => { + if (err) { + reject(err); + return; + } + resolve(response.toObject()); + } + ); + }); + } + + /** + * Retrieves an existing Acl in the Workspace. + * + * @param {string} ref - The reference of the Acl to retrieve + * @return {Promise} - The response object that contains the Acl information + * @example + * const acls = new SDK.Acls(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * acls + * .getAcl(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async getAcl(ref: string): Promise { + const updateAclRequest = new GetAclRequestPB(); + updateAclRequest.setRef(ref); + const client = this.client.getAclsClient(); + + return new Promise((resolve, reject) => { + client.getAcl( + updateAclRequest, + this.client.getMetadata(), + (err, response) => { + if (err) { + reject(err); + return; + } + + const obj = response.toObject(); + resolve({ + ...obj, + allow: obj.allowList, + createdAt: new Date(obj.createdAt * 1000), + updatedAt: new Date(obj.updatedAt * 1000) + }); + } + ); + }); + } + + /** + * Updates an existing Acl in the Workspace. + * + * @param {UpdateAclRequest} request - The request object that contains the necessary information to update an existing Acl + * @param {string} request.ref - The reference of the Acl to update + * @param {string} request.name - The name of the Acl + * @param {string[]} request.allow - The list of IPs to allow + * @return {Promise} - The response object that contains the reference to the updated Acl + * @example + * const acls = new SDK.Acls(client); // Existing client object + * + * const request = { + * ref: "00000000-0000-0000-0000-000000000000", + * name: "My ACL", + * allow: ["47.132.130.31"] // Allow only this IP + * }; + * + * acls + * .updateAcl(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async updateAcl(request: UpdateAclRequest): Promise { + const client = this.client.getAclsClient(); + const updateAclRequest = new UpdateAclRequestPB(); + updateAclRequest.setRef(request.ref); + updateAclRequest.setName(request.name); + updateAclRequest.setAllowList(request.allow); + + return new Promise((resolve, reject) => { + client.updateAcl( + updateAclRequest, + this.client.getMetadata(), + (err, response) => { + if (err) { + reject(err); + return; + } + resolve(response.toObject()); + } + ); + }); + } + + /** + * Retrieves a list of Acls from a Workspace. + * + * @param {ListAclsRequest} request - The request object that contains the necessary information to retrieve a list of Acls + * @param {number} request.pageSize - The number of Acls to retrieve + * @param {string} request.pageToken - The token to retrieve the next page of Acls + * @return {Promise} - The response object that contains the list of Acls + * @example + * const acls = new SDK.Acls(client); // Existing client object + * + * const request = { + * pageSize: 10, + * pageToken: "00000000-0000-0000-0000-000000000000" + * }; + * + * acls + * .listAcls(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async listAcls(request: ListAclsRequest): Promise { + const client = this.client.getAclsClient(); + const listAclsRequest = new ListAclsRequestPB(); + listAclsRequest.setPageSize(request.pageSize); + listAclsRequest.setPageToken(request.pageToken); + + return new Promise((resolve, reject) => { + client.listAcls( + listAclsRequest, + this.client.getMetadata(), + (err, response) => { + if (err) { + reject(err); + return; + } + + const items = response.getItemsList().map((item) => { + const obj = item.toObject(); + return { + ...obj, + allow: obj.allowList, + createdAt: new Date(obj.createdAt * 1000), + updatedAt: new Date(obj.updatedAt * 1000) + }; + }); + + resolve({ + items: items as unknown as Acl[], + nextPageToken: response.getNextPageToken() + }); + } + ); + }); + } + + /** + * Deletes an existing Acl from Fonoster. + * Note that this operation is irreversible. + * + * @param {string} ref - The reference of the Acl to delete + * @return {Promise} - The response object that contains the reference to the deleted Acl + * @example + * const acls = new SDK.Acls(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * acls + * .deleteAcl(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async deleteAcl(ref: string): Promise { + const client = this.client.getAclsClient(); + return await makeRpcRequest< + DeleteAclRequestPB, + DeleteAclResponsePB, + BaseApiObject, + BaseApiObject + >({ + method: client.deleteAcl.bind(client), + requestPBObjectConstructor: DeleteAclRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } +} + +export { Acls }; diff --git a/mods/sdk/src/Agents.ts b/mods/sdk/src/Agents.ts new file mode 100644 index 000000000..bd5fe98b3 --- /dev/null +++ b/mods/sdk/src/Agents.ts @@ -0,0 +1,309 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + Agent, + BaseApiObject, + CreateAgentRequest, + ListAgentsRequest, + ListAgentsResponse, + UpdateAgentRequest +} from "@fonoster/types"; +import { makeRpcRequest } from "./client/makeRpcRequest"; +import { FonosterClient } from "./client/types"; +import { + Agent as AgentPB, + CreateAgentRequest as CreateAgentRequestPB, + CreateAgentResponse as CreateAgentResponsePB, + DeleteAgentRequest as DeleteAgentRequestPB, + DeleteAgentResponse as DeleteAgentResponsePB, + GetAgentRequest as GetAgentRequestPB, + ListAgentsRequest as ListAgentsRequestPB, + ListAgentsResponse as ListAgentsResponsePB, + Privacy as PrivacyPB, + UpdateAgentRequest as UpdateAgentRequestPB, + UpdateAgentResponse as UpdateAgentResponsePB +} from "./generated/node/agents_pb"; + +/** + * @classdesc Fonoster Agents, part of the Fonoster SIP Proxy subsystem, + * allows you to create, update, retrieve, and delete SIP Agents for your deployment. + * Note that an active Fonoster deployment is required. + * + * @example + * const SDK = require("@fonoster/sdk"); + * + * async function main(request) { + * const apiKey = "your-api-key"; + * const apiSecret = "your-api-secret" + * const accessKeyId = "WO00000000000000000000000000000000"; + * + * try { + * const client = SDK.Client({ accessKeyId }); + * await client.loginWithApiKey(apiKey, apiSecret); + * + * const agents = new SDK.Agents(client); + * const response = await agents.createAgent(request); + * + * console.log(response); // successful response + * } catch (e) { + * console.error(e); // an error occurred + * } + * } + * + * const request = { + * name: "John Doe", + * username: "1001", + * privacy: "PRIVATE", + * enabled: true, + * maxContacts: 3 + * domainRef: "00000000-0000-0000-0000-000000000000" + * }; + * + * main(request); + */ +class Agents { + private readonly client: FonosterClient; + /** + * Constructs a new Agents object. + * + * @param {FonosterClient} client - Client object with underlying implementations to make requests to Fonoster's API + * @see AbstractClient + * @see FonosterClient + */ + constructor(client: FonosterClient) { + this.client = client; + } + + /** + * Creates a new Agent in the Workspace. + * + * @param {CreateAgentRequest} request - The request object that contains the necessary information to create a new Agent + * @param {string} request.name - The name of the Agent + * @param {string} request.username - The username of the Agent + * @param {Privacy} request.privacy - The privacy of the Agent + * @param {boolean} request.enabled - The status of the Agent + * @param {number} request.maxContacts - The maximum number of contacts the Agent can have + * @param {string} request.domainRef - The reference of the Domain to associate the Agent + * @return {Promise} - The response object that contains the reference to the created Agent + * @example + * const agents = new SDK.Agents(client); // Existing client object + * + * const request = { + * name: "John Doe", + * username: "1001", + * privacy: "PRIVATE", + * enabled: true, + * maxContacts: 3 + * domainRef: "00000000-0000-0000-0000-000000000000" + * }; + * + * agents + * .createAgent(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async createAgent(request: CreateAgentRequest): Promise { + const client = this.client.getAgentsClient(); + return await makeRpcRequest< + CreateAgentRequestPB, + CreateAgentResponsePB, + CreateAgentRequest, + BaseApiObject + >({ + method: client.createAgent.bind(client), + requestPBObjectConstructor: CreateAgentRequestPB, + metadata: this.client.getMetadata(), + request, + enumMapping: [["privacy", PrivacyPB]] + }); + } + + /** + * Retrieves an existing Agent in the Workspace. + * + * @param {string} ref - The reference of the Agent to retrieve + * @return {Promise} - The response object that contains the Agent information + * @example + * const agents = new SDK.Agents(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * agents + * .getAgent(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async getAgent(ref: string): Promise { + const client = this.client.getAgentsClient(); + const response = await makeRpcRequest< + GetAgentRequestPB, + AgentPB, + BaseApiObject, + Agent + >({ + method: client.getAgent.bind(client), + requestPBObjectConstructor: GetAgentRequestPB, + metadata: this.client.getMetadata(), + request: { ref }, + enumMapping: [["privacy", PrivacyPB]] + }); + + const credentials = ( + response?.credentials as unknown as { + toObject: () => { + ref: string; + name: string; + username: string; + }; + } + )?.toObject(); + + const domain = ( + response?.domain as unknown as { + toObject: () => { + ref: string; + name: string; + domainUri: string; + }; + } + )?.toObject(); + + return response + ? { + ...response, + credentials, + domain + } + : null; + } + + /** + * Updates an existing Agent in the Workspace. + * + * @param {UpdateAgentRequest} request - The request object that contains the necessary information to update an existing Agent + * @param {string} request.ref - The reference of the Agent to update + * @param {string} request.name - The name of the Agent + * @param {Privacy} request.privacy - The privacy of the Agent + * @param {boolean} request.enabled - The status of the Agent + * @param {number} request.maxContacts - The maximum number of contacts the Agent can have + * @param {string} request.domainRef - The reference of the Domain to associate the Agent + * @return {Promise} - The response object that contains the reference to the updated Agent + * @example + * const agents = new SDK.Agents(client); // Existing client object + * + * const request = { + * ref: "00000000-0000-0000-0000-000000000000", + * name: "John Doe", + * privacy: "PRIVATE", + * enabled: true, + * maxContacts: 3 + * domainRef: "00000000-0000-0000-0000-000000000000" + * }; + * + * agents + * .updateAgent(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async updateAgent(request: UpdateAgentRequest): Promise { + const client = this.client.getAgentsClient(); + return await makeRpcRequest< + UpdateAgentRequestPB, + UpdateAgentResponsePB, + UpdateAgentRequest, + BaseApiObject + >({ + method: client.updateAgent.bind(client), + requestPBObjectConstructor: UpdateAgentRequestPB, + metadata: this.client.getMetadata(), + request, + enumMapping: [["privacy", PrivacyPB]] + }); + } + + /** + * Retrieves a list of Agents from a Workspace. + * + * @param {ListAgentsRequest} request - The request object that contains the necessary information to retrieve a list of Agents + * @param {number} request.pageSize - The number of Agents to retrieve + * @param {string} request.pageToken - The token to retrieve the next page of Agents + * @return {Promise} - The response object that contains the list of Agents + * @example + * const agents = new SDK.Agents(client); // Existing client object + * + * const request = { + * pageSize: 10, + * pageToken: "00000000-0000-0000-0000-000000000000" + * }; + * + * agents + * .listAgents(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async listAgents(request: ListAgentsRequest): Promise { + const client = this.client.getAgentsClient(); + return await makeRpcRequest< + ListAgentsRequestPB, + ListAgentsResponsePB, + ListAgentsRequest, + ListAgentsResponse + >({ + method: client.listAgents.bind(client), + requestPBObjectConstructor: ListAgentsRequestPB, + metadata: this.client.getMetadata(), + request, + enumMapping: [["privacy", PrivacyPB]], + repeatableObjectMapping: [["itemsList", AgentPB]] + }); + } + + /** + * Deletes an existing Agent from Fonoster. + * Note that this operation is irreversible. + * + * @param {string} ref - The reference of the Agent to delete + * @return {Promise} - The response object that contains the reference to the deleted Agent + * @example + * const agents = new SDK.Agents(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * agents + * .deleteAgent(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async deleteAgent(ref: string): Promise { + const applicationsClient = this.client.getAgentsClient(); + return await makeRpcRequest< + DeleteAgentRequestPB, + DeleteAgentResponsePB, + BaseApiObject, + BaseApiObject + >({ + method: applicationsClient.deleteAgent.bind(applicationsClient), + requestPBObjectConstructor: DeleteAgentRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } +} + +export { Agents }; diff --git a/mods/sdk/src/ApiKeys.ts b/mods/sdk/src/ApiKeys.ts new file mode 100644 index 000000000..6a7988acb --- /dev/null +++ b/mods/sdk/src/ApiKeys.ts @@ -0,0 +1,223 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + ApiRoleEnum, + BaseApiObject, + CreateApiKeyRequest, + CreateApiKeyResponse, + ListApiKeysRequest, + ListApiKeysResponse, + RegenerateApiKeyResponse +} from "@fonoster/types"; +import { makeRpcRequest } from "./client/makeRpcRequest"; +import { FonosterClient } from "./client/types"; +import { + ApiKey as ApiKeyPB, + CreateApiKeyRequest as CreateApiKeyRequestPB, + CreateApiKeyResponse as CreateApiKeyResponsePB, + DeleteApiKeyRequest as DeleteApiKeyRequestPB, + DeleteApiKeyResponse as DeleteApiKeyResponsePB, + ListApiKeysRequest as ListApiKeysRequestPB, + ListApiKeysResponse as ListApiKeysResponsePB, + RegenerateApiKeyRequest as RegenerateApiKeyRequestPB, + RegenerateApiKeyResponse as RegenerateApiKeyResponsePB +} from "./generated/node/identity_pb"; + +/** + * @classdesc Fonoster ApiKeys, part of the Fonoster Identity subsystem, + * allows you to create, update, retrieve, and delete ApiKeys for your deployment. + * Note that an active Fonoster deployment is required. + * + * @example + * + * const SDK = require("@fonoster/sdk"); + * + * async function main(request) { + * const apiKey = "your-api-key"; + * const apiSecret = "your-api-secret" + * const accessKeyId = "WO00000000000000000000000000000000"; + * + * try { + * const client = SDK.Client({ accessKeyId }); + * await client.loginWithApiKey(apiKey, apiSecret); + * + * const apiKeys = new SDK.ApiKeys(client); + * const response = await apiKeys.createApiKey(request); + * + * console.log(response); // successful response + * } catch (e) { + * console.error(e); // an error occurred + * } + * } + * + * const request = { + * role: "WORKSPACE_ADMIN" + * }; + * + * main(request); + */ +class ApiKeys { + private readonly client: FonosterClient; + /** + * Constructs a new ApiKeys object. + * + * @param {FonosterClient} client - Client object with underlying implementations to make requests to Fonoster's API + * @see AbstractClient + * @see FonosterClient + */ + constructor(client: FonosterClient) { + this.client = client; + } + + /** + * Creates a new ApiKey for a Workspace. + * + * @param {CreateApiKeyRequest} request - The request object that contains the necessary information to create a new ApiKey + * @param {ApiRoleEnum} request.role - The role of the ApiKey + * @return {Promise} - The response object that contains the reference to the created ApiKey + * @example + * const apiKeys = new SDK.ApiKeys(client); // Existing client object + * + * const request = { + * role: "WORKSPACE_ADMIN" + * }; + * + * apiKeys + * .createApiKey(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async createApiKey( + request: CreateApiKeyRequest + ): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + CreateApiKeyRequestPB, + CreateApiKeyResponsePB, + CreateApiKeyRequest, + CreateApiKeyResponse + >({ + method: client.createApiKey.bind(client), + requestPBObjectConstructor: CreateApiKeyRequestPB, + metadata: this.client.getMetadata(), + request, + enumMapping: [["role", ApiRoleEnum]] + }); + } + + /** + * Regenerates an existing ApiKey for a Workspace. + * Note that this operation is irreversible. + * + * @param {string} ref - The reference of the ApiKey to regenerate + * @return {Promise} - The response object that contains the reference to the regenerated ApiKey + * @example + * const apiKeys = new SDK.ApiKeys(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * apiKeys + * .regenerateApiKey(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async regenerateApiKey(ref: string): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + RegenerateApiKeyRequestPB, + RegenerateApiKeyResponsePB, + BaseApiObject, + RegenerateApiKeyResponse + >({ + method: client.regenerateApiKey.bind(client), + requestPBObjectConstructor: RegenerateApiKeyRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } + + /** + * Retrieves a list of ApiKeys from a Workspace. + * + * @param {ListApiKeysRequest} request - The request object that contains the necessary information to retrieve a list of ApiKeys + * @param {number} request.pageSize - The number of ApiKeys to retrieve + * @param {string} request.pageToken - The token to retrieve the next page of ApiKeys + * @return {Promise} - The response object that contains the list of ApiKeys + * @example + * const apiKeys = new SDK.ApiKeys(client); // Existing client object + * + * const request = { + * pageSize: 10, + * pageToken: "00000000-0000-0000-0000-000000000000" + * }; + * + * apiKeys + * .listApiKeys(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async listApiKeys(request: ListApiKeysRequest): Promise { + const applicationsClient = this.client.getIdentityClient(); + return await makeRpcRequest< + ListApiKeysRequestPB, + ListApiKeysResponsePB, + ListApiKeysRequest, + ListApiKeysResponse + >({ + method: applicationsClient.listApiKeys.bind(applicationsClient), + requestPBObjectConstructor: ListApiKeysRequestPB, + metadata: this.client.getMetadata(), + request, + repeatableObjectMapping: [["itemsList", ApiKeyPB]] + }); + } + + /** + * Deletes an existing ApiKey from Fonoster. + * Note that this operation is irreversible. + * + * @param {string} ref - The reference of the ApiKey to delete + * @return {Promise} - The response object that contains the reference to the deleted ApiKey + * @example + * const apiKeys = new SDK.ApiKeys(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * apiKeys + * .deleteApiKey(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async deleteApiKey(ref: string): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + DeleteApiKeyRequestPB, + DeleteApiKeyResponsePB, + BaseApiObject, + BaseApiObject + >({ + method: client.deleteApiKey.bind(client), + requestPBObjectConstructor: DeleteApiKeyRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } +} + +export { ApiKeys }; diff --git a/mods/sdk/src/Applications.ts b/mods/sdk/src/Applications.ts new file mode 100644 index 000000000..da87c1f26 --- /dev/null +++ b/mods/sdk/src/Applications.ts @@ -0,0 +1,356 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + Application, + BaseApiObject, + CreateApplicationRequest, + ListApplicationsRequest, + ListApplicationsResponse, + UpdateApplicationRequest +} from "@fonoster/types"; +import { makeRpcRequest } from "./client/makeRpcRequest"; +import { FonosterClient } from "./client/types"; +import { + Application as ApplicationPB, + ApplicationType, + CreateApplicationRequest as CreateApplicationRequestPB, + CreateApplicationResponse as CreateApplicationResponsePB, + DeleteApplicationRequest as DeleteApplicationRequestPB, + DeleteApplicationResponse as DeleteApplicationResponsePB, + GetApplicationRequest as GetApplicationRequestPB, + ListApplicationsRequest as ListApplicationsRequestPB, + ListApplicationsResponse as ListApplicationsResponsePB, + ProductContainer as ProductContainerPB, + UpdateApplicationRequest as UpdateApplicationRequestPB, + UpdateApplicationResponse as UpdateApplicationResponsePB +} from "./generated/node/applications_pb"; +import { buildStructOverride, buildStructOverrideReverse } from "./utils"; + +/** + * @classdesc Fonoster Applications, part of the Fonoster Voice Subsystem, + * allow you to create, update, retrieve, and delete Voice Applications. + * Note that an active Fonoster deployment is required. + * + * @example + * + * const SDK = require("@fonoster/sdk"); + * + * async function main(request) { + * const apiKey = "your-api-key"; + * const apiSecret = "your-api-secret" + * const accessKeyId = "WO00000000000000000000000000000000"; + * + * try { + * const client = SDK.Client({ accessKeyId }); + * await client.loginWithApiKey(apiKey, apiSecret); + * + * const apps = new SDK.Applications(client); + * const response = await apps.createApplication(request); + * + * console.log(response); // successful response + * } catch (e) { + * console.error(e); // an error occurred + * } + * } + * + * const request = { + * name: "My application", + * type: "EXTERNAL", + * endpoint: "myapp.mydomain.com", + * textToSpeech: { + * productRef: "tts.google", + * config: { + * voice: "en-US-Casual-K" + * } + * }, + * speechToText: { + * productRef: "stt.google", + * config: { + * languageCode: "en-US" + * } + * }, + * intelligence: { + * productRef: "nlu.dialogflowcx", + * config: { + * agentId: "your-agent-id" + * } + * } + * }; + * + * main(request); + */ +class Applications { + private readonly client: FonosterClient; + /** + * Constructs a new Applications object. + * + * @param {FonosterClient} client - Client object with underlying implementations to make requests to Fonoster's API + * @see AbstractClient + * @see FonosterClient + */ + constructor(client: FonosterClient) { + this.client = client; + } + + /** + * Creates a new Application in Fonoster. The only required fields are the name and type of the application. + * + * @param {CreateApplicationRequest} request - The request object that contains the necessary information to create a new application + * @param {string} request.name - The name of the application + * @param {ApplicationType} request.type - The type of application (e.g., EXTERNAL) + * @param {string} request.endpoint - The endpoint where the application is hosted + * @param {TextToSpeech} request.textToSpeech - The text-to-speech configuration + * @param {string} request.textToSpeech.productRef - The product reference of the text-to-speech engine (e.g., tts.google) + * @param {object} request.textToSpeech.config - The configuration object for the text-to-speech engine (e.g., { voice: "en-US-Casual-K" }) + * @param {SpeechToText} request.speechToText - The speech-to-text configuration + * @param {string} request.speechToText.productRef - The product reference of the speech-to-text engine (e.g., stt.google) + * @param {object} request.speechToText.config - The configuration object for the speech-to-text engine (e.g., { languageCode: "en-US" }) + * @param {Intelligence} request.intelligence - The intelligence configuration + * @param {string} request.intelligence.productRef - The product reference of the intelligence engine (e.g., nlu.dialogflowcx) + * @param {object} request.intelligence.config - The configuration object for the intelligence engine (e.g., { agentId: "your-agent-id" }) + * @return {Promise} - The response object that contains the reference to the newly created application + * @example + * const apps = new SDK.Applications(client); // Existing client object + * + * const request = { + * name: "My application", + * type: "EXTERNAL", + * endpoint: "myapp.mydomain.com", + * textToSpeech: { + * productRef: "tts.google", + * config: { + * voice: "en-US-Casual-K" + * } + * }, + * speechToText: { + * productRef: "stt.google", + * config: { + * languageCode: "en-US" + * } + * }, + * intelligence: { + * productRef: "nlu.dialogflowcx", + * config: { + * agentId: "your-agent-id" + * } + * } + * }; + * + * apps + * .createApplication(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async createApplication( + request: CreateApplicationRequest + ): Promise { + const reqWithStructOverride = buildStructOverride(request); + const applicationsClient = this.client.getApplicationsClient(); + + return await makeRpcRequest< + CreateApplicationRequestPB, + CreateApplicationResponsePB, + CreateApplicationRequest, + BaseApiObject + >({ + method: applicationsClient.createApplication.bind(applicationsClient), + requestPBObjectConstructor: CreateApplicationRequestPB, + metadata: this.client.getMetadata(), + request: reqWithStructOverride, + enumMapping: [["type", ApplicationType]], + objectMapping: [ + ["textToSpeech", ProductContainerPB], + ["speechToText", ProductContainerPB], + ["intelligence", ProductContainerPB] + ] + }); + } + + /** + * Retrieves an existing Application in the Workspace. + * + * @param {string} ref - The reference of the Application to retrieve + * @return {Promise} - The response object that contains the Application information + * @example + * const apps = new SDK.Applications(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * apps + * .getApplication(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async getApplication(ref: string): Promise { + const applicationsClient = this.client.getApplicationsClient(); + + const response = await makeRpcRequest< + GetApplicationRequestPB, + ApplicationPB, + BaseApiObject, + Application + >({ + method: applicationsClient.getApplication.bind(applicationsClient), + requestPBObjectConstructor: GetApplicationRequestPB, + metadata: this.client.getMetadata(), + request: { ref }, + enumMapping: [["type", ApplicationType]], + objectMapping: [ + ["textToSpeech", ProductContainerPB], + ["speechToText", ProductContainerPB], + ["intelligence", ProductContainerPB] + ] + }); + + return buildStructOverrideReverse(response); + } + + /** + * Updates an existing application in Fonoster. + * + * @param {UpdateApplicationRequest} request - The request object that contains the necessary information to update an application + * @param {string} request.ref - The reference of the application to update + * @param {string} request.name - The name of the application + * @param {string} request.endpoint - The endpoint where the application is hosted + * @param {TextToSpeech} request.textToSpeech - The text-to-speech configuration + * @param {string} request.textToSpeech.productRef - The product reference of the text-to-speech engine (e.g., tts.google) + * @param {object} request.textToSpeech.config - The configuration object for the text-to-speech engine (e.g., { voice: "en-US-Casual-K" }) + * @param {SpeechToText} request.speechToText - The speech-to-text configuration + * @param {string} request.speechToText.productRef - The product reference of the speech-to-text engine (e.g., stt.google) + * @param {object} request.speechToText.config - The configuration object for the speech-to-text engine (e.g., { languageCode: "en-US" }) + * @param {Intelligence} request.intelligence - The intelligence configuration + * @param {string} request.intelligence.productRef - The product reference of the intelligence engine (e.g., nlu.dialogflowcx) + * @param {object} request.intelligence.config - The configuration object for the intelligence engine (e.g., { agentId: "your-agent-id" }) + * @return {Promise} - The response object that contains the reference to the updated application + * @example + * const apps = new SDK.Applications(client); // Existing client object + * + * const request = { + * ref: "00000000-0000-0000-0000-000000000000", + * name: "My application", + * endpoint: "myapp.mydomain.com" + * }; + * + * apps + * .updateApplication(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async updateApplication( + request: UpdateApplicationRequest + ): Promise { + const reqWithStructOverride = buildStructOverride(request); + const applicationsClient = this.client.getApplicationsClient(); + + return await makeRpcRequest< + UpdateApplicationRequestPB, + UpdateApplicationResponsePB, + UpdateApplicationRequest, + BaseApiObject + >({ + method: applicationsClient.updateApplication.bind(applicationsClient), + requestPBObjectConstructor: UpdateApplicationRequestPB, + metadata: this.client.getMetadata(), + request: reqWithStructOverride, + enumMapping: [["type", ApplicationType]], + objectMapping: [ + ["textToSpeech", ProductContainerPB], + ["speechToText", ProductContainerPB], + ["intelligence", ProductContainerPB] + ] + }); + } + + /** + * Retrieves a list of Applications from Fonoster. + * + * @param {ListApplicationsRequest} request - The request object that contains the necessary information to retrieve a list of Applications + * @param {number} request.pageSize - The number of Applications to retrieve + * @param {string} request.pageToken - The token to retrieve the next page of Applications + * @return {Promise} - The response object that contains the list of Applications + * @example + * const apps = new SDK.Applications(client); // Existing client object + * + * const request = { + * pageSize: 10, + * pageToken: "00000000-0000-0000-0000-000000000000" + * }; + * + * apps + * .listApplications(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async listApplications( + request: ListApplicationsRequest + ): Promise { + const applicationsClient = this.client.getApplicationsClient(); + const response = await makeRpcRequest< + ListApplicationsRequestPB, + ListApplicationsResponsePB, + ListApplicationsRequest, + ListApplicationsResponse + >({ + method: applicationsClient.listApplications.bind(applicationsClient), + requestPBObjectConstructor: ListApplicationsRequestPB, + metadata: this.client.getMetadata(), + request, + enumMapping: [["type", ApplicationType]], + repeatableObjectMapping: [["itemsList", ApplicationPB]] + }); + + return { + items: response.items.map(buildStructOverrideReverse), + nextPageToken: response.nextPageToken + }; + } + + /** + * Deletes an existing Application from Fonoster. + * Note that this operation is irreversible. + * + * @param {string} ref - The reference of the Application to delete + * @return {Promise} - The response object that contains the reference to the deleted application + * @example + * const apps = new SDK.Applications(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * apps + * .deleteApplication(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async deleteApplication(ref: string): Promise { + const applicationsClient = this.client.getApplicationsClient(); + return await makeRpcRequest< + DeleteApplicationRequestPB, + DeleteApplicationResponsePB, + BaseApiObject, + BaseApiObject + >({ + method: applicationsClient.deleteApplication.bind(applicationsClient), + requestPBObjectConstructor: DeleteApplicationRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } +} + +export { Applications }; diff --git a/mods/sdk/src/Calls.ts b/mods/sdk/src/Calls.ts new file mode 100644 index 000000000..877f1c542 --- /dev/null +++ b/mods/sdk/src/Calls.ts @@ -0,0 +1,263 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { DialStatus } from "@fonoster/common"; +import { + BaseApiObject, + CallDetailRecord, + CreateCallRequest, + ListCallsRequest, + ListCallsResponse +} from "@fonoster/types"; +import { makeRpcRequest } from "./client/makeRpcRequest"; +import { DataResponse, FonosterClient } from "./client/types"; +import { + CallDirection, + Call as CallPB, + CallStatus, + CallType, + CreateCallRequest as CreateCallRequestPB, + CreateCallResponse as CreateCallResponsePB, + GetCallRequest as GetCallRequestPB, + GetCallResponse as GetCallResponsePB, + ListCallsRequest as ListCallsRequestPB, + ListCallsResponse as ListCallsResponsePB, + TrackCallRequest as TrackCallRequestPB +} from "./generated/node/calls_pb"; +import { dialStatusToString } from "./utils"; + +/** + * @classdesc Fonoster Calls, part of the Fonoster Media subsystem, + * allows you to create, list, and track calls in your deployment. + * Note that an active Fonoster deployment is required. + * + * @example + * + * const SDK = require("@fonoster/sdk"); + * + * async function main(request) { + * const apiKey = "your-api-key"; + * const apiSecret = "your-api-secret" + * const accessKeyId = "WO00000000000000000000000000000000"; + * + * try { + * const client = SDK.Client({ accessKeyId }); + * await client.loginWithApiKey(apiKey, apiSecret); + * + * const calls = new SDK.Calls(client); + * const response = await calls.createCall(request); + * + * console.log(response); // successful response + * } catch (e) { + * console.error(e); // an error occurred + * } + * } + * + * const request = { + * from: "+18287854037", + * to: "+17853178070", + * appRef: "00000000-0000-0000-0000-000000000000" + * }; + * + * main(request); + */ +class Calls { + private readonly client: FonosterClient; + /** + * Constructs a new Calls object. + * + * @param {FonosterClient} client - Client object with underlying implementations to make requests to Fonoster's API + * @see AbstractClient + * @see FonosterClient + */ + constructor(client: FonosterClient) { + this.client = client; + } + + /** + * Creates a new Call in the Workspace. + * + * @param {CreateCallRequest} request - The request object that contains the necessary information to create a new Call + * @param {string} request.from - The number that originated the call + * @param {string} request.to - The number that received the call + * @param {string} request.appRef - The reference of the App that will handle the call + * @param {number} request.timeout - The time in seconds to wait for the call to be answered. Default is 60 seconds + * @return {{ref: string, statusStream: AsyncGenerator<{ status: DialStatus }>}} - The response object that contains the Call reference and a stream of status updates + * @see DialStatus + * @example + * const calls = new SDK.Calls(client); // Existing client object + * + * const request = { + * from: "+18287854037", + * to: "+17853178070", + * appRef: "00000000-0000-0000-0000-000000000000", + * timeout: 30 + * }; + * + * const response = await calls.createCall(request); + * const { ref, statusStream } = response; + * + * console.log(ref); // Call reference + * + * for await (const status of statusStream) { + * console.log(status); // Streamed status + * } + */ + async createCall(request: CreateCallRequest): Promise<{ + ref: string; + statusStream: AsyncGenerator<{ status: DialStatus }>; + }> { + const client = this.client.getCallsClient(); + + const response = await makeRpcRequest< + CreateCallRequestPB, + CreateCallResponsePB, + CreateCallRequest, + BaseApiObject + >({ + method: client.createCall.bind(client), + requestPBObjectConstructor: CreateCallRequestPB, + metadata: this.client.getMetadata(), + request + }); + + const trackCallRequest = new TrackCallRequestPB(); + trackCallRequest.setRef(response.ref); + + const call = client.trackCall(trackCallRequest, this.client.getMetadata()); + + async function* statusStreamGenerator(): AsyncGenerator<{ + status: DialStatus; + }> { + const queue: Array<{ status: number }> = []; + let done = false; + + call.on("data", (response: DataResponse) => { + const data = response.toObject(); + queue.push(data as { status: number }); + }); + + call.on("end", () => { + done = true; + }); + + call.on("error", () => { + done = true; + throw new Error("An error occurred while tracking the call"); + }); + + // eslint-disable-next-line no-loops/no-loops + while (!done) { + if (queue.length > 0) { + const data = queue.shift()!; + if (!data) { + return; + } + + yield { status: dialStatusToString(data.status) } as { + status: DialStatus; + }; + } else { + await new Promise((resolve) => setTimeout(resolve, 50)); + } + } + } + + const statusStream = statusStreamGenerator(); + + return { ref: response.ref, statusStream }; + } + + /** + * Retrieves an existing Call in the Workspace. + * + * @param {string} ref - The reference of the Call to retrieve + * @return {Promise} - The response object that contains the Call detail + * @example + * const calls = new SDK.Calls(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * calls + * .getCall(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async getCall(ref: string) { + const client = this.client.getCallsClient(); + return await makeRpcRequest< + GetCallRequestPB, + GetCallResponsePB, + BaseApiObject, + CallDetailRecord + >({ + method: client.getCall.bind(client), + requestPBObjectConstructor: GetCallRequestPB, + metadata: this.client.getMetadata(), + request: { ref }, + enumMapping: [ + ["type", CallType], + ["status", CallStatus], + ["direction", CallDirection] + ] + }); + } + + /** + * Retrieves a list of Calls from a Workspace. + * + * @param {ListCallsRequest} request - The request object that contains the necessary information to retrieve a list of Calls + * @param {number} request.pageSize - The number of Calls to retrieve + * @param {string} request.pageToken - The token to retrieve the next page of Calls + * @return {Promise} - The response object that contains the list of Calls + * @example + * const calls = new SDK.Calls(client); // Existing client object + * + * const request = { + * pageSize: 10, + * pageToken: "00000000-0000-0000-0000-000000000000" + * }; + * + * calls + * .listCalls(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async listCalls(request: ListCallsRequest): Promise { + const client = this.client.getCallsClient(); + return await makeRpcRequest< + ListCallsRequestPB, + ListCallsResponsePB, + ListCallsRequest, + ListCallsResponse + >({ + method: client.listCalls.bind(client), + requestPBObjectConstructor: ListCallsRequestPB, + metadata: this.client.getMetadata(), + request, + enumMapping: [ + ["type", CallType], + ["status", CallStatus], + ["direction", CallDirection] + ], + repeatableObjectMapping: [["itemsList", CallPB]] + }); + } +} + +export { Calls }; diff --git a/mods/sdk/src/Credentials.ts b/mods/sdk/src/Credentials.ts new file mode 100644 index 000000000..6d3a5afea --- /dev/null +++ b/mods/sdk/src/Credentials.ts @@ -0,0 +1,268 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + BaseApiObject, + CreateCredentialsRequest, + Credentials as CredentialsType, + ListCredentialsRequest, + ListCredentialsResponse, + UpdateCredentialsRequest +} from "@fonoster/types"; +import { makeRpcRequest } from "./client/makeRpcRequest"; +import { FonosterClient } from "./client/types"; +import { + CreateCredentialsRequest as CreateCredentialsRequestPB, + CreateCredentialsResponse as CreateCredentialsResponsePB, + Credentials as CredentialsPB, + DeleteCredentialsRequest as DeleteCredentialsRequestPB, + DeleteCredentialsResponse as DeleteCredentialsResponsePB, + GetCredentialsRequest as GetCredentialsRequestPB, + ListCredentialsRequest as ListCredentialsRequestPB, + ListCredentialsResponse as ListCredentialsResponsePB, + UpdateCredentialsRequest as UpdateCredentialsRequestPB, + UpdateCredentialsResponse as UpdateCredentialsResponsePB +} from "./generated/node/credentials_pb"; + +/** + * @classdesc Fonoster Credentials, part of the Fonoster SIP Proxy subsystem, + * allows you to create, update, retrieve, and delete SIP Credentials for your deployment. + * Note that an active Fonoster deployment is required. + * + * @example + * + * const SDK = require("@fonoster/sdk"); + * + * async function main(request) { + * const apiKey = "your-api-key"; + * const apiSecret = "your-api-secret" + * const accessKeyId = "WO00000000000000000000000000000000"; + * + * try { + * const client = SDK.Client({ accessKeyId }); + * await client.loginWithApiKey(apiKey, apiSecret); + * + * const credentials = new SDK.Credentials(client); + * const response = await apiKeys.createCredentials(request); + * + * console.log(response); // successful response + * } catch (e) { + * console.error(e); // an error occurred + * } + * } + * + * const request = { + * name: "My Credentials", + * username: "myusername", + * password: "mysecret" + * }; + * + * main(request); + */ +class Credentials { + private readonly client: FonosterClient; + /** + * Constructs a new Credentials object. + * + * @param {FonosterClient} client - Client object with underlying implementations to make requests to Fonoster's API + * @see AbstractClient + * @see FonosterClient + */ + constructor(client: FonosterClient) { + this.client = client; + } + + /** + * Creates a new set of Credentials in the Workspace. + * + * @param {CreateCredentialsRequest} request - The request object that contains the necessary information to create a new set of Credentials + * @param {string} request.name - The name of the Credentials + * @param {string} request.username - The username of the Credentials + * @param {string} request.password - The password of the Credentials + * @return {Promise} - The response object that contains the reference to the created Credentials + * @example + * const credentials = new SDK.Credentials(client); // Existing client object + * + * const request = { + * name: "My Credentials", + * username: "myusername", + * password: "mysecret" + * }; + * + * credentials + * .createCredentials(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async createCredentials( + request: CreateCredentialsRequest + ): Promise { + const client = this.client.getCredentialsClient(); + return await makeRpcRequest< + CreateCredentialsRequestPB, + CreateCredentialsResponsePB, + CreateCredentialsRequest, + BaseApiObject + >({ + method: client.createCredentials.bind(client), + requestPBObjectConstructor: CreateCredentialsRequestPB, + metadata: this.client.getMetadata(), + request + }); + } + + /** + * Retrieves an existing set of Credentials in the Workspace. + * + * @param {string} ref - The reference of the Credentials to retrieve + * @return {Promise} - The response object that contains the Credentials + * @example + * const credentials = new SDK.Credentials(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * credentials + * .getCredentials(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async getCredentials(ref: string): Promise { + const client = this.client.getCredentialsClient(); + return await makeRpcRequest< + GetCredentialsRequestPB, + CredentialsPB, + BaseApiObject, + CredentialsType + >({ + method: client.getCredentials.bind(client), + requestPBObjectConstructor: GetCredentialsRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } + + /** + * Updates an existing set of Credentials in the Workspace. + * + * @param {UpdateCredentialsRequest} request - The request object that contains the necessary information to update an existing set of Credentials + * @param {string} request.ref - The reference of the Credentials to update + * @param {string} request.name - The name of the Credentials + * @param {string} request.password - The password of the Credentials + * @return {Promise} - The response object that contains the reference to the updated Credentials + * @example + * const credentials = new SDK.Credentials(client); // Existing client object + * + * const request = { + * ref: "00000000-0000-0000-0000-000000000000", + * name: "My Credentials", + * password: "mysecret" + * }; + * + * credentials + * .updateCredentials(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async updateCredentials( + request: UpdateCredentialsRequest + ): Promise { + const client = this.client.getCredentialsClient(); + return await makeRpcRequest< + UpdateCredentialsRequestPB, + UpdateCredentialsResponsePB, + UpdateCredentialsRequest, + BaseApiObject + >({ + method: client.updateCredentials.bind(client), + requestPBObjectConstructor: UpdateCredentialsRequestPB, + metadata: this.client.getMetadata(), + request + }); + } + + /** + * Retrieves a list of Credentials from a Workspace. + * + * @param {ListCredentialsRequest} request - The request object that contains the necessary information to retrieve a list of Credentials + * @param {number} request.pageSize - The number of Credentials to retrieve + * @param {string} request.pageToken - The token to retrieve the next page of Credentials + * @return {Promise} - The response object that contains the list of Credentials + * @example + * const credentials = new SDK.Credentials(client); // Existing client object + * + * const request = { + * pageSize: 10, + * pageToken: "00000000-0000-0000-0000-000000000000" + * }; + * + * credentials + * .listCredentials(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async listCredentials( + request: ListCredentialsRequest + ): Promise { + const client = this.client.getCredentialsClient(); + return await makeRpcRequest< + ListCredentialsRequestPB, + ListCredentialsResponsePB, + ListCredentialsRequest, + ListCredentialsResponse + >({ + method: client.listCredentials.bind(client), + requestPBObjectConstructor: ListCredentialsRequestPB, + metadata: this.client.getMetadata(), + request, + repeatableObjectMapping: [["itemsList", CredentialsPB]] + }); + } + + /** + * Deletes an existing set of Credentials from Fonoster. + * Note that this operation is irreversible. + * + * @param {string} ref - The reference of the Credentials to delete + * @return {Promise} - The response object that contains the reference to the deleted Credentials + * @example + * const credentials = new SDK.Credentials(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * credentials + * .deleteCredentials(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async deleteCredentials(ref: string): Promise { + const applicationsClient = this.client.getCredentialsClient(); + return await makeRpcRequest< + DeleteCredentialsRequestPB, + DeleteCredentialsResponsePB, + BaseApiObject, + BaseApiObject + >({ + method: applicationsClient.deleteCredentials.bind(applicationsClient), + requestPBObjectConstructor: DeleteCredentialsRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } +} + +export { Credentials }; diff --git a/mods/sdk/src/Domains.ts b/mods/sdk/src/Domains.ts new file mode 100644 index 000000000..cfc0ba863 --- /dev/null +++ b/mods/sdk/src/Domains.ts @@ -0,0 +1,266 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + BaseApiObject, + CreateDomainRequest, + Domain, + ListDomainsRequest, + ListDomainsResponse, + UpdateDomainRequest +} from "@fonoster/types"; +import { makeRpcRequest } from "./client/makeRpcRequest"; +import { FonosterClient } from "./client/types"; +import { + CreateDomainRequest as CreateDomainRequestPB, + CreateDomainResponse as CreateDomainResponsePB, + DeleteDomainRequest as DeleteDomainRequestPB, + DeleteDomainResponse as DeleteDomainResponsePB, + Domain as DomainPB, + GetDomainRequest as GetDomainRequestPB, + ListDomainsRequest as ListDomainsRequestPB, + ListDomainsResponse as ListDomainsResponsePB, + UpdateDomainRequest as UpdateDomainRequestPB, + UpdateDomainResponse as UpdateDomainResponsePB +} from "./generated/node/domains_pb"; + +/** + * @classdesc Fonoster Domains, part of the Fonoster SIP Proxy subsystem, + * allows you to create, update, retrieve, and delete SIP Domain for your deployment. + * Note that an active Fonoster deployment is required. + * + * @example + * + * const SDK = require("@fonoster/sdk"); + * + * async function main(request) { + * const apiKey = "your-api-key"; + * const apiSecret = "your-api-secret" + * const accessKeyId = "WO00000000000000000000000000000000"; + * + * try { + * const client = SDK.Client({ accessKeyId }); + * await client.loginWithApiKey(apiKey, apiSecret); + * + * const domains = new SDK.Domains(client); + * const response = await domains.createDomain(request); + * + * console.log(response); // successful response + * } catch (e) { + * console.error(e); // an error occurred + * } + * } + * + * const request = { + * name: "My Domain", + * domainUri: "sip.project.fonoster.io" + * }; + * + * main(request); + */ +class Domains { + private readonly client: FonosterClient; + /** + * Constructs a new Domains object. + * + * @param {FonosterClient} client - Client object with underlying implementations to make requests to Fonoster's API + * @see AbstractClient + * @see FonosterClient + */ + constructor(client: FonosterClient) { + this.client = client; + } + + /** + * Creates a new Domain in the Workspace. + * + * @param {CreateDomainRequest} request - The request object that contains the necessary information to create a new Domain + * @param {string} request.name - The name of the Domain + * @param {string} request.domainUri - The URI of the Domain + * @param {AccessControlListRef} request.accessControlListRef - The reference to the Access Control List (ACL) to associate with the Domain + * @param {EgressPolicy[]} request.egressPolicy - The egress policy of the Domain + * @param {string} request.egressPolicy[].rule - A regular expression that defines which calls to send to the PSTN + * @param {string} request.egressPolicy[].numberRef - The Number that will be used to send the call to the PSTN + * @return {Promise} - The response object that contains the reference to the created Domain + * @example + * const domains = new SDK.Domains(client); // Existing client object + * + * const request = { + * name: "My Domain", + * domainUri: "sip.project.fonoster.io" + * }; + * + * domains + * .createDomain(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async createDomain(request: CreateDomainRequest): Promise { + const client = this.client.getDomainsClient(); + return await makeRpcRequest< + CreateDomainRequestPB, + CreateDomainResponsePB, + CreateDomainRequest, + BaseApiObject + >({ + method: client.createDomain.bind(client), + requestPBObjectConstructor: CreateDomainRequestPB, + metadata: this.client.getMetadata(), + request + }); + } + + /** + * Retrieves an existing Domain in the Workspace. + * + * @param {string} ref - The reference of the Domain to retrieve + * @return {Promise} - The response object that contains the Domain + * @example + * const domains = new SDK.Domains(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * domains + * .getDomain(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async getDomain(ref: string): Promise { + const client = this.client.getDomainsClient(); + return await makeRpcRequest< + GetDomainRequestPB, + DomainPB, + BaseApiObject, + Domain + >({ + method: client.getDomain.bind(client), + requestPBObjectConstructor: GetDomainRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } + + /** + * Updates an existing Domain in the Workspace. + * + * @param {UpdateDomainRequest} request - The request object that contains the necessary information to update an existing Domain + * @param {string} request.ref - The reference of the Domain to update + * @param {string} request.name - The name of the Domain + * @param {string} request.domainUri - The URI of the Domain + * @param {AccessControlListRef} request.accessControlListRef - The reference to the Access Control List (ACL) to associate with the Domain + * @param {EgressPolicy[]} request.egressPolicy - The egress policy of the Domain + * @param {string} request.egressPolicy[].rule - A regular expression that defines which calls to send to the PSTN + * @param {string} request.egressPolicy[].numberRef - The Number that will be used to send the call to the PSTN + * @return {Promise} - The response object that contains the reference to the updated Domain + * @example + * const domains = new SDK.Domains(client); // Existing client object + * + * const request = { + * ref: "00000000-0000-0000-0000-000000000000", + * accessControlListRef: "00000000-0000-0000-0000-000000000001" + * }; + * + * domains + * .updateDomain(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async updateDomain(request: UpdateDomainRequest): Promise { + const client = this.client.getDomainsClient(); + return await makeRpcRequest< + UpdateDomainRequestPB, + UpdateDomainResponsePB, + UpdateDomainRequest, + BaseApiObject + >({ + method: client.updateDomain.bind(client), + requestPBObjectConstructor: UpdateDomainRequestPB, + metadata: this.client.getMetadata(), + request + }); + } + + /** + * Retrieves a list of Domains from a Workspace. + * + * @param {ListDomainsRequest} request - The request object that contains the necessary information to retrieve a list of Domains + * @param {number} request.pageSize - The number of Domains to retrieve + * @param {string} request.pageToken - The token to retrieve the next page of Domains + * @return {Promise} - The response object that contains the list of Domains + * @example + * const domains = new SDK.Domains(client); // Existing client object + * + * const request = { + * pageSize: 10, + * pageToken: "00000000-0000-0000-0000-000000000000" + * }; + * + * domains + * .listDomains(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async listDomains(request: ListDomainsRequest): Promise { + const client = this.client.getDomainsClient(); + return await makeRpcRequest< + ListDomainsRequestPB, + ListDomainsResponsePB, + ListDomainsRequest, + ListDomainsResponse + >({ + method: client.listDomains.bind(client), + requestPBObjectConstructor: ListDomainsRequestPB, + metadata: this.client.getMetadata(), + request, + repeatableObjectMapping: [["itemsList", DomainPB]] + }); + } + + /** + * Deletes an existing Domain from Fonoster. + * Note that this operation is irreversible. + * + * @param {string} ref - The reference of the Domain to delete + * @return {Promise} - The response object that contains the reference to the deleted Domain + * @example + * const domains = new SDK.Domains(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * domains + * .deleteDomain(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async deleteDomain(ref: string): Promise { + const applicationsClient = this.client.getDomainsClient(); + return await makeRpcRequest< + DeleteDomainRequestPB, + DeleteDomainResponsePB, + BaseApiObject, + BaseApiObject + >({ + method: applicationsClient.deleteDomain.bind(applicationsClient), + requestPBObjectConstructor: DeleteDomainRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } +} + +export { Domains }; diff --git a/mods/sdk/src/Numbers.ts b/mods/sdk/src/Numbers.ts new file mode 100644 index 000000000..a01500d47 --- /dev/null +++ b/mods/sdk/src/Numbers.ts @@ -0,0 +1,282 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + BaseApiObject, + CreateNumberRequest, + INumber, + ListNumbersRequest, + ListNumbersResponse, + UpdateNumberRequest +} from "@fonoster/types"; +import { makeRpcRequest } from "./client/makeRpcRequest"; +import { FonosterClient } from "./client/types"; +import { + CreateNumberRequest as CreateNumberRequestPB, + CreateNumberResponse as CreateNumberResponsePB, + DeleteNumberRequest as DeleteNumberRequestPB, + DeleteNumberResponse as DeleteNumberResponsePB, + GetNumberRequest as GetNumberRequestPB, + ListNumbersRequest as ListNumbersRequestPB, + ListNumbersResponse as ListNumbersResponsePB, + Number as NumberPB, + UpdateNumberRequest as UpdateNumberRequestPB, + UpdateNumberResponse as UpdateNumberResponsePB +} from "./generated/node/numbers_pb"; + +/** + * @classdesc Fonoster Numbers, part of the Fonoster SIP Proxy subsystem, + * allows you to create, update, retrieve, and delete SIP Number for your deployment. + * Note that an active Fonoster deployment is required. + * + * @example + * + * const SDK = require("@fonoster/sdk"); + * + * async function main(request) { + * const apiKey = "your-api-key"; + * const apiSecret = "your-api-secret" + * const accessKeyId = "WO00000000000000000000000000000000"; + * + * try { + * const client = SDK.Client({ accessKeyId }); + * await client.loginWithApiKey(apiKey, apiSecret); + * + * const numbers = new SDK.Numbers(client); + * const response = await numbers.createNumber(request); + * + * console.log(response); // successful response + * } catch (e) { + * console.error(e); // an error occurred + * } + * } + * + * const request = { + * name: "My Number", + * telUrl: "tel:+17853178070", + * city: "Asheville", + * country: "United States", + * countryIsoCode: "US" + * }; + * + * main(request); + */ +class Numbers { + private readonly client: FonosterClient; + /** + * Constructs a new Numbers object. + * + * @param {FonosterClient} client - Client object with underlying implementations to make requests to Fonoster's API + * @see AbstractClient + * @see FonosterClient + */ + constructor(client: FonosterClient) { + this.client = client; + } + + /** + * Creates a new Number in the Workspace. + * + * @param {CreateNumberRequest} request - The request object that contains the necessary information to create a new Number + * @param {string} request.name - The name of the Number + * @param {string} request.telUrl - The telUrl of the Number + * @param {string} request.city - The city of the Number + * @param {string} request.country - The country of the Number + * @param {string} request.countryIsoCode - The countryIsoCode of the Number + * @return {Promise} - The response object that contains the reference to the created Number + * @example + * const numbers = new SDK.Numbers(client); // Existing client object + * + * const request = { + * name: "My Number", + * telUrl: "tel:+17853178070", + * city: "Asheville", + * country: "United States", + * countryIsoCode: "US" + * }; + * + * numbers + * .createNumber(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async createNumber(request: CreateNumberRequest): Promise { + const client = this.client.getNumbersClient(); + return await makeRpcRequest< + CreateNumberRequestPB, + CreateNumberResponsePB, + CreateNumberRequest, + BaseApiObject + >({ + method: client.createNumber.bind(client), + requestPBObjectConstructor: CreateNumberRequestPB, + metadata: this.client.getMetadata(), + request + }); + } + + /** + * Retrieves an existing Number in the Workspace. + * + * @param {string} ref - The reference of the Number to retrieve + * @return {Promise} - The response object that contains the Number + * @example + * const numbers = new SDK.Numbers(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * numbers + * .getNumber(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async getNumber(ref: string): Promise { + const client = this.client.getNumbersClient(); + const response = await makeRpcRequest< + GetNumberRequestPB, + NumberPB, + BaseApiObject, + INumber + >({ + method: client.getNumber.bind(client), + requestPBObjectConstructor: GetNumberRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + + const trunk = ( + response?.trunk as unknown as { + toObject: () => { + ref: string; + name: string; + }; + } + )?.toObject(); + + return response + ? { + ...response, + trunk + } + : null; + } + + /** + * Updates an existing Number in the Workspace. + * + * @param {UpdateNumberRequest} request - The request object that contains the necessary information to update an existing Number + * @param {string} request.ref - The reference of the Number to update + * @param {string} request.name - The name of the Number + * @return {Promise} - The response object that contains the reference to the updated Number + * @example + * const numbers = new SDK.Numbers(client); // Existing client object + * + * const request = { + * ref: "00000000-0000-0000-0000-000000000000", + * name: "My Number" + * }; + * + * numbers + * .updateNumber(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async updateNumber(request: UpdateNumberRequest): Promise { + const client = this.client.getNumbersClient(); + return await makeRpcRequest< + UpdateNumberRequestPB, + UpdateNumberResponsePB, + UpdateNumberRequest, + BaseApiObject + >({ + method: client.updateNumber.bind(client), + requestPBObjectConstructor: UpdateNumberRequestPB, + metadata: this.client.getMetadata(), + request + }); + } + + /** + * Retrieves a list of Numbers from a Workspace. + * + * @param {ListNumbersRequest} request - The request object that contains the necessary information to retrieve a list of Numbers + * @param {number} request.pageSize - The number of Numbers to retrieve + * @param {string} request.pageToken - The token to retrieve the next page of Numbers + * @return {Promise} - The response object that contains the list of Numbers + * @example + * const numbers = new SDK.Numbers(client); // Existing client object + * + * const request = { + * pageSize: 10, + * pageToken: "00000000-0000-0000-0000-000000000000" + * }; + * + * numbers + * .listNumbers(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async listNumbers(request: ListNumbersRequest): Promise { + const client = this.client.getNumbersClient(); + return await makeRpcRequest< + ListNumbersRequestPB, + ListNumbersResponsePB, + ListNumbersRequest, + ListNumbersResponse + >({ + method: client.listNumbers.bind(client), + requestPBObjectConstructor: ListNumbersRequestPB, + metadata: this.client.getMetadata(), + request, + repeatableObjectMapping: [["itemsList", NumberPB]] + }); + } + + /** + * Deletes an existing Number from Fonoster. + * Note that this operation is irreversible. + * + * @param {string} ref - The reference of the Number to delete + * @return {Promise} - The response object that contains the reference to the deleted Number + * @example + * const numbers = new SDK.Numbers(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * numbers + * .deleteNumber(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async deleteNumber(ref: string): Promise { + const applicationsClient = this.client.getNumbersClient(); + return await makeRpcRequest< + DeleteNumberRequestPB, + DeleteNumberResponsePB, + BaseApiObject, + BaseApiObject + >({ + method: applicationsClient.deleteNumber.bind(applicationsClient), + requestPBObjectConstructor: DeleteNumberRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } +} + +export { Numbers }; diff --git a/mods/sdk/src/Secrets.ts b/mods/sdk/src/Secrets.ts new file mode 100644 index 000000000..529af6bbc --- /dev/null +++ b/mods/sdk/src/Secrets.ts @@ -0,0 +1,258 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + BaseApiObject, + CreateSecretRequest, + ListSecretsRequest, + ListSecretsResponse, + Secret, + UpdateSecretRequest +} from "@fonoster/types"; +import { makeRpcRequest } from "./client/makeRpcRequest"; +import { FonosterClient } from "./client/types"; +import { + CreateSecretRequest as CreateSecretRequestPB, + CreateSecretResponse as CreateSecretResponsePB, + DeleteSecretRequest as DeleteSecretRequestPB, + DeleteSecretResponse as DeleteSecretResponsePB, + GetSecretRequest as GetSecretRequestPB, + ListSecretsRequest as ListSecretsRequestPB, + ListSecretsResponse as ListSecretsResponsePB, + Secret as SecretPB, + UpdateSecretRequest as UpdateSecretRequestPB, + UpdateSecretResponse as UpdateSecretResponsePB +} from "./generated/node/secrets_pb"; + +/** + * @classdesc Fonoster Secrets, part of the Fonoster Core, + * allows you to create, update, retrieve, and delete Secrets for your deployment. + * Note that an active Fonoster deployment is required. + * + * @example + * + * const SDK = require("@fonoster/sdk"); + * + * async function main(request) { + * const apiKey = "your-api-key"; + * const apiSecret = "your-api-secret" + * const accessKeyId = "WO00000000000000000000000000000000"; + * + * try { + * const client = SDK.Client({ accessKeyId }); + * await client.loginWithApiKey(apiKey, apiSecret); + * + * const secrets = new SDK.Secrets(client); + * const response = await secrets.creteSecret(request); + * + * console.log(response); // successful response + * } catch (e) { + * console.error(e); // an error occurred + * } + * } + * + * const request = { + * name: "FRIENDLY_NAME", + * secret: "mysecret" + * }; + * + * main(request); + */ +class Secrets { + private readonly client: FonosterClient; + /** + * Constructs a new Secrets object. + * + * @param {FonosterClient} client - Client object with underlying implementations to make requests to Fonoster's API + * @see AbstractClient + * @see FonosterClient + */ + constructor(client: FonosterClient) { + this.client = client; + } + + /** + * Creates a new Secret in the Workspace. + * + * @param {CreateSecretRequest} request - The request object that contains the necessary information to create a new Secret + * @param {string} request.name - The name of the Secret + * @param {string} request.secret - The secret of the Secret + * @return {Promise} - The response object that contains the reference to the created Secret + * @example + * const secrets = new SDK.Secrets(client); // Existing client object + * + * const request = { + * name: "FRIENDLY_NAME", + * secret: "mysecret" + * }; + * + * secrets + * .createSecret(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async createSecret(request: CreateSecretRequest): Promise { + const client = this.client.getSecretsClient(); + return await makeRpcRequest< + CreateSecretRequestPB, + CreateSecretResponsePB, + CreateSecretRequest, + BaseApiObject + >({ + method: client.createSecret.bind(client), + requestPBObjectConstructor: CreateSecretRequestPB, + metadata: this.client.getMetadata(), + request + }); + } + + /** + * Retrieves an existing Secret in the Workspace. + * + * @param {string} ref - The reference of the Secret to retrieve + * @return {Promise} - The response object that contains the Secret + * @example + * const secrets = new SDK.Secrets(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * secrets + * .getSecret(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async getSecret(ref: string) { + const client = this.client.getSecretsClient(); + return await makeRpcRequest< + GetSecretRequestPB, + SecretPB, + BaseApiObject, + Secret + >({ + method: client.getSecret.bind(client), + requestPBObjectConstructor: GetSecretRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } + + /** + * Updates an existing Secret in the Workspace. + * + * @param {UpdateSecretRequest} request - The request object that contains the necessary information to update an existing Secret + * @param {string} request.ref - The reference of the Secret to update + * @param {string} request.name - The name of the Secret + * @param {string} request.secret - The secret of the Secret + * @return {Promise} - The response object that contains the reference to the updated Secret + * @example + * const secrets = new SDK.Secrets(client); // Existing client object + * + * const request = { + * ref: "00000000-0000-0000-0000-000000000000", + * secret: "mysecret" + * }; + * + * secrets + * .updateSecret(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async updateSecret(request: UpdateSecretRequest): Promise { + const client = this.client.getSecretsClient(); + return await makeRpcRequest< + UpdateSecretRequestPB, + UpdateSecretResponsePB, + UpdateSecretRequest, + BaseApiObject + >({ + method: client.updateSecret.bind(client), + requestPBObjectConstructor: UpdateSecretRequestPB, + metadata: this.client.getMetadata(), + request + }); + } + + /** + * Retrieves a list of Secrets from a Workspace. + * + * @param {ListSecretsRequest} request - The request object that contains the necessary information to retrieve a list of Secrets + * @param {number} request.pageSize - The secret of Secrets to retrieve + * @param {string} request.pageToken - The token to retrieve the next page of Secrets + * @return {Promise} - The response object that contains the list of Secrets + * @example + * const secrets = new SDK.Secrets(client); // Existing client object + * + * const request = { + * pageSize: 10, + * pageToken: "00000000-0000-0000-0000-000000000000" + * }; + * + * secrets + * .listSecrets(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async listSecrets(request: ListSecretsRequest): Promise { + const client = this.client.getSecretsClient(); + return await makeRpcRequest< + ListSecretsRequestPB, + ListSecretsResponsePB, + ListSecretsRequest, + ListSecretsResponse + >({ + method: client.listSecrets.bind(client), + requestPBObjectConstructor: ListSecretsRequestPB, + metadata: this.client.getMetadata(), + request, + repeatableObjectMapping: [["itemsList", SecretPB]] + }); + } + + /** + * Deletes an existing Secret from Fonoster. + * Note that this operation is irreversible. + * + * @param {string} ref - The reference of the Secret to delete + * @return {Promise} - The response object that contains the reference to the deleted Secret + * @example + * const secrets = new SDK.Secrets(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * secrets + * .deleteSecret(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async deleteSecret(ref: string): Promise { + const applicationsClient = this.client.getSecretsClient(); + return await makeRpcRequest< + DeleteSecretRequestPB, + DeleteSecretResponsePB, + BaseApiObject, + BaseApiObject + >({ + method: applicationsClient.deleteSecret.bind(applicationsClient), + requestPBObjectConstructor: DeleteSecretRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } +} + +export { Secrets }; diff --git a/mods/sdk/src/Trunks.ts b/mods/sdk/src/Trunks.ts new file mode 100644 index 000000000..ea272cb31 --- /dev/null +++ b/mods/sdk/src/Trunks.ts @@ -0,0 +1,391 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + BaseApiObject, + CreateTrunkRequest, + ListTrunksRequest, + ListTrunksResponse, + Trunk, + UpdateTrunkRequest +} from "@fonoster/types"; +import { makeRpcRequest } from "./client/makeRpcRequest"; +import { FonosterClient } from "./client/types"; +import { + CreateTrunkRequest as CreateTrunkRequestPB, + DeleteTrunkRequest as DeleteTrunkRequestPB, + DeleteTrunkResponse as DeleteTrunkResponsePB, + GetTrunkRequest as GetTrunkRequestPB, + ListTrunksRequest as ListTrunksRequestPB, + TrunkURI, + UpdateTrunkRequest as UpdateTrunkRequestPB +} from "./generated/node/trunks_pb"; + +/** + * @classdesc Fonoster Trunks, part of the Fonoster SIP Proxy subsystem, + * allows you to create, update, retrieve, and delete SIP Trunks for your deployment. + * Note that an active Fonoster deployment is required. + * + * @example + * + * const SDK = require("@fonoster/sdk"); + * + * async function main(request) { + * const apiKey = "your-api-key"; + * const apiSecret = "your-api-secret" + * const accessKeyId = "WO00000000000000000000000000000000"; + * + * try { + * const client = SDK.Client({ accessKeyId }); + * await client.loginWithApiKey(apiKey, apiSecret); + * + * const trunks = new SDK.Trunks(client); + * const response = await trunks.createTrunk(request); + * + * console.log(response); // successful response + * } catch (e) { + * console.error(e); // an error occurred + * } + * } + * + * const request = { + * name: "My Trunk", + * inboundUri: "sip.company.fonoster.io" + * }; + * + * main(request); + */ +class Trunks { + private readonly client: FonosterClient; + /** + * Constructs a new Trunks object. + * + * @param {FonosterClient} client - Client object with underlying implementations to make requests to Fonoster's API + * @see AbstractClient + * @see FonosterClient + */ + constructor(client: FonosterClient) { + this.client = client; + } + + /** + * Creates a new Trunk in the Workspace. + * + * @param {CreateTrunkRequest} request - The request object that contains the necessary information to create a new Trunk + * @param {string} request.name - The name of the Trunk + * @param {string} request.inboundUri - The inboundUri of the Trunk + * @param {boolean} request.sendRegister - The sendRegister of the Trunk + * @param {string} request.accessControlListRef - The accessControlListRef of the Trunk + * @param {string} request.inboundCredentialsRef - The inboundCredentialsRef of the Trunk + * @param {string} request.outboundCredentialsRef - The outboundCredentialsRef of the Trunk + * @param {TrunkUri[]} request.uris - The uris of the Trunk + * @param {string} request.uris[].host - The host of the Trunk + * @param {number} request.uris[].port - The port of the Trunk + * @param {Transport} request.uris[].transport - The transport of the Trunk + * @param {string} request.uris[].user - Optional user of the Trunk + * @param {number} request.uris[].weight - Optional weight of the Trunk + * @param {number} request.uris[].priority - Optional priority of the Trunk + * @param {boolean} request.uris[].enabled - Optional enabled of the Trunk + * @return {Promise} - The response object that contains the reference to the created Trunk + * @example + * const trunks = new SDK.Trunks(client); // Existing client object + * + * const request = { + * name: "My Trunk", + * inboundUri: "sip.company.fonoster.io" + * sendRegister: true + * uris: [{ + * host: "sip.company.fonoster.io", + * port: 5060, + * transport: "UDP", + * user: "user", + * weight: 0, + * priority: 0, + * enabled: true + * }] + * }; + * + * trunks + * .createTrunk(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async createTrunk(request: CreateTrunkRequest): Promise { + const client = this.client.getTrunksClient(); + const createTrunkRequest = new CreateTrunkRequestPB(); + createTrunkRequest.setName(request.name); + createTrunkRequest.setInboundUri(request.inboundUri); + createTrunkRequest.setSendRegister(request.sendRegister); + createTrunkRequest.setAccessControlListRef(request.accessControlListRef); + createTrunkRequest.setInboundCredentialsRef(request.inboundCredentialsRef); + createTrunkRequest.setOutboundCredentialsRef( + request.outboundCredentialsRef + ); + request.uris?.forEach((uri) => { + const current = new TrunkURI(); + current.setHost(uri.host); + current.setPort(uri.port); + current.setTransport(uri.transport); + current.setUser(uri.user); + current.setWeight(uri.weight); + current.setPriority(uri.priority); + current.setEnabled(uri.enabled); + createTrunkRequest.addUris(current); + }); + + return new Promise((resolve, reject) => { + client.createTrunk( + createTrunkRequest, + this.client.getMetadata(), + (err, response) => { + if (err) { + reject(err); + return; + } + resolve(response.toObject()); + } + ); + }); + } + + /** + * Retrieves an existing Trunk in the Workspace. + * + * @param {string} ref - The reference of the Trunk to retrieve + * @return {Promise} - The response object that contains the Trunk + * @example + * const trunks = new SDK.Trunks(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * trunks + * .getTrunk(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async getTrunk(ref: string): Promise { + const client = this.client.getTrunksClient(); + const getTrunkRequest = new GetTrunkRequestPB(); + getTrunkRequest.setRef(ref); + + return new Promise((resolve, reject) => { + client.getTrunk( + getTrunkRequest, + this.client.getMetadata(), + (err, response) => { + if (err) { + reject(err); + return; + } + + const obj = response.toObject(); + const outObj = { + ...obj, + accessControlListRef: obj.accessControlList?.ref, + inboundCredentialsRef: obj.inboundCredentials?.ref, + outboundCredentialsRef: obj.outboundCredentials?.ref, + uris: obj.urisList, + createdAt: new Date(obj.createdAt * 1000), + updatedAt: new Date(obj.updatedAt * 1000) + }; + const { + urisList, + accessControlList, + inboundCredentials, + outboundCredentials, + ...rest + } = outObj; + resolve(rest as unknown as Trunk); + } + ); + }); + } + + /** + * Updates an existing Trunk in the Workspace. + * + * @param {UpdateTrunkRequest} request - The request object that contains the necessary information to update an existing Trunk + * @param {string} request.ref - The reference of the Trunk to update + * @param {string} request.name - The name of the Trunk + * @param {boolean} request.sendRegister - The sendRegister of the Trunk + * @param {string} request.accessControlListRef - The accessControlListRef of the Trunk + * @param {string} request.inboundCredentialsRef - The inboundCredentialsRef of the Trunk + * @param {string} request.outboundCredentialsRef - The outboundCredentialsRef of the Trunk + * @param {TrunkUri[]} request.uris - The uris of the Trunk + * @param {string} request.uris[].host - The host of the Trunk + * @param {number} request.uris[].port - The port of the Trunk + * @param {Transport} request.uris[].transport - The transport of the Trunk + * @param {string} request.uris[].user - Optional user of the Trunk + * @param {number} request.uris[].weight - Optional weight of the Trunk + * @param {number} request.uris[].priority - Optional priority of the Trunk + * @param {boolean} request.uris[].enabled - Optional enabled of the Trunk + * @return {Promise} - The response object that contains the reference to the updated Trunk + * @example + * const trunks = new SDK.Trunks(client); // Existing client object + * + * const request = { + * ref: "00000000-0000-0000-0000-000000000000", + * name: "My Trunk", + * sendRegister: true + * uris: [{ + * host: "sip.company.fonoster.io", + * port: 5060, + * transport: "UDP", + * user: "user", + * weight: 0, + * priority: 0, + * enabled: true + * }] + * }; + * + * trunks + * .updateTrunk(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async updateTrunk(request: UpdateTrunkRequest): Promise { + const client = this.client.getTrunksClient(); + const updateTrunkRequest = new UpdateTrunkRequestPB(); + updateTrunkRequest.setRef(request.ref); + updateTrunkRequest.setName(request.name); + updateTrunkRequest.setInboundUri(request.inboundUri); + updateTrunkRequest.setSendRegister(request.sendRegister); + updateTrunkRequest.setAccessControlListRef(request.accessControlListRef); + updateTrunkRequest.setInboundCredentialsRef(request.inboundCredentialsRef); + updateTrunkRequest.setOutboundCredentialsRef( + request.outboundCredentialsRef + ); + request.uris?.forEach((uri) => { + const current = new TrunkURI(); + current.setHost(uri.host); + current.setPort(uri.port); + current.setTransport(uri.transport); + current.setUser(uri.user); + current.setWeight(uri.weight); + current.setPriority(uri.priority); + current.setEnabled(uri.enabled); + updateTrunkRequest.addUris(current); + }); + + return new Promise((resolve, reject) => { + client.updateTrunk( + updateTrunkRequest, + this.client.getMetadata(), + (err, response) => { + if (err) { + reject(err); + return; + } + resolve(response.toObject()); + } + ); + }); + } + + /** + * Retrieves a list of Trunks from a Workspace. + * + * @param {ListTrunksRequest} request - The request object that contains the necessary information to retrieve a list of Trunks + * @param {number} request.pageSize - The trunk of Trunks to retrieve + * @param {string} request.pageToken - The token to retrieve the next page of Trunks + * @return {Promise} - The response object that contains the list of Trunks + * @example + * const trunks = new SDK.Trunks(client); // Existing client object + * + * const request = { + * pageSize: 10, + * pageToken: "00000000-0000-0000-0000-000000000000" + * }; + * + * trunks + * .listTrunks(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async listTrunks(request: ListTrunksRequest): Promise { + const client = this.client.getTrunksClient(); + const listTrunksRequest = new ListTrunksRequestPB(); + listTrunksRequest.setPageSize(request.pageSize); + listTrunksRequest.setPageToken(request.pageToken); + + return new Promise((resolve, reject) => { + client.listTrunks( + listTrunksRequest, + this.client.getMetadata(), + (err, response) => { + if (err) { + reject(err); + return; + } + + const items = response.getItemsList().map((item) => { + const obj = item.toObject(); + const outObj = { + ...obj, + uris: obj.urisList, + createdAt: new Date(obj.createdAt * 1000), + updatedAt: new Date(obj.updatedAt * 1000) + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { urisList, ...rest } = outObj; + return rest; + }); + + resolve({ + items: items as unknown as Trunk[], + nextPageToken: response.getNextPageToken() + }); + } + ); + }); + } + + /** + * Deletes an existing Trunk from Fonoster. + * Note that this operation is irreversible. + * + * @param {string} ref - The reference of the Trunk to delete + * @return {Promise} - The response object that contains the reference to the deleted Trunk + * @example + * const trunks = new SDK.Trunks(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * trunks + * .deleteTrunk(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async deleteTrunk(ref: string): Promise { + const applicationsClient = this.client.getTrunksClient(); + return await makeRpcRequest< + DeleteTrunkRequestPB, + DeleteTrunkResponsePB, + BaseApiObject, + BaseApiObject + >({ + method: applicationsClient.deleteTrunk.bind(applicationsClient), + requestPBObjectConstructor: DeleteTrunkRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } +} + +export { Trunks }; diff --git a/mods/sdk/src/Users.ts b/mods/sdk/src/Users.ts new file mode 100644 index 000000000..fa2c7aab7 --- /dev/null +++ b/mods/sdk/src/Users.ts @@ -0,0 +1,227 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + BaseApiObject, + CreateUserRequest, + UpdateUserRequest, + User +} from "@fonoster/types"; +import { makeRpcRequest } from "./client/makeRpcRequest"; +import { FonosterClient } from "./client/types"; +import { + CreateUserRequest as CreateUserRequestPB, + CreateUserResponse as CreateUserResponsePB, + DeleteUserRequest as DeleteUserRequestPB, + DeleteUserResponse as DeleteUserResponsePB, + GetUserRequest as GetUserRequestPB, + UpdateUserRequest as UpdateUserRequestPB, + UpdateUserResponse as UpdateUserResponsePB, + User as UserPB +} from "./generated/node/identity_pb"; + +/** + * @classdesc Fonoster Users, part of the Fonoster Identity subsystem, + * allows you to create, update, retrieve, and delete a Users in the system. + * Note that an active Fonoster deployment is required. + * + * @example + * + * const SDK = require("@fonoster/sdk"); + * + * async function main(request) { + * const apiKey = "your-api-key"; + * const apiSecret = "your-api-secret" + * const accessKeyId = "WO00000000000000000000000000000000"; + * + * try { + * const client = SDK.Client({ accessKeyId }); + * await client.loginWithApiKey(apiKey, apiSecret); + * + * const users = new SDK.Users(client); + * const response = await users.createUser(request); + * + * console.log(response); // successful response + * } catch (e) { + * console.error(e); // an error occurred + * } + * } + * + * const request = { + * name: "John Doe", + * email: "john.doe@example.com", + * password: "password", + * avatar: "https://example.com/avatar.jpg" + * }; + * + * main(request); + */ +class Users { + private readonly client: FonosterClient; + /** + * Constructs a new Users object. + * + * @param {FonosterClient} client - Client object with underlying implementations to make requests to Fonoster's API + * @see AbstractClient + * @see FonosterClient + */ + constructor(client: FonosterClient) { + this.client = client; + } + + /** + * Creates a new User in the Workspace. + * + * @param {CreateUserRequest} request - The request object that contains the necessary information to create a new User + * @param {string} request.name - The name of the User + * @param {string} request.email - The email of the User + * @param {string} request.password - The password of the User + * @param {string} request.avatar - The avatar of the User + * @return {Promise} - The response object that contains the reference to the created User + * @example + * const users = new SDK.Users(client); // Existing client object + * + * const request = { + * name: "John Doe", + * email: "john.doe@example.com", + * password: "password", + * avatar: "https://example.com/avatar.jpg" + * }; + * + * users + * .createUser(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async createUser(request: CreateUserRequest): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + CreateUserRequestPB, + CreateUserResponsePB, + CreateUserRequest, + BaseApiObject + >({ + method: client.createUser.bind(client), + requestPBObjectConstructor: CreateUserRequestPB, + metadata: this.client.getMetadata(), + request + }); + } + + /** + * Retrieves an existing User in the Workspace. + * + * @param {string} ref - The reference of the User to retrieve + * @return {Promise} - The response object that contains the User + * @example + * const users = new SDK.Users(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * users + * .getUser(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async getUser(ref: string): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + GetUserRequestPB, + UserPB, + { ref: string }, + User + >({ + method: client.getUser.bind(client), + requestPBObjectConstructor: GetUserRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } + + /** + * Updates an existing User in the Workspace. + * + * @param {UpdateUserRequest} request - The request object that contains the necessary information to update a User + * @param {string} request.ref - The reference of the User to update + * @param {string} request.name - The name of the User + * @param {string} request.password - The password of the User + * @param {string} request.avatar - The avatar of the User + * @return {Promise} - The response object that contains the reference to the updated User + * @example + * const users = new SDK.Users(client); // Existing client object + * + * const request = { + * ref: "00000000-0000-0000-0000-000000000000", + * name: "John Doe", + * password: "password", + * avatar: "https://example.com/avatar.jpg" + * }; + * + * users + * .updateUser(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async updateUser(request: UpdateUserRequest): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + UpdateUserRequestPB, + UpdateUserResponsePB, + UpdateUserRequest, + BaseApiObject + >({ + method: client.updateUser.bind(client), + requestPBObjectConstructor: UpdateUserRequestPB, + metadata: this.client.getMetadata(), + request + }); + } + + /** + * Deletes an existing User from Fonoster. + * Note that this operation is irreversible. + * + * @param {string} ref - The reference of the User to delete + * @return {Promise} - The response object that contains the reference to the deleted User + * @example + * const users = new SDK.Users(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * users + * .deleteUser(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async deleteUser(ref: string): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + DeleteUserRequestPB, + DeleteUserResponsePB, + BaseApiObject, + BaseApiObject + >({ + method: client.deleteUser.bind(client), + requestPBObjectConstructor: DeleteUserRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } +} + +export { Users }; diff --git a/mods/sdk/src/Workspaces.ts b/mods/sdk/src/Workspaces.ts new file mode 100644 index 000000000..fdb916927 --- /dev/null +++ b/mods/sdk/src/Workspaces.ts @@ -0,0 +1,372 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + BaseApiObject, + CreateWorkspaceRequest, + InviteUserToWorkspaceRequest, + ListWorkspacesResponse, + RemoveUserFromWorkspaceRequest, + RemoveUserFromWorkspaceResponse, + ResendWorkspaceMembershipInvitationRequest, + ResendWorkspaceMembershipInvitationResponse, + UpdateWorkspaceRequest, + Workspace +} from "@fonoster/types"; +import { makeRpcRequest } from "./client/makeRpcRequest"; +import { FonosterClient } from "./client/types"; +import { + CreateWorkspaceRequest as CreateWorkspaceRequestPB, + CreateWorkspaceResponse as CreateWorkspaceResponsePB, + DeleteWorkspaceRequest as DeleteWorkspaceRequestPB, + DeleteWorkspaceResponse as DeleteWorkspaceResponsePB, + GetWorkspaceRequest as GetWorkspaceRequestPB, + InviteUserToWorkspaceRequest as InviteUserToWorkspaceRequestPB, + InviteUserToWorkspaceResponse as InviteUserToWorkspaceResponsePB, + ListWorkspacesRequest as ListWorkspacesRequestPB, + ListWorkspacesResponse as ListWorkspacesResponsePB, + RemoveUserFromWorkspaceRequest as RemoveUserFromWorkspaceRequestPB, + RemoveUserFromWorkspaceResponse as RemoveUserFromWorkspaceResponsePB, + ResendWorkspaceMembershipInvitationRequest as ResendWorkspaceMembershipInvitationRequestPB, + ResendWorkspaceMembershipInvitationResponse as ResendWorkspaceMembershipInvitationResponsePB, + UpdateWorkspaceRequest as UpdateWorkspaceRequestPB, + UpdateWorkspaceResponse as UpdateWorkspaceResponsePB, + Workspace as WorkspacePB +} from "./generated/node/identity_pb"; + +/** + * @classdesc Fonoster Workspaces, part of the Fonoster Identity subsystem, + * allows you to create, update, retrieve, and delete Workspaces in the system. + * Note that an active Fonoster deployment is required. + * + * @example + * + * const SDK = require("@fonoster/sdk"); + * + * async function main(request) { + * const apiKey = "your-api-key"; + * const apiSecret = "your-api-secret" + * const accessKeyId = "WO00000000000000000000000000000000"; + * + * try { + * const client = SDK.Client({ accessKeyId }); + * await client.loginWithApiKey(apiKey, apiSecret); + * + * const workspaces = new SDK.Workspaces(client); + * const response = await workspaces.createWorkspace(request); + * + * console.log(response); // successful response + * } catch (e) { + * console.error(e); // an error occurred + * } + * } + * + * const request = { + * name: "My Workspace" + * }; + * + * main(request); + */ +class Workspaces { + private readonly client: FonosterClient; + /** + * Constructs a new Workspaces object. + * + * @param {FonosterClient} client - Client object with underlying implementations to make requests to Fonoster's API + * @see AbstractClient + * @see FonosterClient + */ + constructor(client: FonosterClient) { + this.client = client; + } + + /** + * Creates a new Workspace in the system. + * + * @param {CreateWorkspaceRequest} request - The request object that contains the necessary information to create a new Workspace + * @param {string} request.name - The name of the Workspace + * @return {Promise} - The response object that contains the reference to the created Workspace + * @example + * const workspaces = new SDK.Workspaces(client); // Existing client object + * + * const request = { + * name: "My Workspace" + * }; + * + * workspaces + * .createWorkspace(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async createWorkspace( + request: CreateWorkspaceRequest + ): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + CreateWorkspaceRequestPB, + CreateWorkspaceResponsePB, + CreateWorkspaceRequest, + BaseApiObject + >({ + method: client.createWorkspace.bind(client), + requestPBObjectConstructor: CreateWorkspaceRequestPB, + metadata: this.client.getMetadata(), + request + }); + } + + /** + * Retrieves an existing Workspace in the system. + * + * @param {string} ref - The reference of the Workspace to retrieve + * @return {Promise} - The response object that contains the Workspace + * @example + * const workspaces = new SDK.Workspaces(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * workspaces + * .getWorkspace(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async getWorkspace(ref: string): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + GetWorkspaceRequestPB, + WorkspacePB, + BaseApiObject, + Workspace + >({ + method: client.getWorkspace.bind(client), + requestPBObjectConstructor: GetWorkspaceRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } + + /** + * Updates an existing Workspace in the system. + * + * @param {UpdateWorkspaceRequest} request - The request object that contains the necessary information to update a Workspace + * @param {string} request.ref - The reference of the Workspace to update + * @param {string} request.name - The name of the Workspace + * @return {Promise} - The response object that contains the reference to the updated Workspace + * @example + * const workspaces = new SDK.Workspaces(client); // Existing client object + * + * const request = { + * ref: "00000000-0000-0000-0000-000000000000", + * name: "My Workspace" + * }; + * + * workspaces + * .updateWorkspace(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async updateWorkspace( + request: UpdateWorkspaceRequest + ): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + UpdateWorkspaceRequestPB, + UpdateWorkspaceResponsePB, + UpdateWorkspaceRequest, + BaseApiObject + >({ + method: client.updateWorkspace.bind(client), + requestPBObjectConstructor: UpdateWorkspaceRequestPB, + metadata: this.client.getMetadata(), + request + }); + } + + /** + * Deletes an existing Workspace from Fonoster. + * Note that this operation is irreversible. + * + * @param {string} ref - The reference of the Workspace to delete + * @return {Promise} - The response object that contains the reference to the deleted Workspace + * @example + * const workspaces = new SDK.Workspaces(client); // Existing client object + * + * const ref = "00000000-0000-0000-0000-000000000000"; + * + * workspaces + * .deleteWorkspace(ref) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async deleteWorkspace(ref: string): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + DeleteWorkspaceRequestPB, + DeleteWorkspaceResponsePB, + BaseApiObject, + BaseApiObject + >({ + method: client.deleteWorkspace.bind(client), + requestPBObjectConstructor: DeleteWorkspaceRequestPB, + metadata: this.client.getMetadata(), + request: { ref } + }); + } + + /** + * Retrieves a list of Workspaces from a Workspace. + * + * @param {ListWorkspacesRequest} request - The request object that contains the necessary information to retrieve a list of Workspaces + * @param {number} request.pageSize - The workspace of Workspaces to retrieve + * @param {string} request.pageToken - The token to retrieve the next page of Workspaces + * @return {Promise} - The response object that contains the list of Workspaces + * @example + * const workspaces = new SDK.Workspaces(client); // Existing client object + * + * const request = { + * pageSize: 10, + * pageToken: "00000000-0000-0000-0000-000000000000" + * }; + * + * workspaces + * .listWorkspaces(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async listWorkspaces(): Promise { + const applicationsClient = this.client.getIdentityClient(); + return await makeRpcRequest< + ListWorkspacesRequestPB, + ListWorkspacesResponsePB, + Record, + ListWorkspacesResponse + >({ + method: applicationsClient.listWorkspaces.bind(applicationsClient), + requestPBObjectConstructor: ListWorkspacesRequestPB, + metadata: this.client.getMetadata(), + request: {}, + repeatableObjectMapping: [["itemsList", WorkspacePB]] + }); + } + + /** + * Invites a User to a Workspace. + * + * @param {InviteUserToWorkspaceRequest} request - The request object that contains the necessary information to invite a User to a Workspace + * @param {string} request.workspaceRef - The reference of the Workspace to invite the User to + * @param {string} request.email - The email of the User to invite + * @param {string} request.password - Temporary password for the User. Leave empty to generate a random password + * @return {Promise} - The response object that contains the reference to the invitation + * @example + * const workspaces = new SDK.Workspaces(client); // Existing client object + * + * const request = { + * workspaceRef: "00000000-0000-0000-0000-000000000000", + * email: "jane.doe@example.com", + * role: "WORKSPACE_MEMBER", + * password: "password" // Temporary password for the User. Leave empty to generate a random password + * }; + * + * workspaces + * .inviteUserToWorkspace(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async inviteUserToWorkspace( + request: InviteUserToWorkspaceRequest + ): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + InviteUserToWorkspaceRequestPB, + InviteUserToWorkspaceResponsePB, + InviteUserToWorkspaceRequest, + BaseApiObject + >({ + method: client.inviteUserToWorkspace.bind(client), + requestPBObjectConstructor: InviteUserToWorkspaceRequestPB, + metadata: this.client.getMetadata(), + request + }); + } + + /** + * Resend a Workspace membership invitation. + * + * @param {string} userRef - The reference to the user to resend the invitation + * @return {Promise} - The response object that contains the reference to the invitation + * @example + * const workspaces = new SDK.Workspaces(client); // Existing client object + * + * const userRef: "00000000-0000-0000-0000-000000000000"; + * + * workspaces + * .resendWorkspaceMembershipInvitation(request) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async resendWorkspaceMembershipInvitation( + userRef: string + ): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + ResendWorkspaceMembershipInvitationRequestPB, + ResendWorkspaceMembershipInvitationResponsePB, + ResendWorkspaceMembershipInvitationRequest, + ResendWorkspaceMembershipInvitationResponse + >({ + method: client.resendWorkspaceMembershipInvitation.bind(client), + requestPBObjectConstructor: ResendWorkspaceMembershipInvitationRequestPB, + metadata: this.client.getMetadata(), + request: { userRef } + }); + } + + /** + * Removes a User from a Workspace. + * + * @param {string} userRef - The reference of the User to remove from the Workspace + * @return {Promise} - The response object that contains the reference to the removed User + * @example + * const workspaces = new SDK.Workspaces(client); // Existing client object + * + * const userRef = "00000000-0000-0000-0000-000000000000"; + * + * workspaces + * .removeUserFromWorkspace(userRef) + * .then(console.log) // successful response + * .catch(console.error); // an error occurred + */ + async removeUserFromWorkspace( + userRef: string + ): Promise { + const client = this.client.getIdentityClient(); + return await makeRpcRequest< + RemoveUserFromWorkspaceRequestPB, + RemoveUserFromWorkspaceResponsePB, + RemoveUserFromWorkspaceRequest, + RemoveUserFromWorkspaceResponse + >({ + method: client.removeUserFromWorkspace.bind(client), + requestPBObjectConstructor: RemoveUserFromWorkspaceRequestPB, + metadata: this.client.getMetadata(), + request: { userRef } + }); + } +} + +export { Workspaces }; diff --git a/mods/sdk/src/client/AbstractClient.ts b/mods/sdk/src/client/AbstractClient.ts new file mode 100644 index 000000000..b973a6f0c --- /dev/null +++ b/mods/sdk/src/client/AbstractClient.ts @@ -0,0 +1,247 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ContactType } from "@fonoster/types"; +import { makeRpcRequest } from "./makeRpcRequest"; +import { + ApplicationsClient, + CallsClient, + FonosterClient, + IdentityClient, + SecretsClient +} from "./types"; +import { AclsClient } from "./types/AclsClient"; +import { AgentsClient } from "./types/AgentsClient"; +import { CredentialsClient } from "./types/CredentialsClient"; +import { DomainsClient } from "./types/DomainsClient"; +import { NumbersClient } from "./types/NumbersClient"; +import { TrunksClient } from "./types/TrunksClient"; +import { + ContactType as ContactTypePB, + ExchangeApiKeyRequest as ExchangeApiKeyRequestPB, + ExchangeCredentialsRequest as ExchangeCredentialsRequestPB, + ExchangeCredentialsResponse as ExchangeCredentialsResponsePB, + ExchangeOauth2CodeRequest as ExchangeOauth2CodeRequestPB, + ExchangeOauth2CodeResponse as ExchangeOauth2CodeResponsePB, + ExchangeRefreshTokenRequest as ExchangeRefreshTokenRequestPB, + SendVerificationCodeRequest as SendVerificationCodeRequestPB, + VerifyCodeRequest as VerifyCodeRequestPB +} from "../generated/node/identity_pb"; + +abstract class AbstractClient implements FonosterClient { + protected accessKeyId: string; + protected _accessToken: string; + protected _refreshToken: string; + protected _idToken: string; + protected identityClient: IdentityClient; + + constructor(config: { accessKeyId: string; identityClient: IdentityClient }) { + this.accessKeyId = config.accessKeyId; + this.identityClient = config.identityClient; + this._accessToken = ""; + this._refreshToken = ""; + this._idToken = ""; + } + + async login( + username: string, + password: string, + verificationCode?: string + ): Promise { + const { refreshToken, accessToken, idToken } = await makeRpcRequest< + ExchangeCredentialsRequestPB, + ExchangeCredentialsResponsePB, + { username: string; password: string; verificationCode?: string }, + { refreshToken: string; accessToken: string; idToken: string } + >({ + method: this.identityClient.exchangeCredentials.bind(this.identityClient), + requestPBObjectConstructor: ExchangeCredentialsRequestPB, + metadata: {}, + request: { + username, + password, + verificationCode + } + }); + + this._refreshToken = refreshToken; + this._accessToken = accessToken; + this._idToken = idToken; + } + + async loginWithRefreshToken(refreshToken: string): Promise { + const { + accessToken, + refreshToken: newRefreshToken, + idToken + } = await makeRpcRequest< + ExchangeRefreshTokenRequestPB, + ExchangeCredentialsResponsePB, + { refreshToken: string }, + { accessToken: string; refreshToken: string; idToken: string } + >({ + method: this.identityClient.exchangeRefreshToken.bind( + this.identityClient + ), + requestPBObjectConstructor: ExchangeRefreshTokenRequestPB, + metadata: {}, + request: { + refreshToken + } + }); + + this._refreshToken = newRefreshToken; + this._accessToken = accessToken; + this._idToken = idToken; + } + + async loginWithApiKey( + accessKeyId: string, + accessKeySecret: string + ): Promise { + const { refreshToken, accessToken } = await makeRpcRequest< + ExchangeApiKeyRequestPB, + ExchangeCredentialsResponsePB, + { accessKeySecret: string; accessKeyId: string }, + { refreshToken: string; accessToken: string } + >({ + method: this.identityClient.exchangeApiKey.bind(this.identityClient), + requestPBObjectConstructor: ExchangeApiKeyRequestPB, + metadata: {}, + request: { + accessKeyId, + accessKeySecret + } + }); + + this._refreshToken = refreshToken; + this._accessToken = accessToken; + } + + async loginWithOauth2Code( + provider: "GITHUB", + username: string, + code: string + ): Promise { + const { refreshToken, accessToken, idToken } = await makeRpcRequest< + ExchangeOauth2CodeRequestPB, + ExchangeOauth2CodeResponsePB, + { provider: "GITHUB"; username: string; code: string }, + { refreshToken: string; accessToken: string; idToken: string } + >({ + method: this.identityClient.exchangeOauth2Code, + requestPBObjectConstructor: ExchangeOauth2CodeRequestPB, + metadata: {}, + request: { + provider, + username, + code + } + }); + + this._refreshToken = refreshToken; + this._accessToken = accessToken; + this._idToken = idToken; + } + + setAccessToken(accessToken: string) { + this._accessToken = accessToken; + } + + async sendVerificationCode( + contactType: ContactType, + value: string + ): Promise { + return makeRpcRequest< + SendVerificationCodeRequestPB, + null, + { contactType: ContactType; value: string }, + never + >({ + method: this.identityClient.sendVerificationCode.bind( + this.identityClient + ), + requestPBObjectConstructor: SendVerificationCodeRequestPB, + metadata: {}, + request: { + contactType, + value + }, + enumMapping: [["contactType", ContactTypePB]] + }); + } + + async verifyCode(request: { + username: string; + contactType: ContactType; + value: string; + verificationCode: string; + }): Promise { + return makeRpcRequest< + VerifyCodeRequestPB, + null, + { + username: string; + contactType: ContactType; + value: string; + verificationCode: string; + }, + never + >({ + method: this.identityClient.verifyCode.bind(this.identityClient), + requestPBObjectConstructor: VerifyCodeRequestPB, + metadata: {}, + request, + enumMapping: [["contactType", ContactTypePB]] + }); + } + + async refreshToken(): Promise { + return this.loginWithRefreshToken(this._refreshToken); + } + + getAccessKeyId(): string { + return this.accessKeyId; + } + + getAccessToken(): string { + return this._accessToken; + } + + getRefreshToken(): string { + return this._refreshToken; + } + + getIdToken(): string { + return this._idToken; + } + + abstract getMetadata(): unknown; + abstract getApplicationsClient(): ApplicationsClient; + abstract getIdentityClient(): IdentityClient; + abstract getSecretsClient(): SecretsClient; + abstract getAgentsClient(): AgentsClient; + abstract getNumbersClient(): NumbersClient; + abstract getCredentialsClient(): CredentialsClient; + abstract getDomainsClient(): DomainsClient; + abstract getTrunksClient(): TrunksClient; + abstract getAclsClient(): AclsClient; + abstract getCallsClient(): CallsClient; +} + +export { AbstractClient }; diff --git a/mods/sdk/src/client/Client.ts b/mods/sdk/src/client/Client.ts new file mode 100644 index 000000000..d47856923 --- /dev/null +++ b/mods/sdk/src/client/Client.ts @@ -0,0 +1,146 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + ChannelCredentials, + Interceptor, + Metadata, + credentials +} from "@grpc/grpc-js"; +import { AbstractClient } from "./AbstractClient"; +import { TokenRefresherNode } from "./TokenRefresherNode"; +import { AclsClient } from "../generated/node/acls_grpc_pb"; +import { AgentsClient } from "../generated/node/agents_grpc_pb"; +import { ApplicationsClient } from "../generated/node/applications_grpc_pb"; +import { CallsClient } from "../generated/node/calls_grpc_pb"; +import { CredentialsServiceClient } from "../generated/node/credentials_grpc_pb"; +import { DomainsClient } from "../generated/node/domains_grpc_pb"; +import { IdentityClient } from "../generated/node/identity_grpc_pb"; +import { NumbersClient } from "../generated/node/numbers_grpc_pb"; +import { SecretsClient } from "../generated/node/secrets_grpc_pb"; +import { TrunksClient } from "../generated/node/trunks_grpc_pb"; + +const DEFAULT_ENDPOINT = "api.fonoster.com"; + +export class Client extends AbstractClient { + private readonly endpoint: string; + private readonly tokenRefresherInterceptor: Interceptor; + private readonly channelCredentials: ChannelCredentials; + + constructor( + config: { + endpoint?: string; + accessKeyId: string; + allowInsecure?: boolean; + withoutInterceptors?: boolean; + } = { + endpoint: DEFAULT_ENDPOINT, + accessKeyId: "", + allowInsecure: false, + withoutInterceptors: false + } + ) { + const channelCredentials = config.allowInsecure + ? credentials.createInsecure() + : credentials.createSsl(); + + super({ + accessKeyId: config.accessKeyId, + identityClient: new IdentityClient( + config.endpoint ?? DEFAULT_ENDPOINT, + channelCredentials + ) + }); + + this.channelCredentials = channelCredentials; + this.endpoint = config?.endpoint ?? DEFAULT_ENDPOINT; + + this.tokenRefresherInterceptor = config.withoutInterceptors + ? null + : new TokenRefresherNode(this).createInterceptor().bind(this); + } + + getMetadata(): Metadata { + const metadata = new Metadata(); + metadata.set("token", this.getAccessToken()); + metadata.set("accessKeyId", this.getAccessKeyId()); + return metadata; + } + + getApplicationsClient() { + return new ApplicationsClient(this.endpoint, this.channelCredentials, { + interceptors: [this.tokenRefresherInterceptor] + }); + } + + getCallsClient() { + return new CallsClient(this.endpoint, this.channelCredentials, { + interceptors: [this.tokenRefresherInterceptor] + }); + } + + getIdentityClient() { + return new IdentityClient(this.endpoint, this.channelCredentials); + } + + getSecretsClient() { + return new SecretsClient(this.endpoint, this.channelCredentials, { + interceptors: [this.tokenRefresherInterceptor] + }); + } + + getAgentsClient() { + return new AgentsClient(this.endpoint, this.channelCredentials, { + interceptors: [this.tokenRefresherInterceptor] + }); + } + + getAclsClient() { + return new AclsClient(this.endpoint, this.channelCredentials, { + interceptors: [this.tokenRefresherInterceptor] + }); + } + + getDomainsClient() { + return new DomainsClient(this.endpoint, this.channelCredentials, { + interceptors: [this.tokenRefresherInterceptor] + }); + } + + getTrunksClient() { + return new TrunksClient(this.endpoint, this.channelCredentials, { + interceptors: [this.tokenRefresherInterceptor] + }); + } + + getNumbersClient() { + return new NumbersClient(this.endpoint, this.channelCredentials, { + interceptors: [this.tokenRefresherInterceptor] + }); + } + + getCredentialsClient() { + return new CredentialsServiceClient( + this.endpoint, + this.channelCredentials, + { + interceptors: [this.tokenRefresherInterceptor] + } + ); + } +} diff --git a/mods/sdk/src/client/TokenRefresherNode.ts b/mods/sdk/src/client/TokenRefresherNode.ts new file mode 100644 index 000000000..6ceebc63e --- /dev/null +++ b/mods/sdk/src/client/TokenRefresherNode.ts @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + InterceptingCall, + Interceptor, + InterceptorOptions, + NextCall +} from "@grpc/grpc-js"; +import { AbstractClient } from "./AbstractClient"; +import { isJwtExpired } from "./isJwtExpired"; + +class TokenRefresherNode { + private client: AbstractClient; + + constructor(client: AbstractClient) { + this.client = client; + } + + createInterceptor(): Interceptor { + return ( + options: InterceptorOptions, + nextCall: NextCall + ): InterceptingCall => { + return new InterceptingCall(nextCall(options), { + sendMessage: async (message, next) => { + const token = this.client.getRefreshToken(); + + if (isJwtExpired(token)) { + await this.client.refreshToken(); + } + + next(message); + } + }); + }; + } +} + +export { TokenRefresherNode }; diff --git a/mods/sdk/src/client/TokenRefresherWeb.ts b/mods/sdk/src/client/TokenRefresherWeb.ts new file mode 100644 index 000000000..537fe8634 --- /dev/null +++ b/mods/sdk/src/client/TokenRefresherWeb.ts @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as grpcWeb from "grpc-web"; +import { AbstractClient } from "./AbstractClient"; +import { isJwtExpired } from "./isJwtExpired"; + +type ClientReadableStream = grpcWeb.ClientReadableStream; + +class TokenRefresherWeb { + private client: AbstractClient; + + constructor(client: AbstractClient) { + this.client = client; + } + + intercept( + request: unknown, + invoker: (request: unknown) => ClientReadableStream + ) { + class InterceptedStream { + refresher: TokenRefresherWeb; + stream: ClientReadableStream; + + constructor(stream: ClientReadableStream, refresher: TokenRefresherWeb) { + this.stream = stream; + this.refresher = refresher; + } + + on(eventType: string, callback: () => void) { + const token = this.refresher.client.getRefreshToken(); + + if (isJwtExpired(token)) { + this.refresher.client.refreshToken().then(() => {}); + } + + if (eventType == "data") { + this.stream.on(eventType, callback); + } else if (eventType == "error") { + this.stream.on("error", callback); + } else if (eventType == "metadata") { + this.stream.on("metadata", callback); + } else if (eventType == "status") { + this.stream.on("status", callback); + } else if (eventType == "end") { + this.stream.on("end", callback); + } + + return this; + } + } + + return new InterceptedStream(invoker(request), this); + } +} + +export { TokenRefresherWeb }; diff --git a/mods/sdk/src/client/WebClient.ts b/mods/sdk/src/client/WebClient.ts new file mode 100644 index 000000000..7d2467321 --- /dev/null +++ b/mods/sdk/src/client/WebClient.ts @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { AbstractClient } from "./AbstractClient"; +import { TokenRefresherWeb } from "./TokenRefresherWeb"; +import { AclsClient } from "../generated/web/AclsServiceClientPb"; +import { AgentsClient } from "../generated/web/AgentsServiceClientPb"; +import { ApplicationsClient } from "../generated/web/ApplicationsServiceClientPb"; +import { CallsClient } from "../generated/web/CallsServiceClientPb"; +import { CredentialsServiceClient } from "../generated/web/CredentialsServiceClientPb"; +import { DomainsClient } from "../generated/web/DomainsServiceClientPb"; +import { IdentityClient } from "../generated/web/IdentityServiceClientPb"; +import { NumbersClient } from "../generated/web/NumbersServiceClientPb"; +import { SecretsClient } from "../generated/web/SecretsServiceClientPb"; +import { TrunksClient } from "../generated/web/TrunksServiceClientPb"; + +const DEFAULT_URL = "https://api.fonoster.com/v1beta2"; + +export class WebClient extends AbstractClient { + private url: string; + + constructor( + config: { url?: string; accessKeyId: string } = { + url: DEFAULT_URL, + accessKeyId: "" + } + ) { + const { url, accessKeyId } = config; + + super({ + accessKeyId, + identityClient: new IdentityClient(url ?? DEFAULT_URL, null, null) + }); + + this.url = url ?? DEFAULT_URL; + } + + getMetadata() { + return { + token: this.getAccessToken(), + accessKeyId: this.getAccessKeyId() + }; + } + + getApplicationsClient() { + return new ApplicationsClient(this.url, null, { + streamInterceptors: [new TokenRefresherWeb(this)] + }); + } + + getCallsClient() { + return new CallsClient(this.url, null, { + streamInterceptors: [new TokenRefresherWeb(this)] + }); + } + + getIdentityClient() { + return new IdentityClient(this.url, null, null); + } + + getSecretsClient() { + return new SecretsClient(this.url, null, { + streamInterceptors: [new TokenRefresherWeb(this)] + }); + } + + getAgentsClient() { + return new AgentsClient(this.url, null, { + streamInterceptors: [new TokenRefresherWeb(this)] + }); + } + + getAclsClient() { + return new AclsClient(this.url, null, { + streamInterceptors: [new TokenRefresherWeb(this)] + }); + } + + getDomainsClient() { + return new DomainsClient(this.url, null, { + streamInterceptors: [new TokenRefresherWeb(this)] + }); + } + + getTrunksClient() { + return new TrunksClient(this.url, null, { + streamInterceptors: [new TokenRefresherWeb(this)] + }); + } + + getNumbersClient() { + return new NumbersClient(this.url, null, { + streamInterceptors: [new TokenRefresherWeb(this)] + }); + } + + getCredentialsClient() { + return new CredentialsServiceClient(this.url, null, { + streamInterceptors: [new TokenRefresherWeb(this)] + }); + } +} diff --git a/mods/sdk/src/client/isJwtExpired.ts b/mods/sdk/src/client/isJwtExpired.ts new file mode 100644 index 000000000..efc5150e1 --- /dev/null +++ b/mods/sdk/src/client/isJwtExpired.ts @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function isJwtExpired(token: string) { + try { + const [, payloadBase64] = token.split("."); + + const payloadJson = Buffer.from(payloadBase64, "base64").toString("utf8"); + const payload = JSON.parse(payloadJson); + + if (!payload.exp) { + return false; + } + + const expirationTime = payload.exp * 1000; + const currentTime = Date.now(); + + return currentTime > expirationTime; + } catch (error) { + return true; + } +} + +export { isJwtExpired }; diff --git a/mods/sdk/src/client/jsonToObject.ts b/mods/sdk/src/client/jsonToObject.ts new file mode 100644 index 000000000..52519307a --- /dev/null +++ b/mods/sdk/src/client/jsonToObject.ts @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { MappingTuple } from "./types"; +import { getEnumValue, isMapping } from "./utils"; + +function jsonToObject, T>(params: { + json: J; + objectConstructor: new () => T; + enumMapping?: MappingTuple; + objectMapping?: MappingTuple; +}): T { + const { + json, + objectConstructor: ObjectConstructor, + enumMapping, + objectMapping + } = params; + const instance = new ObjectConstructor(); + + Object.keys(json).forEach((key) => { + const setterName = `set${key.charAt(0).toUpperCase() + key.slice(1)}`; + + if (json[key] === null || json[key] === undefined) { + return; + } + + if (isMapping(key, enumMapping)) { + const enumValue = getEnumValue(key, json[key] as string, enumMapping); + instance[setterName](enumValue); + } else if (isMapping(key, objectMapping)) { + const objectValue = jsonToObject({ + json: json[key] as Record, + objectConstructor: objectMapping.find( + (tuple) => tuple[0] === key + )[1] as new () => unknown, + enumMapping, + objectMapping + }); + + instance[setterName](objectValue); + } else if (typeof instance[setterName] === "function") { + instance[setterName](json[key]); + } + }); + + return instance; +} + +export { jsonToObject }; diff --git a/mods/sdk/src/client/makeRpcRequest.ts b/mods/sdk/src/client/makeRpcRequest.ts new file mode 100644 index 000000000..6d3fdbe4f --- /dev/null +++ b/mods/sdk/src/client/makeRpcRequest.ts @@ -0,0 +1,74 @@ +/* eslint-disable no-loops/no-loops */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { jsonToObject } from "./jsonToObject"; +import { objectToJson } from "./objectToJson"; +import { ClientFunction, MappingTuple } from "./types"; + +function makeRpcRequest< + RequestPB, + ResponsePB, + Request extends Record, + Response extends Record +>(params: { + method: ClientFunction; + requestPBObjectConstructor: new () => RequestPB; + metadata: unknown; + request: Request; + enumMapping?: MappingTuple; + objectMapping?: MappingTuple; + repeatableObjectMapping?: MappingTuple; +}): Promise { + const { + method, + requestPBObjectConstructor: RequestPBObjectConstructor, + metadata, + request, + enumMapping, + objectMapping, + repeatableObjectMapping + } = params; + + const reqPB = jsonToObject({ + json: request, + objectConstructor: RequestPBObjectConstructor, + enumMapping, + objectMapping + }); + + return new Promise((resolve, reject) => { + method(reqPB, metadata, (err: Error | null, responsePB: ResponsePB) => { + if (err) { + reject(err); + return; + } + + const json = objectToJson( + responsePB as unknown as new () => unknown, + enumMapping, + objectMapping, + repeatableObjectMapping + ); + + resolve(json); + }); + }); +} + +export { makeRpcRequest }; diff --git a/mods/sdk/src/client/objectToJson.ts b/mods/sdk/src/client/objectToJson.ts new file mode 100644 index 000000000..fdb1a8eb7 --- /dev/null +++ b/mods/sdk/src/client/objectToJson.ts @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { MappingTuple } from "./types"; +import { getEnumKey, isMapping } from "./utils"; + +function objectToJson>( + obj: new () => unknown, + enumMapping?: MappingTuple, + objectMapping?: MappingTuple, + repeatableObjectMapping?: MappingTuple +): J { + const json: Record = {}; + + Object.getOwnPropertyNames(Object.getPrototypeOf(obj)).forEach((key) => { + if ( + key.startsWith("get") && + typeof obj[key] === "function" && + key !== "getPrototypeOf" + ) { + const propName = key.charAt(3).toLowerCase() + key.slice(4); + try { + const value = obj[key](); + + if (value === null || value === undefined || value === "") { + return; + } + + if (isMapping(propName, enumMapping)) { + json[propName] = getEnumKey(propName, value as number, enumMapping); + } else if (isMapping(propName, objectMapping)) { + json[propName] = objectToJson( + value as new () => unknown, + enumMapping, + objectMapping, + repeatableObjectMapping + ); + } else if (isMapping(propName, repeatableObjectMapping)) { + // Remove the "List" ending from the key + const repeatableKey = propName.slice(0, -4); + + json[repeatableKey] = (value as unknown[]).map((item) => + objectToJson( + item as new () => unknown, + enumMapping, + objectMapping, + repeatableObjectMapping + ) + ); + } else if (value !== undefined) { + if ( + ["createdAt", "updatedAt", "startedAt", "endedAt"].includes( + propName + ) + ) { + json[propName] = new Date(value * 1000); + return; + } + json[propName] = value; + } + } catch (error) { + // Ignore + } + } + }); + + return json as J; +} + +export { objectToJson }; diff --git a/mods/sdk/src/client/types/AclsClient.ts b/mods/sdk/src/client/types/AclsClient.ts new file mode 100644 index 000000000..c7cf63cdf --- /dev/null +++ b/mods/sdk/src/client/types/AclsClient.ts @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ClientFunction } from "./common"; +import { + Acl, + CreateAclRequest, + CreateAclResponse, + DeleteAclRequest, + DeleteAclResponse, + GetAclRequest, + ListAclsRequest, + ListAclsResponse, + UpdateAclRequest, + UpdateAclResponse +} from "../../generated/web/acls_pb"; + +type AclsClient = { + createAcl: ClientFunction; + getAcl: ClientFunction; + updateAcl: ClientFunction; + listAcls: ClientFunction; + deleteAcl: ClientFunction; +}; + +export { AclsClient }; diff --git a/mods/sdk/src/client/types/AgentsClient.ts b/mods/sdk/src/client/types/AgentsClient.ts new file mode 100644 index 000000000..fac9fce22 --- /dev/null +++ b/mods/sdk/src/client/types/AgentsClient.ts @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ClientFunction } from "./common"; +import { + Agent, + CreateAgentRequest, + CreateAgentResponse, + DeleteAgentRequest, + DeleteAgentResponse, + GetAgentRequest, + ListAgentsRequest, + ListAgentsResponse, + UpdateAgentRequest, + UpdateAgentResponse +} from "../../generated/web/agents_pb"; + +type AgentsClient = { + createAgent: ClientFunction; + getAgent: ClientFunction; + updateAgent: ClientFunction; + listAgents: ClientFunction; + deleteAgent: ClientFunction; +}; + +export { AgentsClient }; diff --git a/mods/sdk/src/client/types/ApplicationsClient.ts b/mods/sdk/src/client/types/ApplicationsClient.ts new file mode 100644 index 000000000..cc3721176 --- /dev/null +++ b/mods/sdk/src/client/types/ApplicationsClient.ts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ClientFunction } from "./common"; +import { + Application, + CreateApplicationRequest, + CreateApplicationResponse, + DeleteApplicationRequest, + DeleteApplicationResponse, + GetApplicationRequest, + ListApplicationsRequest, + ListApplicationsResponse, + UpdateApplicationRequest, + UpdateApplicationResponse +} from "../../generated/web/applications_pb"; + +type ApplicationsClient = { + createApplication: ClientFunction< + CreateApplicationRequest, + CreateApplicationResponse + >; + getApplication: ClientFunction; + updateApplication: ClientFunction< + UpdateApplicationRequest, + UpdateApplicationResponse + >; + listApplications: ClientFunction< + ListApplicationsRequest, + ListApplicationsResponse + >; + deleteApplication: ClientFunction< + DeleteApplicationRequest, + DeleteApplicationResponse + >; +}; + +export { ApplicationsClient }; diff --git a/mods/sdk/src/client/types/CallsClient.ts b/mods/sdk/src/client/types/CallsClient.ts new file mode 100644 index 000000000..97d8ddaee --- /dev/null +++ b/mods/sdk/src/client/types/CallsClient.ts @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ClientFunction, ServerStreamFunction } from "./common"; +import { + CallDetailRecord, + CreateCallRequest, + CreateCallResponse, + GetCallRequest, + ListCallsRequest, + ListCallsResponse, + TrackCallRequest +} from "../../generated/web/calls_pb"; + +type CallsClient = { + createCall: ClientFunction; + getCall: ClientFunction; + listCalls: ClientFunction; + trackCall: ServerStreamFunction; +}; + +export { CallsClient }; diff --git a/mods/sdk/src/client/types/CredentialsClient.ts b/mods/sdk/src/client/types/CredentialsClient.ts new file mode 100644 index 000000000..507b6280b --- /dev/null +++ b/mods/sdk/src/client/types/CredentialsClient.ts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ClientFunction } from "./common"; +import { + CreateCredentialsRequest, + CreateCredentialsResponse, + Credentials, + DeleteCredentialsRequest, + DeleteCredentialsResponse, + GetCredentialsRequest, + ListCredentialsRequest, + ListCredentialsResponse, + UpdateCredentialsRequest, + UpdateCredentialsResponse +} from "../../generated/web/credentials_pb"; + +type CredentialsClient = { + createCredentials: ClientFunction< + CreateCredentialsRequest, + CreateCredentialsResponse + >; + getCredentials: ClientFunction; + updateCredentials: ClientFunction< + UpdateCredentialsRequest, + UpdateCredentialsResponse + >; + listCredentials: ClientFunction< + ListCredentialsRequest, + ListCredentialsResponse + >; + deleteCredentials: ClientFunction< + DeleteCredentialsRequest, + DeleteCredentialsResponse + >; +}; + +export { CredentialsClient }; diff --git a/mods/sdk/src/client/types/DomainsClient.ts b/mods/sdk/src/client/types/DomainsClient.ts new file mode 100644 index 000000000..2f1d8076d --- /dev/null +++ b/mods/sdk/src/client/types/DomainsClient.ts @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ClientFunction } from "./common"; +import { + CreateDomainRequest, + CreateDomainResponse, + DeleteDomainRequest, + DeleteDomainResponse, + Domain, + GetDomainRequest, + ListDomainsRequest, + ListDomainsResponse, + UpdateDomainRequest, + UpdateDomainResponse +} from "../../generated/web/domains_pb"; + +type DomainsClient = { + createDomain: ClientFunction; + getDomain: ClientFunction; + updateDomain: ClientFunction; + listDomains: ClientFunction; + deleteDomain: ClientFunction; +}; + +export { DomainsClient }; diff --git a/mods/sdk/src/client/types/FonosterClient.ts b/mods/sdk/src/client/types/FonosterClient.ts new file mode 100644 index 000000000..463f07d11 --- /dev/null +++ b/mods/sdk/src/client/types/FonosterClient.ts @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { AclsClient } from "./AclsClient"; +import { AgentsClient } from "./AgentsClient"; +import { ApplicationsClient } from "./ApplicationsClient"; +import { CallsClient } from "./CallsClient"; +import { CredentialsClient } from "./CredentialsClient"; +import { DomainsClient } from "./DomainsClient"; +import { IdentityClient } from "./IdentityClient"; +import { NumbersClient } from "./NumbersClient"; +import { SecretsClient } from "./SecretsClient"; +import { TrunksClient } from "./TrunksClient"; + +interface FonosterClient { + getAccessToken(): string; + getAccessKeyId(): string; + getApplicationsClient(): ApplicationsClient; + getCallsClient(): CallsClient; + getIdentityClient(): IdentityClient; + getSecretsClient(): SecretsClient; + getAgentsClient(): AgentsClient; + getNumbersClient(): NumbersClient; + getCredentialsClient(): CredentialsClient; + getDomainsClient(): DomainsClient; + getTrunksClient(): TrunksClient; + getAclsClient(): AclsClient; + getMetadata(): unknown; + refreshToken(): Promise; +} + +export { FonosterClient }; diff --git a/mods/sdk/src/client/types/IdentityClient.ts b/mods/sdk/src/client/types/IdentityClient.ts new file mode 100644 index 000000000..aca508173 --- /dev/null +++ b/mods/sdk/src/client/types/IdentityClient.ts @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + CreateApiKeyRequest, + CreateApiKeyResponse, + CreateUserRequest, + CreateUserResponse, + CreateWorkspaceRequest, + DeleteApiKeyRequest, + DeleteApiKeyResponse, + DeleteUserRequest, + DeleteUserResponse, + DeleteWorkspaceRequest, + DeleteWorkspaceResponse, + ExchangeApiKeyRequest, + ExchangeApiKeyResponse, + ExchangeCredentialsRequest, + ExchangeCredentialsResponse, + ExchangeOauth2CodeRequest, + ExchangeOauth2CodeResponse, + ExchangeRefreshTokenRequest, + ExchangeRefreshTokenResponse, + GetUserRequest, + GetWorkspaceRequest, + InviteUserToWorkspaceRequest, + InviteUserToWorkspaceResponse, + ListApiKeysRequest, + ListApiKeysResponse, + ListWorkspacesRequest, + ListWorkspacesResponse, + RegenerateApiKeyRequest, + RegenerateApiKeyResponse, + RemoveUserFromWorkspaceRequest, + RemoveUserFromWorkspaceResponse, + ResendWorkspaceMembershipInvitationRequest, + ResendWorkspaceMembershipInvitationResponse, + SendVerificationCodeRequest, + UpdateUserRequest, + UpdateWorkspaceRequest, + UpdateWorkspaceResponse, + User, + VerifyCodeRequest, + Workspace +} from "../../generated/web/identity_pb"; +import { ClientFunction } from "../types"; + +type IdentityClient = { + // ApiKeys + createApiKey: ClientFunction; + regenerateApiKey: ClientFunction< + RegenerateApiKeyRequest, + RegenerateApiKeyResponse + >; + listApiKeys: ClientFunction; + deleteApiKey: ClientFunction; + // Exchanges + exchangeApiKey: ClientFunction; + exchangeCredentials: ClientFunction< + ExchangeCredentialsRequest, + ExchangeCredentialsResponse + >; + exchangeOauth2Code: ClientFunction< + ExchangeOauth2CodeRequest, + ExchangeOauth2CodeResponse + >; + exchangeRefreshToken: ClientFunction< + ExchangeRefreshTokenRequest, + ExchangeRefreshTokenResponse + >; + // User + createUser: ClientFunction; + getUser: ClientFunction; + updateUser: ClientFunction; + deleteUser: ClientFunction; + sendVerificationCode: ClientFunction; + verifyCode: ClientFunction; + // Workspaces + createWorkspace: ClientFunction; + getWorkspace: ClientFunction; + listWorkspaces: ClientFunction; + updateWorkspace: ClientFunction< + UpdateWorkspaceRequest, + UpdateWorkspaceResponse + >; + inviteUserToWorkspace: ClientFunction< + InviteUserToWorkspaceRequest, + InviteUserToWorkspaceResponse + >; + resendWorkspaceMembershipInvitation: ClientFunction< + ResendWorkspaceMembershipInvitationRequest, + ResendWorkspaceMembershipInvitationResponse + >; + removeUserFromWorkspace: ClientFunction< + RemoveUserFromWorkspaceRequest, + RemoveUserFromWorkspaceResponse + >; + deleteWorkspace: ClientFunction< + DeleteWorkspaceRequest, + DeleteWorkspaceResponse + >; +}; + +export { IdentityClient }; diff --git a/mods/sdk/src/client/types/NumbersClient.ts b/mods/sdk/src/client/types/NumbersClient.ts new file mode 100644 index 000000000..801631746 --- /dev/null +++ b/mods/sdk/src/client/types/NumbersClient.ts @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ClientFunction } from "./common"; +import { + CreateNumberRequest, + CreateNumberResponse, + DeleteNumberRequest, + DeleteNumberResponse, + GetNumberRequest, + Number as INumber, + ListNumbersRequest, + ListNumbersResponse, + UpdateNumberRequest, + UpdateNumberResponse +} from "../../generated/web/numbers_pb"; + +type NumbersClient = { + createNumber: ClientFunction; + getNumber: ClientFunction; + updateNumber: ClientFunction; + listNumbers: ClientFunction; + deleteNumber: ClientFunction; +}; + +export { NumbersClient }; diff --git a/mods/sdk/src/client/types/SecretsClient.ts b/mods/sdk/src/client/types/SecretsClient.ts new file mode 100644 index 000000000..e41641320 --- /dev/null +++ b/mods/sdk/src/client/types/SecretsClient.ts @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ClientFunction } from "./common"; +import { + CreateSecretRequest, + CreateSecretResponse, + DeleteSecretRequest, + DeleteSecretResponse, + GetSecretRequest, + ListSecretsRequest, + ListSecretsResponse, + Secret, + UpdateSecretRequest, + UpdateSecretResponse +} from "../../generated/web/secrets_pb"; + +type SecretsClient = { + createSecret: ClientFunction; + getSecret: ClientFunction; + updateSecret: ClientFunction; + listSecrets: ClientFunction; + deleteSecret: ClientFunction; +}; + +export { SecretsClient }; diff --git a/mods/sdk/src/client/types/TrunksClient.ts b/mods/sdk/src/client/types/TrunksClient.ts new file mode 100644 index 000000000..ba86088a0 --- /dev/null +++ b/mods/sdk/src/client/types/TrunksClient.ts @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ClientFunction } from "./common"; +import { + CreateTrunkRequest, + CreateTrunkResponse, + DeleteTrunkRequest, + DeleteTrunkResponse, + GetTrunkRequest, + ListTrunksRequest, + ListTrunksResponse, + Trunk, + UpdateTrunkRequest, + UpdateTrunkResponse +} from "../../generated/web/trunks_pb"; + +type TrunksClient = { + createTrunk: ClientFunction; + getTrunk: ClientFunction; + updateTrunk: ClientFunction; + listTrunks: ClientFunction; + deleteTrunk: ClientFunction; +}; + +export { TrunksClient }; diff --git a/mods/sdk/src/client/types/common.ts b/mods/sdk/src/client/types/common.ts new file mode 100644 index 000000000..ffb2149fe --- /dev/null +++ b/mods/sdk/src/client/types/common.ts @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Metadata } from "grpc-web"; + +type MappingTuple = Array<[string, T]>; + +type ClientFunction = ( + request: T, + metadata: Metadata | unknown | null, + callback: (err: Error | null, response: U | null) => void +) => void; + +type DataResponse = { toObject: () => unknown }; + +type ServerStream = { + on: ( + event: "data" | "error" | "end" | "status", + listener: (response: U | Error | DataResponse) => void + ) => void; +}; + +type ServerStreamFunction = ( + request: T, + metadata: Metadata | unknown | null +) => ServerStream; + +export { ClientFunction, DataResponse, MappingTuple, ServerStreamFunction }; diff --git a/mods/sdk/src/client/types/index.ts b/mods/sdk/src/client/types/index.ts new file mode 100644 index 000000000..d3834480c --- /dev/null +++ b/mods/sdk/src/client/types/index.ts @@ -0,0 +1,28 @@ +export * from "./ApplicationsClient"; + +export * from "./CallsClient"; + +export * from "./FonosterClient"; + +export * from "./IdentityClient"; + +export * from "./SecretsClient"; +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./common"; diff --git a/mods/sdk/src/client/utils.ts b/mods/sdk/src/client/utils.ts new file mode 100644 index 000000000..a9e1ccc63 --- /dev/null +++ b/mods/sdk/src/client/utils.ts @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { MappingTuple } from "./types"; + +function isMapping(key: string, objectMapping: MappingTuple): boolean { + return objectMapping?.some((tuple) => tuple[0] === key); +} + +function getEnumValue( + key: string, + value: string, + enumMapping: MappingTuple +): number { + // Added to support the edge case of "PRIVATE" being passed as "ID" + const realValue = value === "ID" ? "PRIVATE" : value; + const tuple = enumMapping.find((tuple) => tuple[0] === key); + return (tuple ? tuple[1][realValue] : 0) as number; +} + +function getEnumKey( + key: string, + value: number, + enumMapping: MappingTuple +): string { + const tuple = enumMapping.find((tuple) => tuple[0] === key); + const result = Object.keys(tuple[1]).find((k) => tuple[1][k] === value) || ""; + // Added to support the edge case of "PRIVATE" being returned as "ID" + return result === "PRIVATE" ? "ID" : result; +} + +export { getEnumKey, getEnumValue, isMapping }; diff --git a/mods/sdk/src/generated/node/acls_grpc_pb.js b/mods/sdk/src/generated/node/acls_grpc_pb.js new file mode 100644 index 000000000..e858e6a9f --- /dev/null +++ b/mods/sdk/src/generated/node/acls_grpc_pb.js @@ -0,0 +1,200 @@ +// GENERATED CODE -- DO NOT EDIT! + +// Original file comments: +// +// Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) +// http://github.com/fonoster/fonoster +// +// This file is part of Fonoster +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +'use strict'; +var grpc = require('@grpc/grpc-js'); +var acls_pb = require('./acls_pb.js'); + +function serialize_fonoster_acls_v1beta2_Acl(arg) { + if (!(arg instanceof acls_pb.Acl)) { + throw new Error('Expected argument of type fonoster.acls.v1beta2.Acl'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_acls_v1beta2_Acl(buffer_arg) { + return acls_pb.Acl.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_acls_v1beta2_CreateAclRequest(arg) { + if (!(arg instanceof acls_pb.CreateAclRequest)) { + throw new Error('Expected argument of type fonoster.acls.v1beta2.CreateAclRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_acls_v1beta2_CreateAclRequest(buffer_arg) { + return acls_pb.CreateAclRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_acls_v1beta2_CreateAclResponse(arg) { + if (!(arg instanceof acls_pb.CreateAclResponse)) { + throw new Error('Expected argument of type fonoster.acls.v1beta2.CreateAclResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_acls_v1beta2_CreateAclResponse(buffer_arg) { + return acls_pb.CreateAclResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_acls_v1beta2_DeleteAclRequest(arg) { + if (!(arg instanceof acls_pb.DeleteAclRequest)) { + throw new Error('Expected argument of type fonoster.acls.v1beta2.DeleteAclRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_acls_v1beta2_DeleteAclRequest(buffer_arg) { + return acls_pb.DeleteAclRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_acls_v1beta2_DeleteAclResponse(arg) { + if (!(arg instanceof acls_pb.DeleteAclResponse)) { + throw new Error('Expected argument of type fonoster.acls.v1beta2.DeleteAclResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_acls_v1beta2_DeleteAclResponse(buffer_arg) { + return acls_pb.DeleteAclResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_acls_v1beta2_GetAclRequest(arg) { + if (!(arg instanceof acls_pb.GetAclRequest)) { + throw new Error('Expected argument of type fonoster.acls.v1beta2.GetAclRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_acls_v1beta2_GetAclRequest(buffer_arg) { + return acls_pb.GetAclRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_acls_v1beta2_ListAclsRequest(arg) { + if (!(arg instanceof acls_pb.ListAclsRequest)) { + throw new Error('Expected argument of type fonoster.acls.v1beta2.ListAclsRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_acls_v1beta2_ListAclsRequest(buffer_arg) { + return acls_pb.ListAclsRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_acls_v1beta2_ListAclsResponse(arg) { + if (!(arg instanceof acls_pb.ListAclsResponse)) { + throw new Error('Expected argument of type fonoster.acls.v1beta2.ListAclsResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_acls_v1beta2_ListAclsResponse(buffer_arg) { + return acls_pb.ListAclsResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_acls_v1beta2_UpdateAclRequest(arg) { + if (!(arg instanceof acls_pb.UpdateAclRequest)) { + throw new Error('Expected argument of type fonoster.acls.v1beta2.UpdateAclRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_acls_v1beta2_UpdateAclRequest(buffer_arg) { + return acls_pb.UpdateAclRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_acls_v1beta2_UpdateAclResponse(arg) { + if (!(arg instanceof acls_pb.UpdateAclResponse)) { + throw new Error('Expected argument of type fonoster.acls.v1beta2.UpdateAclResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_acls_v1beta2_UpdateAclResponse(buffer_arg) { + return acls_pb.UpdateAclResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + + +// AccessControlList(Acl) service definition +var AclsService = exports.AclsService = { + // Create a new Acl +createAcl: { + path: '/fonoster.acls.v1beta2.Acls/CreateAcl', + requestStream: false, + responseStream: false, + requestType: acls_pb.CreateAclRequest, + responseType: acls_pb.CreateAclResponse, + requestSerialize: serialize_fonoster_acls_v1beta2_CreateAclRequest, + requestDeserialize: deserialize_fonoster_acls_v1beta2_CreateAclRequest, + responseSerialize: serialize_fonoster_acls_v1beta2_CreateAclResponse, + responseDeserialize: deserialize_fonoster_acls_v1beta2_CreateAclResponse, + }, + // Update an existing Acl +updateAcl: { + path: '/fonoster.acls.v1beta2.Acls/UpdateAcl', + requestStream: false, + responseStream: false, + requestType: acls_pb.UpdateAclRequest, + responseType: acls_pb.UpdateAclResponse, + requestSerialize: serialize_fonoster_acls_v1beta2_UpdateAclRequest, + requestDeserialize: deserialize_fonoster_acls_v1beta2_UpdateAclRequest, + responseSerialize: serialize_fonoster_acls_v1beta2_UpdateAclResponse, + responseDeserialize: deserialize_fonoster_acls_v1beta2_UpdateAclResponse, + }, + // Get an existing Acl +getAcl: { + path: '/fonoster.acls.v1beta2.Acls/GetAcl', + requestStream: false, + responseStream: false, + requestType: acls_pb.GetAclRequest, + responseType: acls_pb.Acl, + requestSerialize: serialize_fonoster_acls_v1beta2_GetAclRequest, + requestDeserialize: deserialize_fonoster_acls_v1beta2_GetAclRequest, + responseSerialize: serialize_fonoster_acls_v1beta2_Acl, + responseDeserialize: deserialize_fonoster_acls_v1beta2_Acl, + }, + // Delete an existing Acl +deleteAcl: { + path: '/fonoster.acls.v1beta2.Acls/DeleteAcl', + requestStream: false, + responseStream: false, + requestType: acls_pb.DeleteAclRequest, + responseType: acls_pb.DeleteAclResponse, + requestSerialize: serialize_fonoster_acls_v1beta2_DeleteAclRequest, + requestDeserialize: deserialize_fonoster_acls_v1beta2_DeleteAclRequest, + responseSerialize: serialize_fonoster_acls_v1beta2_DeleteAclResponse, + responseDeserialize: deserialize_fonoster_acls_v1beta2_DeleteAclResponse, + }, + // Get a list of Acls +listAcls: { + path: '/fonoster.acls.v1beta2.Acls/ListAcls', + requestStream: false, + responseStream: false, + requestType: acls_pb.ListAclsRequest, + responseType: acls_pb.ListAclsResponse, + requestSerialize: serialize_fonoster_acls_v1beta2_ListAclsRequest, + requestDeserialize: deserialize_fonoster_acls_v1beta2_ListAclsRequest, + responseSerialize: serialize_fonoster_acls_v1beta2_ListAclsResponse, + responseDeserialize: deserialize_fonoster_acls_v1beta2_ListAclsResponse, + }, +}; + +exports.AclsClient = grpc.makeGenericClientConstructor(AclsService); diff --git a/mods/sdk/src/generated/node/acls_pb.js b/mods/sdk/src/generated/node/acls_pb.js new file mode 100644 index 000000000..7f3c5673c --- /dev/null +++ b/mods/sdk/src/generated/node/acls_pb.js @@ -0,0 +1,1916 @@ +// source: acls.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.acls.v1beta2.Acl', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.CreateAclRequest', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.CreateAclResponse', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.DeleteAclRequest', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.DeleteAclResponse', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.GetAclRequest', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.ListAclsRequest', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.ListAclsResponse', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.UpdateAclRequest', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.UpdateAclResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.Acl = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.acls.v1beta2.Acl.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.Acl, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.Acl.displayName = 'proto.fonoster.acls.v1beta2.Acl'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.CreateAclRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.acls.v1beta2.CreateAclRequest.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.CreateAclRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.CreateAclRequest.displayName = 'proto.fonoster.acls.v1beta2.CreateAclRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.CreateAclResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.CreateAclResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.CreateAclResponse.displayName = 'proto.fonoster.acls.v1beta2.CreateAclResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.acls.v1beta2.UpdateAclRequest.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.UpdateAclRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.UpdateAclRequest.displayName = 'proto.fonoster.acls.v1beta2.UpdateAclRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.UpdateAclResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.UpdateAclResponse.displayName = 'proto.fonoster.acls.v1beta2.UpdateAclResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.GetAclRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.GetAclRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.GetAclRequest.displayName = 'proto.fonoster.acls.v1beta2.GetAclRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.DeleteAclRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.DeleteAclRequest.displayName = 'proto.fonoster.acls.v1beta2.DeleteAclRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.DeleteAclResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.DeleteAclResponse.displayName = 'proto.fonoster.acls.v1beta2.DeleteAclResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.ListAclsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.ListAclsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.ListAclsRequest.displayName = 'proto.fonoster.acls.v1beta2.ListAclsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.ListAclsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.acls.v1beta2.ListAclsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.ListAclsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.ListAclsResponse.displayName = 'proto.fonoster.acls.v1beta2.ListAclsResponse'; +} + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.acls.v1beta2.Acl.repeatedFields_ = [3]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.Acl.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.Acl} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.Acl.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + allowList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f, + createdAt: jspb.Message.getFieldWithDefault(msg, 4, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 5, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.Acl} + */ +proto.fonoster.acls.v1beta2.Acl.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.Acl; + return proto.fonoster.acls.v1beta2.Acl.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.Acl} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.Acl} + */ +proto.fonoster.acls.v1beta2.Acl.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.addAllow(value); + break; + case 4: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.Acl.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.Acl} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.Acl.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAllowList(); + if (f.length > 0) { + writer.writeRepeatedString( + 3, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 4, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * repeated string allow = 3; + * @return {!Array} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.getAllowList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 3)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.setAllowList = function(value) { + return jspb.Message.setField(this, 3, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.addAllow = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 3, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.clearAllowList = function() { + return this.setAllowList([]); +}; + + +/** + * optional int32 created_at = 4; + * @return {number} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional int32 updated_at = 5; + * @return {number} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.repeatedFields_ = [2]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.CreateAclRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.CreateAclRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + allowList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.CreateAclRequest} + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.CreateAclRequest; + return proto.fonoster.acls.v1beta2.CreateAclRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.CreateAclRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.CreateAclRequest} + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.addAllow(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.CreateAclRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.CreateAclRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAllowList(); + if (f.length > 0) { + writer.writeRepeatedString( + 2, + f + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.CreateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * repeated string allow = 2; + * @return {!Array} + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.getAllowList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.acls.v1beta2.CreateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.setAllowList = function(value) { + return jspb.Message.setField(this, 2, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.fonoster.acls.v1beta2.CreateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.addAllow = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 2, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.acls.v1beta2.CreateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.clearAllowList = function() { + return this.setAllowList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.CreateAclResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.CreateAclResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.CreateAclResponse} + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.CreateAclResponse; + return proto.fonoster.acls.v1beta2.CreateAclResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.CreateAclResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.CreateAclResponse} + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.CreateAclResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.CreateAclResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.CreateAclResponse} returns this + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.repeatedFields_ = [3]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.UpdateAclRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.UpdateAclRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + allowList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.UpdateAclRequest; + return proto.fonoster.acls.v1beta2.UpdateAclRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.UpdateAclRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.addAllow(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.UpdateAclRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.UpdateAclRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAllowList(); + if (f.length > 0) { + writer.writeRepeatedString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * repeated string allow = 3; + * @return {!Array} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.getAllowList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 3)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.setAllowList = function(value) { + return jspb.Message.setField(this, 3, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.addAllow = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 3, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.clearAllowList = function() { + return this.setAllowList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.UpdateAclResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.UpdateAclResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.UpdateAclResponse} + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.UpdateAclResponse; + return proto.fonoster.acls.v1beta2.UpdateAclResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.UpdateAclResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.UpdateAclResponse} + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.UpdateAclResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.UpdateAclResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.UpdateAclResponse} returns this + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.GetAclRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.GetAclRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.GetAclRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.GetAclRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.GetAclRequest} + */ +proto.fonoster.acls.v1beta2.GetAclRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.GetAclRequest; + return proto.fonoster.acls.v1beta2.GetAclRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.GetAclRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.GetAclRequest} + */ +proto.fonoster.acls.v1beta2.GetAclRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.GetAclRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.GetAclRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.GetAclRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.GetAclRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.GetAclRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.GetAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.GetAclRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.DeleteAclRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.DeleteAclRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.DeleteAclRequest} + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.DeleteAclRequest; + return proto.fonoster.acls.v1beta2.DeleteAclRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.DeleteAclRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.DeleteAclRequest} + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.DeleteAclRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.DeleteAclRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.DeleteAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.DeleteAclResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.DeleteAclResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.DeleteAclResponse} + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.DeleteAclResponse; + return proto.fonoster.acls.v1beta2.DeleteAclResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.DeleteAclResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.DeleteAclResponse} + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.DeleteAclResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.DeleteAclResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.DeleteAclResponse} returns this + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.ListAclsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.ListAclsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.ListAclsRequest} + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.ListAclsRequest; + return proto.fonoster.acls.v1beta2.ListAclsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.ListAclsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.ListAclsRequest} + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.ListAclsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.ListAclsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.acls.v1beta2.ListAclsRequest} returns this + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.ListAclsRequest} returns this + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.ListAclsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.ListAclsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.acls.v1beta2.Acl.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.ListAclsResponse} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.ListAclsResponse; + return proto.fonoster.acls.v1beta2.ListAclsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.ListAclsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.ListAclsResponse} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.acls.v1beta2.Acl; + reader.readMessage(value,proto.fonoster.acls.v1beta2.Acl.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.ListAclsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.ListAclsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.acls.v1beta2.Acl.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Acl items = 1; + * @return {!Array} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.acls.v1beta2.Acl, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.acls.v1beta2.ListAclsResponse} returns this +*/ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.acls.v1beta2.Acl=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.acls.v1beta2.Acl} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.acls.v1beta2.Acl, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.acls.v1beta2.ListAclsResponse} returns this + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.ListAclsResponse} returns this + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +goog.object.extend(exports, proto.fonoster.acls.v1beta2); diff --git a/mods/sdk/src/generated/node/agents_grpc_pb.js b/mods/sdk/src/generated/node/agents_grpc_pb.js new file mode 100644 index 000000000..10541b3ae --- /dev/null +++ b/mods/sdk/src/generated/node/agents_grpc_pb.js @@ -0,0 +1,200 @@ +// GENERATED CODE -- DO NOT EDIT! + +// Original file comments: +// +// Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) +// http://github.com/fonoster/fonoster +// +// This file is part of Fonoster +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +'use strict'; +var grpc = require('@grpc/grpc-js'); +var agents_pb = require('./agents_pb.js'); + +function serialize_fonoster_agents_v1beta2_Agent(arg) { + if (!(arg instanceof agents_pb.Agent)) { + throw new Error('Expected argument of type fonoster.agents.v1beta2.Agent'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_agents_v1beta2_Agent(buffer_arg) { + return agents_pb.Agent.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_agents_v1beta2_CreateAgentRequest(arg) { + if (!(arg instanceof agents_pb.CreateAgentRequest)) { + throw new Error('Expected argument of type fonoster.agents.v1beta2.CreateAgentRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_agents_v1beta2_CreateAgentRequest(buffer_arg) { + return agents_pb.CreateAgentRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_agents_v1beta2_CreateAgentResponse(arg) { + if (!(arg instanceof agents_pb.CreateAgentResponse)) { + throw new Error('Expected argument of type fonoster.agents.v1beta2.CreateAgentResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_agents_v1beta2_CreateAgentResponse(buffer_arg) { + return agents_pb.CreateAgentResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_agents_v1beta2_DeleteAgentRequest(arg) { + if (!(arg instanceof agents_pb.DeleteAgentRequest)) { + throw new Error('Expected argument of type fonoster.agents.v1beta2.DeleteAgentRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_agents_v1beta2_DeleteAgentRequest(buffer_arg) { + return agents_pb.DeleteAgentRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_agents_v1beta2_DeleteAgentResponse(arg) { + if (!(arg instanceof agents_pb.DeleteAgentResponse)) { + throw new Error('Expected argument of type fonoster.agents.v1beta2.DeleteAgentResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_agents_v1beta2_DeleteAgentResponse(buffer_arg) { + return agents_pb.DeleteAgentResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_agents_v1beta2_GetAgentRequest(arg) { + if (!(arg instanceof agents_pb.GetAgentRequest)) { + throw new Error('Expected argument of type fonoster.agents.v1beta2.GetAgentRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_agents_v1beta2_GetAgentRequest(buffer_arg) { + return agents_pb.GetAgentRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_agents_v1beta2_ListAgentsRequest(arg) { + if (!(arg instanceof agents_pb.ListAgentsRequest)) { + throw new Error('Expected argument of type fonoster.agents.v1beta2.ListAgentsRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_agents_v1beta2_ListAgentsRequest(buffer_arg) { + return agents_pb.ListAgentsRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_agents_v1beta2_ListAgentsResponse(arg) { + if (!(arg instanceof agents_pb.ListAgentsResponse)) { + throw new Error('Expected argument of type fonoster.agents.v1beta2.ListAgentsResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_agents_v1beta2_ListAgentsResponse(buffer_arg) { + return agents_pb.ListAgentsResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_agents_v1beta2_UpdateAgentRequest(arg) { + if (!(arg instanceof agents_pb.UpdateAgentRequest)) { + throw new Error('Expected argument of type fonoster.agents.v1beta2.UpdateAgentRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_agents_v1beta2_UpdateAgentRequest(buffer_arg) { + return agents_pb.UpdateAgentRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_agents_v1beta2_UpdateAgentResponse(arg) { + if (!(arg instanceof agents_pb.UpdateAgentResponse)) { + throw new Error('Expected argument of type fonoster.agents.v1beta2.UpdateAgentResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_agents_v1beta2_UpdateAgentResponse(buffer_arg) { + return agents_pb.UpdateAgentResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + + +// The Agents service definition +var AgentsService = exports.AgentsService = { + // Create a new Agent +createAgent: { + path: '/fonoster.agents.v1beta2.Agents/CreateAgent', + requestStream: false, + responseStream: false, + requestType: agents_pb.CreateAgentRequest, + responseType: agents_pb.CreateAgentResponse, + requestSerialize: serialize_fonoster_agents_v1beta2_CreateAgentRequest, + requestDeserialize: deserialize_fonoster_agents_v1beta2_CreateAgentRequest, + responseSerialize: serialize_fonoster_agents_v1beta2_CreateAgentResponse, + responseDeserialize: deserialize_fonoster_agents_v1beta2_CreateAgentResponse, + }, + // Update an existing Agent +updateAgent: { + path: '/fonoster.agents.v1beta2.Agents/UpdateAgent', + requestStream: false, + responseStream: false, + requestType: agents_pb.UpdateAgentRequest, + responseType: agents_pb.UpdateAgentResponse, + requestSerialize: serialize_fonoster_agents_v1beta2_UpdateAgentRequest, + requestDeserialize: deserialize_fonoster_agents_v1beta2_UpdateAgentRequest, + responseSerialize: serialize_fonoster_agents_v1beta2_UpdateAgentResponse, + responseDeserialize: deserialize_fonoster_agents_v1beta2_UpdateAgentResponse, + }, + // Get an existing Agent +getAgent: { + path: '/fonoster.agents.v1beta2.Agents/GetAgent', + requestStream: false, + responseStream: false, + requestType: agents_pb.GetAgentRequest, + responseType: agents_pb.Agent, + requestSerialize: serialize_fonoster_agents_v1beta2_GetAgentRequest, + requestDeserialize: deserialize_fonoster_agents_v1beta2_GetAgentRequest, + responseSerialize: serialize_fonoster_agents_v1beta2_Agent, + responseDeserialize: deserialize_fonoster_agents_v1beta2_Agent, + }, + // Delete an existing Agent +deleteAgent: { + path: '/fonoster.agents.v1beta2.Agents/DeleteAgent', + requestStream: false, + responseStream: false, + requestType: agents_pb.DeleteAgentRequest, + responseType: agents_pb.DeleteAgentResponse, + requestSerialize: serialize_fonoster_agents_v1beta2_DeleteAgentRequest, + requestDeserialize: deserialize_fonoster_agents_v1beta2_DeleteAgentRequest, + responseSerialize: serialize_fonoster_agents_v1beta2_DeleteAgentResponse, + responseDeserialize: deserialize_fonoster_agents_v1beta2_DeleteAgentResponse, + }, + // List all Agents +listAgents: { + path: '/fonoster.agents.v1beta2.Agents/ListAgents', + requestStream: false, + responseStream: false, + requestType: agents_pb.ListAgentsRequest, + responseType: agents_pb.ListAgentsResponse, + requestSerialize: serialize_fonoster_agents_v1beta2_ListAgentsRequest, + requestDeserialize: deserialize_fonoster_agents_v1beta2_ListAgentsRequest, + responseSerialize: serialize_fonoster_agents_v1beta2_ListAgentsResponse, + responseDeserialize: deserialize_fonoster_agents_v1beta2_ListAgentsResponse, + }, +}; + +exports.AgentsClient = grpc.makeGenericClientConstructor(AgentsService); diff --git a/mods/sdk/src/generated/node/agents_pb.js b/mods/sdk/src/generated/node/agents_pb.js new file mode 100644 index 000000000..42220557f --- /dev/null +++ b/mods/sdk/src/generated/node/agents_pb.js @@ -0,0 +1,2823 @@ +// source: agents.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.agents.v1beta2.Agent', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.Agent.Credentials', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.Agent.Domain', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.CreateAgentRequest', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.CreateAgentResponse', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.DeleteAgentRequest', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.DeleteAgentResponse', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.GetAgentRequest', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.ListAgentsRequest', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.ListAgentsResponse', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.Privacy', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.UpdateAgentRequest', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.UpdateAgentResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.Agent = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.Agent, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.Agent.displayName = 'proto.fonoster.agents.v1beta2.Agent'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.Agent.Domain = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.Agent.Domain, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.Agent.Domain.displayName = 'proto.fonoster.agents.v1beta2.Agent.Domain'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.Agent.Credentials = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.Agent.Credentials, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.Agent.Credentials.displayName = 'proto.fonoster.agents.v1beta2.Agent.Credentials'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.CreateAgentRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.CreateAgentRequest.displayName = 'proto.fonoster.agents.v1beta2.CreateAgentRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.CreateAgentResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.CreateAgentResponse.displayName = 'proto.fonoster.agents.v1beta2.CreateAgentResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.UpdateAgentRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.UpdateAgentRequest.displayName = 'proto.fonoster.agents.v1beta2.UpdateAgentRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.UpdateAgentResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.UpdateAgentResponse.displayName = 'proto.fonoster.agents.v1beta2.UpdateAgentResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.GetAgentRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.GetAgentRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.GetAgentRequest.displayName = 'proto.fonoster.agents.v1beta2.GetAgentRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.DeleteAgentRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.DeleteAgentRequest.displayName = 'proto.fonoster.agents.v1beta2.DeleteAgentRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.DeleteAgentResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.DeleteAgentResponse.displayName = 'proto.fonoster.agents.v1beta2.DeleteAgentResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.ListAgentsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.ListAgentsRequest.displayName = 'proto.fonoster.agents.v1beta2.ListAgentsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.agents.v1beta2.ListAgentsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.ListAgentsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.ListAgentsResponse.displayName = 'proto.fonoster.agents.v1beta2.ListAgentsResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.Agent.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.Agent} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.Agent.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + username: jspb.Message.getFieldWithDefault(msg, 3, ""), + privacy: jspb.Message.getFieldWithDefault(msg, 4, 0), + enabled: jspb.Message.getBooleanFieldWithDefault(msg, 5, false), + createdAt: jspb.Message.getFieldWithDefault(msg, 6, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 7, 0), + maxContacts: jspb.Message.getFieldWithDefault(msg, 8, 0), + expires: jspb.Message.getFieldWithDefault(msg, 9, 0), + domain: (f = msg.getDomain()) && proto.fonoster.agents.v1beta2.Agent.Domain.toObject(includeInstance, f), + credentials: (f = msg.getCredentials()) && proto.fonoster.agents.v1beta2.Agent.Credentials.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.Agent} + */ +proto.fonoster.agents.v1beta2.Agent.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.Agent; + return proto.fonoster.agents.v1beta2.Agent.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.Agent} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.Agent} + */ +proto.fonoster.agents.v1beta2.Agent.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 4: + var value = /** @type {!proto.fonoster.agents.v1beta2.Privacy} */ (reader.readEnum()); + msg.setPrivacy(value); + break; + case 5: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setEnabled(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 7: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + case 8: + var value = /** @type {number} */ (reader.readInt32()); + msg.setMaxContacts(value); + break; + case 9: + var value = /** @type {number} */ (reader.readInt32()); + msg.setExpires(value); + break; + case 10: + var value = new proto.fonoster.agents.v1beta2.Agent.Domain; + reader.readMessage(value,proto.fonoster.agents.v1beta2.Agent.Domain.deserializeBinaryFromReader); + msg.setDomain(value); + break; + case 11: + var value = new proto.fonoster.agents.v1beta2.Agent.Credentials; + reader.readMessage(value,proto.fonoster.agents.v1beta2.Agent.Credentials.deserializeBinaryFromReader); + msg.setCredentials(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.Agent.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.Agent} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.Agent.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getPrivacy(); + if (f !== 0.0) { + writer.writeEnum( + 4, + f + ); + } + f = message.getEnabled(); + if (f) { + writer.writeBool( + 5, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 7, + f + ); + } + f = message.getMaxContacts(); + if (f !== 0) { + writer.writeInt32( + 8, + f + ); + } + f = message.getExpires(); + if (f !== 0) { + writer.writeInt32( + 9, + f + ); + } + f = message.getDomain(); + if (f != null) { + writer.writeMessage( + 10, + f, + proto.fonoster.agents.v1beta2.Agent.Domain.serializeBinaryToWriter + ); + } + f = message.getCredentials(); + if (f != null) { + writer.writeMessage( + 11, + f, + proto.fonoster.agents.v1beta2.Agent.Credentials.serializeBinaryToWriter + ); + } +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.Agent.Domain.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.Agent.Domain} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.Agent.Domain.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + domainUri: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.Agent.Domain} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.Agent.Domain; + return proto.fonoster.agents.v1beta2.Agent.Domain.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.Agent.Domain} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.Agent.Domain} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setDomainUri(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.Agent.Domain.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.Agent.Domain} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.Agent.Domain.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getDomainUri(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent.Domain} returns this + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent.Domain} returns this + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string domain_uri = 3; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.getDomainUri = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent.Domain} returns this + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.setDomainUri = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.Agent.Credentials.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.Agent.Credentials} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + username: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.Agent.Credentials} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.Agent.Credentials; + return proto.fonoster.agents.v1beta2.Agent.Credentials.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.Agent.Credentials} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.Agent.Credentials} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.Agent.Credentials.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.Agent.Credentials} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent.Credentials} returns this + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent.Credentials} returns this + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string username = 3; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent.Credentials} returns this + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string username = 3; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional Privacy privacy = 4; + * @return {!proto.fonoster.agents.v1beta2.Privacy} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getPrivacy = function() { + return /** @type {!proto.fonoster.agents.v1beta2.Privacy} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {!proto.fonoster.agents.v1beta2.Privacy} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setPrivacy = function(value) { + return jspb.Message.setProto3EnumField(this, 4, value); +}; + + +/** + * optional bool enabled = 5; + * @return {boolean} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getEnabled = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setEnabled = function(value) { + return jspb.Message.setProto3BooleanField(this, 5, value); +}; + + +/** + * optional int32 created_at = 6; + * @return {number} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + +/** + * optional int32 updated_at = 7; + * @return {number} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + + +/** + * optional int32 max_contacts = 8; + * @return {number} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getMaxContacts = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setMaxContacts = function(value) { + return jspb.Message.setProto3IntField(this, 8, value); +}; + + +/** + * optional int32 expires = 9; + * @return {number} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getExpires = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setExpires = function(value) { + return jspb.Message.setProto3IntField(this, 9, value); +}; + + +/** + * optional Domain domain = 10; + * @return {?proto.fonoster.agents.v1beta2.Agent.Domain} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getDomain = function() { + return /** @type{?proto.fonoster.agents.v1beta2.Agent.Domain} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.agents.v1beta2.Agent.Domain, 10)); +}; + + +/** + * @param {?proto.fonoster.agents.v1beta2.Agent.Domain|undefined} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this +*/ +proto.fonoster.agents.v1beta2.Agent.prototype.setDomain = function(value) { + return jspb.Message.setWrapperField(this, 10, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.clearDomain = function() { + return this.setDomain(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.hasDomain = function() { + return jspb.Message.getField(this, 10) != null; +}; + + +/** + * optional Credentials credentials = 11; + * @return {?proto.fonoster.agents.v1beta2.Agent.Credentials} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getCredentials = function() { + return /** @type{?proto.fonoster.agents.v1beta2.Agent.Credentials} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.agents.v1beta2.Agent.Credentials, 11)); +}; + + +/** + * @param {?proto.fonoster.agents.v1beta2.Agent.Credentials|undefined} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this +*/ +proto.fonoster.agents.v1beta2.Agent.prototype.setCredentials = function(value) { + return jspb.Message.setWrapperField(this, 11, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.clearCredentials = function() { + return this.setCredentials(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.hasCredentials = function() { + return jspb.Message.getField(this, 11) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.CreateAgentRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.CreateAgentRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + username: jspb.Message.getFieldWithDefault(msg, 2, ""), + privacy: jspb.Message.getFieldWithDefault(msg, 3, 0), + enabled: jspb.Message.getBooleanFieldWithDefault(msg, 4, false), + domainRef: jspb.Message.getFieldWithDefault(msg, 5, ""), + credentialsRef: jspb.Message.getFieldWithDefault(msg, 6, ""), + maxContacts: jspb.Message.getFieldWithDefault(msg, 7, 0), + expires: jspb.Message.getFieldWithDefault(msg, 8, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.CreateAgentRequest; + return proto.fonoster.agents.v1beta2.CreateAgentRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.CreateAgentRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 3: + var value = /** @type {!proto.fonoster.agents.v1beta2.Privacy} */ (reader.readEnum()); + msg.setPrivacy(value); + break; + case 4: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setEnabled(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setDomainRef(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setCredentialsRef(value); + break; + case 7: + var value = /** @type {number} */ (reader.readInt32()); + msg.setMaxContacts(value); + break; + case 8: + var value = /** @type {number} */ (reader.readInt32()); + msg.setExpires(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.CreateAgentRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.CreateAgentRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getPrivacy(); + if (f !== 0.0) { + writer.writeEnum( + 3, + f + ); + } + f = message.getEnabled(); + if (f) { + writer.writeBool( + 4, + f + ); + } + f = message.getDomainRef(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getCredentialsRef(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getMaxContacts(); + if (f !== 0) { + writer.writeInt32( + 7, + f + ); + } + f = message.getExpires(); + if (f !== 0) { + writer.writeInt32( + 8, + f + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string username = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional Privacy privacy = 3; + * @return {!proto.fonoster.agents.v1beta2.Privacy} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getPrivacy = function() { + return /** @type {!proto.fonoster.agents.v1beta2.Privacy} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {!proto.fonoster.agents.v1beta2.Privacy} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setPrivacy = function(value) { + return jspb.Message.setProto3EnumField(this, 3, value); +}; + + +/** + * optional bool enabled = 4; + * @return {boolean} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getEnabled = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setEnabled = function(value) { + return jspb.Message.setProto3BooleanField(this, 4, value); +}; + + +/** + * optional string domain_ref = 5; + * @return {string} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getDomainRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setDomainRef = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string credentials_ref = 6; + * @return {string} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getCredentialsRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setCredentialsRef = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional int32 max_contacts = 7; + * @return {number} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getMaxContacts = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setMaxContacts = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + + +/** + * optional int32 expires = 8; + * @return {number} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getExpires = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setExpires = function(value) { + return jspb.Message.setProto3IntField(this, 8, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.CreateAgentResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.CreateAgentResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.CreateAgentResponse} + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.CreateAgentResponse; + return proto.fonoster.agents.v1beta2.CreateAgentResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.CreateAgentResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.CreateAgentResponse} + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.CreateAgentResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.CreateAgentResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentResponse} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.UpdateAgentRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + privacy: jspb.Message.getFieldWithDefault(msg, 3, 0), + enabled: jspb.Message.getBooleanFieldWithDefault(msg, 4, false), + domainRef: jspb.Message.getFieldWithDefault(msg, 5, ""), + credentialsRef: jspb.Message.getFieldWithDefault(msg, 6, ""), + maxContacts: jspb.Message.getFieldWithDefault(msg, 7, 0), + expires: jspb.Message.getFieldWithDefault(msg, 8, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.UpdateAgentRequest; + return proto.fonoster.agents.v1beta2.UpdateAgentRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {!proto.fonoster.agents.v1beta2.Privacy} */ (reader.readEnum()); + msg.setPrivacy(value); + break; + case 4: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setEnabled(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setDomainRef(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setCredentialsRef(value); + break; + case 7: + var value = /** @type {number} */ (reader.readInt32()); + msg.setMaxContacts(value); + break; + case 8: + var value = /** @type {number} */ (reader.readInt32()); + msg.setExpires(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.UpdateAgentRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getPrivacy(); + if (f !== 0.0) { + writer.writeEnum( + 3, + f + ); + } + f = message.getEnabled(); + if (f) { + writer.writeBool( + 4, + f + ); + } + f = message.getDomainRef(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getCredentialsRef(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getMaxContacts(); + if (f !== 0) { + writer.writeInt32( + 7, + f + ); + } + f = message.getExpires(); + if (f !== 0) { + writer.writeInt32( + 8, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional Privacy privacy = 3; + * @return {!proto.fonoster.agents.v1beta2.Privacy} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getPrivacy = function() { + return /** @type {!proto.fonoster.agents.v1beta2.Privacy} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {!proto.fonoster.agents.v1beta2.Privacy} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setPrivacy = function(value) { + return jspb.Message.setProto3EnumField(this, 3, value); +}; + + +/** + * optional bool enabled = 4; + * @return {boolean} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getEnabled = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setEnabled = function(value) { + return jspb.Message.setProto3BooleanField(this, 4, value); +}; + + +/** + * optional string domain_ref = 5; + * @return {string} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getDomainRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setDomainRef = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string credentials_ref = 6; + * @return {string} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getCredentialsRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setCredentialsRef = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional int32 max_contacts = 7; + * @return {number} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getMaxContacts = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setMaxContacts = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + + +/** + * optional int32 expires = 8; + * @return {number} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getExpires = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setExpires = function(value) { + return jspb.Message.setProto3IntField(this, 8, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.UpdateAgentResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.UpdateAgentResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentResponse} + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.UpdateAgentResponse; + return proto.fonoster.agents.v1beta2.UpdateAgentResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.UpdateAgentResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentResponse} + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.UpdateAgentResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.UpdateAgentResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentResponse} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.GetAgentRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.GetAgentRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.GetAgentRequest} + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.GetAgentRequest; + return proto.fonoster.agents.v1beta2.GetAgentRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.GetAgentRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.GetAgentRequest} + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.GetAgentRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.GetAgentRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.GetAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.DeleteAgentRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.DeleteAgentRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.DeleteAgentRequest} + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.DeleteAgentRequest; + return proto.fonoster.agents.v1beta2.DeleteAgentRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.DeleteAgentRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.DeleteAgentRequest} + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.DeleteAgentRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.DeleteAgentRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.DeleteAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.DeleteAgentResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.DeleteAgentResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.DeleteAgentResponse} + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.DeleteAgentResponse; + return proto.fonoster.agents.v1beta2.DeleteAgentResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.DeleteAgentResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.DeleteAgentResponse} + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.DeleteAgentResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.DeleteAgentResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.DeleteAgentResponse} returns this + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.ListAgentsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.ListAgentsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.ListAgentsRequest} + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.ListAgentsRequest; + return proto.fonoster.agents.v1beta2.ListAgentsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.ListAgentsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.ListAgentsRequest} + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.ListAgentsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.ListAgentsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.ListAgentsRequest} returns this + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.ListAgentsRequest} returns this + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.ListAgentsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.ListAgentsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.agents.v1beta2.Agent.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.ListAgentsResponse} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.ListAgentsResponse; + return proto.fonoster.agents.v1beta2.ListAgentsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.ListAgentsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.ListAgentsResponse} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.agents.v1beta2.Agent; + reader.readMessage(value,proto.fonoster.agents.v1beta2.Agent.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.ListAgentsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.ListAgentsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.agents.v1beta2.Agent.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Agent items = 1; + * @return {!Array} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.agents.v1beta2.Agent, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.agents.v1beta2.ListAgentsResponse} returns this +*/ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.agents.v1beta2.Agent=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.agents.v1beta2.Agent} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.agents.v1beta2.Agent, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.agents.v1beta2.ListAgentsResponse} returns this + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.ListAgentsResponse} returns this + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * @enum {number} + */ +proto.fonoster.agents.v1beta2.Privacy = { + NONE: 0, + PRIVATE: 1 +}; + +goog.object.extend(exports, proto.fonoster.agents.v1beta2); diff --git a/mods/sdk/src/generated/node/applications_grpc_pb.js b/mods/sdk/src/generated/node/applications_grpc_pb.js new file mode 100644 index 000000000..0606a0b67 --- /dev/null +++ b/mods/sdk/src/generated/node/applications_grpc_pb.js @@ -0,0 +1,201 @@ +// GENERATED CODE -- DO NOT EDIT! + +// Original file comments: +// +// Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) +// http://github.com/fonoster/fonoster +// +// This file is part of Fonoster +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +'use strict'; +var grpc = require('@grpc/grpc-js'); +var applications_pb = require('./applications_pb.js'); +var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); + +function serialize_fonoster_applications_v1beta2_Application(arg) { + if (!(arg instanceof applications_pb.Application)) { + throw new Error('Expected argument of type fonoster.applications.v1beta2.Application'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_applications_v1beta2_Application(buffer_arg) { + return applications_pb.Application.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_applications_v1beta2_CreateApplicationRequest(arg) { + if (!(arg instanceof applications_pb.CreateApplicationRequest)) { + throw new Error('Expected argument of type fonoster.applications.v1beta2.CreateApplicationRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_applications_v1beta2_CreateApplicationRequest(buffer_arg) { + return applications_pb.CreateApplicationRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_applications_v1beta2_CreateApplicationResponse(arg) { + if (!(arg instanceof applications_pb.CreateApplicationResponse)) { + throw new Error('Expected argument of type fonoster.applications.v1beta2.CreateApplicationResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_applications_v1beta2_CreateApplicationResponse(buffer_arg) { + return applications_pb.CreateApplicationResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_applications_v1beta2_DeleteApplicationRequest(arg) { + if (!(arg instanceof applications_pb.DeleteApplicationRequest)) { + throw new Error('Expected argument of type fonoster.applications.v1beta2.DeleteApplicationRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_applications_v1beta2_DeleteApplicationRequest(buffer_arg) { + return applications_pb.DeleteApplicationRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_applications_v1beta2_DeleteApplicationResponse(arg) { + if (!(arg instanceof applications_pb.DeleteApplicationResponse)) { + throw new Error('Expected argument of type fonoster.applications.v1beta2.DeleteApplicationResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_applications_v1beta2_DeleteApplicationResponse(buffer_arg) { + return applications_pb.DeleteApplicationResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_applications_v1beta2_GetApplicationRequest(arg) { + if (!(arg instanceof applications_pb.GetApplicationRequest)) { + throw new Error('Expected argument of type fonoster.applications.v1beta2.GetApplicationRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_applications_v1beta2_GetApplicationRequest(buffer_arg) { + return applications_pb.GetApplicationRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_applications_v1beta2_ListApplicationsRequest(arg) { + if (!(arg instanceof applications_pb.ListApplicationsRequest)) { + throw new Error('Expected argument of type fonoster.applications.v1beta2.ListApplicationsRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_applications_v1beta2_ListApplicationsRequest(buffer_arg) { + return applications_pb.ListApplicationsRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_applications_v1beta2_ListApplicationsResponse(arg) { + if (!(arg instanceof applications_pb.ListApplicationsResponse)) { + throw new Error('Expected argument of type fonoster.applications.v1beta2.ListApplicationsResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_applications_v1beta2_ListApplicationsResponse(buffer_arg) { + return applications_pb.ListApplicationsResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_applications_v1beta2_UpdateApplicationRequest(arg) { + if (!(arg instanceof applications_pb.UpdateApplicationRequest)) { + throw new Error('Expected argument of type fonoster.applications.v1beta2.UpdateApplicationRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_applications_v1beta2_UpdateApplicationRequest(buffer_arg) { + return applications_pb.UpdateApplicationRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_applications_v1beta2_UpdateApplicationResponse(arg) { + if (!(arg instanceof applications_pb.UpdateApplicationResponse)) { + throw new Error('Expected argument of type fonoster.applications.v1beta2.UpdateApplicationResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_applications_v1beta2_UpdateApplicationResponse(buffer_arg) { + return applications_pb.UpdateApplicationResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + + +// Applications service definition +var ApplicationsService = exports.ApplicationsService = { + // Create a new application +createApplication: { + path: '/fonoster.applications.v1beta2.Applications/CreateApplication', + requestStream: false, + responseStream: false, + requestType: applications_pb.CreateApplicationRequest, + responseType: applications_pb.CreateApplicationResponse, + requestSerialize: serialize_fonoster_applications_v1beta2_CreateApplicationRequest, + requestDeserialize: deserialize_fonoster_applications_v1beta2_CreateApplicationRequest, + responseSerialize: serialize_fonoster_applications_v1beta2_CreateApplicationResponse, + responseDeserialize: deserialize_fonoster_applications_v1beta2_CreateApplicationResponse, + }, + // Get an application +getApplication: { + path: '/fonoster.applications.v1beta2.Applications/GetApplication', + requestStream: false, + responseStream: false, + requestType: applications_pb.GetApplicationRequest, + responseType: applications_pb.Application, + requestSerialize: serialize_fonoster_applications_v1beta2_GetApplicationRequest, + requestDeserialize: deserialize_fonoster_applications_v1beta2_GetApplicationRequest, + responseSerialize: serialize_fonoster_applications_v1beta2_Application, + responseDeserialize: deserialize_fonoster_applications_v1beta2_Application, + }, + // List applications +listApplications: { + path: '/fonoster.applications.v1beta2.Applications/ListApplications', + requestStream: false, + responseStream: false, + requestType: applications_pb.ListApplicationsRequest, + responseType: applications_pb.ListApplicationsResponse, + requestSerialize: serialize_fonoster_applications_v1beta2_ListApplicationsRequest, + requestDeserialize: deserialize_fonoster_applications_v1beta2_ListApplicationsRequest, + responseSerialize: serialize_fonoster_applications_v1beta2_ListApplicationsResponse, + responseDeserialize: deserialize_fonoster_applications_v1beta2_ListApplicationsResponse, + }, + // Update an application +updateApplication: { + path: '/fonoster.applications.v1beta2.Applications/UpdateApplication', + requestStream: false, + responseStream: false, + requestType: applications_pb.UpdateApplicationRequest, + responseType: applications_pb.UpdateApplicationResponse, + requestSerialize: serialize_fonoster_applications_v1beta2_UpdateApplicationRequest, + requestDeserialize: deserialize_fonoster_applications_v1beta2_UpdateApplicationRequest, + responseSerialize: serialize_fonoster_applications_v1beta2_UpdateApplicationResponse, + responseDeserialize: deserialize_fonoster_applications_v1beta2_UpdateApplicationResponse, + }, + // Delete an application +deleteApplication: { + path: '/fonoster.applications.v1beta2.Applications/DeleteApplication', + requestStream: false, + responseStream: false, + requestType: applications_pb.DeleteApplicationRequest, + responseType: applications_pb.DeleteApplicationResponse, + requestSerialize: serialize_fonoster_applications_v1beta2_DeleteApplicationRequest, + requestDeserialize: deserialize_fonoster_applications_v1beta2_DeleteApplicationRequest, + responseSerialize: serialize_fonoster_applications_v1beta2_DeleteApplicationResponse, + responseDeserialize: deserialize_fonoster_applications_v1beta2_DeleteApplicationResponse, + }, +}; + +exports.ApplicationsClient = grpc.makeGenericClientConstructor(ApplicationsService); diff --git a/mods/sdk/src/generated/node/applications_pb.js b/mods/sdk/src/generated/node/applications_pb.js new file mode 100644 index 000000000..0fb065aa2 --- /dev/null +++ b/mods/sdk/src/generated/node/applications_pb.js @@ -0,0 +1,2652 @@ +// source: applications.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); +goog.object.extend(proto, google_protobuf_struct_pb); +goog.exportSymbol('proto.fonoster.applications.v1beta2.Application', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.ApplicationType', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.CreateApplicationRequest', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.CreateApplicationResponse', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.DeleteApplicationRequest', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.DeleteApplicationResponse', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.GetApplicationRequest', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.ListApplicationsRequest', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.ListApplicationsResponse', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.ProductContainer', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.UpdateApplicationRequest', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.UpdateApplicationResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.ProductContainer = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.ProductContainer, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.ProductContainer.displayName = 'proto.fonoster.applications.v1beta2.ProductContainer'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.Application = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.Application, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.Application.displayName = 'proto.fonoster.applications.v1beta2.Application'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.CreateApplicationRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.CreateApplicationRequest.displayName = 'proto.fonoster.applications.v1beta2.CreateApplicationRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.CreateApplicationResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.CreateApplicationResponse.displayName = 'proto.fonoster.applications.v1beta2.CreateApplicationResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.GetApplicationRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.GetApplicationRequest.displayName = 'proto.fonoster.applications.v1beta2.GetApplicationRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.ListApplicationsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.ListApplicationsRequest.displayName = 'proto.fonoster.applications.v1beta2.ListApplicationsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.applications.v1beta2.ListApplicationsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.ListApplicationsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.ListApplicationsResponse.displayName = 'proto.fonoster.applications.v1beta2.ListApplicationsResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.UpdateApplicationRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.UpdateApplicationRequest.displayName = 'proto.fonoster.applications.v1beta2.UpdateApplicationRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.UpdateApplicationResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.UpdateApplicationResponse.displayName = 'proto.fonoster.applications.v1beta2.UpdateApplicationResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.DeleteApplicationRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.DeleteApplicationRequest.displayName = 'proto.fonoster.applications.v1beta2.DeleteApplicationRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.DeleteApplicationResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.DeleteApplicationResponse.displayName = 'proto.fonoster.applications.v1beta2.DeleteApplicationResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.ProductContainer.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.ProductContainer} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.ProductContainer.toObject = function(includeInstance, msg) { + var f, obj = { + productRef: jspb.Message.getFieldWithDefault(msg, 1, ""), + config: (f = msg.getConfig()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f), + credentials: (f = msg.getCredentials()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.ProductContainer; + return proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.ProductContainer} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setProductRef(value); + break; + case 2: + var value = new google_protobuf_struct_pb.Struct; + reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); + msg.setConfig(value); + break; + case 3: + var value = new google_protobuf_struct_pb.Struct; + reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); + msg.setCredentials(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.ProductContainer} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getProductRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getConfig(); + if (f != null) { + writer.writeMessage( + 2, + f, + google_protobuf_struct_pb.Struct.serializeBinaryToWriter + ); + } + f = message.getCredentials(); + if (f != null) { + writer.writeMessage( + 3, + f, + google_protobuf_struct_pb.Struct.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string product_ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.getProductRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} returns this + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.setProductRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional google.protobuf.Struct config = 2; + * @return {?proto.google.protobuf.Struct} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.getConfig = function() { + return /** @type{?proto.google.protobuf.Struct} */ ( + jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 2)); +}; + + +/** + * @param {?proto.google.protobuf.Struct|undefined} value + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} returns this +*/ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.setConfig = function(value) { + return jspb.Message.setWrapperField(this, 2, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} returns this + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.clearConfig = function() { + return this.setConfig(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.hasConfig = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional google.protobuf.Struct credentials = 3; + * @return {?proto.google.protobuf.Struct} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.getCredentials = function() { + return /** @type{?proto.google.protobuf.Struct} */ ( + jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 3)); +}; + + +/** + * @param {?proto.google.protobuf.Struct|undefined} value + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} returns this +*/ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.setCredentials = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} returns this + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.clearCredentials = function() { + return this.setCredentials(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.hasCredentials = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.Application.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.Application.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.Application} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.Application.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + type: jspb.Message.getFieldWithDefault(msg, 3, 0), + endpoint: jspb.Message.getFieldWithDefault(msg, 4, ""), + textToSpeech: (f = msg.getTextToSpeech()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + speechToText: (f = msg.getSpeechToText()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + intelligence: (f = msg.getIntelligence()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + createdAt: jspb.Message.getFieldWithDefault(msg, 8, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 9, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.Application} + */ +proto.fonoster.applications.v1beta2.Application.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.Application; + return proto.fonoster.applications.v1beta2.Application.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.Application} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.Application} + */ +proto.fonoster.applications.v1beta2.Application.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {!proto.fonoster.applications.v1beta2.ApplicationType} */ (reader.readEnum()); + msg.setType(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setEndpoint(value); + break; + case 5: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setTextToSpeech(value); + break; + case 6: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setSpeechToText(value); + break; + case 7: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setIntelligence(value); + break; + case 8: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 9: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.Application.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.Application.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.Application} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.Application.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getType(); + if (f !== 0.0) { + writer.writeEnum( + 3, + f + ); + } + f = message.getEndpoint(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getTextToSpeech(); + if (f != null) { + writer.writeMessage( + 5, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getSpeechToText(); + if (f != null) { + writer.writeMessage( + 6, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getIntelligence(); + if (f != null) { + writer.writeMessage( + 7, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 8, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 9, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional ApplicationType type = 3; + * @return {!proto.fonoster.applications.v1beta2.ApplicationType} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getType = function() { + return /** @type {!proto.fonoster.applications.v1beta2.ApplicationType} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {!proto.fonoster.applications.v1beta2.ApplicationType} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.setType = function(value) { + return jspb.Message.setProto3EnumField(this, 3, value); +}; + + +/** + * optional string endpoint = 4; + * @return {string} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getEndpoint = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.setEndpoint = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional ProductContainer text_to_speech = 5; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getTextToSpeech = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 5)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this +*/ +proto.fonoster.applications.v1beta2.Application.prototype.setTextToSpeech = function(value) { + return jspb.Message.setWrapperField(this, 5, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.clearTextToSpeech = function() { + return this.setTextToSpeech(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.Application.prototype.hasTextToSpeech = function() { + return jspb.Message.getField(this, 5) != null; +}; + + +/** + * optional ProductContainer speech_to_text = 6; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getSpeechToText = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 6)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this +*/ +proto.fonoster.applications.v1beta2.Application.prototype.setSpeechToText = function(value) { + return jspb.Message.setWrapperField(this, 6, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.clearSpeechToText = function() { + return this.setSpeechToText(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.Application.prototype.hasSpeechToText = function() { + return jspb.Message.getField(this, 6) != null; +}; + + +/** + * optional ProductContainer intelligence = 7; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getIntelligence = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 7)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this +*/ +proto.fonoster.applications.v1beta2.Application.prototype.setIntelligence = function(value) { + return jspb.Message.setWrapperField(this, 7, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.clearIntelligence = function() { + return this.setIntelligence(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.Application.prototype.hasIntelligence = function() { + return jspb.Message.getField(this, 7) != null; +}; + + +/** + * optional int32 created_at = 8; + * @return {number} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 8, value); +}; + + +/** + * optional int32 updated_at = 9; + * @return {number} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 9, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.CreateApplicationRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + type: jspb.Message.getFieldWithDefault(msg, 2, 0), + endpoint: jspb.Message.getFieldWithDefault(msg, 3, ""), + textToSpeech: (f = msg.getTextToSpeech()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + speechToText: (f = msg.getSpeechToText()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + intelligence: (f = msg.getIntelligence()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.CreateApplicationRequest; + return proto.fonoster.applications.v1beta2.CreateApplicationRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {!proto.fonoster.applications.v1beta2.ApplicationType} */ (reader.readEnum()); + msg.setType(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setEndpoint(value); + break; + case 4: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setTextToSpeech(value); + break; + case 5: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setSpeechToText(value); + break; + case 6: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setIntelligence(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.CreateApplicationRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getType(); + if (f !== 0.0) { + writer.writeEnum( + 2, + f + ); + } + f = message.getEndpoint(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getTextToSpeech(); + if (f != null) { + writer.writeMessage( + 4, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getSpeechToText(); + if (f != null) { + writer.writeMessage( + 5, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getIntelligence(); + if (f != null) { + writer.writeMessage( + 6, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional ApplicationType type = 2; + * @return {!proto.fonoster.applications.v1beta2.ApplicationType} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.getType = function() { + return /** @type {!proto.fonoster.applications.v1beta2.ApplicationType} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {!proto.fonoster.applications.v1beta2.ApplicationType} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.setType = function(value) { + return jspb.Message.setProto3EnumField(this, 2, value); +}; + + +/** + * optional string endpoint = 3; + * @return {string} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.getEndpoint = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.setEndpoint = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional ProductContainer text_to_speech = 4; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.getTextToSpeech = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 4)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this +*/ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.setTextToSpeech = function(value) { + return jspb.Message.setWrapperField(this, 4, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.clearTextToSpeech = function() { + return this.setTextToSpeech(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.hasTextToSpeech = function() { + return jspb.Message.getField(this, 4) != null; +}; + + +/** + * optional ProductContainer speech_to_text = 5; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.getSpeechToText = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 5)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this +*/ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.setSpeechToText = function(value) { + return jspb.Message.setWrapperField(this, 5, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.clearSpeechToText = function() { + return this.setSpeechToText(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.hasSpeechToText = function() { + return jspb.Message.getField(this, 5) != null; +}; + + +/** + * optional ProductContainer intelligence = 6; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.getIntelligence = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 6)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this +*/ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.setIntelligence = function(value) { + return jspb.Message.setWrapperField(this, 6, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.clearIntelligence = function() { + return this.setIntelligence(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.hasIntelligence = function() { + return jspb.Message.getField(this, 6) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.CreateApplicationResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.CreateApplicationResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationResponse} + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.CreateApplicationResponse; + return proto.fonoster.applications.v1beta2.CreateApplicationResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.CreateApplicationResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationResponse} + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.CreateApplicationResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.CreateApplicationResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationResponse} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.GetApplicationRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.GetApplicationRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.GetApplicationRequest} + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.GetApplicationRequest; + return proto.fonoster.applications.v1beta2.GetApplicationRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.GetApplicationRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.GetApplicationRequest} + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.GetApplicationRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.GetApplicationRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.GetApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.ListApplicationsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.ListApplicationsRequest; + return proto.fonoster.applications.v1beta2.ListApplicationsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.ListApplicationsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} returns this + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} returns this + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.ListApplicationsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.applications.v1beta2.Application.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.ListApplicationsResponse; + return proto.fonoster.applications.v1beta2.ListApplicationsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.applications.v1beta2.Application; + reader.readMessage(value,proto.fonoster.applications.v1beta2.Application.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.ListApplicationsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.applications.v1beta2.Application.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Application items = 1; + * @return {!Array} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.applications.v1beta2.Application, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} returns this +*/ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.applications.v1beta2.Application=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.applications.v1beta2.Application} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.applications.v1beta2.Application, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} returns this + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} returns this + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.UpdateApplicationRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + type: jspb.Message.getFieldWithDefault(msg, 3, 0), + endpoint: jspb.Message.getFieldWithDefault(msg, 4, ""), + textToSpeech: (f = msg.getTextToSpeech()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + speechToText: (f = msg.getSpeechToText()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + intelligence: (f = msg.getIntelligence()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.UpdateApplicationRequest; + return proto.fonoster.applications.v1beta2.UpdateApplicationRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {!proto.fonoster.applications.v1beta2.ApplicationType} */ (reader.readEnum()); + msg.setType(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setEndpoint(value); + break; + case 5: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setTextToSpeech(value); + break; + case 6: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setSpeechToText(value); + break; + case 7: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setIntelligence(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.UpdateApplicationRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getType(); + if (f !== 0.0) { + writer.writeEnum( + 3, + f + ); + } + f = message.getEndpoint(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getTextToSpeech(); + if (f != null) { + writer.writeMessage( + 5, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getSpeechToText(); + if (f != null) { + writer.writeMessage( + 6, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getIntelligence(); + if (f != null) { + writer.writeMessage( + 7, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional ApplicationType type = 3; + * @return {!proto.fonoster.applications.v1beta2.ApplicationType} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getType = function() { + return /** @type {!proto.fonoster.applications.v1beta2.ApplicationType} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {!proto.fonoster.applications.v1beta2.ApplicationType} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setType = function(value) { + return jspb.Message.setProto3EnumField(this, 3, value); +}; + + +/** + * optional string endpoint = 4; + * @return {string} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getEndpoint = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setEndpoint = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional ProductContainer text_to_speech = 5; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getTextToSpeech = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 5)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this +*/ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setTextToSpeech = function(value) { + return jspb.Message.setWrapperField(this, 5, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.clearTextToSpeech = function() { + return this.setTextToSpeech(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.hasTextToSpeech = function() { + return jspb.Message.getField(this, 5) != null; +}; + + +/** + * optional ProductContainer speech_to_text = 6; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getSpeechToText = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 6)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this +*/ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setSpeechToText = function(value) { + return jspb.Message.setWrapperField(this, 6, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.clearSpeechToText = function() { + return this.setSpeechToText(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.hasSpeechToText = function() { + return jspb.Message.getField(this, 6) != null; +}; + + +/** + * optional ProductContainer intelligence = 7; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getIntelligence = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 7)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this +*/ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setIntelligence = function(value) { + return jspb.Message.setWrapperField(this, 7, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.clearIntelligence = function() { + return this.setIntelligence(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.hasIntelligence = function() { + return jspb.Message.getField(this, 7) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.UpdateApplicationResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.UpdateApplicationResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationResponse} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.UpdateApplicationResponse; + return proto.fonoster.applications.v1beta2.UpdateApplicationResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.UpdateApplicationResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationResponse} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.UpdateApplicationResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.UpdateApplicationResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationResponse} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.DeleteApplicationRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.DeleteApplicationRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.DeleteApplicationRequest} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.DeleteApplicationRequest; + return proto.fonoster.applications.v1beta2.DeleteApplicationRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.DeleteApplicationRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.DeleteApplicationRequest} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.DeleteApplicationRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.DeleteApplicationRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.DeleteApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.DeleteApplicationResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.DeleteApplicationResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.DeleteApplicationResponse} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.DeleteApplicationResponse; + return proto.fonoster.applications.v1beta2.DeleteApplicationResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.DeleteApplicationResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.DeleteApplicationResponse} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.DeleteApplicationResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.DeleteApplicationResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.DeleteApplicationResponse} returns this + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * @enum {number} + */ +proto.fonoster.applications.v1beta2.ApplicationType = { + EXTERNAL: 0, + AUTOPILOT: 1 +}; + +goog.object.extend(exports, proto.fonoster.applications.v1beta2); diff --git a/mods/sdk/src/generated/node/calls_grpc_pb.js b/mods/sdk/src/generated/node/calls_grpc_pb.js new file mode 100644 index 000000000..817c00489 --- /dev/null +++ b/mods/sdk/src/generated/node/calls_grpc_pb.js @@ -0,0 +1,166 @@ +// GENERATED CODE -- DO NOT EDIT! + +// Original file comments: +// +// Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) +// http://github.com/fonoster/fonoster +// +// This file is part of Fonoster +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +'use strict'; +var grpc = require('@grpc/grpc-js'); +var calls_pb = require('./calls_pb.js'); + +function serialize_fonoster_calls_v1beta2_CallDetailRecord(arg) { + if (!(arg instanceof calls_pb.CallDetailRecord)) { + throw new Error('Expected argument of type fonoster.calls.v1beta2.CallDetailRecord'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_calls_v1beta2_CallDetailRecord(buffer_arg) { + return calls_pb.CallDetailRecord.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_calls_v1beta2_CreateCallRequest(arg) { + if (!(arg instanceof calls_pb.CreateCallRequest)) { + throw new Error('Expected argument of type fonoster.calls.v1beta2.CreateCallRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_calls_v1beta2_CreateCallRequest(buffer_arg) { + return calls_pb.CreateCallRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_calls_v1beta2_CreateCallResponse(arg) { + if (!(arg instanceof calls_pb.CreateCallResponse)) { + throw new Error('Expected argument of type fonoster.calls.v1beta2.CreateCallResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_calls_v1beta2_CreateCallResponse(buffer_arg) { + return calls_pb.CreateCallResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_calls_v1beta2_GetCallRequest(arg) { + if (!(arg instanceof calls_pb.GetCallRequest)) { + throw new Error('Expected argument of type fonoster.calls.v1beta2.GetCallRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_calls_v1beta2_GetCallRequest(buffer_arg) { + return calls_pb.GetCallRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_calls_v1beta2_ListCallsRequest(arg) { + if (!(arg instanceof calls_pb.ListCallsRequest)) { + throw new Error('Expected argument of type fonoster.calls.v1beta2.ListCallsRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_calls_v1beta2_ListCallsRequest(buffer_arg) { + return calls_pb.ListCallsRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_calls_v1beta2_ListCallsResponse(arg) { + if (!(arg instanceof calls_pb.ListCallsResponse)) { + throw new Error('Expected argument of type fonoster.calls.v1beta2.ListCallsResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_calls_v1beta2_ListCallsResponse(buffer_arg) { + return calls_pb.ListCallsResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_calls_v1beta2_TrackCallRequest(arg) { + if (!(arg instanceof calls_pb.TrackCallRequest)) { + throw new Error('Expected argument of type fonoster.calls.v1beta2.TrackCallRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_calls_v1beta2_TrackCallRequest(buffer_arg) { + return calls_pb.TrackCallRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_calls_v1beta2_TrackCallResponse(arg) { + if (!(arg instanceof calls_pb.TrackCallResponse)) { + throw new Error('Expected argument of type fonoster.calls.v1beta2.TrackCallResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_calls_v1beta2_TrackCallResponse(buffer_arg) { + return calls_pb.TrackCallResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + + +// Calls service definition +var CallsService = exports.CallsService = { + // Call a number and returns the call status +createCall: { + path: '/fonoster.calls.v1beta2.Calls/CreateCall', + requestStream: false, + responseStream: false, + requestType: calls_pb.CreateCallRequest, + responseType: calls_pb.CreateCallResponse, + requestSerialize: serialize_fonoster_calls_v1beta2_CreateCallRequest, + requestDeserialize: deserialize_fonoster_calls_v1beta2_CreateCallRequest, + responseSerialize: serialize_fonoster_calls_v1beta2_CreateCallResponse, + responseDeserialize: deserialize_fonoster_calls_v1beta2_CreateCallResponse, + }, + // Get a list of Call Detail Records +listCalls: { + path: '/fonoster.calls.v1beta2.Calls/ListCalls', + requestStream: false, + responseStream: false, + requestType: calls_pb.ListCallsRequest, + responseType: calls_pb.ListCallsResponse, + requestSerialize: serialize_fonoster_calls_v1beta2_ListCallsRequest, + requestDeserialize: deserialize_fonoster_calls_v1beta2_ListCallsRequest, + responseSerialize: serialize_fonoster_calls_v1beta2_ListCallsResponse, + responseDeserialize: deserialize_fonoster_calls_v1beta2_ListCallsResponse, + }, + // Get a Call Detail Record +getCall: { + path: '/fonoster.calls.v1beta2.Calls/GetCall', + requestStream: false, + responseStream: false, + requestType: calls_pb.GetCallRequest, + responseType: calls_pb.CallDetailRecord, + requestSerialize: serialize_fonoster_calls_v1beta2_GetCallRequest, + requestDeserialize: deserialize_fonoster_calls_v1beta2_GetCallRequest, + responseSerialize: serialize_fonoster_calls_v1beta2_CallDetailRecord, + responseDeserialize: deserialize_fonoster_calls_v1beta2_CallDetailRecord, + }, + // Stream call status +trackCall: { + path: '/fonoster.calls.v1beta2.Calls/TrackCall', + requestStream: false, + responseStream: true, + requestType: calls_pb.TrackCallRequest, + responseType: calls_pb.TrackCallResponse, + requestSerialize: serialize_fonoster_calls_v1beta2_TrackCallRequest, + requestDeserialize: deserialize_fonoster_calls_v1beta2_TrackCallRequest, + responseSerialize: serialize_fonoster_calls_v1beta2_TrackCallResponse, + responseDeserialize: deserialize_fonoster_calls_v1beta2_TrackCallResponse, + }, +}; + +exports.CallsClient = grpc.makeGenericClientConstructor(CallsService); diff --git a/mods/sdk/src/generated/node/calls_pb.js b/mods/sdk/src/generated/node/calls_pb.js new file mode 100644 index 000000000..d3c00e360 --- /dev/null +++ b/mods/sdk/src/generated/node/calls_pb.js @@ -0,0 +1,1915 @@ +// source: calls.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.calls.v1beta2.CallDetailRecord', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.CallDirection', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.CallStatus', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.CallType', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.CreateCallRequest', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.CreateCallResponse', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.GetCallRequest', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.ListCallsRequest', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.ListCallsResponse', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.TrackCallRequest', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.TrackCallResponse', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.TrackCallResponse.Status', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.CallDetailRecord = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.CallDetailRecord, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.CallDetailRecord.displayName = 'proto.fonoster.calls.v1beta2.CallDetailRecord'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.CreateCallRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.CreateCallRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.CreateCallRequest.displayName = 'proto.fonoster.calls.v1beta2.CreateCallRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.CreateCallResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.CreateCallResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.CreateCallResponse.displayName = 'proto.fonoster.calls.v1beta2.CreateCallResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.ListCallsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.ListCallsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.ListCallsRequest.displayName = 'proto.fonoster.calls.v1beta2.ListCallsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.ListCallsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.calls.v1beta2.ListCallsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.ListCallsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.ListCallsResponse.displayName = 'proto.fonoster.calls.v1beta2.ListCallsResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.GetCallRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.GetCallRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.GetCallRequest.displayName = 'proto.fonoster.calls.v1beta2.GetCallRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.TrackCallRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.TrackCallRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.TrackCallRequest.displayName = 'proto.fonoster.calls.v1beta2.TrackCallRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.TrackCallResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.TrackCallResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.TrackCallResponse.displayName = 'proto.fonoster.calls.v1beta2.TrackCallResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.CallDetailRecord.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.CallDetailRecord} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + callId: jspb.Message.getFieldWithDefault(msg, 2, ""), + type: jspb.Message.getFieldWithDefault(msg, 3, 0), + status: jspb.Message.getFieldWithDefault(msg, 4, 0), + startedAt: jspb.Message.getFieldWithDefault(msg, 5, 0), + endedAt: jspb.Message.getFieldWithDefault(msg, 6, 0), + from: jspb.Message.getFieldWithDefault(msg, 7, ""), + to: jspb.Message.getFieldWithDefault(msg, 8, ""), + duration: jspb.Message.getFieldWithDefault(msg, 9, 0), + direction: jspb.Message.getFieldWithDefault(msg, 10, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.CallDetailRecord; + return proto.fonoster.calls.v1beta2.CallDetailRecord.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.CallDetailRecord} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setCallId(value); + break; + case 3: + var value = /** @type {!proto.fonoster.calls.v1beta2.CallType} */ (reader.readEnum()); + msg.setType(value); + break; + case 4: + var value = /** @type {!proto.fonoster.calls.v1beta2.CallStatus} */ (reader.readEnum()); + msg.setStatus(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setStartedAt(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setEndedAt(value); + break; + case 7: + var value = /** @type {string} */ (reader.readString()); + msg.setFrom(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setTo(value); + break; + case 9: + var value = /** @type {number} */ (reader.readInt32()); + msg.setDuration(value); + break; + case 10: + var value = /** @type {!proto.fonoster.calls.v1beta2.CallDirection} */ (reader.readEnum()); + msg.setDirection(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.CallDetailRecord.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.CallDetailRecord} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getCallId(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getType(); + if (f !== 0.0) { + writer.writeEnum( + 3, + f + ); + } + f = message.getStatus(); + if (f !== 0.0) { + writer.writeEnum( + 4, + f + ); + } + f = message.getStartedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } + f = message.getEndedAt(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } + f = message.getFrom(); + if (f.length > 0) { + writer.writeString( + 7, + f + ); + } + f = message.getTo(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } + f = message.getDuration(); + if (f !== 0) { + writer.writeInt32( + 9, + f + ); + } + f = message.getDirection(); + if (f !== 0.0) { + writer.writeEnum( + 10, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string call_id = 2; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getCallId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setCallId = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional CallType type = 3; + * @return {!proto.fonoster.calls.v1beta2.CallType} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getType = function() { + return /** @type {!proto.fonoster.calls.v1beta2.CallType} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.CallType} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setType = function(value) { + return jspb.Message.setProto3EnumField(this, 3, value); +}; + + +/** + * optional CallStatus status = 4; + * @return {!proto.fonoster.calls.v1beta2.CallStatus} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getStatus = function() { + return /** @type {!proto.fonoster.calls.v1beta2.CallStatus} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.CallStatus} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setStatus = function(value) { + return jspb.Message.setProto3EnumField(this, 4, value); +}; + + +/** + * optional int32 started_at = 5; + * @return {number} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getStartedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setStartedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional int32 ended_at = 6; + * @return {number} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getEndedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setEndedAt = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + +/** + * optional string from = 7; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getFrom = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setFrom = function(value) { + return jspb.Message.setProto3StringField(this, 7, value); +}; + + +/** + * optional string to = 8; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getTo = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setTo = function(value) { + return jspb.Message.setProto3StringField(this, 8, value); +}; + + +/** + * optional int32 duration = 9; + * @return {number} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getDuration = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setDuration = function(value) { + return jspb.Message.setProto3IntField(this, 9, value); +}; + + +/** + * optional CallDirection direction = 10; + * @return {!proto.fonoster.calls.v1beta2.CallDirection} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getDirection = function() { + return /** @type {!proto.fonoster.calls.v1beta2.CallDirection} */ (jspb.Message.getFieldWithDefault(this, 10, 0)); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.CallDirection} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setDirection = function(value) { + return jspb.Message.setProto3EnumField(this, 10, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.CreateCallRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.CreateCallRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.toObject = function(includeInstance, msg) { + var f, obj = { + from: jspb.Message.getFieldWithDefault(msg, 1, ""), + to: jspb.Message.getFieldWithDefault(msg, 2, ""), + appRef: jspb.Message.getFieldWithDefault(msg, 3, ""), + timeout: jspb.Message.getFieldWithDefault(msg, 4, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.CreateCallRequest} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.CreateCallRequest; + return proto.fonoster.calls.v1beta2.CreateCallRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.CreateCallRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.CreateCallRequest} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setFrom(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setTo(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAppRef(value); + break; + case 4: + var value = /** @type {number} */ (reader.readInt32()); + msg.setTimeout(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.CreateCallRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.CreateCallRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getFrom(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getTo(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAppRef(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getTimeout(); + if (f !== 0) { + writer.writeInt32( + 4, + f + ); + } +}; + + +/** + * optional string from = 1; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.getFrom = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CreateCallRequest} returns this + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.setFrom = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string to = 2; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.getTo = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CreateCallRequest} returns this + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.setTo = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string app_ref = 3; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.getAppRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CreateCallRequest} returns this + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.setAppRef = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional int32 timeout = 4; + * @return {number} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.getTimeout = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.calls.v1beta2.CreateCallRequest} returns this + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.setTimeout = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.CreateCallResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.CreateCallResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.CreateCallResponse} + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.CreateCallResponse; + return proto.fonoster.calls.v1beta2.CreateCallResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.CreateCallResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.CreateCallResponse} + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.CreateCallResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.CreateCallResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CreateCallResponse} returns this + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.ListCallsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.ListCallsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + after: jspb.Message.getFieldWithDefault(msg, 1, ""), + before: jspb.Message.getFieldWithDefault(msg, 2, ""), + type: jspb.Message.getFieldWithDefault(msg, 3, 0), + status: jspb.Message.getFieldWithDefault(msg, 4, 0), + from: jspb.Message.getFieldWithDefault(msg, 5, ""), + to: jspb.Message.getFieldWithDefault(msg, 6, ""), + pageSize: jspb.Message.getFieldWithDefault(msg, 7, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 8, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.ListCallsRequest; + return proto.fonoster.calls.v1beta2.ListCallsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.ListCallsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAfter(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setBefore(value); + break; + case 3: + var value = /** @type {!proto.fonoster.calls.v1beta2.CallType} */ (reader.readEnum()); + msg.setType(value); + break; + case 4: + var value = /** @type {!proto.fonoster.calls.v1beta2.CallStatus} */ (reader.readEnum()); + msg.setStatus(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setFrom(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setTo(value); + break; + case 7: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.ListCallsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.ListCallsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAfter(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getBefore(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getType(); + if (f !== 0.0) { + writer.writeEnum( + 3, + f + ); + } + f = message.getStatus(); + if (f !== 0.0) { + writer.writeEnum( + 4, + f + ); + } + f = message.getFrom(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getTo(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 7, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } +}; + + +/** + * optional string after = 1; + * @return {string} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getAfter = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setAfter = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string before = 2; + * @return {string} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getBefore = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setBefore = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional CallType type = 3; + * @return {!proto.fonoster.calls.v1beta2.CallType} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getType = function() { + return /** @type {!proto.fonoster.calls.v1beta2.CallType} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.CallType} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setType = function(value) { + return jspb.Message.setProto3EnumField(this, 3, value); +}; + + +/** + * optional CallStatus status = 4; + * @return {!proto.fonoster.calls.v1beta2.CallStatus} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getStatus = function() { + return /** @type {!proto.fonoster.calls.v1beta2.CallStatus} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.CallStatus} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setStatus = function(value) { + return jspb.Message.setProto3EnumField(this, 4, value); +}; + + +/** + * optional string from = 5; + * @return {string} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getFrom = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setFrom = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string to = 6; + * @return {string} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getTo = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setTo = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional int32 page_size = 7; + * @return {number} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + + +/** + * optional string page_token = 8; + * @return {string} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 8, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.ListCallsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.ListCallsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.calls.v1beta2.CallDetailRecord.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.ListCallsResponse} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.ListCallsResponse; + return proto.fonoster.calls.v1beta2.ListCallsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.ListCallsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.ListCallsResponse} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.calls.v1beta2.CallDetailRecord; + reader.readMessage(value,proto.fonoster.calls.v1beta2.CallDetailRecord.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.ListCallsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.ListCallsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.calls.v1beta2.CallDetailRecord.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated CallDetailRecord items = 1; + * @return {!Array} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.calls.v1beta2.CallDetailRecord, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsResponse} returns this +*/ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.CallDetailRecord=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.calls.v1beta2.CallDetailRecord, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.calls.v1beta2.ListCallsResponse} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsResponse} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.GetCallRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.GetCallRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.GetCallRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.GetCallRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.GetCallRequest} + */ +proto.fonoster.calls.v1beta2.GetCallRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.GetCallRequest; + return proto.fonoster.calls.v1beta2.GetCallRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.GetCallRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.GetCallRequest} + */ +proto.fonoster.calls.v1beta2.GetCallRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.GetCallRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.GetCallRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.GetCallRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.GetCallRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.calls.v1beta2.GetCallRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.GetCallRequest} returns this + */ +proto.fonoster.calls.v1beta2.GetCallRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.TrackCallRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.TrackCallRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.TrackCallRequest} + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.TrackCallRequest; + return proto.fonoster.calls.v1beta2.TrackCallRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.TrackCallRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.TrackCallRequest} + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.TrackCallRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.TrackCallRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.TrackCallRequest} returns this + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.TrackCallResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.TrackCallResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.toObject = function(includeInstance, msg) { + var f, obj = { + status: jspb.Message.getFieldWithDefault(msg, 1, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.TrackCallResponse} + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.TrackCallResponse; + return proto.fonoster.calls.v1beta2.TrackCallResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.TrackCallResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.TrackCallResponse} + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.fonoster.calls.v1beta2.TrackCallResponse.Status} */ (reader.readEnum()); + msg.setStatus(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.TrackCallResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.TrackCallResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getStatus(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.Status = { + TRYING: 0, + CANCEL: 1, + ANSWER: 2, + BUSY: 3, + PROGRESS: 4, + NOANSWER: 5, + FAILED: 6 +}; + +/** + * optional Status status = 1; + * @return {!proto.fonoster.calls.v1beta2.TrackCallResponse.Status} + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.prototype.getStatus = function() { + return /** @type {!proto.fonoster.calls.v1beta2.TrackCallResponse.Status} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.TrackCallResponse.Status} value + * @return {!proto.fonoster.calls.v1beta2.TrackCallResponse} returns this + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.prototype.setStatus = function(value) { + return jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * @enum {number} + */ +proto.fonoster.calls.v1beta2.CallType = { + SIP_ORIGINATED: 0, + API_ORIGINATED: 1 +}; + +/** + * @enum {number} + */ +proto.fonoster.calls.v1beta2.CallStatus = { + UNKNOWN: 0, + NORMAL_CLEARING: 1, + CALL_REJECTED: 2, + UNALLOCATED: 3, + NO_USER_RESPONSE: 4, + NO_ROUTE_DESTINATION: 5, + NO_ANSWER: 6, + USER_BUSY: 7, + NOT_ACCEPTABLE_HERE: 8, + SERVICE_UNAVAILABLE: 9, + INVALID_NUMBER_FORMAT: 10 +}; + +/** + * @enum {number} + */ +proto.fonoster.calls.v1beta2.CallDirection = { + FROM_PSTN: 0, + TO_PSTN: 1, + INTRA_NETWORK: 2 +}; + +goog.object.extend(exports, proto.fonoster.calls.v1beta2); diff --git a/mods/sdk/src/generated/node/credentials_grpc_pb.js b/mods/sdk/src/generated/node/credentials_grpc_pb.js new file mode 100644 index 000000000..cceb13031 --- /dev/null +++ b/mods/sdk/src/generated/node/credentials_grpc_pb.js @@ -0,0 +1,200 @@ +// GENERATED CODE -- DO NOT EDIT! + +// Original file comments: +// +// Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) +// http://github.com/fonoster/fonoster +// +// This file is part of Fonoster +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +'use strict'; +var grpc = require('@grpc/grpc-js'); +var credentials_pb = require('./credentials_pb.js'); + +function serialize_fonoster_credentials_v1beta2_CreateCredentialsRequest(arg) { + if (!(arg instanceof credentials_pb.CreateCredentialsRequest)) { + throw new Error('Expected argument of type fonoster.credentials.v1beta2.CreateCredentialsRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_credentials_v1beta2_CreateCredentialsRequest(buffer_arg) { + return credentials_pb.CreateCredentialsRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_credentials_v1beta2_CreateCredentialsResponse(arg) { + if (!(arg instanceof credentials_pb.CreateCredentialsResponse)) { + throw new Error('Expected argument of type fonoster.credentials.v1beta2.CreateCredentialsResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_credentials_v1beta2_CreateCredentialsResponse(buffer_arg) { + return credentials_pb.CreateCredentialsResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_credentials_v1beta2_Credentials(arg) { + if (!(arg instanceof credentials_pb.Credentials)) { + throw new Error('Expected argument of type fonoster.credentials.v1beta2.Credentials'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_credentials_v1beta2_Credentials(buffer_arg) { + return credentials_pb.Credentials.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_credentials_v1beta2_DeleteCredentialsRequest(arg) { + if (!(arg instanceof credentials_pb.DeleteCredentialsRequest)) { + throw new Error('Expected argument of type fonoster.credentials.v1beta2.DeleteCredentialsRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_credentials_v1beta2_DeleteCredentialsRequest(buffer_arg) { + return credentials_pb.DeleteCredentialsRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_credentials_v1beta2_DeleteCredentialsResponse(arg) { + if (!(arg instanceof credentials_pb.DeleteCredentialsResponse)) { + throw new Error('Expected argument of type fonoster.credentials.v1beta2.DeleteCredentialsResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_credentials_v1beta2_DeleteCredentialsResponse(buffer_arg) { + return credentials_pb.DeleteCredentialsResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_credentials_v1beta2_GetCredentialsRequest(arg) { + if (!(arg instanceof credentials_pb.GetCredentialsRequest)) { + throw new Error('Expected argument of type fonoster.credentials.v1beta2.GetCredentialsRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_credentials_v1beta2_GetCredentialsRequest(buffer_arg) { + return credentials_pb.GetCredentialsRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_credentials_v1beta2_ListCredentialsRequest(arg) { + if (!(arg instanceof credentials_pb.ListCredentialsRequest)) { + throw new Error('Expected argument of type fonoster.credentials.v1beta2.ListCredentialsRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_credentials_v1beta2_ListCredentialsRequest(buffer_arg) { + return credentials_pb.ListCredentialsRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_credentials_v1beta2_ListCredentialsResponse(arg) { + if (!(arg instanceof credentials_pb.ListCredentialsResponse)) { + throw new Error('Expected argument of type fonoster.credentials.v1beta2.ListCredentialsResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_credentials_v1beta2_ListCredentialsResponse(buffer_arg) { + return credentials_pb.ListCredentialsResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_credentials_v1beta2_UpdateCredentialsRequest(arg) { + if (!(arg instanceof credentials_pb.UpdateCredentialsRequest)) { + throw new Error('Expected argument of type fonoster.credentials.v1beta2.UpdateCredentialsRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_credentials_v1beta2_UpdateCredentialsRequest(buffer_arg) { + return credentials_pb.UpdateCredentialsRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_credentials_v1beta2_UpdateCredentialsResponse(arg) { + if (!(arg instanceof credentials_pb.UpdateCredentialsResponse)) { + throw new Error('Expected argument of type fonoster.credentials.v1beta2.UpdateCredentialsResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_credentials_v1beta2_UpdateCredentialsResponse(buffer_arg) { + return credentials_pb.UpdateCredentialsResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + + +// The Credentials service definition +var CredentialsServiceService = exports.CredentialsServiceService = { + // Creates a new set of Credentials +createCredentials: { + path: '/fonoster.credentials.v1beta2.CredentialsService/CreateCredentials', + requestStream: false, + responseStream: false, + requestType: credentials_pb.CreateCredentialsRequest, + responseType: credentials_pb.CreateCredentialsResponse, + requestSerialize: serialize_fonoster_credentials_v1beta2_CreateCredentialsRequest, + requestDeserialize: deserialize_fonoster_credentials_v1beta2_CreateCredentialsRequest, + responseSerialize: serialize_fonoster_credentials_v1beta2_CreateCredentialsResponse, + responseDeserialize: deserialize_fonoster_credentials_v1beta2_CreateCredentialsResponse, + }, + // Updates an existing set of Credentials +updateCredentials: { + path: '/fonoster.credentials.v1beta2.CredentialsService/UpdateCredentials', + requestStream: false, + responseStream: false, + requestType: credentials_pb.UpdateCredentialsRequest, + responseType: credentials_pb.UpdateCredentialsResponse, + requestSerialize: serialize_fonoster_credentials_v1beta2_UpdateCredentialsRequest, + requestDeserialize: deserialize_fonoster_credentials_v1beta2_UpdateCredentialsRequest, + responseSerialize: serialize_fonoster_credentials_v1beta2_UpdateCredentialsResponse, + responseDeserialize: deserialize_fonoster_credentials_v1beta2_UpdateCredentialsResponse, + }, + // Gets the details of a given set of Credentials +getCredentials: { + path: '/fonoster.credentials.v1beta2.CredentialsService/GetCredentials', + requestStream: false, + responseStream: false, + requestType: credentials_pb.GetCredentialsRequest, + responseType: credentials_pb.Credentials, + requestSerialize: serialize_fonoster_credentials_v1beta2_GetCredentialsRequest, + requestDeserialize: deserialize_fonoster_credentials_v1beta2_GetCredentialsRequest, + responseSerialize: serialize_fonoster_credentials_v1beta2_Credentials, + responseDeserialize: deserialize_fonoster_credentials_v1beta2_Credentials, + }, + // Deletes an existing set of Credentials +deleteCredentials: { + path: '/fonoster.credentials.v1beta2.CredentialsService/DeleteCredentials', + requestStream: false, + responseStream: false, + requestType: credentials_pb.DeleteCredentialsRequest, + responseType: credentials_pb.DeleteCredentialsResponse, + requestSerialize: serialize_fonoster_credentials_v1beta2_DeleteCredentialsRequest, + requestDeserialize: deserialize_fonoster_credentials_v1beta2_DeleteCredentialsRequest, + responseSerialize: serialize_fonoster_credentials_v1beta2_DeleteCredentialsResponse, + responseDeserialize: deserialize_fonoster_credentials_v1beta2_DeleteCredentialsResponse, + }, + // Lists all Credentials +listCredentials: { + path: '/fonoster.credentials.v1beta2.CredentialsService/ListCredentials', + requestStream: false, + responseStream: false, + requestType: credentials_pb.ListCredentialsRequest, + responseType: credentials_pb.ListCredentialsResponse, + requestSerialize: serialize_fonoster_credentials_v1beta2_ListCredentialsRequest, + requestDeserialize: deserialize_fonoster_credentials_v1beta2_ListCredentialsRequest, + responseSerialize: serialize_fonoster_credentials_v1beta2_ListCredentialsResponse, + responseDeserialize: deserialize_fonoster_credentials_v1beta2_ListCredentialsResponse, + }, +}; + +exports.CredentialsServiceClient = grpc.makeGenericClientConstructor(CredentialsServiceService); diff --git a/mods/sdk/src/generated/node/credentials_pb.js b/mods/sdk/src/generated/node/credentials_pb.js new file mode 100644 index 000000000..3745cf523 --- /dev/null +++ b/mods/sdk/src/generated/node/credentials_pb.js @@ -0,0 +1,1898 @@ +// source: credentials.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.credentials.v1beta2.CreateCredentialsRequest', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.CreateCredentialsResponse', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.Credentials', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.GetCredentialsRequest', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.ListCredentialsRequest', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.ListCredentialsResponse', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.Credentials = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.Credentials, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.Credentials.displayName = 'proto.fonoster.credentials.v1beta2.Credentials'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.CreateCredentialsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.displayName = 'proto.fonoster.credentials.v1beta2.CreateCredentialsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.CreateCredentialsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.displayName = 'proto.fonoster.credentials.v1beta2.CreateCredentialsResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.displayName = 'proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.displayName = 'proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.GetCredentialsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.GetCredentialsRequest.displayName = 'proto.fonoster.credentials.v1beta2.GetCredentialsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.displayName = 'proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.displayName = 'proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.ListCredentialsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.ListCredentialsRequest.displayName = 'proto.fonoster.credentials.v1beta2.ListCredentialsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.credentials.v1beta2.ListCredentialsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.ListCredentialsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.ListCredentialsResponse.displayName = 'proto.fonoster.credentials.v1beta2.ListCredentialsResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.Credentials.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.Credentials} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.Credentials.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + username: jspb.Message.getFieldWithDefault(msg, 3, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 4, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 5, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.Credentials} + */ +proto.fonoster.credentials.v1beta2.Credentials.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.Credentials; + return proto.fonoster.credentials.v1beta2.Credentials.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.Credentials} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.Credentials} + */ +proto.fonoster.credentials.v1beta2.Credentials.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 4: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.Credentials.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.Credentials} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.Credentials.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 4, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.Credentials} returns this + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.Credentials} returns this + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string username = 3; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.Credentials} returns this + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional int32 created_at = 4; + * @return {number} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.credentials.v1beta2.Credentials} returns this + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional int32 updated_at = 5; + * @return {number} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.credentials.v1beta2.Credentials} returns this + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + username: jspb.Message.getFieldWithDefault(msg, 2, ""), + password: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.CreateCredentialsRequest; + return proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setPassword(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getPassword(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string username = 2; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string password = 3; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.getPassword = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.setPassword = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.CreateCredentialsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.CreateCredentialsResponse; + return proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.CreateCredentialsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.CreateCredentialsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsResponse} returns this + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + username: jspb.Message.getFieldWithDefault(msg, 3, ""), + password: jspb.Message.getFieldWithDefault(msg, 4, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest; + return proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setPassword(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getPassword(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string username = 3; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string password = 4; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.getPassword = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.setPassword = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse; + return proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse} returns this + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.GetCredentialsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.GetCredentialsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.GetCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.GetCredentialsRequest; + return proto.fonoster.credentials.v1beta2.GetCredentialsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.GetCredentialsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.GetCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.GetCredentialsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.GetCredentialsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.GetCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest; + return proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse; + return proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse} returns this + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.ListCredentialsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.ListCredentialsRequest; + return proto.fonoster.credentials.v1beta2.ListCredentialsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.ListCredentialsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.ListCredentialsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.credentials.v1beta2.Credentials.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.ListCredentialsResponse; + return proto.fonoster.credentials.v1beta2.ListCredentialsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.credentials.v1beta2.Credentials; + reader.readMessage(value,proto.fonoster.credentials.v1beta2.Credentials.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.ListCredentialsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.credentials.v1beta2.Credentials.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Credentials items = 1; + * @return {!Array} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.credentials.v1beta2.Credentials, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} returns this +*/ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.credentials.v1beta2.Credentials=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.credentials.v1beta2.Credentials} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.credentials.v1beta2.Credentials, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} returns this + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} returns this + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +goog.object.extend(exports, proto.fonoster.credentials.v1beta2); diff --git a/mods/sdk/src/generated/node/domains_grpc_pb.js b/mods/sdk/src/generated/node/domains_grpc_pb.js new file mode 100644 index 000000000..40462baad --- /dev/null +++ b/mods/sdk/src/generated/node/domains_grpc_pb.js @@ -0,0 +1,200 @@ +// GENERATED CODE -- DO NOT EDIT! + +// Original file comments: +// +// Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) +// http://github.com/fonoster/fonoster +// +// This file is part of Fonoster +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +'use strict'; +var grpc = require('@grpc/grpc-js'); +var domains_pb = require('./domains_pb.js'); + +function serialize_fonoster_domains_v1beta2_CreateDomainRequest(arg) { + if (!(arg instanceof domains_pb.CreateDomainRequest)) { + throw new Error('Expected argument of type fonoster.domains.v1beta2.CreateDomainRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_domains_v1beta2_CreateDomainRequest(buffer_arg) { + return domains_pb.CreateDomainRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_domains_v1beta2_CreateDomainResponse(arg) { + if (!(arg instanceof domains_pb.CreateDomainResponse)) { + throw new Error('Expected argument of type fonoster.domains.v1beta2.CreateDomainResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_domains_v1beta2_CreateDomainResponse(buffer_arg) { + return domains_pb.CreateDomainResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_domains_v1beta2_DeleteDomainRequest(arg) { + if (!(arg instanceof domains_pb.DeleteDomainRequest)) { + throw new Error('Expected argument of type fonoster.domains.v1beta2.DeleteDomainRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_domains_v1beta2_DeleteDomainRequest(buffer_arg) { + return domains_pb.DeleteDomainRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_domains_v1beta2_DeleteDomainResponse(arg) { + if (!(arg instanceof domains_pb.DeleteDomainResponse)) { + throw new Error('Expected argument of type fonoster.domains.v1beta2.DeleteDomainResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_domains_v1beta2_DeleteDomainResponse(buffer_arg) { + return domains_pb.DeleteDomainResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_domains_v1beta2_Domain(arg) { + if (!(arg instanceof domains_pb.Domain)) { + throw new Error('Expected argument of type fonoster.domains.v1beta2.Domain'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_domains_v1beta2_Domain(buffer_arg) { + return domains_pb.Domain.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_domains_v1beta2_GetDomainRequest(arg) { + if (!(arg instanceof domains_pb.GetDomainRequest)) { + throw new Error('Expected argument of type fonoster.domains.v1beta2.GetDomainRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_domains_v1beta2_GetDomainRequest(buffer_arg) { + return domains_pb.GetDomainRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_domains_v1beta2_ListDomainsRequest(arg) { + if (!(arg instanceof domains_pb.ListDomainsRequest)) { + throw new Error('Expected argument of type fonoster.domains.v1beta2.ListDomainsRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_domains_v1beta2_ListDomainsRequest(buffer_arg) { + return domains_pb.ListDomainsRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_domains_v1beta2_ListDomainsResponse(arg) { + if (!(arg instanceof domains_pb.ListDomainsResponse)) { + throw new Error('Expected argument of type fonoster.domains.v1beta2.ListDomainsResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_domains_v1beta2_ListDomainsResponse(buffer_arg) { + return domains_pb.ListDomainsResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_domains_v1beta2_UpdateDomainRequest(arg) { + if (!(arg instanceof domains_pb.UpdateDomainRequest)) { + throw new Error('Expected argument of type fonoster.domains.v1beta2.UpdateDomainRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_domains_v1beta2_UpdateDomainRequest(buffer_arg) { + return domains_pb.UpdateDomainRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_domains_v1beta2_UpdateDomainResponse(arg) { + if (!(arg instanceof domains_pb.UpdateDomainResponse)) { + throw new Error('Expected argument of type fonoster.domains.v1beta2.UpdateDomainResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_domains_v1beta2_UpdateDomainResponse(buffer_arg) { + return domains_pb.UpdateDomainResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + + +// The Domains service definition +var DomainsService = exports.DomainsService = { + // Create a new Domain +createDomain: { + path: '/fonoster.domains.v1beta2.Domains/CreateDomain', + requestStream: false, + responseStream: false, + requestType: domains_pb.CreateDomainRequest, + responseType: domains_pb.CreateDomainResponse, + requestSerialize: serialize_fonoster_domains_v1beta2_CreateDomainRequest, + requestDeserialize: deserialize_fonoster_domains_v1beta2_CreateDomainRequest, + responseSerialize: serialize_fonoster_domains_v1beta2_CreateDomainResponse, + responseDeserialize: deserialize_fonoster_domains_v1beta2_CreateDomainResponse, + }, + // Update an existing Domain +updateDomain: { + path: '/fonoster.domains.v1beta2.Domains/UpdateDomain', + requestStream: false, + responseStream: false, + requestType: domains_pb.UpdateDomainRequest, + responseType: domains_pb.UpdateDomainResponse, + requestSerialize: serialize_fonoster_domains_v1beta2_UpdateDomainRequest, + requestDeserialize: deserialize_fonoster_domains_v1beta2_UpdateDomainRequest, + responseSerialize: serialize_fonoster_domains_v1beta2_UpdateDomainResponse, + responseDeserialize: deserialize_fonoster_domains_v1beta2_UpdateDomainResponse, + }, + // Get an existing Domain +getDomain: { + path: '/fonoster.domains.v1beta2.Domains/GetDomain', + requestStream: false, + responseStream: false, + requestType: domains_pb.GetDomainRequest, + responseType: domains_pb.Domain, + requestSerialize: serialize_fonoster_domains_v1beta2_GetDomainRequest, + requestDeserialize: deserialize_fonoster_domains_v1beta2_GetDomainRequest, + responseSerialize: serialize_fonoster_domains_v1beta2_Domain, + responseDeserialize: deserialize_fonoster_domains_v1beta2_Domain, + }, + // List all Domains +listDomains: { + path: '/fonoster.domains.v1beta2.Domains/ListDomains', + requestStream: false, + responseStream: false, + requestType: domains_pb.ListDomainsRequest, + responseType: domains_pb.ListDomainsResponse, + requestSerialize: serialize_fonoster_domains_v1beta2_ListDomainsRequest, + requestDeserialize: deserialize_fonoster_domains_v1beta2_ListDomainsRequest, + responseSerialize: serialize_fonoster_domains_v1beta2_ListDomainsResponse, + responseDeserialize: deserialize_fonoster_domains_v1beta2_ListDomainsResponse, + }, + // Delete an existing Domain +deleteDomain: { + path: '/fonoster.domains.v1beta2.Domains/DeleteDomain', + requestStream: false, + responseStream: false, + requestType: domains_pb.DeleteDomainRequest, + responseType: domains_pb.DeleteDomainResponse, + requestSerialize: serialize_fonoster_domains_v1beta2_DeleteDomainRequest, + requestDeserialize: deserialize_fonoster_domains_v1beta2_DeleteDomainRequest, + responseSerialize: serialize_fonoster_domains_v1beta2_DeleteDomainResponse, + responseDeserialize: deserialize_fonoster_domains_v1beta2_DeleteDomainResponse, + }, +}; + +exports.DomainsClient = grpc.makeGenericClientConstructor(DomainsService); diff --git a/mods/sdk/src/generated/node/domains_pb.js b/mods/sdk/src/generated/node/domains_pb.js new file mode 100644 index 000000000..429de7f4c --- /dev/null +++ b/mods/sdk/src/generated/node/domains_pb.js @@ -0,0 +1,2170 @@ +// source: domains.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.domains.v1beta2.CreateDomainRequest', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.CreateDomainResponse', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.DeleteDomainRequest', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.DeleteDomainResponse', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.Domain', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.EgressPolicy', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.GetDomainRequest', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.ListDomainsRequest', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.ListDomainsResponse', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.UpdateDomainRequest', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.UpdateDomainResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.Domain = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.Domain, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.Domain.displayName = 'proto.fonoster.domains.v1beta2.Domain'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.EgressPolicy = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.EgressPolicy, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.EgressPolicy.displayName = 'proto.fonoster.domains.v1beta2.EgressPolicy'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.domains.v1beta2.CreateDomainRequest.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.CreateDomainRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.CreateDomainRequest.displayName = 'proto.fonoster.domains.v1beta2.CreateDomainRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.CreateDomainResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.CreateDomainResponse.displayName = 'proto.fonoster.domains.v1beta2.CreateDomainResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.domains.v1beta2.UpdateDomainRequest.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.UpdateDomainRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.UpdateDomainRequest.displayName = 'proto.fonoster.domains.v1beta2.UpdateDomainRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.UpdateDomainResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.UpdateDomainResponse.displayName = 'proto.fonoster.domains.v1beta2.UpdateDomainResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.GetDomainRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.GetDomainRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.GetDomainRequest.displayName = 'proto.fonoster.domains.v1beta2.GetDomainRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.DeleteDomainRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.DeleteDomainRequest.displayName = 'proto.fonoster.domains.v1beta2.DeleteDomainRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.DeleteDomainResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.DeleteDomainResponse.displayName = 'proto.fonoster.domains.v1beta2.DeleteDomainResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.ListDomainsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.ListDomainsRequest.displayName = 'proto.fonoster.domains.v1beta2.ListDomainsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.domains.v1beta2.ListDomainsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.ListDomainsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.ListDomainsResponse.displayName = 'proto.fonoster.domains.v1beta2.ListDomainsResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.Domain.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.Domain} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.Domain.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + domainUri: jspb.Message.getFieldWithDefault(msg, 3, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 4, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 5, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.Domain} + */ +proto.fonoster.domains.v1beta2.Domain.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.Domain; + return proto.fonoster.domains.v1beta2.Domain.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.Domain} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.Domain} + */ +proto.fonoster.domains.v1beta2.Domain.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setDomainUri(value); + break; + case 4: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.Domain.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.Domain} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.Domain.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getDomainUri(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 4, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.Domain} returns this + */ +proto.fonoster.domains.v1beta2.Domain.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.Domain} returns this + */ +proto.fonoster.domains.v1beta2.Domain.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string domain_uri = 3; + * @return {string} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.getDomainUri = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.Domain} returns this + */ +proto.fonoster.domains.v1beta2.Domain.prototype.setDomainUri = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional int32 created_at = 4; + * @return {number} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.domains.v1beta2.Domain} returns this + */ +proto.fonoster.domains.v1beta2.Domain.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional int32 updated_at = 5; + * @return {number} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.domains.v1beta2.Domain} returns this + */ +proto.fonoster.domains.v1beta2.Domain.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.EgressPolicy.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.EgressPolicy.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.EgressPolicy} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.EgressPolicy.toObject = function(includeInstance, msg) { + var f, obj = { + rule: jspb.Message.getFieldWithDefault(msg, 1, ""), + numberRef: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.EgressPolicy} + */ +proto.fonoster.domains.v1beta2.EgressPolicy.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.EgressPolicy; + return proto.fonoster.domains.v1beta2.EgressPolicy.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.EgressPolicy} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.EgressPolicy} + */ +proto.fonoster.domains.v1beta2.EgressPolicy.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRule(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNumberRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.EgressPolicy.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.EgressPolicy.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.EgressPolicy} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.EgressPolicy.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRule(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getNumberRef(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional string rule = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.EgressPolicy.prototype.getRule = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.EgressPolicy} returns this + */ +proto.fonoster.domains.v1beta2.EgressPolicy.prototype.setRule = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string number_ref = 2; + * @return {string} + */ +proto.fonoster.domains.v1beta2.EgressPolicy.prototype.getNumberRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.EgressPolicy} returns this + */ +proto.fonoster.domains.v1beta2.EgressPolicy.prototype.setNumberRef = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.repeatedFields_ = [4]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.CreateDomainRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.CreateDomainRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + domainUri: jspb.Message.getFieldWithDefault(msg, 2, ""), + accessControlListRef: jspb.Message.getFieldWithDefault(msg, 3, ""), + egressPoliciesList: jspb.Message.toObjectList(msg.getEgressPoliciesList(), + proto.fonoster.domains.v1beta2.EgressPolicy.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.CreateDomainRequest; + return proto.fonoster.domains.v1beta2.CreateDomainRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.CreateDomainRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setDomainUri(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessControlListRef(value); + break; + case 4: + var value = new proto.fonoster.domains.v1beta2.EgressPolicy; + reader.readMessage(value,proto.fonoster.domains.v1beta2.EgressPolicy.deserializeBinaryFromReader); + msg.addEgressPolicies(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.CreateDomainRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.CreateDomainRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getDomainUri(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAccessControlListRef(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getEgressPoliciesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 4, + f, + proto.fonoster.domains.v1beta2.EgressPolicy.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string domain_uri = 2; + * @return {string} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.getDomainUri = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.setDomainUri = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string access_control_list_ref = 3; + * @return {string} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.getAccessControlListRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.setAccessControlListRef = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * repeated EgressPolicy egress_policies = 4; + * @return {!Array} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.getEgressPoliciesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.domains.v1beta2.EgressPolicy, 4)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} returns this +*/ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.setEgressPoliciesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 4, value); +}; + + +/** + * @param {!proto.fonoster.domains.v1beta2.EgressPolicy=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.domains.v1beta2.EgressPolicy} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.addEgressPolicies = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.fonoster.domains.v1beta2.EgressPolicy, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.clearEgressPoliciesList = function() { + return this.setEgressPoliciesList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.CreateDomainResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.CreateDomainResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.CreateDomainResponse} + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.CreateDomainResponse; + return proto.fonoster.domains.v1beta2.CreateDomainResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.CreateDomainResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.CreateDomainResponse} + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.CreateDomainResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.CreateDomainResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.CreateDomainResponse} returns this + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.repeatedFields_ = [4]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.UpdateDomainRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + accessControlListRef: jspb.Message.getFieldWithDefault(msg, 3, ""), + egressPoliciesList: jspb.Message.toObjectList(msg.getEgressPoliciesList(), + proto.fonoster.domains.v1beta2.EgressPolicy.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.UpdateDomainRequest; + return proto.fonoster.domains.v1beta2.UpdateDomainRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessControlListRef(value); + break; + case 4: + var value = new proto.fonoster.domains.v1beta2.EgressPolicy; + reader.readMessage(value,proto.fonoster.domains.v1beta2.EgressPolicy.deserializeBinaryFromReader); + msg.addEgressPolicies(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.UpdateDomainRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAccessControlListRef(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getEgressPoliciesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 4, + f, + proto.fonoster.domains.v1beta2.EgressPolicy.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string access_control_list_ref = 3; + * @return {string} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.getAccessControlListRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.setAccessControlListRef = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * repeated EgressPolicy egress_policies = 4; + * @return {!Array} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.getEgressPoliciesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.domains.v1beta2.EgressPolicy, 4)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} returns this +*/ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.setEgressPoliciesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 4, value); +}; + + +/** + * @param {!proto.fonoster.domains.v1beta2.EgressPolicy=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.domains.v1beta2.EgressPolicy} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.addEgressPolicies = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.fonoster.domains.v1beta2.EgressPolicy, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.clearEgressPoliciesList = function() { + return this.setEgressPoliciesList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.UpdateDomainResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.UpdateDomainResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainResponse} + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.UpdateDomainResponse; + return proto.fonoster.domains.v1beta2.UpdateDomainResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.UpdateDomainResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainResponse} + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.UpdateDomainResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.UpdateDomainResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainResponse} returns this + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.GetDomainRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.GetDomainRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.GetDomainRequest} + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.GetDomainRequest; + return proto.fonoster.domains.v1beta2.GetDomainRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.GetDomainRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.GetDomainRequest} + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.GetDomainRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.GetDomainRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.GetDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.DeleteDomainRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.DeleteDomainRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.DeleteDomainRequest} + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.DeleteDomainRequest; + return proto.fonoster.domains.v1beta2.DeleteDomainRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.DeleteDomainRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.DeleteDomainRequest} + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.DeleteDomainRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.DeleteDomainRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.DeleteDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.DeleteDomainResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.DeleteDomainResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.DeleteDomainResponse} + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.DeleteDomainResponse; + return proto.fonoster.domains.v1beta2.DeleteDomainResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.DeleteDomainResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.DeleteDomainResponse} + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.DeleteDomainResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.DeleteDomainResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.DeleteDomainResponse} returns this + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.ListDomainsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.ListDomainsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.ListDomainsRequest} + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.ListDomainsRequest; + return proto.fonoster.domains.v1beta2.ListDomainsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.ListDomainsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.ListDomainsRequest} + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.ListDomainsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.ListDomainsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.domains.v1beta2.ListDomainsRequest} returns this + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.ListDomainsRequest} returns this + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.ListDomainsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.ListDomainsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.domains.v1beta2.Domain.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.ListDomainsResponse} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.ListDomainsResponse; + return proto.fonoster.domains.v1beta2.ListDomainsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.ListDomainsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.ListDomainsResponse} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.domains.v1beta2.Domain; + reader.readMessage(value,proto.fonoster.domains.v1beta2.Domain.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.ListDomainsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.ListDomainsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.domains.v1beta2.Domain.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Domain items = 1; + * @return {!Array} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.domains.v1beta2.Domain, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.domains.v1beta2.ListDomainsResponse} returns this +*/ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.domains.v1beta2.Domain=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.domains.v1beta2.Domain} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.domains.v1beta2.Domain, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.domains.v1beta2.ListDomainsResponse} returns this + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.ListDomainsResponse} returns this + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +goog.object.extend(exports, proto.fonoster.domains.v1beta2); diff --git a/mods/sdk/src/generated/node/identity_grpc_pb.js b/mods/sdk/src/generated/node/identity_grpc_pb.js new file mode 100644 index 000000000..85e84fae7 --- /dev/null +++ b/mods/sdk/src/generated/node/identity_grpc_pb.js @@ -0,0 +1,805 @@ +// GENERATED CODE -- DO NOT EDIT! + +// Original file comments: +// +// Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) +// http://github.com/fonoster/fonoster +// +// This file is part of Fonoster +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +'use strict'; +var grpc = require('@grpc/grpc-js'); +var identity_pb = require('./identity_pb.js'); +var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js'); + +function serialize_fonoster_identity_v1beta2_CreateApiKeyRequest(arg) { + if (!(arg instanceof identity_pb.CreateApiKeyRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.CreateApiKeyRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_CreateApiKeyRequest(buffer_arg) { + return identity_pb.CreateApiKeyRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_CreateApiKeyResponse(arg) { + if (!(arg instanceof identity_pb.CreateApiKeyResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.CreateApiKeyResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_CreateApiKeyResponse(buffer_arg) { + return identity_pb.CreateApiKeyResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_CreateUserRequest(arg) { + if (!(arg instanceof identity_pb.CreateUserRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.CreateUserRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_CreateUserRequest(buffer_arg) { + return identity_pb.CreateUserRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_CreateUserResponse(arg) { + if (!(arg instanceof identity_pb.CreateUserResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.CreateUserResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_CreateUserResponse(buffer_arg) { + return identity_pb.CreateUserResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_CreateWorkspaceRequest(arg) { + if (!(arg instanceof identity_pb.CreateWorkspaceRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.CreateWorkspaceRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_CreateWorkspaceRequest(buffer_arg) { + return identity_pb.CreateWorkspaceRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_CreateWorkspaceResponse(arg) { + if (!(arg instanceof identity_pb.CreateWorkspaceResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.CreateWorkspaceResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_CreateWorkspaceResponse(buffer_arg) { + return identity_pb.CreateWorkspaceResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_DeleteApiKeyRequest(arg) { + if (!(arg instanceof identity_pb.DeleteApiKeyRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.DeleteApiKeyRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_DeleteApiKeyRequest(buffer_arg) { + return identity_pb.DeleteApiKeyRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_DeleteApiKeyResponse(arg) { + if (!(arg instanceof identity_pb.DeleteApiKeyResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.DeleteApiKeyResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_DeleteApiKeyResponse(buffer_arg) { + return identity_pb.DeleteApiKeyResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_DeleteUserRequest(arg) { + if (!(arg instanceof identity_pb.DeleteUserRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.DeleteUserRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_DeleteUserRequest(buffer_arg) { + return identity_pb.DeleteUserRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_DeleteUserResponse(arg) { + if (!(arg instanceof identity_pb.DeleteUserResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.DeleteUserResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_DeleteUserResponse(buffer_arg) { + return identity_pb.DeleteUserResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_DeleteWorkspaceRequest(arg) { + if (!(arg instanceof identity_pb.DeleteWorkspaceRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.DeleteWorkspaceRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_DeleteWorkspaceRequest(buffer_arg) { + return identity_pb.DeleteWorkspaceRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_DeleteWorkspaceResponse(arg) { + if (!(arg instanceof identity_pb.DeleteWorkspaceResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.DeleteWorkspaceResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_DeleteWorkspaceResponse(buffer_arg) { + return identity_pb.DeleteWorkspaceResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ExchangeApiKeyRequest(arg) { + if (!(arg instanceof identity_pb.ExchangeApiKeyRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ExchangeApiKeyRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ExchangeApiKeyRequest(buffer_arg) { + return identity_pb.ExchangeApiKeyRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ExchangeApiKeyResponse(arg) { + if (!(arg instanceof identity_pb.ExchangeApiKeyResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ExchangeApiKeyResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ExchangeApiKeyResponse(buffer_arg) { + return identity_pb.ExchangeApiKeyResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ExchangeCredentialsRequest(arg) { + if (!(arg instanceof identity_pb.ExchangeCredentialsRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ExchangeCredentialsRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ExchangeCredentialsRequest(buffer_arg) { + return identity_pb.ExchangeCredentialsRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ExchangeCredentialsResponse(arg) { + if (!(arg instanceof identity_pb.ExchangeCredentialsResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ExchangeCredentialsResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ExchangeCredentialsResponse(buffer_arg) { + return identity_pb.ExchangeCredentialsResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ExchangeOauth2CodeRequest(arg) { + if (!(arg instanceof identity_pb.ExchangeOauth2CodeRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ExchangeOauth2CodeRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ExchangeOauth2CodeRequest(buffer_arg) { + return identity_pb.ExchangeOauth2CodeRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ExchangeOauth2CodeResponse(arg) { + if (!(arg instanceof identity_pb.ExchangeOauth2CodeResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ExchangeOauth2CodeResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ExchangeOauth2CodeResponse(buffer_arg) { + return identity_pb.ExchangeOauth2CodeResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ExchangeRefreshTokenRequest(arg) { + if (!(arg instanceof identity_pb.ExchangeRefreshTokenRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ExchangeRefreshTokenRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ExchangeRefreshTokenRequest(buffer_arg) { + return identity_pb.ExchangeRefreshTokenRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ExchangeRefreshTokenResponse(arg) { + if (!(arg instanceof identity_pb.ExchangeRefreshTokenResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ExchangeRefreshTokenResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ExchangeRefreshTokenResponse(buffer_arg) { + return identity_pb.ExchangeRefreshTokenResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_GetPublicKeyResponse(arg) { + if (!(arg instanceof identity_pb.GetPublicKeyResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.GetPublicKeyResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_GetPublicKeyResponse(buffer_arg) { + return identity_pb.GetPublicKeyResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_GetUserRequest(arg) { + if (!(arg instanceof identity_pb.GetUserRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.GetUserRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_GetUserRequest(buffer_arg) { + return identity_pb.GetUserRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_GetWorkspaceRequest(arg) { + if (!(arg instanceof identity_pb.GetWorkspaceRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.GetWorkspaceRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_GetWorkspaceRequest(buffer_arg) { + return identity_pb.GetWorkspaceRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_InviteUserToWorkspaceRequest(arg) { + if (!(arg instanceof identity_pb.InviteUserToWorkspaceRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.InviteUserToWorkspaceRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_InviteUserToWorkspaceRequest(buffer_arg) { + return identity_pb.InviteUserToWorkspaceRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_InviteUserToWorkspaceResponse(arg) { + if (!(arg instanceof identity_pb.InviteUserToWorkspaceResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.InviteUserToWorkspaceResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_InviteUserToWorkspaceResponse(buffer_arg) { + return identity_pb.InviteUserToWorkspaceResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ListApiKeysRequest(arg) { + if (!(arg instanceof identity_pb.ListApiKeysRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ListApiKeysRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ListApiKeysRequest(buffer_arg) { + return identity_pb.ListApiKeysRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ListApiKeysResponse(arg) { + if (!(arg instanceof identity_pb.ListApiKeysResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ListApiKeysResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ListApiKeysResponse(buffer_arg) { + return identity_pb.ListApiKeysResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ListWorkspacesRequest(arg) { + if (!(arg instanceof identity_pb.ListWorkspacesRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ListWorkspacesRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ListWorkspacesRequest(buffer_arg) { + return identity_pb.ListWorkspacesRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ListWorkspacesResponse(arg) { + if (!(arg instanceof identity_pb.ListWorkspacesResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ListWorkspacesResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ListWorkspacesResponse(buffer_arg) { + return identity_pb.ListWorkspacesResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_RegenerateApiKeyRequest(arg) { + if (!(arg instanceof identity_pb.RegenerateApiKeyRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.RegenerateApiKeyRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_RegenerateApiKeyRequest(buffer_arg) { + return identity_pb.RegenerateApiKeyRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_RegenerateApiKeyResponse(arg) { + if (!(arg instanceof identity_pb.RegenerateApiKeyResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.RegenerateApiKeyResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_RegenerateApiKeyResponse(buffer_arg) { + return identity_pb.RegenerateApiKeyResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_RemoveUserFromWorkspaceRequest(arg) { + if (!(arg instanceof identity_pb.RemoveUserFromWorkspaceRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_RemoveUserFromWorkspaceRequest(buffer_arg) { + return identity_pb.RemoveUserFromWorkspaceRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_RemoveUserFromWorkspaceResponse(arg) { + if (!(arg instanceof identity_pb.RemoveUserFromWorkspaceResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_RemoveUserFromWorkspaceResponse(buffer_arg) { + return identity_pb.RemoveUserFromWorkspaceResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ResendWorkspaceMembershipInvitationRequest(arg) { + if (!(arg instanceof identity_pb.ResendWorkspaceMembershipInvitationRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ResendWorkspaceMembershipInvitationRequest(buffer_arg) { + return identity_pb.ResendWorkspaceMembershipInvitationRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_ResendWorkspaceMembershipInvitationResponse(arg) { + if (!(arg instanceof identity_pb.ResendWorkspaceMembershipInvitationResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_ResendWorkspaceMembershipInvitationResponse(buffer_arg) { + return identity_pb.ResendWorkspaceMembershipInvitationResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_RevokeTokenRequest(arg) { + if (!(arg instanceof identity_pb.RevokeTokenRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.RevokeTokenRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_RevokeTokenRequest(buffer_arg) { + return identity_pb.RevokeTokenRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_RevokeTokenResponse(arg) { + if (!(arg instanceof identity_pb.RevokeTokenResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.RevokeTokenResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_RevokeTokenResponse(buffer_arg) { + return identity_pb.RevokeTokenResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_SendVerificationCodeRequest(arg) { + if (!(arg instanceof identity_pb.SendVerificationCodeRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.SendVerificationCodeRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_SendVerificationCodeRequest(buffer_arg) { + return identity_pb.SendVerificationCodeRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_UpdateUserRequest(arg) { + if (!(arg instanceof identity_pb.UpdateUserRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.UpdateUserRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_UpdateUserRequest(buffer_arg) { + return identity_pb.UpdateUserRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_UpdateUserResponse(arg) { + if (!(arg instanceof identity_pb.UpdateUserResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.UpdateUserResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_UpdateUserResponse(buffer_arg) { + return identity_pb.UpdateUserResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_UpdateWorkspaceRequest(arg) { + if (!(arg instanceof identity_pb.UpdateWorkspaceRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.UpdateWorkspaceRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_UpdateWorkspaceRequest(buffer_arg) { + return identity_pb.UpdateWorkspaceRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_UpdateWorkspaceResponse(arg) { + if (!(arg instanceof identity_pb.UpdateWorkspaceResponse)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.UpdateWorkspaceResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_UpdateWorkspaceResponse(buffer_arg) { + return identity_pb.UpdateWorkspaceResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_User(arg) { + if (!(arg instanceof identity_pb.User)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.User'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_User(buffer_arg) { + return identity_pb.User.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_VerifyCodeRequest(arg) { + if (!(arg instanceof identity_pb.VerifyCodeRequest)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.VerifyCodeRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_VerifyCodeRequest(buffer_arg) { + return identity_pb.VerifyCodeRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_identity_v1beta2_Workspace(arg) { + if (!(arg instanceof identity_pb.Workspace)) { + throw new Error('Expected argument of type fonoster.identity.v1beta2.Workspace'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_identity_v1beta2_Workspace(buffer_arg) { + return identity_pb.Workspace.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_google_protobuf_Empty(arg) { + if (!(arg instanceof google_protobuf_empty_pb.Empty)) { + throw new Error('Expected argument of type google.protobuf.Empty'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_google_protobuf_Empty(buffer_arg) { + return google_protobuf_empty_pb.Empty.deserializeBinary(new Uint8Array(buffer_arg)); +} + + +var IdentityService = exports.IdentityService = { + // Workspace actions +createWorkspace: { + path: '/fonoster.identity.v1beta2.Identity/CreateWorkspace', + requestStream: false, + responseStream: false, + requestType: identity_pb.CreateWorkspaceRequest, + responseType: identity_pb.CreateWorkspaceResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_CreateWorkspaceRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_CreateWorkspaceRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_CreateWorkspaceResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_CreateWorkspaceResponse, + }, + deleteWorkspace: { + path: '/fonoster.identity.v1beta2.Identity/DeleteWorkspace', + requestStream: false, + responseStream: false, + requestType: identity_pb.DeleteWorkspaceRequest, + responseType: identity_pb.DeleteWorkspaceResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_DeleteWorkspaceRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_DeleteWorkspaceRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_DeleteWorkspaceResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_DeleteWorkspaceResponse, + }, + getWorkspace: { + path: '/fonoster.identity.v1beta2.Identity/GetWorkspace', + requestStream: false, + responseStream: false, + requestType: identity_pb.GetWorkspaceRequest, + responseType: identity_pb.Workspace, + requestSerialize: serialize_fonoster_identity_v1beta2_GetWorkspaceRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_GetWorkspaceRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_Workspace, + responseDeserialize: deserialize_fonoster_identity_v1beta2_Workspace, + }, + listWorkspaces: { + path: '/fonoster.identity.v1beta2.Identity/ListWorkspaces', + requestStream: false, + responseStream: false, + requestType: identity_pb.ListWorkspacesRequest, + responseType: identity_pb.ListWorkspacesResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_ListWorkspacesRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_ListWorkspacesRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_ListWorkspacesResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_ListWorkspacesResponse, + }, + updateWorkspace: { + path: '/fonoster.identity.v1beta2.Identity/UpdateWorkspace', + requestStream: false, + responseStream: false, + requestType: identity_pb.UpdateWorkspaceRequest, + responseType: identity_pb.UpdateWorkspaceResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_UpdateWorkspaceRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_UpdateWorkspaceRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_UpdateWorkspaceResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_UpdateWorkspaceResponse, + }, + inviteUserToWorkspace: { + path: '/fonoster.identity.v1beta2.Identity/InviteUserToWorkspace', + requestStream: false, + responseStream: false, + requestType: identity_pb.InviteUserToWorkspaceRequest, + responseType: identity_pb.InviteUserToWorkspaceResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_InviteUserToWorkspaceRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_InviteUserToWorkspaceRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_InviteUserToWorkspaceResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_InviteUserToWorkspaceResponse, + }, + removeUserFromWorkspace: { + path: '/fonoster.identity.v1beta2.Identity/RemoveUserFromWorkspace', + requestStream: false, + responseStream: false, + requestType: identity_pb.RemoveUserFromWorkspaceRequest, + responseType: identity_pb.RemoveUserFromWorkspaceResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_RemoveUserFromWorkspaceRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_RemoveUserFromWorkspaceRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_RemoveUserFromWorkspaceResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_RemoveUserFromWorkspaceResponse, + }, + resendWorkspaceMembershipInvitation: { + path: '/fonoster.identity.v1beta2.Identity/ResendWorkspaceMembershipInvitation', + requestStream: false, + responseStream: false, + requestType: identity_pb.ResendWorkspaceMembershipInvitationRequest, + responseType: identity_pb.ResendWorkspaceMembershipInvitationResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_ResendWorkspaceMembershipInvitationRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_ResendWorkspaceMembershipInvitationRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_ResendWorkspaceMembershipInvitationResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_ResendWorkspaceMembershipInvitationResponse, + }, + // User specific actions +createUser: { + path: '/fonoster.identity.v1beta2.Identity/CreateUser', + requestStream: false, + responseStream: false, + requestType: identity_pb.CreateUserRequest, + responseType: identity_pb.CreateUserResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_CreateUserRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_CreateUserRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_CreateUserResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_CreateUserResponse, + }, + getUser: { + path: '/fonoster.identity.v1beta2.Identity/GetUser', + requestStream: false, + responseStream: false, + requestType: identity_pb.GetUserRequest, + responseType: identity_pb.User, + requestSerialize: serialize_fonoster_identity_v1beta2_GetUserRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_GetUserRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_User, + responseDeserialize: deserialize_fonoster_identity_v1beta2_User, + }, + updateUser: { + path: '/fonoster.identity.v1beta2.Identity/UpdateUser', + requestStream: false, + responseStream: false, + requestType: identity_pb.UpdateUserRequest, + responseType: identity_pb.UpdateUserResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_UpdateUserRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_UpdateUserRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_UpdateUserResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_UpdateUserResponse, + }, + deleteUser: { + path: '/fonoster.identity.v1beta2.Identity/DeleteUser', + requestStream: false, + responseStream: false, + requestType: identity_pb.DeleteUserRequest, + responseType: identity_pb.DeleteUserResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_DeleteUserRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_DeleteUserRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_DeleteUserResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_DeleteUserResponse, + }, + sendVerificationCode: { + path: '/fonoster.identity.v1beta2.Identity/SendVerificationCode', + requestStream: false, + responseStream: false, + requestType: identity_pb.SendVerificationCodeRequest, + responseType: google_protobuf_empty_pb.Empty, + requestSerialize: serialize_fonoster_identity_v1beta2_SendVerificationCodeRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_SendVerificationCodeRequest, + responseSerialize: serialize_google_protobuf_Empty, + responseDeserialize: deserialize_google_protobuf_Empty, + }, + verifyCode: { + path: '/fonoster.identity.v1beta2.Identity/VerifyCode', + requestStream: false, + responseStream: false, + requestType: identity_pb.VerifyCodeRequest, + responseType: google_protobuf_empty_pb.Empty, + requestSerialize: serialize_fonoster_identity_v1beta2_VerifyCodeRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_VerifyCodeRequest, + responseSerialize: serialize_google_protobuf_Empty, + responseDeserialize: deserialize_google_protobuf_Empty, + }, + // ApiKey actions +createApiKey: { + path: '/fonoster.identity.v1beta2.Identity/CreateApiKey', + requestStream: false, + responseStream: false, + requestType: identity_pb.CreateApiKeyRequest, + responseType: identity_pb.CreateApiKeyResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_CreateApiKeyRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_CreateApiKeyRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_CreateApiKeyResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_CreateApiKeyResponse, + }, + deleteApiKey: { + path: '/fonoster.identity.v1beta2.Identity/DeleteApiKey', + requestStream: false, + responseStream: false, + requestType: identity_pb.DeleteApiKeyRequest, + responseType: identity_pb.DeleteApiKeyResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_DeleteApiKeyRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_DeleteApiKeyRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_DeleteApiKeyResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_DeleteApiKeyResponse, + }, + listApiKeys: { + path: '/fonoster.identity.v1beta2.Identity/ListApiKeys', + requestStream: false, + responseStream: false, + requestType: identity_pb.ListApiKeysRequest, + responseType: identity_pb.ListApiKeysResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_ListApiKeysRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_ListApiKeysRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_ListApiKeysResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_ListApiKeysResponse, + }, + regenerateApiKey: { + path: '/fonoster.identity.v1beta2.Identity/RegenerateApiKey', + requestStream: false, + responseStream: false, + requestType: identity_pb.RegenerateApiKeyRequest, + responseType: identity_pb.RegenerateApiKeyResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_RegenerateApiKeyRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_RegenerateApiKeyRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_RegenerateApiKeyResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_RegenerateApiKeyResponse, + }, + // Token exchange actions +exchangeCredentials: { + path: '/fonoster.identity.v1beta2.Identity/ExchangeCredentials', + requestStream: false, + responseStream: false, + requestType: identity_pb.ExchangeCredentialsRequest, + responseType: identity_pb.ExchangeCredentialsResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_ExchangeCredentialsRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_ExchangeCredentialsRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_ExchangeCredentialsResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_ExchangeCredentialsResponse, + }, + exchangeApiKey: { + path: '/fonoster.identity.v1beta2.Identity/ExchangeApiKey', + requestStream: false, + responseStream: false, + requestType: identity_pb.ExchangeApiKeyRequest, + responseType: identity_pb.ExchangeApiKeyResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_ExchangeApiKeyRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_ExchangeApiKeyRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_ExchangeApiKeyResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_ExchangeApiKeyResponse, + }, + exchangeOauth2Code: { + path: '/fonoster.identity.v1beta2.Identity/ExchangeOauth2Code', + requestStream: false, + responseStream: false, + requestType: identity_pb.ExchangeOauth2CodeRequest, + responseType: identity_pb.ExchangeOauth2CodeResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_ExchangeOauth2CodeRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_ExchangeOauth2CodeRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_ExchangeOauth2CodeResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_ExchangeOauth2CodeResponse, + }, + exchangeRefreshToken: { + path: '/fonoster.identity.v1beta2.Identity/ExchangeRefreshToken', + requestStream: false, + responseStream: false, + requestType: identity_pb.ExchangeRefreshTokenRequest, + responseType: identity_pb.ExchangeRefreshTokenResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_ExchangeRefreshTokenRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_ExchangeRefreshTokenRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_ExchangeRefreshTokenResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_ExchangeRefreshTokenResponse, + }, + revokeToken: { + path: '/fonoster.identity.v1beta2.Identity/RevokeToken', + requestStream: false, + responseStream: false, + requestType: identity_pb.RevokeTokenRequest, + responseType: identity_pb.RevokeTokenResponse, + requestSerialize: serialize_fonoster_identity_v1beta2_RevokeTokenRequest, + requestDeserialize: deserialize_fonoster_identity_v1beta2_RevokeTokenRequest, + responseSerialize: serialize_fonoster_identity_v1beta2_RevokeTokenResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_RevokeTokenResponse, + }, + // Get the public key for verifying JWTs +getPublicKey: { + path: '/fonoster.identity.v1beta2.Identity/GetPublicKey', + requestStream: false, + responseStream: false, + requestType: google_protobuf_empty_pb.Empty, + responseType: identity_pb.GetPublicKeyResponse, + requestSerialize: serialize_google_protobuf_Empty, + requestDeserialize: deserialize_google_protobuf_Empty, + responseSerialize: serialize_fonoster_identity_v1beta2_GetPublicKeyResponse, + responseDeserialize: deserialize_fonoster_identity_v1beta2_GetPublicKeyResponse, + }, +}; + +exports.IdentityClient = grpc.makeGenericClientConstructor(IdentityService); diff --git a/mods/sdk/src/generated/node/identity_pb.js b/mods/sdk/src/generated/node/identity_pb.js new file mode 100644 index 000000000..67557443e --- /dev/null +++ b/mods/sdk/src/generated/node/identity_pb.js @@ -0,0 +1,8589 @@ +// source: identity.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js'); +goog.object.extend(proto, google_protobuf_empty_pb); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ApiKey', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ContactType', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.CreateApiKeyRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.CreateApiKeyResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.CreateUserRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.CreateUserResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.CreateWorkspaceRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.CreateWorkspaceResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.DeleteApiKeyRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.DeleteApiKeyResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.DeleteUserRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.DeleteUserResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.Oauth2Provider', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.GetPublicKeyResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.GetUserRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.GetWorkspaceRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ListApiKeysRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ListApiKeysResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ListWorkspacesRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ListWorkspacesResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.RevokeTokenRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.RevokeTokenResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.SendVerificationCodeRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.UpdateUserRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.UpdateUserResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.User', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.VerifyCodeRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.Workspace', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.Workspace = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.Workspace, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.Workspace.displayName = 'proto.fonoster.identity.v1beta2.Workspace'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.CreateWorkspaceRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.displayName = 'proto.fonoster.identity.v1beta2.CreateWorkspaceRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.CreateWorkspaceResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.displayName = 'proto.fonoster.identity.v1beta2.CreateWorkspaceResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.displayName = 'proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.displayName = 'proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.GetWorkspaceRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.GetWorkspaceRequest.displayName = 'proto.fonoster.identity.v1beta2.GetWorkspaceRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ListWorkspacesRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ListWorkspacesRequest.displayName = 'proto.fonoster.identity.v1beta2.ListWorkspacesRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.identity.v1beta2.ListWorkspacesResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ListWorkspacesResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ListWorkspacesResponse.displayName = 'proto.fonoster.identity.v1beta2.ListWorkspacesResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.displayName = 'proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.displayName = 'proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.displayName = 'proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.displayName = 'proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.displayName = 'proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.displayName = 'proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.displayName = 'proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.displayName = 'proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.CreateUserRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.CreateUserRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.CreateUserRequest.displayName = 'proto.fonoster.identity.v1beta2.CreateUserRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.CreateUserResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.CreateUserResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.CreateUserResponse.displayName = 'proto.fonoster.identity.v1beta2.CreateUserResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.GetUserRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.GetUserRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.GetUserRequest.displayName = 'proto.fonoster.identity.v1beta2.GetUserRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.User = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.User, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.User.displayName = 'proto.fonoster.identity.v1beta2.User'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.UpdateUserRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.UpdateUserRequest.displayName = 'proto.fonoster.identity.v1beta2.UpdateUserRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.UpdateUserResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.UpdateUserResponse.displayName = 'proto.fonoster.identity.v1beta2.UpdateUserResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.DeleteUserRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.DeleteUserRequest.displayName = 'proto.fonoster.identity.v1beta2.DeleteUserRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.DeleteUserResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.DeleteUserResponse.displayName = 'proto.fonoster.identity.v1beta2.DeleteUserResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.SendVerificationCodeRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.displayName = 'proto.fonoster.identity.v1beta2.SendVerificationCodeRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.VerifyCodeRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.VerifyCodeRequest.displayName = 'proto.fonoster.identity.v1beta2.VerifyCodeRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.CreateApiKeyRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.CreateApiKeyRequest.displayName = 'proto.fonoster.identity.v1beta2.CreateApiKeyRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.CreateApiKeyResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.CreateApiKeyResponse.displayName = 'proto.fonoster.identity.v1beta2.CreateApiKeyResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.DeleteApiKeyRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.displayName = 'proto.fonoster.identity.v1beta2.DeleteApiKeyRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.DeleteApiKeyResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.displayName = 'proto.fonoster.identity.v1beta2.DeleteApiKeyResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ListApiKeysRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ListApiKeysRequest.displayName = 'proto.fonoster.identity.v1beta2.ListApiKeysRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.identity.v1beta2.ListApiKeysResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ListApiKeysResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ListApiKeysResponse.displayName = 'proto.fonoster.identity.v1beta2.ListApiKeysResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.displayName = 'proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.displayName = 'proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ApiKey = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ApiKey, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ApiKey.displayName = 'proto.fonoster.identity.v1beta2.ApiKey'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.displayName = 'proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.displayName = 'proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.displayName = 'proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.displayName = 'proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.displayName = 'proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.displayName = 'proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.displayName = 'proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.displayName = 'proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.RevokeTokenRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.RevokeTokenRequest.displayName = 'proto.fonoster.identity.v1beta2.RevokeTokenRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.RevokeTokenResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.RevokeTokenResponse.displayName = 'proto.fonoster.identity.v1beta2.RevokeTokenResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.GetPublicKeyResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.GetPublicKeyResponse.displayName = 'proto.fonoster.identity.v1beta2.GetPublicKeyResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.Workspace.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.Workspace} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.Workspace.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + ownerRef: jspb.Message.getFieldWithDefault(msg, 3, ""), + accessKeyId: jspb.Message.getFieldWithDefault(msg, 4, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 5, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 6, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.Workspace} + */ +proto.fonoster.identity.v1beta2.Workspace.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.Workspace; + return proto.fonoster.identity.v1beta2.Workspace.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.Workspace} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.Workspace} + */ +proto.fonoster.identity.v1beta2.Workspace.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setOwnerRef(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeyId(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.Workspace.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.Workspace} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.Workspace.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getOwnerRef(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAccessKeyId(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.Workspace} returns this + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.Workspace} returns this + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string owner_ref = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.getOwnerRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.Workspace} returns this + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.setOwnerRef = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string access_key_id = 4; + * @return {string} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.getAccessKeyId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.Workspace} returns this + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.setAccessKeyId = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional int32 created_at = 5; + * @return {number} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.Workspace} returns this + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional int32 updated_at = 6; + * @return {number} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.Workspace} returns this + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.CreateWorkspaceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.CreateWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.CreateWorkspaceRequest; + return proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.CreateWorkspaceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.CreateWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.CreateWorkspaceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.CreateWorkspaceResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.CreateWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.CreateWorkspaceResponse; + return proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.CreateWorkspaceResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.CreateWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.CreateWorkspaceResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateWorkspaceResponse} returns this + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest; + return proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse; + return proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse} returns this + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.GetWorkspaceRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.GetWorkspaceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.GetWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.GetWorkspaceRequest; + return proto.fonoster.identity.v1beta2.GetWorkspaceRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.GetWorkspaceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.GetWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.GetWorkspaceRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.GetWorkspaceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.GetWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ListWorkspacesRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageToken: jspb.Message.getFieldWithDefault(msg, 1, ""), + pageSize: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ListWorkspacesRequest; + return proto.fonoster.identity.v1beta2.ListWorkspacesRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + case 2: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ListWorkspacesRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 2, + f + ); + } +}; + + +/** + * optional string page_token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} returns this + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional int32 page_size = 2; + * @return {number} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} returns this + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ListWorkspacesResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.identity.v1beta2.Workspace.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ListWorkspacesResponse; + return proto.fonoster.identity.v1beta2.ListWorkspacesResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.identity.v1beta2.Workspace; + reader.readMessage(value,proto.fonoster.identity.v1beta2.Workspace.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ListWorkspacesResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.identity.v1beta2.Workspace.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Workspace items = 1; + * @return {!Array} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.identity.v1beta2.Workspace, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} returns this +*/ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.identity.v1beta2.Workspace=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.identity.v1beta2.Workspace} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.identity.v1beta2.Workspace, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} returns this + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} returns this + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest; + return proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse; + return proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse} returns this + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + email: jspb.Message.getFieldWithDefault(msg, 1, ""), + role: jspb.Message.getFieldWithDefault(msg, 2, ""), + name: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest; + return proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setEmail(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setRole(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getEmail(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getRole(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string email = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.getEmail = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.setEmail = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string role = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.getRole = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.setRole = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string name = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.toObject = function(includeInstance, msg) { + var f, obj = { + userRef: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse; + return proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.prototype.getUserRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse} returns this + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.prototype.setUserRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + userRef: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest; + return proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.prototype.getUserRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.prototype.setUserRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.toObject = function(includeInstance, msg) { + var f, obj = { + userRef: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse; + return proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.prototype.getUserRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse} returns this + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.prototype.setUserRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.toObject = function(includeInstance, msg) { + var f, obj = { + userRef: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest; + return proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.prototype.getUserRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest} returns this + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.prototype.setUserRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.toObject = function(includeInstance, msg) { + var f, obj = { + userRef: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse; + return proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.prototype.getUserRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse} returns this + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.prototype.setUserRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.CreateUserRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.CreateUserRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.toObject = function(includeInstance, msg) { + var f, obj = { + email: jspb.Message.getFieldWithDefault(msg, 1, ""), + password: jspb.Message.getFieldWithDefault(msg, 2, ""), + name: jspb.Message.getFieldWithDefault(msg, 3, ""), + avatar: jspb.Message.getFieldWithDefault(msg, 4, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.CreateUserRequest} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.CreateUserRequest; + return proto.fonoster.identity.v1beta2.CreateUserRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.CreateUserRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.CreateUserRequest} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setEmail(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPassword(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAvatar(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.CreateUserRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.CreateUserRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getEmail(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getPassword(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAvatar(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } +}; + + +/** + * optional string email = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.getEmail = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.setEmail = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string password = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.getPassword = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.setPassword = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string name = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string avatar = 4; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.getAvatar = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.setAvatar = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.CreateUserResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.CreateUserResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.CreateUserResponse} + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.CreateUserResponse; + return proto.fonoster.identity.v1beta2.CreateUserResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.CreateUserResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.CreateUserResponse} + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.CreateUserResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.CreateUserResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateUserResponse} returns this + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.GetUserRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.GetUserRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.GetUserRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.GetUserRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.GetUserRequest} + */ +proto.fonoster.identity.v1beta2.GetUserRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.GetUserRequest; + return proto.fonoster.identity.v1beta2.GetUserRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.GetUserRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.GetUserRequest} + */ +proto.fonoster.identity.v1beta2.GetUserRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.GetUserRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.GetUserRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.GetUserRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.GetUserRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.GetUserRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.GetUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.GetUserRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.User.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.User.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.User} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.User.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + email: jspb.Message.getFieldWithDefault(msg, 2, ""), + name: jspb.Message.getFieldWithDefault(msg, 3, ""), + avatar: jspb.Message.getFieldWithDefault(msg, 4, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 5, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 6, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.User} + */ +proto.fonoster.identity.v1beta2.User.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.User; + return proto.fonoster.identity.v1beta2.User.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.User} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.User} + */ +proto.fonoster.identity.v1beta2.User.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setEmail(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAvatar(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.User.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.User.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.User} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.User.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getEmail(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAvatar(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.User.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.User} returns this + */ +proto.fonoster.identity.v1beta2.User.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string email = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.User.prototype.getEmail = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.User} returns this + */ +proto.fonoster.identity.v1beta2.User.prototype.setEmail = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string name = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.User.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.User} returns this + */ +proto.fonoster.identity.v1beta2.User.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string avatar = 4; + * @return {string} + */ +proto.fonoster.identity.v1beta2.User.prototype.getAvatar = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.User} returns this + */ +proto.fonoster.identity.v1beta2.User.prototype.setAvatar = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional int32 created_at = 5; + * @return {number} + */ +proto.fonoster.identity.v1beta2.User.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.User} returns this + */ +proto.fonoster.identity.v1beta2.User.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional int32 updated_at = 6; + * @return {number} + */ +proto.fonoster.identity.v1beta2.User.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.User} returns this + */ +proto.fonoster.identity.v1beta2.User.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.UpdateUserRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.UpdateUserRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + password: jspb.Message.getFieldWithDefault(msg, 2, ""), + name: jspb.Message.getFieldWithDefault(msg, 3, ""), + avatar: jspb.Message.getFieldWithDefault(msg, 4, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.UpdateUserRequest} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.UpdateUserRequest; + return proto.fonoster.identity.v1beta2.UpdateUserRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.UpdateUserRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.UpdateUserRequest} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPassword(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAvatar(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.UpdateUserRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.UpdateUserRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getPassword(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAvatar(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string password = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.getPassword = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.setPassword = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string name = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string avatar = 4; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.getAvatar = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.setAvatar = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.UpdateUserResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.UpdateUserResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.UpdateUserResponse} + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.UpdateUserResponse; + return proto.fonoster.identity.v1beta2.UpdateUserResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.UpdateUserResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.UpdateUserResponse} + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.UpdateUserResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.UpdateUserResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateUserResponse} returns this + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.DeleteUserRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.DeleteUserRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.DeleteUserRequest} + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.DeleteUserRequest; + return proto.fonoster.identity.v1beta2.DeleteUserRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.DeleteUserRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.DeleteUserRequest} + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.DeleteUserRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.DeleteUserRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.DeleteUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.DeleteUserResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.DeleteUserResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.DeleteUserResponse} + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.DeleteUserResponse; + return proto.fonoster.identity.v1beta2.DeleteUserResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.DeleteUserResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.DeleteUserResponse} + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.DeleteUserResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.DeleteUserResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.DeleteUserResponse} returns this + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.toObject = function(includeInstance, msg) { + var f, obj = { + contactType: jspb.Message.getFieldWithDefault(msg, 1, 0), + value: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.SendVerificationCodeRequest; + return proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.fonoster.identity.v1beta2.ContactType} */ (reader.readEnum()); + msg.setContactType(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setValue(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContactType(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getValue(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional ContactType contact_type = 1; + * @return {!proto.fonoster.identity.v1beta2.ContactType} + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.prototype.getContactType = function() { + return /** @type {!proto.fonoster.identity.v1beta2.ContactType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {!proto.fonoster.identity.v1beta2.ContactType} value + * @return {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.prototype.setContactType = function(value) { + return jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string value = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.prototype.getValue = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.prototype.setValue = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.VerifyCodeRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.toObject = function(includeInstance, msg) { + var f, obj = { + username: jspb.Message.getFieldWithDefault(msg, 1, ""), + contactType: jspb.Message.getFieldWithDefault(msg, 2, 0), + value: jspb.Message.getFieldWithDefault(msg, 3, ""), + verificationCode: jspb.Message.getFieldWithDefault(msg, 4, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.VerifyCodeRequest; + return proto.fonoster.identity.v1beta2.VerifyCodeRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 2: + var value = /** @type {!proto.fonoster.identity.v1beta2.ContactType} */ (reader.readEnum()); + msg.setContactType(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setValue(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setVerificationCode(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.VerifyCodeRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getContactType(); + if (f !== 0.0) { + writer.writeEnum( + 2, + f + ); + } + f = message.getValue(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getVerificationCode(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } +}; + + +/** + * optional string username = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional ContactType contact_type = 2; + * @return {!proto.fonoster.identity.v1beta2.ContactType} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.getContactType = function() { + return /** @type {!proto.fonoster.identity.v1beta2.ContactType} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {!proto.fonoster.identity.v1beta2.ContactType} value + * @return {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.setContactType = function(value) { + return jspb.Message.setProto3EnumField(this, 2, value); +}; + + +/** + * optional string value = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.getValue = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.setValue = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string verification_code = 4; + * @return {string} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.getVerificationCode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.setVerificationCode = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.CreateApiKeyRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.toObject = function(includeInstance, msg) { + var f, obj = { + role: jspb.Message.getFieldWithDefault(msg, 1, ""), + expiresAt: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.CreateApiKeyRequest; + return proto.fonoster.identity.v1beta2.CreateApiKeyRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRole(value); + break; + case 2: + var value = /** @type {number} */ (reader.readInt32()); + msg.setExpiresAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.CreateApiKeyRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRole(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getExpiresAt(); + if (f !== 0) { + writer.writeInt32( + 2, + f + ); + } +}; + + +/** + * optional string role = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.prototype.getRole = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.prototype.setRole = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional int32 expires_at = 2; + * @return {number} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.prototype.getExpiresAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.prototype.setExpiresAt = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.CreateApiKeyResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessKeyId: jspb.Message.getFieldWithDefault(msg, 2, ""), + accessKeySecret: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.CreateApiKeyResponse; + return proto.fonoster.identity.v1beta2.CreateApiKeyResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeyId(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeySecret(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.CreateApiKeyResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessKeyId(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAccessKeySecret(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_key_id = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.getAccessKeyId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.setAccessKeyId = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string access_key_secret = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.getAccessKeySecret = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.setAccessKeySecret = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.DeleteApiKeyRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.DeleteApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.DeleteApiKeyRequest; + return proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.DeleteApiKeyRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.DeleteApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.DeleteApiKeyRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.DeleteApiKeyRequest} returns this + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.DeleteApiKeyResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.DeleteApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.DeleteApiKeyResponse; + return proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.DeleteApiKeyResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.DeleteApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.DeleteApiKeyResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.DeleteApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ListApiKeysRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 3, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ListApiKeysRequest; + return proto.fonoster.identity.v1beta2.ListApiKeysRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 3: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ListApiKeysRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 3, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 3; + * @return {number} + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} returns this + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} returns this + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ListApiKeysResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.identity.v1beta2.ApiKey.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ListApiKeysResponse; + return proto.fonoster.identity.v1beta2.ListApiKeysResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.identity.v1beta2.ApiKey; + reader.readMessage(value,proto.fonoster.identity.v1beta2.ApiKey.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ListApiKeysResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.identity.v1beta2.ApiKey.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated ApiKey items = 1; + * @return {!Array} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.identity.v1beta2.ApiKey, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} returns this +*/ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.identity.v1beta2.ApiKey=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.identity.v1beta2.ApiKey} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.identity.v1beta2.ApiKey, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} returns this + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} returns this + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest; + return proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest} returns this + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessKeyId: jspb.Message.getFieldWithDefault(msg, 2, ""), + accessKeySecret: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse; + return proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeyId(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeySecret(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessKeyId(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAccessKeySecret(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_key_id = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.getAccessKeyId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.setAccessKeyId = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string access_key_secret = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.getAccessKeySecret = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.setAccessKeySecret = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ApiKey.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ApiKey} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ApiKey.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessKeyId: jspb.Message.getFieldWithDefault(msg, 2, ""), + role: jspb.Message.getFieldWithDefault(msg, 3, ""), + expiresAt: jspb.Message.getFieldWithDefault(msg, 4, 0), + createdAt: jspb.Message.getFieldWithDefault(msg, 5, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 6, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ApiKey} + */ +proto.fonoster.identity.v1beta2.ApiKey.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ApiKey; + return proto.fonoster.identity.v1beta2.ApiKey.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ApiKey} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ApiKey} + */ +proto.fonoster.identity.v1beta2.ApiKey.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeyId(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setRole(value); + break; + case 4: + var value = /** @type {number} */ (reader.readInt32()); + msg.setExpiresAt(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ApiKey.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ApiKey} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ApiKey.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessKeyId(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getRole(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getExpiresAt(); + if (f !== 0) { + writer.writeInt32( + 4, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ApiKey} returns this + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_key_id = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.getAccessKeyId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ApiKey} returns this + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.setAccessKeyId = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string role = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.getRole = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ApiKey} returns this + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.setRole = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional int32 expires_at = 4; + * @return {number} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.getExpiresAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.ApiKey} returns this + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.setExpiresAt = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional int32 created_at = 5; + * @return {number} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.ApiKey} returns this + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional int32 updated_at = 6; + * @return {number} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.ApiKey} returns this + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + username: jspb.Message.getFieldWithDefault(msg, 1, ""), + password: jspb.Message.getFieldWithDefault(msg, 2, ""), + verificationCode: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest; + return proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPassword(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setVerificationCode(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getPassword(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getVerificationCode(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string username = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string password = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.getPassword = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.setPassword = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string verification_code = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.getVerificationCode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.setVerificationCode = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + idToken: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessToken: jspb.Message.getFieldWithDefault(msg, 2, ""), + refreshToken: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse; + return proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setIdToken(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessToken(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setRefreshToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getRefreshToken(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string id_token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.getIdToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.setIdToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.getAccessToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.setAccessToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string refresh_token = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.getRefreshToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.setRefreshToken = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.toObject = function(includeInstance, msg) { + var f, obj = { + accessKeyId: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessKeySecret: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest; + return proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeyId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeySecret(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccessKeyId(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessKeySecret(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional string access_key_id = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.prototype.getAccessKeyId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.prototype.setAccessKeyId = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_key_secret = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.prototype.getAccessKeySecret = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.prototype.setAccessKeySecret = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.toObject = function(includeInstance, msg) { + var f, obj = { + idToken: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessToken: jspb.Message.getFieldWithDefault(msg, 2, ""), + refreshToken: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse; + return proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setIdToken(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessToken(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setRefreshToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getRefreshToken(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string id_token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.getIdToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.setIdToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.getAccessToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.setAccessToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string refresh_token = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.getRefreshToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.setRefreshToken = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.toObject = function(includeInstance, msg) { + var f, obj = { + provider: jspb.Message.getFieldWithDefault(msg, 1, 0), + username: jspb.Message.getFieldWithDefault(msg, 2, ""), + code: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest; + return proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.Oauth2Provider} */ (reader.readEnum()); + msg.setProvider(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setCode(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getProvider(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getCode(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.Oauth2Provider = { + GITHUB: 0 +}; + +/** + * optional Oauth2Provider provider = 1; + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.Oauth2Provider} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.getProvider = function() { + return /** @type {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.Oauth2Provider} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.Oauth2Provider} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.setProvider = function(value) { + return jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string username = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string code = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.getCode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.setCode = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.toObject = function(includeInstance, msg) { + var f, obj = { + idToken: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessToken: jspb.Message.getFieldWithDefault(msg, 2, ""), + refreshToken: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse; + return proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setIdToken(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessToken(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setRefreshToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getRefreshToken(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string id_token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.getIdToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.setIdToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.getAccessToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.setAccessToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string refresh_token = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.getRefreshToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.setRefreshToken = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.toObject = function(includeInstance, msg) { + var f, obj = { + refreshToken: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest; + return proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRefreshToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRefreshToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string refresh_token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.prototype.getRefreshToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.prototype.setRefreshToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.toObject = function(includeInstance, msg) { + var f, obj = { + idToken: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessToken: jspb.Message.getFieldWithDefault(msg, 2, ""), + refreshToken: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse; + return proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setIdToken(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessToken(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setRefreshToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getRefreshToken(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string id_token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.getIdToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.setIdToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.getAccessToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.setAccessToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string refresh_token = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.getRefreshToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.setRefreshToken = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.RevokeTokenRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.RevokeTokenRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.toObject = function(includeInstance, msg) { + var f, obj = { + token: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.RevokeTokenRequest} + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.RevokeTokenRequest; + return proto.fonoster.identity.v1beta2.RevokeTokenRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.RevokeTokenRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.RevokeTokenRequest} + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.RevokeTokenRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.RevokeTokenRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.prototype.getToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RevokeTokenRequest} returns this + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.prototype.setToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.RevokeTokenResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.RevokeTokenResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.toObject = function(includeInstance, msg) { + var f, obj = { + token: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.RevokeTokenResponse} + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.RevokeTokenResponse; + return proto.fonoster.identity.v1beta2.RevokeTokenResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.RevokeTokenResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.RevokeTokenResponse} + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.RevokeTokenResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.RevokeTokenResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.prototype.getToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RevokeTokenResponse} returns this + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.prototype.setToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.GetPublicKeyResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.GetPublicKeyResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.toObject = function(includeInstance, msg) { + var f, obj = { + publicKey: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.GetPublicKeyResponse} + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.GetPublicKeyResponse; + return proto.fonoster.identity.v1beta2.GetPublicKeyResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.GetPublicKeyResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.GetPublicKeyResponse} + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setPublicKey(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.GetPublicKeyResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.GetPublicKeyResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPublicKey(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string public_key = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.prototype.getPublicKey = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.GetPublicKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.prototype.setPublicKey = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * @enum {number} + */ +proto.fonoster.identity.v1beta2.ContactType = { + EMAIL: 0, + PHONE: 1 +}; + +goog.object.extend(exports, proto.fonoster.identity.v1beta2); diff --git a/mods/sdk/src/generated/node/numbers_grpc_pb.js b/mods/sdk/src/generated/node/numbers_grpc_pb.js new file mode 100644 index 000000000..604fb4422 --- /dev/null +++ b/mods/sdk/src/generated/node/numbers_grpc_pb.js @@ -0,0 +1,200 @@ +// GENERATED CODE -- DO NOT EDIT! + +// Original file comments: +// +// Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) +// http://github.com/fonoster/fonoster +// +// This file is part of Fonoster +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +'use strict'; +var grpc = require('@grpc/grpc-js'); +var numbers_pb = require('./numbers_pb.js'); + +function serialize_fonoster_numbers_v1beta2_CreateNumberRequest(arg) { + if (!(arg instanceof numbers_pb.CreateNumberRequest)) { + throw new Error('Expected argument of type fonoster.numbers.v1beta2.CreateNumberRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_numbers_v1beta2_CreateNumberRequest(buffer_arg) { + return numbers_pb.CreateNumberRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_numbers_v1beta2_CreateNumberResponse(arg) { + if (!(arg instanceof numbers_pb.CreateNumberResponse)) { + throw new Error('Expected argument of type fonoster.numbers.v1beta2.CreateNumberResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_numbers_v1beta2_CreateNumberResponse(buffer_arg) { + return numbers_pb.CreateNumberResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_numbers_v1beta2_DeleteNumberRequest(arg) { + if (!(arg instanceof numbers_pb.DeleteNumberRequest)) { + throw new Error('Expected argument of type fonoster.numbers.v1beta2.DeleteNumberRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_numbers_v1beta2_DeleteNumberRequest(buffer_arg) { + return numbers_pb.DeleteNumberRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_numbers_v1beta2_DeleteNumberResponse(arg) { + if (!(arg instanceof numbers_pb.DeleteNumberResponse)) { + throw new Error('Expected argument of type fonoster.numbers.v1beta2.DeleteNumberResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_numbers_v1beta2_DeleteNumberResponse(buffer_arg) { + return numbers_pb.DeleteNumberResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_numbers_v1beta2_GetNumberRequest(arg) { + if (!(arg instanceof numbers_pb.GetNumberRequest)) { + throw new Error('Expected argument of type fonoster.numbers.v1beta2.GetNumberRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_numbers_v1beta2_GetNumberRequest(buffer_arg) { + return numbers_pb.GetNumberRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_numbers_v1beta2_ListNumbersRequest(arg) { + if (!(arg instanceof numbers_pb.ListNumbersRequest)) { + throw new Error('Expected argument of type fonoster.numbers.v1beta2.ListNumbersRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_numbers_v1beta2_ListNumbersRequest(buffer_arg) { + return numbers_pb.ListNumbersRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_numbers_v1beta2_ListNumbersResponse(arg) { + if (!(arg instanceof numbers_pb.ListNumbersResponse)) { + throw new Error('Expected argument of type fonoster.numbers.v1beta2.ListNumbersResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_numbers_v1beta2_ListNumbersResponse(buffer_arg) { + return numbers_pb.ListNumbersResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_numbers_v1beta2_Number(arg) { + if (!(arg instanceof numbers_pb.Number)) { + throw new Error('Expected argument of type fonoster.numbers.v1beta2.Number'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_numbers_v1beta2_Number(buffer_arg) { + return numbers_pb.Number.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_numbers_v1beta2_UpdateNumberRequest(arg) { + if (!(arg instanceof numbers_pb.UpdateNumberRequest)) { + throw new Error('Expected argument of type fonoster.numbers.v1beta2.UpdateNumberRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_numbers_v1beta2_UpdateNumberRequest(buffer_arg) { + return numbers_pb.UpdateNumberRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_numbers_v1beta2_UpdateNumberResponse(arg) { + if (!(arg instanceof numbers_pb.UpdateNumberResponse)) { + throw new Error('Expected argument of type fonoster.numbers.v1beta2.UpdateNumberResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_numbers_v1beta2_UpdateNumberResponse(buffer_arg) { + return numbers_pb.UpdateNumberResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + + +// The Numbers service definition +var NumbersService = exports.NumbersService = { + // Create a new Number +createNumber: { + path: '/fonoster.numbers.v1beta2.Numbers/CreateNumber', + requestStream: false, + responseStream: false, + requestType: numbers_pb.CreateNumberRequest, + responseType: numbers_pb.CreateNumberResponse, + requestSerialize: serialize_fonoster_numbers_v1beta2_CreateNumberRequest, + requestDeserialize: deserialize_fonoster_numbers_v1beta2_CreateNumberRequest, + responseSerialize: serialize_fonoster_numbers_v1beta2_CreateNumberResponse, + responseDeserialize: deserialize_fonoster_numbers_v1beta2_CreateNumberResponse, + }, + // Update an existing Number +updateNumber: { + path: '/fonoster.numbers.v1beta2.Numbers/UpdateNumber', + requestStream: false, + responseStream: false, + requestType: numbers_pb.UpdateNumberRequest, + responseType: numbers_pb.UpdateNumberResponse, + requestSerialize: serialize_fonoster_numbers_v1beta2_UpdateNumberRequest, + requestDeserialize: deserialize_fonoster_numbers_v1beta2_UpdateNumberRequest, + responseSerialize: serialize_fonoster_numbers_v1beta2_UpdateNumberResponse, + responseDeserialize: deserialize_fonoster_numbers_v1beta2_UpdateNumberResponse, + }, + // Get an existing Number +getNumber: { + path: '/fonoster.numbers.v1beta2.Numbers/GetNumber', + requestStream: false, + responseStream: false, + requestType: numbers_pb.GetNumberRequest, + responseType: numbers_pb.Number, + requestSerialize: serialize_fonoster_numbers_v1beta2_GetNumberRequest, + requestDeserialize: deserialize_fonoster_numbers_v1beta2_GetNumberRequest, + responseSerialize: serialize_fonoster_numbers_v1beta2_Number, + responseDeserialize: deserialize_fonoster_numbers_v1beta2_Number, + }, + // Delete an existing Number +deleteNumber: { + path: '/fonoster.numbers.v1beta2.Numbers/DeleteNumber', + requestStream: false, + responseStream: false, + requestType: numbers_pb.DeleteNumberRequest, + responseType: numbers_pb.DeleteNumberResponse, + requestSerialize: serialize_fonoster_numbers_v1beta2_DeleteNumberRequest, + requestDeserialize: deserialize_fonoster_numbers_v1beta2_DeleteNumberRequest, + responseSerialize: serialize_fonoster_numbers_v1beta2_DeleteNumberResponse, + responseDeserialize: deserialize_fonoster_numbers_v1beta2_DeleteNumberResponse, + }, + // List Numbers +listNumbers: { + path: '/fonoster.numbers.v1beta2.Numbers/ListNumbers', + requestStream: false, + responseStream: false, + requestType: numbers_pb.ListNumbersRequest, + responseType: numbers_pb.ListNumbersResponse, + requestSerialize: serialize_fonoster_numbers_v1beta2_ListNumbersRequest, + requestDeserialize: deserialize_fonoster_numbers_v1beta2_ListNumbersRequest, + responseSerialize: serialize_fonoster_numbers_v1beta2_ListNumbersResponse, + responseDeserialize: deserialize_fonoster_numbers_v1beta2_ListNumbersResponse, + }, +}; + +exports.NumbersClient = grpc.makeGenericClientConstructor(NumbersService); diff --git a/mods/sdk/src/generated/node/numbers_pb.js b/mods/sdk/src/generated/node/numbers_pb.js new file mode 100644 index 000000000..f77561dd6 --- /dev/null +++ b/mods/sdk/src/generated/node/numbers_pb.js @@ -0,0 +1,2650 @@ +// source: numbers.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.numbers.v1beta2.CreateNumberRequest', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.CreateNumberRequest.IngressHandlerCase', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.CreateNumberResponse', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.DeleteNumberRequest', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.DeleteNumberResponse', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.GetNumberRequest', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.ListNumbersRequest', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.ListNumbersResponse', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.Number', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.Number.IngressHandlerCase', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.Number.Trunk', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.UpdateNumberRequest', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.UpdateNumberRequest.IngressHandlerCase', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.UpdateNumberResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.Number = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.fonoster.numbers.v1beta2.Number.oneofGroups_); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.Number, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.Number.displayName = 'proto.fonoster.numbers.v1beta2.Number'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.Number.Trunk = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.Number.Trunk, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.Number.Trunk.displayName = 'proto.fonoster.numbers.v1beta2.Number.Trunk'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.CreateNumberRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.CreateNumberRequest.displayName = 'proto.fonoster.numbers.v1beta2.CreateNumberRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.CreateNumberResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.CreateNumberResponse.displayName = 'proto.fonoster.numbers.v1beta2.CreateNumberResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.UpdateNumberRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.UpdateNumberRequest.displayName = 'proto.fonoster.numbers.v1beta2.UpdateNumberRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.UpdateNumberResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.UpdateNumberResponse.displayName = 'proto.fonoster.numbers.v1beta2.UpdateNumberResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.GetNumberRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.GetNumberRequest.displayName = 'proto.fonoster.numbers.v1beta2.GetNumberRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.DeleteNumberRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.DeleteNumberRequest.displayName = 'proto.fonoster.numbers.v1beta2.DeleteNumberRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.DeleteNumberResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.DeleteNumberResponse.displayName = 'proto.fonoster.numbers.v1beta2.DeleteNumberResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.ListNumbersRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.ListNumbersRequest.displayName = 'proto.fonoster.numbers.v1beta2.ListNumbersRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.numbers.v1beta2.ListNumbersResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.ListNumbersResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.ListNumbersResponse.displayName = 'proto.fonoster.numbers.v1beta2.ListNumbersResponse'; +} + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.fonoster.numbers.v1beta2.Number.oneofGroups_ = [[10,11]]; + +/** + * @enum {number} + */ +proto.fonoster.numbers.v1beta2.Number.IngressHandlerCase = { + INGRESS_HANDLER_NOT_SET: 0, + AGENT_AOR: 10, + APP_REF: 11 +}; + +/** + * @return {proto.fonoster.numbers.v1beta2.Number.IngressHandlerCase} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getIngressHandlerCase = function() { + return /** @type {proto.fonoster.numbers.v1beta2.Number.IngressHandlerCase} */(jspb.Message.computeOneofCase(this, proto.fonoster.numbers.v1beta2.Number.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.Number.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.Number} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.Number.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + telUrl: jspb.Message.getFieldWithDefault(msg, 3, ""), + city: jspb.Message.getFieldWithDefault(msg, 4, ""), + country: jspb.Message.getFieldWithDefault(msg, 5, ""), + countryIsoCode: jspb.Message.getFieldWithDefault(msg, 6, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 7, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 8, 0), + trunk: (f = msg.getTrunk()) && proto.fonoster.numbers.v1beta2.Number.Trunk.toObject(includeInstance, f), + agentAor: jspb.Message.getFieldWithDefault(msg, 10, ""), + appRef: jspb.Message.getFieldWithDefault(msg, 11, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.Number} + */ +proto.fonoster.numbers.v1beta2.Number.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.Number; + return proto.fonoster.numbers.v1beta2.Number.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.Number} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.Number} + */ +proto.fonoster.numbers.v1beta2.Number.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setTelUrl(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setCity(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setCountry(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setCountryIsoCode(value); + break; + case 7: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 8: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + case 9: + var value = new proto.fonoster.numbers.v1beta2.Number.Trunk; + reader.readMessage(value,proto.fonoster.numbers.v1beta2.Number.Trunk.deserializeBinaryFromReader); + msg.setTrunk(value); + break; + case 10: + var value = /** @type {string} */ (reader.readString()); + msg.setAgentAor(value); + break; + case 11: + var value = /** @type {string} */ (reader.readString()); + msg.setAppRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.Number.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.Number} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.Number.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getTelUrl(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getCity(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getCountry(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getCountryIsoCode(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 7, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 8, + f + ); + } + f = message.getTrunk(); + if (f != null) { + writer.writeMessage( + 9, + f, + proto.fonoster.numbers.v1beta2.Number.Trunk.serializeBinaryToWriter + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 10)); + if (f != null) { + writer.writeString( + 10, + f + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 11)); + if (f != null) { + writer.writeString( + 11, + f + ); + } +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.Number.Trunk.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.Number.Trunk} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.Number.Trunk} + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.Number.Trunk; + return proto.fonoster.numbers.v1beta2.Number.Trunk.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.Number.Trunk} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.Number.Trunk} + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.Number.Trunk.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.Number.Trunk} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number.Trunk} returns this + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number.Trunk} returns this + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string tel_url = 3; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getTelUrl = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setTelUrl = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string city = 4; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getCity = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setCity = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string country = 5; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getCountry = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setCountry = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string country_iso_code = 6; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getCountryIsoCode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setCountryIsoCode = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional int32 created_at = 7; + * @return {number} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + + +/** + * optional int32 updated_at = 8; + * @return {number} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 8, value); +}; + + +/** + * optional Trunk trunk = 9; + * @return {?proto.fonoster.numbers.v1beta2.Number.Trunk} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getTrunk = function() { + return /** @type{?proto.fonoster.numbers.v1beta2.Number.Trunk} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.numbers.v1beta2.Number.Trunk, 9)); +}; + + +/** + * @param {?proto.fonoster.numbers.v1beta2.Number.Trunk|undefined} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this +*/ +proto.fonoster.numbers.v1beta2.Number.prototype.setTrunk = function(value) { + return jspb.Message.setWrapperField(this, 9, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.clearTrunk = function() { + return this.setTrunk(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.hasTrunk = function() { + return jspb.Message.getField(this, 9) != null; +}; + + +/** + * optional string agent_aor = 10; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getAgentAor = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setAgentAor = function(value) { + return jspb.Message.setOneofField(this, 10, proto.fonoster.numbers.v1beta2.Number.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.clearAgentAor = function() { + return jspb.Message.setOneofField(this, 10, proto.fonoster.numbers.v1beta2.Number.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.hasAgentAor = function() { + return jspb.Message.getField(this, 10) != null; +}; + + +/** + * optional string app_ref = 11; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getAppRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setAppRef = function(value) { + return jspb.Message.setOneofField(this, 11, proto.fonoster.numbers.v1beta2.Number.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.clearAppRef = function() { + return jspb.Message.setOneofField(this, 11, proto.fonoster.numbers.v1beta2.Number.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.hasAppRef = function() { + return jspb.Message.getField(this, 11) != null; +}; + + + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_ = [[7,8]]; + +/** + * @enum {number} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.IngressHandlerCase = { + INGRESS_HANDLER_NOT_SET: 0, + AGENT_AOR: 7, + APP_REF: 8 +}; + +/** + * @return {proto.fonoster.numbers.v1beta2.CreateNumberRequest.IngressHandlerCase} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getIngressHandlerCase = function() { + return /** @type {proto.fonoster.numbers.v1beta2.CreateNumberRequest.IngressHandlerCase} */(jspb.Message.computeOneofCase(this, proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.CreateNumberRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + telUrl: jspb.Message.getFieldWithDefault(msg, 2, ""), + city: jspb.Message.getFieldWithDefault(msg, 3, ""), + country: jspb.Message.getFieldWithDefault(msg, 4, ""), + countryIsoCode: jspb.Message.getFieldWithDefault(msg, 5, ""), + trunkRef: jspb.Message.getFieldWithDefault(msg, 6, ""), + agentAor: jspb.Message.getFieldWithDefault(msg, 7, ""), + appRef: jspb.Message.getFieldWithDefault(msg, 8, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.CreateNumberRequest; + return proto.fonoster.numbers.v1beta2.CreateNumberRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setTelUrl(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setCity(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setCountry(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setCountryIsoCode(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setTrunkRef(value); + break; + case 7: + var value = /** @type {string} */ (reader.readString()); + msg.setAgentAor(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setAppRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.CreateNumberRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getTelUrl(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getCity(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getCountry(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getCountryIsoCode(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getTrunkRef(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 7)); + if (f != null) { + writer.writeString( + 7, + f + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 8)); + if (f != null) { + writer.writeString( + 8, + f + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string tel_url = 2; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getTelUrl = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setTelUrl = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string city = 3; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getCity = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setCity = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string country = 4; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getCountry = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setCountry = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string country_iso_code = 5; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getCountryIsoCode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setCountryIsoCode = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string trunk_ref = 6; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getTrunkRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setTrunkRef = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional string agent_aor = 7; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getAgentAor = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setAgentAor = function(value) { + return jspb.Message.setOneofField(this, 7, proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.clearAgentAor = function() { + return jspb.Message.setOneofField(this, 7, proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.hasAgentAor = function() { + return jspb.Message.getField(this, 7) != null; +}; + + +/** + * optional string app_ref = 8; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getAppRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setAppRef = function(value) { + return jspb.Message.setOneofField(this, 8, proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.clearAppRef = function() { + return jspb.Message.setOneofField(this, 8, proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.hasAppRef = function() { + return jspb.Message.getField(this, 8) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.CreateNumberResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.CreateNumberResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberResponse} + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.CreateNumberResponse; + return proto.fonoster.numbers.v1beta2.CreateNumberResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.CreateNumberResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberResponse} + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.CreateNumberResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.CreateNumberResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberResponse} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_ = [[4,5]]; + +/** + * @enum {number} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.IngressHandlerCase = { + INGRESS_HANDLER_NOT_SET: 0, + AGENT_AOR: 4, + APP_REF: 5 +}; + +/** + * @return {proto.fonoster.numbers.v1beta2.UpdateNumberRequest.IngressHandlerCase} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.getIngressHandlerCase = function() { + return /** @type {proto.fonoster.numbers.v1beta2.UpdateNumberRequest.IngressHandlerCase} */(jspb.Message.computeOneofCase(this, proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.UpdateNumberRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + trunkRef: jspb.Message.getFieldWithDefault(msg, 3, ""), + agentAor: jspb.Message.getFieldWithDefault(msg, 4, ""), + appRef: jspb.Message.getFieldWithDefault(msg, 5, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.UpdateNumberRequest; + return proto.fonoster.numbers.v1beta2.UpdateNumberRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setTrunkRef(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAgentAor(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setAppRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.UpdateNumberRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getTrunkRef(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 4)); + if (f != null) { + writer.writeString( + 4, + f + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 5)); + if (f != null) { + writer.writeString( + 5, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string trunk_ref = 3; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.getTrunkRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.setTrunkRef = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string agent_aor = 4; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.getAgentAor = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.setAgentAor = function(value) { + return jspb.Message.setOneofField(this, 4, proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.clearAgentAor = function() { + return jspb.Message.setOneofField(this, 4, proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.hasAgentAor = function() { + return jspb.Message.getField(this, 4) != null; +}; + + +/** + * optional string app_ref = 5; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.getAppRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.setAppRef = function(value) { + return jspb.Message.setOneofField(this, 5, proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.clearAppRef = function() { + return jspb.Message.setOneofField(this, 5, proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.hasAppRef = function() { + return jspb.Message.getField(this, 5) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.UpdateNumberResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.UpdateNumberResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberResponse} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.UpdateNumberResponse; + return proto.fonoster.numbers.v1beta2.UpdateNumberResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.UpdateNumberResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberResponse} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.UpdateNumberResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.UpdateNumberResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberResponse} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.GetNumberRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.GetNumberRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.GetNumberRequest} + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.GetNumberRequest; + return proto.fonoster.numbers.v1beta2.GetNumberRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.GetNumberRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.GetNumberRequest} + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.GetNumberRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.GetNumberRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.GetNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.DeleteNumberRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.DeleteNumberRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.DeleteNumberRequest} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.DeleteNumberRequest; + return proto.fonoster.numbers.v1beta2.DeleteNumberRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.DeleteNumberRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.DeleteNumberRequest} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.DeleteNumberRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.DeleteNumberRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.DeleteNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.DeleteNumberResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.DeleteNumberResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.DeleteNumberResponse} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.DeleteNumberResponse; + return proto.fonoster.numbers.v1beta2.DeleteNumberResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.DeleteNumberResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.DeleteNumberResponse} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.DeleteNumberResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.DeleteNumberResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.DeleteNumberResponse} returns this + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.ListNumbersRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.ListNumbersRequest; + return proto.fonoster.numbers.v1beta2.ListNumbersRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.ListNumbersRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} returns this + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} returns this + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.ListNumbersResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.numbers.v1beta2.Number.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.ListNumbersResponse; + return proto.fonoster.numbers.v1beta2.ListNumbersResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.numbers.v1beta2.Number; + reader.readMessage(value,proto.fonoster.numbers.v1beta2.Number.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.ListNumbersResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.numbers.v1beta2.Number.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Number items = 1; + * @return {!Array} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.numbers.v1beta2.Number, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} returns this +*/ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.numbers.v1beta2.Number=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.numbers.v1beta2.Number} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.numbers.v1beta2.Number, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} returns this + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} returns this + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +goog.object.extend(exports, proto.fonoster.numbers.v1beta2); diff --git a/mods/sdk/src/generated/node/secrets_grpc_pb.js b/mods/sdk/src/generated/node/secrets_grpc_pb.js new file mode 100644 index 000000000..9c7bbe992 --- /dev/null +++ b/mods/sdk/src/generated/node/secrets_grpc_pb.js @@ -0,0 +1,200 @@ +// GENERATED CODE -- DO NOT EDIT! + +// Original file comments: +// +// Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) +// http://github.com/fonoster/fonoster +// +// This file is part of Fonoster +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +'use strict'; +var grpc = require('@grpc/grpc-js'); +var secrets_pb = require('./secrets_pb.js'); + +function serialize_fonoster_secrets_v1beta2_CreateSecretRequest(arg) { + if (!(arg instanceof secrets_pb.CreateSecretRequest)) { + throw new Error('Expected argument of type fonoster.secrets.v1beta2.CreateSecretRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_secrets_v1beta2_CreateSecretRequest(buffer_arg) { + return secrets_pb.CreateSecretRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_secrets_v1beta2_CreateSecretResponse(arg) { + if (!(arg instanceof secrets_pb.CreateSecretResponse)) { + throw new Error('Expected argument of type fonoster.secrets.v1beta2.CreateSecretResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_secrets_v1beta2_CreateSecretResponse(buffer_arg) { + return secrets_pb.CreateSecretResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_secrets_v1beta2_DeleteSecretRequest(arg) { + if (!(arg instanceof secrets_pb.DeleteSecretRequest)) { + throw new Error('Expected argument of type fonoster.secrets.v1beta2.DeleteSecretRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_secrets_v1beta2_DeleteSecretRequest(buffer_arg) { + return secrets_pb.DeleteSecretRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_secrets_v1beta2_DeleteSecretResponse(arg) { + if (!(arg instanceof secrets_pb.DeleteSecretResponse)) { + throw new Error('Expected argument of type fonoster.secrets.v1beta2.DeleteSecretResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_secrets_v1beta2_DeleteSecretResponse(buffer_arg) { + return secrets_pb.DeleteSecretResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_secrets_v1beta2_GetSecretRequest(arg) { + if (!(arg instanceof secrets_pb.GetSecretRequest)) { + throw new Error('Expected argument of type fonoster.secrets.v1beta2.GetSecretRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_secrets_v1beta2_GetSecretRequest(buffer_arg) { + return secrets_pb.GetSecretRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_secrets_v1beta2_ListSecretsRequest(arg) { + if (!(arg instanceof secrets_pb.ListSecretsRequest)) { + throw new Error('Expected argument of type fonoster.secrets.v1beta2.ListSecretsRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_secrets_v1beta2_ListSecretsRequest(buffer_arg) { + return secrets_pb.ListSecretsRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_secrets_v1beta2_ListSecretsResponse(arg) { + if (!(arg instanceof secrets_pb.ListSecretsResponse)) { + throw new Error('Expected argument of type fonoster.secrets.v1beta2.ListSecretsResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_secrets_v1beta2_ListSecretsResponse(buffer_arg) { + return secrets_pb.ListSecretsResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_secrets_v1beta2_Secret(arg) { + if (!(arg instanceof secrets_pb.Secret)) { + throw new Error('Expected argument of type fonoster.secrets.v1beta2.Secret'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_secrets_v1beta2_Secret(buffer_arg) { + return secrets_pb.Secret.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_secrets_v1beta2_UpdateSecretRequest(arg) { + if (!(arg instanceof secrets_pb.UpdateSecretRequest)) { + throw new Error('Expected argument of type fonoster.secrets.v1beta2.UpdateSecretRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_secrets_v1beta2_UpdateSecretRequest(buffer_arg) { + return secrets_pb.UpdateSecretRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_secrets_v1beta2_UpdateSecretResponse(arg) { + if (!(arg instanceof secrets_pb.UpdateSecretResponse)) { + throw new Error('Expected argument of type fonoster.secrets.v1beta2.UpdateSecretResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_secrets_v1beta2_UpdateSecretResponse(buffer_arg) { + return secrets_pb.UpdateSecretResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + + +// The Secrets service definition +var SecretsService = exports.SecretsService = { + // Creates a new Secret +createSecret: { + path: '/fonoster.secrets.v1beta2.Secrets/CreateSecret', + requestStream: false, + responseStream: false, + requestType: secrets_pb.CreateSecretRequest, + responseType: secrets_pb.CreateSecretResponse, + requestSerialize: serialize_fonoster_secrets_v1beta2_CreateSecretRequest, + requestDeserialize: deserialize_fonoster_secrets_v1beta2_CreateSecretRequest, + responseSerialize: serialize_fonoster_secrets_v1beta2_CreateSecretResponse, + responseDeserialize: deserialize_fonoster_secrets_v1beta2_CreateSecretResponse, + }, + // Updates an existing set of Secret +updateSecret: { + path: '/fonoster.secrets.v1beta2.Secrets/UpdateSecret', + requestStream: false, + responseStream: false, + requestType: secrets_pb.UpdateSecretRequest, + responseType: secrets_pb.UpdateSecretResponse, + requestSerialize: serialize_fonoster_secrets_v1beta2_UpdateSecretRequest, + requestDeserialize: deserialize_fonoster_secrets_v1beta2_UpdateSecretRequest, + responseSerialize: serialize_fonoster_secrets_v1beta2_UpdateSecretResponse, + responseDeserialize: deserialize_fonoster_secrets_v1beta2_UpdateSecretResponse, + }, + // Gets the details of a given set of Secret +getSecret: { + path: '/fonoster.secrets.v1beta2.Secrets/GetSecret', + requestStream: false, + responseStream: false, + requestType: secrets_pb.GetSecretRequest, + responseType: secrets_pb.Secret, + requestSerialize: serialize_fonoster_secrets_v1beta2_GetSecretRequest, + requestDeserialize: deserialize_fonoster_secrets_v1beta2_GetSecretRequest, + responseSerialize: serialize_fonoster_secrets_v1beta2_Secret, + responseDeserialize: deserialize_fonoster_secrets_v1beta2_Secret, + }, + // Deletes an existing Secret +deleteSecret: { + path: '/fonoster.secrets.v1beta2.Secrets/DeleteSecret', + requestStream: false, + responseStream: false, + requestType: secrets_pb.DeleteSecretRequest, + responseType: secrets_pb.DeleteSecretResponse, + requestSerialize: serialize_fonoster_secrets_v1beta2_DeleteSecretRequest, + requestDeserialize: deserialize_fonoster_secrets_v1beta2_DeleteSecretRequest, + responseSerialize: serialize_fonoster_secrets_v1beta2_DeleteSecretResponse, + responseDeserialize: deserialize_fonoster_secrets_v1beta2_DeleteSecretResponse, + }, + // Lists all Secrets +listSecrets: { + path: '/fonoster.secrets.v1beta2.Secrets/ListSecrets', + requestStream: false, + responseStream: false, + requestType: secrets_pb.ListSecretsRequest, + responseType: secrets_pb.ListSecretsResponse, + requestSerialize: serialize_fonoster_secrets_v1beta2_ListSecretsRequest, + requestDeserialize: deserialize_fonoster_secrets_v1beta2_ListSecretsRequest, + responseSerialize: serialize_fonoster_secrets_v1beta2_ListSecretsResponse, + responseDeserialize: deserialize_fonoster_secrets_v1beta2_ListSecretsResponse, + }, +}; + +exports.SecretsClient = grpc.makeGenericClientConstructor(SecretsService); diff --git a/mods/sdk/src/generated/node/secrets_pb.js b/mods/sdk/src/generated/node/secrets_pb.js new file mode 100644 index 000000000..632aeb662 --- /dev/null +++ b/mods/sdk/src/generated/node/secrets_pb.js @@ -0,0 +1,1838 @@ +// source: secrets.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.secrets.v1beta2.CreateSecretRequest', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.CreateSecretResponse', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.DeleteSecretRequest', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.DeleteSecretResponse', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.GetSecretRequest', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.ListSecretsRequest', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.ListSecretsResponse', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.Secret', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.UpdateSecretRequest', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.UpdateSecretResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.Secret = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.Secret, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.Secret.displayName = 'proto.fonoster.secrets.v1beta2.Secret'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.CreateSecretRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.CreateSecretRequest.displayName = 'proto.fonoster.secrets.v1beta2.CreateSecretRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.CreateSecretResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.CreateSecretResponse.displayName = 'proto.fonoster.secrets.v1beta2.CreateSecretResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.UpdateSecretRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.UpdateSecretRequest.displayName = 'proto.fonoster.secrets.v1beta2.UpdateSecretRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.UpdateSecretResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.UpdateSecretResponse.displayName = 'proto.fonoster.secrets.v1beta2.UpdateSecretResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.GetSecretRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.GetSecretRequest.displayName = 'proto.fonoster.secrets.v1beta2.GetSecretRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.DeleteSecretRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.DeleteSecretRequest.displayName = 'proto.fonoster.secrets.v1beta2.DeleteSecretRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.DeleteSecretResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.DeleteSecretResponse.displayName = 'proto.fonoster.secrets.v1beta2.DeleteSecretResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.ListSecretsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.ListSecretsRequest.displayName = 'proto.fonoster.secrets.v1beta2.ListSecretsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.secrets.v1beta2.ListSecretsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.ListSecretsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.ListSecretsResponse.displayName = 'proto.fonoster.secrets.v1beta2.ListSecretsResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.Secret.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.Secret} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.Secret.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + secret: jspb.Message.getFieldWithDefault(msg, 3, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 4, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 5, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.Secret} + */ +proto.fonoster.secrets.v1beta2.Secret.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.Secret; + return proto.fonoster.secrets.v1beta2.Secret.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.Secret} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.Secret} + */ +proto.fonoster.secrets.v1beta2.Secret.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setSecret(value); + break; + case 4: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.Secret.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.Secret} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.Secret.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getSecret(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 4, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.Secret} returns this + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.Secret} returns this + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string secret = 3; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.getSecret = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.Secret} returns this + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.setSecret = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional int32 created_at = 4; + * @return {number} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.secrets.v1beta2.Secret} returns this + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional int32 updated_at = 5; + * @return {number} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.secrets.v1beta2.Secret} returns this + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.CreateSecretRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + secret: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.CreateSecretRequest; + return proto.fonoster.secrets.v1beta2.CreateSecretRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setSecret(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.CreateSecretRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getSecret(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string secret = 2; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.prototype.getSecret = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.prototype.setSecret = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.CreateSecretResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.CreateSecretResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretResponse} + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.CreateSecretResponse; + return proto.fonoster.secrets.v1beta2.CreateSecretResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.CreateSecretResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretResponse} + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.CreateSecretResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.CreateSecretResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretResponse} returns this + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.UpdateSecretRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + secret: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.UpdateSecretRequest; + return proto.fonoster.secrets.v1beta2.UpdateSecretRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setSecret(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.UpdateSecretRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getSecret(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string secret = 3; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.getSecret = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.setSecret = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.UpdateSecretResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.UpdateSecretResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretResponse} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.UpdateSecretResponse; + return proto.fonoster.secrets.v1beta2.UpdateSecretResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.UpdateSecretResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretResponse} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.UpdateSecretResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.UpdateSecretResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretResponse} returns this + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.GetSecretRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.GetSecretRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.GetSecretRequest} + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.GetSecretRequest; + return proto.fonoster.secrets.v1beta2.GetSecretRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.GetSecretRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.GetSecretRequest} + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.GetSecretRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.GetSecretRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.GetSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.DeleteSecretRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.DeleteSecretRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.DeleteSecretRequest} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.DeleteSecretRequest; + return proto.fonoster.secrets.v1beta2.DeleteSecretRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.DeleteSecretRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.DeleteSecretRequest} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.DeleteSecretRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.DeleteSecretRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.DeleteSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.DeleteSecretResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.DeleteSecretResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.DeleteSecretResponse} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.DeleteSecretResponse; + return proto.fonoster.secrets.v1beta2.DeleteSecretResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.DeleteSecretResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.DeleteSecretResponse} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.DeleteSecretResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.DeleteSecretResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.DeleteSecretResponse} returns this + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.ListSecretsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.ListSecretsRequest; + return proto.fonoster.secrets.v1beta2.ListSecretsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.ListSecretsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} returns this + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} returns this + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.ListSecretsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.secrets.v1beta2.Secret.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.ListSecretsResponse; + return proto.fonoster.secrets.v1beta2.ListSecretsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.secrets.v1beta2.Secret; + reader.readMessage(value,proto.fonoster.secrets.v1beta2.Secret.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.ListSecretsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.secrets.v1beta2.Secret.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Secret items = 1; + * @return {!Array} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.secrets.v1beta2.Secret, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} returns this +*/ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.secrets.v1beta2.Secret=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.secrets.v1beta2.Secret} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.secrets.v1beta2.Secret, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} returns this + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} returns this + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +goog.object.extend(exports, proto.fonoster.secrets.v1beta2); diff --git a/mods/sdk/src/generated/node/trunks_grpc_pb.js b/mods/sdk/src/generated/node/trunks_grpc_pb.js new file mode 100644 index 000000000..82470dd6c --- /dev/null +++ b/mods/sdk/src/generated/node/trunks_grpc_pb.js @@ -0,0 +1,200 @@ +// GENERATED CODE -- DO NOT EDIT! + +// Original file comments: +// +// Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) +// http://github.com/fonoster/fonoster +// +// This file is part of Fonoster +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +'use strict'; +var grpc = require('@grpc/grpc-js'); +var trunks_pb = require('./trunks_pb.js'); + +function serialize_fonoster_trunks_v1beta2_CreateTrunkRequest(arg) { + if (!(arg instanceof trunks_pb.CreateTrunkRequest)) { + throw new Error('Expected argument of type fonoster.trunks.v1beta2.CreateTrunkRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_trunks_v1beta2_CreateTrunkRequest(buffer_arg) { + return trunks_pb.CreateTrunkRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_trunks_v1beta2_CreateTrunkResponse(arg) { + if (!(arg instanceof trunks_pb.CreateTrunkResponse)) { + throw new Error('Expected argument of type fonoster.trunks.v1beta2.CreateTrunkResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_trunks_v1beta2_CreateTrunkResponse(buffer_arg) { + return trunks_pb.CreateTrunkResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_trunks_v1beta2_DeleteTrunkRequest(arg) { + if (!(arg instanceof trunks_pb.DeleteTrunkRequest)) { + throw new Error('Expected argument of type fonoster.trunks.v1beta2.DeleteTrunkRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_trunks_v1beta2_DeleteTrunkRequest(buffer_arg) { + return trunks_pb.DeleteTrunkRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_trunks_v1beta2_DeleteTrunkResponse(arg) { + if (!(arg instanceof trunks_pb.DeleteTrunkResponse)) { + throw new Error('Expected argument of type fonoster.trunks.v1beta2.DeleteTrunkResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_trunks_v1beta2_DeleteTrunkResponse(buffer_arg) { + return trunks_pb.DeleteTrunkResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_trunks_v1beta2_GetTrunkRequest(arg) { + if (!(arg instanceof trunks_pb.GetTrunkRequest)) { + throw new Error('Expected argument of type fonoster.trunks.v1beta2.GetTrunkRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_trunks_v1beta2_GetTrunkRequest(buffer_arg) { + return trunks_pb.GetTrunkRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_trunks_v1beta2_ListTrunksRequest(arg) { + if (!(arg instanceof trunks_pb.ListTrunksRequest)) { + throw new Error('Expected argument of type fonoster.trunks.v1beta2.ListTrunksRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_trunks_v1beta2_ListTrunksRequest(buffer_arg) { + return trunks_pb.ListTrunksRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_trunks_v1beta2_ListTrunksResponse(arg) { + if (!(arg instanceof trunks_pb.ListTrunksResponse)) { + throw new Error('Expected argument of type fonoster.trunks.v1beta2.ListTrunksResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_trunks_v1beta2_ListTrunksResponse(buffer_arg) { + return trunks_pb.ListTrunksResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_trunks_v1beta2_Trunk(arg) { + if (!(arg instanceof trunks_pb.Trunk)) { + throw new Error('Expected argument of type fonoster.trunks.v1beta2.Trunk'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_trunks_v1beta2_Trunk(buffer_arg) { + return trunks_pb.Trunk.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_trunks_v1beta2_UpdateTrunkRequest(arg) { + if (!(arg instanceof trunks_pb.UpdateTrunkRequest)) { + throw new Error('Expected argument of type fonoster.trunks.v1beta2.UpdateTrunkRequest'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_trunks_v1beta2_UpdateTrunkRequest(buffer_arg) { + return trunks_pb.UpdateTrunkRequest.deserializeBinary(new Uint8Array(buffer_arg)); +} + +function serialize_fonoster_trunks_v1beta2_UpdateTrunkResponse(arg) { + if (!(arg instanceof trunks_pb.UpdateTrunkResponse)) { + throw new Error('Expected argument of type fonoster.trunks.v1beta2.UpdateTrunkResponse'); + } + return Buffer.from(arg.serializeBinary()); +} + +function deserialize_fonoster_trunks_v1beta2_UpdateTrunkResponse(buffer_arg) { + return trunks_pb.UpdateTrunkResponse.deserializeBinary(new Uint8Array(buffer_arg)); +} + + +// The Trunks service definition +var TrunksService = exports.TrunksService = { + // Create a new Trunk +createTrunk: { + path: '/fonoster.trunks.v1beta2.Trunks/CreateTrunk', + requestStream: false, + responseStream: false, + requestType: trunks_pb.CreateTrunkRequest, + responseType: trunks_pb.CreateTrunkResponse, + requestSerialize: serialize_fonoster_trunks_v1beta2_CreateTrunkRequest, + requestDeserialize: deserialize_fonoster_trunks_v1beta2_CreateTrunkRequest, + responseSerialize: serialize_fonoster_trunks_v1beta2_CreateTrunkResponse, + responseDeserialize: deserialize_fonoster_trunks_v1beta2_CreateTrunkResponse, + }, + // UpdateTrunk an existing Trunk +updateTrunk: { + path: '/fonoster.trunks.v1beta2.Trunks/UpdateTrunk', + requestStream: false, + responseStream: false, + requestType: trunks_pb.UpdateTrunkRequest, + responseType: trunks_pb.UpdateTrunkResponse, + requestSerialize: serialize_fonoster_trunks_v1beta2_UpdateTrunkRequest, + requestDeserialize: deserialize_fonoster_trunks_v1beta2_UpdateTrunkRequest, + responseSerialize: serialize_fonoster_trunks_v1beta2_UpdateTrunkResponse, + responseDeserialize: deserialize_fonoster_trunks_v1beta2_UpdateTrunkResponse, + }, + // Get a Trunk by reference +getTrunk: { + path: '/fonoster.trunks.v1beta2.Trunks/GetTrunk', + requestStream: false, + responseStream: false, + requestType: trunks_pb.GetTrunkRequest, + responseType: trunks_pb.Trunk, + requestSerialize: serialize_fonoster_trunks_v1beta2_GetTrunkRequest, + requestDeserialize: deserialize_fonoster_trunks_v1beta2_GetTrunkRequest, + responseSerialize: serialize_fonoster_trunks_v1beta2_Trunk, + responseDeserialize: deserialize_fonoster_trunks_v1beta2_Trunk, + }, + // Delete a Trunk by reference +deleteTrunk: { + path: '/fonoster.trunks.v1beta2.Trunks/DeleteTrunk', + requestStream: false, + responseStream: false, + requestType: trunks_pb.DeleteTrunkRequest, + responseType: trunks_pb.DeleteTrunkResponse, + requestSerialize: serialize_fonoster_trunks_v1beta2_DeleteTrunkRequest, + requestDeserialize: deserialize_fonoster_trunks_v1beta2_DeleteTrunkRequest, + responseSerialize: serialize_fonoster_trunks_v1beta2_DeleteTrunkResponse, + responseDeserialize: deserialize_fonoster_trunks_v1beta2_DeleteTrunkResponse, + }, + // List all Trunks +listTrunks: { + path: '/fonoster.trunks.v1beta2.Trunks/ListTrunks', + requestStream: false, + responseStream: false, + requestType: trunks_pb.ListTrunksRequest, + responseType: trunks_pb.ListTrunksResponse, + requestSerialize: serialize_fonoster_trunks_v1beta2_ListTrunksRequest, + requestDeserialize: deserialize_fonoster_trunks_v1beta2_ListTrunksRequest, + responseSerialize: serialize_fonoster_trunks_v1beta2_ListTrunksResponse, + responseDeserialize: deserialize_fonoster_trunks_v1beta2_ListTrunksResponse, + }, +}; + +exports.TrunksClient = grpc.makeGenericClientConstructor(TrunksService); diff --git a/mods/sdk/src/generated/node/trunks_pb.js b/mods/sdk/src/generated/node/trunks_pb.js new file mode 100644 index 000000000..586291a90 --- /dev/null +++ b/mods/sdk/src/generated/node/trunks_pb.js @@ -0,0 +1,3272 @@ +// source: trunks.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.trunks.v1beta2.CreateTrunkRequest', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.CreateTrunkResponse', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.DeleteTrunkRequest', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.DeleteTrunkResponse', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.GetTrunkRequest', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.ListTrunksRequest', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.ListTrunksResponse', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.Trunk', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.Trunk.Acl', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.Trunk.Credentials', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.TrunkURI', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.UpdateTrunkRequest', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.UpdateTrunkResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.TrunkURI = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.TrunkURI, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.TrunkURI.displayName = 'proto.fonoster.trunks.v1beta2.TrunkURI'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.Trunk = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.trunks.v1beta2.Trunk.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.Trunk, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.Trunk.displayName = 'proto.fonoster.trunks.v1beta2.Trunk'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.trunks.v1beta2.Trunk.Acl.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.Trunk.Acl, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.Trunk.Acl.displayName = 'proto.fonoster.trunks.v1beta2.Trunk.Acl'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.Trunk.Credentials, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.Trunk.Credentials.displayName = 'proto.fonoster.trunks.v1beta2.Trunk.Credentials'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.trunks.v1beta2.CreateTrunkRequest.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.CreateTrunkRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.CreateTrunkRequest.displayName = 'proto.fonoster.trunks.v1beta2.CreateTrunkRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.CreateTrunkResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.CreateTrunkResponse.displayName = 'proto.fonoster.trunks.v1beta2.CreateTrunkResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.UpdateTrunkRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.displayName = 'proto.fonoster.trunks.v1beta2.UpdateTrunkRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.UpdateTrunkResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.displayName = 'proto.fonoster.trunks.v1beta2.UpdateTrunkResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.GetTrunkRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.GetTrunkRequest.displayName = 'proto.fonoster.trunks.v1beta2.GetTrunkRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.DeleteTrunkRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.displayName = 'proto.fonoster.trunks.v1beta2.DeleteTrunkRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.DeleteTrunkResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.displayName = 'proto.fonoster.trunks.v1beta2.DeleteTrunkResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.ListTrunksRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.ListTrunksRequest.displayName = 'proto.fonoster.trunks.v1beta2.ListTrunksRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.trunks.v1beta2.ListTrunksResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.ListTrunksResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.ListTrunksResponse.displayName = 'proto.fonoster.trunks.v1beta2.ListTrunksResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.TrunkURI.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.TrunkURI} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.TrunkURI.toObject = function(includeInstance, msg) { + var f, obj = { + host: jspb.Message.getFieldWithDefault(msg, 1, ""), + port: jspb.Message.getFieldWithDefault(msg, 2, 0), + transport: jspb.Message.getFieldWithDefault(msg, 3, ""), + user: jspb.Message.getFieldWithDefault(msg, 4, ""), + weight: jspb.Message.getFieldWithDefault(msg, 5, 0), + priority: jspb.Message.getFieldWithDefault(msg, 6, 0), + enabled: jspb.Message.getBooleanFieldWithDefault(msg, 7, false) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.TrunkURI; + return proto.fonoster.trunks.v1beta2.TrunkURI.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.TrunkURI} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setHost(value); + break; + case 2: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPort(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setTransport(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setUser(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setWeight(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPriority(value); + break; + case 7: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setEnabled(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.TrunkURI.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.TrunkURI} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.TrunkURI.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getHost(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getPort(); + if (f !== 0) { + writer.writeInt32( + 2, + f + ); + } + f = message.getTransport(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getUser(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getWeight(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } + f = message.getPriority(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } + f = message.getEnabled(); + if (f) { + writer.writeBool( + 7, + f + ); + } +}; + + +/** + * optional string host = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getHost = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setHost = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional int32 port = 2; + * @return {number} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getPort = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setPort = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional string transport = 3; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getTransport = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setTransport = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string user = 4; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getUser = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setUser = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional int32 weight = 5; + * @return {number} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getWeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setWeight = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional int32 priority = 6; + * @return {number} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getPriority = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setPriority = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + +/** + * optional bool enabled = 7; + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getEnabled = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 7, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setEnabled = function(value) { + return jspb.Message.setProto3BooleanField(this, 7, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.trunks.v1beta2.Trunk.repeatedFields_ = [10]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.Trunk.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.Trunk} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.Trunk.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + sendRegister: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), + inboundUri: jspb.Message.getFieldWithDefault(msg, 4, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 5, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 6, 0), + accessControlList: (f = msg.getAccessControlList()) && proto.fonoster.trunks.v1beta2.Trunk.Acl.toObject(includeInstance, f), + inboundCredentials: (f = msg.getInboundCredentials()) && proto.fonoster.trunks.v1beta2.Trunk.Credentials.toObject(includeInstance, f), + outboundCredentials: (f = msg.getOutboundCredentials()) && proto.fonoster.trunks.v1beta2.Trunk.Credentials.toObject(includeInstance, f), + urisList: jspb.Message.toObjectList(msg.getUrisList(), + proto.fonoster.trunks.v1beta2.TrunkURI.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.Trunk} + */ +proto.fonoster.trunks.v1beta2.Trunk.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.Trunk; + return proto.fonoster.trunks.v1beta2.Trunk.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.Trunk} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.Trunk} + */ +proto.fonoster.trunks.v1beta2.Trunk.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setSendRegister(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setInboundUri(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + case 7: + var value = new proto.fonoster.trunks.v1beta2.Trunk.Acl; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.Trunk.Acl.deserializeBinaryFromReader); + msg.setAccessControlList(value); + break; + case 8: + var value = new proto.fonoster.trunks.v1beta2.Trunk.Credentials; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.Trunk.Credentials.deserializeBinaryFromReader); + msg.setInboundCredentials(value); + break; + case 9: + var value = new proto.fonoster.trunks.v1beta2.Trunk.Credentials; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.Trunk.Credentials.deserializeBinaryFromReader); + msg.setOutboundCredentials(value); + break; + case 10: + var value = new proto.fonoster.trunks.v1beta2.TrunkURI; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.TrunkURI.deserializeBinaryFromReader); + msg.addUris(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.Trunk.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.Trunk} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.Trunk.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getSendRegister(); + if (f) { + writer.writeBool( + 3, + f + ); + } + f = message.getInboundUri(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } + f = message.getAccessControlList(); + if (f != null) { + writer.writeMessage( + 7, + f, + proto.fonoster.trunks.v1beta2.Trunk.Acl.serializeBinaryToWriter + ); + } + f = message.getInboundCredentials(); + if (f != null) { + writer.writeMessage( + 8, + f, + proto.fonoster.trunks.v1beta2.Trunk.Credentials.serializeBinaryToWriter + ); + } + f = message.getOutboundCredentials(); + if (f != null) { + writer.writeMessage( + 9, + f, + proto.fonoster.trunks.v1beta2.Trunk.Credentials.serializeBinaryToWriter + ); + } + f = message.getUrisList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 10, + f, + proto.fonoster.trunks.v1beta2.TrunkURI.serializeBinaryToWriter + ); + } +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.repeatedFields_ = [3,4]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.Trunk.Acl.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.Trunk.Acl} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + allowList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f, + denyList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.Trunk.Acl; + return proto.fonoster.trunks.v1beta2.Trunk.Acl.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.Trunk.Acl} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.addAllow(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.addDeny(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.Trunk.Acl.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.Trunk.Acl} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAllowList(); + if (f.length > 0) { + writer.writeRepeatedString( + 3, + f + ); + } + f = message.getDenyList(); + if (f.length > 0) { + writer.writeRepeatedString( + 4, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * repeated string allow = 3; + * @return {!Array} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.getAllowList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 3)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.setAllowList = function(value) { + return jspb.Message.setField(this, 3, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.addAllow = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 3, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.clearAllowList = function() { + return this.setAllowList([]); +}; + + +/** + * repeated string deny = 4; + * @return {!Array} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.getDenyList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.setDenyList = function(value) { + return jspb.Message.setField(this, 4, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.addDeny = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 4, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.clearDenyList = function() { + return this.setDenyList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.Trunk.Credentials.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + username: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.Trunk.Credentials; + return proto.fonoster.trunks.v1beta2.Trunk.Credentials.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.Trunk.Credentials.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string username = 3; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional bool send_register = 3; + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getSendRegister = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setSendRegister = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); +}; + + +/** + * optional string inbound_uri = 4; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getInboundUri = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setInboundUri = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional int32 created_at = 5; + * @return {number} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional int32 updated_at = 6; + * @return {number} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + +/** + * optional Acl access_control_list = 7; + * @return {?proto.fonoster.trunks.v1beta2.Trunk.Acl} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getAccessControlList = function() { + return /** @type{?proto.fonoster.trunks.v1beta2.Trunk.Acl} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.trunks.v1beta2.Trunk.Acl, 7)); +}; + + +/** + * @param {?proto.fonoster.trunks.v1beta2.Trunk.Acl|undefined} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this +*/ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setAccessControlList = function(value) { + return jspb.Message.setWrapperField(this, 7, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.clearAccessControlList = function() { + return this.setAccessControlList(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.hasAccessControlList = function() { + return jspb.Message.getField(this, 7) != null; +}; + + +/** + * optional Credentials inbound_credentials = 8; + * @return {?proto.fonoster.trunks.v1beta2.Trunk.Credentials} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getInboundCredentials = function() { + return /** @type{?proto.fonoster.trunks.v1beta2.Trunk.Credentials} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.trunks.v1beta2.Trunk.Credentials, 8)); +}; + + +/** + * @param {?proto.fonoster.trunks.v1beta2.Trunk.Credentials|undefined} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this +*/ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setInboundCredentials = function(value) { + return jspb.Message.setWrapperField(this, 8, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.clearInboundCredentials = function() { + return this.setInboundCredentials(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.hasInboundCredentials = function() { + return jspb.Message.getField(this, 8) != null; +}; + + +/** + * optional Credentials outbound_credentials = 9; + * @return {?proto.fonoster.trunks.v1beta2.Trunk.Credentials} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getOutboundCredentials = function() { + return /** @type{?proto.fonoster.trunks.v1beta2.Trunk.Credentials} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.trunks.v1beta2.Trunk.Credentials, 9)); +}; + + +/** + * @param {?proto.fonoster.trunks.v1beta2.Trunk.Credentials|undefined} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this +*/ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setOutboundCredentials = function(value) { + return jspb.Message.setWrapperField(this, 9, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.clearOutboundCredentials = function() { + return this.setOutboundCredentials(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.hasOutboundCredentials = function() { + return jspb.Message.getField(this, 9) != null; +}; + + +/** + * repeated TrunkURI uris = 10; + * @return {!Array} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getUrisList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.trunks.v1beta2.TrunkURI, 10)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this +*/ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setUrisList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 10, value); +}; + + +/** + * @param {!proto.fonoster.trunks.v1beta2.TrunkURI=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.addUris = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 10, opt_value, proto.fonoster.trunks.v1beta2.TrunkURI, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.clearUrisList = function() { + return this.setUrisList([]); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.repeatedFields_ = [7]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.CreateTrunkRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + sendRegister: jspb.Message.getBooleanFieldWithDefault(msg, 2, false), + inboundUri: jspb.Message.getFieldWithDefault(msg, 3, ""), + accessControlListRef: jspb.Message.getFieldWithDefault(msg, 4, ""), + inboundCredentialsRef: jspb.Message.getFieldWithDefault(msg, 5, ""), + outboundCredentialsRef: jspb.Message.getFieldWithDefault(msg, 6, ""), + urisList: jspb.Message.toObjectList(msg.getUrisList(), + proto.fonoster.trunks.v1beta2.TrunkURI.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.CreateTrunkRequest; + return proto.fonoster.trunks.v1beta2.CreateTrunkRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setSendRegister(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setInboundUri(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessControlListRef(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setInboundCredentialsRef(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setOutboundCredentialsRef(value); + break; + case 7: + var value = new proto.fonoster.trunks.v1beta2.TrunkURI; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.TrunkURI.deserializeBinaryFromReader); + msg.addUris(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.CreateTrunkRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getSendRegister(); + if (f) { + writer.writeBool( + 2, + f + ); + } + f = message.getInboundUri(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAccessControlListRef(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getInboundCredentialsRef(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getOutboundCredentialsRef(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getUrisList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 7, + f, + proto.fonoster.trunks.v1beta2.TrunkURI.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional bool send_register = 2; + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getSendRegister = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setSendRegister = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional string inbound_uri = 3; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getInboundUri = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setInboundUri = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string access_control_list_ref = 4; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getAccessControlListRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setAccessControlListRef = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string inbound_credentials_ref = 5; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getInboundCredentialsRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setInboundCredentialsRef = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string outbound_credentials_ref = 6; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getOutboundCredentialsRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setOutboundCredentialsRef = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * repeated TrunkURI uris = 7; + * @return {!Array} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getUrisList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.trunks.v1beta2.TrunkURI, 7)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this +*/ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setUrisList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 7, value); +}; + + +/** + * @param {!proto.fonoster.trunks.v1beta2.TrunkURI=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.addUris = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, proto.fonoster.trunks.v1beta2.TrunkURI, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.clearUrisList = function() { + return this.setUrisList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.CreateTrunkResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.CreateTrunkResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkResponse} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.CreateTrunkResponse; + return proto.fonoster.trunks.v1beta2.CreateTrunkResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.CreateTrunkResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkResponse} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.CreateTrunkResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.CreateTrunkResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkResponse} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.repeatedFields_ = [8]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + sendRegister: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), + inboundUri: jspb.Message.getFieldWithDefault(msg, 4, ""), + accessControlListRef: jspb.Message.getFieldWithDefault(msg, 5, ""), + inboundCredentialsRef: jspb.Message.getFieldWithDefault(msg, 6, ""), + outboundCredentialsRef: jspb.Message.getFieldWithDefault(msg, 7, ""), + urisList: jspb.Message.toObjectList(msg.getUrisList(), + proto.fonoster.trunks.v1beta2.TrunkURI.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.UpdateTrunkRequest; + return proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setSendRegister(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setInboundUri(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessControlListRef(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setInboundCredentialsRef(value); + break; + case 7: + var value = /** @type {string} */ (reader.readString()); + msg.setOutboundCredentialsRef(value); + break; + case 8: + var value = new proto.fonoster.trunks.v1beta2.TrunkURI; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.TrunkURI.deserializeBinaryFromReader); + msg.addUris(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getSendRegister(); + if (f) { + writer.writeBool( + 3, + f + ); + } + f = message.getInboundUri(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getAccessControlListRef(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getInboundCredentialsRef(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getOutboundCredentialsRef(); + if (f.length > 0) { + writer.writeString( + 7, + f + ); + } + f = message.getUrisList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 8, + f, + proto.fonoster.trunks.v1beta2.TrunkURI.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional bool send_register = 3; + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getSendRegister = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setSendRegister = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); +}; + + +/** + * optional string inbound_uri = 4; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getInboundUri = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setInboundUri = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string access_control_list_ref = 5; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getAccessControlListRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setAccessControlListRef = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string inbound_credentials_ref = 6; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getInboundCredentialsRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setInboundCredentialsRef = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional string outbound_credentials_ref = 7; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getOutboundCredentialsRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setOutboundCredentialsRef = function(value) { + return jspb.Message.setProto3StringField(this, 7, value); +}; + + +/** + * repeated TrunkURI uris = 8; + * @return {!Array} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getUrisList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.trunks.v1beta2.TrunkURI, 8)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this +*/ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setUrisList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 8, value); +}; + + +/** + * @param {!proto.fonoster.trunks.v1beta2.TrunkURI=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.addUris = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.fonoster.trunks.v1beta2.TrunkURI, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.clearUrisList = function() { + return this.setUrisList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.UpdateTrunkResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkResponse} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.UpdateTrunkResponse; + return proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.UpdateTrunkResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkResponse} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.UpdateTrunkResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkResponse} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.GetTrunkRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.GetTrunkRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.GetTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.GetTrunkRequest; + return proto.fonoster.trunks.v1beta2.GetTrunkRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.GetTrunkRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.GetTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.GetTrunkRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.GetTrunkRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.GetTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.DeleteTrunkRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.DeleteTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.DeleteTrunkRequest; + return proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.DeleteTrunkRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.DeleteTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.DeleteTrunkRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.DeleteTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.DeleteTrunkResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.DeleteTrunkResponse} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.DeleteTrunkResponse; + return proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.DeleteTrunkResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.DeleteTrunkResponse} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.DeleteTrunkResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.DeleteTrunkResponse} returns this + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.ListTrunksRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.ListTrunksRequest; + return proto.fonoster.trunks.v1beta2.ListTrunksRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.ListTrunksRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} returns this + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} returns this + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.ListTrunksResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.trunks.v1beta2.Trunk.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.ListTrunksResponse; + return proto.fonoster.trunks.v1beta2.ListTrunksResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.trunks.v1beta2.Trunk; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.Trunk.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.ListTrunksResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.trunks.v1beta2.Trunk.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Trunk items = 1; + * @return {!Array} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.trunks.v1beta2.Trunk, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} returns this +*/ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.trunks.v1beta2.Trunk=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.trunks.v1beta2.Trunk} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.trunks.v1beta2.Trunk, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} returns this + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} returns this + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +goog.object.extend(exports, proto.fonoster.trunks.v1beta2); diff --git a/mods/sdk/src/generated/web/AclsServiceClientPb.ts b/mods/sdk/src/generated/web/AclsServiceClientPb.ts new file mode 100644 index 000000000..2d72a2e70 --- /dev/null +++ b/mods/sdk/src/generated/web/AclsServiceClientPb.ts @@ -0,0 +1,258 @@ +/** + * @fileoverview gRPC-Web generated client stub for fonoster.acls.v1beta2 + * @enhanceable + * @public + */ + +// Code generated by protoc-gen-grpc-web. DO NOT EDIT. +// versions: +// protoc-gen-grpc-web v1.5.0 +// protoc v3.20.3 +// source: acls.proto + + +/* eslint-disable */ +// @ts-nocheck + + +import * as grpcWeb from 'grpc-web'; + +import * as acls_pb from './acls_pb'; // proto import: "acls.proto" + + +export class AclsClient { + client_: grpcWeb.AbstractClientBase; + hostname_: string; + credentials_: null | { [index: string]: string; }; + options_: null | { [index: string]: any; }; + + constructor (hostname: string, + credentials?: null | { [index: string]: string; }, + options?: null | { [index: string]: any; }) { + if (!options) options = {}; + if (!credentials) credentials = {}; + options['format'] = 'text'; + + this.client_ = new grpcWeb.GrpcWebClientBase(options); + this.hostname_ = hostname.replace(/\/+$/, ''); + this.credentials_ = credentials; + this.options_ = options; + } + + methodDescriptorCreateAcl = new grpcWeb.MethodDescriptor( + '/fonoster.acls.v1beta2.Acls/CreateAcl', + grpcWeb.MethodType.UNARY, + acls_pb.CreateAclRequest, + acls_pb.CreateAclResponse, + (request: acls_pb.CreateAclRequest) => { + return request.serializeBinary(); + }, + acls_pb.CreateAclResponse.deserializeBinary + ); + + createAcl( + request: acls_pb.CreateAclRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + createAcl( + request: acls_pb.CreateAclRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: acls_pb.CreateAclResponse) => void): grpcWeb.ClientReadableStream; + + createAcl( + request: acls_pb.CreateAclRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: acls_pb.CreateAclResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.acls.v1beta2.Acls/CreateAcl', + request, + metadata || {}, + this.methodDescriptorCreateAcl, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.acls.v1beta2.Acls/CreateAcl', + request, + metadata || {}, + this.methodDescriptorCreateAcl); + } + + methodDescriptorUpdateAcl = new grpcWeb.MethodDescriptor( + '/fonoster.acls.v1beta2.Acls/UpdateAcl', + grpcWeb.MethodType.UNARY, + acls_pb.UpdateAclRequest, + acls_pb.UpdateAclResponse, + (request: acls_pb.UpdateAclRequest) => { + return request.serializeBinary(); + }, + acls_pb.UpdateAclResponse.deserializeBinary + ); + + updateAcl( + request: acls_pb.UpdateAclRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + updateAcl( + request: acls_pb.UpdateAclRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: acls_pb.UpdateAclResponse) => void): grpcWeb.ClientReadableStream; + + updateAcl( + request: acls_pb.UpdateAclRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: acls_pb.UpdateAclResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.acls.v1beta2.Acls/UpdateAcl', + request, + metadata || {}, + this.methodDescriptorUpdateAcl, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.acls.v1beta2.Acls/UpdateAcl', + request, + metadata || {}, + this.methodDescriptorUpdateAcl); + } + + methodDescriptorGetAcl = new grpcWeb.MethodDescriptor( + '/fonoster.acls.v1beta2.Acls/GetAcl', + grpcWeb.MethodType.UNARY, + acls_pb.GetAclRequest, + acls_pb.Acl, + (request: acls_pb.GetAclRequest) => { + return request.serializeBinary(); + }, + acls_pb.Acl.deserializeBinary + ); + + getAcl( + request: acls_pb.GetAclRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + getAcl( + request: acls_pb.GetAclRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: acls_pb.Acl) => void): grpcWeb.ClientReadableStream; + + getAcl( + request: acls_pb.GetAclRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: acls_pb.Acl) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.acls.v1beta2.Acls/GetAcl', + request, + metadata || {}, + this.methodDescriptorGetAcl, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.acls.v1beta2.Acls/GetAcl', + request, + metadata || {}, + this.methodDescriptorGetAcl); + } + + methodDescriptorDeleteAcl = new grpcWeb.MethodDescriptor( + '/fonoster.acls.v1beta2.Acls/DeleteAcl', + grpcWeb.MethodType.UNARY, + acls_pb.DeleteAclRequest, + acls_pb.DeleteAclResponse, + (request: acls_pb.DeleteAclRequest) => { + return request.serializeBinary(); + }, + acls_pb.DeleteAclResponse.deserializeBinary + ); + + deleteAcl( + request: acls_pb.DeleteAclRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + deleteAcl( + request: acls_pb.DeleteAclRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: acls_pb.DeleteAclResponse) => void): grpcWeb.ClientReadableStream; + + deleteAcl( + request: acls_pb.DeleteAclRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: acls_pb.DeleteAclResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.acls.v1beta2.Acls/DeleteAcl', + request, + metadata || {}, + this.methodDescriptorDeleteAcl, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.acls.v1beta2.Acls/DeleteAcl', + request, + metadata || {}, + this.methodDescriptorDeleteAcl); + } + + methodDescriptorListAcls = new grpcWeb.MethodDescriptor( + '/fonoster.acls.v1beta2.Acls/ListAcls', + grpcWeb.MethodType.UNARY, + acls_pb.ListAclsRequest, + acls_pb.ListAclsResponse, + (request: acls_pb.ListAclsRequest) => { + return request.serializeBinary(); + }, + acls_pb.ListAclsResponse.deserializeBinary + ); + + listAcls( + request: acls_pb.ListAclsRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + listAcls( + request: acls_pb.ListAclsRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: acls_pb.ListAclsResponse) => void): grpcWeb.ClientReadableStream; + + listAcls( + request: acls_pb.ListAclsRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: acls_pb.ListAclsResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.acls.v1beta2.Acls/ListAcls', + request, + metadata || {}, + this.methodDescriptorListAcls, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.acls.v1beta2.Acls/ListAcls', + request, + metadata || {}, + this.methodDescriptorListAcls); + } + +} + diff --git a/mods/sdk/src/generated/web/AgentsServiceClientPb.ts b/mods/sdk/src/generated/web/AgentsServiceClientPb.ts new file mode 100644 index 000000000..b4e9d28e6 --- /dev/null +++ b/mods/sdk/src/generated/web/AgentsServiceClientPb.ts @@ -0,0 +1,258 @@ +/** + * @fileoverview gRPC-Web generated client stub for fonoster.agents.v1beta2 + * @enhanceable + * @public + */ + +// Code generated by protoc-gen-grpc-web. DO NOT EDIT. +// versions: +// protoc-gen-grpc-web v1.5.0 +// protoc v3.20.3 +// source: agents.proto + + +/* eslint-disable */ +// @ts-nocheck + + +import * as grpcWeb from 'grpc-web'; + +import * as agents_pb from './agents_pb'; // proto import: "agents.proto" + + +export class AgentsClient { + client_: grpcWeb.AbstractClientBase; + hostname_: string; + credentials_: null | { [index: string]: string; }; + options_: null | { [index: string]: any; }; + + constructor (hostname: string, + credentials?: null | { [index: string]: string; }, + options?: null | { [index: string]: any; }) { + if (!options) options = {}; + if (!credentials) credentials = {}; + options['format'] = 'text'; + + this.client_ = new grpcWeb.GrpcWebClientBase(options); + this.hostname_ = hostname.replace(/\/+$/, ''); + this.credentials_ = credentials; + this.options_ = options; + } + + methodDescriptorCreateAgent = new grpcWeb.MethodDescriptor( + '/fonoster.agents.v1beta2.Agents/CreateAgent', + grpcWeb.MethodType.UNARY, + agents_pb.CreateAgentRequest, + agents_pb.CreateAgentResponse, + (request: agents_pb.CreateAgentRequest) => { + return request.serializeBinary(); + }, + agents_pb.CreateAgentResponse.deserializeBinary + ); + + createAgent( + request: agents_pb.CreateAgentRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + createAgent( + request: agents_pb.CreateAgentRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: agents_pb.CreateAgentResponse) => void): grpcWeb.ClientReadableStream; + + createAgent( + request: agents_pb.CreateAgentRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: agents_pb.CreateAgentResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.agents.v1beta2.Agents/CreateAgent', + request, + metadata || {}, + this.methodDescriptorCreateAgent, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.agents.v1beta2.Agents/CreateAgent', + request, + metadata || {}, + this.methodDescriptorCreateAgent); + } + + methodDescriptorUpdateAgent = new grpcWeb.MethodDescriptor( + '/fonoster.agents.v1beta2.Agents/UpdateAgent', + grpcWeb.MethodType.UNARY, + agents_pb.UpdateAgentRequest, + agents_pb.UpdateAgentResponse, + (request: agents_pb.UpdateAgentRequest) => { + return request.serializeBinary(); + }, + agents_pb.UpdateAgentResponse.deserializeBinary + ); + + updateAgent( + request: agents_pb.UpdateAgentRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + updateAgent( + request: agents_pb.UpdateAgentRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: agents_pb.UpdateAgentResponse) => void): grpcWeb.ClientReadableStream; + + updateAgent( + request: agents_pb.UpdateAgentRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: agents_pb.UpdateAgentResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.agents.v1beta2.Agents/UpdateAgent', + request, + metadata || {}, + this.methodDescriptorUpdateAgent, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.agents.v1beta2.Agents/UpdateAgent', + request, + metadata || {}, + this.methodDescriptorUpdateAgent); + } + + methodDescriptorGetAgent = new grpcWeb.MethodDescriptor( + '/fonoster.agents.v1beta2.Agents/GetAgent', + grpcWeb.MethodType.UNARY, + agents_pb.GetAgentRequest, + agents_pb.Agent, + (request: agents_pb.GetAgentRequest) => { + return request.serializeBinary(); + }, + agents_pb.Agent.deserializeBinary + ); + + getAgent( + request: agents_pb.GetAgentRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + getAgent( + request: agents_pb.GetAgentRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: agents_pb.Agent) => void): grpcWeb.ClientReadableStream; + + getAgent( + request: agents_pb.GetAgentRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: agents_pb.Agent) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.agents.v1beta2.Agents/GetAgent', + request, + metadata || {}, + this.methodDescriptorGetAgent, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.agents.v1beta2.Agents/GetAgent', + request, + metadata || {}, + this.methodDescriptorGetAgent); + } + + methodDescriptorDeleteAgent = new grpcWeb.MethodDescriptor( + '/fonoster.agents.v1beta2.Agents/DeleteAgent', + grpcWeb.MethodType.UNARY, + agents_pb.DeleteAgentRequest, + agents_pb.DeleteAgentResponse, + (request: agents_pb.DeleteAgentRequest) => { + return request.serializeBinary(); + }, + agents_pb.DeleteAgentResponse.deserializeBinary + ); + + deleteAgent( + request: agents_pb.DeleteAgentRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + deleteAgent( + request: agents_pb.DeleteAgentRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: agents_pb.DeleteAgentResponse) => void): grpcWeb.ClientReadableStream; + + deleteAgent( + request: agents_pb.DeleteAgentRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: agents_pb.DeleteAgentResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.agents.v1beta2.Agents/DeleteAgent', + request, + metadata || {}, + this.methodDescriptorDeleteAgent, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.agents.v1beta2.Agents/DeleteAgent', + request, + metadata || {}, + this.methodDescriptorDeleteAgent); + } + + methodDescriptorListAgents = new grpcWeb.MethodDescriptor( + '/fonoster.agents.v1beta2.Agents/ListAgents', + grpcWeb.MethodType.UNARY, + agents_pb.ListAgentsRequest, + agents_pb.ListAgentsResponse, + (request: agents_pb.ListAgentsRequest) => { + return request.serializeBinary(); + }, + agents_pb.ListAgentsResponse.deserializeBinary + ); + + listAgents( + request: agents_pb.ListAgentsRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + listAgents( + request: agents_pb.ListAgentsRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: agents_pb.ListAgentsResponse) => void): grpcWeb.ClientReadableStream; + + listAgents( + request: agents_pb.ListAgentsRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: agents_pb.ListAgentsResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.agents.v1beta2.Agents/ListAgents', + request, + metadata || {}, + this.methodDescriptorListAgents, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.agents.v1beta2.Agents/ListAgents', + request, + metadata || {}, + this.methodDescriptorListAgents); + } + +} + diff --git a/mods/sdk/src/generated/web/ApplicationsServiceClientPb.ts b/mods/sdk/src/generated/web/ApplicationsServiceClientPb.ts new file mode 100644 index 000000000..48e1cbb06 --- /dev/null +++ b/mods/sdk/src/generated/web/ApplicationsServiceClientPb.ts @@ -0,0 +1,258 @@ +/** + * @fileoverview gRPC-Web generated client stub for fonoster.applications.v1beta2 + * @enhanceable + * @public + */ + +// Code generated by protoc-gen-grpc-web. DO NOT EDIT. +// versions: +// protoc-gen-grpc-web v1.5.0 +// protoc v3.20.3 +// source: applications.proto + + +/* eslint-disable */ +// @ts-nocheck + + +import * as grpcWeb from 'grpc-web'; + +import * as applications_pb from './applications_pb'; // proto import: "applications.proto" + + +export class ApplicationsClient { + client_: grpcWeb.AbstractClientBase; + hostname_: string; + credentials_: null | { [index: string]: string; }; + options_: null | { [index: string]: any; }; + + constructor (hostname: string, + credentials?: null | { [index: string]: string; }, + options?: null | { [index: string]: any; }) { + if (!options) options = {}; + if (!credentials) credentials = {}; + options['format'] = 'text'; + + this.client_ = new grpcWeb.GrpcWebClientBase(options); + this.hostname_ = hostname.replace(/\/+$/, ''); + this.credentials_ = credentials; + this.options_ = options; + } + + methodDescriptorCreateApplication = new grpcWeb.MethodDescriptor( + '/fonoster.applications.v1beta2.Applications/CreateApplication', + grpcWeb.MethodType.UNARY, + applications_pb.CreateApplicationRequest, + applications_pb.CreateApplicationResponse, + (request: applications_pb.CreateApplicationRequest) => { + return request.serializeBinary(); + }, + applications_pb.CreateApplicationResponse.deserializeBinary + ); + + createApplication( + request: applications_pb.CreateApplicationRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + createApplication( + request: applications_pb.CreateApplicationRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: applications_pb.CreateApplicationResponse) => void): grpcWeb.ClientReadableStream; + + createApplication( + request: applications_pb.CreateApplicationRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: applications_pb.CreateApplicationResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.applications.v1beta2.Applications/CreateApplication', + request, + metadata || {}, + this.methodDescriptorCreateApplication, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.applications.v1beta2.Applications/CreateApplication', + request, + metadata || {}, + this.methodDescriptorCreateApplication); + } + + methodDescriptorGetApplication = new grpcWeb.MethodDescriptor( + '/fonoster.applications.v1beta2.Applications/GetApplication', + grpcWeb.MethodType.UNARY, + applications_pb.GetApplicationRequest, + applications_pb.Application, + (request: applications_pb.GetApplicationRequest) => { + return request.serializeBinary(); + }, + applications_pb.Application.deserializeBinary + ); + + getApplication( + request: applications_pb.GetApplicationRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + getApplication( + request: applications_pb.GetApplicationRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: applications_pb.Application) => void): grpcWeb.ClientReadableStream; + + getApplication( + request: applications_pb.GetApplicationRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: applications_pb.Application) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.applications.v1beta2.Applications/GetApplication', + request, + metadata || {}, + this.methodDescriptorGetApplication, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.applications.v1beta2.Applications/GetApplication', + request, + metadata || {}, + this.methodDescriptorGetApplication); + } + + methodDescriptorListApplications = new grpcWeb.MethodDescriptor( + '/fonoster.applications.v1beta2.Applications/ListApplications', + grpcWeb.MethodType.UNARY, + applications_pb.ListApplicationsRequest, + applications_pb.ListApplicationsResponse, + (request: applications_pb.ListApplicationsRequest) => { + return request.serializeBinary(); + }, + applications_pb.ListApplicationsResponse.deserializeBinary + ); + + listApplications( + request: applications_pb.ListApplicationsRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + listApplications( + request: applications_pb.ListApplicationsRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: applications_pb.ListApplicationsResponse) => void): grpcWeb.ClientReadableStream; + + listApplications( + request: applications_pb.ListApplicationsRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: applications_pb.ListApplicationsResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.applications.v1beta2.Applications/ListApplications', + request, + metadata || {}, + this.methodDescriptorListApplications, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.applications.v1beta2.Applications/ListApplications', + request, + metadata || {}, + this.methodDescriptorListApplications); + } + + methodDescriptorUpdateApplication = new grpcWeb.MethodDescriptor( + '/fonoster.applications.v1beta2.Applications/UpdateApplication', + grpcWeb.MethodType.UNARY, + applications_pb.UpdateApplicationRequest, + applications_pb.UpdateApplicationResponse, + (request: applications_pb.UpdateApplicationRequest) => { + return request.serializeBinary(); + }, + applications_pb.UpdateApplicationResponse.deserializeBinary + ); + + updateApplication( + request: applications_pb.UpdateApplicationRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + updateApplication( + request: applications_pb.UpdateApplicationRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: applications_pb.UpdateApplicationResponse) => void): grpcWeb.ClientReadableStream; + + updateApplication( + request: applications_pb.UpdateApplicationRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: applications_pb.UpdateApplicationResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.applications.v1beta2.Applications/UpdateApplication', + request, + metadata || {}, + this.methodDescriptorUpdateApplication, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.applications.v1beta2.Applications/UpdateApplication', + request, + metadata || {}, + this.methodDescriptorUpdateApplication); + } + + methodDescriptorDeleteApplication = new grpcWeb.MethodDescriptor( + '/fonoster.applications.v1beta2.Applications/DeleteApplication', + grpcWeb.MethodType.UNARY, + applications_pb.DeleteApplicationRequest, + applications_pb.DeleteApplicationResponse, + (request: applications_pb.DeleteApplicationRequest) => { + return request.serializeBinary(); + }, + applications_pb.DeleteApplicationResponse.deserializeBinary + ); + + deleteApplication( + request: applications_pb.DeleteApplicationRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + deleteApplication( + request: applications_pb.DeleteApplicationRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: applications_pb.DeleteApplicationResponse) => void): grpcWeb.ClientReadableStream; + + deleteApplication( + request: applications_pb.DeleteApplicationRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: applications_pb.DeleteApplicationResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.applications.v1beta2.Applications/DeleteApplication', + request, + metadata || {}, + this.methodDescriptorDeleteApplication, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.applications.v1beta2.Applications/DeleteApplication', + request, + metadata || {}, + this.methodDescriptorDeleteApplication); + } + +} + diff --git a/mods/sdk/src/generated/web/CallsServiceClientPb.ts b/mods/sdk/src/generated/web/CallsServiceClientPb.ts new file mode 100644 index 000000000..e1a9578dd --- /dev/null +++ b/mods/sdk/src/generated/web/CallsServiceClientPb.ts @@ -0,0 +1,194 @@ +/** + * @fileoverview gRPC-Web generated client stub for fonoster.calls.v1beta2 + * @enhanceable + * @public + */ + +// Code generated by protoc-gen-grpc-web. DO NOT EDIT. +// versions: +// protoc-gen-grpc-web v1.5.0 +// protoc v3.20.3 +// source: calls.proto + + +/* eslint-disable */ +// @ts-nocheck + + +import * as grpcWeb from 'grpc-web'; + +import * as calls_pb from './calls_pb'; // proto import: "calls.proto" + + +export class CallsClient { + client_: grpcWeb.AbstractClientBase; + hostname_: string; + credentials_: null | { [index: string]: string; }; + options_: null | { [index: string]: any; }; + + constructor (hostname: string, + credentials?: null | { [index: string]: string; }, + options?: null | { [index: string]: any; }) { + if (!options) options = {}; + if (!credentials) credentials = {}; + options['format'] = 'text'; + + this.client_ = new grpcWeb.GrpcWebClientBase(options); + this.hostname_ = hostname.replace(/\/+$/, ''); + this.credentials_ = credentials; + this.options_ = options; + } + + methodDescriptorCreateCall = new grpcWeb.MethodDescriptor( + '/fonoster.calls.v1beta2.Calls/CreateCall', + grpcWeb.MethodType.UNARY, + calls_pb.CreateCallRequest, + calls_pb.CreateCallResponse, + (request: calls_pb.CreateCallRequest) => { + return request.serializeBinary(); + }, + calls_pb.CreateCallResponse.deserializeBinary + ); + + createCall( + request: calls_pb.CreateCallRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + createCall( + request: calls_pb.CreateCallRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: calls_pb.CreateCallResponse) => void): grpcWeb.ClientReadableStream; + + createCall( + request: calls_pb.CreateCallRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: calls_pb.CreateCallResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.calls.v1beta2.Calls/CreateCall', + request, + metadata || {}, + this.methodDescriptorCreateCall, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.calls.v1beta2.Calls/CreateCall', + request, + metadata || {}, + this.methodDescriptorCreateCall); + } + + methodDescriptorListCalls = new grpcWeb.MethodDescriptor( + '/fonoster.calls.v1beta2.Calls/ListCalls', + grpcWeb.MethodType.UNARY, + calls_pb.ListCallsRequest, + calls_pb.ListCallsResponse, + (request: calls_pb.ListCallsRequest) => { + return request.serializeBinary(); + }, + calls_pb.ListCallsResponse.deserializeBinary + ); + + listCalls( + request: calls_pb.ListCallsRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + listCalls( + request: calls_pb.ListCallsRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: calls_pb.ListCallsResponse) => void): grpcWeb.ClientReadableStream; + + listCalls( + request: calls_pb.ListCallsRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: calls_pb.ListCallsResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.calls.v1beta2.Calls/ListCalls', + request, + metadata || {}, + this.methodDescriptorListCalls, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.calls.v1beta2.Calls/ListCalls', + request, + metadata || {}, + this.methodDescriptorListCalls); + } + + methodDescriptorGetCall = new grpcWeb.MethodDescriptor( + '/fonoster.calls.v1beta2.Calls/GetCall', + grpcWeb.MethodType.UNARY, + calls_pb.GetCallRequest, + calls_pb.CallDetailRecord, + (request: calls_pb.GetCallRequest) => { + return request.serializeBinary(); + }, + calls_pb.CallDetailRecord.deserializeBinary + ); + + getCall( + request: calls_pb.GetCallRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + getCall( + request: calls_pb.GetCallRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: calls_pb.CallDetailRecord) => void): grpcWeb.ClientReadableStream; + + getCall( + request: calls_pb.GetCallRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: calls_pb.CallDetailRecord) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.calls.v1beta2.Calls/GetCall', + request, + metadata || {}, + this.methodDescriptorGetCall, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.calls.v1beta2.Calls/GetCall', + request, + metadata || {}, + this.methodDescriptorGetCall); + } + + methodDescriptorTrackCall = new grpcWeb.MethodDescriptor( + '/fonoster.calls.v1beta2.Calls/TrackCall', + grpcWeb.MethodType.SERVER_STREAMING, + calls_pb.TrackCallRequest, + calls_pb.TrackCallResponse, + (request: calls_pb.TrackCallRequest) => { + return request.serializeBinary(); + }, + calls_pb.TrackCallResponse.deserializeBinary + ); + + trackCall( + request: calls_pb.TrackCallRequest, + metadata?: grpcWeb.Metadata): grpcWeb.ClientReadableStream { + return this.client_.serverStreaming( + this.hostname_ + + '/fonoster.calls.v1beta2.Calls/TrackCall', + request, + metadata || {}, + this.methodDescriptorTrackCall); + } + +} + diff --git a/mods/sdk/src/generated/web/CredentialsServiceClientPb.ts b/mods/sdk/src/generated/web/CredentialsServiceClientPb.ts new file mode 100644 index 000000000..e8d106ba9 --- /dev/null +++ b/mods/sdk/src/generated/web/CredentialsServiceClientPb.ts @@ -0,0 +1,258 @@ +/** + * @fileoverview gRPC-Web generated client stub for fonoster.credentials.v1beta2 + * @enhanceable + * @public + */ + +// Code generated by protoc-gen-grpc-web. DO NOT EDIT. +// versions: +// protoc-gen-grpc-web v1.5.0 +// protoc v3.20.3 +// source: credentials.proto + + +/* eslint-disable */ +// @ts-nocheck + + +import * as grpcWeb from 'grpc-web'; + +import * as credentials_pb from './credentials_pb'; // proto import: "credentials.proto" + + +export class CredentialsServiceClient { + client_: grpcWeb.AbstractClientBase; + hostname_: string; + credentials_: null | { [index: string]: string; }; + options_: null | { [index: string]: any; }; + + constructor (hostname: string, + credentials?: null | { [index: string]: string; }, + options?: null | { [index: string]: any; }) { + if (!options) options = {}; + if (!credentials) credentials = {}; + options['format'] = 'text'; + + this.client_ = new grpcWeb.GrpcWebClientBase(options); + this.hostname_ = hostname.replace(/\/+$/, ''); + this.credentials_ = credentials; + this.options_ = options; + } + + methodDescriptorCreateCredentials = new grpcWeb.MethodDescriptor( + '/fonoster.credentials.v1beta2.CredentialsService/CreateCredentials', + grpcWeb.MethodType.UNARY, + credentials_pb.CreateCredentialsRequest, + credentials_pb.CreateCredentialsResponse, + (request: credentials_pb.CreateCredentialsRequest) => { + return request.serializeBinary(); + }, + credentials_pb.CreateCredentialsResponse.deserializeBinary + ); + + createCredentials( + request: credentials_pb.CreateCredentialsRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + createCredentials( + request: credentials_pb.CreateCredentialsRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: credentials_pb.CreateCredentialsResponse) => void): grpcWeb.ClientReadableStream; + + createCredentials( + request: credentials_pb.CreateCredentialsRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: credentials_pb.CreateCredentialsResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.credentials.v1beta2.CredentialsService/CreateCredentials', + request, + metadata || {}, + this.methodDescriptorCreateCredentials, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.credentials.v1beta2.CredentialsService/CreateCredentials', + request, + metadata || {}, + this.methodDescriptorCreateCredentials); + } + + methodDescriptorUpdateCredentials = new grpcWeb.MethodDescriptor( + '/fonoster.credentials.v1beta2.CredentialsService/UpdateCredentials', + grpcWeb.MethodType.UNARY, + credentials_pb.UpdateCredentialsRequest, + credentials_pb.UpdateCredentialsResponse, + (request: credentials_pb.UpdateCredentialsRequest) => { + return request.serializeBinary(); + }, + credentials_pb.UpdateCredentialsResponse.deserializeBinary + ); + + updateCredentials( + request: credentials_pb.UpdateCredentialsRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + updateCredentials( + request: credentials_pb.UpdateCredentialsRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: credentials_pb.UpdateCredentialsResponse) => void): grpcWeb.ClientReadableStream; + + updateCredentials( + request: credentials_pb.UpdateCredentialsRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: credentials_pb.UpdateCredentialsResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.credentials.v1beta2.CredentialsService/UpdateCredentials', + request, + metadata || {}, + this.methodDescriptorUpdateCredentials, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.credentials.v1beta2.CredentialsService/UpdateCredentials', + request, + metadata || {}, + this.methodDescriptorUpdateCredentials); + } + + methodDescriptorGetCredentials = new grpcWeb.MethodDescriptor( + '/fonoster.credentials.v1beta2.CredentialsService/GetCredentials', + grpcWeb.MethodType.UNARY, + credentials_pb.GetCredentialsRequest, + credentials_pb.Credentials, + (request: credentials_pb.GetCredentialsRequest) => { + return request.serializeBinary(); + }, + credentials_pb.Credentials.deserializeBinary + ); + + getCredentials( + request: credentials_pb.GetCredentialsRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + getCredentials( + request: credentials_pb.GetCredentialsRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: credentials_pb.Credentials) => void): grpcWeb.ClientReadableStream; + + getCredentials( + request: credentials_pb.GetCredentialsRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: credentials_pb.Credentials) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.credentials.v1beta2.CredentialsService/GetCredentials', + request, + metadata || {}, + this.methodDescriptorGetCredentials, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.credentials.v1beta2.CredentialsService/GetCredentials', + request, + metadata || {}, + this.methodDescriptorGetCredentials); + } + + methodDescriptorDeleteCredentials = new grpcWeb.MethodDescriptor( + '/fonoster.credentials.v1beta2.CredentialsService/DeleteCredentials', + grpcWeb.MethodType.UNARY, + credentials_pb.DeleteCredentialsRequest, + credentials_pb.DeleteCredentialsResponse, + (request: credentials_pb.DeleteCredentialsRequest) => { + return request.serializeBinary(); + }, + credentials_pb.DeleteCredentialsResponse.deserializeBinary + ); + + deleteCredentials( + request: credentials_pb.DeleteCredentialsRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + deleteCredentials( + request: credentials_pb.DeleteCredentialsRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: credentials_pb.DeleteCredentialsResponse) => void): grpcWeb.ClientReadableStream; + + deleteCredentials( + request: credentials_pb.DeleteCredentialsRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: credentials_pb.DeleteCredentialsResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.credentials.v1beta2.CredentialsService/DeleteCredentials', + request, + metadata || {}, + this.methodDescriptorDeleteCredentials, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.credentials.v1beta2.CredentialsService/DeleteCredentials', + request, + metadata || {}, + this.methodDescriptorDeleteCredentials); + } + + methodDescriptorListCredentials = new grpcWeb.MethodDescriptor( + '/fonoster.credentials.v1beta2.CredentialsService/ListCredentials', + grpcWeb.MethodType.UNARY, + credentials_pb.ListCredentialsRequest, + credentials_pb.ListCredentialsResponse, + (request: credentials_pb.ListCredentialsRequest) => { + return request.serializeBinary(); + }, + credentials_pb.ListCredentialsResponse.deserializeBinary + ); + + listCredentials( + request: credentials_pb.ListCredentialsRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + listCredentials( + request: credentials_pb.ListCredentialsRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: credentials_pb.ListCredentialsResponse) => void): grpcWeb.ClientReadableStream; + + listCredentials( + request: credentials_pb.ListCredentialsRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: credentials_pb.ListCredentialsResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.credentials.v1beta2.CredentialsService/ListCredentials', + request, + metadata || {}, + this.methodDescriptorListCredentials, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.credentials.v1beta2.CredentialsService/ListCredentials', + request, + metadata || {}, + this.methodDescriptorListCredentials); + } + +} + diff --git a/mods/sdk/src/generated/web/DomainsServiceClientPb.ts b/mods/sdk/src/generated/web/DomainsServiceClientPb.ts new file mode 100644 index 000000000..bcbb2460b --- /dev/null +++ b/mods/sdk/src/generated/web/DomainsServiceClientPb.ts @@ -0,0 +1,258 @@ +/** + * @fileoverview gRPC-Web generated client stub for fonoster.domains.v1beta2 + * @enhanceable + * @public + */ + +// Code generated by protoc-gen-grpc-web. DO NOT EDIT. +// versions: +// protoc-gen-grpc-web v1.5.0 +// protoc v3.20.3 +// source: domains.proto + + +/* eslint-disable */ +// @ts-nocheck + + +import * as grpcWeb from 'grpc-web'; + +import * as domains_pb from './domains_pb'; // proto import: "domains.proto" + + +export class DomainsClient { + client_: grpcWeb.AbstractClientBase; + hostname_: string; + credentials_: null | { [index: string]: string; }; + options_: null | { [index: string]: any; }; + + constructor (hostname: string, + credentials?: null | { [index: string]: string; }, + options?: null | { [index: string]: any; }) { + if (!options) options = {}; + if (!credentials) credentials = {}; + options['format'] = 'text'; + + this.client_ = new grpcWeb.GrpcWebClientBase(options); + this.hostname_ = hostname.replace(/\/+$/, ''); + this.credentials_ = credentials; + this.options_ = options; + } + + methodDescriptorCreateDomain = new grpcWeb.MethodDescriptor( + '/fonoster.domains.v1beta2.Domains/CreateDomain', + grpcWeb.MethodType.UNARY, + domains_pb.CreateDomainRequest, + domains_pb.CreateDomainResponse, + (request: domains_pb.CreateDomainRequest) => { + return request.serializeBinary(); + }, + domains_pb.CreateDomainResponse.deserializeBinary + ); + + createDomain( + request: domains_pb.CreateDomainRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + createDomain( + request: domains_pb.CreateDomainRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: domains_pb.CreateDomainResponse) => void): grpcWeb.ClientReadableStream; + + createDomain( + request: domains_pb.CreateDomainRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: domains_pb.CreateDomainResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.domains.v1beta2.Domains/CreateDomain', + request, + metadata || {}, + this.methodDescriptorCreateDomain, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.domains.v1beta2.Domains/CreateDomain', + request, + metadata || {}, + this.methodDescriptorCreateDomain); + } + + methodDescriptorUpdateDomain = new grpcWeb.MethodDescriptor( + '/fonoster.domains.v1beta2.Domains/UpdateDomain', + grpcWeb.MethodType.UNARY, + domains_pb.UpdateDomainRequest, + domains_pb.UpdateDomainResponse, + (request: domains_pb.UpdateDomainRequest) => { + return request.serializeBinary(); + }, + domains_pb.UpdateDomainResponse.deserializeBinary + ); + + updateDomain( + request: domains_pb.UpdateDomainRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + updateDomain( + request: domains_pb.UpdateDomainRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: domains_pb.UpdateDomainResponse) => void): grpcWeb.ClientReadableStream; + + updateDomain( + request: domains_pb.UpdateDomainRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: domains_pb.UpdateDomainResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.domains.v1beta2.Domains/UpdateDomain', + request, + metadata || {}, + this.methodDescriptorUpdateDomain, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.domains.v1beta2.Domains/UpdateDomain', + request, + metadata || {}, + this.methodDescriptorUpdateDomain); + } + + methodDescriptorGetDomain = new grpcWeb.MethodDescriptor( + '/fonoster.domains.v1beta2.Domains/GetDomain', + grpcWeb.MethodType.UNARY, + domains_pb.GetDomainRequest, + domains_pb.Domain, + (request: domains_pb.GetDomainRequest) => { + return request.serializeBinary(); + }, + domains_pb.Domain.deserializeBinary + ); + + getDomain( + request: domains_pb.GetDomainRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + getDomain( + request: domains_pb.GetDomainRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: domains_pb.Domain) => void): grpcWeb.ClientReadableStream; + + getDomain( + request: domains_pb.GetDomainRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: domains_pb.Domain) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.domains.v1beta2.Domains/GetDomain', + request, + metadata || {}, + this.methodDescriptorGetDomain, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.domains.v1beta2.Domains/GetDomain', + request, + metadata || {}, + this.methodDescriptorGetDomain); + } + + methodDescriptorListDomains = new grpcWeb.MethodDescriptor( + '/fonoster.domains.v1beta2.Domains/ListDomains', + grpcWeb.MethodType.UNARY, + domains_pb.ListDomainsRequest, + domains_pb.ListDomainsResponse, + (request: domains_pb.ListDomainsRequest) => { + return request.serializeBinary(); + }, + domains_pb.ListDomainsResponse.deserializeBinary + ); + + listDomains( + request: domains_pb.ListDomainsRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + listDomains( + request: domains_pb.ListDomainsRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: domains_pb.ListDomainsResponse) => void): grpcWeb.ClientReadableStream; + + listDomains( + request: domains_pb.ListDomainsRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: domains_pb.ListDomainsResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.domains.v1beta2.Domains/ListDomains', + request, + metadata || {}, + this.methodDescriptorListDomains, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.domains.v1beta2.Domains/ListDomains', + request, + metadata || {}, + this.methodDescriptorListDomains); + } + + methodDescriptorDeleteDomain = new grpcWeb.MethodDescriptor( + '/fonoster.domains.v1beta2.Domains/DeleteDomain', + grpcWeb.MethodType.UNARY, + domains_pb.DeleteDomainRequest, + domains_pb.DeleteDomainResponse, + (request: domains_pb.DeleteDomainRequest) => { + return request.serializeBinary(); + }, + domains_pb.DeleteDomainResponse.deserializeBinary + ); + + deleteDomain( + request: domains_pb.DeleteDomainRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + deleteDomain( + request: domains_pb.DeleteDomainRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: domains_pb.DeleteDomainResponse) => void): grpcWeb.ClientReadableStream; + + deleteDomain( + request: domains_pb.DeleteDomainRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: domains_pb.DeleteDomainResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.domains.v1beta2.Domains/DeleteDomain', + request, + metadata || {}, + this.methodDescriptorDeleteDomain, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.domains.v1beta2.Domains/DeleteDomain', + request, + metadata || {}, + this.methodDescriptorDeleteDomain); + } + +} + diff --git a/mods/sdk/src/generated/web/IdentityServiceClientPb.ts b/mods/sdk/src/generated/web/IdentityServiceClientPb.ts new file mode 100644 index 000000000..2c8aa909e --- /dev/null +++ b/mods/sdk/src/generated/web/IdentityServiceClientPb.ts @@ -0,0 +1,1076 @@ +/** + * @fileoverview gRPC-Web generated client stub for fonoster.identity.v1beta2 + * @enhanceable + * @public + */ + +// Code generated by protoc-gen-grpc-web. DO NOT EDIT. +// versions: +// protoc-gen-grpc-web v1.5.0 +// protoc v3.20.3 +// source: identity.proto + + +/* eslint-disable */ +// @ts-nocheck + + +import * as grpcWeb from 'grpc-web'; + +import * as identity_pb from './identity_pb'; // proto import: "identity.proto" +import * as google_protobuf_empty_pb from 'google-protobuf/google/protobuf/empty_pb'; // proto import: "google/protobuf/empty.proto" + + +export class IdentityClient { + client_: grpcWeb.AbstractClientBase; + hostname_: string; + credentials_: null | { [index: string]: string; }; + options_: null | { [index: string]: any; }; + + constructor (hostname: string, + credentials?: null | { [index: string]: string; }, + options?: null | { [index: string]: any; }) { + if (!options) options = {}; + if (!credentials) credentials = {}; + options['format'] = 'text'; + + this.client_ = new grpcWeb.GrpcWebClientBase(options); + this.hostname_ = hostname.replace(/\/+$/, ''); + this.credentials_ = credentials; + this.options_ = options; + } + + methodDescriptorCreateWorkspace = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/CreateWorkspace', + grpcWeb.MethodType.UNARY, + identity_pb.CreateWorkspaceRequest, + identity_pb.CreateWorkspaceResponse, + (request: identity_pb.CreateWorkspaceRequest) => { + return request.serializeBinary(); + }, + identity_pb.CreateWorkspaceResponse.deserializeBinary + ); + + createWorkspace( + request: identity_pb.CreateWorkspaceRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + createWorkspace( + request: identity_pb.CreateWorkspaceRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.CreateWorkspaceResponse) => void): grpcWeb.ClientReadableStream; + + createWorkspace( + request: identity_pb.CreateWorkspaceRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.CreateWorkspaceResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/CreateWorkspace', + request, + metadata || {}, + this.methodDescriptorCreateWorkspace, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/CreateWorkspace', + request, + metadata || {}, + this.methodDescriptorCreateWorkspace); + } + + methodDescriptorDeleteWorkspace = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/DeleteWorkspace', + grpcWeb.MethodType.UNARY, + identity_pb.DeleteWorkspaceRequest, + identity_pb.DeleteWorkspaceResponse, + (request: identity_pb.DeleteWorkspaceRequest) => { + return request.serializeBinary(); + }, + identity_pb.DeleteWorkspaceResponse.deserializeBinary + ); + + deleteWorkspace( + request: identity_pb.DeleteWorkspaceRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + deleteWorkspace( + request: identity_pb.DeleteWorkspaceRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.DeleteWorkspaceResponse) => void): grpcWeb.ClientReadableStream; + + deleteWorkspace( + request: identity_pb.DeleteWorkspaceRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.DeleteWorkspaceResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/DeleteWorkspace', + request, + metadata || {}, + this.methodDescriptorDeleteWorkspace, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/DeleteWorkspace', + request, + metadata || {}, + this.methodDescriptorDeleteWorkspace); + } + + methodDescriptorGetWorkspace = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/GetWorkspace', + grpcWeb.MethodType.UNARY, + identity_pb.GetWorkspaceRequest, + identity_pb.Workspace, + (request: identity_pb.GetWorkspaceRequest) => { + return request.serializeBinary(); + }, + identity_pb.Workspace.deserializeBinary + ); + + getWorkspace( + request: identity_pb.GetWorkspaceRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + getWorkspace( + request: identity_pb.GetWorkspaceRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.Workspace) => void): grpcWeb.ClientReadableStream; + + getWorkspace( + request: identity_pb.GetWorkspaceRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.Workspace) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/GetWorkspace', + request, + metadata || {}, + this.methodDescriptorGetWorkspace, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/GetWorkspace', + request, + metadata || {}, + this.methodDescriptorGetWorkspace); + } + + methodDescriptorListWorkspaces = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/ListWorkspaces', + grpcWeb.MethodType.UNARY, + identity_pb.ListWorkspacesRequest, + identity_pb.ListWorkspacesResponse, + (request: identity_pb.ListWorkspacesRequest) => { + return request.serializeBinary(); + }, + identity_pb.ListWorkspacesResponse.deserializeBinary + ); + + listWorkspaces( + request: identity_pb.ListWorkspacesRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + listWorkspaces( + request: identity_pb.ListWorkspacesRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.ListWorkspacesResponse) => void): grpcWeb.ClientReadableStream; + + listWorkspaces( + request: identity_pb.ListWorkspacesRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.ListWorkspacesResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ListWorkspaces', + request, + metadata || {}, + this.methodDescriptorListWorkspaces, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ListWorkspaces', + request, + metadata || {}, + this.methodDescriptorListWorkspaces); + } + + methodDescriptorUpdateWorkspace = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/UpdateWorkspace', + grpcWeb.MethodType.UNARY, + identity_pb.UpdateWorkspaceRequest, + identity_pb.UpdateWorkspaceResponse, + (request: identity_pb.UpdateWorkspaceRequest) => { + return request.serializeBinary(); + }, + identity_pb.UpdateWorkspaceResponse.deserializeBinary + ); + + updateWorkspace( + request: identity_pb.UpdateWorkspaceRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + updateWorkspace( + request: identity_pb.UpdateWorkspaceRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.UpdateWorkspaceResponse) => void): grpcWeb.ClientReadableStream; + + updateWorkspace( + request: identity_pb.UpdateWorkspaceRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.UpdateWorkspaceResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/UpdateWorkspace', + request, + metadata || {}, + this.methodDescriptorUpdateWorkspace, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/UpdateWorkspace', + request, + metadata || {}, + this.methodDescriptorUpdateWorkspace); + } + + methodDescriptorInviteUserToWorkspace = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/InviteUserToWorkspace', + grpcWeb.MethodType.UNARY, + identity_pb.InviteUserToWorkspaceRequest, + identity_pb.InviteUserToWorkspaceResponse, + (request: identity_pb.InviteUserToWorkspaceRequest) => { + return request.serializeBinary(); + }, + identity_pb.InviteUserToWorkspaceResponse.deserializeBinary + ); + + inviteUserToWorkspace( + request: identity_pb.InviteUserToWorkspaceRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + inviteUserToWorkspace( + request: identity_pb.InviteUserToWorkspaceRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.InviteUserToWorkspaceResponse) => void): grpcWeb.ClientReadableStream; + + inviteUserToWorkspace( + request: identity_pb.InviteUserToWorkspaceRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.InviteUserToWorkspaceResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/InviteUserToWorkspace', + request, + metadata || {}, + this.methodDescriptorInviteUserToWorkspace, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/InviteUserToWorkspace', + request, + metadata || {}, + this.methodDescriptorInviteUserToWorkspace); + } + + methodDescriptorRemoveUserFromWorkspace = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/RemoveUserFromWorkspace', + grpcWeb.MethodType.UNARY, + identity_pb.RemoveUserFromWorkspaceRequest, + identity_pb.RemoveUserFromWorkspaceResponse, + (request: identity_pb.RemoveUserFromWorkspaceRequest) => { + return request.serializeBinary(); + }, + identity_pb.RemoveUserFromWorkspaceResponse.deserializeBinary + ); + + removeUserFromWorkspace( + request: identity_pb.RemoveUserFromWorkspaceRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + removeUserFromWorkspace( + request: identity_pb.RemoveUserFromWorkspaceRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.RemoveUserFromWorkspaceResponse) => void): grpcWeb.ClientReadableStream; + + removeUserFromWorkspace( + request: identity_pb.RemoveUserFromWorkspaceRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.RemoveUserFromWorkspaceResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/RemoveUserFromWorkspace', + request, + metadata || {}, + this.methodDescriptorRemoveUserFromWorkspace, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/RemoveUserFromWorkspace', + request, + metadata || {}, + this.methodDescriptorRemoveUserFromWorkspace); + } + + methodDescriptorResendWorkspaceMembershipInvitation = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/ResendWorkspaceMembershipInvitation', + grpcWeb.MethodType.UNARY, + identity_pb.ResendWorkspaceMembershipInvitationRequest, + identity_pb.ResendWorkspaceMembershipInvitationResponse, + (request: identity_pb.ResendWorkspaceMembershipInvitationRequest) => { + return request.serializeBinary(); + }, + identity_pb.ResendWorkspaceMembershipInvitationResponse.deserializeBinary + ); + + resendWorkspaceMembershipInvitation( + request: identity_pb.ResendWorkspaceMembershipInvitationRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + resendWorkspaceMembershipInvitation( + request: identity_pb.ResendWorkspaceMembershipInvitationRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.ResendWorkspaceMembershipInvitationResponse) => void): grpcWeb.ClientReadableStream; + + resendWorkspaceMembershipInvitation( + request: identity_pb.ResendWorkspaceMembershipInvitationRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.ResendWorkspaceMembershipInvitationResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ResendWorkspaceMembershipInvitation', + request, + metadata || {}, + this.methodDescriptorResendWorkspaceMembershipInvitation, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ResendWorkspaceMembershipInvitation', + request, + metadata || {}, + this.methodDescriptorResendWorkspaceMembershipInvitation); + } + + methodDescriptorCreateUser = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/CreateUser', + grpcWeb.MethodType.UNARY, + identity_pb.CreateUserRequest, + identity_pb.CreateUserResponse, + (request: identity_pb.CreateUserRequest) => { + return request.serializeBinary(); + }, + identity_pb.CreateUserResponse.deserializeBinary + ); + + createUser( + request: identity_pb.CreateUserRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + createUser( + request: identity_pb.CreateUserRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.CreateUserResponse) => void): grpcWeb.ClientReadableStream; + + createUser( + request: identity_pb.CreateUserRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.CreateUserResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/CreateUser', + request, + metadata || {}, + this.methodDescriptorCreateUser, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/CreateUser', + request, + metadata || {}, + this.methodDescriptorCreateUser); + } + + methodDescriptorGetUser = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/GetUser', + grpcWeb.MethodType.UNARY, + identity_pb.GetUserRequest, + identity_pb.User, + (request: identity_pb.GetUserRequest) => { + return request.serializeBinary(); + }, + identity_pb.User.deserializeBinary + ); + + getUser( + request: identity_pb.GetUserRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + getUser( + request: identity_pb.GetUserRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.User) => void): grpcWeb.ClientReadableStream; + + getUser( + request: identity_pb.GetUserRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.User) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/GetUser', + request, + metadata || {}, + this.methodDescriptorGetUser, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/GetUser', + request, + metadata || {}, + this.methodDescriptorGetUser); + } + + methodDescriptorUpdateUser = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/UpdateUser', + grpcWeb.MethodType.UNARY, + identity_pb.UpdateUserRequest, + identity_pb.UpdateUserResponse, + (request: identity_pb.UpdateUserRequest) => { + return request.serializeBinary(); + }, + identity_pb.UpdateUserResponse.deserializeBinary + ); + + updateUser( + request: identity_pb.UpdateUserRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + updateUser( + request: identity_pb.UpdateUserRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.UpdateUserResponse) => void): grpcWeb.ClientReadableStream; + + updateUser( + request: identity_pb.UpdateUserRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.UpdateUserResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/UpdateUser', + request, + metadata || {}, + this.methodDescriptorUpdateUser, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/UpdateUser', + request, + metadata || {}, + this.methodDescriptorUpdateUser); + } + + methodDescriptorDeleteUser = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/DeleteUser', + grpcWeb.MethodType.UNARY, + identity_pb.DeleteUserRequest, + identity_pb.DeleteUserResponse, + (request: identity_pb.DeleteUserRequest) => { + return request.serializeBinary(); + }, + identity_pb.DeleteUserResponse.deserializeBinary + ); + + deleteUser( + request: identity_pb.DeleteUserRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + deleteUser( + request: identity_pb.DeleteUserRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.DeleteUserResponse) => void): grpcWeb.ClientReadableStream; + + deleteUser( + request: identity_pb.DeleteUserRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.DeleteUserResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/DeleteUser', + request, + metadata || {}, + this.methodDescriptorDeleteUser, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/DeleteUser', + request, + metadata || {}, + this.methodDescriptorDeleteUser); + } + + methodDescriptorSendVerificationCode = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/SendVerificationCode', + grpcWeb.MethodType.UNARY, + identity_pb.SendVerificationCodeRequest, + google_protobuf_empty_pb.Empty, + (request: identity_pb.SendVerificationCodeRequest) => { + return request.serializeBinary(); + }, + google_protobuf_empty_pb.Empty.deserializeBinary + ); + + sendVerificationCode( + request: identity_pb.SendVerificationCodeRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + sendVerificationCode( + request: identity_pb.SendVerificationCodeRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: google_protobuf_empty_pb.Empty) => void): grpcWeb.ClientReadableStream; + + sendVerificationCode( + request: identity_pb.SendVerificationCodeRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: google_protobuf_empty_pb.Empty) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/SendVerificationCode', + request, + metadata || {}, + this.methodDescriptorSendVerificationCode, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/SendVerificationCode', + request, + metadata || {}, + this.methodDescriptorSendVerificationCode); + } + + methodDescriptorVerifyCode = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/VerifyCode', + grpcWeb.MethodType.UNARY, + identity_pb.VerifyCodeRequest, + google_protobuf_empty_pb.Empty, + (request: identity_pb.VerifyCodeRequest) => { + return request.serializeBinary(); + }, + google_protobuf_empty_pb.Empty.deserializeBinary + ); + + verifyCode( + request: identity_pb.VerifyCodeRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + verifyCode( + request: identity_pb.VerifyCodeRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: google_protobuf_empty_pb.Empty) => void): grpcWeb.ClientReadableStream; + + verifyCode( + request: identity_pb.VerifyCodeRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: google_protobuf_empty_pb.Empty) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/VerifyCode', + request, + metadata || {}, + this.methodDescriptorVerifyCode, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/VerifyCode', + request, + metadata || {}, + this.methodDescriptorVerifyCode); + } + + methodDescriptorCreateApiKey = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/CreateApiKey', + grpcWeb.MethodType.UNARY, + identity_pb.CreateApiKeyRequest, + identity_pb.CreateApiKeyResponse, + (request: identity_pb.CreateApiKeyRequest) => { + return request.serializeBinary(); + }, + identity_pb.CreateApiKeyResponse.deserializeBinary + ); + + createApiKey( + request: identity_pb.CreateApiKeyRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + createApiKey( + request: identity_pb.CreateApiKeyRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.CreateApiKeyResponse) => void): grpcWeb.ClientReadableStream; + + createApiKey( + request: identity_pb.CreateApiKeyRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.CreateApiKeyResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/CreateApiKey', + request, + metadata || {}, + this.methodDescriptorCreateApiKey, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/CreateApiKey', + request, + metadata || {}, + this.methodDescriptorCreateApiKey); + } + + methodDescriptorDeleteApiKey = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/DeleteApiKey', + grpcWeb.MethodType.UNARY, + identity_pb.DeleteApiKeyRequest, + identity_pb.DeleteApiKeyResponse, + (request: identity_pb.DeleteApiKeyRequest) => { + return request.serializeBinary(); + }, + identity_pb.DeleteApiKeyResponse.deserializeBinary + ); + + deleteApiKey( + request: identity_pb.DeleteApiKeyRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + deleteApiKey( + request: identity_pb.DeleteApiKeyRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.DeleteApiKeyResponse) => void): grpcWeb.ClientReadableStream; + + deleteApiKey( + request: identity_pb.DeleteApiKeyRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.DeleteApiKeyResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/DeleteApiKey', + request, + metadata || {}, + this.methodDescriptorDeleteApiKey, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/DeleteApiKey', + request, + metadata || {}, + this.methodDescriptorDeleteApiKey); + } + + methodDescriptorListApiKeys = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/ListApiKeys', + grpcWeb.MethodType.UNARY, + identity_pb.ListApiKeysRequest, + identity_pb.ListApiKeysResponse, + (request: identity_pb.ListApiKeysRequest) => { + return request.serializeBinary(); + }, + identity_pb.ListApiKeysResponse.deserializeBinary + ); + + listApiKeys( + request: identity_pb.ListApiKeysRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + listApiKeys( + request: identity_pb.ListApiKeysRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.ListApiKeysResponse) => void): grpcWeb.ClientReadableStream; + + listApiKeys( + request: identity_pb.ListApiKeysRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.ListApiKeysResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ListApiKeys', + request, + metadata || {}, + this.methodDescriptorListApiKeys, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ListApiKeys', + request, + metadata || {}, + this.methodDescriptorListApiKeys); + } + + methodDescriptorRegenerateApiKey = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/RegenerateApiKey', + grpcWeb.MethodType.UNARY, + identity_pb.RegenerateApiKeyRequest, + identity_pb.RegenerateApiKeyResponse, + (request: identity_pb.RegenerateApiKeyRequest) => { + return request.serializeBinary(); + }, + identity_pb.RegenerateApiKeyResponse.deserializeBinary + ); + + regenerateApiKey( + request: identity_pb.RegenerateApiKeyRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + regenerateApiKey( + request: identity_pb.RegenerateApiKeyRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.RegenerateApiKeyResponse) => void): grpcWeb.ClientReadableStream; + + regenerateApiKey( + request: identity_pb.RegenerateApiKeyRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.RegenerateApiKeyResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/RegenerateApiKey', + request, + metadata || {}, + this.methodDescriptorRegenerateApiKey, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/RegenerateApiKey', + request, + metadata || {}, + this.methodDescriptorRegenerateApiKey); + } + + methodDescriptorExchangeCredentials = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/ExchangeCredentials', + grpcWeb.MethodType.UNARY, + identity_pb.ExchangeCredentialsRequest, + identity_pb.ExchangeCredentialsResponse, + (request: identity_pb.ExchangeCredentialsRequest) => { + return request.serializeBinary(); + }, + identity_pb.ExchangeCredentialsResponse.deserializeBinary + ); + + exchangeCredentials( + request: identity_pb.ExchangeCredentialsRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + exchangeCredentials( + request: identity_pb.ExchangeCredentialsRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.ExchangeCredentialsResponse) => void): grpcWeb.ClientReadableStream; + + exchangeCredentials( + request: identity_pb.ExchangeCredentialsRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.ExchangeCredentialsResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ExchangeCredentials', + request, + metadata || {}, + this.methodDescriptorExchangeCredentials, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ExchangeCredentials', + request, + metadata || {}, + this.methodDescriptorExchangeCredentials); + } + + methodDescriptorExchangeApiKey = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/ExchangeApiKey', + grpcWeb.MethodType.UNARY, + identity_pb.ExchangeApiKeyRequest, + identity_pb.ExchangeApiKeyResponse, + (request: identity_pb.ExchangeApiKeyRequest) => { + return request.serializeBinary(); + }, + identity_pb.ExchangeApiKeyResponse.deserializeBinary + ); + + exchangeApiKey( + request: identity_pb.ExchangeApiKeyRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + exchangeApiKey( + request: identity_pb.ExchangeApiKeyRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.ExchangeApiKeyResponse) => void): grpcWeb.ClientReadableStream; + + exchangeApiKey( + request: identity_pb.ExchangeApiKeyRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.ExchangeApiKeyResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ExchangeApiKey', + request, + metadata || {}, + this.methodDescriptorExchangeApiKey, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ExchangeApiKey', + request, + metadata || {}, + this.methodDescriptorExchangeApiKey); + } + + methodDescriptorExchangeOauth2Code = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/ExchangeOauth2Code', + grpcWeb.MethodType.UNARY, + identity_pb.ExchangeOauth2CodeRequest, + identity_pb.ExchangeOauth2CodeResponse, + (request: identity_pb.ExchangeOauth2CodeRequest) => { + return request.serializeBinary(); + }, + identity_pb.ExchangeOauth2CodeResponse.deserializeBinary + ); + + exchangeOauth2Code( + request: identity_pb.ExchangeOauth2CodeRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + exchangeOauth2Code( + request: identity_pb.ExchangeOauth2CodeRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.ExchangeOauth2CodeResponse) => void): grpcWeb.ClientReadableStream; + + exchangeOauth2Code( + request: identity_pb.ExchangeOauth2CodeRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.ExchangeOauth2CodeResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ExchangeOauth2Code', + request, + metadata || {}, + this.methodDescriptorExchangeOauth2Code, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ExchangeOauth2Code', + request, + metadata || {}, + this.methodDescriptorExchangeOauth2Code); + } + + methodDescriptorExchangeRefreshToken = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/ExchangeRefreshToken', + grpcWeb.MethodType.UNARY, + identity_pb.ExchangeRefreshTokenRequest, + identity_pb.ExchangeRefreshTokenResponse, + (request: identity_pb.ExchangeRefreshTokenRequest) => { + return request.serializeBinary(); + }, + identity_pb.ExchangeRefreshTokenResponse.deserializeBinary + ); + + exchangeRefreshToken( + request: identity_pb.ExchangeRefreshTokenRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + exchangeRefreshToken( + request: identity_pb.ExchangeRefreshTokenRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.ExchangeRefreshTokenResponse) => void): grpcWeb.ClientReadableStream; + + exchangeRefreshToken( + request: identity_pb.ExchangeRefreshTokenRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.ExchangeRefreshTokenResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ExchangeRefreshToken', + request, + metadata || {}, + this.methodDescriptorExchangeRefreshToken, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/ExchangeRefreshToken', + request, + metadata || {}, + this.methodDescriptorExchangeRefreshToken); + } + + methodDescriptorRevokeToken = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/RevokeToken', + grpcWeb.MethodType.UNARY, + identity_pb.RevokeTokenRequest, + identity_pb.RevokeTokenResponse, + (request: identity_pb.RevokeTokenRequest) => { + return request.serializeBinary(); + }, + identity_pb.RevokeTokenResponse.deserializeBinary + ); + + revokeToken( + request: identity_pb.RevokeTokenRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + revokeToken( + request: identity_pb.RevokeTokenRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.RevokeTokenResponse) => void): grpcWeb.ClientReadableStream; + + revokeToken( + request: identity_pb.RevokeTokenRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.RevokeTokenResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/RevokeToken', + request, + metadata || {}, + this.methodDescriptorRevokeToken, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/RevokeToken', + request, + metadata || {}, + this.methodDescriptorRevokeToken); + } + + methodDescriptorGetPublicKey = new grpcWeb.MethodDescriptor( + '/fonoster.identity.v1beta2.Identity/GetPublicKey', + grpcWeb.MethodType.UNARY, + google_protobuf_empty_pb.Empty, + identity_pb.GetPublicKeyResponse, + (request: google_protobuf_empty_pb.Empty) => { + return request.serializeBinary(); + }, + identity_pb.GetPublicKeyResponse.deserializeBinary + ); + + getPublicKey( + request: google_protobuf_empty_pb.Empty, + metadata?: grpcWeb.Metadata | null): Promise; + + getPublicKey( + request: google_protobuf_empty_pb.Empty, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: identity_pb.GetPublicKeyResponse) => void): grpcWeb.ClientReadableStream; + + getPublicKey( + request: google_protobuf_empty_pb.Empty, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: identity_pb.GetPublicKeyResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/GetPublicKey', + request, + metadata || {}, + this.methodDescriptorGetPublicKey, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.identity.v1beta2.Identity/GetPublicKey', + request, + metadata || {}, + this.methodDescriptorGetPublicKey); + } + +} + diff --git a/mods/sdk/src/generated/web/NumbersServiceClientPb.ts b/mods/sdk/src/generated/web/NumbersServiceClientPb.ts new file mode 100644 index 000000000..34ef41f9c --- /dev/null +++ b/mods/sdk/src/generated/web/NumbersServiceClientPb.ts @@ -0,0 +1,258 @@ +/** + * @fileoverview gRPC-Web generated client stub for fonoster.numbers.v1beta2 + * @enhanceable + * @public + */ + +// Code generated by protoc-gen-grpc-web. DO NOT EDIT. +// versions: +// protoc-gen-grpc-web v1.5.0 +// protoc v3.20.3 +// source: numbers.proto + + +/* eslint-disable */ +// @ts-nocheck + + +import * as grpcWeb from 'grpc-web'; + +import * as numbers_pb from './numbers_pb'; // proto import: "numbers.proto" + + +export class NumbersClient { + client_: grpcWeb.AbstractClientBase; + hostname_: string; + credentials_: null | { [index: string]: string; }; + options_: null | { [index: string]: any; }; + + constructor (hostname: string, + credentials?: null | { [index: string]: string; }, + options?: null | { [index: string]: any; }) { + if (!options) options = {}; + if (!credentials) credentials = {}; + options['format'] = 'text'; + + this.client_ = new grpcWeb.GrpcWebClientBase(options); + this.hostname_ = hostname.replace(/\/+$/, ''); + this.credentials_ = credentials; + this.options_ = options; + } + + methodDescriptorCreateNumber = new grpcWeb.MethodDescriptor( + '/fonoster.numbers.v1beta2.Numbers/CreateNumber', + grpcWeb.MethodType.UNARY, + numbers_pb.CreateNumberRequest, + numbers_pb.CreateNumberResponse, + (request: numbers_pb.CreateNumberRequest) => { + return request.serializeBinary(); + }, + numbers_pb.CreateNumberResponse.deserializeBinary + ); + + createNumber( + request: numbers_pb.CreateNumberRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + createNumber( + request: numbers_pb.CreateNumberRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: numbers_pb.CreateNumberResponse) => void): grpcWeb.ClientReadableStream; + + createNumber( + request: numbers_pb.CreateNumberRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: numbers_pb.CreateNumberResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.numbers.v1beta2.Numbers/CreateNumber', + request, + metadata || {}, + this.methodDescriptorCreateNumber, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.numbers.v1beta2.Numbers/CreateNumber', + request, + metadata || {}, + this.methodDescriptorCreateNumber); + } + + methodDescriptorUpdateNumber = new grpcWeb.MethodDescriptor( + '/fonoster.numbers.v1beta2.Numbers/UpdateNumber', + grpcWeb.MethodType.UNARY, + numbers_pb.UpdateNumberRequest, + numbers_pb.UpdateNumberResponse, + (request: numbers_pb.UpdateNumberRequest) => { + return request.serializeBinary(); + }, + numbers_pb.UpdateNumberResponse.deserializeBinary + ); + + updateNumber( + request: numbers_pb.UpdateNumberRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + updateNumber( + request: numbers_pb.UpdateNumberRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: numbers_pb.UpdateNumberResponse) => void): grpcWeb.ClientReadableStream; + + updateNumber( + request: numbers_pb.UpdateNumberRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: numbers_pb.UpdateNumberResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.numbers.v1beta2.Numbers/UpdateNumber', + request, + metadata || {}, + this.methodDescriptorUpdateNumber, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.numbers.v1beta2.Numbers/UpdateNumber', + request, + metadata || {}, + this.methodDescriptorUpdateNumber); + } + + methodDescriptorGetNumber = new grpcWeb.MethodDescriptor( + '/fonoster.numbers.v1beta2.Numbers/GetNumber', + grpcWeb.MethodType.UNARY, + numbers_pb.GetNumberRequest, + numbers_pb.Number, + (request: numbers_pb.GetNumberRequest) => { + return request.serializeBinary(); + }, + numbers_pb.Number.deserializeBinary + ); + + getNumber( + request: numbers_pb.GetNumberRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + getNumber( + request: numbers_pb.GetNumberRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: numbers_pb.Number) => void): grpcWeb.ClientReadableStream; + + getNumber( + request: numbers_pb.GetNumberRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: numbers_pb.Number) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.numbers.v1beta2.Numbers/GetNumber', + request, + metadata || {}, + this.methodDescriptorGetNumber, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.numbers.v1beta2.Numbers/GetNumber', + request, + metadata || {}, + this.methodDescriptorGetNumber); + } + + methodDescriptorDeleteNumber = new grpcWeb.MethodDescriptor( + '/fonoster.numbers.v1beta2.Numbers/DeleteNumber', + grpcWeb.MethodType.UNARY, + numbers_pb.DeleteNumberRequest, + numbers_pb.DeleteNumberResponse, + (request: numbers_pb.DeleteNumberRequest) => { + return request.serializeBinary(); + }, + numbers_pb.DeleteNumberResponse.deserializeBinary + ); + + deleteNumber( + request: numbers_pb.DeleteNumberRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + deleteNumber( + request: numbers_pb.DeleteNumberRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: numbers_pb.DeleteNumberResponse) => void): grpcWeb.ClientReadableStream; + + deleteNumber( + request: numbers_pb.DeleteNumberRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: numbers_pb.DeleteNumberResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.numbers.v1beta2.Numbers/DeleteNumber', + request, + metadata || {}, + this.methodDescriptorDeleteNumber, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.numbers.v1beta2.Numbers/DeleteNumber', + request, + metadata || {}, + this.methodDescriptorDeleteNumber); + } + + methodDescriptorListNumbers = new grpcWeb.MethodDescriptor( + '/fonoster.numbers.v1beta2.Numbers/ListNumbers', + grpcWeb.MethodType.UNARY, + numbers_pb.ListNumbersRequest, + numbers_pb.ListNumbersResponse, + (request: numbers_pb.ListNumbersRequest) => { + return request.serializeBinary(); + }, + numbers_pb.ListNumbersResponse.deserializeBinary + ); + + listNumbers( + request: numbers_pb.ListNumbersRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + listNumbers( + request: numbers_pb.ListNumbersRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: numbers_pb.ListNumbersResponse) => void): grpcWeb.ClientReadableStream; + + listNumbers( + request: numbers_pb.ListNumbersRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: numbers_pb.ListNumbersResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.numbers.v1beta2.Numbers/ListNumbers', + request, + metadata || {}, + this.methodDescriptorListNumbers, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.numbers.v1beta2.Numbers/ListNumbers', + request, + metadata || {}, + this.methodDescriptorListNumbers); + } + +} + diff --git a/mods/sdk/src/generated/web/SecretsServiceClientPb.ts b/mods/sdk/src/generated/web/SecretsServiceClientPb.ts new file mode 100644 index 000000000..7ead00cb1 --- /dev/null +++ b/mods/sdk/src/generated/web/SecretsServiceClientPb.ts @@ -0,0 +1,258 @@ +/** + * @fileoverview gRPC-Web generated client stub for fonoster.secrets.v1beta2 + * @enhanceable + * @public + */ + +// Code generated by protoc-gen-grpc-web. DO NOT EDIT. +// versions: +// protoc-gen-grpc-web v1.5.0 +// protoc v3.20.3 +// source: secrets.proto + + +/* eslint-disable */ +// @ts-nocheck + + +import * as grpcWeb from 'grpc-web'; + +import * as secrets_pb from './secrets_pb'; // proto import: "secrets.proto" + + +export class SecretsClient { + client_: grpcWeb.AbstractClientBase; + hostname_: string; + credentials_: null | { [index: string]: string; }; + options_: null | { [index: string]: any; }; + + constructor (hostname: string, + credentials?: null | { [index: string]: string; }, + options?: null | { [index: string]: any; }) { + if (!options) options = {}; + if (!credentials) credentials = {}; + options['format'] = 'text'; + + this.client_ = new grpcWeb.GrpcWebClientBase(options); + this.hostname_ = hostname.replace(/\/+$/, ''); + this.credentials_ = credentials; + this.options_ = options; + } + + methodDescriptorCreateSecret = new grpcWeb.MethodDescriptor( + '/fonoster.secrets.v1beta2.Secrets/CreateSecret', + grpcWeb.MethodType.UNARY, + secrets_pb.CreateSecretRequest, + secrets_pb.CreateSecretResponse, + (request: secrets_pb.CreateSecretRequest) => { + return request.serializeBinary(); + }, + secrets_pb.CreateSecretResponse.deserializeBinary + ); + + createSecret( + request: secrets_pb.CreateSecretRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + createSecret( + request: secrets_pb.CreateSecretRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: secrets_pb.CreateSecretResponse) => void): grpcWeb.ClientReadableStream; + + createSecret( + request: secrets_pb.CreateSecretRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: secrets_pb.CreateSecretResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.secrets.v1beta2.Secrets/CreateSecret', + request, + metadata || {}, + this.methodDescriptorCreateSecret, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.secrets.v1beta2.Secrets/CreateSecret', + request, + metadata || {}, + this.methodDescriptorCreateSecret); + } + + methodDescriptorUpdateSecret = new grpcWeb.MethodDescriptor( + '/fonoster.secrets.v1beta2.Secrets/UpdateSecret', + grpcWeb.MethodType.UNARY, + secrets_pb.UpdateSecretRequest, + secrets_pb.UpdateSecretResponse, + (request: secrets_pb.UpdateSecretRequest) => { + return request.serializeBinary(); + }, + secrets_pb.UpdateSecretResponse.deserializeBinary + ); + + updateSecret( + request: secrets_pb.UpdateSecretRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + updateSecret( + request: secrets_pb.UpdateSecretRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: secrets_pb.UpdateSecretResponse) => void): grpcWeb.ClientReadableStream; + + updateSecret( + request: secrets_pb.UpdateSecretRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: secrets_pb.UpdateSecretResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.secrets.v1beta2.Secrets/UpdateSecret', + request, + metadata || {}, + this.methodDescriptorUpdateSecret, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.secrets.v1beta2.Secrets/UpdateSecret', + request, + metadata || {}, + this.methodDescriptorUpdateSecret); + } + + methodDescriptorGetSecret = new grpcWeb.MethodDescriptor( + '/fonoster.secrets.v1beta2.Secrets/GetSecret', + grpcWeb.MethodType.UNARY, + secrets_pb.GetSecretRequest, + secrets_pb.Secret, + (request: secrets_pb.GetSecretRequest) => { + return request.serializeBinary(); + }, + secrets_pb.Secret.deserializeBinary + ); + + getSecret( + request: secrets_pb.GetSecretRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + getSecret( + request: secrets_pb.GetSecretRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: secrets_pb.Secret) => void): grpcWeb.ClientReadableStream; + + getSecret( + request: secrets_pb.GetSecretRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: secrets_pb.Secret) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.secrets.v1beta2.Secrets/GetSecret', + request, + metadata || {}, + this.methodDescriptorGetSecret, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.secrets.v1beta2.Secrets/GetSecret', + request, + metadata || {}, + this.methodDescriptorGetSecret); + } + + methodDescriptorDeleteSecret = new grpcWeb.MethodDescriptor( + '/fonoster.secrets.v1beta2.Secrets/DeleteSecret', + grpcWeb.MethodType.UNARY, + secrets_pb.DeleteSecretRequest, + secrets_pb.DeleteSecretResponse, + (request: secrets_pb.DeleteSecretRequest) => { + return request.serializeBinary(); + }, + secrets_pb.DeleteSecretResponse.deserializeBinary + ); + + deleteSecret( + request: secrets_pb.DeleteSecretRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + deleteSecret( + request: secrets_pb.DeleteSecretRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: secrets_pb.DeleteSecretResponse) => void): grpcWeb.ClientReadableStream; + + deleteSecret( + request: secrets_pb.DeleteSecretRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: secrets_pb.DeleteSecretResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.secrets.v1beta2.Secrets/DeleteSecret', + request, + metadata || {}, + this.methodDescriptorDeleteSecret, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.secrets.v1beta2.Secrets/DeleteSecret', + request, + metadata || {}, + this.methodDescriptorDeleteSecret); + } + + methodDescriptorListSecrets = new grpcWeb.MethodDescriptor( + '/fonoster.secrets.v1beta2.Secrets/ListSecrets', + grpcWeb.MethodType.UNARY, + secrets_pb.ListSecretsRequest, + secrets_pb.ListSecretsResponse, + (request: secrets_pb.ListSecretsRequest) => { + return request.serializeBinary(); + }, + secrets_pb.ListSecretsResponse.deserializeBinary + ); + + listSecrets( + request: secrets_pb.ListSecretsRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + listSecrets( + request: secrets_pb.ListSecretsRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: secrets_pb.ListSecretsResponse) => void): grpcWeb.ClientReadableStream; + + listSecrets( + request: secrets_pb.ListSecretsRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: secrets_pb.ListSecretsResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.secrets.v1beta2.Secrets/ListSecrets', + request, + metadata || {}, + this.methodDescriptorListSecrets, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.secrets.v1beta2.Secrets/ListSecrets', + request, + metadata || {}, + this.methodDescriptorListSecrets); + } + +} + diff --git a/mods/sdk/src/generated/web/TrunksServiceClientPb.ts b/mods/sdk/src/generated/web/TrunksServiceClientPb.ts new file mode 100644 index 000000000..66206904b --- /dev/null +++ b/mods/sdk/src/generated/web/TrunksServiceClientPb.ts @@ -0,0 +1,258 @@ +/** + * @fileoverview gRPC-Web generated client stub for fonoster.trunks.v1beta2 + * @enhanceable + * @public + */ + +// Code generated by protoc-gen-grpc-web. DO NOT EDIT. +// versions: +// protoc-gen-grpc-web v1.5.0 +// protoc v3.20.3 +// source: trunks.proto + + +/* eslint-disable */ +// @ts-nocheck + + +import * as grpcWeb from 'grpc-web'; + +import * as trunks_pb from './trunks_pb'; // proto import: "trunks.proto" + + +export class TrunksClient { + client_: grpcWeb.AbstractClientBase; + hostname_: string; + credentials_: null | { [index: string]: string; }; + options_: null | { [index: string]: any; }; + + constructor (hostname: string, + credentials?: null | { [index: string]: string; }, + options?: null | { [index: string]: any; }) { + if (!options) options = {}; + if (!credentials) credentials = {}; + options['format'] = 'text'; + + this.client_ = new grpcWeb.GrpcWebClientBase(options); + this.hostname_ = hostname.replace(/\/+$/, ''); + this.credentials_ = credentials; + this.options_ = options; + } + + methodDescriptorCreateTrunk = new grpcWeb.MethodDescriptor( + '/fonoster.trunks.v1beta2.Trunks/CreateTrunk', + grpcWeb.MethodType.UNARY, + trunks_pb.CreateTrunkRequest, + trunks_pb.CreateTrunkResponse, + (request: trunks_pb.CreateTrunkRequest) => { + return request.serializeBinary(); + }, + trunks_pb.CreateTrunkResponse.deserializeBinary + ); + + createTrunk( + request: trunks_pb.CreateTrunkRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + createTrunk( + request: trunks_pb.CreateTrunkRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: trunks_pb.CreateTrunkResponse) => void): grpcWeb.ClientReadableStream; + + createTrunk( + request: trunks_pb.CreateTrunkRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: trunks_pb.CreateTrunkResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.trunks.v1beta2.Trunks/CreateTrunk', + request, + metadata || {}, + this.methodDescriptorCreateTrunk, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.trunks.v1beta2.Trunks/CreateTrunk', + request, + metadata || {}, + this.methodDescriptorCreateTrunk); + } + + methodDescriptorUpdateTrunk = new grpcWeb.MethodDescriptor( + '/fonoster.trunks.v1beta2.Trunks/UpdateTrunk', + grpcWeb.MethodType.UNARY, + trunks_pb.UpdateTrunkRequest, + trunks_pb.UpdateTrunkResponse, + (request: trunks_pb.UpdateTrunkRequest) => { + return request.serializeBinary(); + }, + trunks_pb.UpdateTrunkResponse.deserializeBinary + ); + + updateTrunk( + request: trunks_pb.UpdateTrunkRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + updateTrunk( + request: trunks_pb.UpdateTrunkRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: trunks_pb.UpdateTrunkResponse) => void): grpcWeb.ClientReadableStream; + + updateTrunk( + request: trunks_pb.UpdateTrunkRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: trunks_pb.UpdateTrunkResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.trunks.v1beta2.Trunks/UpdateTrunk', + request, + metadata || {}, + this.methodDescriptorUpdateTrunk, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.trunks.v1beta2.Trunks/UpdateTrunk', + request, + metadata || {}, + this.methodDescriptorUpdateTrunk); + } + + methodDescriptorGetTrunk = new grpcWeb.MethodDescriptor( + '/fonoster.trunks.v1beta2.Trunks/GetTrunk', + grpcWeb.MethodType.UNARY, + trunks_pb.GetTrunkRequest, + trunks_pb.Trunk, + (request: trunks_pb.GetTrunkRequest) => { + return request.serializeBinary(); + }, + trunks_pb.Trunk.deserializeBinary + ); + + getTrunk( + request: trunks_pb.GetTrunkRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + getTrunk( + request: trunks_pb.GetTrunkRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: trunks_pb.Trunk) => void): grpcWeb.ClientReadableStream; + + getTrunk( + request: trunks_pb.GetTrunkRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: trunks_pb.Trunk) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.trunks.v1beta2.Trunks/GetTrunk', + request, + metadata || {}, + this.methodDescriptorGetTrunk, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.trunks.v1beta2.Trunks/GetTrunk', + request, + metadata || {}, + this.methodDescriptorGetTrunk); + } + + methodDescriptorDeleteTrunk = new grpcWeb.MethodDescriptor( + '/fonoster.trunks.v1beta2.Trunks/DeleteTrunk', + grpcWeb.MethodType.UNARY, + trunks_pb.DeleteTrunkRequest, + trunks_pb.DeleteTrunkResponse, + (request: trunks_pb.DeleteTrunkRequest) => { + return request.serializeBinary(); + }, + trunks_pb.DeleteTrunkResponse.deserializeBinary + ); + + deleteTrunk( + request: trunks_pb.DeleteTrunkRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + deleteTrunk( + request: trunks_pb.DeleteTrunkRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: trunks_pb.DeleteTrunkResponse) => void): grpcWeb.ClientReadableStream; + + deleteTrunk( + request: trunks_pb.DeleteTrunkRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: trunks_pb.DeleteTrunkResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.trunks.v1beta2.Trunks/DeleteTrunk', + request, + metadata || {}, + this.methodDescriptorDeleteTrunk, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.trunks.v1beta2.Trunks/DeleteTrunk', + request, + metadata || {}, + this.methodDescriptorDeleteTrunk); + } + + methodDescriptorListTrunks = new grpcWeb.MethodDescriptor( + '/fonoster.trunks.v1beta2.Trunks/ListTrunks', + grpcWeb.MethodType.UNARY, + trunks_pb.ListTrunksRequest, + trunks_pb.ListTrunksResponse, + (request: trunks_pb.ListTrunksRequest) => { + return request.serializeBinary(); + }, + trunks_pb.ListTrunksResponse.deserializeBinary + ); + + listTrunks( + request: trunks_pb.ListTrunksRequest, + metadata?: grpcWeb.Metadata | null): Promise; + + listTrunks( + request: trunks_pb.ListTrunksRequest, + metadata: grpcWeb.Metadata | null, + callback: (err: grpcWeb.RpcError, + response: trunks_pb.ListTrunksResponse) => void): grpcWeb.ClientReadableStream; + + listTrunks( + request: trunks_pb.ListTrunksRequest, + metadata?: grpcWeb.Metadata | null, + callback?: (err: grpcWeb.RpcError, + response: trunks_pb.ListTrunksResponse) => void) { + if (callback !== undefined) { + return this.client_.rpcCall( + this.hostname_ + + '/fonoster.trunks.v1beta2.Trunks/ListTrunks', + request, + metadata || {}, + this.methodDescriptorListTrunks, + callback); + } + return this.client_.unaryCall( + this.hostname_ + + '/fonoster.trunks.v1beta2.Trunks/ListTrunks', + request, + metadata || {}, + this.methodDescriptorListTrunks); + } + +} + diff --git a/mods/sdk/src/generated/web/acls_pb.d.ts b/mods/sdk/src/generated/web/acls_pb.d.ts new file mode 100644 index 000000000..714474790 --- /dev/null +++ b/mods/sdk/src/generated/web/acls_pb.d.ts @@ -0,0 +1,228 @@ +import * as jspb from 'google-protobuf' + + + +export class Acl extends jspb.Message { + getRef(): string; + setRef(value: string): Acl; + + getName(): string; + setName(value: string): Acl; + + getAllowList(): Array; + setAllowList(value: Array): Acl; + clearAllowList(): Acl; + addAllow(value: string, index?: number): Acl; + + getCreatedAt(): number; + setCreatedAt(value: number): Acl; + + getUpdatedAt(): number; + setUpdatedAt(value: number): Acl; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Acl.AsObject; + static toObject(includeInstance: boolean, msg: Acl): Acl.AsObject; + static serializeBinaryToWriter(message: Acl, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Acl; + static deserializeBinaryFromReader(message: Acl, reader: jspb.BinaryReader): Acl; +} + +export namespace Acl { + export type AsObject = { + ref: string, + name: string, + allowList: Array, + createdAt: number, + updatedAt: number, + } +} + +export class CreateAclRequest extends jspb.Message { + getName(): string; + setName(value: string): CreateAclRequest; + + getAllowList(): Array; + setAllowList(value: Array): CreateAclRequest; + clearAllowList(): CreateAclRequest; + addAllow(value: string, index?: number): CreateAclRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateAclRequest.AsObject; + static toObject(includeInstance: boolean, msg: CreateAclRequest): CreateAclRequest.AsObject; + static serializeBinaryToWriter(message: CreateAclRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateAclRequest; + static deserializeBinaryFromReader(message: CreateAclRequest, reader: jspb.BinaryReader): CreateAclRequest; +} + +export namespace CreateAclRequest { + export type AsObject = { + name: string, + allowList: Array, + } +} + +export class CreateAclResponse extends jspb.Message { + getRef(): string; + setRef(value: string): CreateAclResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateAclResponse.AsObject; + static toObject(includeInstance: boolean, msg: CreateAclResponse): CreateAclResponse.AsObject; + static serializeBinaryToWriter(message: CreateAclResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateAclResponse; + static deserializeBinaryFromReader(message: CreateAclResponse, reader: jspb.BinaryReader): CreateAclResponse; +} + +export namespace CreateAclResponse { + export type AsObject = { + ref: string, + } +} + +export class UpdateAclRequest extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateAclRequest; + + getName(): string; + setName(value: string): UpdateAclRequest; + + getAllowList(): Array; + setAllowList(value: Array): UpdateAclRequest; + clearAllowList(): UpdateAclRequest; + addAllow(value: string, index?: number): UpdateAclRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateAclRequest.AsObject; + static toObject(includeInstance: boolean, msg: UpdateAclRequest): UpdateAclRequest.AsObject; + static serializeBinaryToWriter(message: UpdateAclRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateAclRequest; + static deserializeBinaryFromReader(message: UpdateAclRequest, reader: jspb.BinaryReader): UpdateAclRequest; +} + +export namespace UpdateAclRequest { + export type AsObject = { + ref: string, + name: string, + allowList: Array, + } +} + +export class UpdateAclResponse extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateAclResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateAclResponse.AsObject; + static toObject(includeInstance: boolean, msg: UpdateAclResponse): UpdateAclResponse.AsObject; + static serializeBinaryToWriter(message: UpdateAclResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateAclResponse; + static deserializeBinaryFromReader(message: UpdateAclResponse, reader: jspb.BinaryReader): UpdateAclResponse; +} + +export namespace UpdateAclResponse { + export type AsObject = { + ref: string, + } +} + +export class GetAclRequest extends jspb.Message { + getRef(): string; + setRef(value: string): GetAclRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetAclRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetAclRequest): GetAclRequest.AsObject; + static serializeBinaryToWriter(message: GetAclRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetAclRequest; + static deserializeBinaryFromReader(message: GetAclRequest, reader: jspb.BinaryReader): GetAclRequest; +} + +export namespace GetAclRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteAclRequest extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteAclRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteAclRequest.AsObject; + static toObject(includeInstance: boolean, msg: DeleteAclRequest): DeleteAclRequest.AsObject; + static serializeBinaryToWriter(message: DeleteAclRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteAclRequest; + static deserializeBinaryFromReader(message: DeleteAclRequest, reader: jspb.BinaryReader): DeleteAclRequest; +} + +export namespace DeleteAclRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteAclResponse extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteAclResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteAclResponse.AsObject; + static toObject(includeInstance: boolean, msg: DeleteAclResponse): DeleteAclResponse.AsObject; + static serializeBinaryToWriter(message: DeleteAclResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteAclResponse; + static deserializeBinaryFromReader(message: DeleteAclResponse, reader: jspb.BinaryReader): DeleteAclResponse; +} + +export namespace DeleteAclResponse { + export type AsObject = { + ref: string, + } +} + +export class ListAclsRequest extends jspb.Message { + getPageSize(): number; + setPageSize(value: number): ListAclsRequest; + + getPageToken(): string; + setPageToken(value: string): ListAclsRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListAclsRequest.AsObject; + static toObject(includeInstance: boolean, msg: ListAclsRequest): ListAclsRequest.AsObject; + static serializeBinaryToWriter(message: ListAclsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListAclsRequest; + static deserializeBinaryFromReader(message: ListAclsRequest, reader: jspb.BinaryReader): ListAclsRequest; +} + +export namespace ListAclsRequest { + export type AsObject = { + pageSize: number, + pageToken: string, + } +} + +export class ListAclsResponse extends jspb.Message { + getItemsList(): Array; + setItemsList(value: Array): ListAclsResponse; + clearItemsList(): ListAclsResponse; + addItems(value?: Acl, index?: number): Acl; + + getNextPageToken(): string; + setNextPageToken(value: string): ListAclsResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListAclsResponse.AsObject; + static toObject(includeInstance: boolean, msg: ListAclsResponse): ListAclsResponse.AsObject; + static serializeBinaryToWriter(message: ListAclsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListAclsResponse; + static deserializeBinaryFromReader(message: ListAclsResponse, reader: jspb.BinaryReader): ListAclsResponse; +} + +export namespace ListAclsResponse { + export type AsObject = { + itemsList: Array, + nextPageToken: string, + } +} + diff --git a/mods/sdk/src/generated/web/acls_pb.js b/mods/sdk/src/generated/web/acls_pb.js new file mode 100644 index 000000000..7f3c5673c --- /dev/null +++ b/mods/sdk/src/generated/web/acls_pb.js @@ -0,0 +1,1916 @@ +// source: acls.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.acls.v1beta2.Acl', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.CreateAclRequest', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.CreateAclResponse', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.DeleteAclRequest', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.DeleteAclResponse', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.GetAclRequest', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.ListAclsRequest', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.ListAclsResponse', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.UpdateAclRequest', null, global); +goog.exportSymbol('proto.fonoster.acls.v1beta2.UpdateAclResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.Acl = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.acls.v1beta2.Acl.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.Acl, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.Acl.displayName = 'proto.fonoster.acls.v1beta2.Acl'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.CreateAclRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.acls.v1beta2.CreateAclRequest.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.CreateAclRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.CreateAclRequest.displayName = 'proto.fonoster.acls.v1beta2.CreateAclRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.CreateAclResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.CreateAclResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.CreateAclResponse.displayName = 'proto.fonoster.acls.v1beta2.CreateAclResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.acls.v1beta2.UpdateAclRequest.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.UpdateAclRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.UpdateAclRequest.displayName = 'proto.fonoster.acls.v1beta2.UpdateAclRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.UpdateAclResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.UpdateAclResponse.displayName = 'proto.fonoster.acls.v1beta2.UpdateAclResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.GetAclRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.GetAclRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.GetAclRequest.displayName = 'proto.fonoster.acls.v1beta2.GetAclRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.DeleteAclRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.DeleteAclRequest.displayName = 'proto.fonoster.acls.v1beta2.DeleteAclRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.DeleteAclResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.DeleteAclResponse.displayName = 'proto.fonoster.acls.v1beta2.DeleteAclResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.ListAclsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.ListAclsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.ListAclsRequest.displayName = 'proto.fonoster.acls.v1beta2.ListAclsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.acls.v1beta2.ListAclsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.acls.v1beta2.ListAclsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.acls.v1beta2.ListAclsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.acls.v1beta2.ListAclsResponse.displayName = 'proto.fonoster.acls.v1beta2.ListAclsResponse'; +} + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.acls.v1beta2.Acl.repeatedFields_ = [3]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.Acl.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.Acl} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.Acl.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + allowList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f, + createdAt: jspb.Message.getFieldWithDefault(msg, 4, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 5, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.Acl} + */ +proto.fonoster.acls.v1beta2.Acl.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.Acl; + return proto.fonoster.acls.v1beta2.Acl.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.Acl} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.Acl} + */ +proto.fonoster.acls.v1beta2.Acl.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.addAllow(value); + break; + case 4: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.Acl.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.Acl} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.Acl.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAllowList(); + if (f.length > 0) { + writer.writeRepeatedString( + 3, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 4, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * repeated string allow = 3; + * @return {!Array} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.getAllowList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 3)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.setAllowList = function(value) { + return jspb.Message.setField(this, 3, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.addAllow = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 3, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.clearAllowList = function() { + return this.setAllowList([]); +}; + + +/** + * optional int32 created_at = 4; + * @return {number} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional int32 updated_at = 5; + * @return {number} + */ +proto.fonoster.acls.v1beta2.Acl.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.acls.v1beta2.Acl} returns this + */ +proto.fonoster.acls.v1beta2.Acl.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.repeatedFields_ = [2]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.CreateAclRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.CreateAclRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + allowList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.CreateAclRequest} + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.CreateAclRequest; + return proto.fonoster.acls.v1beta2.CreateAclRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.CreateAclRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.CreateAclRequest} + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.addAllow(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.CreateAclRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.CreateAclRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAllowList(); + if (f.length > 0) { + writer.writeRepeatedString( + 2, + f + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.CreateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * repeated string allow = 2; + * @return {!Array} + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.getAllowList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.acls.v1beta2.CreateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.setAllowList = function(value) { + return jspb.Message.setField(this, 2, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.fonoster.acls.v1beta2.CreateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.addAllow = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 2, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.acls.v1beta2.CreateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.CreateAclRequest.prototype.clearAllowList = function() { + return this.setAllowList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.CreateAclResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.CreateAclResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.CreateAclResponse} + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.CreateAclResponse; + return proto.fonoster.acls.v1beta2.CreateAclResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.CreateAclResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.CreateAclResponse} + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.CreateAclResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.CreateAclResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.CreateAclResponse} returns this + */ +proto.fonoster.acls.v1beta2.CreateAclResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.repeatedFields_ = [3]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.UpdateAclRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.UpdateAclRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + allowList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.UpdateAclRequest; + return proto.fonoster.acls.v1beta2.UpdateAclRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.UpdateAclRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.addAllow(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.UpdateAclRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.UpdateAclRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAllowList(); + if (f.length > 0) { + writer.writeRepeatedString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * repeated string allow = 3; + * @return {!Array} + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.getAllowList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 3)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.setAllowList = function(value) { + return jspb.Message.setField(this, 3, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.addAllow = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 3, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.acls.v1beta2.UpdateAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.UpdateAclRequest.prototype.clearAllowList = function() { + return this.setAllowList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.UpdateAclResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.UpdateAclResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.UpdateAclResponse} + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.UpdateAclResponse; + return proto.fonoster.acls.v1beta2.UpdateAclResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.UpdateAclResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.UpdateAclResponse} + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.UpdateAclResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.UpdateAclResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.UpdateAclResponse} returns this + */ +proto.fonoster.acls.v1beta2.UpdateAclResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.GetAclRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.GetAclRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.GetAclRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.GetAclRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.GetAclRequest} + */ +proto.fonoster.acls.v1beta2.GetAclRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.GetAclRequest; + return proto.fonoster.acls.v1beta2.GetAclRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.GetAclRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.GetAclRequest} + */ +proto.fonoster.acls.v1beta2.GetAclRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.GetAclRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.GetAclRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.GetAclRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.GetAclRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.GetAclRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.GetAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.GetAclRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.DeleteAclRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.DeleteAclRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.DeleteAclRequest} + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.DeleteAclRequest; + return proto.fonoster.acls.v1beta2.DeleteAclRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.DeleteAclRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.DeleteAclRequest} + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.DeleteAclRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.DeleteAclRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.DeleteAclRequest} returns this + */ +proto.fonoster.acls.v1beta2.DeleteAclRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.DeleteAclResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.DeleteAclResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.DeleteAclResponse} + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.DeleteAclResponse; + return proto.fonoster.acls.v1beta2.DeleteAclResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.DeleteAclResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.DeleteAclResponse} + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.DeleteAclResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.DeleteAclResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.DeleteAclResponse} returns this + */ +proto.fonoster.acls.v1beta2.DeleteAclResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.ListAclsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.ListAclsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.ListAclsRequest} + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.ListAclsRequest; + return proto.fonoster.acls.v1beta2.ListAclsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.ListAclsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.ListAclsRequest} + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.ListAclsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.ListAclsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.acls.v1beta2.ListAclsRequest} returns this + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.ListAclsRequest} returns this + */ +proto.fonoster.acls.v1beta2.ListAclsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.acls.v1beta2.ListAclsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.acls.v1beta2.ListAclsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.acls.v1beta2.Acl.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.acls.v1beta2.ListAclsResponse} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.acls.v1beta2.ListAclsResponse; + return proto.fonoster.acls.v1beta2.ListAclsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.acls.v1beta2.ListAclsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.acls.v1beta2.ListAclsResponse} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.acls.v1beta2.Acl; + reader.readMessage(value,proto.fonoster.acls.v1beta2.Acl.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.acls.v1beta2.ListAclsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.acls.v1beta2.ListAclsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.acls.v1beta2.Acl.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Acl items = 1; + * @return {!Array} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.acls.v1beta2.Acl, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.acls.v1beta2.ListAclsResponse} returns this +*/ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.acls.v1beta2.Acl=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.acls.v1beta2.Acl} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.acls.v1beta2.Acl, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.acls.v1beta2.ListAclsResponse} returns this + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.acls.v1beta2.ListAclsResponse} returns this + */ +proto.fonoster.acls.v1beta2.ListAclsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +goog.object.extend(exports, proto.fonoster.acls.v1beta2); diff --git a/mods/sdk/src/generated/web/agents_pb.d.ts b/mods/sdk/src/generated/web/agents_pb.d.ts new file mode 100644 index 000000000..ec441ee4c --- /dev/null +++ b/mods/sdk/src/generated/web/agents_pb.d.ts @@ -0,0 +1,352 @@ +import * as jspb from 'google-protobuf' + + + +export class Agent extends jspb.Message { + getRef(): string; + setRef(value: string): Agent; + + getName(): string; + setName(value: string): Agent; + + getUsername(): string; + setUsername(value: string): Agent; + + getPrivacy(): Privacy; + setPrivacy(value: Privacy): Agent; + + getEnabled(): boolean; + setEnabled(value: boolean): Agent; + + getCreatedAt(): number; + setCreatedAt(value: number): Agent; + + getUpdatedAt(): number; + setUpdatedAt(value: number): Agent; + + getMaxContacts(): number; + setMaxContacts(value: number): Agent; + + getExpires(): number; + setExpires(value: number): Agent; + + getDomain(): Agent.Domain | undefined; + setDomain(value?: Agent.Domain): Agent; + hasDomain(): boolean; + clearDomain(): Agent; + + getCredentials(): Agent.Credentials | undefined; + setCredentials(value?: Agent.Credentials): Agent; + hasCredentials(): boolean; + clearCredentials(): Agent; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Agent.AsObject; + static toObject(includeInstance: boolean, msg: Agent): Agent.AsObject; + static serializeBinaryToWriter(message: Agent, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Agent; + static deserializeBinaryFromReader(message: Agent, reader: jspb.BinaryReader): Agent; +} + +export namespace Agent { + export type AsObject = { + ref: string, + name: string, + username: string, + privacy: Privacy, + enabled: boolean, + createdAt: number, + updatedAt: number, + maxContacts: number, + expires: number, + domain?: Agent.Domain.AsObject, + credentials?: Agent.Credentials.AsObject, + } + + export class Domain extends jspb.Message { + getRef(): string; + setRef(value: string): Domain; + + getName(): string; + setName(value: string): Domain; + + getDomainUri(): string; + setDomainUri(value: string): Domain; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Domain.AsObject; + static toObject(includeInstance: boolean, msg: Domain): Domain.AsObject; + static serializeBinaryToWriter(message: Domain, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Domain; + static deserializeBinaryFromReader(message: Domain, reader: jspb.BinaryReader): Domain; + } + + export namespace Domain { + export type AsObject = { + ref: string, + name: string, + domainUri: string, + } + } + + + export class Credentials extends jspb.Message { + getRef(): string; + setRef(value: string): Credentials; + + getName(): string; + setName(value: string): Credentials; + + getUsername(): string; + setUsername(value: string): Credentials; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Credentials.AsObject; + static toObject(includeInstance: boolean, msg: Credentials): Credentials.AsObject; + static serializeBinaryToWriter(message: Credentials, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Credentials; + static deserializeBinaryFromReader(message: Credentials, reader: jspb.BinaryReader): Credentials; + } + + export namespace Credentials { + export type AsObject = { + ref: string, + name: string, + username: string, + } + } + +} + +export class CreateAgentRequest extends jspb.Message { + getName(): string; + setName(value: string): CreateAgentRequest; + + getUsername(): string; + setUsername(value: string): CreateAgentRequest; + + getPrivacy(): Privacy; + setPrivacy(value: Privacy): CreateAgentRequest; + + getEnabled(): boolean; + setEnabled(value: boolean): CreateAgentRequest; + + getDomainRef(): string; + setDomainRef(value: string): CreateAgentRequest; + + getCredentialsRef(): string; + setCredentialsRef(value: string): CreateAgentRequest; + + getMaxContacts(): number; + setMaxContacts(value: number): CreateAgentRequest; + + getExpires(): number; + setExpires(value: number): CreateAgentRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateAgentRequest.AsObject; + static toObject(includeInstance: boolean, msg: CreateAgentRequest): CreateAgentRequest.AsObject; + static serializeBinaryToWriter(message: CreateAgentRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateAgentRequest; + static deserializeBinaryFromReader(message: CreateAgentRequest, reader: jspb.BinaryReader): CreateAgentRequest; +} + +export namespace CreateAgentRequest { + export type AsObject = { + name: string, + username: string, + privacy: Privacy, + enabled: boolean, + domainRef: string, + credentialsRef: string, + maxContacts: number, + expires: number, + } +} + +export class CreateAgentResponse extends jspb.Message { + getRef(): string; + setRef(value: string): CreateAgentResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateAgentResponse.AsObject; + static toObject(includeInstance: boolean, msg: CreateAgentResponse): CreateAgentResponse.AsObject; + static serializeBinaryToWriter(message: CreateAgentResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateAgentResponse; + static deserializeBinaryFromReader(message: CreateAgentResponse, reader: jspb.BinaryReader): CreateAgentResponse; +} + +export namespace CreateAgentResponse { + export type AsObject = { + ref: string, + } +} + +export class UpdateAgentRequest extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateAgentRequest; + + getName(): string; + setName(value: string): UpdateAgentRequest; + + getPrivacy(): Privacy; + setPrivacy(value: Privacy): UpdateAgentRequest; + + getEnabled(): boolean; + setEnabled(value: boolean): UpdateAgentRequest; + + getDomainRef(): string; + setDomainRef(value: string): UpdateAgentRequest; + + getCredentialsRef(): string; + setCredentialsRef(value: string): UpdateAgentRequest; + + getMaxContacts(): number; + setMaxContacts(value: number): UpdateAgentRequest; + + getExpires(): number; + setExpires(value: number): UpdateAgentRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateAgentRequest.AsObject; + static toObject(includeInstance: boolean, msg: UpdateAgentRequest): UpdateAgentRequest.AsObject; + static serializeBinaryToWriter(message: UpdateAgentRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateAgentRequest; + static deserializeBinaryFromReader(message: UpdateAgentRequest, reader: jspb.BinaryReader): UpdateAgentRequest; +} + +export namespace UpdateAgentRequest { + export type AsObject = { + ref: string, + name: string, + privacy: Privacy, + enabled: boolean, + domainRef: string, + credentialsRef: string, + maxContacts: number, + expires: number, + } +} + +export class UpdateAgentResponse extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateAgentResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateAgentResponse.AsObject; + static toObject(includeInstance: boolean, msg: UpdateAgentResponse): UpdateAgentResponse.AsObject; + static serializeBinaryToWriter(message: UpdateAgentResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateAgentResponse; + static deserializeBinaryFromReader(message: UpdateAgentResponse, reader: jspb.BinaryReader): UpdateAgentResponse; +} + +export namespace UpdateAgentResponse { + export type AsObject = { + ref: string, + } +} + +export class GetAgentRequest extends jspb.Message { + getRef(): string; + setRef(value: string): GetAgentRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetAgentRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetAgentRequest): GetAgentRequest.AsObject; + static serializeBinaryToWriter(message: GetAgentRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetAgentRequest; + static deserializeBinaryFromReader(message: GetAgentRequest, reader: jspb.BinaryReader): GetAgentRequest; +} + +export namespace GetAgentRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteAgentRequest extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteAgentRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteAgentRequest.AsObject; + static toObject(includeInstance: boolean, msg: DeleteAgentRequest): DeleteAgentRequest.AsObject; + static serializeBinaryToWriter(message: DeleteAgentRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteAgentRequest; + static deserializeBinaryFromReader(message: DeleteAgentRequest, reader: jspb.BinaryReader): DeleteAgentRequest; +} + +export namespace DeleteAgentRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteAgentResponse extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteAgentResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteAgentResponse.AsObject; + static toObject(includeInstance: boolean, msg: DeleteAgentResponse): DeleteAgentResponse.AsObject; + static serializeBinaryToWriter(message: DeleteAgentResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteAgentResponse; + static deserializeBinaryFromReader(message: DeleteAgentResponse, reader: jspb.BinaryReader): DeleteAgentResponse; +} + +export namespace DeleteAgentResponse { + export type AsObject = { + ref: string, + } +} + +export class ListAgentsRequest extends jspb.Message { + getPageSize(): number; + setPageSize(value: number): ListAgentsRequest; + + getPageToken(): string; + setPageToken(value: string): ListAgentsRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListAgentsRequest.AsObject; + static toObject(includeInstance: boolean, msg: ListAgentsRequest): ListAgentsRequest.AsObject; + static serializeBinaryToWriter(message: ListAgentsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListAgentsRequest; + static deserializeBinaryFromReader(message: ListAgentsRequest, reader: jspb.BinaryReader): ListAgentsRequest; +} + +export namespace ListAgentsRequest { + export type AsObject = { + pageSize: number, + pageToken: string, + } +} + +export class ListAgentsResponse extends jspb.Message { + getItemsList(): Array; + setItemsList(value: Array): ListAgentsResponse; + clearItemsList(): ListAgentsResponse; + addItems(value?: Agent, index?: number): Agent; + + getNextPageToken(): string; + setNextPageToken(value: string): ListAgentsResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListAgentsResponse.AsObject; + static toObject(includeInstance: boolean, msg: ListAgentsResponse): ListAgentsResponse.AsObject; + static serializeBinaryToWriter(message: ListAgentsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListAgentsResponse; + static deserializeBinaryFromReader(message: ListAgentsResponse, reader: jspb.BinaryReader): ListAgentsResponse; +} + +export namespace ListAgentsResponse { + export type AsObject = { + itemsList: Array, + nextPageToken: string, + } +} + +export enum Privacy { + NONE = 0, + PRIVATE = 1, +} diff --git a/mods/sdk/src/generated/web/agents_pb.js b/mods/sdk/src/generated/web/agents_pb.js new file mode 100644 index 000000000..42220557f --- /dev/null +++ b/mods/sdk/src/generated/web/agents_pb.js @@ -0,0 +1,2823 @@ +// source: agents.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.agents.v1beta2.Agent', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.Agent.Credentials', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.Agent.Domain', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.CreateAgentRequest', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.CreateAgentResponse', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.DeleteAgentRequest', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.DeleteAgentResponse', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.GetAgentRequest', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.ListAgentsRequest', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.ListAgentsResponse', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.Privacy', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.UpdateAgentRequest', null, global); +goog.exportSymbol('proto.fonoster.agents.v1beta2.UpdateAgentResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.Agent = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.Agent, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.Agent.displayName = 'proto.fonoster.agents.v1beta2.Agent'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.Agent.Domain = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.Agent.Domain, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.Agent.Domain.displayName = 'proto.fonoster.agents.v1beta2.Agent.Domain'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.Agent.Credentials = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.Agent.Credentials, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.Agent.Credentials.displayName = 'proto.fonoster.agents.v1beta2.Agent.Credentials'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.CreateAgentRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.CreateAgentRequest.displayName = 'proto.fonoster.agents.v1beta2.CreateAgentRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.CreateAgentResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.CreateAgentResponse.displayName = 'proto.fonoster.agents.v1beta2.CreateAgentResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.UpdateAgentRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.UpdateAgentRequest.displayName = 'proto.fonoster.agents.v1beta2.UpdateAgentRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.UpdateAgentResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.UpdateAgentResponse.displayName = 'proto.fonoster.agents.v1beta2.UpdateAgentResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.GetAgentRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.GetAgentRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.GetAgentRequest.displayName = 'proto.fonoster.agents.v1beta2.GetAgentRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.DeleteAgentRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.DeleteAgentRequest.displayName = 'proto.fonoster.agents.v1beta2.DeleteAgentRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.DeleteAgentResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.DeleteAgentResponse.displayName = 'proto.fonoster.agents.v1beta2.DeleteAgentResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.ListAgentsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.ListAgentsRequest.displayName = 'proto.fonoster.agents.v1beta2.ListAgentsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.agents.v1beta2.ListAgentsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.agents.v1beta2.ListAgentsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.agents.v1beta2.ListAgentsResponse.displayName = 'proto.fonoster.agents.v1beta2.ListAgentsResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.Agent.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.Agent} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.Agent.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + username: jspb.Message.getFieldWithDefault(msg, 3, ""), + privacy: jspb.Message.getFieldWithDefault(msg, 4, 0), + enabled: jspb.Message.getBooleanFieldWithDefault(msg, 5, false), + createdAt: jspb.Message.getFieldWithDefault(msg, 6, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 7, 0), + maxContacts: jspb.Message.getFieldWithDefault(msg, 8, 0), + expires: jspb.Message.getFieldWithDefault(msg, 9, 0), + domain: (f = msg.getDomain()) && proto.fonoster.agents.v1beta2.Agent.Domain.toObject(includeInstance, f), + credentials: (f = msg.getCredentials()) && proto.fonoster.agents.v1beta2.Agent.Credentials.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.Agent} + */ +proto.fonoster.agents.v1beta2.Agent.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.Agent; + return proto.fonoster.agents.v1beta2.Agent.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.Agent} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.Agent} + */ +proto.fonoster.agents.v1beta2.Agent.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 4: + var value = /** @type {!proto.fonoster.agents.v1beta2.Privacy} */ (reader.readEnum()); + msg.setPrivacy(value); + break; + case 5: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setEnabled(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 7: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + case 8: + var value = /** @type {number} */ (reader.readInt32()); + msg.setMaxContacts(value); + break; + case 9: + var value = /** @type {number} */ (reader.readInt32()); + msg.setExpires(value); + break; + case 10: + var value = new proto.fonoster.agents.v1beta2.Agent.Domain; + reader.readMessage(value,proto.fonoster.agents.v1beta2.Agent.Domain.deserializeBinaryFromReader); + msg.setDomain(value); + break; + case 11: + var value = new proto.fonoster.agents.v1beta2.Agent.Credentials; + reader.readMessage(value,proto.fonoster.agents.v1beta2.Agent.Credentials.deserializeBinaryFromReader); + msg.setCredentials(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.Agent.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.Agent} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.Agent.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getPrivacy(); + if (f !== 0.0) { + writer.writeEnum( + 4, + f + ); + } + f = message.getEnabled(); + if (f) { + writer.writeBool( + 5, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 7, + f + ); + } + f = message.getMaxContacts(); + if (f !== 0) { + writer.writeInt32( + 8, + f + ); + } + f = message.getExpires(); + if (f !== 0) { + writer.writeInt32( + 9, + f + ); + } + f = message.getDomain(); + if (f != null) { + writer.writeMessage( + 10, + f, + proto.fonoster.agents.v1beta2.Agent.Domain.serializeBinaryToWriter + ); + } + f = message.getCredentials(); + if (f != null) { + writer.writeMessage( + 11, + f, + proto.fonoster.agents.v1beta2.Agent.Credentials.serializeBinaryToWriter + ); + } +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.Agent.Domain.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.Agent.Domain} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.Agent.Domain.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + domainUri: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.Agent.Domain} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.Agent.Domain; + return proto.fonoster.agents.v1beta2.Agent.Domain.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.Agent.Domain} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.Agent.Domain} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setDomainUri(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.Agent.Domain.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.Agent.Domain} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.Agent.Domain.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getDomainUri(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent.Domain} returns this + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent.Domain} returns this + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string domain_uri = 3; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.getDomainUri = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent.Domain} returns this + */ +proto.fonoster.agents.v1beta2.Agent.Domain.prototype.setDomainUri = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.Agent.Credentials.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.Agent.Credentials} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + username: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.Agent.Credentials} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.Agent.Credentials; + return proto.fonoster.agents.v1beta2.Agent.Credentials.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.Agent.Credentials} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.Agent.Credentials} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.Agent.Credentials.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.Agent.Credentials} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent.Credentials} returns this + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent.Credentials} returns this + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string username = 3; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent.Credentials} returns this + */ +proto.fonoster.agents.v1beta2.Agent.Credentials.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string username = 3; + * @return {string} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional Privacy privacy = 4; + * @return {!proto.fonoster.agents.v1beta2.Privacy} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getPrivacy = function() { + return /** @type {!proto.fonoster.agents.v1beta2.Privacy} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {!proto.fonoster.agents.v1beta2.Privacy} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setPrivacy = function(value) { + return jspb.Message.setProto3EnumField(this, 4, value); +}; + + +/** + * optional bool enabled = 5; + * @return {boolean} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getEnabled = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setEnabled = function(value) { + return jspb.Message.setProto3BooleanField(this, 5, value); +}; + + +/** + * optional int32 created_at = 6; + * @return {number} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + +/** + * optional int32 updated_at = 7; + * @return {number} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + + +/** + * optional int32 max_contacts = 8; + * @return {number} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getMaxContacts = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setMaxContacts = function(value) { + return jspb.Message.setProto3IntField(this, 8, value); +}; + + +/** + * optional int32 expires = 9; + * @return {number} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getExpires = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.setExpires = function(value) { + return jspb.Message.setProto3IntField(this, 9, value); +}; + + +/** + * optional Domain domain = 10; + * @return {?proto.fonoster.agents.v1beta2.Agent.Domain} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getDomain = function() { + return /** @type{?proto.fonoster.agents.v1beta2.Agent.Domain} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.agents.v1beta2.Agent.Domain, 10)); +}; + + +/** + * @param {?proto.fonoster.agents.v1beta2.Agent.Domain|undefined} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this +*/ +proto.fonoster.agents.v1beta2.Agent.prototype.setDomain = function(value) { + return jspb.Message.setWrapperField(this, 10, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.clearDomain = function() { + return this.setDomain(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.hasDomain = function() { + return jspb.Message.getField(this, 10) != null; +}; + + +/** + * optional Credentials credentials = 11; + * @return {?proto.fonoster.agents.v1beta2.Agent.Credentials} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.getCredentials = function() { + return /** @type{?proto.fonoster.agents.v1beta2.Agent.Credentials} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.agents.v1beta2.Agent.Credentials, 11)); +}; + + +/** + * @param {?proto.fonoster.agents.v1beta2.Agent.Credentials|undefined} value + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this +*/ +proto.fonoster.agents.v1beta2.Agent.prototype.setCredentials = function(value) { + return jspb.Message.setWrapperField(this, 11, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.agents.v1beta2.Agent} returns this + */ +proto.fonoster.agents.v1beta2.Agent.prototype.clearCredentials = function() { + return this.setCredentials(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.agents.v1beta2.Agent.prototype.hasCredentials = function() { + return jspb.Message.getField(this, 11) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.CreateAgentRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.CreateAgentRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + username: jspb.Message.getFieldWithDefault(msg, 2, ""), + privacy: jspb.Message.getFieldWithDefault(msg, 3, 0), + enabled: jspb.Message.getBooleanFieldWithDefault(msg, 4, false), + domainRef: jspb.Message.getFieldWithDefault(msg, 5, ""), + credentialsRef: jspb.Message.getFieldWithDefault(msg, 6, ""), + maxContacts: jspb.Message.getFieldWithDefault(msg, 7, 0), + expires: jspb.Message.getFieldWithDefault(msg, 8, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.CreateAgentRequest; + return proto.fonoster.agents.v1beta2.CreateAgentRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.CreateAgentRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 3: + var value = /** @type {!proto.fonoster.agents.v1beta2.Privacy} */ (reader.readEnum()); + msg.setPrivacy(value); + break; + case 4: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setEnabled(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setDomainRef(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setCredentialsRef(value); + break; + case 7: + var value = /** @type {number} */ (reader.readInt32()); + msg.setMaxContacts(value); + break; + case 8: + var value = /** @type {number} */ (reader.readInt32()); + msg.setExpires(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.CreateAgentRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.CreateAgentRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getPrivacy(); + if (f !== 0.0) { + writer.writeEnum( + 3, + f + ); + } + f = message.getEnabled(); + if (f) { + writer.writeBool( + 4, + f + ); + } + f = message.getDomainRef(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getCredentialsRef(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getMaxContacts(); + if (f !== 0) { + writer.writeInt32( + 7, + f + ); + } + f = message.getExpires(); + if (f !== 0) { + writer.writeInt32( + 8, + f + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string username = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional Privacy privacy = 3; + * @return {!proto.fonoster.agents.v1beta2.Privacy} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getPrivacy = function() { + return /** @type {!proto.fonoster.agents.v1beta2.Privacy} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {!proto.fonoster.agents.v1beta2.Privacy} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setPrivacy = function(value) { + return jspb.Message.setProto3EnumField(this, 3, value); +}; + + +/** + * optional bool enabled = 4; + * @return {boolean} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getEnabled = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setEnabled = function(value) { + return jspb.Message.setProto3BooleanField(this, 4, value); +}; + + +/** + * optional string domain_ref = 5; + * @return {string} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getDomainRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setDomainRef = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string credentials_ref = 6; + * @return {string} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getCredentialsRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setCredentialsRef = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional int32 max_contacts = 7; + * @return {number} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getMaxContacts = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setMaxContacts = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + + +/** + * optional int32 expires = 8; + * @return {number} + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.getExpires = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentRequest.prototype.setExpires = function(value) { + return jspb.Message.setProto3IntField(this, 8, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.CreateAgentResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.CreateAgentResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.CreateAgentResponse} + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.CreateAgentResponse; + return proto.fonoster.agents.v1beta2.CreateAgentResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.CreateAgentResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.CreateAgentResponse} + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.CreateAgentResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.CreateAgentResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.CreateAgentResponse} returns this + */ +proto.fonoster.agents.v1beta2.CreateAgentResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.UpdateAgentRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + privacy: jspb.Message.getFieldWithDefault(msg, 3, 0), + enabled: jspb.Message.getBooleanFieldWithDefault(msg, 4, false), + domainRef: jspb.Message.getFieldWithDefault(msg, 5, ""), + credentialsRef: jspb.Message.getFieldWithDefault(msg, 6, ""), + maxContacts: jspb.Message.getFieldWithDefault(msg, 7, 0), + expires: jspb.Message.getFieldWithDefault(msg, 8, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.UpdateAgentRequest; + return proto.fonoster.agents.v1beta2.UpdateAgentRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {!proto.fonoster.agents.v1beta2.Privacy} */ (reader.readEnum()); + msg.setPrivacy(value); + break; + case 4: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setEnabled(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setDomainRef(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setCredentialsRef(value); + break; + case 7: + var value = /** @type {number} */ (reader.readInt32()); + msg.setMaxContacts(value); + break; + case 8: + var value = /** @type {number} */ (reader.readInt32()); + msg.setExpires(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.UpdateAgentRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getPrivacy(); + if (f !== 0.0) { + writer.writeEnum( + 3, + f + ); + } + f = message.getEnabled(); + if (f) { + writer.writeBool( + 4, + f + ); + } + f = message.getDomainRef(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getCredentialsRef(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getMaxContacts(); + if (f !== 0) { + writer.writeInt32( + 7, + f + ); + } + f = message.getExpires(); + if (f !== 0) { + writer.writeInt32( + 8, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional Privacy privacy = 3; + * @return {!proto.fonoster.agents.v1beta2.Privacy} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getPrivacy = function() { + return /** @type {!proto.fonoster.agents.v1beta2.Privacy} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {!proto.fonoster.agents.v1beta2.Privacy} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setPrivacy = function(value) { + return jspb.Message.setProto3EnumField(this, 3, value); +}; + + +/** + * optional bool enabled = 4; + * @return {boolean} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getEnabled = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setEnabled = function(value) { + return jspb.Message.setProto3BooleanField(this, 4, value); +}; + + +/** + * optional string domain_ref = 5; + * @return {string} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getDomainRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setDomainRef = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string credentials_ref = 6; + * @return {string} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getCredentialsRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setCredentialsRef = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional int32 max_contacts = 7; + * @return {number} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getMaxContacts = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setMaxContacts = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + + +/** + * optional int32 expires = 8; + * @return {number} + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.getExpires = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentRequest.prototype.setExpires = function(value) { + return jspb.Message.setProto3IntField(this, 8, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.UpdateAgentResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.UpdateAgentResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentResponse} + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.UpdateAgentResponse; + return proto.fonoster.agents.v1beta2.UpdateAgentResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.UpdateAgentResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentResponse} + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.UpdateAgentResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.UpdateAgentResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.UpdateAgentResponse} returns this + */ +proto.fonoster.agents.v1beta2.UpdateAgentResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.GetAgentRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.GetAgentRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.GetAgentRequest} + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.GetAgentRequest; + return proto.fonoster.agents.v1beta2.GetAgentRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.GetAgentRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.GetAgentRequest} + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.GetAgentRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.GetAgentRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.GetAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.GetAgentRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.DeleteAgentRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.DeleteAgentRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.DeleteAgentRequest} + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.DeleteAgentRequest; + return proto.fonoster.agents.v1beta2.DeleteAgentRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.DeleteAgentRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.DeleteAgentRequest} + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.DeleteAgentRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.DeleteAgentRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.DeleteAgentRequest} returns this + */ +proto.fonoster.agents.v1beta2.DeleteAgentRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.DeleteAgentResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.DeleteAgentResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.DeleteAgentResponse} + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.DeleteAgentResponse; + return proto.fonoster.agents.v1beta2.DeleteAgentResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.DeleteAgentResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.DeleteAgentResponse} + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.DeleteAgentResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.DeleteAgentResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.DeleteAgentResponse} returns this + */ +proto.fonoster.agents.v1beta2.DeleteAgentResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.ListAgentsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.ListAgentsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.ListAgentsRequest} + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.ListAgentsRequest; + return proto.fonoster.agents.v1beta2.ListAgentsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.ListAgentsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.ListAgentsRequest} + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.ListAgentsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.ListAgentsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.agents.v1beta2.ListAgentsRequest} returns this + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.ListAgentsRequest} returns this + */ +proto.fonoster.agents.v1beta2.ListAgentsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.agents.v1beta2.ListAgentsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.agents.v1beta2.ListAgentsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.agents.v1beta2.Agent.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.agents.v1beta2.ListAgentsResponse} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.agents.v1beta2.ListAgentsResponse; + return proto.fonoster.agents.v1beta2.ListAgentsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.agents.v1beta2.ListAgentsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.agents.v1beta2.ListAgentsResponse} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.agents.v1beta2.Agent; + reader.readMessage(value,proto.fonoster.agents.v1beta2.Agent.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.agents.v1beta2.ListAgentsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.agents.v1beta2.ListAgentsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.agents.v1beta2.Agent.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Agent items = 1; + * @return {!Array} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.agents.v1beta2.Agent, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.agents.v1beta2.ListAgentsResponse} returns this +*/ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.agents.v1beta2.Agent=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.agents.v1beta2.Agent} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.agents.v1beta2.Agent, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.agents.v1beta2.ListAgentsResponse} returns this + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.agents.v1beta2.ListAgentsResponse} returns this + */ +proto.fonoster.agents.v1beta2.ListAgentsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * @enum {number} + */ +proto.fonoster.agents.v1beta2.Privacy = { + NONE: 0, + PRIVATE: 1 +}; + +goog.object.extend(exports, proto.fonoster.agents.v1beta2); diff --git a/mods/sdk/src/generated/web/applications_pb.d.ts b/mods/sdk/src/generated/web/applications_pb.d.ts new file mode 100644 index 000000000..cfdba5e46 --- /dev/null +++ b/mods/sdk/src/generated/web/applications_pb.d.ts @@ -0,0 +1,323 @@ +import * as jspb from 'google-protobuf' + +import * as google_protobuf_struct_pb from 'google-protobuf/google/protobuf/struct_pb'; // proto import: "google/protobuf/struct.proto" + + +export class ProductContainer extends jspb.Message { + getProductRef(): string; + setProductRef(value: string): ProductContainer; + + getConfig(): google_protobuf_struct_pb.Struct | undefined; + setConfig(value?: google_protobuf_struct_pb.Struct): ProductContainer; + hasConfig(): boolean; + clearConfig(): ProductContainer; + + getCredentials(): google_protobuf_struct_pb.Struct | undefined; + setCredentials(value?: google_protobuf_struct_pb.Struct): ProductContainer; + hasCredentials(): boolean; + clearCredentials(): ProductContainer; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ProductContainer.AsObject; + static toObject(includeInstance: boolean, msg: ProductContainer): ProductContainer.AsObject; + static serializeBinaryToWriter(message: ProductContainer, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ProductContainer; + static deserializeBinaryFromReader(message: ProductContainer, reader: jspb.BinaryReader): ProductContainer; +} + +export namespace ProductContainer { + export type AsObject = { + productRef: string, + config?: google_protobuf_struct_pb.Struct.AsObject, + credentials?: google_protobuf_struct_pb.Struct.AsObject, + } +} + +export class Application extends jspb.Message { + getRef(): string; + setRef(value: string): Application; + + getName(): string; + setName(value: string): Application; + + getType(): ApplicationType; + setType(value: ApplicationType): Application; + + getEndpoint(): string; + setEndpoint(value: string): Application; + + getTextToSpeech(): ProductContainer | undefined; + setTextToSpeech(value?: ProductContainer): Application; + hasTextToSpeech(): boolean; + clearTextToSpeech(): Application; + + getSpeechToText(): ProductContainer | undefined; + setSpeechToText(value?: ProductContainer): Application; + hasSpeechToText(): boolean; + clearSpeechToText(): Application; + + getIntelligence(): ProductContainer | undefined; + setIntelligence(value?: ProductContainer): Application; + hasIntelligence(): boolean; + clearIntelligence(): Application; + + getCreatedAt(): number; + setCreatedAt(value: number): Application; + + getUpdatedAt(): number; + setUpdatedAt(value: number): Application; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Application.AsObject; + static toObject(includeInstance: boolean, msg: Application): Application.AsObject; + static serializeBinaryToWriter(message: Application, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Application; + static deserializeBinaryFromReader(message: Application, reader: jspb.BinaryReader): Application; +} + +export namespace Application { + export type AsObject = { + ref: string, + name: string, + type: ApplicationType, + endpoint: string, + textToSpeech?: ProductContainer.AsObject, + speechToText?: ProductContainer.AsObject, + intelligence?: ProductContainer.AsObject, + createdAt: number, + updatedAt: number, + } +} + +export class CreateApplicationRequest extends jspb.Message { + getName(): string; + setName(value: string): CreateApplicationRequest; + + getType(): ApplicationType; + setType(value: ApplicationType): CreateApplicationRequest; + + getEndpoint(): string; + setEndpoint(value: string): CreateApplicationRequest; + + getTextToSpeech(): ProductContainer | undefined; + setTextToSpeech(value?: ProductContainer): CreateApplicationRequest; + hasTextToSpeech(): boolean; + clearTextToSpeech(): CreateApplicationRequest; + + getSpeechToText(): ProductContainer | undefined; + setSpeechToText(value?: ProductContainer): CreateApplicationRequest; + hasSpeechToText(): boolean; + clearSpeechToText(): CreateApplicationRequest; + + getIntelligence(): ProductContainer | undefined; + setIntelligence(value?: ProductContainer): CreateApplicationRequest; + hasIntelligence(): boolean; + clearIntelligence(): CreateApplicationRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateApplicationRequest.AsObject; + static toObject(includeInstance: boolean, msg: CreateApplicationRequest): CreateApplicationRequest.AsObject; + static serializeBinaryToWriter(message: CreateApplicationRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateApplicationRequest; + static deserializeBinaryFromReader(message: CreateApplicationRequest, reader: jspb.BinaryReader): CreateApplicationRequest; +} + +export namespace CreateApplicationRequest { + export type AsObject = { + name: string, + type: ApplicationType, + endpoint: string, + textToSpeech?: ProductContainer.AsObject, + speechToText?: ProductContainer.AsObject, + intelligence?: ProductContainer.AsObject, + } +} + +export class CreateApplicationResponse extends jspb.Message { + getRef(): string; + setRef(value: string): CreateApplicationResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateApplicationResponse.AsObject; + static toObject(includeInstance: boolean, msg: CreateApplicationResponse): CreateApplicationResponse.AsObject; + static serializeBinaryToWriter(message: CreateApplicationResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateApplicationResponse; + static deserializeBinaryFromReader(message: CreateApplicationResponse, reader: jspb.BinaryReader): CreateApplicationResponse; +} + +export namespace CreateApplicationResponse { + export type AsObject = { + ref: string, + } +} + +export class GetApplicationRequest extends jspb.Message { + getRef(): string; + setRef(value: string): GetApplicationRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetApplicationRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetApplicationRequest): GetApplicationRequest.AsObject; + static serializeBinaryToWriter(message: GetApplicationRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetApplicationRequest; + static deserializeBinaryFromReader(message: GetApplicationRequest, reader: jspb.BinaryReader): GetApplicationRequest; +} + +export namespace GetApplicationRequest { + export type AsObject = { + ref: string, + } +} + +export class ListApplicationsRequest extends jspb.Message { + getPageSize(): number; + setPageSize(value: number): ListApplicationsRequest; + + getPageToken(): string; + setPageToken(value: string): ListApplicationsRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListApplicationsRequest.AsObject; + static toObject(includeInstance: boolean, msg: ListApplicationsRequest): ListApplicationsRequest.AsObject; + static serializeBinaryToWriter(message: ListApplicationsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListApplicationsRequest; + static deserializeBinaryFromReader(message: ListApplicationsRequest, reader: jspb.BinaryReader): ListApplicationsRequest; +} + +export namespace ListApplicationsRequest { + export type AsObject = { + pageSize: number, + pageToken: string, + } +} + +export class ListApplicationsResponse extends jspb.Message { + getItemsList(): Array; + setItemsList(value: Array): ListApplicationsResponse; + clearItemsList(): ListApplicationsResponse; + addItems(value?: Application, index?: number): Application; + + getNextPageToken(): string; + setNextPageToken(value: string): ListApplicationsResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListApplicationsResponse.AsObject; + static toObject(includeInstance: boolean, msg: ListApplicationsResponse): ListApplicationsResponse.AsObject; + static serializeBinaryToWriter(message: ListApplicationsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListApplicationsResponse; + static deserializeBinaryFromReader(message: ListApplicationsResponse, reader: jspb.BinaryReader): ListApplicationsResponse; +} + +export namespace ListApplicationsResponse { + export type AsObject = { + itemsList: Array, + nextPageToken: string, + } +} + +export class UpdateApplicationRequest extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateApplicationRequest; + + getName(): string; + setName(value: string): UpdateApplicationRequest; + + getType(): ApplicationType; + setType(value: ApplicationType): UpdateApplicationRequest; + + getEndpoint(): string; + setEndpoint(value: string): UpdateApplicationRequest; + + getTextToSpeech(): ProductContainer | undefined; + setTextToSpeech(value?: ProductContainer): UpdateApplicationRequest; + hasTextToSpeech(): boolean; + clearTextToSpeech(): UpdateApplicationRequest; + + getSpeechToText(): ProductContainer | undefined; + setSpeechToText(value?: ProductContainer): UpdateApplicationRequest; + hasSpeechToText(): boolean; + clearSpeechToText(): UpdateApplicationRequest; + + getIntelligence(): ProductContainer | undefined; + setIntelligence(value?: ProductContainer): UpdateApplicationRequest; + hasIntelligence(): boolean; + clearIntelligence(): UpdateApplicationRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateApplicationRequest.AsObject; + static toObject(includeInstance: boolean, msg: UpdateApplicationRequest): UpdateApplicationRequest.AsObject; + static serializeBinaryToWriter(message: UpdateApplicationRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateApplicationRequest; + static deserializeBinaryFromReader(message: UpdateApplicationRequest, reader: jspb.BinaryReader): UpdateApplicationRequest; +} + +export namespace UpdateApplicationRequest { + export type AsObject = { + ref: string, + name: string, + type: ApplicationType, + endpoint: string, + textToSpeech?: ProductContainer.AsObject, + speechToText?: ProductContainer.AsObject, + intelligence?: ProductContainer.AsObject, + } +} + +export class UpdateApplicationResponse extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateApplicationResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateApplicationResponse.AsObject; + static toObject(includeInstance: boolean, msg: UpdateApplicationResponse): UpdateApplicationResponse.AsObject; + static serializeBinaryToWriter(message: UpdateApplicationResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateApplicationResponse; + static deserializeBinaryFromReader(message: UpdateApplicationResponse, reader: jspb.BinaryReader): UpdateApplicationResponse; +} + +export namespace UpdateApplicationResponse { + export type AsObject = { + ref: string, + } +} + +export class DeleteApplicationRequest extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteApplicationRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteApplicationRequest.AsObject; + static toObject(includeInstance: boolean, msg: DeleteApplicationRequest): DeleteApplicationRequest.AsObject; + static serializeBinaryToWriter(message: DeleteApplicationRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteApplicationRequest; + static deserializeBinaryFromReader(message: DeleteApplicationRequest, reader: jspb.BinaryReader): DeleteApplicationRequest; +} + +export namespace DeleteApplicationRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteApplicationResponse extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteApplicationResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteApplicationResponse.AsObject; + static toObject(includeInstance: boolean, msg: DeleteApplicationResponse): DeleteApplicationResponse.AsObject; + static serializeBinaryToWriter(message: DeleteApplicationResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteApplicationResponse; + static deserializeBinaryFromReader(message: DeleteApplicationResponse, reader: jspb.BinaryReader): DeleteApplicationResponse; +} + +export namespace DeleteApplicationResponse { + export type AsObject = { + ref: string, + } +} + +export enum ApplicationType { + EXTERNAL = 0, + AUTOPILOT = 1, +} diff --git a/mods/sdk/src/generated/web/applications_pb.js b/mods/sdk/src/generated/web/applications_pb.js new file mode 100644 index 000000000..0fb065aa2 --- /dev/null +++ b/mods/sdk/src/generated/web/applications_pb.js @@ -0,0 +1,2652 @@ +// source: applications.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); +goog.object.extend(proto, google_protobuf_struct_pb); +goog.exportSymbol('proto.fonoster.applications.v1beta2.Application', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.ApplicationType', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.CreateApplicationRequest', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.CreateApplicationResponse', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.DeleteApplicationRequest', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.DeleteApplicationResponse', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.GetApplicationRequest', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.ListApplicationsRequest', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.ListApplicationsResponse', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.ProductContainer', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.UpdateApplicationRequest', null, global); +goog.exportSymbol('proto.fonoster.applications.v1beta2.UpdateApplicationResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.ProductContainer = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.ProductContainer, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.ProductContainer.displayName = 'proto.fonoster.applications.v1beta2.ProductContainer'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.Application = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.Application, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.Application.displayName = 'proto.fonoster.applications.v1beta2.Application'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.CreateApplicationRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.CreateApplicationRequest.displayName = 'proto.fonoster.applications.v1beta2.CreateApplicationRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.CreateApplicationResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.CreateApplicationResponse.displayName = 'proto.fonoster.applications.v1beta2.CreateApplicationResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.GetApplicationRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.GetApplicationRequest.displayName = 'proto.fonoster.applications.v1beta2.GetApplicationRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.ListApplicationsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.ListApplicationsRequest.displayName = 'proto.fonoster.applications.v1beta2.ListApplicationsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.applications.v1beta2.ListApplicationsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.ListApplicationsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.ListApplicationsResponse.displayName = 'proto.fonoster.applications.v1beta2.ListApplicationsResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.UpdateApplicationRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.UpdateApplicationRequest.displayName = 'proto.fonoster.applications.v1beta2.UpdateApplicationRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.UpdateApplicationResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.UpdateApplicationResponse.displayName = 'proto.fonoster.applications.v1beta2.UpdateApplicationResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.DeleteApplicationRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.DeleteApplicationRequest.displayName = 'proto.fonoster.applications.v1beta2.DeleteApplicationRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.applications.v1beta2.DeleteApplicationResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.applications.v1beta2.DeleteApplicationResponse.displayName = 'proto.fonoster.applications.v1beta2.DeleteApplicationResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.ProductContainer.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.ProductContainer} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.ProductContainer.toObject = function(includeInstance, msg) { + var f, obj = { + productRef: jspb.Message.getFieldWithDefault(msg, 1, ""), + config: (f = msg.getConfig()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f), + credentials: (f = msg.getCredentials()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.ProductContainer; + return proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.ProductContainer} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setProductRef(value); + break; + case 2: + var value = new google_protobuf_struct_pb.Struct; + reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); + msg.setConfig(value); + break; + case 3: + var value = new google_protobuf_struct_pb.Struct; + reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader); + msg.setCredentials(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.ProductContainer} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getProductRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getConfig(); + if (f != null) { + writer.writeMessage( + 2, + f, + google_protobuf_struct_pb.Struct.serializeBinaryToWriter + ); + } + f = message.getCredentials(); + if (f != null) { + writer.writeMessage( + 3, + f, + google_protobuf_struct_pb.Struct.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string product_ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.getProductRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} returns this + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.setProductRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional google.protobuf.Struct config = 2; + * @return {?proto.google.protobuf.Struct} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.getConfig = function() { + return /** @type{?proto.google.protobuf.Struct} */ ( + jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 2)); +}; + + +/** + * @param {?proto.google.protobuf.Struct|undefined} value + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} returns this +*/ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.setConfig = function(value) { + return jspb.Message.setWrapperField(this, 2, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} returns this + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.clearConfig = function() { + return this.setConfig(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.hasConfig = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional google.protobuf.Struct credentials = 3; + * @return {?proto.google.protobuf.Struct} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.getCredentials = function() { + return /** @type{?proto.google.protobuf.Struct} */ ( + jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 3)); +}; + + +/** + * @param {?proto.google.protobuf.Struct|undefined} value + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} returns this +*/ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.setCredentials = function(value) { + return jspb.Message.setWrapperField(this, 3, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.ProductContainer} returns this + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.clearCredentials = function() { + return this.setCredentials(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.ProductContainer.prototype.hasCredentials = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.Application.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.Application.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.Application} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.Application.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + type: jspb.Message.getFieldWithDefault(msg, 3, 0), + endpoint: jspb.Message.getFieldWithDefault(msg, 4, ""), + textToSpeech: (f = msg.getTextToSpeech()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + speechToText: (f = msg.getSpeechToText()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + intelligence: (f = msg.getIntelligence()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + createdAt: jspb.Message.getFieldWithDefault(msg, 8, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 9, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.Application} + */ +proto.fonoster.applications.v1beta2.Application.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.Application; + return proto.fonoster.applications.v1beta2.Application.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.Application} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.Application} + */ +proto.fonoster.applications.v1beta2.Application.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {!proto.fonoster.applications.v1beta2.ApplicationType} */ (reader.readEnum()); + msg.setType(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setEndpoint(value); + break; + case 5: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setTextToSpeech(value); + break; + case 6: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setSpeechToText(value); + break; + case 7: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setIntelligence(value); + break; + case 8: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 9: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.Application.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.Application.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.Application} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.Application.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getType(); + if (f !== 0.0) { + writer.writeEnum( + 3, + f + ); + } + f = message.getEndpoint(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getTextToSpeech(); + if (f != null) { + writer.writeMessage( + 5, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getSpeechToText(); + if (f != null) { + writer.writeMessage( + 6, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getIntelligence(); + if (f != null) { + writer.writeMessage( + 7, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 8, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 9, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional ApplicationType type = 3; + * @return {!proto.fonoster.applications.v1beta2.ApplicationType} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getType = function() { + return /** @type {!proto.fonoster.applications.v1beta2.ApplicationType} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {!proto.fonoster.applications.v1beta2.ApplicationType} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.setType = function(value) { + return jspb.Message.setProto3EnumField(this, 3, value); +}; + + +/** + * optional string endpoint = 4; + * @return {string} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getEndpoint = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.setEndpoint = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional ProductContainer text_to_speech = 5; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getTextToSpeech = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 5)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this +*/ +proto.fonoster.applications.v1beta2.Application.prototype.setTextToSpeech = function(value) { + return jspb.Message.setWrapperField(this, 5, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.clearTextToSpeech = function() { + return this.setTextToSpeech(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.Application.prototype.hasTextToSpeech = function() { + return jspb.Message.getField(this, 5) != null; +}; + + +/** + * optional ProductContainer speech_to_text = 6; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getSpeechToText = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 6)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this +*/ +proto.fonoster.applications.v1beta2.Application.prototype.setSpeechToText = function(value) { + return jspb.Message.setWrapperField(this, 6, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.clearSpeechToText = function() { + return this.setSpeechToText(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.Application.prototype.hasSpeechToText = function() { + return jspb.Message.getField(this, 6) != null; +}; + + +/** + * optional ProductContainer intelligence = 7; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getIntelligence = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 7)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this +*/ +proto.fonoster.applications.v1beta2.Application.prototype.setIntelligence = function(value) { + return jspb.Message.setWrapperField(this, 7, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.clearIntelligence = function() { + return this.setIntelligence(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.Application.prototype.hasIntelligence = function() { + return jspb.Message.getField(this, 7) != null; +}; + + +/** + * optional int32 created_at = 8; + * @return {number} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 8, value); +}; + + +/** + * optional int32 updated_at = 9; + * @return {number} + */ +proto.fonoster.applications.v1beta2.Application.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.applications.v1beta2.Application} returns this + */ +proto.fonoster.applications.v1beta2.Application.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 9, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.CreateApplicationRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + type: jspb.Message.getFieldWithDefault(msg, 2, 0), + endpoint: jspb.Message.getFieldWithDefault(msg, 3, ""), + textToSpeech: (f = msg.getTextToSpeech()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + speechToText: (f = msg.getSpeechToText()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + intelligence: (f = msg.getIntelligence()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.CreateApplicationRequest; + return proto.fonoster.applications.v1beta2.CreateApplicationRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {!proto.fonoster.applications.v1beta2.ApplicationType} */ (reader.readEnum()); + msg.setType(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setEndpoint(value); + break; + case 4: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setTextToSpeech(value); + break; + case 5: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setSpeechToText(value); + break; + case 6: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setIntelligence(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.CreateApplicationRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getType(); + if (f !== 0.0) { + writer.writeEnum( + 2, + f + ); + } + f = message.getEndpoint(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getTextToSpeech(); + if (f != null) { + writer.writeMessage( + 4, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getSpeechToText(); + if (f != null) { + writer.writeMessage( + 5, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getIntelligence(); + if (f != null) { + writer.writeMessage( + 6, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional ApplicationType type = 2; + * @return {!proto.fonoster.applications.v1beta2.ApplicationType} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.getType = function() { + return /** @type {!proto.fonoster.applications.v1beta2.ApplicationType} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {!proto.fonoster.applications.v1beta2.ApplicationType} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.setType = function(value) { + return jspb.Message.setProto3EnumField(this, 2, value); +}; + + +/** + * optional string endpoint = 3; + * @return {string} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.getEndpoint = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.setEndpoint = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional ProductContainer text_to_speech = 4; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.getTextToSpeech = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 4)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this +*/ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.setTextToSpeech = function(value) { + return jspb.Message.setWrapperField(this, 4, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.clearTextToSpeech = function() { + return this.setTextToSpeech(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.hasTextToSpeech = function() { + return jspb.Message.getField(this, 4) != null; +}; + + +/** + * optional ProductContainer speech_to_text = 5; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.getSpeechToText = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 5)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this +*/ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.setSpeechToText = function(value) { + return jspb.Message.setWrapperField(this, 5, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.clearSpeechToText = function() { + return this.setSpeechToText(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.hasSpeechToText = function() { + return jspb.Message.getField(this, 5) != null; +}; + + +/** + * optional ProductContainer intelligence = 6; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.getIntelligence = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 6)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this +*/ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.setIntelligence = function(value) { + return jspb.Message.setWrapperField(this, 6, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.clearIntelligence = function() { + return this.setIntelligence(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.CreateApplicationRequest.prototype.hasIntelligence = function() { + return jspb.Message.getField(this, 6) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.CreateApplicationResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.CreateApplicationResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationResponse} + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.CreateApplicationResponse; + return proto.fonoster.applications.v1beta2.CreateApplicationResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.CreateApplicationResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationResponse} + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.CreateApplicationResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.CreateApplicationResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.CreateApplicationResponse} returns this + */ +proto.fonoster.applications.v1beta2.CreateApplicationResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.GetApplicationRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.GetApplicationRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.GetApplicationRequest} + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.GetApplicationRequest; + return proto.fonoster.applications.v1beta2.GetApplicationRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.GetApplicationRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.GetApplicationRequest} + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.GetApplicationRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.GetApplicationRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.GetApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.GetApplicationRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.ListApplicationsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.ListApplicationsRequest; + return proto.fonoster.applications.v1beta2.ListApplicationsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.ListApplicationsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} returns this + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsRequest} returns this + */ +proto.fonoster.applications.v1beta2.ListApplicationsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.ListApplicationsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.applications.v1beta2.Application.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.ListApplicationsResponse; + return proto.fonoster.applications.v1beta2.ListApplicationsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.applications.v1beta2.Application; + reader.readMessage(value,proto.fonoster.applications.v1beta2.Application.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.ListApplicationsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.applications.v1beta2.Application.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Application items = 1; + * @return {!Array} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.applications.v1beta2.Application, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} returns this +*/ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.applications.v1beta2.Application=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.applications.v1beta2.Application} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.applications.v1beta2.Application, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} returns this + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.ListApplicationsResponse} returns this + */ +proto.fonoster.applications.v1beta2.ListApplicationsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.UpdateApplicationRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + type: jspb.Message.getFieldWithDefault(msg, 3, 0), + endpoint: jspb.Message.getFieldWithDefault(msg, 4, ""), + textToSpeech: (f = msg.getTextToSpeech()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + speechToText: (f = msg.getSpeechToText()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f), + intelligence: (f = msg.getIntelligence()) && proto.fonoster.applications.v1beta2.ProductContainer.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.UpdateApplicationRequest; + return proto.fonoster.applications.v1beta2.UpdateApplicationRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {!proto.fonoster.applications.v1beta2.ApplicationType} */ (reader.readEnum()); + msg.setType(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setEndpoint(value); + break; + case 5: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setTextToSpeech(value); + break; + case 6: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setSpeechToText(value); + break; + case 7: + var value = new proto.fonoster.applications.v1beta2.ProductContainer; + reader.readMessage(value,proto.fonoster.applications.v1beta2.ProductContainer.deserializeBinaryFromReader); + msg.setIntelligence(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.UpdateApplicationRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getType(); + if (f !== 0.0) { + writer.writeEnum( + 3, + f + ); + } + f = message.getEndpoint(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getTextToSpeech(); + if (f != null) { + writer.writeMessage( + 5, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getSpeechToText(); + if (f != null) { + writer.writeMessage( + 6, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } + f = message.getIntelligence(); + if (f != null) { + writer.writeMessage( + 7, + f, + proto.fonoster.applications.v1beta2.ProductContainer.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional ApplicationType type = 3; + * @return {!proto.fonoster.applications.v1beta2.ApplicationType} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getType = function() { + return /** @type {!proto.fonoster.applications.v1beta2.ApplicationType} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {!proto.fonoster.applications.v1beta2.ApplicationType} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setType = function(value) { + return jspb.Message.setProto3EnumField(this, 3, value); +}; + + +/** + * optional string endpoint = 4; + * @return {string} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getEndpoint = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setEndpoint = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional ProductContainer text_to_speech = 5; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getTextToSpeech = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 5)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this +*/ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setTextToSpeech = function(value) { + return jspb.Message.setWrapperField(this, 5, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.clearTextToSpeech = function() { + return this.setTextToSpeech(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.hasTextToSpeech = function() { + return jspb.Message.getField(this, 5) != null; +}; + + +/** + * optional ProductContainer speech_to_text = 6; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getSpeechToText = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 6)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this +*/ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setSpeechToText = function(value) { + return jspb.Message.setWrapperField(this, 6, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.clearSpeechToText = function() { + return this.setSpeechToText(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.hasSpeechToText = function() { + return jspb.Message.getField(this, 6) != null; +}; + + +/** + * optional ProductContainer intelligence = 7; + * @return {?proto.fonoster.applications.v1beta2.ProductContainer} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.getIntelligence = function() { + return /** @type{?proto.fonoster.applications.v1beta2.ProductContainer} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.applications.v1beta2.ProductContainer, 7)); +}; + + +/** + * @param {?proto.fonoster.applications.v1beta2.ProductContainer|undefined} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this +*/ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.setIntelligence = function(value) { + return jspb.Message.setWrapperField(this, 7, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.clearIntelligence = function() { + return this.setIntelligence(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationRequest.prototype.hasIntelligence = function() { + return jspb.Message.getField(this, 7) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.UpdateApplicationResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.UpdateApplicationResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationResponse} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.UpdateApplicationResponse; + return proto.fonoster.applications.v1beta2.UpdateApplicationResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.UpdateApplicationResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationResponse} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.UpdateApplicationResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.UpdateApplicationResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.UpdateApplicationResponse} returns this + */ +proto.fonoster.applications.v1beta2.UpdateApplicationResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.DeleteApplicationRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.DeleteApplicationRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.DeleteApplicationRequest} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.DeleteApplicationRequest; + return proto.fonoster.applications.v1beta2.DeleteApplicationRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.DeleteApplicationRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.DeleteApplicationRequest} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.DeleteApplicationRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.DeleteApplicationRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.DeleteApplicationRequest} returns this + */ +proto.fonoster.applications.v1beta2.DeleteApplicationRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.applications.v1beta2.DeleteApplicationResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.applications.v1beta2.DeleteApplicationResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.applications.v1beta2.DeleteApplicationResponse} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.applications.v1beta2.DeleteApplicationResponse; + return proto.fonoster.applications.v1beta2.DeleteApplicationResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.applications.v1beta2.DeleteApplicationResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.applications.v1beta2.DeleteApplicationResponse} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.applications.v1beta2.DeleteApplicationResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.applications.v1beta2.DeleteApplicationResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.applications.v1beta2.DeleteApplicationResponse} returns this + */ +proto.fonoster.applications.v1beta2.DeleteApplicationResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * @enum {number} + */ +proto.fonoster.applications.v1beta2.ApplicationType = { + EXTERNAL: 0, + AUTOPILOT: 1 +}; + +goog.object.extend(exports, proto.fonoster.applications.v1beta2); diff --git a/mods/sdk/src/generated/web/calls_pb.d.ts b/mods/sdk/src/generated/web/calls_pb.d.ts new file mode 100644 index 000000000..85d72f29d --- /dev/null +++ b/mods/sdk/src/generated/web/calls_pb.d.ts @@ -0,0 +1,262 @@ +import * as jspb from 'google-protobuf' + + + +export class CallDetailRecord extends jspb.Message { + getRef(): string; + setRef(value: string): CallDetailRecord; + + getCallId(): string; + setCallId(value: string): CallDetailRecord; + + getType(): CallType; + setType(value: CallType): CallDetailRecord; + + getStatus(): CallStatus; + setStatus(value: CallStatus): CallDetailRecord; + + getStartedAt(): number; + setStartedAt(value: number): CallDetailRecord; + + getEndedAt(): number; + setEndedAt(value: number): CallDetailRecord; + + getFrom(): string; + setFrom(value: string): CallDetailRecord; + + getTo(): string; + setTo(value: string): CallDetailRecord; + + getDuration(): number; + setDuration(value: number): CallDetailRecord; + + getDirection(): CallDirection; + setDirection(value: CallDirection): CallDetailRecord; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CallDetailRecord.AsObject; + static toObject(includeInstance: boolean, msg: CallDetailRecord): CallDetailRecord.AsObject; + static serializeBinaryToWriter(message: CallDetailRecord, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CallDetailRecord; + static deserializeBinaryFromReader(message: CallDetailRecord, reader: jspb.BinaryReader): CallDetailRecord; +} + +export namespace CallDetailRecord { + export type AsObject = { + ref: string, + callId: string, + type: CallType, + status: CallStatus, + startedAt: number, + endedAt: number, + from: string, + to: string, + duration: number, + direction: CallDirection, + } +} + +export class CreateCallRequest extends jspb.Message { + getFrom(): string; + setFrom(value: string): CreateCallRequest; + + getTo(): string; + setTo(value: string): CreateCallRequest; + + getAppRef(): string; + setAppRef(value: string): CreateCallRequest; + + getTimeout(): number; + setTimeout(value: number): CreateCallRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateCallRequest.AsObject; + static toObject(includeInstance: boolean, msg: CreateCallRequest): CreateCallRequest.AsObject; + static serializeBinaryToWriter(message: CreateCallRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateCallRequest; + static deserializeBinaryFromReader(message: CreateCallRequest, reader: jspb.BinaryReader): CreateCallRequest; +} + +export namespace CreateCallRequest { + export type AsObject = { + from: string, + to: string, + appRef: string, + timeout: number, + } +} + +export class CreateCallResponse extends jspb.Message { + getRef(): string; + setRef(value: string): CreateCallResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateCallResponse.AsObject; + static toObject(includeInstance: boolean, msg: CreateCallResponse): CreateCallResponse.AsObject; + static serializeBinaryToWriter(message: CreateCallResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateCallResponse; + static deserializeBinaryFromReader(message: CreateCallResponse, reader: jspb.BinaryReader): CreateCallResponse; +} + +export namespace CreateCallResponse { + export type AsObject = { + ref: string, + } +} + +export class ListCallsRequest extends jspb.Message { + getAfter(): string; + setAfter(value: string): ListCallsRequest; + + getBefore(): string; + setBefore(value: string): ListCallsRequest; + + getType(): CallType; + setType(value: CallType): ListCallsRequest; + + getStatus(): CallStatus; + setStatus(value: CallStatus): ListCallsRequest; + + getFrom(): string; + setFrom(value: string): ListCallsRequest; + + getTo(): string; + setTo(value: string): ListCallsRequest; + + getPageSize(): number; + setPageSize(value: number): ListCallsRequest; + + getPageToken(): string; + setPageToken(value: string): ListCallsRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListCallsRequest.AsObject; + static toObject(includeInstance: boolean, msg: ListCallsRequest): ListCallsRequest.AsObject; + static serializeBinaryToWriter(message: ListCallsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListCallsRequest; + static deserializeBinaryFromReader(message: ListCallsRequest, reader: jspb.BinaryReader): ListCallsRequest; +} + +export namespace ListCallsRequest { + export type AsObject = { + after: string, + before: string, + type: CallType, + status: CallStatus, + from: string, + to: string, + pageSize: number, + pageToken: string, + } +} + +export class ListCallsResponse extends jspb.Message { + getItemsList(): Array; + setItemsList(value: Array): ListCallsResponse; + clearItemsList(): ListCallsResponse; + addItems(value?: CallDetailRecord, index?: number): CallDetailRecord; + + getNextPageToken(): string; + setNextPageToken(value: string): ListCallsResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListCallsResponse.AsObject; + static toObject(includeInstance: boolean, msg: ListCallsResponse): ListCallsResponse.AsObject; + static serializeBinaryToWriter(message: ListCallsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListCallsResponse; + static deserializeBinaryFromReader(message: ListCallsResponse, reader: jspb.BinaryReader): ListCallsResponse; +} + +export namespace ListCallsResponse { + export type AsObject = { + itemsList: Array, + nextPageToken: string, + } +} + +export class GetCallRequest extends jspb.Message { + getRef(): string; + setRef(value: string): GetCallRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetCallRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetCallRequest): GetCallRequest.AsObject; + static serializeBinaryToWriter(message: GetCallRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetCallRequest; + static deserializeBinaryFromReader(message: GetCallRequest, reader: jspb.BinaryReader): GetCallRequest; +} + +export namespace GetCallRequest { + export type AsObject = { + ref: string, + } +} + +export class TrackCallRequest extends jspb.Message { + getRef(): string; + setRef(value: string): TrackCallRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): TrackCallRequest.AsObject; + static toObject(includeInstance: boolean, msg: TrackCallRequest): TrackCallRequest.AsObject; + static serializeBinaryToWriter(message: TrackCallRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): TrackCallRequest; + static deserializeBinaryFromReader(message: TrackCallRequest, reader: jspb.BinaryReader): TrackCallRequest; +} + +export namespace TrackCallRequest { + export type AsObject = { + ref: string, + } +} + +export class TrackCallResponse extends jspb.Message { + getStatus(): TrackCallResponse.Status; + setStatus(value: TrackCallResponse.Status): TrackCallResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): TrackCallResponse.AsObject; + static toObject(includeInstance: boolean, msg: TrackCallResponse): TrackCallResponse.AsObject; + static serializeBinaryToWriter(message: TrackCallResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): TrackCallResponse; + static deserializeBinaryFromReader(message: TrackCallResponse, reader: jspb.BinaryReader): TrackCallResponse; +} + +export namespace TrackCallResponse { + export type AsObject = { + status: TrackCallResponse.Status, + } + + export enum Status { + TRYING = 0, + CANCEL = 1, + ANSWER = 2, + BUSY = 3, + PROGRESS = 4, + NOANSWER = 5, + FAILED = 6, + } +} + +export enum CallType { + SIP_ORIGINATED = 0, + API_ORIGINATED = 1, +} +export enum CallStatus { + UNKNOWN = 0, + NORMAL_CLEARING = 1, + CALL_REJECTED = 2, + UNALLOCATED = 3, + NO_USER_RESPONSE = 4, + NO_ROUTE_DESTINATION = 5, + NO_ANSWER = 6, + USER_BUSY = 7, + NOT_ACCEPTABLE_HERE = 8, + SERVICE_UNAVAILABLE = 9, + INVALID_NUMBER_FORMAT = 10, +} +export enum CallDirection { + FROM_PSTN = 0, + TO_PSTN = 1, + INTRA_NETWORK = 2, +} diff --git a/mods/sdk/src/generated/web/calls_pb.js b/mods/sdk/src/generated/web/calls_pb.js new file mode 100644 index 000000000..d3c00e360 --- /dev/null +++ b/mods/sdk/src/generated/web/calls_pb.js @@ -0,0 +1,1915 @@ +// source: calls.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.calls.v1beta2.CallDetailRecord', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.CallDirection', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.CallStatus', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.CallType', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.CreateCallRequest', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.CreateCallResponse', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.GetCallRequest', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.ListCallsRequest', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.ListCallsResponse', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.TrackCallRequest', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.TrackCallResponse', null, global); +goog.exportSymbol('proto.fonoster.calls.v1beta2.TrackCallResponse.Status', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.CallDetailRecord = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.CallDetailRecord, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.CallDetailRecord.displayName = 'proto.fonoster.calls.v1beta2.CallDetailRecord'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.CreateCallRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.CreateCallRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.CreateCallRequest.displayName = 'proto.fonoster.calls.v1beta2.CreateCallRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.CreateCallResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.CreateCallResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.CreateCallResponse.displayName = 'proto.fonoster.calls.v1beta2.CreateCallResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.ListCallsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.ListCallsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.ListCallsRequest.displayName = 'proto.fonoster.calls.v1beta2.ListCallsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.ListCallsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.calls.v1beta2.ListCallsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.ListCallsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.ListCallsResponse.displayName = 'proto.fonoster.calls.v1beta2.ListCallsResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.GetCallRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.GetCallRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.GetCallRequest.displayName = 'proto.fonoster.calls.v1beta2.GetCallRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.TrackCallRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.TrackCallRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.TrackCallRequest.displayName = 'proto.fonoster.calls.v1beta2.TrackCallRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.calls.v1beta2.TrackCallResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.calls.v1beta2.TrackCallResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.calls.v1beta2.TrackCallResponse.displayName = 'proto.fonoster.calls.v1beta2.TrackCallResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.CallDetailRecord.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.CallDetailRecord} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + callId: jspb.Message.getFieldWithDefault(msg, 2, ""), + type: jspb.Message.getFieldWithDefault(msg, 3, 0), + status: jspb.Message.getFieldWithDefault(msg, 4, 0), + startedAt: jspb.Message.getFieldWithDefault(msg, 5, 0), + endedAt: jspb.Message.getFieldWithDefault(msg, 6, 0), + from: jspb.Message.getFieldWithDefault(msg, 7, ""), + to: jspb.Message.getFieldWithDefault(msg, 8, ""), + duration: jspb.Message.getFieldWithDefault(msg, 9, 0), + direction: jspb.Message.getFieldWithDefault(msg, 10, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.CallDetailRecord; + return proto.fonoster.calls.v1beta2.CallDetailRecord.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.CallDetailRecord} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setCallId(value); + break; + case 3: + var value = /** @type {!proto.fonoster.calls.v1beta2.CallType} */ (reader.readEnum()); + msg.setType(value); + break; + case 4: + var value = /** @type {!proto.fonoster.calls.v1beta2.CallStatus} */ (reader.readEnum()); + msg.setStatus(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setStartedAt(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setEndedAt(value); + break; + case 7: + var value = /** @type {string} */ (reader.readString()); + msg.setFrom(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setTo(value); + break; + case 9: + var value = /** @type {number} */ (reader.readInt32()); + msg.setDuration(value); + break; + case 10: + var value = /** @type {!proto.fonoster.calls.v1beta2.CallDirection} */ (reader.readEnum()); + msg.setDirection(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.CallDetailRecord.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.CallDetailRecord} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getCallId(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getType(); + if (f !== 0.0) { + writer.writeEnum( + 3, + f + ); + } + f = message.getStatus(); + if (f !== 0.0) { + writer.writeEnum( + 4, + f + ); + } + f = message.getStartedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } + f = message.getEndedAt(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } + f = message.getFrom(); + if (f.length > 0) { + writer.writeString( + 7, + f + ); + } + f = message.getTo(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } + f = message.getDuration(); + if (f !== 0) { + writer.writeInt32( + 9, + f + ); + } + f = message.getDirection(); + if (f !== 0.0) { + writer.writeEnum( + 10, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string call_id = 2; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getCallId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setCallId = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional CallType type = 3; + * @return {!proto.fonoster.calls.v1beta2.CallType} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getType = function() { + return /** @type {!proto.fonoster.calls.v1beta2.CallType} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.CallType} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setType = function(value) { + return jspb.Message.setProto3EnumField(this, 3, value); +}; + + +/** + * optional CallStatus status = 4; + * @return {!proto.fonoster.calls.v1beta2.CallStatus} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getStatus = function() { + return /** @type {!proto.fonoster.calls.v1beta2.CallStatus} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.CallStatus} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setStatus = function(value) { + return jspb.Message.setProto3EnumField(this, 4, value); +}; + + +/** + * optional int32 started_at = 5; + * @return {number} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getStartedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setStartedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional int32 ended_at = 6; + * @return {number} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getEndedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setEndedAt = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + +/** + * optional string from = 7; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getFrom = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setFrom = function(value) { + return jspb.Message.setProto3StringField(this, 7, value); +}; + + +/** + * optional string to = 8; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getTo = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setTo = function(value) { + return jspb.Message.setProto3StringField(this, 8, value); +}; + + +/** + * optional int32 duration = 9; + * @return {number} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getDuration = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setDuration = function(value) { + return jspb.Message.setProto3IntField(this, 9, value); +}; + + +/** + * optional CallDirection direction = 10; + * @return {!proto.fonoster.calls.v1beta2.CallDirection} + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.getDirection = function() { + return /** @type {!proto.fonoster.calls.v1beta2.CallDirection} */ (jspb.Message.getFieldWithDefault(this, 10, 0)); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.CallDirection} value + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} returns this + */ +proto.fonoster.calls.v1beta2.CallDetailRecord.prototype.setDirection = function(value) { + return jspb.Message.setProto3EnumField(this, 10, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.CreateCallRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.CreateCallRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.toObject = function(includeInstance, msg) { + var f, obj = { + from: jspb.Message.getFieldWithDefault(msg, 1, ""), + to: jspb.Message.getFieldWithDefault(msg, 2, ""), + appRef: jspb.Message.getFieldWithDefault(msg, 3, ""), + timeout: jspb.Message.getFieldWithDefault(msg, 4, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.CreateCallRequest} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.CreateCallRequest; + return proto.fonoster.calls.v1beta2.CreateCallRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.CreateCallRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.CreateCallRequest} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setFrom(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setTo(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAppRef(value); + break; + case 4: + var value = /** @type {number} */ (reader.readInt32()); + msg.setTimeout(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.CreateCallRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.CreateCallRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getFrom(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getTo(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAppRef(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getTimeout(); + if (f !== 0) { + writer.writeInt32( + 4, + f + ); + } +}; + + +/** + * optional string from = 1; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.getFrom = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CreateCallRequest} returns this + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.setFrom = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string to = 2; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.getTo = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CreateCallRequest} returns this + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.setTo = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string app_ref = 3; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.getAppRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CreateCallRequest} returns this + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.setAppRef = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional int32 timeout = 4; + * @return {number} + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.getTimeout = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.calls.v1beta2.CreateCallRequest} returns this + */ +proto.fonoster.calls.v1beta2.CreateCallRequest.prototype.setTimeout = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.CreateCallResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.CreateCallResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.CreateCallResponse} + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.CreateCallResponse; + return proto.fonoster.calls.v1beta2.CreateCallResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.CreateCallResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.CreateCallResponse} + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.CreateCallResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.CreateCallResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.CreateCallResponse} returns this + */ +proto.fonoster.calls.v1beta2.CreateCallResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.ListCallsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.ListCallsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + after: jspb.Message.getFieldWithDefault(msg, 1, ""), + before: jspb.Message.getFieldWithDefault(msg, 2, ""), + type: jspb.Message.getFieldWithDefault(msg, 3, 0), + status: jspb.Message.getFieldWithDefault(msg, 4, 0), + from: jspb.Message.getFieldWithDefault(msg, 5, ""), + to: jspb.Message.getFieldWithDefault(msg, 6, ""), + pageSize: jspb.Message.getFieldWithDefault(msg, 7, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 8, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.ListCallsRequest; + return proto.fonoster.calls.v1beta2.ListCallsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.ListCallsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAfter(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setBefore(value); + break; + case 3: + var value = /** @type {!proto.fonoster.calls.v1beta2.CallType} */ (reader.readEnum()); + msg.setType(value); + break; + case 4: + var value = /** @type {!proto.fonoster.calls.v1beta2.CallStatus} */ (reader.readEnum()); + msg.setStatus(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setFrom(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setTo(value); + break; + case 7: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.ListCallsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.ListCallsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAfter(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getBefore(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getType(); + if (f !== 0.0) { + writer.writeEnum( + 3, + f + ); + } + f = message.getStatus(); + if (f !== 0.0) { + writer.writeEnum( + 4, + f + ); + } + f = message.getFrom(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getTo(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 7, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } +}; + + +/** + * optional string after = 1; + * @return {string} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getAfter = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setAfter = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string before = 2; + * @return {string} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getBefore = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setBefore = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional CallType type = 3; + * @return {!proto.fonoster.calls.v1beta2.CallType} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getType = function() { + return /** @type {!proto.fonoster.calls.v1beta2.CallType} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.CallType} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setType = function(value) { + return jspb.Message.setProto3EnumField(this, 3, value); +}; + + +/** + * optional CallStatus status = 4; + * @return {!proto.fonoster.calls.v1beta2.CallStatus} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getStatus = function() { + return /** @type {!proto.fonoster.calls.v1beta2.CallStatus} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.CallStatus} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setStatus = function(value) { + return jspb.Message.setProto3EnumField(this, 4, value); +}; + + +/** + * optional string from = 5; + * @return {string} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getFrom = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setFrom = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string to = 6; + * @return {string} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getTo = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setTo = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional int32 page_size = 7; + * @return {number} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + + +/** + * optional string page_token = 8; + * @return {string} + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsRequest} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 8, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.ListCallsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.ListCallsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.calls.v1beta2.CallDetailRecord.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.ListCallsResponse} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.ListCallsResponse; + return proto.fonoster.calls.v1beta2.ListCallsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.ListCallsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.ListCallsResponse} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.calls.v1beta2.CallDetailRecord; + reader.readMessage(value,proto.fonoster.calls.v1beta2.CallDetailRecord.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.ListCallsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.ListCallsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.calls.v1beta2.CallDetailRecord.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated CallDetailRecord items = 1; + * @return {!Array} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.calls.v1beta2.CallDetailRecord, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsResponse} returns this +*/ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.CallDetailRecord=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.calls.v1beta2.CallDetailRecord} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.calls.v1beta2.CallDetailRecord, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.calls.v1beta2.ListCallsResponse} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.ListCallsResponse} returns this + */ +proto.fonoster.calls.v1beta2.ListCallsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.GetCallRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.GetCallRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.GetCallRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.GetCallRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.GetCallRequest} + */ +proto.fonoster.calls.v1beta2.GetCallRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.GetCallRequest; + return proto.fonoster.calls.v1beta2.GetCallRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.GetCallRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.GetCallRequest} + */ +proto.fonoster.calls.v1beta2.GetCallRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.GetCallRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.GetCallRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.GetCallRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.GetCallRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.calls.v1beta2.GetCallRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.GetCallRequest} returns this + */ +proto.fonoster.calls.v1beta2.GetCallRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.TrackCallRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.TrackCallRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.TrackCallRequest} + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.TrackCallRequest; + return proto.fonoster.calls.v1beta2.TrackCallRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.TrackCallRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.TrackCallRequest} + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.TrackCallRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.TrackCallRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.calls.v1beta2.TrackCallRequest} returns this + */ +proto.fonoster.calls.v1beta2.TrackCallRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.calls.v1beta2.TrackCallResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.calls.v1beta2.TrackCallResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.toObject = function(includeInstance, msg) { + var f, obj = { + status: jspb.Message.getFieldWithDefault(msg, 1, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.calls.v1beta2.TrackCallResponse} + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.calls.v1beta2.TrackCallResponse; + return proto.fonoster.calls.v1beta2.TrackCallResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.calls.v1beta2.TrackCallResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.calls.v1beta2.TrackCallResponse} + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.fonoster.calls.v1beta2.TrackCallResponse.Status} */ (reader.readEnum()); + msg.setStatus(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.calls.v1beta2.TrackCallResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.calls.v1beta2.TrackCallResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getStatus(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.Status = { + TRYING: 0, + CANCEL: 1, + ANSWER: 2, + BUSY: 3, + PROGRESS: 4, + NOANSWER: 5, + FAILED: 6 +}; + +/** + * optional Status status = 1; + * @return {!proto.fonoster.calls.v1beta2.TrackCallResponse.Status} + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.prototype.getStatus = function() { + return /** @type {!proto.fonoster.calls.v1beta2.TrackCallResponse.Status} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {!proto.fonoster.calls.v1beta2.TrackCallResponse.Status} value + * @return {!proto.fonoster.calls.v1beta2.TrackCallResponse} returns this + */ +proto.fonoster.calls.v1beta2.TrackCallResponse.prototype.setStatus = function(value) { + return jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * @enum {number} + */ +proto.fonoster.calls.v1beta2.CallType = { + SIP_ORIGINATED: 0, + API_ORIGINATED: 1 +}; + +/** + * @enum {number} + */ +proto.fonoster.calls.v1beta2.CallStatus = { + UNKNOWN: 0, + NORMAL_CLEARING: 1, + CALL_REJECTED: 2, + UNALLOCATED: 3, + NO_USER_RESPONSE: 4, + NO_ROUTE_DESTINATION: 5, + NO_ANSWER: 6, + USER_BUSY: 7, + NOT_ACCEPTABLE_HERE: 8, + SERVICE_UNAVAILABLE: 9, + INVALID_NUMBER_FORMAT: 10 +}; + +/** + * @enum {number} + */ +proto.fonoster.calls.v1beta2.CallDirection = { + FROM_PSTN: 0, + TO_PSTN: 1, + INTRA_NETWORK: 2 +}; + +goog.object.extend(exports, proto.fonoster.calls.v1beta2); diff --git a/mods/sdk/src/generated/web/credentials_pb.d.ts b/mods/sdk/src/generated/web/credentials_pb.d.ts new file mode 100644 index 000000000..ad4463819 --- /dev/null +++ b/mods/sdk/src/generated/web/credentials_pb.d.ts @@ -0,0 +1,230 @@ +import * as jspb from 'google-protobuf' + + + +export class Credentials extends jspb.Message { + getRef(): string; + setRef(value: string): Credentials; + + getName(): string; + setName(value: string): Credentials; + + getUsername(): string; + setUsername(value: string): Credentials; + + getCreatedAt(): number; + setCreatedAt(value: number): Credentials; + + getUpdatedAt(): number; + setUpdatedAt(value: number): Credentials; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Credentials.AsObject; + static toObject(includeInstance: boolean, msg: Credentials): Credentials.AsObject; + static serializeBinaryToWriter(message: Credentials, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Credentials; + static deserializeBinaryFromReader(message: Credentials, reader: jspb.BinaryReader): Credentials; +} + +export namespace Credentials { + export type AsObject = { + ref: string, + name: string, + username: string, + createdAt: number, + updatedAt: number, + } +} + +export class CreateCredentialsRequest extends jspb.Message { + getName(): string; + setName(value: string): CreateCredentialsRequest; + + getUsername(): string; + setUsername(value: string): CreateCredentialsRequest; + + getPassword(): string; + setPassword(value: string): CreateCredentialsRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateCredentialsRequest.AsObject; + static toObject(includeInstance: boolean, msg: CreateCredentialsRequest): CreateCredentialsRequest.AsObject; + static serializeBinaryToWriter(message: CreateCredentialsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateCredentialsRequest; + static deserializeBinaryFromReader(message: CreateCredentialsRequest, reader: jspb.BinaryReader): CreateCredentialsRequest; +} + +export namespace CreateCredentialsRequest { + export type AsObject = { + name: string, + username: string, + password: string, + } +} + +export class CreateCredentialsResponse extends jspb.Message { + getRef(): string; + setRef(value: string): CreateCredentialsResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateCredentialsResponse.AsObject; + static toObject(includeInstance: boolean, msg: CreateCredentialsResponse): CreateCredentialsResponse.AsObject; + static serializeBinaryToWriter(message: CreateCredentialsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateCredentialsResponse; + static deserializeBinaryFromReader(message: CreateCredentialsResponse, reader: jspb.BinaryReader): CreateCredentialsResponse; +} + +export namespace CreateCredentialsResponse { + export type AsObject = { + ref: string, + } +} + +export class UpdateCredentialsRequest extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateCredentialsRequest; + + getName(): string; + setName(value: string): UpdateCredentialsRequest; + + getUsername(): string; + setUsername(value: string): UpdateCredentialsRequest; + + getPassword(): string; + setPassword(value: string): UpdateCredentialsRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateCredentialsRequest.AsObject; + static toObject(includeInstance: boolean, msg: UpdateCredentialsRequest): UpdateCredentialsRequest.AsObject; + static serializeBinaryToWriter(message: UpdateCredentialsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateCredentialsRequest; + static deserializeBinaryFromReader(message: UpdateCredentialsRequest, reader: jspb.BinaryReader): UpdateCredentialsRequest; +} + +export namespace UpdateCredentialsRequest { + export type AsObject = { + ref: string, + name: string, + username: string, + password: string, + } +} + +export class UpdateCredentialsResponse extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateCredentialsResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateCredentialsResponse.AsObject; + static toObject(includeInstance: boolean, msg: UpdateCredentialsResponse): UpdateCredentialsResponse.AsObject; + static serializeBinaryToWriter(message: UpdateCredentialsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateCredentialsResponse; + static deserializeBinaryFromReader(message: UpdateCredentialsResponse, reader: jspb.BinaryReader): UpdateCredentialsResponse; +} + +export namespace UpdateCredentialsResponse { + export type AsObject = { + ref: string, + } +} + +export class GetCredentialsRequest extends jspb.Message { + getRef(): string; + setRef(value: string): GetCredentialsRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetCredentialsRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetCredentialsRequest): GetCredentialsRequest.AsObject; + static serializeBinaryToWriter(message: GetCredentialsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetCredentialsRequest; + static deserializeBinaryFromReader(message: GetCredentialsRequest, reader: jspb.BinaryReader): GetCredentialsRequest; +} + +export namespace GetCredentialsRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteCredentialsRequest extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteCredentialsRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteCredentialsRequest.AsObject; + static toObject(includeInstance: boolean, msg: DeleteCredentialsRequest): DeleteCredentialsRequest.AsObject; + static serializeBinaryToWriter(message: DeleteCredentialsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteCredentialsRequest; + static deserializeBinaryFromReader(message: DeleteCredentialsRequest, reader: jspb.BinaryReader): DeleteCredentialsRequest; +} + +export namespace DeleteCredentialsRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteCredentialsResponse extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteCredentialsResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteCredentialsResponse.AsObject; + static toObject(includeInstance: boolean, msg: DeleteCredentialsResponse): DeleteCredentialsResponse.AsObject; + static serializeBinaryToWriter(message: DeleteCredentialsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteCredentialsResponse; + static deserializeBinaryFromReader(message: DeleteCredentialsResponse, reader: jspb.BinaryReader): DeleteCredentialsResponse; +} + +export namespace DeleteCredentialsResponse { + export type AsObject = { + ref: string, + } +} + +export class ListCredentialsRequest extends jspb.Message { + getPageSize(): number; + setPageSize(value: number): ListCredentialsRequest; + + getPageToken(): string; + setPageToken(value: string): ListCredentialsRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListCredentialsRequest.AsObject; + static toObject(includeInstance: boolean, msg: ListCredentialsRequest): ListCredentialsRequest.AsObject; + static serializeBinaryToWriter(message: ListCredentialsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListCredentialsRequest; + static deserializeBinaryFromReader(message: ListCredentialsRequest, reader: jspb.BinaryReader): ListCredentialsRequest; +} + +export namespace ListCredentialsRequest { + export type AsObject = { + pageSize: number, + pageToken: string, + } +} + +export class ListCredentialsResponse extends jspb.Message { + getItemsList(): Array; + setItemsList(value: Array): ListCredentialsResponse; + clearItemsList(): ListCredentialsResponse; + addItems(value?: Credentials, index?: number): Credentials; + + getNextPageToken(): string; + setNextPageToken(value: string): ListCredentialsResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListCredentialsResponse.AsObject; + static toObject(includeInstance: boolean, msg: ListCredentialsResponse): ListCredentialsResponse.AsObject; + static serializeBinaryToWriter(message: ListCredentialsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListCredentialsResponse; + static deserializeBinaryFromReader(message: ListCredentialsResponse, reader: jspb.BinaryReader): ListCredentialsResponse; +} + +export namespace ListCredentialsResponse { + export type AsObject = { + itemsList: Array, + nextPageToken: string, + } +} + diff --git a/mods/sdk/src/generated/web/credentials_pb.js b/mods/sdk/src/generated/web/credentials_pb.js new file mode 100644 index 000000000..3745cf523 --- /dev/null +++ b/mods/sdk/src/generated/web/credentials_pb.js @@ -0,0 +1,1898 @@ +// source: credentials.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.credentials.v1beta2.CreateCredentialsRequest', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.CreateCredentialsResponse', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.Credentials', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.GetCredentialsRequest', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.ListCredentialsRequest', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.ListCredentialsResponse', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest', null, global); +goog.exportSymbol('proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.Credentials = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.Credentials, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.Credentials.displayName = 'proto.fonoster.credentials.v1beta2.Credentials'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.CreateCredentialsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.displayName = 'proto.fonoster.credentials.v1beta2.CreateCredentialsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.CreateCredentialsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.displayName = 'proto.fonoster.credentials.v1beta2.CreateCredentialsResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.displayName = 'proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.displayName = 'proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.GetCredentialsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.GetCredentialsRequest.displayName = 'proto.fonoster.credentials.v1beta2.GetCredentialsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.displayName = 'proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.displayName = 'proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.ListCredentialsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.ListCredentialsRequest.displayName = 'proto.fonoster.credentials.v1beta2.ListCredentialsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.credentials.v1beta2.ListCredentialsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.credentials.v1beta2.ListCredentialsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.credentials.v1beta2.ListCredentialsResponse.displayName = 'proto.fonoster.credentials.v1beta2.ListCredentialsResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.Credentials.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.Credentials} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.Credentials.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + username: jspb.Message.getFieldWithDefault(msg, 3, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 4, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 5, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.Credentials} + */ +proto.fonoster.credentials.v1beta2.Credentials.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.Credentials; + return proto.fonoster.credentials.v1beta2.Credentials.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.Credentials} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.Credentials} + */ +proto.fonoster.credentials.v1beta2.Credentials.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 4: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.Credentials.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.Credentials} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.Credentials.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 4, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.Credentials} returns this + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.Credentials} returns this + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string username = 3; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.Credentials} returns this + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional int32 created_at = 4; + * @return {number} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.credentials.v1beta2.Credentials} returns this + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional int32 updated_at = 5; + * @return {number} + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.credentials.v1beta2.Credentials} returns this + */ +proto.fonoster.credentials.v1beta2.Credentials.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + username: jspb.Message.getFieldWithDefault(msg, 2, ""), + password: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.CreateCredentialsRequest; + return proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setPassword(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getPassword(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string username = 2; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string password = 3; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.getPassword = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsRequest.prototype.setPassword = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.CreateCredentialsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.CreateCredentialsResponse; + return proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.CreateCredentialsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.CreateCredentialsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.CreateCredentialsResponse} returns this + */ +proto.fonoster.credentials.v1beta2.CreateCredentialsResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + username: jspb.Message.getFieldWithDefault(msg, 3, ""), + password: jspb.Message.getFieldWithDefault(msg, 4, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest; + return proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setPassword(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getPassword(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string username = 3; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string password = 4; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.getPassword = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsRequest.prototype.setPassword = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse; + return proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse} returns this + */ +proto.fonoster.credentials.v1beta2.UpdateCredentialsResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.GetCredentialsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.GetCredentialsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.GetCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.GetCredentialsRequest; + return proto.fonoster.credentials.v1beta2.GetCredentialsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.GetCredentialsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.GetCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.GetCredentialsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.GetCredentialsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.GetCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.GetCredentialsRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest; + return proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse; + return proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse} returns this + */ +proto.fonoster.credentials.v1beta2.DeleteCredentialsResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.ListCredentialsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.ListCredentialsRequest; + return proto.fonoster.credentials.v1beta2.ListCredentialsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.ListCredentialsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsRequest} returns this + */ +proto.fonoster.credentials.v1beta2.ListCredentialsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.credentials.v1beta2.ListCredentialsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.credentials.v1beta2.Credentials.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.credentials.v1beta2.ListCredentialsResponse; + return proto.fonoster.credentials.v1beta2.ListCredentialsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.credentials.v1beta2.Credentials; + reader.readMessage(value,proto.fonoster.credentials.v1beta2.Credentials.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.credentials.v1beta2.ListCredentialsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.credentials.v1beta2.Credentials.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Credentials items = 1; + * @return {!Array} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.credentials.v1beta2.Credentials, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} returns this +*/ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.credentials.v1beta2.Credentials=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.credentials.v1beta2.Credentials} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.credentials.v1beta2.Credentials, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} returns this + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.credentials.v1beta2.ListCredentialsResponse} returns this + */ +proto.fonoster.credentials.v1beta2.ListCredentialsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +goog.object.extend(exports, proto.fonoster.credentials.v1beta2); diff --git a/mods/sdk/src/generated/web/domains_pb.d.ts b/mods/sdk/src/generated/web/domains_pb.d.ts new file mode 100644 index 000000000..a0ca8e114 --- /dev/null +++ b/mods/sdk/src/generated/web/domains_pb.d.ts @@ -0,0 +1,260 @@ +import * as jspb from 'google-protobuf' + + + +export class Domain extends jspb.Message { + getRef(): string; + setRef(value: string): Domain; + + getName(): string; + setName(value: string): Domain; + + getDomainUri(): string; + setDomainUri(value: string): Domain; + + getCreatedAt(): number; + setCreatedAt(value: number): Domain; + + getUpdatedAt(): number; + setUpdatedAt(value: number): Domain; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Domain.AsObject; + static toObject(includeInstance: boolean, msg: Domain): Domain.AsObject; + static serializeBinaryToWriter(message: Domain, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Domain; + static deserializeBinaryFromReader(message: Domain, reader: jspb.BinaryReader): Domain; +} + +export namespace Domain { + export type AsObject = { + ref: string, + name: string, + domainUri: string, + createdAt: number, + updatedAt: number, + } +} + +export class EgressPolicy extends jspb.Message { + getRule(): string; + setRule(value: string): EgressPolicy; + + getNumberRef(): string; + setNumberRef(value: string): EgressPolicy; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): EgressPolicy.AsObject; + static toObject(includeInstance: boolean, msg: EgressPolicy): EgressPolicy.AsObject; + static serializeBinaryToWriter(message: EgressPolicy, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): EgressPolicy; + static deserializeBinaryFromReader(message: EgressPolicy, reader: jspb.BinaryReader): EgressPolicy; +} + +export namespace EgressPolicy { + export type AsObject = { + rule: string, + numberRef: string, + } +} + +export class CreateDomainRequest extends jspb.Message { + getName(): string; + setName(value: string): CreateDomainRequest; + + getDomainUri(): string; + setDomainUri(value: string): CreateDomainRequest; + + getAccessControlListRef(): string; + setAccessControlListRef(value: string): CreateDomainRequest; + + getEgressPoliciesList(): Array; + setEgressPoliciesList(value: Array): CreateDomainRequest; + clearEgressPoliciesList(): CreateDomainRequest; + addEgressPolicies(value?: EgressPolicy, index?: number): EgressPolicy; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateDomainRequest.AsObject; + static toObject(includeInstance: boolean, msg: CreateDomainRequest): CreateDomainRequest.AsObject; + static serializeBinaryToWriter(message: CreateDomainRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateDomainRequest; + static deserializeBinaryFromReader(message: CreateDomainRequest, reader: jspb.BinaryReader): CreateDomainRequest; +} + +export namespace CreateDomainRequest { + export type AsObject = { + name: string, + domainUri: string, + accessControlListRef: string, + egressPoliciesList: Array, + } +} + +export class CreateDomainResponse extends jspb.Message { + getRef(): string; + setRef(value: string): CreateDomainResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateDomainResponse.AsObject; + static toObject(includeInstance: boolean, msg: CreateDomainResponse): CreateDomainResponse.AsObject; + static serializeBinaryToWriter(message: CreateDomainResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateDomainResponse; + static deserializeBinaryFromReader(message: CreateDomainResponse, reader: jspb.BinaryReader): CreateDomainResponse; +} + +export namespace CreateDomainResponse { + export type AsObject = { + ref: string, + } +} + +export class UpdateDomainRequest extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateDomainRequest; + + getName(): string; + setName(value: string): UpdateDomainRequest; + + getAccessControlListRef(): string; + setAccessControlListRef(value: string): UpdateDomainRequest; + + getEgressPoliciesList(): Array; + setEgressPoliciesList(value: Array): UpdateDomainRequest; + clearEgressPoliciesList(): UpdateDomainRequest; + addEgressPolicies(value?: EgressPolicy, index?: number): EgressPolicy; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateDomainRequest.AsObject; + static toObject(includeInstance: boolean, msg: UpdateDomainRequest): UpdateDomainRequest.AsObject; + static serializeBinaryToWriter(message: UpdateDomainRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateDomainRequest; + static deserializeBinaryFromReader(message: UpdateDomainRequest, reader: jspb.BinaryReader): UpdateDomainRequest; +} + +export namespace UpdateDomainRequest { + export type AsObject = { + ref: string, + name: string, + accessControlListRef: string, + egressPoliciesList: Array, + } +} + +export class UpdateDomainResponse extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateDomainResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateDomainResponse.AsObject; + static toObject(includeInstance: boolean, msg: UpdateDomainResponse): UpdateDomainResponse.AsObject; + static serializeBinaryToWriter(message: UpdateDomainResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateDomainResponse; + static deserializeBinaryFromReader(message: UpdateDomainResponse, reader: jspb.BinaryReader): UpdateDomainResponse; +} + +export namespace UpdateDomainResponse { + export type AsObject = { + ref: string, + } +} + +export class GetDomainRequest extends jspb.Message { + getRef(): string; + setRef(value: string): GetDomainRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetDomainRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetDomainRequest): GetDomainRequest.AsObject; + static serializeBinaryToWriter(message: GetDomainRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetDomainRequest; + static deserializeBinaryFromReader(message: GetDomainRequest, reader: jspb.BinaryReader): GetDomainRequest; +} + +export namespace GetDomainRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteDomainRequest extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteDomainRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteDomainRequest.AsObject; + static toObject(includeInstance: boolean, msg: DeleteDomainRequest): DeleteDomainRequest.AsObject; + static serializeBinaryToWriter(message: DeleteDomainRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteDomainRequest; + static deserializeBinaryFromReader(message: DeleteDomainRequest, reader: jspb.BinaryReader): DeleteDomainRequest; +} + +export namespace DeleteDomainRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteDomainResponse extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteDomainResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteDomainResponse.AsObject; + static toObject(includeInstance: boolean, msg: DeleteDomainResponse): DeleteDomainResponse.AsObject; + static serializeBinaryToWriter(message: DeleteDomainResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteDomainResponse; + static deserializeBinaryFromReader(message: DeleteDomainResponse, reader: jspb.BinaryReader): DeleteDomainResponse; +} + +export namespace DeleteDomainResponse { + export type AsObject = { + ref: string, + } +} + +export class ListDomainsRequest extends jspb.Message { + getPageSize(): number; + setPageSize(value: number): ListDomainsRequest; + + getPageToken(): string; + setPageToken(value: string): ListDomainsRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListDomainsRequest.AsObject; + static toObject(includeInstance: boolean, msg: ListDomainsRequest): ListDomainsRequest.AsObject; + static serializeBinaryToWriter(message: ListDomainsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListDomainsRequest; + static deserializeBinaryFromReader(message: ListDomainsRequest, reader: jspb.BinaryReader): ListDomainsRequest; +} + +export namespace ListDomainsRequest { + export type AsObject = { + pageSize: number, + pageToken: string, + } +} + +export class ListDomainsResponse extends jspb.Message { + getItemsList(): Array; + setItemsList(value: Array): ListDomainsResponse; + clearItemsList(): ListDomainsResponse; + addItems(value?: Domain, index?: number): Domain; + + getNextPageToken(): string; + setNextPageToken(value: string): ListDomainsResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListDomainsResponse.AsObject; + static toObject(includeInstance: boolean, msg: ListDomainsResponse): ListDomainsResponse.AsObject; + static serializeBinaryToWriter(message: ListDomainsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListDomainsResponse; + static deserializeBinaryFromReader(message: ListDomainsResponse, reader: jspb.BinaryReader): ListDomainsResponse; +} + +export namespace ListDomainsResponse { + export type AsObject = { + itemsList: Array, + nextPageToken: string, + } +} + diff --git a/mods/sdk/src/generated/web/domains_pb.js b/mods/sdk/src/generated/web/domains_pb.js new file mode 100644 index 000000000..429de7f4c --- /dev/null +++ b/mods/sdk/src/generated/web/domains_pb.js @@ -0,0 +1,2170 @@ +// source: domains.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.domains.v1beta2.CreateDomainRequest', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.CreateDomainResponse', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.DeleteDomainRequest', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.DeleteDomainResponse', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.Domain', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.EgressPolicy', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.GetDomainRequest', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.ListDomainsRequest', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.ListDomainsResponse', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.UpdateDomainRequest', null, global); +goog.exportSymbol('proto.fonoster.domains.v1beta2.UpdateDomainResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.Domain = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.Domain, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.Domain.displayName = 'proto.fonoster.domains.v1beta2.Domain'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.EgressPolicy = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.EgressPolicy, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.EgressPolicy.displayName = 'proto.fonoster.domains.v1beta2.EgressPolicy'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.domains.v1beta2.CreateDomainRequest.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.CreateDomainRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.CreateDomainRequest.displayName = 'proto.fonoster.domains.v1beta2.CreateDomainRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.CreateDomainResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.CreateDomainResponse.displayName = 'proto.fonoster.domains.v1beta2.CreateDomainResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.domains.v1beta2.UpdateDomainRequest.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.UpdateDomainRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.UpdateDomainRequest.displayName = 'proto.fonoster.domains.v1beta2.UpdateDomainRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.UpdateDomainResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.UpdateDomainResponse.displayName = 'proto.fonoster.domains.v1beta2.UpdateDomainResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.GetDomainRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.GetDomainRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.GetDomainRequest.displayName = 'proto.fonoster.domains.v1beta2.GetDomainRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.DeleteDomainRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.DeleteDomainRequest.displayName = 'proto.fonoster.domains.v1beta2.DeleteDomainRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.DeleteDomainResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.DeleteDomainResponse.displayName = 'proto.fonoster.domains.v1beta2.DeleteDomainResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.ListDomainsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.ListDomainsRequest.displayName = 'proto.fonoster.domains.v1beta2.ListDomainsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.domains.v1beta2.ListDomainsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.domains.v1beta2.ListDomainsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.domains.v1beta2.ListDomainsResponse.displayName = 'proto.fonoster.domains.v1beta2.ListDomainsResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.Domain.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.Domain} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.Domain.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + domainUri: jspb.Message.getFieldWithDefault(msg, 3, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 4, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 5, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.Domain} + */ +proto.fonoster.domains.v1beta2.Domain.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.Domain; + return proto.fonoster.domains.v1beta2.Domain.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.Domain} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.Domain} + */ +proto.fonoster.domains.v1beta2.Domain.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setDomainUri(value); + break; + case 4: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.Domain.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.Domain} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.Domain.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getDomainUri(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 4, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.Domain} returns this + */ +proto.fonoster.domains.v1beta2.Domain.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.Domain} returns this + */ +proto.fonoster.domains.v1beta2.Domain.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string domain_uri = 3; + * @return {string} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.getDomainUri = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.Domain} returns this + */ +proto.fonoster.domains.v1beta2.Domain.prototype.setDomainUri = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional int32 created_at = 4; + * @return {number} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.domains.v1beta2.Domain} returns this + */ +proto.fonoster.domains.v1beta2.Domain.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional int32 updated_at = 5; + * @return {number} + */ +proto.fonoster.domains.v1beta2.Domain.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.domains.v1beta2.Domain} returns this + */ +proto.fonoster.domains.v1beta2.Domain.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.EgressPolicy.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.EgressPolicy.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.EgressPolicy} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.EgressPolicy.toObject = function(includeInstance, msg) { + var f, obj = { + rule: jspb.Message.getFieldWithDefault(msg, 1, ""), + numberRef: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.EgressPolicy} + */ +proto.fonoster.domains.v1beta2.EgressPolicy.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.EgressPolicy; + return proto.fonoster.domains.v1beta2.EgressPolicy.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.EgressPolicy} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.EgressPolicy} + */ +proto.fonoster.domains.v1beta2.EgressPolicy.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRule(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNumberRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.EgressPolicy.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.EgressPolicy.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.EgressPolicy} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.EgressPolicy.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRule(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getNumberRef(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional string rule = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.EgressPolicy.prototype.getRule = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.EgressPolicy} returns this + */ +proto.fonoster.domains.v1beta2.EgressPolicy.prototype.setRule = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string number_ref = 2; + * @return {string} + */ +proto.fonoster.domains.v1beta2.EgressPolicy.prototype.getNumberRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.EgressPolicy} returns this + */ +proto.fonoster.domains.v1beta2.EgressPolicy.prototype.setNumberRef = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.repeatedFields_ = [4]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.CreateDomainRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.CreateDomainRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + domainUri: jspb.Message.getFieldWithDefault(msg, 2, ""), + accessControlListRef: jspb.Message.getFieldWithDefault(msg, 3, ""), + egressPoliciesList: jspb.Message.toObjectList(msg.getEgressPoliciesList(), + proto.fonoster.domains.v1beta2.EgressPolicy.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.CreateDomainRequest; + return proto.fonoster.domains.v1beta2.CreateDomainRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.CreateDomainRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setDomainUri(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessControlListRef(value); + break; + case 4: + var value = new proto.fonoster.domains.v1beta2.EgressPolicy; + reader.readMessage(value,proto.fonoster.domains.v1beta2.EgressPolicy.deserializeBinaryFromReader); + msg.addEgressPolicies(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.CreateDomainRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.CreateDomainRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getDomainUri(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAccessControlListRef(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getEgressPoliciesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 4, + f, + proto.fonoster.domains.v1beta2.EgressPolicy.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string domain_uri = 2; + * @return {string} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.getDomainUri = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.setDomainUri = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string access_control_list_ref = 3; + * @return {string} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.getAccessControlListRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.setAccessControlListRef = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * repeated EgressPolicy egress_policies = 4; + * @return {!Array} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.getEgressPoliciesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.domains.v1beta2.EgressPolicy, 4)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} returns this +*/ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.setEgressPoliciesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 4, value); +}; + + +/** + * @param {!proto.fonoster.domains.v1beta2.EgressPolicy=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.domains.v1beta2.EgressPolicy} + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.addEgressPolicies = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.fonoster.domains.v1beta2.EgressPolicy, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.domains.v1beta2.CreateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.CreateDomainRequest.prototype.clearEgressPoliciesList = function() { + return this.setEgressPoliciesList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.CreateDomainResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.CreateDomainResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.CreateDomainResponse} + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.CreateDomainResponse; + return proto.fonoster.domains.v1beta2.CreateDomainResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.CreateDomainResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.CreateDomainResponse} + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.CreateDomainResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.CreateDomainResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.CreateDomainResponse} returns this + */ +proto.fonoster.domains.v1beta2.CreateDomainResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.repeatedFields_ = [4]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.UpdateDomainRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + accessControlListRef: jspb.Message.getFieldWithDefault(msg, 3, ""), + egressPoliciesList: jspb.Message.toObjectList(msg.getEgressPoliciesList(), + proto.fonoster.domains.v1beta2.EgressPolicy.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.UpdateDomainRequest; + return proto.fonoster.domains.v1beta2.UpdateDomainRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessControlListRef(value); + break; + case 4: + var value = new proto.fonoster.domains.v1beta2.EgressPolicy; + reader.readMessage(value,proto.fonoster.domains.v1beta2.EgressPolicy.deserializeBinaryFromReader); + msg.addEgressPolicies(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.UpdateDomainRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAccessControlListRef(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getEgressPoliciesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 4, + f, + proto.fonoster.domains.v1beta2.EgressPolicy.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string access_control_list_ref = 3; + * @return {string} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.getAccessControlListRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.setAccessControlListRef = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * repeated EgressPolicy egress_policies = 4; + * @return {!Array} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.getEgressPoliciesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.domains.v1beta2.EgressPolicy, 4)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} returns this +*/ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.setEgressPoliciesList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 4, value); +}; + + +/** + * @param {!proto.fonoster.domains.v1beta2.EgressPolicy=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.domains.v1beta2.EgressPolicy} + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.addEgressPolicies = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.fonoster.domains.v1beta2.EgressPolicy, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.UpdateDomainRequest.prototype.clearEgressPoliciesList = function() { + return this.setEgressPoliciesList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.UpdateDomainResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.UpdateDomainResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainResponse} + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.UpdateDomainResponse; + return proto.fonoster.domains.v1beta2.UpdateDomainResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.UpdateDomainResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainResponse} + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.UpdateDomainResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.UpdateDomainResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.UpdateDomainResponse} returns this + */ +proto.fonoster.domains.v1beta2.UpdateDomainResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.GetDomainRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.GetDomainRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.GetDomainRequest} + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.GetDomainRequest; + return proto.fonoster.domains.v1beta2.GetDomainRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.GetDomainRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.GetDomainRequest} + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.GetDomainRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.GetDomainRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.GetDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.GetDomainRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.DeleteDomainRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.DeleteDomainRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.DeleteDomainRequest} + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.DeleteDomainRequest; + return proto.fonoster.domains.v1beta2.DeleteDomainRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.DeleteDomainRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.DeleteDomainRequest} + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.DeleteDomainRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.DeleteDomainRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.DeleteDomainRequest} returns this + */ +proto.fonoster.domains.v1beta2.DeleteDomainRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.DeleteDomainResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.DeleteDomainResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.DeleteDomainResponse} + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.DeleteDomainResponse; + return proto.fonoster.domains.v1beta2.DeleteDomainResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.DeleteDomainResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.DeleteDomainResponse} + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.DeleteDomainResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.DeleteDomainResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.DeleteDomainResponse} returns this + */ +proto.fonoster.domains.v1beta2.DeleteDomainResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.ListDomainsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.ListDomainsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.ListDomainsRequest} + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.ListDomainsRequest; + return proto.fonoster.domains.v1beta2.ListDomainsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.ListDomainsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.ListDomainsRequest} + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.ListDomainsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.ListDomainsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.domains.v1beta2.ListDomainsRequest} returns this + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.ListDomainsRequest} returns this + */ +proto.fonoster.domains.v1beta2.ListDomainsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.domains.v1beta2.ListDomainsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.domains.v1beta2.ListDomainsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.domains.v1beta2.Domain.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.domains.v1beta2.ListDomainsResponse} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.domains.v1beta2.ListDomainsResponse; + return proto.fonoster.domains.v1beta2.ListDomainsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.domains.v1beta2.ListDomainsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.domains.v1beta2.ListDomainsResponse} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.domains.v1beta2.Domain; + reader.readMessage(value,proto.fonoster.domains.v1beta2.Domain.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.domains.v1beta2.ListDomainsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.domains.v1beta2.ListDomainsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.domains.v1beta2.Domain.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Domain items = 1; + * @return {!Array} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.domains.v1beta2.Domain, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.domains.v1beta2.ListDomainsResponse} returns this +*/ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.domains.v1beta2.Domain=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.domains.v1beta2.Domain} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.domains.v1beta2.Domain, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.domains.v1beta2.ListDomainsResponse} returns this + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.domains.v1beta2.ListDomainsResponse} returns this + */ +proto.fonoster.domains.v1beta2.ListDomainsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +goog.object.extend(exports, proto.fonoster.domains.v1beta2); diff --git a/mods/sdk/src/generated/web/identity_pb.d.ts b/mods/sdk/src/generated/web/identity_pb.d.ts new file mode 100644 index 000000000..03e4ab4f8 --- /dev/null +++ b/mods/sdk/src/generated/web/identity_pb.d.ts @@ -0,0 +1,1045 @@ +import * as jspb from 'google-protobuf' + +import * as google_protobuf_empty_pb from 'google-protobuf/google/protobuf/empty_pb'; // proto import: "google/protobuf/empty.proto" + + +export class Workspace extends jspb.Message { + getRef(): string; + setRef(value: string): Workspace; + + getName(): string; + setName(value: string): Workspace; + + getOwnerRef(): string; + setOwnerRef(value: string): Workspace; + + getAccessKeyId(): string; + setAccessKeyId(value: string): Workspace; + + getCreatedAt(): number; + setCreatedAt(value: number): Workspace; + + getUpdatedAt(): number; + setUpdatedAt(value: number): Workspace; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Workspace.AsObject; + static toObject(includeInstance: boolean, msg: Workspace): Workspace.AsObject; + static serializeBinaryToWriter(message: Workspace, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Workspace; + static deserializeBinaryFromReader(message: Workspace, reader: jspb.BinaryReader): Workspace; +} + +export namespace Workspace { + export type AsObject = { + ref: string, + name: string, + ownerRef: string, + accessKeyId: string, + createdAt: number, + updatedAt: number, + } +} + +export class CreateWorkspaceRequest extends jspb.Message { + getName(): string; + setName(value: string): CreateWorkspaceRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateWorkspaceRequest.AsObject; + static toObject(includeInstance: boolean, msg: CreateWorkspaceRequest): CreateWorkspaceRequest.AsObject; + static serializeBinaryToWriter(message: CreateWorkspaceRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateWorkspaceRequest; + static deserializeBinaryFromReader(message: CreateWorkspaceRequest, reader: jspb.BinaryReader): CreateWorkspaceRequest; +} + +export namespace CreateWorkspaceRequest { + export type AsObject = { + name: string, + } +} + +export class CreateWorkspaceResponse extends jspb.Message { + getRef(): string; + setRef(value: string): CreateWorkspaceResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateWorkspaceResponse.AsObject; + static toObject(includeInstance: boolean, msg: CreateWorkspaceResponse): CreateWorkspaceResponse.AsObject; + static serializeBinaryToWriter(message: CreateWorkspaceResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateWorkspaceResponse; + static deserializeBinaryFromReader(message: CreateWorkspaceResponse, reader: jspb.BinaryReader): CreateWorkspaceResponse; +} + +export namespace CreateWorkspaceResponse { + export type AsObject = { + ref: string, + } +} + +export class DeleteWorkspaceRequest extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteWorkspaceRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteWorkspaceRequest.AsObject; + static toObject(includeInstance: boolean, msg: DeleteWorkspaceRequest): DeleteWorkspaceRequest.AsObject; + static serializeBinaryToWriter(message: DeleteWorkspaceRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteWorkspaceRequest; + static deserializeBinaryFromReader(message: DeleteWorkspaceRequest, reader: jspb.BinaryReader): DeleteWorkspaceRequest; +} + +export namespace DeleteWorkspaceRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteWorkspaceResponse extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteWorkspaceResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteWorkspaceResponse.AsObject; + static toObject(includeInstance: boolean, msg: DeleteWorkspaceResponse): DeleteWorkspaceResponse.AsObject; + static serializeBinaryToWriter(message: DeleteWorkspaceResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteWorkspaceResponse; + static deserializeBinaryFromReader(message: DeleteWorkspaceResponse, reader: jspb.BinaryReader): DeleteWorkspaceResponse; +} + +export namespace DeleteWorkspaceResponse { + export type AsObject = { + ref: string, + } +} + +export class GetWorkspaceRequest extends jspb.Message { + getRef(): string; + setRef(value: string): GetWorkspaceRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetWorkspaceRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetWorkspaceRequest): GetWorkspaceRequest.AsObject; + static serializeBinaryToWriter(message: GetWorkspaceRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetWorkspaceRequest; + static deserializeBinaryFromReader(message: GetWorkspaceRequest, reader: jspb.BinaryReader): GetWorkspaceRequest; +} + +export namespace GetWorkspaceRequest { + export type AsObject = { + ref: string, + } +} + +export class ListWorkspacesRequest extends jspb.Message { + getPageToken(): string; + setPageToken(value: string): ListWorkspacesRequest; + + getPageSize(): number; + setPageSize(value: number): ListWorkspacesRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListWorkspacesRequest.AsObject; + static toObject(includeInstance: boolean, msg: ListWorkspacesRequest): ListWorkspacesRequest.AsObject; + static serializeBinaryToWriter(message: ListWorkspacesRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListWorkspacesRequest; + static deserializeBinaryFromReader(message: ListWorkspacesRequest, reader: jspb.BinaryReader): ListWorkspacesRequest; +} + +export namespace ListWorkspacesRequest { + export type AsObject = { + pageToken: string, + pageSize: number, + } +} + +export class ListWorkspacesResponse extends jspb.Message { + getItemsList(): Array; + setItemsList(value: Array): ListWorkspacesResponse; + clearItemsList(): ListWorkspacesResponse; + addItems(value?: Workspace, index?: number): Workspace; + + getNextPageToken(): string; + setNextPageToken(value: string): ListWorkspacesResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListWorkspacesResponse.AsObject; + static toObject(includeInstance: boolean, msg: ListWorkspacesResponse): ListWorkspacesResponse.AsObject; + static serializeBinaryToWriter(message: ListWorkspacesResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListWorkspacesResponse; + static deserializeBinaryFromReader(message: ListWorkspacesResponse, reader: jspb.BinaryReader): ListWorkspacesResponse; +} + +export namespace ListWorkspacesResponse { + export type AsObject = { + itemsList: Array, + nextPageToken: string, + } +} + +export class UpdateWorkspaceRequest extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateWorkspaceRequest; + + getName(): string; + setName(value: string): UpdateWorkspaceRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateWorkspaceRequest.AsObject; + static toObject(includeInstance: boolean, msg: UpdateWorkspaceRequest): UpdateWorkspaceRequest.AsObject; + static serializeBinaryToWriter(message: UpdateWorkspaceRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateWorkspaceRequest; + static deserializeBinaryFromReader(message: UpdateWorkspaceRequest, reader: jspb.BinaryReader): UpdateWorkspaceRequest; +} + +export namespace UpdateWorkspaceRequest { + export type AsObject = { + ref: string, + name: string, + } +} + +export class UpdateWorkspaceResponse extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateWorkspaceResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateWorkspaceResponse.AsObject; + static toObject(includeInstance: boolean, msg: UpdateWorkspaceResponse): UpdateWorkspaceResponse.AsObject; + static serializeBinaryToWriter(message: UpdateWorkspaceResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateWorkspaceResponse; + static deserializeBinaryFromReader(message: UpdateWorkspaceResponse, reader: jspb.BinaryReader): UpdateWorkspaceResponse; +} + +export namespace UpdateWorkspaceResponse { + export type AsObject = { + ref: string, + } +} + +export class InviteUserToWorkspaceRequest extends jspb.Message { + getEmail(): string; + setEmail(value: string): InviteUserToWorkspaceRequest; + + getRole(): string; + setRole(value: string): InviteUserToWorkspaceRequest; + + getName(): string; + setName(value: string): InviteUserToWorkspaceRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): InviteUserToWorkspaceRequest.AsObject; + static toObject(includeInstance: boolean, msg: InviteUserToWorkspaceRequest): InviteUserToWorkspaceRequest.AsObject; + static serializeBinaryToWriter(message: InviteUserToWorkspaceRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): InviteUserToWorkspaceRequest; + static deserializeBinaryFromReader(message: InviteUserToWorkspaceRequest, reader: jspb.BinaryReader): InviteUserToWorkspaceRequest; +} + +export namespace InviteUserToWorkspaceRequest { + export type AsObject = { + email: string, + role: string, + name: string, + } +} + +export class InviteUserToWorkspaceResponse extends jspb.Message { + getUserRef(): string; + setUserRef(value: string): InviteUserToWorkspaceResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): InviteUserToWorkspaceResponse.AsObject; + static toObject(includeInstance: boolean, msg: InviteUserToWorkspaceResponse): InviteUserToWorkspaceResponse.AsObject; + static serializeBinaryToWriter(message: InviteUserToWorkspaceResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): InviteUserToWorkspaceResponse; + static deserializeBinaryFromReader(message: InviteUserToWorkspaceResponse, reader: jspb.BinaryReader): InviteUserToWorkspaceResponse; +} + +export namespace InviteUserToWorkspaceResponse { + export type AsObject = { + userRef: string, + } +} + +export class RemoveUserFromWorkspaceRequest extends jspb.Message { + getUserRef(): string; + setUserRef(value: string): RemoveUserFromWorkspaceRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): RemoveUserFromWorkspaceRequest.AsObject; + static toObject(includeInstance: boolean, msg: RemoveUserFromWorkspaceRequest): RemoveUserFromWorkspaceRequest.AsObject; + static serializeBinaryToWriter(message: RemoveUserFromWorkspaceRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): RemoveUserFromWorkspaceRequest; + static deserializeBinaryFromReader(message: RemoveUserFromWorkspaceRequest, reader: jspb.BinaryReader): RemoveUserFromWorkspaceRequest; +} + +export namespace RemoveUserFromWorkspaceRequest { + export type AsObject = { + userRef: string, + } +} + +export class RemoveUserFromWorkspaceResponse extends jspb.Message { + getUserRef(): string; + setUserRef(value: string): RemoveUserFromWorkspaceResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): RemoveUserFromWorkspaceResponse.AsObject; + static toObject(includeInstance: boolean, msg: RemoveUserFromWorkspaceResponse): RemoveUserFromWorkspaceResponse.AsObject; + static serializeBinaryToWriter(message: RemoveUserFromWorkspaceResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): RemoveUserFromWorkspaceResponse; + static deserializeBinaryFromReader(message: RemoveUserFromWorkspaceResponse, reader: jspb.BinaryReader): RemoveUserFromWorkspaceResponse; +} + +export namespace RemoveUserFromWorkspaceResponse { + export type AsObject = { + userRef: string, + } +} + +export class ResendWorkspaceMembershipInvitationRequest extends jspb.Message { + getUserRef(): string; + setUserRef(value: string): ResendWorkspaceMembershipInvitationRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ResendWorkspaceMembershipInvitationRequest.AsObject; + static toObject(includeInstance: boolean, msg: ResendWorkspaceMembershipInvitationRequest): ResendWorkspaceMembershipInvitationRequest.AsObject; + static serializeBinaryToWriter(message: ResendWorkspaceMembershipInvitationRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ResendWorkspaceMembershipInvitationRequest; + static deserializeBinaryFromReader(message: ResendWorkspaceMembershipInvitationRequest, reader: jspb.BinaryReader): ResendWorkspaceMembershipInvitationRequest; +} + +export namespace ResendWorkspaceMembershipInvitationRequest { + export type AsObject = { + userRef: string, + } +} + +export class ResendWorkspaceMembershipInvitationResponse extends jspb.Message { + getUserRef(): string; + setUserRef(value: string): ResendWorkspaceMembershipInvitationResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ResendWorkspaceMembershipInvitationResponse.AsObject; + static toObject(includeInstance: boolean, msg: ResendWorkspaceMembershipInvitationResponse): ResendWorkspaceMembershipInvitationResponse.AsObject; + static serializeBinaryToWriter(message: ResendWorkspaceMembershipInvitationResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ResendWorkspaceMembershipInvitationResponse; + static deserializeBinaryFromReader(message: ResendWorkspaceMembershipInvitationResponse, reader: jspb.BinaryReader): ResendWorkspaceMembershipInvitationResponse; +} + +export namespace ResendWorkspaceMembershipInvitationResponse { + export type AsObject = { + userRef: string, + } +} + +export class CreateUserRequest extends jspb.Message { + getEmail(): string; + setEmail(value: string): CreateUserRequest; + + getPassword(): string; + setPassword(value: string): CreateUserRequest; + + getName(): string; + setName(value: string): CreateUserRequest; + + getAvatar(): string; + setAvatar(value: string): CreateUserRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateUserRequest.AsObject; + static toObject(includeInstance: boolean, msg: CreateUserRequest): CreateUserRequest.AsObject; + static serializeBinaryToWriter(message: CreateUserRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateUserRequest; + static deserializeBinaryFromReader(message: CreateUserRequest, reader: jspb.BinaryReader): CreateUserRequest; +} + +export namespace CreateUserRequest { + export type AsObject = { + email: string, + password: string, + name: string, + avatar: string, + } +} + +export class CreateUserResponse extends jspb.Message { + getRef(): string; + setRef(value: string): CreateUserResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateUserResponse.AsObject; + static toObject(includeInstance: boolean, msg: CreateUserResponse): CreateUserResponse.AsObject; + static serializeBinaryToWriter(message: CreateUserResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateUserResponse; + static deserializeBinaryFromReader(message: CreateUserResponse, reader: jspb.BinaryReader): CreateUserResponse; +} + +export namespace CreateUserResponse { + export type AsObject = { + ref: string, + } +} + +export class GetUserRequest extends jspb.Message { + getRef(): string; + setRef(value: string): GetUserRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetUserRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetUserRequest): GetUserRequest.AsObject; + static serializeBinaryToWriter(message: GetUserRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetUserRequest; + static deserializeBinaryFromReader(message: GetUserRequest, reader: jspb.BinaryReader): GetUserRequest; +} + +export namespace GetUserRequest { + export type AsObject = { + ref: string, + } +} + +export class User extends jspb.Message { + getRef(): string; + setRef(value: string): User; + + getEmail(): string; + setEmail(value: string): User; + + getName(): string; + setName(value: string): User; + + getAvatar(): string; + setAvatar(value: string): User; + + getCreatedAt(): number; + setCreatedAt(value: number): User; + + getUpdatedAt(): number; + setUpdatedAt(value: number): User; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): User.AsObject; + static toObject(includeInstance: boolean, msg: User): User.AsObject; + static serializeBinaryToWriter(message: User, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): User; + static deserializeBinaryFromReader(message: User, reader: jspb.BinaryReader): User; +} + +export namespace User { + export type AsObject = { + ref: string, + email: string, + name: string, + avatar: string, + createdAt: number, + updatedAt: number, + } +} + +export class UpdateUserRequest extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateUserRequest; + + getPassword(): string; + setPassword(value: string): UpdateUserRequest; + + getName(): string; + setName(value: string): UpdateUserRequest; + + getAvatar(): string; + setAvatar(value: string): UpdateUserRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateUserRequest.AsObject; + static toObject(includeInstance: boolean, msg: UpdateUserRequest): UpdateUserRequest.AsObject; + static serializeBinaryToWriter(message: UpdateUserRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateUserRequest; + static deserializeBinaryFromReader(message: UpdateUserRequest, reader: jspb.BinaryReader): UpdateUserRequest; +} + +export namespace UpdateUserRequest { + export type AsObject = { + ref: string, + password: string, + name: string, + avatar: string, + } +} + +export class UpdateUserResponse extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateUserResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateUserResponse.AsObject; + static toObject(includeInstance: boolean, msg: UpdateUserResponse): UpdateUserResponse.AsObject; + static serializeBinaryToWriter(message: UpdateUserResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateUserResponse; + static deserializeBinaryFromReader(message: UpdateUserResponse, reader: jspb.BinaryReader): UpdateUserResponse; +} + +export namespace UpdateUserResponse { + export type AsObject = { + ref: string, + } +} + +export class DeleteUserRequest extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteUserRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteUserRequest.AsObject; + static toObject(includeInstance: boolean, msg: DeleteUserRequest): DeleteUserRequest.AsObject; + static serializeBinaryToWriter(message: DeleteUserRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteUserRequest; + static deserializeBinaryFromReader(message: DeleteUserRequest, reader: jspb.BinaryReader): DeleteUserRequest; +} + +export namespace DeleteUserRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteUserResponse extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteUserResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteUserResponse.AsObject; + static toObject(includeInstance: boolean, msg: DeleteUserResponse): DeleteUserResponse.AsObject; + static serializeBinaryToWriter(message: DeleteUserResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteUserResponse; + static deserializeBinaryFromReader(message: DeleteUserResponse, reader: jspb.BinaryReader): DeleteUserResponse; +} + +export namespace DeleteUserResponse { + export type AsObject = { + ref: string, + } +} + +export class SendVerificationCodeRequest extends jspb.Message { + getContactType(): ContactType; + setContactType(value: ContactType): SendVerificationCodeRequest; + + getValue(): string; + setValue(value: string): SendVerificationCodeRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): SendVerificationCodeRequest.AsObject; + static toObject(includeInstance: boolean, msg: SendVerificationCodeRequest): SendVerificationCodeRequest.AsObject; + static serializeBinaryToWriter(message: SendVerificationCodeRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): SendVerificationCodeRequest; + static deserializeBinaryFromReader(message: SendVerificationCodeRequest, reader: jspb.BinaryReader): SendVerificationCodeRequest; +} + +export namespace SendVerificationCodeRequest { + export type AsObject = { + contactType: ContactType, + value: string, + } +} + +export class VerifyCodeRequest extends jspb.Message { + getUsername(): string; + setUsername(value: string): VerifyCodeRequest; + + getContactType(): ContactType; + setContactType(value: ContactType): VerifyCodeRequest; + + getValue(): string; + setValue(value: string): VerifyCodeRequest; + + getVerificationCode(): string; + setVerificationCode(value: string): VerifyCodeRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): VerifyCodeRequest.AsObject; + static toObject(includeInstance: boolean, msg: VerifyCodeRequest): VerifyCodeRequest.AsObject; + static serializeBinaryToWriter(message: VerifyCodeRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): VerifyCodeRequest; + static deserializeBinaryFromReader(message: VerifyCodeRequest, reader: jspb.BinaryReader): VerifyCodeRequest; +} + +export namespace VerifyCodeRequest { + export type AsObject = { + username: string, + contactType: ContactType, + value: string, + verificationCode: string, + } +} + +export class CreateApiKeyRequest extends jspb.Message { + getRole(): string; + setRole(value: string): CreateApiKeyRequest; + + getExpiresAt(): number; + setExpiresAt(value: number): CreateApiKeyRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateApiKeyRequest.AsObject; + static toObject(includeInstance: boolean, msg: CreateApiKeyRequest): CreateApiKeyRequest.AsObject; + static serializeBinaryToWriter(message: CreateApiKeyRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateApiKeyRequest; + static deserializeBinaryFromReader(message: CreateApiKeyRequest, reader: jspb.BinaryReader): CreateApiKeyRequest; +} + +export namespace CreateApiKeyRequest { + export type AsObject = { + role: string, + expiresAt: number, + } +} + +export class CreateApiKeyResponse extends jspb.Message { + getRef(): string; + setRef(value: string): CreateApiKeyResponse; + + getAccessKeyId(): string; + setAccessKeyId(value: string): CreateApiKeyResponse; + + getAccessKeySecret(): string; + setAccessKeySecret(value: string): CreateApiKeyResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateApiKeyResponse.AsObject; + static toObject(includeInstance: boolean, msg: CreateApiKeyResponse): CreateApiKeyResponse.AsObject; + static serializeBinaryToWriter(message: CreateApiKeyResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateApiKeyResponse; + static deserializeBinaryFromReader(message: CreateApiKeyResponse, reader: jspb.BinaryReader): CreateApiKeyResponse; +} + +export namespace CreateApiKeyResponse { + export type AsObject = { + ref: string, + accessKeyId: string, + accessKeySecret: string, + } +} + +export class DeleteApiKeyRequest extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteApiKeyRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteApiKeyRequest.AsObject; + static toObject(includeInstance: boolean, msg: DeleteApiKeyRequest): DeleteApiKeyRequest.AsObject; + static serializeBinaryToWriter(message: DeleteApiKeyRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteApiKeyRequest; + static deserializeBinaryFromReader(message: DeleteApiKeyRequest, reader: jspb.BinaryReader): DeleteApiKeyRequest; +} + +export namespace DeleteApiKeyRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteApiKeyResponse extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteApiKeyResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteApiKeyResponse.AsObject; + static toObject(includeInstance: boolean, msg: DeleteApiKeyResponse): DeleteApiKeyResponse.AsObject; + static serializeBinaryToWriter(message: DeleteApiKeyResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteApiKeyResponse; + static deserializeBinaryFromReader(message: DeleteApiKeyResponse, reader: jspb.BinaryReader): DeleteApiKeyResponse; +} + +export namespace DeleteApiKeyResponse { + export type AsObject = { + ref: string, + } +} + +export class ListApiKeysRequest extends jspb.Message { + getPageSize(): number; + setPageSize(value: number): ListApiKeysRequest; + + getPageToken(): string; + setPageToken(value: string): ListApiKeysRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListApiKeysRequest.AsObject; + static toObject(includeInstance: boolean, msg: ListApiKeysRequest): ListApiKeysRequest.AsObject; + static serializeBinaryToWriter(message: ListApiKeysRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListApiKeysRequest; + static deserializeBinaryFromReader(message: ListApiKeysRequest, reader: jspb.BinaryReader): ListApiKeysRequest; +} + +export namespace ListApiKeysRequest { + export type AsObject = { + pageSize: number, + pageToken: string, + } +} + +export class ListApiKeysResponse extends jspb.Message { + getItemsList(): Array; + setItemsList(value: Array): ListApiKeysResponse; + clearItemsList(): ListApiKeysResponse; + addItems(value?: ApiKey, index?: number): ApiKey; + + getNextPageToken(): string; + setNextPageToken(value: string): ListApiKeysResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListApiKeysResponse.AsObject; + static toObject(includeInstance: boolean, msg: ListApiKeysResponse): ListApiKeysResponse.AsObject; + static serializeBinaryToWriter(message: ListApiKeysResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListApiKeysResponse; + static deserializeBinaryFromReader(message: ListApiKeysResponse, reader: jspb.BinaryReader): ListApiKeysResponse; +} + +export namespace ListApiKeysResponse { + export type AsObject = { + itemsList: Array, + nextPageToken: string, + } +} + +export class RegenerateApiKeyRequest extends jspb.Message { + getRef(): string; + setRef(value: string): RegenerateApiKeyRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): RegenerateApiKeyRequest.AsObject; + static toObject(includeInstance: boolean, msg: RegenerateApiKeyRequest): RegenerateApiKeyRequest.AsObject; + static serializeBinaryToWriter(message: RegenerateApiKeyRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): RegenerateApiKeyRequest; + static deserializeBinaryFromReader(message: RegenerateApiKeyRequest, reader: jspb.BinaryReader): RegenerateApiKeyRequest; +} + +export namespace RegenerateApiKeyRequest { + export type AsObject = { + ref: string, + } +} + +export class RegenerateApiKeyResponse extends jspb.Message { + getRef(): string; + setRef(value: string): RegenerateApiKeyResponse; + + getAccessKeyId(): string; + setAccessKeyId(value: string): RegenerateApiKeyResponse; + + getAccessKeySecret(): string; + setAccessKeySecret(value: string): RegenerateApiKeyResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): RegenerateApiKeyResponse.AsObject; + static toObject(includeInstance: boolean, msg: RegenerateApiKeyResponse): RegenerateApiKeyResponse.AsObject; + static serializeBinaryToWriter(message: RegenerateApiKeyResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): RegenerateApiKeyResponse; + static deserializeBinaryFromReader(message: RegenerateApiKeyResponse, reader: jspb.BinaryReader): RegenerateApiKeyResponse; +} + +export namespace RegenerateApiKeyResponse { + export type AsObject = { + ref: string, + accessKeyId: string, + accessKeySecret: string, + } +} + +export class ApiKey extends jspb.Message { + getRef(): string; + setRef(value: string): ApiKey; + + getAccessKeyId(): string; + setAccessKeyId(value: string): ApiKey; + + getRole(): string; + setRole(value: string): ApiKey; + + getExpiresAt(): number; + setExpiresAt(value: number): ApiKey; + + getCreatedAt(): number; + setCreatedAt(value: number): ApiKey; + + getUpdatedAt(): number; + setUpdatedAt(value: number): ApiKey; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ApiKey.AsObject; + static toObject(includeInstance: boolean, msg: ApiKey): ApiKey.AsObject; + static serializeBinaryToWriter(message: ApiKey, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ApiKey; + static deserializeBinaryFromReader(message: ApiKey, reader: jspb.BinaryReader): ApiKey; +} + +export namespace ApiKey { + export type AsObject = { + ref: string, + accessKeyId: string, + role: string, + expiresAt: number, + createdAt: number, + updatedAt: number, + } +} + +export class ExchangeCredentialsRequest extends jspb.Message { + getUsername(): string; + setUsername(value: string): ExchangeCredentialsRequest; + + getPassword(): string; + setPassword(value: string): ExchangeCredentialsRequest; + + getVerificationCode(): string; + setVerificationCode(value: string): ExchangeCredentialsRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ExchangeCredentialsRequest.AsObject; + static toObject(includeInstance: boolean, msg: ExchangeCredentialsRequest): ExchangeCredentialsRequest.AsObject; + static serializeBinaryToWriter(message: ExchangeCredentialsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ExchangeCredentialsRequest; + static deserializeBinaryFromReader(message: ExchangeCredentialsRequest, reader: jspb.BinaryReader): ExchangeCredentialsRequest; +} + +export namespace ExchangeCredentialsRequest { + export type AsObject = { + username: string, + password: string, + verificationCode: string, + } +} + +export class ExchangeCredentialsResponse extends jspb.Message { + getIdToken(): string; + setIdToken(value: string): ExchangeCredentialsResponse; + + getAccessToken(): string; + setAccessToken(value: string): ExchangeCredentialsResponse; + + getRefreshToken(): string; + setRefreshToken(value: string): ExchangeCredentialsResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ExchangeCredentialsResponse.AsObject; + static toObject(includeInstance: boolean, msg: ExchangeCredentialsResponse): ExchangeCredentialsResponse.AsObject; + static serializeBinaryToWriter(message: ExchangeCredentialsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ExchangeCredentialsResponse; + static deserializeBinaryFromReader(message: ExchangeCredentialsResponse, reader: jspb.BinaryReader): ExchangeCredentialsResponse; +} + +export namespace ExchangeCredentialsResponse { + export type AsObject = { + idToken: string, + accessToken: string, + refreshToken: string, + } +} + +export class ExchangeApiKeyRequest extends jspb.Message { + getAccessKeyId(): string; + setAccessKeyId(value: string): ExchangeApiKeyRequest; + + getAccessKeySecret(): string; + setAccessKeySecret(value: string): ExchangeApiKeyRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ExchangeApiKeyRequest.AsObject; + static toObject(includeInstance: boolean, msg: ExchangeApiKeyRequest): ExchangeApiKeyRequest.AsObject; + static serializeBinaryToWriter(message: ExchangeApiKeyRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ExchangeApiKeyRequest; + static deserializeBinaryFromReader(message: ExchangeApiKeyRequest, reader: jspb.BinaryReader): ExchangeApiKeyRequest; +} + +export namespace ExchangeApiKeyRequest { + export type AsObject = { + accessKeyId: string, + accessKeySecret: string, + } +} + +export class ExchangeApiKeyResponse extends jspb.Message { + getIdToken(): string; + setIdToken(value: string): ExchangeApiKeyResponse; + + getAccessToken(): string; + setAccessToken(value: string): ExchangeApiKeyResponse; + + getRefreshToken(): string; + setRefreshToken(value: string): ExchangeApiKeyResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ExchangeApiKeyResponse.AsObject; + static toObject(includeInstance: boolean, msg: ExchangeApiKeyResponse): ExchangeApiKeyResponse.AsObject; + static serializeBinaryToWriter(message: ExchangeApiKeyResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ExchangeApiKeyResponse; + static deserializeBinaryFromReader(message: ExchangeApiKeyResponse, reader: jspb.BinaryReader): ExchangeApiKeyResponse; +} + +export namespace ExchangeApiKeyResponse { + export type AsObject = { + idToken: string, + accessToken: string, + refreshToken: string, + } +} + +export class ExchangeOauth2CodeRequest extends jspb.Message { + getProvider(): ExchangeOauth2CodeRequest.Oauth2Provider; + setProvider(value: ExchangeOauth2CodeRequest.Oauth2Provider): ExchangeOauth2CodeRequest; + + getUsername(): string; + setUsername(value: string): ExchangeOauth2CodeRequest; + + getCode(): string; + setCode(value: string): ExchangeOauth2CodeRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ExchangeOauth2CodeRequest.AsObject; + static toObject(includeInstance: boolean, msg: ExchangeOauth2CodeRequest): ExchangeOauth2CodeRequest.AsObject; + static serializeBinaryToWriter(message: ExchangeOauth2CodeRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ExchangeOauth2CodeRequest; + static deserializeBinaryFromReader(message: ExchangeOauth2CodeRequest, reader: jspb.BinaryReader): ExchangeOauth2CodeRequest; +} + +export namespace ExchangeOauth2CodeRequest { + export type AsObject = { + provider: ExchangeOauth2CodeRequest.Oauth2Provider, + username: string, + code: string, + } + + export enum Oauth2Provider { + GITHUB = 0, + } +} + +export class ExchangeOauth2CodeResponse extends jspb.Message { + getIdToken(): string; + setIdToken(value: string): ExchangeOauth2CodeResponse; + + getAccessToken(): string; + setAccessToken(value: string): ExchangeOauth2CodeResponse; + + getRefreshToken(): string; + setRefreshToken(value: string): ExchangeOauth2CodeResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ExchangeOauth2CodeResponse.AsObject; + static toObject(includeInstance: boolean, msg: ExchangeOauth2CodeResponse): ExchangeOauth2CodeResponse.AsObject; + static serializeBinaryToWriter(message: ExchangeOauth2CodeResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ExchangeOauth2CodeResponse; + static deserializeBinaryFromReader(message: ExchangeOauth2CodeResponse, reader: jspb.BinaryReader): ExchangeOauth2CodeResponse; +} + +export namespace ExchangeOauth2CodeResponse { + export type AsObject = { + idToken: string, + accessToken: string, + refreshToken: string, + } +} + +export class ExchangeRefreshTokenRequest extends jspb.Message { + getRefreshToken(): string; + setRefreshToken(value: string): ExchangeRefreshTokenRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ExchangeRefreshTokenRequest.AsObject; + static toObject(includeInstance: boolean, msg: ExchangeRefreshTokenRequest): ExchangeRefreshTokenRequest.AsObject; + static serializeBinaryToWriter(message: ExchangeRefreshTokenRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ExchangeRefreshTokenRequest; + static deserializeBinaryFromReader(message: ExchangeRefreshTokenRequest, reader: jspb.BinaryReader): ExchangeRefreshTokenRequest; +} + +export namespace ExchangeRefreshTokenRequest { + export type AsObject = { + refreshToken: string, + } +} + +export class ExchangeRefreshTokenResponse extends jspb.Message { + getIdToken(): string; + setIdToken(value: string): ExchangeRefreshTokenResponse; + + getAccessToken(): string; + setAccessToken(value: string): ExchangeRefreshTokenResponse; + + getRefreshToken(): string; + setRefreshToken(value: string): ExchangeRefreshTokenResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ExchangeRefreshTokenResponse.AsObject; + static toObject(includeInstance: boolean, msg: ExchangeRefreshTokenResponse): ExchangeRefreshTokenResponse.AsObject; + static serializeBinaryToWriter(message: ExchangeRefreshTokenResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ExchangeRefreshTokenResponse; + static deserializeBinaryFromReader(message: ExchangeRefreshTokenResponse, reader: jspb.BinaryReader): ExchangeRefreshTokenResponse; +} + +export namespace ExchangeRefreshTokenResponse { + export type AsObject = { + idToken: string, + accessToken: string, + refreshToken: string, + } +} + +export class RevokeTokenRequest extends jspb.Message { + getToken(): string; + setToken(value: string): RevokeTokenRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): RevokeTokenRequest.AsObject; + static toObject(includeInstance: boolean, msg: RevokeTokenRequest): RevokeTokenRequest.AsObject; + static serializeBinaryToWriter(message: RevokeTokenRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): RevokeTokenRequest; + static deserializeBinaryFromReader(message: RevokeTokenRequest, reader: jspb.BinaryReader): RevokeTokenRequest; +} + +export namespace RevokeTokenRequest { + export type AsObject = { + token: string, + } +} + +export class RevokeTokenResponse extends jspb.Message { + getToken(): string; + setToken(value: string): RevokeTokenResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): RevokeTokenResponse.AsObject; + static toObject(includeInstance: boolean, msg: RevokeTokenResponse): RevokeTokenResponse.AsObject; + static serializeBinaryToWriter(message: RevokeTokenResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): RevokeTokenResponse; + static deserializeBinaryFromReader(message: RevokeTokenResponse, reader: jspb.BinaryReader): RevokeTokenResponse; +} + +export namespace RevokeTokenResponse { + export type AsObject = { + token: string, + } +} + +export class GetPublicKeyResponse extends jspb.Message { + getPublicKey(): string; + setPublicKey(value: string): GetPublicKeyResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetPublicKeyResponse.AsObject; + static toObject(includeInstance: boolean, msg: GetPublicKeyResponse): GetPublicKeyResponse.AsObject; + static serializeBinaryToWriter(message: GetPublicKeyResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetPublicKeyResponse; + static deserializeBinaryFromReader(message: GetPublicKeyResponse, reader: jspb.BinaryReader): GetPublicKeyResponse; +} + +export namespace GetPublicKeyResponse { + export type AsObject = { + publicKey: string, + } +} + +export enum ContactType { + EMAIL = 0, + PHONE = 1, +} diff --git a/mods/sdk/src/generated/web/identity_pb.js b/mods/sdk/src/generated/web/identity_pb.js new file mode 100644 index 000000000..67557443e --- /dev/null +++ b/mods/sdk/src/generated/web/identity_pb.js @@ -0,0 +1,8589 @@ +// source: identity.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js'); +goog.object.extend(proto, google_protobuf_empty_pb); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ApiKey', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ContactType', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.CreateApiKeyRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.CreateApiKeyResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.CreateUserRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.CreateUserResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.CreateWorkspaceRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.CreateWorkspaceResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.DeleteApiKeyRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.DeleteApiKeyResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.DeleteUserRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.DeleteUserResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.Oauth2Provider', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.GetPublicKeyResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.GetUserRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.GetWorkspaceRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ListApiKeysRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ListApiKeysResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ListWorkspacesRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ListWorkspacesResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.RevokeTokenRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.RevokeTokenResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.SendVerificationCodeRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.UpdateUserRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.UpdateUserResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.User', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.VerifyCodeRequest', null, global); +goog.exportSymbol('proto.fonoster.identity.v1beta2.Workspace', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.Workspace = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.Workspace, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.Workspace.displayName = 'proto.fonoster.identity.v1beta2.Workspace'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.CreateWorkspaceRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.displayName = 'proto.fonoster.identity.v1beta2.CreateWorkspaceRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.CreateWorkspaceResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.displayName = 'proto.fonoster.identity.v1beta2.CreateWorkspaceResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.displayName = 'proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.displayName = 'proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.GetWorkspaceRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.GetWorkspaceRequest.displayName = 'proto.fonoster.identity.v1beta2.GetWorkspaceRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ListWorkspacesRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ListWorkspacesRequest.displayName = 'proto.fonoster.identity.v1beta2.ListWorkspacesRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.identity.v1beta2.ListWorkspacesResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ListWorkspacesResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ListWorkspacesResponse.displayName = 'proto.fonoster.identity.v1beta2.ListWorkspacesResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.displayName = 'proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.displayName = 'proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.displayName = 'proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.displayName = 'proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.displayName = 'proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.displayName = 'proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.displayName = 'proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.displayName = 'proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.CreateUserRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.CreateUserRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.CreateUserRequest.displayName = 'proto.fonoster.identity.v1beta2.CreateUserRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.CreateUserResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.CreateUserResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.CreateUserResponse.displayName = 'proto.fonoster.identity.v1beta2.CreateUserResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.GetUserRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.GetUserRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.GetUserRequest.displayName = 'proto.fonoster.identity.v1beta2.GetUserRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.User = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.User, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.User.displayName = 'proto.fonoster.identity.v1beta2.User'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.UpdateUserRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.UpdateUserRequest.displayName = 'proto.fonoster.identity.v1beta2.UpdateUserRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.UpdateUserResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.UpdateUserResponse.displayName = 'proto.fonoster.identity.v1beta2.UpdateUserResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.DeleteUserRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.DeleteUserRequest.displayName = 'proto.fonoster.identity.v1beta2.DeleteUserRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.DeleteUserResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.DeleteUserResponse.displayName = 'proto.fonoster.identity.v1beta2.DeleteUserResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.SendVerificationCodeRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.displayName = 'proto.fonoster.identity.v1beta2.SendVerificationCodeRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.VerifyCodeRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.VerifyCodeRequest.displayName = 'proto.fonoster.identity.v1beta2.VerifyCodeRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.CreateApiKeyRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.CreateApiKeyRequest.displayName = 'proto.fonoster.identity.v1beta2.CreateApiKeyRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.CreateApiKeyResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.CreateApiKeyResponse.displayName = 'proto.fonoster.identity.v1beta2.CreateApiKeyResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.DeleteApiKeyRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.displayName = 'proto.fonoster.identity.v1beta2.DeleteApiKeyRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.DeleteApiKeyResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.displayName = 'proto.fonoster.identity.v1beta2.DeleteApiKeyResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ListApiKeysRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ListApiKeysRequest.displayName = 'proto.fonoster.identity.v1beta2.ListApiKeysRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.identity.v1beta2.ListApiKeysResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ListApiKeysResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ListApiKeysResponse.displayName = 'proto.fonoster.identity.v1beta2.ListApiKeysResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.displayName = 'proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.displayName = 'proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ApiKey = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ApiKey, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ApiKey.displayName = 'proto.fonoster.identity.v1beta2.ApiKey'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.displayName = 'proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.displayName = 'proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.displayName = 'proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.displayName = 'proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.displayName = 'proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.displayName = 'proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.displayName = 'proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.displayName = 'proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.RevokeTokenRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.RevokeTokenRequest.displayName = 'proto.fonoster.identity.v1beta2.RevokeTokenRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.RevokeTokenResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.RevokeTokenResponse.displayName = 'proto.fonoster.identity.v1beta2.RevokeTokenResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.identity.v1beta2.GetPublicKeyResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.identity.v1beta2.GetPublicKeyResponse.displayName = 'proto.fonoster.identity.v1beta2.GetPublicKeyResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.Workspace.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.Workspace} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.Workspace.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + ownerRef: jspb.Message.getFieldWithDefault(msg, 3, ""), + accessKeyId: jspb.Message.getFieldWithDefault(msg, 4, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 5, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 6, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.Workspace} + */ +proto.fonoster.identity.v1beta2.Workspace.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.Workspace; + return proto.fonoster.identity.v1beta2.Workspace.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.Workspace} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.Workspace} + */ +proto.fonoster.identity.v1beta2.Workspace.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setOwnerRef(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeyId(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.Workspace.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.Workspace} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.Workspace.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getOwnerRef(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAccessKeyId(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.Workspace} returns this + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.Workspace} returns this + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string owner_ref = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.getOwnerRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.Workspace} returns this + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.setOwnerRef = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string access_key_id = 4; + * @return {string} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.getAccessKeyId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.Workspace} returns this + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.setAccessKeyId = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional int32 created_at = 5; + * @return {number} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.Workspace} returns this + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional int32 updated_at = 6; + * @return {number} + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.Workspace} returns this + */ +proto.fonoster.identity.v1beta2.Workspace.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.CreateWorkspaceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.CreateWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.CreateWorkspaceRequest; + return proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.CreateWorkspaceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.CreateWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.CreateWorkspaceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.CreateWorkspaceResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.CreateWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.CreateWorkspaceResponse; + return proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.CreateWorkspaceResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.CreateWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.CreateWorkspaceResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateWorkspaceResponse} returns this + */ +proto.fonoster.identity.v1beta2.CreateWorkspaceResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest; + return proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse; + return proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse} returns this + */ +proto.fonoster.identity.v1beta2.DeleteWorkspaceResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.GetWorkspaceRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.GetWorkspaceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.GetWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.GetWorkspaceRequest; + return proto.fonoster.identity.v1beta2.GetWorkspaceRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.GetWorkspaceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.GetWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.GetWorkspaceRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.GetWorkspaceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.GetWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.GetWorkspaceRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ListWorkspacesRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageToken: jspb.Message.getFieldWithDefault(msg, 1, ""), + pageSize: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ListWorkspacesRequest; + return proto.fonoster.identity.v1beta2.ListWorkspacesRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + case 2: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ListWorkspacesRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 2, + f + ); + } +}; + + +/** + * optional string page_token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} returns this + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional int32 page_size = 2; + * @return {number} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesRequest} returns this + */ +proto.fonoster.identity.v1beta2.ListWorkspacesRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ListWorkspacesResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.identity.v1beta2.Workspace.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ListWorkspacesResponse; + return proto.fonoster.identity.v1beta2.ListWorkspacesResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.identity.v1beta2.Workspace; + reader.readMessage(value,proto.fonoster.identity.v1beta2.Workspace.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ListWorkspacesResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.identity.v1beta2.Workspace.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Workspace items = 1; + * @return {!Array} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.identity.v1beta2.Workspace, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} returns this +*/ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.identity.v1beta2.Workspace=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.identity.v1beta2.Workspace} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.identity.v1beta2.Workspace, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} returns this + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ListWorkspacesResponse} returns this + */ +proto.fonoster.identity.v1beta2.ListWorkspacesResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest; + return proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse; + return proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse} returns this + */ +proto.fonoster.identity.v1beta2.UpdateWorkspaceResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + email: jspb.Message.getFieldWithDefault(msg, 1, ""), + role: jspb.Message.getFieldWithDefault(msg, 2, ""), + name: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest; + return proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setEmail(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setRole(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getEmail(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getRole(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string email = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.getEmail = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.setEmail = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string role = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.getRole = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.setRole = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string name = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.toObject = function(includeInstance, msg) { + var f, obj = { + userRef: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse; + return proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.prototype.getUserRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse} returns this + */ +proto.fonoster.identity.v1beta2.InviteUserToWorkspaceResponse.prototype.setUserRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.toObject = function(includeInstance, msg) { + var f, obj = { + userRef: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest; + return proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.prototype.getUserRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest} returns this + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceRequest.prototype.setUserRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.toObject = function(includeInstance, msg) { + var f, obj = { + userRef: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse; + return proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.prototype.getUserRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse} returns this + */ +proto.fonoster.identity.v1beta2.RemoveUserFromWorkspaceResponse.prototype.setUserRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.toObject = function(includeInstance, msg) { + var f, obj = { + userRef: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest; + return proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.prototype.getUserRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest} returns this + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationRequest.prototype.setUserRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.toObject = function(includeInstance, msg) { + var f, obj = { + userRef: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse; + return proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUserRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUserRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string user_ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.prototype.getUserRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse} returns this + */ +proto.fonoster.identity.v1beta2.ResendWorkspaceMembershipInvitationResponse.prototype.setUserRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.CreateUserRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.CreateUserRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.toObject = function(includeInstance, msg) { + var f, obj = { + email: jspb.Message.getFieldWithDefault(msg, 1, ""), + password: jspb.Message.getFieldWithDefault(msg, 2, ""), + name: jspb.Message.getFieldWithDefault(msg, 3, ""), + avatar: jspb.Message.getFieldWithDefault(msg, 4, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.CreateUserRequest} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.CreateUserRequest; + return proto.fonoster.identity.v1beta2.CreateUserRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.CreateUserRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.CreateUserRequest} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setEmail(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPassword(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAvatar(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.CreateUserRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.CreateUserRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getEmail(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getPassword(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAvatar(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } +}; + + +/** + * optional string email = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.getEmail = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.setEmail = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string password = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.getPassword = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.setPassword = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string name = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string avatar = 4; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.getAvatar = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateUserRequest.prototype.setAvatar = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.CreateUserResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.CreateUserResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.CreateUserResponse} + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.CreateUserResponse; + return proto.fonoster.identity.v1beta2.CreateUserResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.CreateUserResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.CreateUserResponse} + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.CreateUserResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.CreateUserResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateUserResponse} returns this + */ +proto.fonoster.identity.v1beta2.CreateUserResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.GetUserRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.GetUserRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.GetUserRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.GetUserRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.GetUserRequest} + */ +proto.fonoster.identity.v1beta2.GetUserRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.GetUserRequest; + return proto.fonoster.identity.v1beta2.GetUserRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.GetUserRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.GetUserRequest} + */ +proto.fonoster.identity.v1beta2.GetUserRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.GetUserRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.GetUserRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.GetUserRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.GetUserRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.GetUserRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.GetUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.GetUserRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.User.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.User.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.User} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.User.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + email: jspb.Message.getFieldWithDefault(msg, 2, ""), + name: jspb.Message.getFieldWithDefault(msg, 3, ""), + avatar: jspb.Message.getFieldWithDefault(msg, 4, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 5, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 6, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.User} + */ +proto.fonoster.identity.v1beta2.User.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.User; + return proto.fonoster.identity.v1beta2.User.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.User} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.User} + */ +proto.fonoster.identity.v1beta2.User.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setEmail(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAvatar(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.User.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.User.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.User} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.User.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getEmail(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAvatar(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.User.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.User} returns this + */ +proto.fonoster.identity.v1beta2.User.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string email = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.User.prototype.getEmail = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.User} returns this + */ +proto.fonoster.identity.v1beta2.User.prototype.setEmail = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string name = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.User.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.User} returns this + */ +proto.fonoster.identity.v1beta2.User.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string avatar = 4; + * @return {string} + */ +proto.fonoster.identity.v1beta2.User.prototype.getAvatar = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.User} returns this + */ +proto.fonoster.identity.v1beta2.User.prototype.setAvatar = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional int32 created_at = 5; + * @return {number} + */ +proto.fonoster.identity.v1beta2.User.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.User} returns this + */ +proto.fonoster.identity.v1beta2.User.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional int32 updated_at = 6; + * @return {number} + */ +proto.fonoster.identity.v1beta2.User.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.User} returns this + */ +proto.fonoster.identity.v1beta2.User.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.UpdateUserRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.UpdateUserRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + password: jspb.Message.getFieldWithDefault(msg, 2, ""), + name: jspb.Message.getFieldWithDefault(msg, 3, ""), + avatar: jspb.Message.getFieldWithDefault(msg, 4, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.UpdateUserRequest} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.UpdateUserRequest; + return proto.fonoster.identity.v1beta2.UpdateUserRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.UpdateUserRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.UpdateUserRequest} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPassword(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAvatar(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.UpdateUserRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.UpdateUserRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getPassword(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAvatar(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string password = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.getPassword = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.setPassword = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string name = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string avatar = 4; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.getAvatar = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.UpdateUserRequest.prototype.setAvatar = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.UpdateUserResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.UpdateUserResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.UpdateUserResponse} + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.UpdateUserResponse; + return proto.fonoster.identity.v1beta2.UpdateUserResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.UpdateUserResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.UpdateUserResponse} + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.UpdateUserResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.UpdateUserResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.UpdateUserResponse} returns this + */ +proto.fonoster.identity.v1beta2.UpdateUserResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.DeleteUserRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.DeleteUserRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.DeleteUserRequest} + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.DeleteUserRequest; + return proto.fonoster.identity.v1beta2.DeleteUserRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.DeleteUserRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.DeleteUserRequest} + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.DeleteUserRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.DeleteUserRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.DeleteUserRequest} returns this + */ +proto.fonoster.identity.v1beta2.DeleteUserRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.DeleteUserResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.DeleteUserResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.DeleteUserResponse} + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.DeleteUserResponse; + return proto.fonoster.identity.v1beta2.DeleteUserResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.DeleteUserResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.DeleteUserResponse} + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.DeleteUserResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.DeleteUserResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.DeleteUserResponse} returns this + */ +proto.fonoster.identity.v1beta2.DeleteUserResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.toObject = function(includeInstance, msg) { + var f, obj = { + contactType: jspb.Message.getFieldWithDefault(msg, 1, 0), + value: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.SendVerificationCodeRequest; + return proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.fonoster.identity.v1beta2.ContactType} */ (reader.readEnum()); + msg.setContactType(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setValue(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getContactType(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getValue(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional ContactType contact_type = 1; + * @return {!proto.fonoster.identity.v1beta2.ContactType} + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.prototype.getContactType = function() { + return /** @type {!proto.fonoster.identity.v1beta2.ContactType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {!proto.fonoster.identity.v1beta2.ContactType} value + * @return {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.prototype.setContactType = function(value) { + return jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string value = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.prototype.getValue = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.SendVerificationCodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.SendVerificationCodeRequest.prototype.setValue = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.VerifyCodeRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.toObject = function(includeInstance, msg) { + var f, obj = { + username: jspb.Message.getFieldWithDefault(msg, 1, ""), + contactType: jspb.Message.getFieldWithDefault(msg, 2, 0), + value: jspb.Message.getFieldWithDefault(msg, 3, ""), + verificationCode: jspb.Message.getFieldWithDefault(msg, 4, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.VerifyCodeRequest; + return proto.fonoster.identity.v1beta2.VerifyCodeRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 2: + var value = /** @type {!proto.fonoster.identity.v1beta2.ContactType} */ (reader.readEnum()); + msg.setContactType(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setValue(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setVerificationCode(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.VerifyCodeRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getContactType(); + if (f !== 0.0) { + writer.writeEnum( + 2, + f + ); + } + f = message.getValue(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getVerificationCode(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } +}; + + +/** + * optional string username = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional ContactType contact_type = 2; + * @return {!proto.fonoster.identity.v1beta2.ContactType} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.getContactType = function() { + return /** @type {!proto.fonoster.identity.v1beta2.ContactType} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {!proto.fonoster.identity.v1beta2.ContactType} value + * @return {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.setContactType = function(value) { + return jspb.Message.setProto3EnumField(this, 2, value); +}; + + +/** + * optional string value = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.getValue = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.setValue = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string verification_code = 4; + * @return {string} + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.getVerificationCode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.VerifyCodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.VerifyCodeRequest.prototype.setVerificationCode = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.CreateApiKeyRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.toObject = function(includeInstance, msg) { + var f, obj = { + role: jspb.Message.getFieldWithDefault(msg, 1, ""), + expiresAt: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.CreateApiKeyRequest; + return proto.fonoster.identity.v1beta2.CreateApiKeyRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRole(value); + break; + case 2: + var value = /** @type {number} */ (reader.readInt32()); + msg.setExpiresAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.CreateApiKeyRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRole(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getExpiresAt(); + if (f !== 0) { + writer.writeInt32( + 2, + f + ); + } +}; + + +/** + * optional string role = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.prototype.getRole = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.prototype.setRole = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional int32 expires_at = 2; + * @return {number} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.prototype.getExpiresAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyRequest} returns this + */ +proto.fonoster.identity.v1beta2.CreateApiKeyRequest.prototype.setExpiresAt = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.CreateApiKeyResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessKeyId: jspb.Message.getFieldWithDefault(msg, 2, ""), + accessKeySecret: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.CreateApiKeyResponse; + return proto.fonoster.identity.v1beta2.CreateApiKeyResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeyId(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeySecret(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.CreateApiKeyResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessKeyId(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAccessKeySecret(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_key_id = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.getAccessKeyId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.setAccessKeyId = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string access_key_secret = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.getAccessKeySecret = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.CreateApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.CreateApiKeyResponse.prototype.setAccessKeySecret = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.DeleteApiKeyRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.DeleteApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.DeleteApiKeyRequest; + return proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.DeleteApiKeyRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.DeleteApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.DeleteApiKeyRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.DeleteApiKeyRequest} returns this + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.DeleteApiKeyResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.DeleteApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.DeleteApiKeyResponse; + return proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.DeleteApiKeyResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.DeleteApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.DeleteApiKeyResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.DeleteApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.DeleteApiKeyResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ListApiKeysRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 3, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ListApiKeysRequest; + return proto.fonoster.identity.v1beta2.ListApiKeysRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 3: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ListApiKeysRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 3, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 3; + * @return {number} + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} returns this + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysRequest} returns this + */ +proto.fonoster.identity.v1beta2.ListApiKeysRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ListApiKeysResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.identity.v1beta2.ApiKey.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ListApiKeysResponse; + return proto.fonoster.identity.v1beta2.ListApiKeysResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.identity.v1beta2.ApiKey; + reader.readMessage(value,proto.fonoster.identity.v1beta2.ApiKey.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ListApiKeysResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.identity.v1beta2.ApiKey.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated ApiKey items = 1; + * @return {!Array} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.identity.v1beta2.ApiKey, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} returns this +*/ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.identity.v1beta2.ApiKey=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.identity.v1beta2.ApiKey} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.identity.v1beta2.ApiKey, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} returns this + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ListApiKeysResponse} returns this + */ +proto.fonoster.identity.v1beta2.ListApiKeysResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest; + return proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest} returns this + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessKeyId: jspb.Message.getFieldWithDefault(msg, 2, ""), + accessKeySecret: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse; + return proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeyId(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeySecret(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessKeyId(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAccessKeySecret(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_key_id = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.getAccessKeyId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.setAccessKeyId = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string access_key_secret = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.getAccessKeySecret = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.RegenerateApiKeyResponse.prototype.setAccessKeySecret = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ApiKey.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ApiKey} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ApiKey.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessKeyId: jspb.Message.getFieldWithDefault(msg, 2, ""), + role: jspb.Message.getFieldWithDefault(msg, 3, ""), + expiresAt: jspb.Message.getFieldWithDefault(msg, 4, 0), + createdAt: jspb.Message.getFieldWithDefault(msg, 5, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 6, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ApiKey} + */ +proto.fonoster.identity.v1beta2.ApiKey.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ApiKey; + return proto.fonoster.identity.v1beta2.ApiKey.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ApiKey} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ApiKey} + */ +proto.fonoster.identity.v1beta2.ApiKey.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeyId(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setRole(value); + break; + case 4: + var value = /** @type {number} */ (reader.readInt32()); + msg.setExpiresAt(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ApiKey.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ApiKey} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ApiKey.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessKeyId(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getRole(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getExpiresAt(); + if (f !== 0) { + writer.writeInt32( + 4, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ApiKey} returns this + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_key_id = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.getAccessKeyId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ApiKey} returns this + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.setAccessKeyId = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string role = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.getRole = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ApiKey} returns this + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.setRole = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional int32 expires_at = 4; + * @return {number} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.getExpiresAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.ApiKey} returns this + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.setExpiresAt = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional int32 created_at = 5; + * @return {number} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.ApiKey} returns this + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional int32 updated_at = 6; + * @return {number} + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.identity.v1beta2.ApiKey} returns this + */ +proto.fonoster.identity.v1beta2.ApiKey.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + username: jspb.Message.getFieldWithDefault(msg, 1, ""), + password: jspb.Message.getFieldWithDefault(msg, 2, ""), + verificationCode: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest; + return proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPassword(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setVerificationCode(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getPassword(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getVerificationCode(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string username = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string password = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.getPassword = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.setPassword = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string verification_code = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.getVerificationCode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsRequest.prototype.setVerificationCode = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + idToken: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessToken: jspb.Message.getFieldWithDefault(msg, 2, ""), + refreshToken: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse; + return proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setIdToken(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessToken(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setRefreshToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getRefreshToken(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string id_token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.getIdToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.setIdToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.getAccessToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.setAccessToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string refresh_token = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.getRefreshToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeCredentialsResponse.prototype.setRefreshToken = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.toObject = function(includeInstance, msg) { + var f, obj = { + accessKeyId: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessKeySecret: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest; + return proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeyId(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessKeySecret(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccessKeyId(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessKeySecret(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional string access_key_id = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.prototype.getAccessKeyId = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.prototype.setAccessKeyId = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_key_secret = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.prototype.getAccessKeySecret = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyRequest.prototype.setAccessKeySecret = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.toObject = function(includeInstance, msg) { + var f, obj = { + idToken: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessToken: jspb.Message.getFieldWithDefault(msg, 2, ""), + refreshToken: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse; + return proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setIdToken(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessToken(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setRefreshToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getRefreshToken(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string id_token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.getIdToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.setIdToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.getAccessToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.setAccessToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string refresh_token = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.getRefreshToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeApiKeyResponse.prototype.setRefreshToken = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.toObject = function(includeInstance, msg) { + var f, obj = { + provider: jspb.Message.getFieldWithDefault(msg, 1, 0), + username: jspb.Message.getFieldWithDefault(msg, 2, ""), + code: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest; + return proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.Oauth2Provider} */ (reader.readEnum()); + msg.setProvider(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setCode(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getProvider(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getCode(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.Oauth2Provider = { + GITHUB: 0 +}; + +/** + * optional Oauth2Provider provider = 1; + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.Oauth2Provider} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.getProvider = function() { + return /** @type {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.Oauth2Provider} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.Oauth2Provider} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.setProvider = function(value) { + return jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string username = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string code = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.getCode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeRequest.prototype.setCode = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.toObject = function(includeInstance, msg) { + var f, obj = { + idToken: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessToken: jspb.Message.getFieldWithDefault(msg, 2, ""), + refreshToken: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse; + return proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setIdToken(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessToken(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setRefreshToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getRefreshToken(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string id_token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.getIdToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.setIdToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.getAccessToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.setAccessToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string refresh_token = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.getRefreshToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeOauth2CodeResponse.prototype.setRefreshToken = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.toObject = function(includeInstance, msg) { + var f, obj = { + refreshToken: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest; + return proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRefreshToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRefreshToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string refresh_token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.prototype.getRefreshToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenRequest.prototype.setRefreshToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.toObject = function(includeInstance, msg) { + var f, obj = { + idToken: jspb.Message.getFieldWithDefault(msg, 1, ""), + accessToken: jspb.Message.getFieldWithDefault(msg, 2, ""), + refreshToken: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse; + return proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setIdToken(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessToken(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setRefreshToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getIdToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAccessToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getRefreshToken(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string id_token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.getIdToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.setIdToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string access_token = 2; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.getAccessToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.setAccessToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string refresh_token = 3; + * @return {string} + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.getRefreshToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse} returns this + */ +proto.fonoster.identity.v1beta2.ExchangeRefreshTokenResponse.prototype.setRefreshToken = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.RevokeTokenRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.RevokeTokenRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.toObject = function(includeInstance, msg) { + var f, obj = { + token: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.RevokeTokenRequest} + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.RevokeTokenRequest; + return proto.fonoster.identity.v1beta2.RevokeTokenRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.RevokeTokenRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.RevokeTokenRequest} + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.RevokeTokenRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.RevokeTokenRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.prototype.getToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RevokeTokenRequest} returns this + */ +proto.fonoster.identity.v1beta2.RevokeTokenRequest.prototype.setToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.RevokeTokenResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.RevokeTokenResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.toObject = function(includeInstance, msg) { + var f, obj = { + token: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.RevokeTokenResponse} + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.RevokeTokenResponse; + return proto.fonoster.identity.v1beta2.RevokeTokenResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.RevokeTokenResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.RevokeTokenResponse} + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.RevokeTokenResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.RevokeTokenResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string token = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.prototype.getToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.RevokeTokenResponse} returns this + */ +proto.fonoster.identity.v1beta2.RevokeTokenResponse.prototype.setToken = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.identity.v1beta2.GetPublicKeyResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.identity.v1beta2.GetPublicKeyResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.toObject = function(includeInstance, msg) { + var f, obj = { + publicKey: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.identity.v1beta2.GetPublicKeyResponse} + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.identity.v1beta2.GetPublicKeyResponse; + return proto.fonoster.identity.v1beta2.GetPublicKeyResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.identity.v1beta2.GetPublicKeyResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.identity.v1beta2.GetPublicKeyResponse} + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setPublicKey(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.identity.v1beta2.GetPublicKeyResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.identity.v1beta2.GetPublicKeyResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPublicKey(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string public_key = 1; + * @return {string} + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.prototype.getPublicKey = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.identity.v1beta2.GetPublicKeyResponse} returns this + */ +proto.fonoster.identity.v1beta2.GetPublicKeyResponse.prototype.setPublicKey = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * @enum {number} + */ +proto.fonoster.identity.v1beta2.ContactType = { + EMAIL: 0, + PHONE: 1 +}; + +goog.object.extend(exports, proto.fonoster.identity.v1beta2); diff --git a/mods/sdk/src/generated/web/numbers_pb.d.ts b/mods/sdk/src/generated/web/numbers_pb.d.ts new file mode 100644 index 000000000..ef27b97fa --- /dev/null +++ b/mods/sdk/src/generated/web/numbers_pb.d.ts @@ -0,0 +1,327 @@ +import * as jspb from 'google-protobuf' + + + +export class Number extends jspb.Message { + getRef(): string; + setRef(value: string): Number; + + getName(): string; + setName(value: string): Number; + + getTelUrl(): string; + setTelUrl(value: string): Number; + + getCity(): string; + setCity(value: string): Number; + + getCountry(): string; + setCountry(value: string): Number; + + getCountryIsoCode(): string; + setCountryIsoCode(value: string): Number; + + getCreatedAt(): number; + setCreatedAt(value: number): Number; + + getUpdatedAt(): number; + setUpdatedAt(value: number): Number; + + getTrunk(): Number.Trunk | undefined; + setTrunk(value?: Number.Trunk): Number; + hasTrunk(): boolean; + clearTrunk(): Number; + + getAgentAor(): string; + setAgentAor(value: string): Number; + + getAppRef(): string; + setAppRef(value: string): Number; + + getIngressHandlerCase(): Number.IngressHandlerCase; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Number.AsObject; + static toObject(includeInstance: boolean, msg: Number): Number.AsObject; + static serializeBinaryToWriter(message: Number, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Number; + static deserializeBinaryFromReader(message: Number, reader: jspb.BinaryReader): Number; +} + +export namespace Number { + export type AsObject = { + ref: string, + name: string, + telUrl: string, + city: string, + country: string, + countryIsoCode: string, + createdAt: number, + updatedAt: number, + trunk?: Number.Trunk.AsObject, + agentAor: string, + appRef: string, + } + + export class Trunk extends jspb.Message { + getRef(): string; + setRef(value: string): Trunk; + + getName(): string; + setName(value: string): Trunk; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Trunk.AsObject; + static toObject(includeInstance: boolean, msg: Trunk): Trunk.AsObject; + static serializeBinaryToWriter(message: Trunk, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Trunk; + static deserializeBinaryFromReader(message: Trunk, reader: jspb.BinaryReader): Trunk; + } + + export namespace Trunk { + export type AsObject = { + ref: string, + name: string, + } + } + + + export enum IngressHandlerCase { + INGRESS_HANDLER_NOT_SET = 0, + AGENT_AOR = 10, + APP_REF = 11, + } +} + +export class CreateNumberRequest extends jspb.Message { + getName(): string; + setName(value: string): CreateNumberRequest; + + getTelUrl(): string; + setTelUrl(value: string): CreateNumberRequest; + + getCity(): string; + setCity(value: string): CreateNumberRequest; + + getCountry(): string; + setCountry(value: string): CreateNumberRequest; + + getCountryIsoCode(): string; + setCountryIsoCode(value: string): CreateNumberRequest; + + getTrunkRef(): string; + setTrunkRef(value: string): CreateNumberRequest; + + getAgentAor(): string; + setAgentAor(value: string): CreateNumberRequest; + + getAppRef(): string; + setAppRef(value: string): CreateNumberRequest; + + getIngressHandlerCase(): CreateNumberRequest.IngressHandlerCase; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateNumberRequest.AsObject; + static toObject(includeInstance: boolean, msg: CreateNumberRequest): CreateNumberRequest.AsObject; + static serializeBinaryToWriter(message: CreateNumberRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateNumberRequest; + static deserializeBinaryFromReader(message: CreateNumberRequest, reader: jspb.BinaryReader): CreateNumberRequest; +} + +export namespace CreateNumberRequest { + export type AsObject = { + name: string, + telUrl: string, + city: string, + country: string, + countryIsoCode: string, + trunkRef: string, + agentAor: string, + appRef: string, + } + + export enum IngressHandlerCase { + INGRESS_HANDLER_NOT_SET = 0, + AGENT_AOR = 7, + APP_REF = 8, + } +} + +export class CreateNumberResponse extends jspb.Message { + getRef(): string; + setRef(value: string): CreateNumberResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateNumberResponse.AsObject; + static toObject(includeInstance: boolean, msg: CreateNumberResponse): CreateNumberResponse.AsObject; + static serializeBinaryToWriter(message: CreateNumberResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateNumberResponse; + static deserializeBinaryFromReader(message: CreateNumberResponse, reader: jspb.BinaryReader): CreateNumberResponse; +} + +export namespace CreateNumberResponse { + export type AsObject = { + ref: string, + } +} + +export class UpdateNumberRequest extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateNumberRequest; + + getName(): string; + setName(value: string): UpdateNumberRequest; + + getTrunkRef(): string; + setTrunkRef(value: string): UpdateNumberRequest; + + getAgentAor(): string; + setAgentAor(value: string): UpdateNumberRequest; + + getAppRef(): string; + setAppRef(value: string): UpdateNumberRequest; + + getIngressHandlerCase(): UpdateNumberRequest.IngressHandlerCase; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateNumberRequest.AsObject; + static toObject(includeInstance: boolean, msg: UpdateNumberRequest): UpdateNumberRequest.AsObject; + static serializeBinaryToWriter(message: UpdateNumberRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateNumberRequest; + static deserializeBinaryFromReader(message: UpdateNumberRequest, reader: jspb.BinaryReader): UpdateNumberRequest; +} + +export namespace UpdateNumberRequest { + export type AsObject = { + ref: string, + name: string, + trunkRef: string, + agentAor: string, + appRef: string, + } + + export enum IngressHandlerCase { + INGRESS_HANDLER_NOT_SET = 0, + AGENT_AOR = 4, + APP_REF = 5, + } +} + +export class UpdateNumberResponse extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateNumberResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateNumberResponse.AsObject; + static toObject(includeInstance: boolean, msg: UpdateNumberResponse): UpdateNumberResponse.AsObject; + static serializeBinaryToWriter(message: UpdateNumberResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateNumberResponse; + static deserializeBinaryFromReader(message: UpdateNumberResponse, reader: jspb.BinaryReader): UpdateNumberResponse; +} + +export namespace UpdateNumberResponse { + export type AsObject = { + ref: string, + } +} + +export class GetNumberRequest extends jspb.Message { + getRef(): string; + setRef(value: string): GetNumberRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetNumberRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetNumberRequest): GetNumberRequest.AsObject; + static serializeBinaryToWriter(message: GetNumberRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetNumberRequest; + static deserializeBinaryFromReader(message: GetNumberRequest, reader: jspb.BinaryReader): GetNumberRequest; +} + +export namespace GetNumberRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteNumberRequest extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteNumberRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteNumberRequest.AsObject; + static toObject(includeInstance: boolean, msg: DeleteNumberRequest): DeleteNumberRequest.AsObject; + static serializeBinaryToWriter(message: DeleteNumberRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteNumberRequest; + static deserializeBinaryFromReader(message: DeleteNumberRequest, reader: jspb.BinaryReader): DeleteNumberRequest; +} + +export namespace DeleteNumberRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteNumberResponse extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteNumberResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteNumberResponse.AsObject; + static toObject(includeInstance: boolean, msg: DeleteNumberResponse): DeleteNumberResponse.AsObject; + static serializeBinaryToWriter(message: DeleteNumberResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteNumberResponse; + static deserializeBinaryFromReader(message: DeleteNumberResponse, reader: jspb.BinaryReader): DeleteNumberResponse; +} + +export namespace DeleteNumberResponse { + export type AsObject = { + ref: string, + } +} + +export class ListNumbersRequest extends jspb.Message { + getPageSize(): number; + setPageSize(value: number): ListNumbersRequest; + + getPageToken(): string; + setPageToken(value: string): ListNumbersRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListNumbersRequest.AsObject; + static toObject(includeInstance: boolean, msg: ListNumbersRequest): ListNumbersRequest.AsObject; + static serializeBinaryToWriter(message: ListNumbersRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListNumbersRequest; + static deserializeBinaryFromReader(message: ListNumbersRequest, reader: jspb.BinaryReader): ListNumbersRequest; +} + +export namespace ListNumbersRequest { + export type AsObject = { + pageSize: number, + pageToken: string, + } +} + +export class ListNumbersResponse extends jspb.Message { + getItemsList(): Array; + setItemsList(value: Array): ListNumbersResponse; + clearItemsList(): ListNumbersResponse; + addItems(value?: Number, index?: number): Number; + + getNextPageToken(): string; + setNextPageToken(value: string): ListNumbersResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListNumbersResponse.AsObject; + static toObject(includeInstance: boolean, msg: ListNumbersResponse): ListNumbersResponse.AsObject; + static serializeBinaryToWriter(message: ListNumbersResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListNumbersResponse; + static deserializeBinaryFromReader(message: ListNumbersResponse, reader: jspb.BinaryReader): ListNumbersResponse; +} + +export namespace ListNumbersResponse { + export type AsObject = { + itemsList: Array, + nextPageToken: string, + } +} + diff --git a/mods/sdk/src/generated/web/numbers_pb.js b/mods/sdk/src/generated/web/numbers_pb.js new file mode 100644 index 000000000..f77561dd6 --- /dev/null +++ b/mods/sdk/src/generated/web/numbers_pb.js @@ -0,0 +1,2650 @@ +// source: numbers.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.numbers.v1beta2.CreateNumberRequest', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.CreateNumberRequest.IngressHandlerCase', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.CreateNumberResponse', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.DeleteNumberRequest', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.DeleteNumberResponse', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.GetNumberRequest', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.ListNumbersRequest', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.ListNumbersResponse', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.Number', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.Number.IngressHandlerCase', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.Number.Trunk', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.UpdateNumberRequest', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.UpdateNumberRequest.IngressHandlerCase', null, global); +goog.exportSymbol('proto.fonoster.numbers.v1beta2.UpdateNumberResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.Number = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.fonoster.numbers.v1beta2.Number.oneofGroups_); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.Number, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.Number.displayName = 'proto.fonoster.numbers.v1beta2.Number'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.Number.Trunk = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.Number.Trunk, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.Number.Trunk.displayName = 'proto.fonoster.numbers.v1beta2.Number.Trunk'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.CreateNumberRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.CreateNumberRequest.displayName = 'proto.fonoster.numbers.v1beta2.CreateNumberRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.CreateNumberResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.CreateNumberResponse.displayName = 'proto.fonoster.numbers.v1beta2.CreateNumberResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.UpdateNumberRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.UpdateNumberRequest.displayName = 'proto.fonoster.numbers.v1beta2.UpdateNumberRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.UpdateNumberResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.UpdateNumberResponse.displayName = 'proto.fonoster.numbers.v1beta2.UpdateNumberResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.GetNumberRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.GetNumberRequest.displayName = 'proto.fonoster.numbers.v1beta2.GetNumberRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.DeleteNumberRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.DeleteNumberRequest.displayName = 'proto.fonoster.numbers.v1beta2.DeleteNumberRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.DeleteNumberResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.DeleteNumberResponse.displayName = 'proto.fonoster.numbers.v1beta2.DeleteNumberResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.ListNumbersRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.ListNumbersRequest.displayName = 'proto.fonoster.numbers.v1beta2.ListNumbersRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.numbers.v1beta2.ListNumbersResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.numbers.v1beta2.ListNumbersResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.numbers.v1beta2.ListNumbersResponse.displayName = 'proto.fonoster.numbers.v1beta2.ListNumbersResponse'; +} + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.fonoster.numbers.v1beta2.Number.oneofGroups_ = [[10,11]]; + +/** + * @enum {number} + */ +proto.fonoster.numbers.v1beta2.Number.IngressHandlerCase = { + INGRESS_HANDLER_NOT_SET: 0, + AGENT_AOR: 10, + APP_REF: 11 +}; + +/** + * @return {proto.fonoster.numbers.v1beta2.Number.IngressHandlerCase} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getIngressHandlerCase = function() { + return /** @type {proto.fonoster.numbers.v1beta2.Number.IngressHandlerCase} */(jspb.Message.computeOneofCase(this, proto.fonoster.numbers.v1beta2.Number.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.Number.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.Number} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.Number.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + telUrl: jspb.Message.getFieldWithDefault(msg, 3, ""), + city: jspb.Message.getFieldWithDefault(msg, 4, ""), + country: jspb.Message.getFieldWithDefault(msg, 5, ""), + countryIsoCode: jspb.Message.getFieldWithDefault(msg, 6, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 7, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 8, 0), + trunk: (f = msg.getTrunk()) && proto.fonoster.numbers.v1beta2.Number.Trunk.toObject(includeInstance, f), + agentAor: jspb.Message.getFieldWithDefault(msg, 10, ""), + appRef: jspb.Message.getFieldWithDefault(msg, 11, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.Number} + */ +proto.fonoster.numbers.v1beta2.Number.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.Number; + return proto.fonoster.numbers.v1beta2.Number.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.Number} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.Number} + */ +proto.fonoster.numbers.v1beta2.Number.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setTelUrl(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setCity(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setCountry(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setCountryIsoCode(value); + break; + case 7: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 8: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + case 9: + var value = new proto.fonoster.numbers.v1beta2.Number.Trunk; + reader.readMessage(value,proto.fonoster.numbers.v1beta2.Number.Trunk.deserializeBinaryFromReader); + msg.setTrunk(value); + break; + case 10: + var value = /** @type {string} */ (reader.readString()); + msg.setAgentAor(value); + break; + case 11: + var value = /** @type {string} */ (reader.readString()); + msg.setAppRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.Number.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.Number} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.Number.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getTelUrl(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getCity(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getCountry(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getCountryIsoCode(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 7, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 8, + f + ); + } + f = message.getTrunk(); + if (f != null) { + writer.writeMessage( + 9, + f, + proto.fonoster.numbers.v1beta2.Number.Trunk.serializeBinaryToWriter + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 10)); + if (f != null) { + writer.writeString( + 10, + f + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 11)); + if (f != null) { + writer.writeString( + 11, + f + ); + } +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.Number.Trunk.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.Number.Trunk} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.Number.Trunk} + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.Number.Trunk; + return proto.fonoster.numbers.v1beta2.Number.Trunk.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.Number.Trunk} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.Number.Trunk} + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.Number.Trunk.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.Number.Trunk} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number.Trunk} returns this + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number.Trunk} returns this + */ +proto.fonoster.numbers.v1beta2.Number.Trunk.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string tel_url = 3; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getTelUrl = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setTelUrl = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string city = 4; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getCity = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setCity = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string country = 5; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getCountry = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setCountry = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string country_iso_code = 6; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getCountryIsoCode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setCountryIsoCode = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional int32 created_at = 7; + * @return {number} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 7, value); +}; + + +/** + * optional int32 updated_at = 8; + * @return {number} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 8, value); +}; + + +/** + * optional Trunk trunk = 9; + * @return {?proto.fonoster.numbers.v1beta2.Number.Trunk} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getTrunk = function() { + return /** @type{?proto.fonoster.numbers.v1beta2.Number.Trunk} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.numbers.v1beta2.Number.Trunk, 9)); +}; + + +/** + * @param {?proto.fonoster.numbers.v1beta2.Number.Trunk|undefined} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this +*/ +proto.fonoster.numbers.v1beta2.Number.prototype.setTrunk = function(value) { + return jspb.Message.setWrapperField(this, 9, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.clearTrunk = function() { + return this.setTrunk(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.hasTrunk = function() { + return jspb.Message.getField(this, 9) != null; +}; + + +/** + * optional string agent_aor = 10; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getAgentAor = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setAgentAor = function(value) { + return jspb.Message.setOneofField(this, 10, proto.fonoster.numbers.v1beta2.Number.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.clearAgentAor = function() { + return jspb.Message.setOneofField(this, 10, proto.fonoster.numbers.v1beta2.Number.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.hasAgentAor = function() { + return jspb.Message.getField(this, 10) != null; +}; + + +/** + * optional string app_ref = 11; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.getAppRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.setAppRef = function(value) { + return jspb.Message.setOneofField(this, 11, proto.fonoster.numbers.v1beta2.Number.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.Number} returns this + */ +proto.fonoster.numbers.v1beta2.Number.prototype.clearAppRef = function() { + return jspb.Message.setOneofField(this, 11, proto.fonoster.numbers.v1beta2.Number.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.Number.prototype.hasAppRef = function() { + return jspb.Message.getField(this, 11) != null; +}; + + + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_ = [[7,8]]; + +/** + * @enum {number} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.IngressHandlerCase = { + INGRESS_HANDLER_NOT_SET: 0, + AGENT_AOR: 7, + APP_REF: 8 +}; + +/** + * @return {proto.fonoster.numbers.v1beta2.CreateNumberRequest.IngressHandlerCase} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getIngressHandlerCase = function() { + return /** @type {proto.fonoster.numbers.v1beta2.CreateNumberRequest.IngressHandlerCase} */(jspb.Message.computeOneofCase(this, proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.CreateNumberRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + telUrl: jspb.Message.getFieldWithDefault(msg, 2, ""), + city: jspb.Message.getFieldWithDefault(msg, 3, ""), + country: jspb.Message.getFieldWithDefault(msg, 4, ""), + countryIsoCode: jspb.Message.getFieldWithDefault(msg, 5, ""), + trunkRef: jspb.Message.getFieldWithDefault(msg, 6, ""), + agentAor: jspb.Message.getFieldWithDefault(msg, 7, ""), + appRef: jspb.Message.getFieldWithDefault(msg, 8, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.CreateNumberRequest; + return proto.fonoster.numbers.v1beta2.CreateNumberRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setTelUrl(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setCity(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setCountry(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setCountryIsoCode(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setTrunkRef(value); + break; + case 7: + var value = /** @type {string} */ (reader.readString()); + msg.setAgentAor(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setAppRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.CreateNumberRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getTelUrl(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getCity(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getCountry(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getCountryIsoCode(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getTrunkRef(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 7)); + if (f != null) { + writer.writeString( + 7, + f + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 8)); + if (f != null) { + writer.writeString( + 8, + f + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string tel_url = 2; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getTelUrl = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setTelUrl = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string city = 3; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getCity = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setCity = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string country = 4; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getCountry = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setCountry = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string country_iso_code = 5; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getCountryIsoCode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setCountryIsoCode = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string trunk_ref = 6; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getTrunkRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setTrunkRef = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional string agent_aor = 7; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getAgentAor = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setAgentAor = function(value) { + return jspb.Message.setOneofField(this, 7, proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.clearAgentAor = function() { + return jspb.Message.setOneofField(this, 7, proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.hasAgentAor = function() { + return jspb.Message.getField(this, 7) != null; +}; + + +/** + * optional string app_ref = 8; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.getAppRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.setAppRef = function(value) { + return jspb.Message.setOneofField(this, 8, proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.clearAppRef = function() { + return jspb.Message.setOneofField(this, 8, proto.fonoster.numbers.v1beta2.CreateNumberRequest.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.CreateNumberRequest.prototype.hasAppRef = function() { + return jspb.Message.getField(this, 8) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.CreateNumberResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.CreateNumberResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberResponse} + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.CreateNumberResponse; + return proto.fonoster.numbers.v1beta2.CreateNumberResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.CreateNumberResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberResponse} + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.CreateNumberResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.CreateNumberResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.CreateNumberResponse} returns this + */ +proto.fonoster.numbers.v1beta2.CreateNumberResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_ = [[4,5]]; + +/** + * @enum {number} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.IngressHandlerCase = { + INGRESS_HANDLER_NOT_SET: 0, + AGENT_AOR: 4, + APP_REF: 5 +}; + +/** + * @return {proto.fonoster.numbers.v1beta2.UpdateNumberRequest.IngressHandlerCase} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.getIngressHandlerCase = function() { + return /** @type {proto.fonoster.numbers.v1beta2.UpdateNumberRequest.IngressHandlerCase} */(jspb.Message.computeOneofCase(this, proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.UpdateNumberRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + trunkRef: jspb.Message.getFieldWithDefault(msg, 3, ""), + agentAor: jspb.Message.getFieldWithDefault(msg, 4, ""), + appRef: jspb.Message.getFieldWithDefault(msg, 5, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.UpdateNumberRequest; + return proto.fonoster.numbers.v1beta2.UpdateNumberRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setTrunkRef(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAgentAor(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setAppRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.UpdateNumberRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getTrunkRef(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 4)); + if (f != null) { + writer.writeString( + 4, + f + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 5)); + if (f != null) { + writer.writeString( + 5, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string trunk_ref = 3; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.getTrunkRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.setTrunkRef = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string agent_aor = 4; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.getAgentAor = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.setAgentAor = function(value) { + return jspb.Message.setOneofField(this, 4, proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.clearAgentAor = function() { + return jspb.Message.setOneofField(this, 4, proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.hasAgentAor = function() { + return jspb.Message.getField(this, 4) != null; +}; + + +/** + * optional string app_ref = 5; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.getAppRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.setAppRef = function(value) { + return jspb.Message.setOneofField(this, 5, proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_[0], value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.clearAppRef = function() { + return jspb.Message.setOneofField(this, 5, proto.fonoster.numbers.v1beta2.UpdateNumberRequest.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberRequest.prototype.hasAppRef = function() { + return jspb.Message.getField(this, 5) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.UpdateNumberResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.UpdateNumberResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberResponse} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.UpdateNumberResponse; + return proto.fonoster.numbers.v1beta2.UpdateNumberResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.UpdateNumberResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberResponse} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.UpdateNumberResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.UpdateNumberResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.UpdateNumberResponse} returns this + */ +proto.fonoster.numbers.v1beta2.UpdateNumberResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.GetNumberRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.GetNumberRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.GetNumberRequest} + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.GetNumberRequest; + return proto.fonoster.numbers.v1beta2.GetNumberRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.GetNumberRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.GetNumberRequest} + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.GetNumberRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.GetNumberRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.GetNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.GetNumberRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.DeleteNumberRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.DeleteNumberRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.DeleteNumberRequest} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.DeleteNumberRequest; + return proto.fonoster.numbers.v1beta2.DeleteNumberRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.DeleteNumberRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.DeleteNumberRequest} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.DeleteNumberRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.DeleteNumberRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.DeleteNumberRequest} returns this + */ +proto.fonoster.numbers.v1beta2.DeleteNumberRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.DeleteNumberResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.DeleteNumberResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.DeleteNumberResponse} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.DeleteNumberResponse; + return proto.fonoster.numbers.v1beta2.DeleteNumberResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.DeleteNumberResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.DeleteNumberResponse} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.DeleteNumberResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.DeleteNumberResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.DeleteNumberResponse} returns this + */ +proto.fonoster.numbers.v1beta2.DeleteNumberResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.ListNumbersRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.ListNumbersRequest; + return proto.fonoster.numbers.v1beta2.ListNumbersRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.ListNumbersRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} returns this + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersRequest} returns this + */ +proto.fonoster.numbers.v1beta2.ListNumbersRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.numbers.v1beta2.ListNumbersResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.numbers.v1beta2.Number.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.numbers.v1beta2.ListNumbersResponse; + return proto.fonoster.numbers.v1beta2.ListNumbersResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.numbers.v1beta2.Number; + reader.readMessage(value,proto.fonoster.numbers.v1beta2.Number.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.numbers.v1beta2.ListNumbersResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.numbers.v1beta2.Number.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Number items = 1; + * @return {!Array} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.numbers.v1beta2.Number, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} returns this +*/ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.numbers.v1beta2.Number=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.numbers.v1beta2.Number} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.numbers.v1beta2.Number, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} returns this + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.numbers.v1beta2.ListNumbersResponse} returns this + */ +proto.fonoster.numbers.v1beta2.ListNumbersResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +goog.object.extend(exports, proto.fonoster.numbers.v1beta2); diff --git a/mods/sdk/src/generated/web/secrets_pb.d.ts b/mods/sdk/src/generated/web/secrets_pb.d.ts new file mode 100644 index 000000000..19f9721e9 --- /dev/null +++ b/mods/sdk/src/generated/web/secrets_pb.d.ts @@ -0,0 +1,222 @@ +import * as jspb from 'google-protobuf' + + + +export class Secret extends jspb.Message { + getRef(): string; + setRef(value: string): Secret; + + getName(): string; + setName(value: string): Secret; + + getSecret(): string; + setSecret(value: string): Secret; + + getCreatedAt(): number; + setCreatedAt(value: number): Secret; + + getUpdatedAt(): number; + setUpdatedAt(value: number): Secret; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Secret.AsObject; + static toObject(includeInstance: boolean, msg: Secret): Secret.AsObject; + static serializeBinaryToWriter(message: Secret, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Secret; + static deserializeBinaryFromReader(message: Secret, reader: jspb.BinaryReader): Secret; +} + +export namespace Secret { + export type AsObject = { + ref: string, + name: string, + secret: string, + createdAt: number, + updatedAt: number, + } +} + +export class CreateSecretRequest extends jspb.Message { + getName(): string; + setName(value: string): CreateSecretRequest; + + getSecret(): string; + setSecret(value: string): CreateSecretRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateSecretRequest.AsObject; + static toObject(includeInstance: boolean, msg: CreateSecretRequest): CreateSecretRequest.AsObject; + static serializeBinaryToWriter(message: CreateSecretRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateSecretRequest; + static deserializeBinaryFromReader(message: CreateSecretRequest, reader: jspb.BinaryReader): CreateSecretRequest; +} + +export namespace CreateSecretRequest { + export type AsObject = { + name: string, + secret: string, + } +} + +export class CreateSecretResponse extends jspb.Message { + getRef(): string; + setRef(value: string): CreateSecretResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateSecretResponse.AsObject; + static toObject(includeInstance: boolean, msg: CreateSecretResponse): CreateSecretResponse.AsObject; + static serializeBinaryToWriter(message: CreateSecretResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateSecretResponse; + static deserializeBinaryFromReader(message: CreateSecretResponse, reader: jspb.BinaryReader): CreateSecretResponse; +} + +export namespace CreateSecretResponse { + export type AsObject = { + ref: string, + } +} + +export class UpdateSecretRequest extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateSecretRequest; + + getName(): string; + setName(value: string): UpdateSecretRequest; + + getSecret(): string; + setSecret(value: string): UpdateSecretRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateSecretRequest.AsObject; + static toObject(includeInstance: boolean, msg: UpdateSecretRequest): UpdateSecretRequest.AsObject; + static serializeBinaryToWriter(message: UpdateSecretRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateSecretRequest; + static deserializeBinaryFromReader(message: UpdateSecretRequest, reader: jspb.BinaryReader): UpdateSecretRequest; +} + +export namespace UpdateSecretRequest { + export type AsObject = { + ref: string, + name: string, + secret: string, + } +} + +export class UpdateSecretResponse extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateSecretResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateSecretResponse.AsObject; + static toObject(includeInstance: boolean, msg: UpdateSecretResponse): UpdateSecretResponse.AsObject; + static serializeBinaryToWriter(message: UpdateSecretResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateSecretResponse; + static deserializeBinaryFromReader(message: UpdateSecretResponse, reader: jspb.BinaryReader): UpdateSecretResponse; +} + +export namespace UpdateSecretResponse { + export type AsObject = { + ref: string, + } +} + +export class GetSecretRequest extends jspb.Message { + getRef(): string; + setRef(value: string): GetSecretRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetSecretRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetSecretRequest): GetSecretRequest.AsObject; + static serializeBinaryToWriter(message: GetSecretRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetSecretRequest; + static deserializeBinaryFromReader(message: GetSecretRequest, reader: jspb.BinaryReader): GetSecretRequest; +} + +export namespace GetSecretRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteSecretRequest extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteSecretRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteSecretRequest.AsObject; + static toObject(includeInstance: boolean, msg: DeleteSecretRequest): DeleteSecretRequest.AsObject; + static serializeBinaryToWriter(message: DeleteSecretRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteSecretRequest; + static deserializeBinaryFromReader(message: DeleteSecretRequest, reader: jspb.BinaryReader): DeleteSecretRequest; +} + +export namespace DeleteSecretRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteSecretResponse extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteSecretResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteSecretResponse.AsObject; + static toObject(includeInstance: boolean, msg: DeleteSecretResponse): DeleteSecretResponse.AsObject; + static serializeBinaryToWriter(message: DeleteSecretResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteSecretResponse; + static deserializeBinaryFromReader(message: DeleteSecretResponse, reader: jspb.BinaryReader): DeleteSecretResponse; +} + +export namespace DeleteSecretResponse { + export type AsObject = { + ref: string, + } +} + +export class ListSecretsRequest extends jspb.Message { + getPageSize(): number; + setPageSize(value: number): ListSecretsRequest; + + getPageToken(): string; + setPageToken(value: string): ListSecretsRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListSecretsRequest.AsObject; + static toObject(includeInstance: boolean, msg: ListSecretsRequest): ListSecretsRequest.AsObject; + static serializeBinaryToWriter(message: ListSecretsRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListSecretsRequest; + static deserializeBinaryFromReader(message: ListSecretsRequest, reader: jspb.BinaryReader): ListSecretsRequest; +} + +export namespace ListSecretsRequest { + export type AsObject = { + pageSize: number, + pageToken: string, + } +} + +export class ListSecretsResponse extends jspb.Message { + getItemsList(): Array; + setItemsList(value: Array): ListSecretsResponse; + clearItemsList(): ListSecretsResponse; + addItems(value?: Secret, index?: number): Secret; + + getNextPageToken(): string; + setNextPageToken(value: string): ListSecretsResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListSecretsResponse.AsObject; + static toObject(includeInstance: boolean, msg: ListSecretsResponse): ListSecretsResponse.AsObject; + static serializeBinaryToWriter(message: ListSecretsResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListSecretsResponse; + static deserializeBinaryFromReader(message: ListSecretsResponse, reader: jspb.BinaryReader): ListSecretsResponse; +} + +export namespace ListSecretsResponse { + export type AsObject = { + itemsList: Array, + nextPageToken: string, + } +} + diff --git a/mods/sdk/src/generated/web/secrets_pb.js b/mods/sdk/src/generated/web/secrets_pb.js new file mode 100644 index 000000000..632aeb662 --- /dev/null +++ b/mods/sdk/src/generated/web/secrets_pb.js @@ -0,0 +1,1838 @@ +// source: secrets.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.secrets.v1beta2.CreateSecretRequest', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.CreateSecretResponse', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.DeleteSecretRequest', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.DeleteSecretResponse', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.GetSecretRequest', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.ListSecretsRequest', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.ListSecretsResponse', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.Secret', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.UpdateSecretRequest', null, global); +goog.exportSymbol('proto.fonoster.secrets.v1beta2.UpdateSecretResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.Secret = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.Secret, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.Secret.displayName = 'proto.fonoster.secrets.v1beta2.Secret'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.CreateSecretRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.CreateSecretRequest.displayName = 'proto.fonoster.secrets.v1beta2.CreateSecretRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.CreateSecretResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.CreateSecretResponse.displayName = 'proto.fonoster.secrets.v1beta2.CreateSecretResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.UpdateSecretRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.UpdateSecretRequest.displayName = 'proto.fonoster.secrets.v1beta2.UpdateSecretRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.UpdateSecretResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.UpdateSecretResponse.displayName = 'proto.fonoster.secrets.v1beta2.UpdateSecretResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.GetSecretRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.GetSecretRequest.displayName = 'proto.fonoster.secrets.v1beta2.GetSecretRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.DeleteSecretRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.DeleteSecretRequest.displayName = 'proto.fonoster.secrets.v1beta2.DeleteSecretRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.DeleteSecretResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.DeleteSecretResponse.displayName = 'proto.fonoster.secrets.v1beta2.DeleteSecretResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.ListSecretsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.ListSecretsRequest.displayName = 'proto.fonoster.secrets.v1beta2.ListSecretsRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.secrets.v1beta2.ListSecretsResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.secrets.v1beta2.ListSecretsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.secrets.v1beta2.ListSecretsResponse.displayName = 'proto.fonoster.secrets.v1beta2.ListSecretsResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.Secret.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.Secret} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.Secret.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + secret: jspb.Message.getFieldWithDefault(msg, 3, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 4, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 5, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.Secret} + */ +proto.fonoster.secrets.v1beta2.Secret.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.Secret; + return proto.fonoster.secrets.v1beta2.Secret.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.Secret} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.Secret} + */ +proto.fonoster.secrets.v1beta2.Secret.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setSecret(value); + break; + case 4: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.Secret.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.Secret} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.Secret.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getSecret(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 4, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.Secret} returns this + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.Secret} returns this + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string secret = 3; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.getSecret = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.Secret} returns this + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.setSecret = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional int32 created_at = 4; + * @return {number} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.secrets.v1beta2.Secret} returns this + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 4, value); +}; + + +/** + * optional int32 updated_at = 5; + * @return {number} + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.secrets.v1beta2.Secret} returns this + */ +proto.fonoster.secrets.v1beta2.Secret.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.CreateSecretRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + secret: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.CreateSecretRequest; + return proto.fonoster.secrets.v1beta2.CreateSecretRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setSecret(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.CreateSecretRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getSecret(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string secret = 2; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.prototype.getSecret = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.CreateSecretRequest.prototype.setSecret = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.CreateSecretResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.CreateSecretResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretResponse} + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.CreateSecretResponse; + return proto.fonoster.secrets.v1beta2.CreateSecretResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.CreateSecretResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretResponse} + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.CreateSecretResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.CreateSecretResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.CreateSecretResponse} returns this + */ +proto.fonoster.secrets.v1beta2.CreateSecretResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.UpdateSecretRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + secret: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.UpdateSecretRequest; + return proto.fonoster.secrets.v1beta2.UpdateSecretRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setSecret(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.UpdateSecretRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getSecret(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string secret = 3; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.getSecret = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.UpdateSecretRequest.prototype.setSecret = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.UpdateSecretResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.UpdateSecretResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretResponse} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.UpdateSecretResponse; + return proto.fonoster.secrets.v1beta2.UpdateSecretResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.UpdateSecretResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretResponse} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.UpdateSecretResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.UpdateSecretResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.UpdateSecretResponse} returns this + */ +proto.fonoster.secrets.v1beta2.UpdateSecretResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.GetSecretRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.GetSecretRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.GetSecretRequest} + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.GetSecretRequest; + return proto.fonoster.secrets.v1beta2.GetSecretRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.GetSecretRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.GetSecretRequest} + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.GetSecretRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.GetSecretRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.GetSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.GetSecretRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.DeleteSecretRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.DeleteSecretRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.DeleteSecretRequest} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.DeleteSecretRequest; + return proto.fonoster.secrets.v1beta2.DeleteSecretRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.DeleteSecretRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.DeleteSecretRequest} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.DeleteSecretRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.DeleteSecretRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.DeleteSecretRequest} returns this + */ +proto.fonoster.secrets.v1beta2.DeleteSecretRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.DeleteSecretResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.DeleteSecretResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.DeleteSecretResponse} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.DeleteSecretResponse; + return proto.fonoster.secrets.v1beta2.DeleteSecretResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.DeleteSecretResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.DeleteSecretResponse} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.DeleteSecretResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.DeleteSecretResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.DeleteSecretResponse} returns this + */ +proto.fonoster.secrets.v1beta2.DeleteSecretResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.ListSecretsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.ListSecretsRequest; + return proto.fonoster.secrets.v1beta2.ListSecretsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.ListSecretsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} returns this + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsRequest} returns this + */ +proto.fonoster.secrets.v1beta2.ListSecretsRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.secrets.v1beta2.ListSecretsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.secrets.v1beta2.Secret.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.secrets.v1beta2.ListSecretsResponse; + return proto.fonoster.secrets.v1beta2.ListSecretsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.secrets.v1beta2.Secret; + reader.readMessage(value,proto.fonoster.secrets.v1beta2.Secret.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.secrets.v1beta2.ListSecretsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.secrets.v1beta2.Secret.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Secret items = 1; + * @return {!Array} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.secrets.v1beta2.Secret, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} returns this +*/ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.secrets.v1beta2.Secret=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.secrets.v1beta2.Secret} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.secrets.v1beta2.Secret, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} returns this + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.secrets.v1beta2.ListSecretsResponse} returns this + */ +proto.fonoster.secrets.v1beta2.ListSecretsResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +goog.object.extend(exports, proto.fonoster.secrets.v1beta2); diff --git a/mods/sdk/src/generated/web/trunks_pb.d.ts b/mods/sdk/src/generated/web/trunks_pb.d.ts new file mode 100644 index 000000000..9a93289d9 --- /dev/null +++ b/mods/sdk/src/generated/web/trunks_pb.d.ts @@ -0,0 +1,398 @@ +import * as jspb from 'google-protobuf' + + + +export class TrunkURI extends jspb.Message { + getHost(): string; + setHost(value: string): TrunkURI; + + getPort(): number; + setPort(value: number): TrunkURI; + + getTransport(): string; + setTransport(value: string): TrunkURI; + + getUser(): string; + setUser(value: string): TrunkURI; + + getWeight(): number; + setWeight(value: number): TrunkURI; + + getPriority(): number; + setPriority(value: number): TrunkURI; + + getEnabled(): boolean; + setEnabled(value: boolean): TrunkURI; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): TrunkURI.AsObject; + static toObject(includeInstance: boolean, msg: TrunkURI): TrunkURI.AsObject; + static serializeBinaryToWriter(message: TrunkURI, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): TrunkURI; + static deserializeBinaryFromReader(message: TrunkURI, reader: jspb.BinaryReader): TrunkURI; +} + +export namespace TrunkURI { + export type AsObject = { + host: string, + port: number, + transport: string, + user: string, + weight: number, + priority: number, + enabled: boolean, + } +} + +export class Trunk extends jspb.Message { + getRef(): string; + setRef(value: string): Trunk; + + getName(): string; + setName(value: string): Trunk; + + getSendRegister(): boolean; + setSendRegister(value: boolean): Trunk; + + getInboundUri(): string; + setInboundUri(value: string): Trunk; + + getCreatedAt(): number; + setCreatedAt(value: number): Trunk; + + getUpdatedAt(): number; + setUpdatedAt(value: number): Trunk; + + getAccessControlList(): Trunk.Acl | undefined; + setAccessControlList(value?: Trunk.Acl): Trunk; + hasAccessControlList(): boolean; + clearAccessControlList(): Trunk; + + getInboundCredentials(): Trunk.Credentials | undefined; + setInboundCredentials(value?: Trunk.Credentials): Trunk; + hasInboundCredentials(): boolean; + clearInboundCredentials(): Trunk; + + getOutboundCredentials(): Trunk.Credentials | undefined; + setOutboundCredentials(value?: Trunk.Credentials): Trunk; + hasOutboundCredentials(): boolean; + clearOutboundCredentials(): Trunk; + + getUrisList(): Array; + setUrisList(value: Array): Trunk; + clearUrisList(): Trunk; + addUris(value?: TrunkURI, index?: number): TrunkURI; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Trunk.AsObject; + static toObject(includeInstance: boolean, msg: Trunk): Trunk.AsObject; + static serializeBinaryToWriter(message: Trunk, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Trunk; + static deserializeBinaryFromReader(message: Trunk, reader: jspb.BinaryReader): Trunk; +} + +export namespace Trunk { + export type AsObject = { + ref: string, + name: string, + sendRegister: boolean, + inboundUri: string, + createdAt: number, + updatedAt: number, + accessControlList?: Trunk.Acl.AsObject, + inboundCredentials?: Trunk.Credentials.AsObject, + outboundCredentials?: Trunk.Credentials.AsObject, + urisList: Array, + } + + export class Acl extends jspb.Message { + getRef(): string; + setRef(value: string): Acl; + + getName(): string; + setName(value: string): Acl; + + getAllowList(): Array; + setAllowList(value: Array): Acl; + clearAllowList(): Acl; + addAllow(value: string, index?: number): Acl; + + getDenyList(): Array; + setDenyList(value: Array): Acl; + clearDenyList(): Acl; + addDeny(value: string, index?: number): Acl; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Acl.AsObject; + static toObject(includeInstance: boolean, msg: Acl): Acl.AsObject; + static serializeBinaryToWriter(message: Acl, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Acl; + static deserializeBinaryFromReader(message: Acl, reader: jspb.BinaryReader): Acl; + } + + export namespace Acl { + export type AsObject = { + ref: string, + name: string, + allowList: Array, + denyList: Array, + } + } + + + export class Credentials extends jspb.Message { + getRef(): string; + setRef(value: string): Credentials; + + getName(): string; + setName(value: string): Credentials; + + getUsername(): string; + setUsername(value: string): Credentials; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): Credentials.AsObject; + static toObject(includeInstance: boolean, msg: Credentials): Credentials.AsObject; + static serializeBinaryToWriter(message: Credentials, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Credentials; + static deserializeBinaryFromReader(message: Credentials, reader: jspb.BinaryReader): Credentials; + } + + export namespace Credentials { + export type AsObject = { + ref: string, + name: string, + username: string, + } + } + +} + +export class CreateTrunkRequest extends jspb.Message { + getName(): string; + setName(value: string): CreateTrunkRequest; + + getSendRegister(): boolean; + setSendRegister(value: boolean): CreateTrunkRequest; + + getInboundUri(): string; + setInboundUri(value: string): CreateTrunkRequest; + + getAccessControlListRef(): string; + setAccessControlListRef(value: string): CreateTrunkRequest; + + getInboundCredentialsRef(): string; + setInboundCredentialsRef(value: string): CreateTrunkRequest; + + getOutboundCredentialsRef(): string; + setOutboundCredentialsRef(value: string): CreateTrunkRequest; + + getUrisList(): Array; + setUrisList(value: Array): CreateTrunkRequest; + clearUrisList(): CreateTrunkRequest; + addUris(value?: TrunkURI, index?: number): TrunkURI; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateTrunkRequest.AsObject; + static toObject(includeInstance: boolean, msg: CreateTrunkRequest): CreateTrunkRequest.AsObject; + static serializeBinaryToWriter(message: CreateTrunkRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateTrunkRequest; + static deserializeBinaryFromReader(message: CreateTrunkRequest, reader: jspb.BinaryReader): CreateTrunkRequest; +} + +export namespace CreateTrunkRequest { + export type AsObject = { + name: string, + sendRegister: boolean, + inboundUri: string, + accessControlListRef: string, + inboundCredentialsRef: string, + outboundCredentialsRef: string, + urisList: Array, + } +} + +export class CreateTrunkResponse extends jspb.Message { + getRef(): string; + setRef(value: string): CreateTrunkResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): CreateTrunkResponse.AsObject; + static toObject(includeInstance: boolean, msg: CreateTrunkResponse): CreateTrunkResponse.AsObject; + static serializeBinaryToWriter(message: CreateTrunkResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): CreateTrunkResponse; + static deserializeBinaryFromReader(message: CreateTrunkResponse, reader: jspb.BinaryReader): CreateTrunkResponse; +} + +export namespace CreateTrunkResponse { + export type AsObject = { + ref: string, + } +} + +export class UpdateTrunkRequest extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateTrunkRequest; + + getName(): string; + setName(value: string): UpdateTrunkRequest; + + getSendRegister(): boolean; + setSendRegister(value: boolean): UpdateTrunkRequest; + + getInboundUri(): string; + setInboundUri(value: string): UpdateTrunkRequest; + + getAccessControlListRef(): string; + setAccessControlListRef(value: string): UpdateTrunkRequest; + + getInboundCredentialsRef(): string; + setInboundCredentialsRef(value: string): UpdateTrunkRequest; + + getOutboundCredentialsRef(): string; + setOutboundCredentialsRef(value: string): UpdateTrunkRequest; + + getUrisList(): Array; + setUrisList(value: Array): UpdateTrunkRequest; + clearUrisList(): UpdateTrunkRequest; + addUris(value?: TrunkURI, index?: number): TrunkURI; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateTrunkRequest.AsObject; + static toObject(includeInstance: boolean, msg: UpdateTrunkRequest): UpdateTrunkRequest.AsObject; + static serializeBinaryToWriter(message: UpdateTrunkRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateTrunkRequest; + static deserializeBinaryFromReader(message: UpdateTrunkRequest, reader: jspb.BinaryReader): UpdateTrunkRequest; +} + +export namespace UpdateTrunkRequest { + export type AsObject = { + ref: string, + name: string, + sendRegister: boolean, + inboundUri: string, + accessControlListRef: string, + inboundCredentialsRef: string, + outboundCredentialsRef: string, + urisList: Array, + } +} + +export class UpdateTrunkResponse extends jspb.Message { + getRef(): string; + setRef(value: string): UpdateTrunkResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): UpdateTrunkResponse.AsObject; + static toObject(includeInstance: boolean, msg: UpdateTrunkResponse): UpdateTrunkResponse.AsObject; + static serializeBinaryToWriter(message: UpdateTrunkResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): UpdateTrunkResponse; + static deserializeBinaryFromReader(message: UpdateTrunkResponse, reader: jspb.BinaryReader): UpdateTrunkResponse; +} + +export namespace UpdateTrunkResponse { + export type AsObject = { + ref: string, + } +} + +export class GetTrunkRequest extends jspb.Message { + getRef(): string; + setRef(value: string): GetTrunkRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): GetTrunkRequest.AsObject; + static toObject(includeInstance: boolean, msg: GetTrunkRequest): GetTrunkRequest.AsObject; + static serializeBinaryToWriter(message: GetTrunkRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): GetTrunkRequest; + static deserializeBinaryFromReader(message: GetTrunkRequest, reader: jspb.BinaryReader): GetTrunkRequest; +} + +export namespace GetTrunkRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteTrunkRequest extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteTrunkRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteTrunkRequest.AsObject; + static toObject(includeInstance: boolean, msg: DeleteTrunkRequest): DeleteTrunkRequest.AsObject; + static serializeBinaryToWriter(message: DeleteTrunkRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteTrunkRequest; + static deserializeBinaryFromReader(message: DeleteTrunkRequest, reader: jspb.BinaryReader): DeleteTrunkRequest; +} + +export namespace DeleteTrunkRequest { + export type AsObject = { + ref: string, + } +} + +export class DeleteTrunkResponse extends jspb.Message { + getRef(): string; + setRef(value: string): DeleteTrunkResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): DeleteTrunkResponse.AsObject; + static toObject(includeInstance: boolean, msg: DeleteTrunkResponse): DeleteTrunkResponse.AsObject; + static serializeBinaryToWriter(message: DeleteTrunkResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): DeleteTrunkResponse; + static deserializeBinaryFromReader(message: DeleteTrunkResponse, reader: jspb.BinaryReader): DeleteTrunkResponse; +} + +export namespace DeleteTrunkResponse { + export type AsObject = { + ref: string, + } +} + +export class ListTrunksRequest extends jspb.Message { + getPageSize(): number; + setPageSize(value: number): ListTrunksRequest; + + getPageToken(): string; + setPageToken(value: string): ListTrunksRequest; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListTrunksRequest.AsObject; + static toObject(includeInstance: boolean, msg: ListTrunksRequest): ListTrunksRequest.AsObject; + static serializeBinaryToWriter(message: ListTrunksRequest, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListTrunksRequest; + static deserializeBinaryFromReader(message: ListTrunksRequest, reader: jspb.BinaryReader): ListTrunksRequest; +} + +export namespace ListTrunksRequest { + export type AsObject = { + pageSize: number, + pageToken: string, + } +} + +export class ListTrunksResponse extends jspb.Message { + getItemsList(): Array; + setItemsList(value: Array): ListTrunksResponse; + clearItemsList(): ListTrunksResponse; + addItems(value?: Trunk, index?: number): Trunk; + + getNextPageToken(): string; + setNextPageToken(value: string): ListTrunksResponse; + + serializeBinary(): Uint8Array; + toObject(includeInstance?: boolean): ListTrunksResponse.AsObject; + static toObject(includeInstance: boolean, msg: ListTrunksResponse): ListTrunksResponse.AsObject; + static serializeBinaryToWriter(message: ListTrunksResponse, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): ListTrunksResponse; + static deserializeBinaryFromReader(message: ListTrunksResponse, reader: jspb.BinaryReader): ListTrunksResponse; +} + +export namespace ListTrunksResponse { + export type AsObject = { + itemsList: Array, + nextPageToken: string, + } +} + diff --git a/mods/sdk/src/generated/web/trunks_pb.js b/mods/sdk/src/generated/web/trunks_pb.js new file mode 100644 index 000000000..586291a90 --- /dev/null +++ b/mods/sdk/src/generated/web/trunks_pb.js @@ -0,0 +1,3272 @@ +// source: trunks.proto +/** + * @fileoverview + * @enhanceable + * @suppress {missingRequire} reports error on implicit type usages. + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! +/* eslint-disable */ +// @ts-nocheck + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = (function() { return this || window || global || self || Function('return this')(); }).call(null); + +goog.exportSymbol('proto.fonoster.trunks.v1beta2.CreateTrunkRequest', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.CreateTrunkResponse', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.DeleteTrunkRequest', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.DeleteTrunkResponse', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.GetTrunkRequest', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.ListTrunksRequest', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.ListTrunksResponse', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.Trunk', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.Trunk.Acl', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.Trunk.Credentials', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.TrunkURI', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.UpdateTrunkRequest', null, global); +goog.exportSymbol('proto.fonoster.trunks.v1beta2.UpdateTrunkResponse', null, global); +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.TrunkURI = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.TrunkURI, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.TrunkURI.displayName = 'proto.fonoster.trunks.v1beta2.TrunkURI'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.Trunk = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.trunks.v1beta2.Trunk.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.Trunk, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.Trunk.displayName = 'proto.fonoster.trunks.v1beta2.Trunk'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.trunks.v1beta2.Trunk.Acl.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.Trunk.Acl, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.Trunk.Acl.displayName = 'proto.fonoster.trunks.v1beta2.Trunk.Acl'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.Trunk.Credentials, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.Trunk.Credentials.displayName = 'proto.fonoster.trunks.v1beta2.Trunk.Credentials'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.trunks.v1beta2.CreateTrunkRequest.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.CreateTrunkRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.CreateTrunkRequest.displayName = 'proto.fonoster.trunks.v1beta2.CreateTrunkRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.CreateTrunkResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.CreateTrunkResponse.displayName = 'proto.fonoster.trunks.v1beta2.CreateTrunkResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.UpdateTrunkRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.displayName = 'proto.fonoster.trunks.v1beta2.UpdateTrunkRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.UpdateTrunkResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.displayName = 'proto.fonoster.trunks.v1beta2.UpdateTrunkResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.GetTrunkRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.GetTrunkRequest.displayName = 'proto.fonoster.trunks.v1beta2.GetTrunkRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.DeleteTrunkRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.displayName = 'proto.fonoster.trunks.v1beta2.DeleteTrunkRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.DeleteTrunkResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.displayName = 'proto.fonoster.trunks.v1beta2.DeleteTrunkResponse'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.ListTrunksRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.ListTrunksRequest.displayName = 'proto.fonoster.trunks.v1beta2.ListTrunksRequest'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.trunks.v1beta2.ListTrunksResponse.repeatedFields_, null); +}; +goog.inherits(proto.fonoster.trunks.v1beta2.ListTrunksResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.fonoster.trunks.v1beta2.ListTrunksResponse.displayName = 'proto.fonoster.trunks.v1beta2.ListTrunksResponse'; +} + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.TrunkURI.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.TrunkURI} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.TrunkURI.toObject = function(includeInstance, msg) { + var f, obj = { + host: jspb.Message.getFieldWithDefault(msg, 1, ""), + port: jspb.Message.getFieldWithDefault(msg, 2, 0), + transport: jspb.Message.getFieldWithDefault(msg, 3, ""), + user: jspb.Message.getFieldWithDefault(msg, 4, ""), + weight: jspb.Message.getFieldWithDefault(msg, 5, 0), + priority: jspb.Message.getFieldWithDefault(msg, 6, 0), + enabled: jspb.Message.getBooleanFieldWithDefault(msg, 7, false) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.TrunkURI; + return proto.fonoster.trunks.v1beta2.TrunkURI.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.TrunkURI} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setHost(value); + break; + case 2: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPort(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setTransport(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setUser(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setWeight(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPriority(value); + break; + case 7: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setEnabled(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.TrunkURI.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.TrunkURI} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.TrunkURI.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getHost(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getPort(); + if (f !== 0) { + writer.writeInt32( + 2, + f + ); + } + f = message.getTransport(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getUser(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getWeight(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } + f = message.getPriority(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } + f = message.getEnabled(); + if (f) { + writer.writeBool( + 7, + f + ); + } +}; + + +/** + * optional string host = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getHost = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setHost = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional int32 port = 2; + * @return {number} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getPort = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setPort = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional string transport = 3; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getTransport = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setTransport = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string user = 4; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getUser = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setUser = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional int32 weight = 5; + * @return {number} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getWeight = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setWeight = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional int32 priority = 6; + * @return {number} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getPriority = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setPriority = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + +/** + * optional bool enabled = 7; + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.getEnabled = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 7, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} returns this + */ +proto.fonoster.trunks.v1beta2.TrunkURI.prototype.setEnabled = function(value) { + return jspb.Message.setProto3BooleanField(this, 7, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.trunks.v1beta2.Trunk.repeatedFields_ = [10]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.Trunk.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.Trunk} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.Trunk.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + sendRegister: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), + inboundUri: jspb.Message.getFieldWithDefault(msg, 4, ""), + createdAt: jspb.Message.getFieldWithDefault(msg, 5, 0), + updatedAt: jspb.Message.getFieldWithDefault(msg, 6, 0), + accessControlList: (f = msg.getAccessControlList()) && proto.fonoster.trunks.v1beta2.Trunk.Acl.toObject(includeInstance, f), + inboundCredentials: (f = msg.getInboundCredentials()) && proto.fonoster.trunks.v1beta2.Trunk.Credentials.toObject(includeInstance, f), + outboundCredentials: (f = msg.getOutboundCredentials()) && proto.fonoster.trunks.v1beta2.Trunk.Credentials.toObject(includeInstance, f), + urisList: jspb.Message.toObjectList(msg.getUrisList(), + proto.fonoster.trunks.v1beta2.TrunkURI.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.Trunk} + */ +proto.fonoster.trunks.v1beta2.Trunk.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.Trunk; + return proto.fonoster.trunks.v1beta2.Trunk.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.Trunk} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.Trunk} + */ +proto.fonoster.trunks.v1beta2.Trunk.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setSendRegister(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setInboundUri(value); + break; + case 5: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCreatedAt(value); + break; + case 6: + var value = /** @type {number} */ (reader.readInt32()); + msg.setUpdatedAt(value); + break; + case 7: + var value = new proto.fonoster.trunks.v1beta2.Trunk.Acl; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.Trunk.Acl.deserializeBinaryFromReader); + msg.setAccessControlList(value); + break; + case 8: + var value = new proto.fonoster.trunks.v1beta2.Trunk.Credentials; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.Trunk.Credentials.deserializeBinaryFromReader); + msg.setInboundCredentials(value); + break; + case 9: + var value = new proto.fonoster.trunks.v1beta2.Trunk.Credentials; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.Trunk.Credentials.deserializeBinaryFromReader); + msg.setOutboundCredentials(value); + break; + case 10: + var value = new proto.fonoster.trunks.v1beta2.TrunkURI; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.TrunkURI.deserializeBinaryFromReader); + msg.addUris(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.Trunk.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.Trunk} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.Trunk.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getSendRegister(); + if (f) { + writer.writeBool( + 3, + f + ); + } + f = message.getInboundUri(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getCreatedAt(); + if (f !== 0) { + writer.writeInt32( + 5, + f + ); + } + f = message.getUpdatedAt(); + if (f !== 0) { + writer.writeInt32( + 6, + f + ); + } + f = message.getAccessControlList(); + if (f != null) { + writer.writeMessage( + 7, + f, + proto.fonoster.trunks.v1beta2.Trunk.Acl.serializeBinaryToWriter + ); + } + f = message.getInboundCredentials(); + if (f != null) { + writer.writeMessage( + 8, + f, + proto.fonoster.trunks.v1beta2.Trunk.Credentials.serializeBinaryToWriter + ); + } + f = message.getOutboundCredentials(); + if (f != null) { + writer.writeMessage( + 9, + f, + proto.fonoster.trunks.v1beta2.Trunk.Credentials.serializeBinaryToWriter + ); + } + f = message.getUrisList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 10, + f, + proto.fonoster.trunks.v1beta2.TrunkURI.serializeBinaryToWriter + ); + } +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.repeatedFields_ = [3,4]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.Trunk.Acl.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.Trunk.Acl} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + allowList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f, + denyList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.Trunk.Acl; + return proto.fonoster.trunks.v1beta2.Trunk.Acl.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.Trunk.Acl} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.addAllow(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.addDeny(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.Trunk.Acl.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.Trunk.Acl} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAllowList(); + if (f.length > 0) { + writer.writeRepeatedString( + 3, + f + ); + } + f = message.getDenyList(); + if (f.length > 0) { + writer.writeRepeatedString( + 4, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * repeated string allow = 3; + * @return {!Array} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.getAllowList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 3)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.setAllowList = function(value) { + return jspb.Message.setField(this, 3, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.addAllow = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 3, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.clearAllowList = function() { + return this.setAllowList([]); +}; + + +/** + * repeated string deny = 4; + * @return {!Array} + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.getDenyList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 4)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.setDenyList = function(value) { + return jspb.Message.setField(this, 4, value || []); +}; + + +/** + * @param {string} value + * @param {number=} opt_index + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.addDeny = function(value, opt_index) { + return jspb.Message.addToRepeatedField(this, 4, value, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Acl} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Acl.prototype.clearDenyList = function() { + return this.setDenyList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.Trunk.Credentials.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + username: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.Trunk.Credentials; + return proto.fonoster.trunks.v1beta2.Trunk.Credentials.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.Trunk.Credentials.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string username = 3; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk.Credentials} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.Credentials.prototype.setUsername = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional bool send_register = 3; + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getSendRegister = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setSendRegister = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); +}; + + +/** + * optional string inbound_uri = 4; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getInboundUri = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setInboundUri = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional int32 created_at = 5; + * @return {number} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getCreatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setCreatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 5, value); +}; + + +/** + * optional int32 updated_at = 6; + * @return {number} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getUpdatedAt = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setUpdatedAt = function(value) { + return jspb.Message.setProto3IntField(this, 6, value); +}; + + +/** + * optional Acl access_control_list = 7; + * @return {?proto.fonoster.trunks.v1beta2.Trunk.Acl} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getAccessControlList = function() { + return /** @type{?proto.fonoster.trunks.v1beta2.Trunk.Acl} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.trunks.v1beta2.Trunk.Acl, 7)); +}; + + +/** + * @param {?proto.fonoster.trunks.v1beta2.Trunk.Acl|undefined} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this +*/ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setAccessControlList = function(value) { + return jspb.Message.setWrapperField(this, 7, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.clearAccessControlList = function() { + return this.setAccessControlList(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.hasAccessControlList = function() { + return jspb.Message.getField(this, 7) != null; +}; + + +/** + * optional Credentials inbound_credentials = 8; + * @return {?proto.fonoster.trunks.v1beta2.Trunk.Credentials} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getInboundCredentials = function() { + return /** @type{?proto.fonoster.trunks.v1beta2.Trunk.Credentials} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.trunks.v1beta2.Trunk.Credentials, 8)); +}; + + +/** + * @param {?proto.fonoster.trunks.v1beta2.Trunk.Credentials|undefined} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this +*/ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setInboundCredentials = function(value) { + return jspb.Message.setWrapperField(this, 8, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.clearInboundCredentials = function() { + return this.setInboundCredentials(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.hasInboundCredentials = function() { + return jspb.Message.getField(this, 8) != null; +}; + + +/** + * optional Credentials outbound_credentials = 9; + * @return {?proto.fonoster.trunks.v1beta2.Trunk.Credentials} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getOutboundCredentials = function() { + return /** @type{?proto.fonoster.trunks.v1beta2.Trunk.Credentials} */ ( + jspb.Message.getWrapperField(this, proto.fonoster.trunks.v1beta2.Trunk.Credentials, 9)); +}; + + +/** + * @param {?proto.fonoster.trunks.v1beta2.Trunk.Credentials|undefined} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this +*/ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setOutboundCredentials = function(value) { + return jspb.Message.setWrapperField(this, 9, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.clearOutboundCredentials = function() { + return this.setOutboundCredentials(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.hasOutboundCredentials = function() { + return jspb.Message.getField(this, 9) != null; +}; + + +/** + * repeated TrunkURI uris = 10; + * @return {!Array} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.getUrisList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.trunks.v1beta2.TrunkURI, 10)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this +*/ +proto.fonoster.trunks.v1beta2.Trunk.prototype.setUrisList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 10, value); +}; + + +/** + * @param {!proto.fonoster.trunks.v1beta2.TrunkURI=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.addUris = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 10, opt_value, proto.fonoster.trunks.v1beta2.TrunkURI, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.trunks.v1beta2.Trunk} returns this + */ +proto.fonoster.trunks.v1beta2.Trunk.prototype.clearUrisList = function() { + return this.setUrisList([]); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.repeatedFields_ = [7]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.CreateTrunkRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.toObject = function(includeInstance, msg) { + var f, obj = { + name: jspb.Message.getFieldWithDefault(msg, 1, ""), + sendRegister: jspb.Message.getBooleanFieldWithDefault(msg, 2, false), + inboundUri: jspb.Message.getFieldWithDefault(msg, 3, ""), + accessControlListRef: jspb.Message.getFieldWithDefault(msg, 4, ""), + inboundCredentialsRef: jspb.Message.getFieldWithDefault(msg, 5, ""), + outboundCredentialsRef: jspb.Message.getFieldWithDefault(msg, 6, ""), + urisList: jspb.Message.toObjectList(msg.getUrisList(), + proto.fonoster.trunks.v1beta2.TrunkURI.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.CreateTrunkRequest; + return proto.fonoster.trunks.v1beta2.CreateTrunkRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setSendRegister(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setInboundUri(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessControlListRef(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setInboundCredentialsRef(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setOutboundCredentialsRef(value); + break; + case 7: + var value = new proto.fonoster.trunks.v1beta2.TrunkURI; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.TrunkURI.deserializeBinaryFromReader); + msg.addUris(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.CreateTrunkRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getSendRegister(); + if (f) { + writer.writeBool( + 2, + f + ); + } + f = message.getInboundUri(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAccessControlListRef(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getInboundCredentialsRef(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getOutboundCredentialsRef(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getUrisList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 7, + f, + proto.fonoster.trunks.v1beta2.TrunkURI.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string name = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional bool send_register = 2; + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getSendRegister = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setSendRegister = function(value) { + return jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional string inbound_uri = 3; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getInboundUri = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setInboundUri = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string access_control_list_ref = 4; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getAccessControlListRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setAccessControlListRef = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string inbound_credentials_ref = 5; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getInboundCredentialsRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setInboundCredentialsRef = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string outbound_credentials_ref = 6; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getOutboundCredentialsRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setOutboundCredentialsRef = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * repeated TrunkURI uris = 7; + * @return {!Array} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.getUrisList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.trunks.v1beta2.TrunkURI, 7)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this +*/ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.setUrisList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 7, value); +}; + + +/** + * @param {!proto.fonoster.trunks.v1beta2.TrunkURI=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.addUris = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, proto.fonoster.trunks.v1beta2.TrunkURI, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkRequest.prototype.clearUrisList = function() { + return this.setUrisList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.CreateTrunkResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.CreateTrunkResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkResponse} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.CreateTrunkResponse; + return proto.fonoster.trunks.v1beta2.CreateTrunkResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.CreateTrunkResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkResponse} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.CreateTrunkResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.CreateTrunkResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.CreateTrunkResponse} returns this + */ +proto.fonoster.trunks.v1beta2.CreateTrunkResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.repeatedFields_ = [8]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, ""), + name: jspb.Message.getFieldWithDefault(msg, 2, ""), + sendRegister: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), + inboundUri: jspb.Message.getFieldWithDefault(msg, 4, ""), + accessControlListRef: jspb.Message.getFieldWithDefault(msg, 5, ""), + inboundCredentialsRef: jspb.Message.getFieldWithDefault(msg, 6, ""), + outboundCredentialsRef: jspb.Message.getFieldWithDefault(msg, 7, ""), + urisList: jspb.Message.toObjectList(msg.getUrisList(), + proto.fonoster.trunks.v1beta2.TrunkURI.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.UpdateTrunkRequest; + return proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setName(value); + break; + case 3: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setSendRegister(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setInboundUri(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setAccessControlListRef(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setInboundCredentialsRef(value); + break; + case 7: + var value = /** @type {string} */ (reader.readString()); + msg.setOutboundCredentialsRef(value); + break; + case 8: + var value = new proto.fonoster.trunks.v1beta2.TrunkURI; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.TrunkURI.deserializeBinaryFromReader); + msg.addUris(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getName(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getSendRegister(); + if (f) { + writer.writeBool( + 3, + f + ); + } + f = message.getInboundUri(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getAccessControlListRef(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getInboundCredentialsRef(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getOutboundCredentialsRef(); + if (f.length > 0) { + writer.writeString( + 7, + f + ); + } + f = message.getUrisList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 8, + f, + proto.fonoster.trunks.v1beta2.TrunkURI.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string name = 2; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getName = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setName = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional bool send_register = 3; + * @return {boolean} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getSendRegister = function() { + return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); +}; + + +/** + * @param {boolean} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setSendRegister = function(value) { + return jspb.Message.setProto3BooleanField(this, 3, value); +}; + + +/** + * optional string inbound_uri = 4; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getInboundUri = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setInboundUri = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string access_control_list_ref = 5; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getAccessControlListRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setAccessControlListRef = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string inbound_credentials_ref = 6; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getInboundCredentialsRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setInboundCredentialsRef = function(value) { + return jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional string outbound_credentials_ref = 7; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getOutboundCredentialsRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setOutboundCredentialsRef = function(value) { + return jspb.Message.setProto3StringField(this, 7, value); +}; + + +/** + * repeated TrunkURI uris = 8; + * @return {!Array} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.getUrisList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.trunks.v1beta2.TrunkURI, 8)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this +*/ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.setUrisList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 8, value); +}; + + +/** + * @param {!proto.fonoster.trunks.v1beta2.TrunkURI=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.trunks.v1beta2.TrunkURI} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.addUris = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.fonoster.trunks.v1beta2.TrunkURI, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkRequest.prototype.clearUrisList = function() { + return this.setUrisList([]); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.UpdateTrunkResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkResponse} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.UpdateTrunkResponse; + return proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.UpdateTrunkResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkResponse} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.UpdateTrunkResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.UpdateTrunkResponse} returns this + */ +proto.fonoster.trunks.v1beta2.UpdateTrunkResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.GetTrunkRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.GetTrunkRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.GetTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.GetTrunkRequest; + return proto.fonoster.trunks.v1beta2.GetTrunkRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.GetTrunkRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.GetTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.GetTrunkRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.GetTrunkRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.GetTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.GetTrunkRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.DeleteTrunkRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.DeleteTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.DeleteTrunkRequest; + return proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.DeleteTrunkRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.DeleteTrunkRequest} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.DeleteTrunkRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.DeleteTrunkRequest} returns this + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkRequest.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.DeleteTrunkResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.toObject = function(includeInstance, msg) { + var f, obj = { + ref: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.DeleteTrunkResponse} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.DeleteTrunkResponse; + return proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.DeleteTrunkResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.DeleteTrunkResponse} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRef(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.DeleteTrunkResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRef(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string ref = 1; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.prototype.getRef = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.DeleteTrunkResponse} returns this + */ +proto.fonoster.trunks.v1beta2.DeleteTrunkResponse.prototype.setRef = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.ListTrunksRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.toObject = function(includeInstance, msg) { + var f, obj = { + pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), + pageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.ListTrunksRequest; + return proto.fonoster.trunks.v1beta2.ListTrunksRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setPageSize(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.ListTrunksRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPageSize(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional int32 page_size = 1; + * @return {number} + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.prototype.getPageSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} returns this + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.prototype.setPageSize = function(value) { + return jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional string page_token = 2; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.prototype.getPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksRequest} returns this + */ +proto.fonoster.trunks.v1beta2.ListTrunksRequest.prototype.setPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.toObject = function(opt_includeInstance) { + return proto.fonoster.trunks.v1beta2.ListTrunksResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.toObject = function(includeInstance, msg) { + var f, obj = { + itemsList: jspb.Message.toObjectList(msg.getItemsList(), + proto.fonoster.trunks.v1beta2.Trunk.toObject, includeInstance), + nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.fonoster.trunks.v1beta2.ListTrunksResponse; + return proto.fonoster.trunks.v1beta2.ListTrunksResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.fonoster.trunks.v1beta2.Trunk; + reader.readMessage(value,proto.fonoster.trunks.v1beta2.Trunk.deserializeBinaryFromReader); + msg.addItems(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setNextPageToken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.fonoster.trunks.v1beta2.ListTrunksResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getItemsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.fonoster.trunks.v1beta2.Trunk.serializeBinaryToWriter + ); + } + f = message.getNextPageToken(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * repeated Trunk items = 1; + * @return {!Array} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.getItemsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.fonoster.trunks.v1beta2.Trunk, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} returns this +*/ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.setItemsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.fonoster.trunks.v1beta2.Trunk=} opt_value + * @param {number=} opt_index + * @return {!proto.fonoster.trunks.v1beta2.Trunk} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.addItems = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.trunks.v1beta2.Trunk, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} returns this + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.clearItemsList = function() { + return this.setItemsList([]); +}; + + +/** + * optional string next_page_token = 2; + * @return {string} + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.getNextPageToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.fonoster.trunks.v1beta2.ListTrunksResponse} returns this + */ +proto.fonoster.trunks.v1beta2.ListTrunksResponse.prototype.setNextPageToken = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +goog.object.extend(exports, proto.fonoster.trunks.v1beta2); diff --git a/mods/sdk/src/index.ts b/mods/sdk/src/index.ts deleted file mode 100644 index 4c02b6562..000000000 --- a/mods/sdk/src/index.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import CallManager from "@fonoster/callmanager"; -import Storage from "@fonoster/storage"; -import Secrets from "@fonoster/secrets"; -import Providers from "@fonoster/providers"; -import Numbers from "@fonoster/numbers"; -import Domains from "@fonoster/domains"; -import Agents from "@fonoster/agents"; -import Funcs from "@fonoster/funcs"; -import Auth from "@fonoster/auth"; -import Projects from "@fonoster/projects"; -import Users from "@fonoster/users"; -import Monitor from "@fonoster/monitor"; -import Apps from "@fonoster/apps"; - -const Fonoster = { - Secrets, - Auth, - Agents, - CallManager, - Domains, - Funcs, - Storage, - Numbers, - Providers, - Projects, - Users, - Monitor, - Apps -}; - -export { Fonoster as default }; - -// WARNING: Workaround to support commonjs clients -module.exports = Fonoster; diff --git a/mods/sdk/src/node.ts b/mods/sdk/src/node.ts new file mode 100644 index 000000000..c5d6886af --- /dev/null +++ b/mods/sdk/src/node.ts @@ -0,0 +1,42 @@ +export * from "./Acls"; + +export * from "./Agents"; + +export * from "./ApiKeys"; + +export * from "./Applications"; + +export * from "./Calls"; + +export * from "./Credentials"; + +export * from "./Domains"; + +export * from "./Numbers"; + +export * from "./Secrets"; + +export * from "./Trunks"; + +export * from "./Users"; + +export * from "./Workspaces"; +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./client/Client"; diff --git a/mods/sdk/src/utils.ts b/mods/sdk/src/utils.ts new file mode 100644 index 000000000..64de13668 --- /dev/null +++ b/mods/sdk/src/utils.ts @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Struct } from "google-protobuf/google/protobuf/struct_pb"; +import { TrackCallResponse } from "./generated/web/calls_pb"; + +type PartialApplicationInput = { + textToSpeech?: { + config: { [key: string]: unknown }; + } | null; + speechToText?: { + config: { [key: string]: unknown }; + } | null; + intelligence?: { + credentials: { [key: string]: unknown }; + config: { [key: string]: unknown }; + } | null; +}; + +function buildStructOverride(request: T): T { + return { + ...request, + textToSpeech: request.textToSpeech + ? { + ...request.textToSpeech, + config: request.textToSpeech.config + ? Struct.fromJavaScript(request.textToSpeech.config) + : undefined + } + : undefined, + speechToText: request.speechToText + ? { + ...request.speechToText, + config: request.speechToText.config + ? Struct.fromJavaScript(request.speechToText.config) + : undefined + } + : undefined, + intelligence: request.intelligence + ? { + ...request.intelligence, + credentials: request.intelligence.credentials + ? Struct.fromJavaScript(request.intelligence.credentials) + : undefined, + config: request.intelligence.config + ? Struct.fromJavaScript(request.intelligence.config) + : undefined + } + : undefined + }; +} + +function buildStructOverrideReverse(request) { + const result = { + ...request, + textToSpeech: request.textToSpeech + ? { + ...request.textToSpeech, + config: request.textToSpeech.config + ? request.textToSpeech.config.toJavaScript() + : undefined + } + : undefined, + speechToText: request.speechToText + ? { + ...request.speechToText, + config: request.speechToText.config + ? request.speechToText.config.toJavaScript() + : undefined + } + : undefined, + intelligence: request.intelligence + ? { + ...request.intelligence, + credentials: request.intelligence.credentials + ? request.intelligence.credentials.toJavaScript() + : undefined, + config: request.intelligence.config + ? request.intelligence.config.toJavaScript() + : undefined + } + : undefined + }; + + Object.keys(result).forEach( + (key) => result[key] === undefined && delete result[key] + ); + + return result; +} + +function dialStatusToString(status: number): string { + switch (status) { + case TrackCallResponse.Status.TRYING: + return "TRYING"; + case TrackCallResponse.Status.ANSWER: + return "ANSWER"; + case TrackCallResponse.Status.BUSY: + return "BUSY"; + case TrackCallResponse.Status.CANCEL: + return "CANCEL"; + case TrackCallResponse.Status.NOANSWER: + return "ERROR"; + case TrackCallResponse.Status.FAILED: + return "FAILED"; + case TrackCallResponse.Status.PROGRESS: + return "PROGRESS"; + } +} + +export { buildStructOverride, buildStructOverrideReverse, dialStatusToString }; diff --git a/mods/sdk/src/web.ts b/mods/sdk/src/web.ts new file mode 100644 index 000000000..a72e7ef93 --- /dev/null +++ b/mods/sdk/src/web.ts @@ -0,0 +1,42 @@ +export * from "./Acls"; + +export * from "./Agents"; + +export * from "./ApiKeys"; + +export * from "./Applications"; + +export * from "./Calls"; + +export * from "./Credentials"; + +export * from "./Domains"; + +export * from "./Numbers"; + +export * from "./Secrets"; + +export * from "./Trunks"; + +export * from "./Users"; + +export * from "./Workspaces"; +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./client/WebClient"; diff --git a/mods/sdk/test/enumUtils.test.ts b/mods/sdk/test/enumUtils.test.ts new file mode 100644 index 000000000..9b3826417 --- /dev/null +++ b/mods/sdk/test/enumUtils.test.ts @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import sinonChai from "sinon-chai"; +import { MappingTuple } from "../src/client/types"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); + +enum ExampleEnum { + VALUE1 = 0, + VALUE2 = 1 +} + +const enumMapping = [["test", ExampleEnum]] as MappingTuple; + +describe("@sdk[client/utils]", function () { + it("should verify if a key is an enum", async function () { + // Arrange + const { isMapping } = await import("../src/client/utils"); + + // Act + const result = isMapping("test", enumMapping); + + // Assert + expect(result).to.be.true; + }); + + it("should return the enum value", async function () { + // Arrange + const { getEnumValue } = await import("../src/client/utils"); + + // Act + const result = getEnumValue("test", "VALUE1", enumMapping); + + // Assert + expect(result).to.be.equal(ExampleEnum.VALUE1); + }); + + it("should return the enum key", async function () { + // Arrange + const { getEnumKey } = await import("../src/client/utils"); + + // Act + const result = getEnumKey("test", ExampleEnum.VALUE1, enumMapping); + + // Assert + expect(result).to.be.equal("VALUE1"); + }); +}); diff --git a/mods/sdk/test/integration/cases/aclsTestCases.ts b/mods/sdk/test/integration/cases/aclsTestCases.ts new file mode 100644 index 000000000..e61183a73 --- /dev/null +++ b/mods/sdk/test/integration/cases/aclsTestCases.ts @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function createAclsTestCases(expect) { + const idBase = "acls"; + + return { + api: "Acls", + cases: [ + { + id: `${idBase}-00`, + name: "should create an acl", + method: "createAcl", + request: { + name: "From Fonoster", + allow: ["192.168.1.10"] + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-01`, + name: "should get the acl", + method: "getAcl", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + expect(response).has.property("name"); + expect(response) + .has.property("allow") + .to.be.an("array") + .to.have.lengthOf(1); + expect(response).has.property("createdAt").to.be.a("date"); + expect(response).has.property("updatedAt").to.be.a("date"); + } + }, + { + id: `${idBase}-02`, + name: "should update the acl", + method: "updateAcl", + request: { + ref: "{{ref}}", + name: "From Fonoster Updated", + allow: ["192.168.1.11"] + }, + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-03`, + name: "should list at least one acl", + method: "listAcls", + request: { + pageSize: 10, + pageToken: null + }, + responseValidator: (response: { + items: unknown[]; + nextPageToken: string; + }) => { + expect(response).has.property("items"); + expect(response).has.property("nextPageToken"); + expect(response.items.length).to.be.greaterThan(0); + expect(response.items[0]).to.have.property("ref").to.not.be.null; + expect(response.items[0]).to.have.property("name").to.not.be.null; + expect(response.items[0]) + .to.have.property("allow") + .to.be.an("array") + .to.have.lengthOf(1); + expect(response.items[0]) + .to.have.property("createdAt") + .to.be.a("date"); + expect(response.items[0]) + .to.have.property("updatedAt") + .to.be.a("date"); + } + }, + { + id: `${idBase}-04`, + name: "should delete the acl", + method: "deleteAcl", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-05`, + name: "should fail to delete the acl (not found)", + method: "deleteAcl", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + grpcCode: 5 + } + ] + }; +} + +export { createAclsTestCases }; diff --git a/mods/sdk/test/integration/cases/agentsTestCases.ts b/mods/sdk/test/integration/cases/agentsTestCases.ts new file mode 100644 index 000000000..069d770e2 --- /dev/null +++ b/mods/sdk/test/integration/cases/agentsTestCases.ts @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Privacy } from "@fonoster/types"; + +function createAgentsTestCases(expect) { + const idBase = "agents"; + + return { + api: "Agents", + cases: [ + { + id: `${idBase}-00`, + name: "should create an agent", + method: "createAgent", + request: { + name: "John Doe", + username: `john.doe.${Date.now()}`, + privacy: Privacy.PRIVATE, + enabled: true, + maxContacts: 3 + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-01`, + name: "should get the agent", + method: "getAgent", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref").to.not.be.null; + expect(response).has.property("name").to.not.be.null; + expect(response).has.property("privacy").to.be.equal(Privacy.PRIVATE); + expect(response).has.property("enabled").to.be.true; + expect(response).has.property("maxContacts").to.be.equal(3); + expect(response).has.property("username").to.not.be.null; + expect(response).has.property("createdAt").to.be.a("date"); + expect(response).has.property("updatedAt").to.be.a("date"); + } + }, + { + id: `${idBase}-02`, + name: "should update the name of the agent", + method: "updateAgent", + request: { + ref: "{{ref}}", + name: "Jane Doe", + privacy: Privacy.NONE + }, + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-03`, + name: "should list at least one agent", + method: "listAgents", + request: { + pageSize: 10, + pageToken: null + }, + responseValidator: (response: { + items: unknown[]; + nextPageToken: string; + }) => { + expect(response).has.property("items"); + expect(response).has.property("nextPageToken"); + expect(response.items.length).to.be.greaterThan(0); + expect(response.items[0]).to.have.property("ref").to.not.be.null; + expect(response.items[0]).to.have.property("name").to.not.be.null; + expect(response.items[0]).to.have.property("username").to.not.be.null; + expect(response.items[0]).to.have.property("enabled").to.be.true; + expect(response.items[0]) + .to.have.property("privacy") + .to.be.equal(Privacy.NONE); + expect(response.items[0]) + .to.have.property("maxContacts") + .to.be.equal(3); + expect(response.items[0]) + .to.have.property("createdAt") + .to.be.a("date"); + expect(response.items[0]) + .to.have.property("updatedAt") + .to.be.a("date"); + } + }, + { + id: `${idBase}-04`, + name: "should delete the agent", + method: "deleteAgent", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-05`, + name: "should fail to delete the agent (not found)", + method: "deleteAgent", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + grpcCode: 5 + } + ] + }; +} + +export { createAgentsTestCases }; diff --git a/mods/sdk/test/integration/cases/apiKeysTestCases.ts b/mods/sdk/test/integration/cases/apiKeysTestCases.ts new file mode 100644 index 000000000..35ba5cb75 --- /dev/null +++ b/mods/sdk/test/integration/cases/apiKeysTestCases.ts @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function createApiKeysTestCases(expect) { + const idBase = "keys"; + + return { + api: "ApiKeys", + cases: [ + { + id: `${idBase}-00`, + name: "should create an api key", + method: "createApiKey", + request: { + role: "WORKSPACE_ADMIN" + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-01`, + name: "should regenerate an api key", + method: "regenerateApiKey", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + expect(response).has.property("accessKeyId"); + expect(response).has.property("accessKeySecret"); + } + }, + { + id: `${idBase}-02`, + name: "should list at least one key", + method: "listApiKeys", + request: { + pageSize: 10, + pageToken: null + }, + responseValidator: (response: { + items: unknown[]; + nextPageToken: string; + }) => { + expect(response).has.property("items"); + expect(response).has.property("nextPageToken"); + expect(response.items.length).to.be.greaterThan(0); + expect(response.items[0]).to.have.property("ref").to.not.be.null; + expect(response.items[0]).to.have.property("accessKeyId").to.not.be + .null; + expect(response.items[0]) + .to.have.property("role") + .to.be.equal("WORKSPACE_ADMIN"); + expect(response.items[0]) + .to.have.property("createdAt") + .to.be.a("date"); + expect(response.items[0]) + .to.have.property("updatedAt") + .to.be.a("date"); + } + }, + { + id: `${idBase}-03`, + name: "should delete the key", + method: "deleteApiKey", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-04`, + name: "should fail to delete the key (not found)", + method: "deleteApiKey", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + grpcCode: 5 + } + ] + }; +} + +export { createApiKeysTestCases }; diff --git a/mods/sdk/test/integration/cases/applicationsTestCases.ts b/mods/sdk/test/integration/cases/applicationsTestCases.ts new file mode 100644 index 000000000..c27a20dca --- /dev/null +++ b/mods/sdk/test/integration/cases/applicationsTestCases.ts @@ -0,0 +1,153 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function createApplicationsTestCases(expect) { + const idBase = "applications"; + + return { + api: "Applications", + cases: [ + { + id: `${idBase}-00`, + name: "should create an application", + method: "createApplication", + request: { + name: "My Application", + type: "EXTERNAL", + endpoint: "localhost:3000", + textToSpeech: { + productRef: "tts.google", + config: { + voice: "en-US-Casual-K" + } + }, + speechToText: { + productRef: "stt.google", + config: { + languageCode: "en-US" + } + } + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-01`, + name: "should failed to create an application (missing name)", + method: "createApplication", + request: { + type: "EXTERNAL", + endpoint: "localhost:3000" + }, + grpcCode: 3 + }, + { + id: `${idBase}-02`, + name: "should find the application", + method: "getApplication", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref").to.be.not.null; + expect(response).has.property("name").to.be.not.null; + expect(response).has.property("type").to.be.equal("EXTERNAL"); + expect(response).has.property("endpoint").to.be.not.null; + expect(response).has.property("textToSpeech").to.be.a("object"); + expect(response).has.property("speechToText").to.be.a("object"); + expect(response).does.not.have.property("intelligence"); + expect(response).has.property("createdAt").to.be.a("date"); + expect(response).has.property("updatedAt").to.be.a("date"); + } + }, + { + id: `${idBase}-03`, + name: "should fail with a bad request error", + method: "updateApplication", + request: { + name: "My renamed Application", + endpoint: "localhost:50061" + }, + grpcCode: 3 + }, + { + id: `${idBase}-03`, + name: "should update the name of the application", + method: "updateApplication", + request: { + ref: "{{ref}}", + name: "My renamed Application", + endpoint: "localhost:50061" + }, + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-04`, + name: "should list at least one application", + method: "listApplications", + request: { + pageSize: 10, + pageToken: null + }, + responseValidator: (response: { + items: unknown[]; + nextPageToken: string; + }) => { + expect(response).has.property("items"); + expect(response).has.property("nextPageToken"); + expect(response.items.length).to.be.greaterThan(0); + expect(response.items[0]).to.have.property("ref").to.not.be.null; + expect(response.items[0]).to.have.property("name").to.not.be.null; + expect(response.items[0]) + .to.have.property("type") + .to.be.equal("EXTERNAL"); + expect(response.items[0]).to.have.property("endpoint").to.not.be.null; + expect(response.items[0]) + .to.have.property("createdAt") + .to.be.a("date"); + expect(response.items[0]) + .to.have.property("updatedAt") + .to.be.a("date"); + } + }, + { + id: `${idBase}-05`, + name: "should delete the application", + method: "deleteApplication", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-06`, + name: "should failed to delete the application (not found)", + method: "deleteApplication", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + grpcCode: 5 + } + ] + }; +} + +export { createApplicationsTestCases }; diff --git a/mods/sdk/test/integration/cases/callsTestCases.ts b/mods/sdk/test/integration/cases/callsTestCases.ts new file mode 100644 index 000000000..bdb559858 --- /dev/null +++ b/mods/sdk/test/integration/cases/callsTestCases.ts @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function createCallsTestCases(expect) { + const idBase = "calls"; + + return { + api: "Calls", + cases: [ + { + id: `${idBase}-00`, + name: "should create a call (test manually)", + method: "createCall", + request: { + from: "8287854033", + to: "+17853178070", + appRef: "8860be90-c781-4193-b801-6d8b3824a5c8" + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + }, + skip: true + }, + { + id: `${idBase}-01`, + name: "should get a call (test manually)", + method: "getCall", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref").to.not.be.null; + expect(response).has.property("callId").to.not.be.null; + expect(response).has.property("type").to.be.equal("API_ORIGINATED"); + expect(response) + .has.property("status") + .to.be.oneOf([ + "UNKNOWN", + "NORMAL_CLEARING", + "CALL_REJECTED", + "UNALLOCATED", + "NO_USER_RESPONSE", + "NO_ROUTE_DESTINATION", + "NO_ANSWER", + "USER_BUSY", + "NOT_ACCEPTABLE_HERE", + "SERVICE_UNAVAILABLE", + "INVALID_NUMBER_FORMAT" + ]); + expect(response).has.property("startedAt").to.be.a("date"); + expect(response).has.property("endedAt").to.be.a("date"); + expect(response).has.property("from").to.not.be.null; + expect(response).has.property("to").to.not.be.null; + expect(response).has.property("duration").to.be.a("number"); + expect(response).has.property("direction").to.be.equal("TO_PSTN"); + }, + skip: true + }, + { + id: `${idBase}-02`, + name: "should list at least one call (test manually)", + method: "listCalls", + request: { + pageSize: 10, + pageToken: null + }, + responseValidator: (response: { + items: unknown[]; + nextPageToken: string; + }) => { + expect(response).has.property("items"); + expect(response).has.property("nextPageToken"); + expect(response.items.length).to.be.greaterThan(0); + expect(response.items[0]).to.have.property("ref").to.not.be.null; + expect(response.items[0]).to.have.property("callId").to.not.be.null; + expect(response.items[0]) + .to.have.property("type") + .to.be.equal("API_ORIGINATED"); + expect(response.items[0]) + .to.have.property("status") + .to.be.oneOf([ + "UNKNOWN", + "NORMAL_CLEARING", + "CALL_REJECTED", + "UNALLOCATED", + "NO_USER_RESPONSE", + "NO_ROUTE_DESTINATION", + "NO_ANSWER", + "USER_BUSY", + "NOT_ACCEPTABLE_HERE", + "SERVICE_UNAVAILABLE", + "INVALID_NUMBER_FORMAT" + ]); + expect(response.items[0]) + .to.have.property("startedAt") + .to.be.a("date"); + expect(response.items[0]).to.have.property("endedAt").to.be.a("date"); + expect(response.items[0]).to.have.property("from").to.not.be.null; + expect(response.items[0]).to.have.property("to").to.not.be.null; + expect(response.items[0]) + .to.have.property("duration") + .to.be.a("number"); + expect(response.items[0]) + .to.have.property("direction") + .to.be.equal("TO_PSTN"); + }, + skip: true + } + ] + }; +} + +export { createCallsTestCases }; diff --git a/mods/sdk/test/integration/cases/credentialsTestCases.ts b/mods/sdk/test/integration/cases/credentialsTestCases.ts new file mode 100644 index 000000000..0cee325b4 --- /dev/null +++ b/mods/sdk/test/integration/cases/credentialsTestCases.ts @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function createCredentialsTestCases(expect) { + const idBase = "credentials"; + + return { + api: "Credentials", + cases: [ + { + id: `${idBase}-00`, + name: "should create a set of credentials", + method: "createCredentials", + request: { + name: "My Credentials", + username: "myusername", + password: "mysecret" + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-01`, + name: "should get the credential", + method: "getCredentials", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref").to.not.be.null; + expect(response).has.property("name").to.not.be.null; + expect(response).has.property("username").to.not.be.null; + expect(response).to.not.have.property("password"); + expect(response).has.property("createdAt").to.be.a("date"); + expect(response).has.property("updatedAt").to.be.a("date"); + } + }, + { + id: `${idBase}-02`, + name: "should update the name of the credential", + method: "updateCredentials", + request: { + ref: "{{ref}}", + name: "My New Credentials", + password: "changed" + }, + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-03`, + name: "should list at least one set of credentials", + method: "listCredentials", + request: { + pageSize: 10, + pageToken: null + }, + responseValidator: (response: { + items: unknown[]; + nextPageToken: string; + }) => { + expect(response).has.property("items"); + expect(response).has.property("nextPageToken"); + expect(response.items.length).to.be.greaterThan(0); + expect(response.items[0]).to.have.property("ref").to.not.be.null; + expect(response.items[0]).to.have.property("name").to.not.be.null; + expect(response.items[0]).to.have.property("username").to.not.be.null; + expect(response.items[0]).to.not.have.property("password"); + expect(response.items[0]) + .to.have.property("createdAt") + .to.be.a("date"); + expect(response.items[0]) + .to.have.property("updatedAt") + .to.be.a("date"); + } + }, + { + id: `${idBase}-04`, + name: "should delete the credential", + method: "deleteCredentials", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-05`, + name: "should fail to delete the credentials (not found)", + method: "deleteCredentials", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + grpcCode: 5 + } + ] + }; +} + +export { createCredentialsTestCases }; diff --git a/mods/sdk/test/integration/cases/domainsTestCases.ts b/mods/sdk/test/integration/cases/domainsTestCases.ts new file mode 100644 index 000000000..c726b23b9 --- /dev/null +++ b/mods/sdk/test/integration/cases/domainsTestCases.ts @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function createDomainsTestCases(expect) { + const idBase = "domains"; + + return { + api: "Domains", + cases: [ + { + id: `${idBase}-00`, + name: "should create an domain", + method: "createDomain", + request: { + name: "My Domain", + domainUri: `mydomain${Math.floor(Math.random() * 1000000)}.fonoster.local` + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-01`, + name: "should get the domain", + method: "getDomain", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + expect(response).has.property("name"); + expect(response).has.property("domainUri"); + expect(response).has.property("createdAt").to.be.a("date"); + expect(response).has.property("updatedAt").to.be.a("date"); + } + }, + { + id: `${idBase}-02`, + name: "should update the name of the domain", + method: "updateDomain", + request: { + ref: "{{ref}}", + name: "My New Domain" + }, + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-03`, + name: "should list at least one domain", + method: "listDomains", + request: { + pageSize: 10, + pageToken: null + }, + responseValidator: (response: { + items: unknown[]; + nextPageToken: string; + }) => { + expect(response).has.property("items"); + expect(response).has.property("nextPageToken"); + expect(response.items.length).to.be.greaterThan(0); + expect(response.items[0]).to.have.property("ref").to.not.be.null; + expect(response.items[0]).to.have.property("name").to.not.be.null; + expect(response.items[0]).to.have.property("domainUri").to.not.be + .null; + expect(response.items[0]) + .to.have.property("createdAt") + .to.be.a("date"); + expect(response.items[0]) + .to.have.property("updatedAt") + .to.be.a("date"); + } + }, + { + id: `${idBase}-04`, + name: "should delete the domain", + method: "deleteDomain", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-05`, + name: "should fail to delete the domain (not found)", + method: "deleteDomain", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + grpcCode: 5 + } + ] + }; +} + +export { createDomainsTestCases }; diff --git a/mods/sdk/test/integration/cases/numbersTestCases.ts b/mods/sdk/test/integration/cases/numbersTestCases.ts new file mode 100644 index 000000000..ebea32ad8 --- /dev/null +++ b/mods/sdk/test/integration/cases/numbersTestCases.ts @@ -0,0 +1,154 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function createNumbersTestCases(expect) { + const idBase = "numbers"; + const country = "United States"; + const agentAor = "sip:1001@sip.fonoster.local"; + + return { + api: "Numbers", + cases: [ + { + id: `${idBase}-00`, + name: "should create a number", + method: "createNumber", + request: { + name: "My Number", + telUrl: `tel:+1${Math.floor(Math.random() * 10000000000)}`, + city: "Asheville", + country, + countryIsoCode: "US", + agentAor + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-01`, + name: "should failed to create a number (application not found)", + method: "createNumber", + request: { + name: "My Number", + telUrl: `tel:+1${Math.floor(Math.random() * 10000000000)}`, + city: "Asheville", + country, + countryIsoCode: "US", + appRef: "00000000-0000-0000-0000-000000000000" + }, + grpcCode: 3 + }, + { + id: `${idBase}-02`, + name: "should get the number by ref", + method: "getNumber", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref").to.not.be.null; + expect(response).has.property("name").to.be.equal("My Number"); + expect(response).has.property("telUrl").to.be.a("string"); + expect(response).has.property("city").to.be.equal("Asheville"); + expect(response).has.property("country").to.be.equal(country); + expect(response).has.property("countryIsoCode").to.be.equal("US"); + expect(response).has.property("agentAor").to.be.equal(agentAor); + expect(response).has.property("trunk"); + expect(response).to.not.have.property("appRef"); + expect(response).has.property("createdAt").to.be.a("date"); + expect(response).has.property("updatedAt").to.be.a("date"); + } + }, + { + id: `${idBase}-03`, + name: "should update the friendly name of the number", + method: "updateNumber", + request: { + ref: "{{ref}}", + name: "My New Number" + }, + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-04`, + name: "should list at least one number", + method: "listNumbers", + request: { + pageSize: 10, + pageToken: null + }, + responseValidator: (response: { + items: unknown[]; + nextPageToken: string; + }) => { + expect(response).has.property("items"); + expect(response).has.property("nextPageToken"); + expect(response.items.length).to.be.greaterThan(0); + expect(response.items[0]).to.have.property("ref").to.not.be.null; + expect(response.items[0]) + .to.have.property("name") + .to.be.equal("My New Number"); + expect(response.items[0]).to.have.property("telUrl").to.not.be.null; + expect(response.items[0]) + .to.have.property("city") + .to.be.equal("Asheville"); + expect(response.items[0]) + .to.have.property("country") + .to.be.equal(country); + expect(response.items[0]) + .to.have.property("countryIsoCode") + .to.be.equal("US"); + expect(response.items[0]) + .to.have.property("agentAor") + .to.be.equal(agentAor); + expect(response.items[0]).to.not.have.property("trunk"); + expect(response.items[0]).to.not.have.property("appRef"); + expect(response.items[0]) + .to.have.property("createdAt") + .to.be.a("date"); + expect(response.items[0]) + .to.have.property("updatedAt") + .to.be.a("date"); + } + }, + { + id: `${idBase}-05`, + name: "should delete the number", + method: "deleteNumber", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-06`, + name: "should fail to delete the number (not found)", + method: "deleteNumber", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + grpcCode: 5 + } + ] + }; +} + +export { createNumbersTestCases }; diff --git a/mods/sdk/test/integration/cases/secretsTestCases.ts b/mods/sdk/test/integration/cases/secretsTestCases.ts new file mode 100644 index 000000000..0efbfce8c --- /dev/null +++ b/mods/sdk/test/integration/cases/secretsTestCases.ts @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function createSecretsTestCases(expect) { + const idBase = "secrets"; + + return { + api: "Secrets", + cases: [ + { + id: `${idBase}-00`, + name: "should create a new secret", + method: "createSecret", + request: { + name: "MY_SECRET", + secret: "MY_SECRET" + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-01`, + name: "should get the secret", + method: "getSecret", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref").to.not.be.null; + expect(response).has.property("name").to.be.equal("MY_SECRET"); + expect(response).has.property("secret").to.be.equal("MY_SECRET"); + expect(response).has.property("createdAt").to.be.a("date"); + expect(response).has.property("updatedAt").to.be.a("date"); + } + }, + { + id: `${idBase}-02`, + name: "should update the secret", + method: "updateSecret", + request: { + ref: "{{ref}}", + secret: "MY_SECRET_UPDATED" + }, + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-03`, + name: "should list at least one secret", + method: "listSecrets", + request: { + pageSize: 10, + pageToken: null + }, + responseValidator: (response: { + items: unknown[]; + nextPageToken: string; + }) => { + expect(response).has.property("items"); + expect(response).has.property("nextPageToken"); + expect(response.items.length).to.be.greaterThan(0); + expect(response.items[0]).to.have.property("ref").to.not.be.null; + expect(response.items[0]) + .to.have.property("name") + .to.be.equal("MY_SECRET"); + expect(response.items[0]) + .to.have.property("secret") + .to.be.equal("MY_SECRET_UPDATED"); + expect(response.items[0]) + .to.have.property("createdAt") + .to.be.a("date"); + expect(response.items[0]) + .to.have.property("updatedAt") + .to.be.a("date"); + } + }, + { + id: `${idBase}-05`, + name: "should delete the secret", + method: "deleteSecret", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-05`, + name: "should fail to delete the secret (not found)", + method: "deleteSecret", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + grpcCode: 5 + } + ] + }; +} + +export { createSecretsTestCases }; diff --git a/mods/sdk/test/integration/cases/testCases.ts b/mods/sdk/test/integration/cases/testCases.ts new file mode 100644 index 000000000..bc379c2ed --- /dev/null +++ b/mods/sdk/test/integration/cases/testCases.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createAclsTestCases } from "./aclsTestCases"; +import { createAgentsTestCases } from "./agentsTestCases"; +import { createApiKeysTestCases } from "./apiKeysTestCases"; +import { createApplicationsTestCases } from "./applicationsTestCases"; +import { createCallsTestCases } from "./callsTestCases"; +import { createCredentialsTestCases } from "./credentialsTestCases"; +import { createDomainsTestCases } from "./domainsTestCases"; +import { createNumbersTestCases } from "./numbersTestCases"; +import { createSecretsTestCases } from "./secretsTestCases"; +import { createTrunksTestCases } from "./trunksTestCases"; +import { createUsersTestCases } from "./usersTestCases"; +import { createWorkspacesTestCases } from "./workspacesTestCases"; + +function createTestCases(expect) { + return [ + createApplicationsTestCases(expect), + createCallsTestCases(expect), + createApiKeysTestCases(expect), + createUsersTestCases(expect), + createSecretsTestCases(expect), + createAclsTestCases(expect), + createAgentsTestCases(expect), + createDomainsTestCases(expect), + createCredentialsTestCases(expect), + createNumbersTestCases(expect), + createWorkspacesTestCases(expect), + createTrunksTestCases(expect) + ]; +} + +export { createTestCases }; diff --git a/mods/sdk/test/integration/cases/trunksTestCases.ts b/mods/sdk/test/integration/cases/trunksTestCases.ts new file mode 100644 index 000000000..a23694ab6 --- /dev/null +++ b/mods/sdk/test/integration/cases/trunksTestCases.ts @@ -0,0 +1,175 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function createTrunksTestCases(expect) { + const idBase = "trunks"; + const exampleHost = "example.com"; + + return { + api: "Trunks", + cases: [ + { + id: `${idBase}-00`, + name: "should create a trunk", + method: "createTrunk", + request: { + name: "My Trunk", + inboundUri: `${Math.floor(Math.random() * (999 + 1)) + 1}.test.pstn.fonoster.io`, + sendRegister: true, + uris: [ + { + host: exampleHost, + port: 5060, + transport: "UDP", + user: "1001", + weight: 1, + priority: 1, + enabled: true + } + ] + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-01`, + name: "should get the trunk", + method: "getTrunk", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string; uris: unknown[] }) => { + expect(response).has.property("ref").to.be.not.null; + expect(response).has.property("name").to.be.equal("My Trunk"); + expect(response).has.property("sendRegister").to.be.true; + expect(response).has.property("inboundUri").to.be.not.null; + expect(response) + .has.property("uris") + .to.be.an("array") + .to.have.lengthOf(1); + expect(response.uris[0]) + .has.property("host") + .to.be.equal(exampleHost); + expect(response.uris[0]).has.property("port").to.be.equal(5060); + expect(response.uris[0]).has.property("transport").to.be.equal("UDP"); + expect(response.uris[0]).has.property("user").to.be.equal("1001"); + expect(response.uris[0]).has.property("weight").to.be.equal(1); + expect(response.uris[0]).has.property("priority").to.be.equal(1); + expect(response.uris[0]).has.property("enabled").to.be.true; + expect(response).has.property("createdAt").to.be.a("date"); + expect(response).has.property("updatedAt").to.be.a("date"); + } + }, + { + id: `${idBase}-02`, + name: "should update the name of the trunk", + method: "updateTrunk", + request: { + ref: "{{ref}}", + name: "My New Trunk", + uris: [ + { + host: exampleHost, + port: 5060, + transport: "TCP", + user: "1001", + weight: 1, + priority: 1, + enabled: true + } + ] + }, + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-03`, + name: "should list at least one trunk", + method: "listTrunks", + request: { + pageSize: 10, + pageToken: null + }, + responseValidator: (response: { + items: { uris: unknown[] }[]; + nextPageToken: string; + }) => { + expect(response).has.property("items"); + expect(response).has.property("nextPageToken"); + expect(response.items.length).to.be.greaterThan(0); + expect(response.items[0]).to.have.property("ref").to.not.be.null; + expect(response.items[0]).to.have.property("name").to.not.be.null; + expect(response.items[0]).to.have.property("inboundUri").to.not.be + .null; + expect(response.items[0]).to.have.property("sendRegister").to.be.true; + expect(response.items[0]) + .to.have.property("uris") + .to.be.an("array") + .to.have.lengthOf(1); + expect(response.items[0].uris[0]) + .has.property("host") + .to.be.equal(exampleHost); + expect(response.items[0].uris[0]) + .has.property("port") + .to.be.equal(5060); + expect(response.items[0].uris[0]) + .has.property("transport") + .to.be.equal("TCP"); + expect(response.items[0].uris[0]) + .has.property("user") + .to.be.equal("1001"); + expect(response.items[0].uris[0]) + .has.property("weight") + .to.be.equal(1); + expect(response.items[0].uris[0]) + .has.property("priority") + .to.be.equal(1); + expect(response.items[0].uris[0]).has.property("enabled").to.be.true; + expect(response.items[0]) + .to.have.property("createdAt") + .to.be.a("date"); + expect(response.items[0]) + .to.have.property("updatedAt") + .to.be.a("date"); + } + }, + { + id: `${idBase}-04`, + name: "should delete the trunk", + method: "deleteTrunk", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-05`, + name: "should fail to delete the trunk (not found)", + method: "deleteTrunk", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + grpcCode: 5 + } + ] + }; +} + +export { createTrunksTestCases }; diff --git a/mods/sdk/test/integration/cases/usersTestCases.ts b/mods/sdk/test/integration/cases/usersTestCases.ts new file mode 100644 index 000000000..c2504cbb4 --- /dev/null +++ b/mods/sdk/test/integration/cases/usersTestCases.ts @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Here we update and get the default system user because we don't have +// a way to get the user we just created unless we login which +// is not possible in this test environment. +// +// Additionally, we are not testing the delete user method because +// we don't want to delete the default system user. +function createUsersTestCases(expect) { + const idBase = "users"; + + return { + api: "Users", + cases: [ + { + id: `${idBase}-00`, + name: "should create a user", + method: "createUser", + request: { + name: "John Doe", + email: `john${Math.floor(Math.random() * 100000)}@example.com`, + password: "password", + avatar: "https://example.com/avatar.jpg" + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-01`, + name: "should get the user", + method: "getUser", + request: "00000000-0000-0000-0000-000000000000", + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref").to.not.be.null; + expect(response).has.property("name").to.not.be.null; + expect(response).has.property("email").to.not.be.null; + expect(response).has.property("createdAt").to.be.a("date"); + expect(response).has.property("updatedAt").to.be.a("date"); + } + }, + { + id: `${idBase}-02`, + name: "should update the user", + method: "updateUser", + request: { + ref: "00000000-0000-0000-0000-000000000000", + name: "Jane Doe", + password: "changeme", + avatar: "https://example.com/a-different-avatar.jpg" + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + } + ] + }; +} + +export { createUsersTestCases }; diff --git a/mods/sdk/test/integration/cases/workspacesTestCases.ts b/mods/sdk/test/integration/cases/workspacesTestCases.ts new file mode 100644 index 000000000..bdba238a9 --- /dev/null +++ b/mods/sdk/test/integration/cases/workspacesTestCases.ts @@ -0,0 +1,144 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +function createWorkspacesTestCases(expect) { + const idBase = "workspaces"; + + return { + api: "Workspaces", + cases: [ + { + id: `${idBase}-00`, + name: "should create a workspace", + method: "createWorkspace", + request: { + name: "My Workspace" + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-01`, + name: "should get the workspace", + method: "getWorkspace", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref").to.not.be.null; + expect(response).has.property("name").to.not.be.null; + expect(response).has.property("ownerRef").to.not.be.null; + expect(response).has.property("createdAt").to.be.a("date"); + expect(response).has.property("updatedAt").to.be.a("date"); + } + }, + { + id: `${idBase}-02`, + name: "should update the name of the workspace", + method: "updateWorkspace", + request: { + ref: "{{ref}}", + name: "My New Workspace" + }, + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-03`, + name: "should list at least one workspace", + method: "listWorkspaces", + request: { + pageSize: 10, + pageToken: null + }, + responseValidator: (response: { + items: unknown[]; + nextPageToken: string; + }) => { + expect(response).has.property("items"); + expect(response).has.property("nextPageToken"); + expect(response.items.length).to.be.greaterThan(0); + expect(response.items[0]).to.have.property("ref").to.not.be.null; + expect(response.items[0]).to.have.property("name").to.not.be.null; + expect(response.items[0]).to.have.property("ownerRef").to.not.be.null; + expect(response.items[0]) + .to.have.property("createdAt") + .to.be.a("date"); + expect(response.items[0]) + .to.have.property("updatedAt") + .to.be.a("date"); + } + }, + { + id: `${idBase}-04`, + name: "should send invite to the workspace", + method: "inviteUserToWorkspace", + request: { + name: "Any doe", + email: `any.doe.${Date.now()}@example.com`, + role: "USER" + }, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("userRef"); + } + }, + { + id: `${idBase}-05`, + name: "should resend the workspace membership invitation", + method: "resendWorkspaceMembershipInvitation", + request: "{{userRef}}", + dependsOn: `${idBase}-04`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("userRef"); + } + }, + { + id: `${idBase}-06`, + name: "should remove user from the workspace", + method: "removeUserFromWorkspace", + request: "{{userRef}}", + dependsOn: `${idBase}-04`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("userRef"); + } + }, + { + id: `${idBase}-07`, + name: "should delete the workspace", + method: "deleteWorkspace", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + responseValidator: (response: { ref: string }) => { + expect(response).has.property("ref"); + } + }, + { + id: `${idBase}-08`, + name: "should fail to delete the workspace (not found)", + method: "deleteWorkspace", + request: "{{ref}}", + dependsOn: `${idBase}-00`, + grpcCode: 5 + } + ] + }; +} + +export { createWorkspacesTestCases }; diff --git a/mods/sdk/test/integration/node.integration.ts b/mods/sdk/test/integration/node.integration.ts new file mode 100644 index 000000000..3288bbd75 --- /dev/null +++ b/mods/sdk/test/integration/node.integration.ts @@ -0,0 +1,106 @@ +/* eslint-disable mocha/no-setup-in-describe */ +/* eslint-disable mocha/no-async-describe */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { expect } from "chai"; +import Mustache from "mustache"; +import { createTestCases } from "./cases/testCases"; +import { TestCase, runTestCase } from "./runTestCase"; +import * as SDK from "../../src/node"; + +const endpoint = "localhost:50051"; +const accessKeyId = "WO00000000000000000000000000000000"; +const username = "admin@fonoster.local"; +const password = "changeme"; + +/** + * This test is exactly the same as the one in the web.integration.ts file. + * The only difference are the imports and the client initialization. + */ +describe("@sdk[integration]", async function () { + const resultStore = {}; + let client: SDK.Client; + + before(async function () { + client = new SDK.Client({ + endpoint, + accessKeyId, + allowInsecure: true + }); + await client.login(username, password); + }); + + createTestCases(expect).forEach(async function (params: { + api: string; + cases: TestCase[]; + }) { + describe(params.api, async function () { + params.cases.forEach(async function (testCase: TestCase) { + const { + id, + name, + method, + request, + grpcCode, + dependsOn, + responseValidator, + only, + skip, + afterTestDelay + } = testCase; + + await new Promise((resolve) => { + const itFn = only ? it.only : skip ? it.skip : it; + + itFn(name, async function () { + if (dependsOn) { + expect(resultStore[dependsOn]).to.be.not.undefined; + } + + const computedRequest = Mustache.render( + JSON.stringify(request), + resultStore[dependsOn] + ); + + const response = await runTestCase({ + client, + api: params.api, + testCase: { + id, + name, + method, + request: JSON.parse(computedRequest), + grpcCode, + dependsOn, + afterTestDelay, + responseValidator + }, + tooling: { expect, SDK } + }); + + if (response) { + resultStore[id] = response; + } + resolve(); + }); + }); + }); + }); + }); +}); diff --git a/mods/sdk/test/integration/runTestCase.ts b/mods/sdk/test/integration/runTestCase.ts new file mode 100644 index 000000000..7a30705a5 --- /dev/null +++ b/mods/sdk/test/integration/runTestCase.ts @@ -0,0 +1,74 @@ +/* eslint-disable import/namespace */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { FonosterClient } from "../../src/client/types"; + +type TestCase = { + id: string; + name: string; + method: string; + request: unknown; + grpcCode?: number; + dependsOn?: string; + responseValidator?: (response: unknown) => void; + skip?: boolean; + only?: boolean; + afterTestDelay?: number; +}; + +async function runTestCase(params: { + client: FonosterClient; + api: string; + testCase: TestCase; + tooling: { expect; SDK }; +}) { + const { expect, SDK } = params.tooling; + const { client, api, testCase } = params; + + const { method, request, grpcCode, responseValidator, afterTestDelay } = + testCase; + const apiInstance = new SDK[api](client); + const clientMethod = apiInstance[method].bind(apiInstance); + + try { + const response = await clientMethod(request); + + expect(response).to.not.be.undefined; + + if (responseValidator) { + responseValidator(response); + } + + if (grpcCode) expect.fail(`Expected error code ${grpcCode}`); + + if (afterTestDelay) { + await new Promise((resolve) => setTimeout(resolve, afterTestDelay)); + } + + return response; + } catch (error) { + if (grpcCode) { + expect(error.code).to.equal(grpcCode); + return; + } + throw error; + } +} + +export { TestCase, runTestCase }; diff --git a/mods/sdk/test/integration/web.integration.ts b/mods/sdk/test/integration/web.integration.ts new file mode 100644 index 000000000..56c940a68 --- /dev/null +++ b/mods/sdk/test/integration/web.integration.ts @@ -0,0 +1,105 @@ +/* eslint-disable mocha/no-setup-in-describe */ +/* eslint-disable mocha/no-async-describe */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { expect } from "@esm-bundle/chai"; +import Mustache from "mustache"; +import { createTestCases } from "./cases/testCases"; +import { TestCase, runTestCase } from "./runTestCase"; +import * as SDK from "../../dist/web/index.esm.js"; + +const url = "http://localhost:8449/"; +const accessKeyId = "WO00000000000000000000000000000000"; +const username = "admin@fonoster.local"; +const password = "changeme"; + +/** + * This test is exactly the same as the one in the node.integration.ts file. + * The only difference are the imports and the client initialization. + */ +describe("@sdk[integration]", async function () { + const resultStore = {}; + let client: SDK.WebClient; + + before(async function () { + client = new SDK.WebClient({ + url, + accessKeyId + }); + await client.login(username, password); + }); + + createTestCases(expect).forEach(async function (params: { + api: string; + cases: TestCase[]; + }) { + describe(params.api, async function () { + params.cases.forEach(async function (testCase: TestCase) { + const { + id, + name, + method, + request, + grpcCode, + dependsOn, + responseValidator, + skip, + only, + afterTestDelay + } = testCase; + + await new Promise((resolve) => { + const itFn = only ? it.only : skip ? it.skip : it; + + itFn(name, async function () { + if (dependsOn) { + expect(resultStore[dependsOn]).to.be.not.undefined; + } + + const computedRequest = Mustache.render( + JSON.stringify(request), + resultStore[dependsOn] + ); + + const response = await runTestCase({ + client, + api: params.api, + testCase: { + id, + name, + method, + request: JSON.parse(computedRequest), + grpcCode, + dependsOn, + afterTestDelay, + responseValidator + }, + tooling: { expect, SDK } + }); + + if (response) { + resultStore[id] = response; + } + resolve(); + }); + }); + }); + }); + }); +}); diff --git a/mods/sdk/test/jsonToObject.test.ts b/mods/sdk/test/jsonToObject.test.ts new file mode 100644 index 000000000..e1d50ad6b --- /dev/null +++ b/mods/sdk/test/jsonToObject.test.ts @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@sdk[client/jsonToObject]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should return a new instance of the object", async function () { + // Arrange + const { jsonToObject } = await import("../src/client/jsonToObject"); + + enum ExampleEnum { + VALUE1 = 0, + VALUE2 = 1 + } + + class EmbeddedObject { + private name: string; + + public setName(name: string): void { + this.name = name; + } + + public getName(): string { + return this.name; + } + } + + class CreateExampleRequest { + private name: string; + private marray: string[]; + private enumValue: ExampleEnum; + private embeddedObject: EmbeddedObject; + + public setName(name: string): void { + this.name = name; + } + + public getName(): string { + return this.name; + } + + public setMarray(marray: string[]): void { + this.marray = marray; + } + + public getMarray(): string[] { + return this.marray; + } + + public setEnumValue(enumValue: ExampleEnum): void { + this.enumValue = enumValue; + } + + public getEnumValue(): ExampleEnum { + return this.enumValue; + } + + public setEmbeddedObject(embeddedObject: EmbeddedObject): void { + this.embeddedObject = embeddedObject; + } + + public getEmbeddedObject(): EmbeddedObject { + return this.embeddedObject; + } + } + + const jsonObj = { + name: "test", + marray: ["test1", "test2"], + enumValue: "VALUE1", + embeddedObject: { + name: "embedded" + } + }; + + // Act + const result = jsonToObject<{ name: string }, CreateExampleRequest>({ + json: jsonObj, + objectConstructor: CreateExampleRequest, + enumMapping: [["enumValue", ExampleEnum]], + objectMapping: [["embeddedObject", EmbeddedObject]] + }); + + // Assert + expect(result).to.be.an.instanceOf(Object); + expect(result.getName()).to.be.equal(jsonObj.name); + expect(result.getMarray()).to.be.eql(jsonObj.marray); + expect(result.getEnumValue()).to.be.equal(ExampleEnum.VALUE1); + expect(result.getEmbeddedObject()).to.be.an.instanceOf(EmbeddedObject); + expect(result.getEmbeddedObject().getName()).to.be.equal( + jsonObj.embeddedObject.name + ); + }); +}); diff --git a/mods/sdk/test/objectToJson.test.ts b/mods/sdk/test/objectToJson.test.ts new file mode 100644 index 000000000..76b11fafc --- /dev/null +++ b/mods/sdk/test/objectToJson.test.ts @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); + +describe("@sdk[client/objectToJson]", function () { + it("should return a object from a json", async function () { + // Arrange + const { objectToJson } = await import("../src/client/objectToJson"); + + enum ExampleEnum { + FOO = 0, + BAR = 1, + BAZ = 2 + } + + class RepeatableObject { + private value: string; + + public getValue(): string { + return this.value; + } + + public setValue(value: string): void { + this.value = value; + } + } + + class Example { + public getFoo(): string { + return "foo"; + } + + public getBar(): string { + return "bar"; + } + + public getBaz(): ExampleEnum { + return ExampleEnum.BAZ; + } + + public getItemsList(): Array { + const items = ["foo", "bar", "baz"]; + return items.map((item) => { + const obj = new RepeatableObject(); + obj.setValue(item); + return obj; + }); + } + } + + const obj = new Example() as unknown as new () => unknown; + + type CreateExampleResponse = { + foo: string; + bar: string; + baz: ExampleEnum; + items: Array<{ value: string }>; + }; + + // Act + const result = objectToJson( + obj, + [["baz", ExampleEnum]], + null, + [["itemsList", RepeatableObject]] + ); + + // Assert + expect(result).to.deep.equal({ + foo: "foo", + bar: "bar", + baz: "BAZ", + items: [ + { + value: "foo" + }, + { + value: "bar" + }, + { + value: "baz" + } + ] + }); + }); +}); diff --git a/mods/sdk/test/sdk.unit.test.ts b/mods/sdk/test/sdk.unit.test.ts deleted file mode 100644 index b5e11a21b..000000000 --- a/mods/sdk/test/sdk.unit.test.ts +++ /dev/null @@ -1,4 +0,0 @@ -// No much to test here -describe("@fonoster/sdk", () => { - it("needs tests"); -}); diff --git a/mods/sdk/tsconfig.json b/mods/sdk/tsconfig.json index dac2ad8ea..f4844034b 100644 --- a/mods/sdk/tsconfig.json +++ b/mods/sdk/tsconfig.json @@ -1,24 +1,33 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "target": "esnext", + "module": "commonjs", + "lib": ["esnext"], + "rootDir": ".", + "outDir": "./dist/node", + "strict": false, + "noImplicitAny": false, + "strictNullChecks": false, + "skipLibCheck": true, + "esModuleInterop": true, + "moduleResolution": "node", + "forceConsistentCasingInFileNames": true, + "types": ["node"] }, - "references": [ - { "path": "../apps" }, - { "path": "../auth" }, - { "path": "../secrets" }, - { "path": "../agents" }, - { "path": "../funcs" }, - { "path": "../storage" }, - { "path": "../callmanager" }, - { "path": "../logger" }, - { "path": "../providers" }, - { "path": "../numbers" }, - { "path": "../domains" }, - { "path": "../projects" }, - { "path": "../users" }, - { "path": "../monitor" } + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "node_modules", + "dist", + "test", + "src/client/WebClient.ts", + "src/web.ts" ], - "exclude": ["node_modules", "dist", "test"] + "references": [ + { + "path": "../types" + } + ] } diff --git a/mods/sdk/tsconfig.web.json b/mods/sdk/tsconfig.web.json new file mode 100644 index 000000000..429eae086 --- /dev/null +++ b/mods/sdk/tsconfig.web.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "es6", + "outDir": "./dist/web", + "rootDir": "./src", + "strict": true, + "noImplicitAny": false, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + }, + "include": [ + "src/**/*.ts" + ], + "references": [ + { + "path": "../types" + } + ] +} \ No newline at end of file diff --git a/mods/secrets/.dockerignore b/mods/secrets/.dockerignore deleted file mode 100644 index b512c09d4..000000000 --- a/mods/secrets/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/mods/secrets/.lerna-changed-buster-192 b/mods/secrets/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/secrets/.npmignore b/mods/secrets/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/secrets/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/secrets/Dockerfile b/mods/secrets/Dockerfile deleted file mode 100644 index 4d90f4384..000000000 --- a/mods/secrets/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs \ - && npm install -g fonoster-*.tgz \ - && apk del npm git - -USER fonoster - -CMD ["run_secrets"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_secrets" ] \ No newline at end of file diff --git a/mods/secrets/package-lock.json b/mods/secrets/package-lock.json deleted file mode 100644 index ef5a26293..000000000 --- a/mods/secrets/package-lock.json +++ /dev/null @@ -1,1587 +0,0 @@ -{ - "name": "@fonoster/secrets", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/secrets", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "grpc-promise": "^1.4.0", - "node-vault": "^0.9.21" - }, - "bin": { - "healthcheck_secrets": "dist/service/healthcheck.js", - "init": "dist/utils/init.js", - "run_secrets": "dist/service/runner.js" - }, - "devDependencies": {} - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.2.29", - "@fonoster/common": "^0.2.29", - "@fonoster/errors": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.6", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.6", - "@speedymonster/grpc-interceptors": "^0.2.5", - "atob": "^2.1.2", - "deepmerge": "^4.2.2" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.2.29", - "@fonoster/certs": "^0.2.29", - "@fonoster/common": "^0.2.29", - "@fonoster/errors": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.6", - "atob": "^2.1.2", - "axios": "^0.21.1", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "grpc-ts-health-check": "^2.0.6", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.2.29", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.3.3" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.5.tgz", - "integrity": "sha512-FTd27ItHlsSG/7hp62xgI9YnqSwRbHRSVmDVR8DwOoC+6t8JhHRXe2JL0U8N9GLc0jS0HrtEbO/KP5+G0ebjLQ==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" - }, - "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/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "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/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/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "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/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/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "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/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "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/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "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-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "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.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mustache": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz", - "integrity": "sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==", - "bin": { - "mustache": "bin/mustache" - }, - "engines": { - "npm": ">=1.4.0" - } - }, - "node_modules/node-vault": { - "version": "0.9.22", - "resolved": "https://registry.npmjs.org/node-vault/-/node-vault-0.9.22.tgz", - "integrity": "sha512-/IR+YvINFhCzxJA5x/KHUDymJerFaeqvPUE2zwceRig8yEIA41qfVKusmO6bqRGFkr/2f6CaBVp7YfabzQyteg==", - "dependencies": { - "debug": "3.1.0", - "mustache": "^2.2.1", - "request": "2.88.0", - "request-promise-native": "1.0.7", - "tv4": "^1.2.7" - } - }, - "node_modules/node-vault/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/node-vault/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "node_modules/request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/request-promise-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", - "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", - "dependencies": { - "lodash": "^4.17.11" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "request": "^2.34" - } - }, - "node_modules/request-promise-native": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", - "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", - "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", - "dependencies": { - "request-promise-core": "1.1.2", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "engines": { - "node": ">=0.12.0" - }, - "peerDependencies": { - "request": "^2.34" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "engines": { - "node": ">=0.10.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/tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dependencies": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tv4": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", - "integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "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/uri-js/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "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/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/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/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" - } - } - }, - "dependencies": { - "@grpc/grpc-js": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.5.tgz", - "integrity": "sha512-FTd27ItHlsSG/7hp62xgI9YnqSwRbHRSVmDVR8DwOoC+6t8JhHRXe2JL0U8N9GLc0jS0HrtEbO/KP5+G0ebjLQ==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - } - }, - "@opentelemetry/api": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.3.0.tgz", - "integrity": "sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" - }, - "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==" - } - } - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "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" - } - }, - "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" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "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==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "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==" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "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==" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "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-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "mustache": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz", - "integrity": "sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==" - }, - "node-vault": { - "version": "0.9.22", - "resolved": "https://registry.npmjs.org/node-vault/-/node-vault-0.9.22.tgz", - "integrity": "sha512-/IR+YvINFhCzxJA5x/KHUDymJerFaeqvPUE2zwceRig8yEIA41qfVKusmO6bqRGFkr/2f6CaBVp7YfabzQyteg==", - "requires": { - "debug": "3.1.0", - "mustache": "^2.2.1", - "request": "2.88.0", - "request-promise-native": "1.0.7", - "tv4": "^1.2.7" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - } - } - }, - "request-promise-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", - "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", - "requires": { - "lodash": "^4.17.11" - } - }, - "request-promise-native": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", - "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", - "requires": { - "request-promise-core": "1.1.2", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" - }, - "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" - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tv4": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", - "integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM=" - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "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" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - } - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.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==" - } - } -} diff --git a/mods/secrets/package.json b/mods/secrets/package.json deleted file mode 100644 index 131ec648f..000000000 --- a/mods/secrets/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "@fonoster/secrets", - "version": "0.3.22", - "description": "Users Manager", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/client/secrets", - "types": "dist/client/secrets", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "postbuild": "cp -a ./src/service/protos/ ./dist/service/protos", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/srv_runner" - }, - "bin": { - "run_secrets": "dist/service/runner.js", - "healthcheck_secrets": "dist/service/healthcheck.js", - "init": "dist/utils/init.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "grpc-promise": "^1.4.0", - "node-vault": "^0.9.21" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/secrets/src/client/secrets.ts b/mods/secrets/src/client/secrets.ts deleted file mode 100644 index 93164d230..000000000 --- a/mods/secrets/src/client/secrets.ts +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { APIClient, ClientOptions } from "@fonoster/common"; -import { SecretsClient } from "../service/protos/secrets_grpc_pb"; -import SecretPB from "../service/protos/secrets_pb"; -import CommonPB from "../service/protos/common_pb"; -import { promisifyAll } from "grpc-promise"; -import { - CreateSecretRequest, - CreateSecretResponse, - GetSecretResponse, - ISecretsClient, - ListSecretsRequest, - ListSecretsResponse, - Secret -} from "./types"; - -/** - * @classdesc Use Fonoster Secrets, a capability of Fonoster Secrets Service, - * to create and manage your secrets. Fonoster Secrets requires of a - * running Fonoster deployment. - * - * @extends APIClient - * @example - * - * const Fonoster = require("@fonoster/sdk") - * const secrets = new Fonoster.Secrets() - * - * const request = { - * secretName: "my-secret", - * secret: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" - * }; - * - * secrets.createSecret(request) - * .then(result => { - * console.log(result) // message with the CreateSecretResponse interface - * }).catch(e => console.error(e)); // an error occurred - */ -export default class Secrets extends APIClient implements ISecretsClient { - /** - * Constructs a Secrets Object. - * - * @param {ClientOptions} options - Options to indicate the objects endpoint - * @see module:core:APIClient - */ - constructor(options?: ClientOptions) { - super(SecretsClient, options); - super.init(); - promisifyAll(super.getService(), { metadata: super.getMeta() }); - } - - /** - * Creates and stores a new secret. - * - * @param {CreateSecretRequest} request - Request to create a new secret - * @param {string} request.name - Friendly name for the secret - * @param {string} request.secret - Actual secret - * @return {Promise} - * @example - * - * const request = { - * name: "my-secret", - * secret: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" - * }; - * - * secrets.createSecret(request) - * .then(result => { - * console.log(result) // returns the CreateDomainResponse interface - * }).catch(e => console.error(e)); // an error occurred - */ - async createSecret( - request: CreateSecretRequest - ): Promise { - const secret = new SecretPB.Secret(); - secret.setName(request.name); - secret.setSecret(request.secret); - - const req = new SecretPB.CreateSecretRequest(); - req.setName(secret.getName()); - req.setSecret(secret.getSecret()); - - const secretFromVault = await super - .getService() - .createSecret() - .sendMessage(req); - - return { - name: secretFromVault.getName() - }; - } - - /** - * Gets a secret by name. - * - * @param {CreateSecretRequest} request - Request to create a new Secret - * @param {string} request.name - Friendly name for the Secret - * @param {string} request.secret - Secret to save - * @return {Promise} - * @example - * - * const request = { - * name: "my-secret", - * secret: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" - * }; - * - * secrets.createSecret(request) - * .then(result => { - * console.log(result) // returns the GetSecretResponse interface - * }).catch(e => console.error(e)); // an error occurred - */ - async getSecret(name: string): Promise { - const req = new SecretPB.GetSecretRequest(); - req.setName(name); - - const secretFromVault = await super - .getService() - .getSecret() - .sendMessage(req); - - return { - name: secretFromVault.getName(), - secret: secretFromVault.getSecret() - }; - } - - /** - * List all the secrets for current Project. - * - * @param {ListSecretRequest} request - Request for the provision of - * a new Secret - * @param {string} request.name - Friendly name for the Secret - * @param {string} request.secret - secret to be save - * @return {Promise} - * @example - * - * const request = { - * pageSize: 1, - * pageToken: 1 - * }; - * - * secrets.listSecrets(request) - * .then(result => { - * console.log(result) - * }).catch(e => console.error(e)); // an error occurred - */ - async listSecrets(request: ListSecretsRequest): Promise { - const req = new SecretPB.ListSecretsIdRequest(); - req.setPageSize(request.pageSize); - req.setPageToken(request.pageToken); - const paginatedList = await this.getService() - .listSecretsId() - .sendMessage(req); - - return { - nextPageToken: paginatedList.getNextPageToken(), - secrets: paginatedList.getSecretsList().map((name: string) => { - return { - name - }; - }) - }; - } - - /** - * Removes a secret by name. - * - * @param {string} name - Secret name - * @example - * - * secrets.deleteSecret("my-secret") - * .then(() => { - * console.log("successful") - * }).catch(e => console.error(e)); // an error occurred - */ - async deleteSecret(name: string): Promise { - const req = new SecretPB.DeleteSecretRequest(); - req.setName(name); - await super.getService().deleteSecret().sendMessage(req); - } -} - -export { Secret, SecretPB, CommonPB, ISecretsClient }; - -// WARNING: Workaround for support to commonjs clients -module.exports = Secrets; -module.exports.SecretPB = SecretPB; -module.exports.CommonPB = CommonPB; diff --git a/mods/secrets/src/client/types.ts b/mods/secrets/src/client/types.ts deleted file mode 100644 index b45362444..000000000 --- a/mods/secrets/src/client/types.ts +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface ISecretsClient { - createSecret(request: CreateSecretRequest): Promise; - getSecret(ref: string): Promise; - listSecrets(request: ListSecretsRequest): Promise; - deleteSecret(ref: string): void; -} -export interface CreateSecretRequest { - name: string; - secret: string; -} - -export interface CreateSecretResponse { - name: string; -} - -export interface GetSecretResponse { - name: string; - secret: string; -} - -export interface ListSecretsRequest { - pageSize: number; - pageToken: string; -} - -export interface ListSecretsResponse { - secrets: Secret[]; - nextPageToken: string; -} - -export interface Secret { - name: string; -} diff --git a/mods/secrets/src/protos/secrets.proto b/mods/secrets/src/protos/secrets.proto deleted file mode 100644 index 79be8aedd..000000000 --- a/mods/secrets/src/protos/secrets.proto +++ /dev/null @@ -1,82 +0,0 @@ -/** - * MIT License - * Copyright (c) 2021 Fonoster Inc - * - * The SecretMananger proto contains the artificts for Secrets administration - * such as creation and deployment. - */ -syntax = "proto3"; - -package fonoster.secrets.v1beta1; - -option go_package = "github.com/fonoster/fonoster/mods/secrets/fonoster/services/protos/secrets"; - -import "protoc-gen-openapiv2/options/annotations.proto"; -import "google/api/annotations.proto"; -import "common.proto"; - -service Secrets { - // Lists Secret - rpc ListSecretsId (ListSecretsIdRequest) returns (ListSecretsIdResponse) { - option (google.api.http) = { get: "/v1beta1/secrets" }; - }; - rpc CreateSecret (CreateSecretRequest) returns (Secret) { - option (google.api.http) = { - post: "/v1beta1/secrets" - body: "*" - }; - }; - // Gets Secret with the Secret-name - rpc GetSecret (GetSecretRequest) returns (Secret) { - option (google.api.http) = { get: "/v1beta1/secrets/{name}" }; - }; - // Peforms a hard delete of the Secret resource - rpc DeleteSecret (DeleteSecretRequest) returns (fonoster.common.v1beta1.Empty) { - option (google.api.http) = { - delete: "/v1beta1/secrets/{name}" - }; - }; -} - -message ListSecretsIdRequest { - // The maximum number of items in the list - int32 page_size = 1; - - // The next_page_token value returned from the previous request, if any - string page_token = 2; - - // Level of detail of the individual entities (reserved) - fonoster.common.v1beta1.View view = 3; -} - -message ListSecretsIdResponse { - // List of Secrets - repeated string secrets = 1; - // Token to retrieve the next page of results, or empty if there are no more results in the list - string next_page_token = 2; -} - -message GetSecretRequest { - string name = 1; - fonoster.common.v1beta1.View view = 2; -} - -message CreateSecretRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"name\": \"mydbsecret\", \"secret\": \"s3cr3t\"}" - }; - string name = 1; - string secret = 2; -} - -message DeleteSecretRequest { - string name = 1; -} - -message Secret { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"name\": \"mydbsecret\", \"secret\": \"s3cr3t\"}" - }; - string name = 1; - string secret = 2; -} diff --git a/mods/secrets/src/service/create_secret.ts b/mods/secrets/src/service/create_secret.ts deleted file mode 100644 index c3c650ed0..000000000 --- a/mods/secrets/src/service/create_secret.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Secret } from "./protos/secrets_pb"; -import getUserToken from "./token"; -import Vault from "node-vault"; - -export default async function ( - name: string, - secret: string, - accessKeyId: string -): Promise { - const vault = Vault(); - const entityId = await getUserToken(accessKeyId); - await vault.write(`secret/data/${entityId}/${name}`, { - data: { value: secret } - }); - const response = new Secret(); - response.setName(name); - return response; -} diff --git a/mods/secrets/src/service/delete_secret.ts b/mods/secrets/src/service/delete_secret.ts deleted file mode 100644 index 037bbbefb..000000000 --- a/mods/secrets/src/service/delete_secret.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import getUserToken from "./token"; -import Vault from "node-vault"; - -export default async function (name: string, accessKeyId: string) { - const vault = Vault(); - const entityId = await getUserToken(accessKeyId); - await vault.delete(`secret/data/${entityId}/` + name); -} diff --git a/mods/secrets/src/service/get_secret.ts b/mods/secrets/src/service/get_secret.ts deleted file mode 100644 index dd49719ef..000000000 --- a/mods/secrets/src/service/get_secret.ts +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Secret } from "./protos/secrets_pb"; -import getUserToken from "./token"; -import Vault from "node-vault"; - -export default async function ( - name: string, - accessKeyId: string -): Promise { - const vault = Vault(); - const entityId = await getUserToken(accessKeyId); - const secretFromVault = await vault.read(`secret/data/${entityId}/` + name); - const response = new Secret(); - response.setSecret(secretFromVault?.data?.data?.value); - response.setName(name); - return response; -} diff --git a/mods/secrets/src/service/healthcheck.ts b/mods/secrets/src/service/healthcheck.ts deleted file mode 100644 index 01e7d55ba..000000000 --- a/mods/secrets/src/service/healthcheck.ts +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonos - * - * This file is part of Project Fonos - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -import axios from "axios"; -import logger from "@fonoster/logger"; - -// First checks the grpc health -healthcheck(); - -// Next, ensure vault is up -axios - .get(`${process.env.VAULT_ADDR}/v1/sys/health`) - .then((result) => { - if (!result.data || result.data.sealed) { - process.exit(1); - } else { - process.exit(0); - } - }) - .catch((e) => { - logger.error(e); - process.exit(1); - }); diff --git a/mods/secrets/src/service/list_secret.ts b/mods/secrets/src/service/list_secret.ts deleted file mode 100644 index 82bf2c06d..000000000 --- a/mods/secrets/src/service/list_secret.ts +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import getUserToken from "./token"; -import Vault from "node-vault"; - -export default async function ( - pageToken: number, - pageSize: number, - accessKeyId: string -) { - if (!pageToken) return {}; - pageToken--; - pageSize--; - - const upperRange = pageToken + pageSize; - const vault = Vault(); - const entityId = await getUserToken(accessKeyId); - const secretFromVault = await vault.list(`secret/data/${entityId}/`); - - const keys = secretFromVault.data.keys; - const secrets = []; - - for (const index in keys) { - secrets.push(keys[index]); - } - - return { - secrets, - pageToken: upperRange + 1 - }; -} diff --git a/mods/secrets/src/service/protos/common_grpc_pb.js b/mods/secrets/src/service/protos/common_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/secrets/src/service/protos/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/secrets/src/service/protos/common_pb.d.ts b/mods/secrets/src/service/protos/common_pb.d.ts deleted file mode 100644 index f8b5fb810..000000000 --- a/mods/secrets/src/service/protos/common_pb.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// package: fonoster.common.v1beta1 -// file: common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class Empty extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Empty.AsObject; - static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Empty; - static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; -} - -export namespace Empty { - export type AsObject = { - } -} - -export class ErrorResponse extends jspb.Message { - getStatus(): number; - setStatus(value: number): ErrorResponse; - getMessage(): string; - setMessage(value: string): ErrorResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ErrorResponse.AsObject; - static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ErrorResponse; - static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse; -} - -export namespace ErrorResponse { - export type AsObject = { - status: number, - message: string, - } -} - -export enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2, -} diff --git a/mods/secrets/src/service/protos/common_pb.js b/mods/secrets/src/service/protos/common_pb.js deleted file mode 100644 index b7f99c7ea..000000000 --- a/mods/secrets/src/service/protos/common_pb.js +++ /dev/null @@ -1,335 +0,0 @@ -// source: common.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -goog.exportSymbol('proto.fonoster.common.v1beta1.Empty', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.ErrorResponse', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.View', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.Empty = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.Empty, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.Empty.displayName = 'proto.fonoster.common.v1beta1.Empty'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.ErrorResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.ErrorResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.ErrorResponse.displayName = 'proto.fonoster.common.v1beta1.ErrorResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.Empty.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.Empty.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.Empty} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.Empty; - return proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.Empty} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.Empty.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.Empty} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.ErrorResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.toObject = function(includeInstance, msg) { - var f, obj = { - status: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.ErrorResponse; - return proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setStatus(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getStatus(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional int32 status = 1; - * @return {number} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getStatus = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setStatus = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * @enum {number} - */ -proto.fonoster.common.v1beta1.View = { - BASIC: 0, - STANDARD: 1, - FULL: 2 -}; - -goog.object.extend(exports, proto.fonoster.common.v1beta1); diff --git a/mods/secrets/src/service/protos/google/api/annotations_grpc_pb.js b/mods/secrets/src/service/protos/google/api/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/secrets/src/service/protos/google/api/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/secrets/src/service/protos/google/api/annotations_pb.d.ts b/mods/secrets/src/service/protos/google/api/annotations_pb.d.ts deleted file mode 100644 index 06072f3bd..000000000 --- a/mods/secrets/src/service/protos/google/api/annotations_pb.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// package: google.api -// file: google/api/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_api_http_pb from "../../google/api/http_pb"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const http: jspb.ExtensionFieldInfo; diff --git a/mods/secrets/src/service/protos/google/api/annotations_pb.js b/mods/secrets/src/service/protos/google/api/annotations_pb.js deleted file mode 100644 index 99e4c1824..000000000 --- a/mods/secrets/src/service/protos/google/api/annotations_pb.js +++ /dev/null @@ -1,48 +0,0 @@ -// source: google/api/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_http_pb = require('../../google/api/http_pb.js'); -goog.object.extend(proto, google_api_http_pb); -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.http', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `http`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.google.api.http = new jspb.ExtensionFieldInfo( - 72295728, - {http: 0}, - google_api_http_pb.HttpRule, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - google_api_http_pb.HttpRule.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[72295728] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.http, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - google_api_http_pb.HttpRule.serializeBinaryToWriter, - google_api_http_pb.HttpRule.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[72295728] = proto.google.api.http; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/secrets/src/service/protos/google/api/field_behavior_grpc_pb.js b/mods/secrets/src/service/protos/google/api/field_behavior_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/secrets/src/service/protos/google/api/field_behavior_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/secrets/src/service/protos/google/api/field_behavior_pb.d.ts b/mods/secrets/src/service/protos/google/api/field_behavior_pb.d.ts deleted file mode 100644 index 9b853705f..000000000 --- a/mods/secrets/src/service/protos/google/api/field_behavior_pb.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -// package: google.api -// file: google/api/field_behavior.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const fieldBehavior: jspb.ExtensionFieldInfo; - -export enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, -} diff --git a/mods/secrets/src/service/protos/google/api/field_behavior_pb.js b/mods/secrets/src/service/protos/google/api/field_behavior_pb.js deleted file mode 100644 index 44160cc41..000000000 --- a/mods/secrets/src/service/protos/google/api/field_behavior_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// source: google/api/field_behavior.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.FieldBehavior', null, global); -goog.exportSymbol('proto.google.api.fieldBehaviorList', null, global); -/** - * @enum {number} - */ -proto.google.api.FieldBehavior = { - FIELD_BEHAVIOR_UNSPECIFIED: 0, - OPTIONAL: 1, - REQUIRED: 2, - OUTPUT_ONLY: 3, - INPUT_ONLY: 4, - IMMUTABLE: 5, - UNORDERED_LIST: 6, - NON_EMPTY_DEFAULT: 7 -}; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `fieldBehaviorList`. - * @type {!jspb.ExtensionFieldInfo>} - */ -proto.google.api.fieldBehaviorList = new jspb.ExtensionFieldInfo( - 1052, - {fieldBehaviorList: 0}, - null, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - null), - 1); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1052] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.fieldBehaviorList, - jspb.BinaryReader.prototype.readPackedEnum, - jspb.BinaryWriter.prototype.writePackedEnum, - undefined, - undefined, - true); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1052] = proto.google.api.fieldBehaviorList; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/secrets/src/service/protos/google/api/http_grpc_pb.js b/mods/secrets/src/service/protos/google/api/http_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/secrets/src/service/protos/google/api/http_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/secrets/src/service/protos/google/api/http_pb.d.ts b/mods/secrets/src/service/protos/google/api/http_pb.d.ts deleted file mode 100644 index 02c3b1ece..000000000 --- a/mods/secrets/src/service/protos/google/api/http_pb.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -// package: google.api -// file: google/api/http.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Http extends jspb.Message { - clearRulesList(): void; - getRulesList(): Array; - setRulesList(value: Array): Http; - addRules(value?: HttpRule, index?: number): HttpRule; - getFullyDecodeReservedExpansion(): boolean; - setFullyDecodeReservedExpansion(value: boolean): Http; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Http.AsObject; - static toObject(includeInstance: boolean, msg: Http): Http.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Http; - static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http; -} - -export namespace Http { - export type AsObject = { - rulesList: Array, - fullyDecodeReservedExpansion: boolean, - } -} - -export class HttpRule extends jspb.Message { - getSelector(): string; - setSelector(value: string): HttpRule; - - hasGet(): boolean; - clearGet(): void; - getGet(): string; - setGet(value: string): HttpRule; - - hasPut(): boolean; - clearPut(): void; - getPut(): string; - setPut(value: string): HttpRule; - - hasPost(): boolean; - clearPost(): void; - getPost(): string; - setPost(value: string): HttpRule; - - hasDelete(): boolean; - clearDelete(): void; - getDelete(): string; - setDelete(value: string): HttpRule; - - hasPatch(): boolean; - clearPatch(): void; - getPatch(): string; - setPatch(value: string): HttpRule; - - hasCustom(): boolean; - clearCustom(): void; - getCustom(): CustomHttpPattern | undefined; - setCustom(value?: CustomHttpPattern): HttpRule; - getBody(): string; - setBody(value: string): HttpRule; - getResponseBody(): string; - setResponseBody(value: string): HttpRule; - clearAdditionalBindingsList(): void; - getAdditionalBindingsList(): Array; - setAdditionalBindingsList(value: Array): HttpRule; - addAdditionalBindings(value?: HttpRule, index?: number): HttpRule; - - getPatternCase(): HttpRule.PatternCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpRule.AsObject; - static toObject(includeInstance: boolean, msg: HttpRule): HttpRule.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpRule, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpRule; - static deserializeBinaryFromReader(message: HttpRule, reader: jspb.BinaryReader): HttpRule; -} - -export namespace HttpRule { - export type AsObject = { - selector: string, - get: string, - put: string, - post: string, - pb_delete: string, - patch: string, - custom?: CustomHttpPattern.AsObject, - body: string, - responseBody: string, - additionalBindingsList: Array, - } - - export enum PatternCase { - PATTERN_NOT_SET = 0, - GET = 2, - PUT = 3, - POST = 4, - DELETE = 5, - PATCH = 6, - CUSTOM = 8, - } - -} - -export class CustomHttpPattern extends jspb.Message { - getKind(): string; - setKind(value: string): CustomHttpPattern; - getPath(): string; - setPath(value: string): CustomHttpPattern; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CustomHttpPattern.AsObject; - static toObject(includeInstance: boolean, msg: CustomHttpPattern): CustomHttpPattern.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CustomHttpPattern, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CustomHttpPattern; - static deserializeBinaryFromReader(message: CustomHttpPattern, reader: jspb.BinaryReader): CustomHttpPattern; -} - -export namespace CustomHttpPattern { - export type AsObject = { - kind: string, - path: string, - } -} diff --git a/mods/secrets/src/service/protos/google/api/http_pb.js b/mods/secrets/src/service/protos/google/api/http_pb.js deleted file mode 100644 index 0359c5eec..000000000 --- a/mods/secrets/src/service/protos/google/api/http_pb.js +++ /dev/null @@ -1,1006 +0,0 @@ -// source: google/api/http.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.google.api.CustomHttpPattern', null, global); -goog.exportSymbol('proto.google.api.Http', null, global); -goog.exportSymbol('proto.google.api.HttpRule', null, global); -goog.exportSymbol('proto.google.api.HttpRule.PatternCase', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.Http = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Http.repeatedFields_, null); -}; -goog.inherits(proto.google.api.Http, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.Http.displayName = 'proto.google.api.Http'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpRule = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpRule.repeatedFields_, proto.google.api.HttpRule.oneofGroups_); -}; -goog.inherits(proto.google.api.HttpRule, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpRule.displayName = 'proto.google.api.HttpRule'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.CustomHttpPattern = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.google.api.CustomHttpPattern, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.CustomHttpPattern.displayName = 'proto.google.api.CustomHttpPattern'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.Http.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.Http.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.Http.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.Http} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.toObject = function(includeInstance, msg) { - var f, obj = { - rulesList: jspb.Message.toObjectList(msg.getRulesList(), - proto.google.api.HttpRule.toObject, includeInstance), - fullyDecodeReservedExpansion: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.Http; - return proto.google.api.Http.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.Http} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addRules(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFullyDecodeReservedExpansion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.Http.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.Http.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.Http} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRulesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } - f = message.getFullyDecodeReservedExpansion(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * repeated HttpRule rules = 1; - * @return {!Array} - */ -proto.google.api.Http.prototype.getRulesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.Http} returns this -*/ -proto.google.api.Http.prototype.setRulesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.Http.prototype.addRules = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.clearRulesList = function() { - return this.setRulesList([]); -}; - - -/** - * optional bool fully_decode_reserved_expansion = 2; - * @return {boolean} - */ -proto.google.api.Http.prototype.getFullyDecodeReservedExpansion = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.setFullyDecodeReservedExpansion = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpRule.repeatedFields_ = [11]; - -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.google.api.HttpRule.oneofGroups_ = [[2,3,4,5,6,8]]; - -/** - * @enum {number} - */ -proto.google.api.HttpRule.PatternCase = { - PATTERN_NOT_SET: 0, - GET: 2, - PUT: 3, - POST: 4, - DELETE: 5, - PATCH: 6, - CUSTOM: 8 -}; - -/** - * @return {proto.google.api.HttpRule.PatternCase} - */ -proto.google.api.HttpRule.prototype.getPatternCase = function() { - return /** @type {proto.google.api.HttpRule.PatternCase} */(jspb.Message.computeOneofCase(this, proto.google.api.HttpRule.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpRule.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpRule.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpRule} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.toObject = function(includeInstance, msg) { - var f, obj = { - selector: jspb.Message.getFieldWithDefault(msg, 1, ""), - get: jspb.Message.getFieldWithDefault(msg, 2, ""), - put: jspb.Message.getFieldWithDefault(msg, 3, ""), - post: jspb.Message.getFieldWithDefault(msg, 4, ""), - pb_delete: jspb.Message.getFieldWithDefault(msg, 5, ""), - patch: jspb.Message.getFieldWithDefault(msg, 6, ""), - custom: (f = msg.getCustom()) && proto.google.api.CustomHttpPattern.toObject(includeInstance, f), - body: jspb.Message.getFieldWithDefault(msg, 7, ""), - responseBody: jspb.Message.getFieldWithDefault(msg, 12, ""), - additionalBindingsList: jspb.Message.toObjectList(msg.getAdditionalBindingsList(), - proto.google.api.HttpRule.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpRule; - return proto.google.api.HttpRule.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpRule} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSelector(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setGet(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPut(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPost(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDelete(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPatch(value); - break; - case 8: - var value = new proto.google.api.CustomHttpPattern; - reader.readMessage(value,proto.google.api.CustomHttpPattern.deserializeBinaryFromReader); - msg.setCustom(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBody(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setResponseBody(value); - break; - case 11: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addAdditionalBindings(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpRule.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpRule.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpRule} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSelector(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeString( - 3, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeString( - 4, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 5)); - if (f != null) { - writer.writeString( - 5, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 6)); - if (f != null) { - writer.writeString( - 6, - f - ); - } - f = message.getCustom(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.google.api.CustomHttpPattern.serializeBinaryToWriter - ); - } - f = message.getBody(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getResponseBody(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getAdditionalBindingsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 11, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string selector = 1; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getSelector = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setSelector = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string get = 2; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getGet = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setGet = function(value) { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearGet = function() { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasGet = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string put = 3; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPut = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPut = function(value) { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPut = function() { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPut = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional string post = 4; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPost = function(value) { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPost = function() { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPost = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string delete = 5; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getDelete = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setDelete = function(value) { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearDelete = function() { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasDelete = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string patch = 6; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPatch = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPatch = function(value) { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPatch = function() { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPatch = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional CustomHttpPattern custom = 8; - * @return {?proto.google.api.CustomHttpPattern} - */ -proto.google.api.HttpRule.prototype.getCustom = function() { - return /** @type{?proto.google.api.CustomHttpPattern} */ ( - jspb.Message.getWrapperField(this, proto.google.api.CustomHttpPattern, 8)); -}; - - -/** - * @param {?proto.google.api.CustomHttpPattern|undefined} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setCustom = function(value) { - return jspb.Message.setOneofWrapperField(this, 8, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearCustom = function() { - return this.setCustom(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasCustom = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional string body = 7; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setBody = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string response_body = 12; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getResponseBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setResponseBody = function(value) { - return jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * repeated HttpRule additional_bindings = 11; - * @return {!Array} - */ -proto.google.api.HttpRule.prototype.getAdditionalBindingsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 11)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setAdditionalBindingsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 11, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.prototype.addAdditionalBindings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearAdditionalBindingsList = function() { - return this.setAdditionalBindingsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.CustomHttpPattern.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.CustomHttpPattern.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.CustomHttpPattern} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.toObject = function(includeInstance, msg) { - var f, obj = { - kind: jspb.Message.getFieldWithDefault(msg, 1, ""), - path: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.CustomHttpPattern; - return proto.google.api.CustomHttpPattern.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.CustomHttpPattern} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKind(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.CustomHttpPattern.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.CustomHttpPattern.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.CustomHttpPattern} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKind(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string kind = 1; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getKind = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setKind = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string path = 2; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/secrets/src/service/protos/google/api/httpbody_grpc_pb.js b/mods/secrets/src/service/protos/google/api/httpbody_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/secrets/src/service/protos/google/api/httpbody_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/secrets/src/service/protos/google/api/httpbody_pb.d.ts b/mods/secrets/src/service/protos/google/api/httpbody_pb.d.ts deleted file mode 100644 index 98d973068..000000000 --- a/mods/secrets/src/service/protos/google/api/httpbody_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// package: google.api -// file: google/api/httpbody.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb"; - -export class HttpBody extends jspb.Message { - getContentType(): string; - setContentType(value: string): HttpBody; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): HttpBody; - clearExtensionsList(): void; - getExtensionsList(): Array; - setExtensionsList(value: Array): HttpBody; - addExtensions(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpBody.AsObject; - static toObject(includeInstance: boolean, msg: HttpBody): HttpBody.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpBody, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpBody; - static deserializeBinaryFromReader(message: HttpBody, reader: jspb.BinaryReader): HttpBody; -} - -export namespace HttpBody { - export type AsObject = { - contentType: string, - data: Uint8Array | string, - extensionsList: Array, - } -} diff --git a/mods/secrets/src/service/protos/google/api/httpbody_pb.js b/mods/secrets/src/service/protos/google/api/httpbody_pb.js deleted file mode 100644 index 5539f5936..000000000 --- a/mods/secrets/src/service/protos/google/api/httpbody_pb.js +++ /dev/null @@ -1,286 +0,0 @@ -// source: google/api/httpbody.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js'); -goog.object.extend(proto, google_protobuf_any_pb); -goog.exportSymbol('proto.google.api.HttpBody', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpBody = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpBody.repeatedFields_, null); -}; -goog.inherits(proto.google.api.HttpBody, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpBody.displayName = 'proto.google.api.HttpBody'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpBody.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpBody.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpBody.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpBody} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.toObject = function(includeInstance, msg) { - var f, obj = { - contentType: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64(), - extensionsList: jspb.Message.toObjectList(msg.getExtensionsList(), - google_protobuf_any_pb.Any.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpBody; - return proto.google.api.HttpBody.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpBody} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setContentType(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 3: - var value = new google_protobuf_any_pb.Any; - reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader); - msg.addExtensions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpBody.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpBody} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContentType(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getExtensionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - google_protobuf_any_pb.Any.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string content_type = 1; - * @return {string} - */ -proto.google.api.HttpBody.prototype.getContentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setContentType = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.google.api.HttpBody.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.google.api.HttpBody.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setData = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * repeated google.protobuf.Any extensions = 3; - * @return {!Array} - */ -proto.google.api.HttpBody.prototype.getExtensionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpBody} returns this -*/ -proto.google.api.HttpBody.prototype.setExtensionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.google.protobuf.Any=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.Any} - */ -proto.google.api.HttpBody.prototype.addExtensions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.clearExtensionsList = function() { - return this.setExtensionsList([]); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js b/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts b/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts deleted file mode 100644 index 8e3a35012..000000000 --- a/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; -import * as protoc_gen_openapiv2_options_openapiv2_pb from "../../protoc-gen-openapiv2/options/openapiv2_pb"; - -export const openapiv2Swagger: jspb.ExtensionFieldInfo; - -export const openapiv2Operation: jspb.ExtensionFieldInfo; - -export const openapiv2Schema: jspb.ExtensionFieldInfo; - -export const openapiv2Tag: jspb.ExtensionFieldInfo; - -export const openapiv2Field: jspb.ExtensionFieldInfo; diff --git a/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js b/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js deleted file mode 100644 index e92ccec18..000000000 --- a/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js +++ /dev/null @@ -1,152 +0,0 @@ -// source: protoc-gen-openapiv2/options/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -var protoc$gen$openapiv2_options_openapiv2_pb = require('../../protoc-gen-openapiv2/options/openapiv2_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_openapiv2_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Swagger`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Swagger: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.toObject), - 0); - -google_protobuf_descriptor_pb.FileOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FileOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Operation`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Operation: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Operation, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Operation.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Schema`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Schema: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Schema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Schema.toObject), - 0); - -google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MessageOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Tag`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Tag: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Tag, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Tag.toObject), - 0); - -google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.ServiceOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Field`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Field: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.toObject), - 0); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js b/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts b/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts deleted file mode 100644 index 3c3972ea9..000000000 --- a/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +++ /dev/null @@ -1,685 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/openapiv2.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class Swagger extends jspb.Message { - getSwagger(): string; - setSwagger(value: string): Swagger; - - hasInfo(): boolean; - clearInfo(): void; - getInfo(): Info | undefined; - setInfo(value?: Info): Swagger; - getHost(): string; - setHost(value: string): Swagger; - getBasePath(): string; - setBasePath(value: string): Swagger; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Swagger; - addSchemes(value: Scheme, index?: number): Scheme; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Swagger; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Swagger; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - - hasSecurityDefinitions(): boolean; - clearSecurityDefinitions(): void; - getSecurityDefinitions(): SecurityDefinitions | undefined; - setSecurityDefinitions(value?: SecurityDefinitions): Swagger; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Swagger; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Swagger; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Swagger.AsObject; - static toObject(includeInstance: boolean, msg: Swagger): Swagger.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Swagger, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Swagger; - static deserializeBinaryFromReader(message: Swagger, reader: jspb.BinaryReader): Swagger; -} - -export namespace Swagger { - export type AsObject = { - swagger: string, - info?: Info.AsObject, - host: string, - basePath: string, - schemesList: Array, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - securityDefinitions?: SecurityDefinitions.AsObject, - securityList: Array, - externalDocs?: ExternalDocumentation.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Operation extends jspb.Message { - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): Operation; - addTags(value: string, index?: number): string; - getSummary(): string; - setSummary(value: string): Operation; - getDescription(): string; - setDescription(value: string): Operation; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Operation; - getOperationId(): string; - setOperationId(value: string): Operation; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Operation; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Operation; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Operation; - addSchemes(value: Scheme, index?: number): Scheme; - getDeprecated(): boolean; - setDeprecated(value: boolean): Operation; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Operation; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Operation.AsObject; - static toObject(includeInstance: boolean, msg: Operation): Operation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Operation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Operation; - static deserializeBinaryFromReader(message: Operation, reader: jspb.BinaryReader): Operation; -} - -export namespace Operation { - export type AsObject = { - tagsList: Array, - summary: string, - description: string, - externalDocs?: ExternalDocumentation.AsObject, - operationId: string, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - schemesList: Array, - deprecated: boolean, - securityList: Array, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Header extends jspb.Message { - getDescription(): string; - setDescription(value: string): Header; - getType(): string; - setType(value: string): Header; - getFormat(): string; - setFormat(value: string): Header; - getDefault(): string; - setDefault(value: string): Header; - getPattern(): string; - setPattern(value: string): Header; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Header.AsObject; - static toObject(includeInstance: boolean, msg: Header): Header.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Header, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Header; - static deserializeBinaryFromReader(message: Header, reader: jspb.BinaryReader): Header; -} - -export namespace Header { - export type AsObject = { - description: string, - type: string, - format: string, - pb_default: string, - pattern: string, - } -} - -export class Response extends jspb.Message { - getDescription(): string; - setDescription(value: string): Response; - - hasSchema(): boolean; - clearSchema(): void; - getSchema(): Schema | undefined; - setSchema(value?: Schema): Response; - - getHeadersMap(): jspb.Map; - clearHeadersMap(): void; - - getExamplesMap(): jspb.Map; - clearExamplesMap(): void; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Response.AsObject; - static toObject(includeInstance: boolean, msg: Response): Response.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Response, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Response; - static deserializeBinaryFromReader(message: Response, reader: jspb.BinaryReader): Response; -} - -export namespace Response { - export type AsObject = { - description: string, - schema?: Schema.AsObject, - - headersMap: Array<[string, Header.AsObject]>, - - examplesMap: Array<[string, string]>, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Info extends jspb.Message { - getTitle(): string; - setTitle(value: string): Info; - getDescription(): string; - setDescription(value: string): Info; - getTermsOfService(): string; - setTermsOfService(value: string): Info; - - hasContact(): boolean; - clearContact(): void; - getContact(): Contact | undefined; - setContact(value?: Contact): Info; - - hasLicense(): boolean; - clearLicense(): void; - getLicense(): License | undefined; - setLicense(value?: License): Info; - getVersion(): string; - setVersion(value: string): Info; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Info.AsObject; - static toObject(includeInstance: boolean, msg: Info): Info.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Info, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Info; - static deserializeBinaryFromReader(message: Info, reader: jspb.BinaryReader): Info; -} - -export namespace Info { - export type AsObject = { - title: string, - description: string, - termsOfService: string, - contact?: Contact.AsObject, - license?: License.AsObject, - version: string, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Contact extends jspb.Message { - getName(): string; - setName(value: string): Contact; - getUrl(): string; - setUrl(value: string): Contact; - getEmail(): string; - setEmail(value: string): Contact; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contact.AsObject; - static toObject(includeInstance: boolean, msg: Contact): Contact.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contact, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contact; - static deserializeBinaryFromReader(message: Contact, reader: jspb.BinaryReader): Contact; -} - -export namespace Contact { - export type AsObject = { - name: string, - url: string, - email: string, - } -} - -export class License extends jspb.Message { - getName(): string; - setName(value: string): License; - getUrl(): string; - setUrl(value: string): License; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): License.AsObject; - static toObject(includeInstance: boolean, msg: License): License.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: License, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): License; - static deserializeBinaryFromReader(message: License, reader: jspb.BinaryReader): License; -} - -export namespace License { - export type AsObject = { - name: string, - url: string, - } -} - -export class ExternalDocumentation extends jspb.Message { - getDescription(): string; - setDescription(value: string): ExternalDocumentation; - getUrl(): string; - setUrl(value: string): ExternalDocumentation; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ExternalDocumentation.AsObject; - static toObject(includeInstance: boolean, msg: ExternalDocumentation): ExternalDocumentation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ExternalDocumentation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ExternalDocumentation; - static deserializeBinaryFromReader(message: ExternalDocumentation, reader: jspb.BinaryReader): ExternalDocumentation; -} - -export namespace ExternalDocumentation { - export type AsObject = { - description: string, - url: string, - } -} - -export class Schema extends jspb.Message { - - hasJsonSchema(): boolean; - clearJsonSchema(): void; - getJsonSchema(): JSONSchema | undefined; - setJsonSchema(value?: JSONSchema): Schema; - getDiscriminator(): string; - setDiscriminator(value: string): Schema; - getReadOnly(): boolean; - setReadOnly(value: boolean): Schema; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Schema; - getExample(): string; - setExample(value: string): Schema; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Schema.AsObject; - static toObject(includeInstance: boolean, msg: Schema): Schema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Schema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Schema; - static deserializeBinaryFromReader(message: Schema, reader: jspb.BinaryReader): Schema; -} - -export namespace Schema { - export type AsObject = { - jsonSchema?: JSONSchema.AsObject, - discriminator: string, - readOnly: boolean, - externalDocs?: ExternalDocumentation.AsObject, - example: string, - } -} - -export class JSONSchema extends jspb.Message { - getRef(): string; - setRef(value: string): JSONSchema; - getTitle(): string; - setTitle(value: string): JSONSchema; - getDescription(): string; - setDescription(value: string): JSONSchema; - getDefault(): string; - setDefault(value: string): JSONSchema; - getReadOnly(): boolean; - setReadOnly(value: boolean): JSONSchema; - getExample(): string; - setExample(value: string): JSONSchema; - getMultipleOf(): number; - setMultipleOf(value: number): JSONSchema; - getMaximum(): number; - setMaximum(value: number): JSONSchema; - getExclusiveMaximum(): boolean; - setExclusiveMaximum(value: boolean): JSONSchema; - getMinimum(): number; - setMinimum(value: number): JSONSchema; - getExclusiveMinimum(): boolean; - setExclusiveMinimum(value: boolean): JSONSchema; - getMaxLength(): number; - setMaxLength(value: number): JSONSchema; - getMinLength(): number; - setMinLength(value: number): JSONSchema; - getPattern(): string; - setPattern(value: string): JSONSchema; - getMaxItems(): number; - setMaxItems(value: number): JSONSchema; - getMinItems(): number; - setMinItems(value: number): JSONSchema; - getUniqueItems(): boolean; - setUniqueItems(value: boolean): JSONSchema; - getMaxProperties(): number; - setMaxProperties(value: number): JSONSchema; - getMinProperties(): number; - setMinProperties(value: number): JSONSchema; - clearRequiredList(): void; - getRequiredList(): Array; - setRequiredList(value: Array): JSONSchema; - addRequired(value: string, index?: number): string; - clearArrayList(): void; - getArrayList(): Array; - setArrayList(value: Array): JSONSchema; - addArray(value: string, index?: number): string; - clearTypeList(): void; - getTypeList(): Array; - setTypeList(value: Array): JSONSchema; - addType(value: JSONSchema.JSONSchemaSimpleTypes, index?: number): JSONSchema.JSONSchemaSimpleTypes; - getFormat(): string; - setFormat(value: string): JSONSchema; - clearEnumList(): void; - getEnumList(): Array; - setEnumList(value: Array): JSONSchema; - addEnum(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): JSONSchema.AsObject; - static toObject(includeInstance: boolean, msg: JSONSchema): JSONSchema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: JSONSchema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): JSONSchema; - static deserializeBinaryFromReader(message: JSONSchema, reader: jspb.BinaryReader): JSONSchema; -} - -export namespace JSONSchema { - export type AsObject = { - ref: string, - title: string, - description: string, - pb_default: string, - readOnly: boolean, - example: string, - multipleOf: number, - maximum: number, - exclusiveMaximum: boolean, - minimum: number, - exclusiveMinimum: boolean, - maxLength: number, - minLength: number, - pattern: string, - maxItems: number, - minItems: number, - uniqueItems: boolean, - maxProperties: number, - minProperties: number, - requiredList: Array, - arrayList: Array, - typeList: Array, - format: string, - pb_enumList: Array, - } - - export enum JSONSchemaSimpleTypes { - UNKNOWN = 0, - ARRAY = 1, - BOOLEAN = 2, - INTEGER = 3, - NULL = 4, - NUMBER = 5, - OBJECT = 6, - STRING = 7, - } - -} - -export class Tag extends jspb.Message { - getDescription(): string; - setDescription(value: string): Tag; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Tag; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Tag.AsObject; - static toObject(includeInstance: boolean, msg: Tag): Tag.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Tag, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Tag; - static deserializeBinaryFromReader(message: Tag, reader: jspb.BinaryReader): Tag; -} - -export namespace Tag { - export type AsObject = { - description: string, - externalDocs?: ExternalDocumentation.AsObject, - } -} - -export class SecurityDefinitions extends jspb.Message { - - getSecurityMap(): jspb.Map; - clearSecurityMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityDefinitions.AsObject; - static toObject(includeInstance: boolean, msg: SecurityDefinitions): SecurityDefinitions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityDefinitions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityDefinitions; - static deserializeBinaryFromReader(message: SecurityDefinitions, reader: jspb.BinaryReader): SecurityDefinitions; -} - -export namespace SecurityDefinitions { - export type AsObject = { - - securityMap: Array<[string, SecurityScheme.AsObject]>, - } -} - -export class SecurityScheme extends jspb.Message { - getType(): SecurityScheme.Type; - setType(value: SecurityScheme.Type): SecurityScheme; - getDescription(): string; - setDescription(value: string): SecurityScheme; - getName(): string; - setName(value: string): SecurityScheme; - getIn(): SecurityScheme.In; - setIn(value: SecurityScheme.In): SecurityScheme; - getFlow(): SecurityScheme.Flow; - setFlow(value: SecurityScheme.Flow): SecurityScheme; - getAuthorizationUrl(): string; - setAuthorizationUrl(value: string): SecurityScheme; - getTokenUrl(): string; - setTokenUrl(value: string): SecurityScheme; - - hasScopes(): boolean; - clearScopes(): void; - getScopes(): Scopes | undefined; - setScopes(value?: Scopes): SecurityScheme; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityScheme.AsObject; - static toObject(includeInstance: boolean, msg: SecurityScheme): SecurityScheme.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityScheme, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityScheme; - static deserializeBinaryFromReader(message: SecurityScheme, reader: jspb.BinaryReader): SecurityScheme; -} - -export namespace SecurityScheme { - export type AsObject = { - type: SecurityScheme.Type, - description: string, - name: string, - pb_in: SecurityScheme.In, - flow: SecurityScheme.Flow, - authorizationUrl: string, - tokenUrl: string, - scopes?: Scopes.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } - - export enum Type { - TYPE_INVALID = 0, - TYPE_BASIC = 1, - TYPE_API_KEY = 2, - TYPE_OAUTH2 = 3, - } - - export enum In { - IN_INVALID = 0, - IN_QUERY = 1, - IN_HEADER = 2, - } - - export enum Flow { - FLOW_INVALID = 0, - FLOW_IMPLICIT = 1, - FLOW_PASSWORD = 2, - FLOW_APPLICATION = 3, - FLOW_ACCESS_CODE = 4, - } - -} - -export class SecurityRequirement extends jspb.Message { - - getSecurityRequirementMap(): jspb.Map; - clearSecurityRequirementMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirement.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirement): SecurityRequirement.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirement, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirement; - static deserializeBinaryFromReader(message: SecurityRequirement, reader: jspb.BinaryReader): SecurityRequirement; -} - -export namespace SecurityRequirement { - export type AsObject = { - - securityRequirementMap: Array<[string, SecurityRequirement.SecurityRequirementValue.AsObject]>, - } - - - export class SecurityRequirementValue extends jspb.Message { - clearScopeList(): void; - getScopeList(): Array; - setScopeList(value: Array): SecurityRequirementValue; - addScope(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirementValue.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirementValue): SecurityRequirementValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirementValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirementValue; - static deserializeBinaryFromReader(message: SecurityRequirementValue, reader: jspb.BinaryReader): SecurityRequirementValue; - } - - export namespace SecurityRequirementValue { - export type AsObject = { - scopeList: Array, - } - } - -} - -export class Scopes extends jspb.Message { - - getScopeMap(): jspb.Map; - clearScopeMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Scopes.AsObject; - static toObject(includeInstance: boolean, msg: Scopes): Scopes.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Scopes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Scopes; - static deserializeBinaryFromReader(message: Scopes, reader: jspb.BinaryReader): Scopes; -} - -export namespace Scopes { - export type AsObject = { - - scopeMap: Array<[string, string]>, - } -} - -export enum Scheme { - UNKNOWN = 0, - HTTP = 1, - HTTPS = 2, - WS = 3, - WSS = 4, -} diff --git a/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js b/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js deleted file mode 100644 index be8a6bfd2..000000000 --- a/mods/secrets/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js +++ /dev/null @@ -1,5367 +0,0 @@ -// source: protoc-gen-openapiv2/options/openapiv2.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Contact', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Header', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Info', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.License', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Response', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Tag', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Operation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Operation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Header, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Header'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Response, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Response'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Info, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Info'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Contact'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.License, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.License.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.License'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Schema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Tag, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Tag'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_ = [5,6,7,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject = function(includeInstance, msg) { - var f, obj = { - swagger: jspb.Message.getFieldWithDefault(msg, 1, ""), - info: (f = msg.getInfo()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(includeInstance, f), - host: jspb.Message.getFieldWithDefault(msg, 3, ""), - basePath: jspb.Message.getFieldWithDefault(msg, 4, ""), - schemesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - securityDefinitions: (f = msg.getSecurityDefinitions()) && proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(includeInstance, f), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSwagger(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader); - msg.setInfo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setBasePath(value); - break; - case 5: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 10: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 11: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader); - msg.setSecurityDefinitions(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 14: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 15: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSwagger(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInfo(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBasePath(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSecurityDefinitions(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 14, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string swagger = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSwagger = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSwagger = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Info info = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getInfo = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Info, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearInfo = function() { - return this.setInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasInfo = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string host = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string base_path = 4; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getBasePath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setBasePath = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated Scheme schemes = 5; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 10; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 10, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * optional SecurityDefinitions security_definitions = 11; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityDefinitions = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, 11)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityDefinitions = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityDefinitions = function() { - return this.setSecurityDefinitions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasSecurityDefinitions = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * optional ExternalDocumentation external_docs = 14; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 14)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 14, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 14) != null; -}; - - -/** - * map extensions = 15; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 15, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_ = [1,6,7,10,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject = function(includeInstance, msg) { - var f, obj = { - tagsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - summary: jspb.Message.getFieldWithDefault(msg, 2, ""), - description: jspb.Message.getFieldWithDefault(msg, 3, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - operationId: jspb.Message.getFieldWithDefault(msg, 5, ""), - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - schemesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f, - deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 11, false), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Operation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSummary(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setOperationId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 9: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 10: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDeprecated(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 13: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getSummary(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getOperationId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 10, - f - ); - } - f = message.getDeprecated(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * repeated string tags = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getTagsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setTagsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addTags = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearTagsList = function() { - return this.setTagsList([]); -}; - - -/** - * optional string summary = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSummary = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSummary = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string description = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string operation_id = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getOperationId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setOperationId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * repeated Scheme schemes = 10; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 10, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 10, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * optional bool deprecated = 11; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDeprecated = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDeprecated = function(value) { - return jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * map extensions = 13; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 13, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, ""), - format: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 6, ""), - pattern: jspb.Message.getFieldWithDefault(msg, 13, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Header; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string type = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string format = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string default = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string pattern = 13; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 13, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - schema: (f = msg.getSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(includeInstance, f), - headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject) : [], - examplesMap: (f = msg.getExamplesMap()) ? f.toObject(includeInstance, undefined) : [], - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Response; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader); - msg.setSchema(value); - break; - case 3: - var value = msg.getHeadersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Header()); - }); - break; - case 4: - var value = msg.getExamplesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - case 5: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchema(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter - ); - } - f = message.getHeadersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter); - } - f = message.getExamplesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Schema schema = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setSchema = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearSchema = function() { - return this.setSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.hasSchema = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * map headers = 3; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getHeadersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 3, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Header)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearHeadersMap = function() { - this.getHeadersMap().clear(); - return this;}; - - -/** - * map examples = 4; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExamplesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 4, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExamplesMap = function() { - this.getExamplesMap().clear(); - return this;}; - - -/** - * map extensions = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject = function(includeInstance, msg) { - var f, obj = { - title: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - termsOfService: jspb.Message.getFieldWithDefault(msg, 3, ""), - contact: (f = msg.getContact()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(includeInstance, f), - license: (f = msg.getLicense()) && proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(includeInstance, f), - version: jspb.Message.getFieldWithDefault(msg, 6, ""), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTermsOfService(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader); - msg.setContact(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader); - msg.setLicense(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 7: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTermsOfService(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getContact(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter - ); - } - f = message.getLicense(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string title = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string terms_of_service = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTermsOfService = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTermsOfService = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional Contact contact = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getContact = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setContact = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearContact = function() { - return this.setContact(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasContact = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional License license = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getLicense = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.License} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.License, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.License|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setLicense = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearLicense = function() { - return this.setLicense(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasLicense = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string version = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setVersion = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * map extensions = 7; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 7, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject = function(includeInstance, msg) { - var f, obj = { - jsonSchema: (f = msg.getJsonSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(includeInstance, f), - discriminator: jspb.Message.getFieldWithDefault(msg, 2, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - example: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader); - msg.setJsonSchema(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDiscriminator(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsonSchema(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter - ); - } - f = message.getDiscriminator(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional JSONSchema json_schema = 1; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getJsonSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, 1)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setJsonSchema = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearJsonSchema = function() { - return this.setJsonSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasJsonSchema = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string discriminator = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getDiscriminator = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setDiscriminator = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool read_only = 3; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string example = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_ = [26,34,35,46]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 3, ""), - title: jspb.Message.getFieldWithDefault(msg, 5, ""), - description: jspb.Message.getFieldWithDefault(msg, 6, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 7, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - example: jspb.Message.getFieldWithDefault(msg, 9, ""), - multipleOf: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0), - maximum: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0), - exclusiveMaximum: jspb.Message.getBooleanFieldWithDefault(msg, 12, false), - minimum: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), - exclusiveMinimum: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - maxLength: jspb.Message.getFieldWithDefault(msg, 15, 0), - minLength: jspb.Message.getFieldWithDefault(msg, 16, 0), - pattern: jspb.Message.getFieldWithDefault(msg, 17, ""), - maxItems: jspb.Message.getFieldWithDefault(msg, 20, 0), - minItems: jspb.Message.getFieldWithDefault(msg, 21, 0), - uniqueItems: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), - maxProperties: jspb.Message.getFieldWithDefault(msg, 24, 0), - minProperties: jspb.Message.getFieldWithDefault(msg, 25, 0), - requiredList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, - arrayList: (f = jspb.Message.getRepeatedField(msg, 34)) == null ? undefined : f, - typeList: (f = jspb.Message.getRepeatedField(msg, 35)) == null ? undefined : f, - format: jspb.Message.getFieldWithDefault(msg, 36, ""), - enumList: (f = jspb.Message.getRepeatedField(msg, 46)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - case 10: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMultipleOf(value); - break; - case 11: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMaximum(value); - break; - case 12: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMaximum(value); - break; - case 13: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMinimum(value); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMinimum(value); - break; - case 15: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxLength(value); - break; - case 16: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinLength(value); - break; - case 17: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - case 20: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxItems(value); - break; - case 21: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinItems(value); - break; - case 22: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUniqueItems(value); - break; - case 24: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxProperties(value); - break; - case 25: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinProperties(value); - break; - case 26: - var value = /** @type {string} */ (reader.readString()); - msg.addRequired(value); - break; - case 34: - var value = /** @type {string} */ (reader.readString()); - msg.addArray(value); - break; - case 35: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addType(values[i]); - } - break; - case 36: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 46: - var value = /** @type {string} */ (reader.readString()); - msg.addEnum(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getMultipleOf(); - if (f !== 0.0) { - writer.writeDouble( - 10, - f - ); - } - f = message.getMaximum(); - if (f !== 0.0) { - writer.writeDouble( - 11, - f - ); - } - f = message.getExclusiveMaximum(); - if (f) { - writer.writeBool( - 12, - f - ); - } - f = message.getMinimum(); - if (f !== 0.0) { - writer.writeDouble( - 13, - f - ); - } - f = message.getExclusiveMinimum(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getMaxLength(); - if (f !== 0) { - writer.writeUint64( - 15, - f - ); - } - f = message.getMinLength(); - if (f !== 0) { - writer.writeUint64( - 16, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 17, - f - ); - } - f = message.getMaxItems(); - if (f !== 0) { - writer.writeUint64( - 20, - f - ); - } - f = message.getMinItems(); - if (f !== 0) { - writer.writeUint64( - 21, - f - ); - } - f = message.getUniqueItems(); - if (f) { - writer.writeBool( - 22, - f - ); - } - f = message.getMaxProperties(); - if (f !== 0) { - writer.writeUint64( - 24, - f - ); - } - f = message.getMinProperties(); - if (f !== 0) { - writer.writeUint64( - 25, - f - ); - } - f = message.getRequiredList(); - if (f.length > 0) { - writer.writeRepeatedString( - 26, - f - ); - } - f = message.getArrayList(); - if (f.length > 0) { - writer.writeRepeatedString( - 34, - f - ); - } - f = message.getTypeList(); - if (f.length > 0) { - writer.writePackedEnum( - 35, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 36, - f - ); - } - f = message.getEnumList(); - if (f.length > 0) { - writer.writeRepeatedString( - 46, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes = { - UNKNOWN: 0, - ARRAY: 1, - BOOLEAN: 2, - INTEGER: 3, - NULL: 4, - NUMBER: 5, - OBJECT: 6, - STRING: 7 -}; - -/** - * optional string ref = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string title = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string description = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string default = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional bool read_only = 8; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - -/** - * optional string example = 9; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional double multiple_of = 10; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMultipleOf = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMultipleOf = function(value) { - return jspb.Message.setProto3FloatField(this, 10, value); -}; - - -/** - * optional double maximum = 11; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaximum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaximum = function(value) { - return jspb.Message.setProto3FloatField(this, 11, value); -}; - - -/** - * optional bool exclusive_maximum = 12; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMaximum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMaximum = function(value) { - return jspb.Message.setProto3BooleanField(this, 12, value); -}; - - -/** - * optional double minimum = 13; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinimum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinimum = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); -}; - - -/** - * optional bool exclusive_minimum = 14; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMinimum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMinimum = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * optional uint64 max_length = 15; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxLength = function(value) { - return jspb.Message.setProto3IntField(this, 15, value); -}; - - -/** - * optional uint64 min_length = 16; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinLength = function(value) { - return jspb.Message.setProto3IntField(this, 16, value); -}; - - -/** - * optional string pattern = 17; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 17, value); -}; - - -/** - * optional uint64 max_items = 20; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxItems = function(value) { - return jspb.Message.setProto3IntField(this, 20, value); -}; - - -/** - * optional uint64 min_items = 21; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinItems = function(value) { - return jspb.Message.setProto3IntField(this, 21, value); -}; - - -/** - * optional bool unique_items = 22; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getUniqueItems = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setUniqueItems = function(value) { - return jspb.Message.setProto3BooleanField(this, 22, value); -}; - - -/** - * optional uint64 max_properties = 24; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxProperties = function(value) { - return jspb.Message.setProto3IntField(this, 24, value); -}; - - -/** - * optional uint64 min_properties = 25; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinProperties = function(value) { - return jspb.Message.setProto3IntField(this, 25, value); -}; - - -/** - * repeated string required = 26; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRequiredList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 26)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRequiredList = function(value) { - return jspb.Message.setField(this, 26, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addRequired = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 26, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearRequiredList = function() { - return this.setRequiredList([]); -}; - - -/** - * repeated string array = 34; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getArrayList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 34)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setArrayList = function(value) { - return jspb.Message.setField(this, 34, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addArray = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 34, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearArrayList = function() { - return this.setArrayList([]); -}; - - -/** - * repeated JSONSchemaSimpleTypes type = 35; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTypeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 35)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTypeList = function(value) { - return jspb.Message.setField(this, 35, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addType = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 35, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearTypeList = function() { - return this.setTypeList([]); -}; - - -/** - * optional string format = 36; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 36, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 36, value); -}; - - -/** - * repeated string enum = 46; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getEnumList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 46)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setEnumList = function(value) { - return jspb.Message.setField(this, 46, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addEnum = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 46, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearEnumList = function() { - return this.setEnumList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Tag; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 3; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 3)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject = function(includeInstance, msg) { - var f, obj = { - securityMap: (f = msg.getSecurityMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter); - } -}; - - -/** - * map security = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.getSecurityMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.clearSecurityMap = function() { - this.getSecurityMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject = function(includeInstance, msg) { - var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_in: jspb.Message.getFieldWithDefault(msg, 4, 0), - flow: jspb.Message.getFieldWithDefault(msg, 5, 0), - authorizationUrl: jspb.Message.getFieldWithDefault(msg, 6, ""), - tokenUrl: jspb.Message.getFieldWithDefault(msg, 7, ""), - scopes: (f = msg.getScopes()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (reader.readEnum()); - msg.setIn(value); - break; - case 5: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (reader.readEnum()); - msg.setFlow(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthorizationUrl(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setTokenUrl(value); - break; - case 8: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader); - msg.setScopes(value); - break; - case 9: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIn(); - if (f !== 0.0) { - writer.writeEnum( - 4, - f - ); - } - f = message.getFlow(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } - f = message.getAuthorizationUrl(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getTokenUrl(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getScopes(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type = { - TYPE_INVALID: 0, - TYPE_BASIC: 1, - TYPE_API_KEY: 2, - TYPE_OAUTH2: 3 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In = { - IN_INVALID: 0, - IN_QUERY: 1, - IN_HEADER: 2 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow = { - FLOW_INVALID: 0, - FLOW_IMPLICIT: 1, - FLOW_PASSWORD: 2, - FLOW_APPLICATION: 3, - FLOW_ACCESS_CODE: 4 -}; - -/** - * optional Type type = 1; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getType = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional In in = 4; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getIn = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setIn = function(value) { - return jspb.Message.setProto3EnumField(this, 4, value); -}; - - -/** - * optional Flow flow = 5; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getFlow = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setFlow = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); -}; - - -/** - * optional string authorization_url = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getAuthorizationUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setAuthorizationUrl = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string token_url = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getTokenUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setTokenUrl = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional Scopes scopes = 8; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getScopes = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, 8)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setScopes = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearScopes = function() { - return this.setScopes(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.hasScopes = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * map extensions = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject = function(includeInstance, msg) { - var f, obj = { - securityRequirementMap: (f = msg.getSecurityRequirementMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityRequirementMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityRequirementMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject = function(includeInstance, msg) { - var f, obj = { - scopeList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addScope(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } -}; - - -/** - * repeated string scope = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.getScopeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.setScopeList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.addScope = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.clearScopeList = function() { - return this.setScopeList([]); -}; - - -/** - * map security_requirement = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.getSecurityRequirementMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.clearSecurityRequirementMap = function() { - this.getSecurityRequirementMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject = function(includeInstance, msg) { - var f, obj = { - scopeMap: (f = msg.getScopeMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getScopeMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map scope = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.getScopeMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.clearScopeMap = function() { - this.getScopeMap().clear(); - return this;}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme = { - UNKNOWN: 0, - HTTP: 1, - HTTPS: 2, - WS: 3, - WSS: 4 -}; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/secrets/src/service/protos/secrets_grpc_pb.d.ts b/mods/secrets/src/service/protos/secrets_grpc_pb.d.ts deleted file mode 100644 index abf5bdf59..000000000 --- a/mods/secrets/src/service/protos/secrets_grpc_pb.d.ts +++ /dev/null @@ -1,95 +0,0 @@ -// package: fonoster.secrets.v1beta1 -// file: secrets.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import {handleClientStreamingCall} from "@grpc/grpc-js/build/src/server-call"; -import * as secrets_pb from "./secrets_pb"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as common_pb from "./common_pb"; - -interface ISecretsService extends grpc.ServiceDefinition { - listSecretsId: ISecretsService_IListSecretsId; - createSecret: ISecretsService_ICreateSecret; - getSecret: ISecretsService_IGetSecret; - deleteSecret: ISecretsService_IDeleteSecret; -} - -interface ISecretsService_IListSecretsId extends grpc.MethodDefinition { - path: "/fonoster.secrets.v1beta1.Secrets/ListSecretsId"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface ISecretsService_ICreateSecret extends grpc.MethodDefinition { - path: "/fonoster.secrets.v1beta1.Secrets/CreateSecret"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface ISecretsService_IGetSecret extends grpc.MethodDefinition { - path: "/fonoster.secrets.v1beta1.Secrets/GetSecret"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface ISecretsService_IDeleteSecret extends grpc.MethodDefinition { - path: "/fonoster.secrets.v1beta1.Secrets/DeleteSecret"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const SecretsService: ISecretsService; - -export interface ISecretsServer extends grpc.UntypedServiceImplementation { - listSecretsId: grpc.handleUnaryCall; - createSecret: grpc.handleUnaryCall; - getSecret: grpc.handleUnaryCall; - deleteSecret: grpc.handleUnaryCall; -} - -export interface ISecretsClient { - listSecretsId(request: secrets_pb.ListSecretsIdRequest, callback: (error: grpc.ServiceError | null, response: secrets_pb.ListSecretsIdResponse) => void): grpc.ClientUnaryCall; - listSecretsId(request: secrets_pb.ListSecretsIdRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: secrets_pb.ListSecretsIdResponse) => void): grpc.ClientUnaryCall; - listSecretsId(request: secrets_pb.ListSecretsIdRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: secrets_pb.ListSecretsIdResponse) => void): grpc.ClientUnaryCall; - createSecret(request: secrets_pb.CreateSecretRequest, callback: (error: grpc.ServiceError | null, response: secrets_pb.Secret) => void): grpc.ClientUnaryCall; - createSecret(request: secrets_pb.CreateSecretRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: secrets_pb.Secret) => void): grpc.ClientUnaryCall; - createSecret(request: secrets_pb.CreateSecretRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: secrets_pb.Secret) => void): grpc.ClientUnaryCall; - getSecret(request: secrets_pb.GetSecretRequest, callback: (error: grpc.ServiceError | null, response: secrets_pb.Secret) => void): grpc.ClientUnaryCall; - getSecret(request: secrets_pb.GetSecretRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: secrets_pb.Secret) => void): grpc.ClientUnaryCall; - getSecret(request: secrets_pb.GetSecretRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: secrets_pb.Secret) => void): grpc.ClientUnaryCall; - deleteSecret(request: secrets_pb.DeleteSecretRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteSecret(request: secrets_pb.DeleteSecretRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteSecret(request: secrets_pb.DeleteSecretRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; -} - -export class SecretsClient extends grpc.Client implements ISecretsClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public listSecretsId(request: secrets_pb.ListSecretsIdRequest, callback: (error: grpc.ServiceError | null, response: secrets_pb.ListSecretsIdResponse) => void): grpc.ClientUnaryCall; - public listSecretsId(request: secrets_pb.ListSecretsIdRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: secrets_pb.ListSecretsIdResponse) => void): grpc.ClientUnaryCall; - public listSecretsId(request: secrets_pb.ListSecretsIdRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: secrets_pb.ListSecretsIdResponse) => void): grpc.ClientUnaryCall; - public createSecret(request: secrets_pb.CreateSecretRequest, callback: (error: grpc.ServiceError | null, response: secrets_pb.Secret) => void): grpc.ClientUnaryCall; - public createSecret(request: secrets_pb.CreateSecretRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: secrets_pb.Secret) => void): grpc.ClientUnaryCall; - public createSecret(request: secrets_pb.CreateSecretRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: secrets_pb.Secret) => void): grpc.ClientUnaryCall; - public getSecret(request: secrets_pb.GetSecretRequest, callback: (error: grpc.ServiceError | null, response: secrets_pb.Secret) => void): grpc.ClientUnaryCall; - public getSecret(request: secrets_pb.GetSecretRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: secrets_pb.Secret) => void): grpc.ClientUnaryCall; - public getSecret(request: secrets_pb.GetSecretRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: secrets_pb.Secret) => void): grpc.ClientUnaryCall; - public deleteSecret(request: secrets_pb.DeleteSecretRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteSecret(request: secrets_pb.DeleteSecretRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteSecret(request: secrets_pb.DeleteSecretRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; -} diff --git a/mods/secrets/src/service/protos/secrets_grpc_pb.js b/mods/secrets/src/service/protos/secrets_grpc_pb.js deleted file mode 100644 index a51a1d9c8..000000000 --- a/mods/secrets/src/service/protos/secrets_grpc_pb.js +++ /dev/null @@ -1,145 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// * -// MIT License -// Copyright (c) 2021 Fonoster Inc -// -// The SecretMananger proto contains the artificts for Secrets administration -// such as creation and deployment. -'use strict'; -var grpc = require('@grpc/grpc-js'); -var secrets_pb = require('./secrets_pb.js'); -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -var common_pb = require('./common_pb.js'); - -function serialize_fonoster_common_v1beta1_Empty(arg) { - if (!(arg instanceof common_pb.Empty)) { - throw new Error('Expected argument of type fonoster.common.v1beta1.Empty'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_common_v1beta1_Empty(buffer_arg) { - return common_pb.Empty.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_secrets_v1beta1_CreateSecretRequest(arg) { - if (!(arg instanceof secrets_pb.CreateSecretRequest)) { - throw new Error('Expected argument of type fonoster.secrets.v1beta1.CreateSecretRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_secrets_v1beta1_CreateSecretRequest(buffer_arg) { - return secrets_pb.CreateSecretRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_secrets_v1beta1_DeleteSecretRequest(arg) { - if (!(arg instanceof secrets_pb.DeleteSecretRequest)) { - throw new Error('Expected argument of type fonoster.secrets.v1beta1.DeleteSecretRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_secrets_v1beta1_DeleteSecretRequest(buffer_arg) { - return secrets_pb.DeleteSecretRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_secrets_v1beta1_GetSecretRequest(arg) { - if (!(arg instanceof secrets_pb.GetSecretRequest)) { - throw new Error('Expected argument of type fonoster.secrets.v1beta1.GetSecretRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_secrets_v1beta1_GetSecretRequest(buffer_arg) { - return secrets_pb.GetSecretRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_secrets_v1beta1_ListSecretsIdRequest(arg) { - if (!(arg instanceof secrets_pb.ListSecretsIdRequest)) { - throw new Error('Expected argument of type fonoster.secrets.v1beta1.ListSecretsIdRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_secrets_v1beta1_ListSecretsIdRequest(buffer_arg) { - return secrets_pb.ListSecretsIdRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_secrets_v1beta1_ListSecretsIdResponse(arg) { - if (!(arg instanceof secrets_pb.ListSecretsIdResponse)) { - throw new Error('Expected argument of type fonoster.secrets.v1beta1.ListSecretsIdResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_secrets_v1beta1_ListSecretsIdResponse(buffer_arg) { - return secrets_pb.ListSecretsIdResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_secrets_v1beta1_Secret(arg) { - if (!(arg instanceof secrets_pb.Secret)) { - throw new Error('Expected argument of type fonoster.secrets.v1beta1.Secret'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_secrets_v1beta1_Secret(buffer_arg) { - return secrets_pb.Secret.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var SecretsService = exports.SecretsService = { - // Lists Secret -listSecretsId: { - path: '/fonoster.secrets.v1beta1.Secrets/ListSecretsId', - requestStream: false, - responseStream: false, - requestType: secrets_pb.ListSecretsIdRequest, - responseType: secrets_pb.ListSecretsIdResponse, - requestSerialize: serialize_fonoster_secrets_v1beta1_ListSecretsIdRequest, - requestDeserialize: deserialize_fonoster_secrets_v1beta1_ListSecretsIdRequest, - responseSerialize: serialize_fonoster_secrets_v1beta1_ListSecretsIdResponse, - responseDeserialize: deserialize_fonoster_secrets_v1beta1_ListSecretsIdResponse, - }, - createSecret: { - path: '/fonoster.secrets.v1beta1.Secrets/CreateSecret', - requestStream: false, - responseStream: false, - requestType: secrets_pb.CreateSecretRequest, - responseType: secrets_pb.Secret, - requestSerialize: serialize_fonoster_secrets_v1beta1_CreateSecretRequest, - requestDeserialize: deserialize_fonoster_secrets_v1beta1_CreateSecretRequest, - responseSerialize: serialize_fonoster_secrets_v1beta1_Secret, - responseDeserialize: deserialize_fonoster_secrets_v1beta1_Secret, - }, - // Gets Secret with the Secret-name -getSecret: { - path: '/fonoster.secrets.v1beta1.Secrets/GetSecret', - requestStream: false, - responseStream: false, - requestType: secrets_pb.GetSecretRequest, - responseType: secrets_pb.Secret, - requestSerialize: serialize_fonoster_secrets_v1beta1_GetSecretRequest, - requestDeserialize: deserialize_fonoster_secrets_v1beta1_GetSecretRequest, - responseSerialize: serialize_fonoster_secrets_v1beta1_Secret, - responseDeserialize: deserialize_fonoster_secrets_v1beta1_Secret, - }, - // Peforms a hard delete of the Secret resource -deleteSecret: { - path: '/fonoster.secrets.v1beta1.Secrets/DeleteSecret', - requestStream: false, - responseStream: false, - requestType: secrets_pb.DeleteSecretRequest, - responseType: common_pb.Empty, - requestSerialize: serialize_fonoster_secrets_v1beta1_DeleteSecretRequest, - requestDeserialize: deserialize_fonoster_secrets_v1beta1_DeleteSecretRequest, - responseSerialize: serialize_fonoster_common_v1beta1_Empty, - responseDeserialize: deserialize_fonoster_common_v1beta1_Empty, - }, -}; - -exports.SecretsClient = grpc.makeGenericClientConstructor(SecretsService); diff --git a/mods/secrets/src/service/protos/secrets_pb.d.ts b/mods/secrets/src/service/protos/secrets_pb.d.ts deleted file mode 100644 index f55fca544..000000000 --- a/mods/secrets/src/service/protos/secrets_pb.d.ts +++ /dev/null @@ -1,149 +0,0 @@ -// package: fonoster.secrets.v1beta1 -// file: secrets.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as common_pb from "./common_pb"; - -export class ListSecretsIdRequest extends jspb.Message { - getPageSize(): number; - setPageSize(value: number): ListSecretsIdRequest; - getPageToken(): string; - setPageToken(value: string): ListSecretsIdRequest; - getView(): common_pb.View; - setView(value: common_pb.View): ListSecretsIdRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListSecretsIdRequest.AsObject; - static toObject(includeInstance: boolean, msg: ListSecretsIdRequest): ListSecretsIdRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListSecretsIdRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListSecretsIdRequest; - static deserializeBinaryFromReader(message: ListSecretsIdRequest, reader: jspb.BinaryReader): ListSecretsIdRequest; -} - -export namespace ListSecretsIdRequest { - export type AsObject = { - pageSize: number, - pageToken: string, - view: common_pb.View, - } -} - -export class ListSecretsIdResponse extends jspb.Message { - clearSecretsList(): void; - getSecretsList(): Array; - setSecretsList(value: Array): ListSecretsIdResponse; - addSecrets(value: string, index?: number): string; - getNextPageToken(): string; - setNextPageToken(value: string): ListSecretsIdResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListSecretsIdResponse.AsObject; - static toObject(includeInstance: boolean, msg: ListSecretsIdResponse): ListSecretsIdResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListSecretsIdResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListSecretsIdResponse; - static deserializeBinaryFromReader(message: ListSecretsIdResponse, reader: jspb.BinaryReader): ListSecretsIdResponse; -} - -export namespace ListSecretsIdResponse { - export type AsObject = { - secretsList: Array, - nextPageToken: string, - } -} - -export class GetSecretRequest extends jspb.Message { - getName(): string; - setName(value: string): GetSecretRequest; - getView(): common_pb.View; - setView(value: common_pb.View): GetSecretRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetSecretRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetSecretRequest): GetSecretRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetSecretRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetSecretRequest; - static deserializeBinaryFromReader(message: GetSecretRequest, reader: jspb.BinaryReader): GetSecretRequest; -} - -export namespace GetSecretRequest { - export type AsObject = { - name: string, - view: common_pb.View, - } -} - -export class CreateSecretRequest extends jspb.Message { - getName(): string; - setName(value: string): CreateSecretRequest; - getSecret(): string; - setSecret(value: string): CreateSecretRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateSecretRequest.AsObject; - static toObject(includeInstance: boolean, msg: CreateSecretRequest): CreateSecretRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateSecretRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateSecretRequest; - static deserializeBinaryFromReader(message: CreateSecretRequest, reader: jspb.BinaryReader): CreateSecretRequest; -} - -export namespace CreateSecretRequest { - export type AsObject = { - name: string, - secret: string, - } -} - -export class DeleteSecretRequest extends jspb.Message { - getName(): string; - setName(value: string): DeleteSecretRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DeleteSecretRequest.AsObject; - static toObject(includeInstance: boolean, msg: DeleteSecretRequest): DeleteSecretRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DeleteSecretRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DeleteSecretRequest; - static deserializeBinaryFromReader(message: DeleteSecretRequest, reader: jspb.BinaryReader): DeleteSecretRequest; -} - -export namespace DeleteSecretRequest { - export type AsObject = { - name: string, - } -} - -export class Secret extends jspb.Message { - getName(): string; - setName(value: string): Secret; - getSecret(): string; - setSecret(value: string): Secret; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Secret.AsObject; - static toObject(includeInstance: boolean, msg: Secret): Secret.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Secret, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Secret; - static deserializeBinaryFromReader(message: Secret, reader: jspb.BinaryReader): Secret; -} - -export namespace Secret { - export type AsObject = { - name: string, - secret: string, - } -} diff --git a/mods/secrets/src/service/protos/secrets_pb.js b/mods/secrets/src/service/protos/secrets_pb.js deleted file mode 100644 index 35097315c..000000000 --- a/mods/secrets/src/service/protos/secrets_pb.js +++ /dev/null @@ -1,1142 +0,0 @@ -// source: secrets.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -goog.object.extend(proto, google_api_annotations_pb); -var common_pb = require('./common_pb.js'); -goog.object.extend(proto, common_pb); -goog.exportSymbol('proto.fonoster.secrets.v1beta1.CreateSecretRequest', null, global); -goog.exportSymbol('proto.fonoster.secrets.v1beta1.DeleteSecretRequest', null, global); -goog.exportSymbol('proto.fonoster.secrets.v1beta1.GetSecretRequest', null, global); -goog.exportSymbol('proto.fonoster.secrets.v1beta1.ListSecretsIdRequest', null, global); -goog.exportSymbol('proto.fonoster.secrets.v1beta1.ListSecretsIdResponse', null, global); -goog.exportSymbol('proto.fonoster.secrets.v1beta1.Secret', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.secrets.v1beta1.ListSecretsIdRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.displayName = 'proto.fonoster.secrets.v1beta1.ListSecretsIdRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.secrets.v1beta1.ListSecretsIdResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.displayName = 'proto.fonoster.secrets.v1beta1.ListSecretsIdResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.secrets.v1beta1.GetSecretRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.secrets.v1beta1.GetSecretRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.secrets.v1beta1.GetSecretRequest.displayName = 'proto.fonoster.secrets.v1beta1.GetSecretRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.secrets.v1beta1.CreateSecretRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.secrets.v1beta1.CreateSecretRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.secrets.v1beta1.CreateSecretRequest.displayName = 'proto.fonoster.secrets.v1beta1.CreateSecretRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.secrets.v1beta1.DeleteSecretRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.secrets.v1beta1.DeleteSecretRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.secrets.v1beta1.DeleteSecretRequest.displayName = 'proto.fonoster.secrets.v1beta1.DeleteSecretRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.secrets.v1beta1.Secret = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.secrets.v1beta1.Secret, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.secrets.v1beta1.Secret.displayName = 'proto.fonoster.secrets.v1beta1.Secret'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.secrets.v1beta1.ListSecretsIdRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.toObject = function(includeInstance, msg) { - var f, obj = { - pageSize: jspb.Message.getFieldWithDefault(msg, 1, 0), - pageToken: jspb.Message.getFieldWithDefault(msg, 2, ""), - view: jspb.Message.getFieldWithDefault(msg, 3, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.secrets.v1beta1.ListSecretsIdRequest} - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.secrets.v1beta1.ListSecretsIdRequest; - return proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.secrets.v1beta1.ListSecretsIdRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.secrets.v1beta1.ListSecretsIdRequest} - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setPageSize(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPageToken(value); - break; - case 3: - var value = /** @type {!proto.fonoster.common.v1beta1.View} */ (reader.readEnum()); - msg.setView(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.secrets.v1beta1.ListSecretsIdRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getPageSize(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getView(); - if (f !== 0.0) { - writer.writeEnum( - 3, - f - ); - } -}; - - -/** - * optional int32 page_size = 1; - * @return {number} - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.prototype.getPageSize = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.secrets.v1beta1.ListSecretsIdRequest} returns this - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.prototype.setPageSize = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string page_token = 2; - * @return {string} - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.prototype.getPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.secrets.v1beta1.ListSecretsIdRequest} returns this - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.prototype.setPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional fonoster.common.v1beta1.View view = 3; - * @return {!proto.fonoster.common.v1beta1.View} - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.prototype.getView = function() { - return /** @type {!proto.fonoster.common.v1beta1.View} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); -}; - - -/** - * @param {!proto.fonoster.common.v1beta1.View} value - * @return {!proto.fonoster.secrets.v1beta1.ListSecretsIdRequest} returns this - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdRequest.prototype.setView = function(value) { - return jspb.Message.setProto3EnumField(this, 3, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.secrets.v1beta1.ListSecretsIdResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.toObject = function(includeInstance, msg) { - var f, obj = { - secretsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - nextPageToken: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.secrets.v1beta1.ListSecretsIdResponse} - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.secrets.v1beta1.ListSecretsIdResponse; - return proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.secrets.v1beta1.ListSecretsIdResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.secrets.v1beta1.ListSecretsIdResponse} - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addSecrets(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setNextPageToken(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.secrets.v1beta1.ListSecretsIdResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecretsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getNextPageToken(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * repeated string secrets = 1; - * @return {!Array} - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.prototype.getSecretsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.secrets.v1beta1.ListSecretsIdResponse} returns this - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.prototype.setSecretsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.fonoster.secrets.v1beta1.ListSecretsIdResponse} returns this - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.prototype.addSecrets = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.secrets.v1beta1.ListSecretsIdResponse} returns this - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.prototype.clearSecretsList = function() { - return this.setSecretsList([]); -}; - - -/** - * optional string next_page_token = 2; - * @return {string} - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.prototype.getNextPageToken = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.secrets.v1beta1.ListSecretsIdResponse} returns this - */ -proto.fonoster.secrets.v1beta1.ListSecretsIdResponse.prototype.setNextPageToken = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.secrets.v1beta1.GetSecretRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.secrets.v1beta1.GetSecretRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.secrets.v1beta1.GetSecretRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.secrets.v1beta1.GetSecretRequest.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - view: jspb.Message.getFieldWithDefault(msg, 2, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.secrets.v1beta1.GetSecretRequest} - */ -proto.fonoster.secrets.v1beta1.GetSecretRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.secrets.v1beta1.GetSecretRequest; - return proto.fonoster.secrets.v1beta1.GetSecretRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.secrets.v1beta1.GetSecretRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.secrets.v1beta1.GetSecretRequest} - */ -proto.fonoster.secrets.v1beta1.GetSecretRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {!proto.fonoster.common.v1beta1.View} */ (reader.readEnum()); - msg.setView(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.secrets.v1beta1.GetSecretRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.secrets.v1beta1.GetSecretRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.secrets.v1beta1.GetSecretRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.secrets.v1beta1.GetSecretRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getView(); - if (f !== 0.0) { - writer.writeEnum( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.secrets.v1beta1.GetSecretRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.secrets.v1beta1.GetSecretRequest} returns this - */ -proto.fonoster.secrets.v1beta1.GetSecretRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional fonoster.common.v1beta1.View view = 2; - * @return {!proto.fonoster.common.v1beta1.View} - */ -proto.fonoster.secrets.v1beta1.GetSecretRequest.prototype.getView = function() { - return /** @type {!proto.fonoster.common.v1beta1.View} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); -}; - - -/** - * @param {!proto.fonoster.common.v1beta1.View} value - * @return {!proto.fonoster.secrets.v1beta1.GetSecretRequest} returns this - */ -proto.fonoster.secrets.v1beta1.GetSecretRequest.prototype.setView = function(value) { - return jspb.Message.setProto3EnumField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.secrets.v1beta1.CreateSecretRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.secrets.v1beta1.CreateSecretRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.secrets.v1beta1.CreateSecretRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.secrets.v1beta1.CreateSecretRequest.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - secret: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.secrets.v1beta1.CreateSecretRequest} - */ -proto.fonoster.secrets.v1beta1.CreateSecretRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.secrets.v1beta1.CreateSecretRequest; - return proto.fonoster.secrets.v1beta1.CreateSecretRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.secrets.v1beta1.CreateSecretRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.secrets.v1beta1.CreateSecretRequest} - */ -proto.fonoster.secrets.v1beta1.CreateSecretRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSecret(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.secrets.v1beta1.CreateSecretRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.secrets.v1beta1.CreateSecretRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.secrets.v1beta1.CreateSecretRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.secrets.v1beta1.CreateSecretRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSecret(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.secrets.v1beta1.CreateSecretRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.secrets.v1beta1.CreateSecretRequest} returns this - */ -proto.fonoster.secrets.v1beta1.CreateSecretRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string secret = 2; - * @return {string} - */ -proto.fonoster.secrets.v1beta1.CreateSecretRequest.prototype.getSecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.secrets.v1beta1.CreateSecretRequest} returns this - */ -proto.fonoster.secrets.v1beta1.CreateSecretRequest.prototype.setSecret = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.secrets.v1beta1.DeleteSecretRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.secrets.v1beta1.DeleteSecretRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.secrets.v1beta1.DeleteSecretRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.secrets.v1beta1.DeleteSecretRequest.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.secrets.v1beta1.DeleteSecretRequest} - */ -proto.fonoster.secrets.v1beta1.DeleteSecretRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.secrets.v1beta1.DeleteSecretRequest; - return proto.fonoster.secrets.v1beta1.DeleteSecretRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.secrets.v1beta1.DeleteSecretRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.secrets.v1beta1.DeleteSecretRequest} - */ -proto.fonoster.secrets.v1beta1.DeleteSecretRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.secrets.v1beta1.DeleteSecretRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.secrets.v1beta1.DeleteSecretRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.secrets.v1beta1.DeleteSecretRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.secrets.v1beta1.DeleteSecretRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.secrets.v1beta1.DeleteSecretRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.secrets.v1beta1.DeleteSecretRequest} returns this - */ -proto.fonoster.secrets.v1beta1.DeleteSecretRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.secrets.v1beta1.Secret.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.secrets.v1beta1.Secret.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.secrets.v1beta1.Secret} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.secrets.v1beta1.Secret.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - secret: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.secrets.v1beta1.Secret} - */ -proto.fonoster.secrets.v1beta1.Secret.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.secrets.v1beta1.Secret; - return proto.fonoster.secrets.v1beta1.Secret.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.secrets.v1beta1.Secret} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.secrets.v1beta1.Secret} - */ -proto.fonoster.secrets.v1beta1.Secret.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSecret(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.secrets.v1beta1.Secret.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.secrets.v1beta1.Secret.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.secrets.v1beta1.Secret} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.secrets.v1beta1.Secret.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSecret(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.fonoster.secrets.v1beta1.Secret.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.secrets.v1beta1.Secret} returns this - */ -proto.fonoster.secrets.v1beta1.Secret.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string secret = 2; - * @return {string} - */ -proto.fonoster.secrets.v1beta1.Secret.prototype.getSecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.secrets.v1beta1.Secret} returns this - */ -proto.fonoster.secrets.v1beta1.Secret.prototype.setSecret = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.fonoster.secrets.v1beta1); diff --git a/mods/secrets/src/service/runner.ts b/mods/secrets/src/service/runner.ts deleted file mode 100644 index a401cd8f2..000000000 --- a/mods/secrets/src/service/runner.ts +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env node -require("@fonoster/common").Tracer.init("secrets-service"); -import SecretServer from "./secrets"; -import { SecretsService } from "./protos/secrets_grpc_pb"; -import { AuthMiddleware } from "@fonoster/auth"; -import { getSalt } from "@fonoster/certs"; -import { runServices } from "@fonoster/common"; - -const services = [ - { - name: "secrets", - version: "v1beta1", - service: SecretsService, - server: new SecretServer() - } -]; - -const middleware = { - name: "Authentication", - middlewareObj: new AuthMiddleware(getSalt()).middleware -}; - -runServices(services, [middleware]); diff --git a/mods/secrets/src/service/secrets.ts b/mods/secrets/src/service/secrets.ts deleted file mode 100644 index 57265c8ed..000000000 --- a/mods/secrets/src/service/secrets.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import grpc from "@grpc/grpc-js"; -import getSecret from "./get_secret"; -import createSecret from "./create_secret"; -import deleteSecret from "./delete_secret"; -import listSecret from "./list_secret"; -import { - GetSecretRequest, - CreateSecretRequest, - DeleteSecretRequest, - ListSecretsIdRequest, - ListSecretsIdResponse, - Secret -} from "./protos/secrets_pb"; -import { Empty } from "./protos/common_pb"; -import { getAccessKeyId } from "@fonoster/core"; -import { - ISecretsService, - SecretsService, - ISecretsServer -} from "./protos/secrets_grpc_pb"; - -class SecretServer implements ISecretsServer { - [name: string]: grpc.UntypedHandleCall; - async listSecretsId( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const result = await listSecret( - parseInt(call.request.getPageToken()), - call.request.getPageSize(), - getAccessKeyId(call) - ); - - const response = new ListSecretsIdResponse(); - response.setSecretsList(result.secrets); - - if (result.pageToken) response.setNextPageToken("" + result.pageToken); - callback(null, response); - } catch (e) { - if (e?.response?.statusCode === 404) { - const response = new ListSecretsIdResponse(); - response.setSecretsList([]); - callback(null, response); - } else { - callback(e, null); - } - } - } - - async getSecret( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const name = call.request.getName(); - const accessKeyId = getAccessKeyId(call); - const data = await getSecret(name, accessKeyId); - callback(null, data); - } catch (e) { - callback(e, null); - } - } - - async createSecret( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const name = call.request.getName(); - const secret = call.request.getSecret(); - const accessKeyId = getAccessKeyId(call); - const data = await createSecret(name, secret, accessKeyId); - callback(null, data); - } catch (e) { - callback(e, null); - } - } - - async deleteSecret( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - await deleteSecret(call.request.getName(), getAccessKeyId(call)); - callback(null, new Empty()); - } catch (e) { - callback(e, null); - } - } -} - -export { SecretServer as default, ISecretsService, SecretsService }; diff --git a/mods/secrets/src/service/token.ts b/mods/secrets/src/service/token.ts deleted file mode 100644 index cdfbbabc5..000000000 --- a/mods/secrets/src/service/token.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export default async function (accessKeyId: string) { - const vault = require("node-vault")(); - // TODO: The policy assignment shouldn't be done automatically. - // Instead, it should be done during the user creation. - await vault.addApproleRole({ - role_name: accessKeyId, - policies: process.env.SECRETS_POLICY - }); - - const roleId = (await vault.getApproleRoleId({ role_name: accessKeyId })).data - .role_id; - const secretId = ( - await vault.getApproleRoleSecret({ role_name: accessKeyId }) - ).data.secret_id; - const token = ( - await vault.approleLogin({ role_id: roleId, secret_id: secretId }) - ).auth.client_token; - const entityId = (await vault.tokenLookupSelf({ token: token })).data - .entity_id; - return entityId; -} diff --git a/mods/secrets/src/utils/init.ts b/mods/secrets/src/utils/init.ts deleted file mode 100644 index ba236e259..000000000 --- a/mods/secrets/src/utils/init.ts +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env node -import Vault from "node-vault"; - -const vault = Vault({ - endpoint: process.env.VAULT_ADDR -}); - -// init vault server -vault - .init({ secret_shares: 1, secret_threshold: 1 }) - .then(async (result) => { - console.log("Initialized vault"); - const keys = result.keys; - // set token for all following requests - vault.token = result.root_token; - - console.log("Keep the following information in a safe place"); - console.log("----"); - console.log("keys: " + JSON.stringify(keys)); - console.log("token: " + result.root_token); - - // unseal vault server - await vault.unseal({ secret_shares: 1, key: keys[0] }); - console.log("Vault unsealed"); - - // TODO: Adding initial policy - // vault policy write fonoster-policy vault_policy.hcl - - // TODO: Enable secret engine - // vault secrets enable -path=secret kv - - // WARNING: Enabling app role is not yet working - // Enabling approle - // vault auth enable approle - console.log("Enabling authentication method approle"); - await vault.enableAuth({ - mount_point: "approle", - type: "approle", - description: "Approle auth" - }); - }) - .catch((e) => { - if (e.message.includes("already initialized")) { - console.log("Ups! Looks like vault has already been initialized."); - } - }); diff --git a/mods/secrets/test/client.unit.test.ts b/mods/secrets/test/client.unit.test.ts deleted file mode 100644 index 86dab0af0..000000000 --- a/mods/secrets/test/client.unit.test.ts +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { APIClient } from "@fonoster/common"; -import Secrets from "../src/client/secrets"; -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -const secretsObj = { - getName: () => "my-secret", - getSecret: () => "abc" -}; - -describe("@fonoster/secrets/client", () => { - afterEach(() => sandbox.restore()); - - it("should create a secret", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - sandbox.stub(APIClient.prototype, "getService").returns({ - createSecret: () => { - return { - sendMessage: () => Promise.resolve(secretsObj) - }; - } - }); - const secrets = new Secrets(); - const result = await secrets.createSecret({ - name: secretsObj.getName(), - secret: "test" - }); - expect(result).to.have.property("name").to.be.equal(secretsObj.getName()); - }); - - it("should list all secrets", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - listSecretsId: () => { - return { - sendMessage: () => - Promise.resolve({ - getNextPageToken: () => "1", - getSecretsList: () => [secretsObj.getName()] - }) - }; - } - }); - - const request = { - pageSize: 0, - pageToken: "1", - view: 0 - }; - - const secretsAPI = new Secrets(); - const result = await secretsAPI.listSecrets(request); - - expect(serviceStub).to.be.calledTwice; - expect(result.secrets[0]) - .to.have.property("name") - .to.be.equal(secretsObj.getName()); - }); - - it("should get a secret", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const stubFunc = sandbox.stub(APIClient.prototype, "getService").returns({ - getSecret: () => { - return { - sendMessage: () => Promise.resolve(secretsObj) - }; - } - }); - const secret = new Secrets(); - const result = await secret.getSecret(secretsObj.getName()); - expect(result).to.have.property("name").to.be.equal(secretsObj.getName()); - expect(result) - .to.have.property("secret") - .to.be.equal(secretsObj.getSecret()); - }); - - it("should delete a function", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const stubFunc = sandbox.stub(APIClient.prototype, "getService").returns({ - deleteSecret: () => { - return { - sendMessage: () => Promise.resolve({}) - }; - } - }); - const secret = new Secrets(); - const result = await secret.deleteSecret(secretsObj.getName()); - expect(stubFunc).to.be.calledTwice; - expect(result).to.be.undefined; - }); -}); diff --git a/mods/secrets/tsconfig.json b/mods/secrets/tsconfig.json deleted file mode 100644 index 7604f270e..000000000 --- a/mods/secrets/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../common" }, - { "path": "../errors" }, - { "path": "../logger" }, - { "path": "../auth" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/dispatcher/.lerna-changed-buster-192 b/mods/sipnet/.lerna-changed-buster-5577 similarity index 100% rename from mods/dispatcher/.lerna-changed-buster-192 rename to mods/sipnet/.lerna-changed-buster-5577 diff --git a/mods/sipnet/README.md b/mods/sipnet/README.md new file mode 100644 index 000000000..7669fdd1a --- /dev/null +++ b/mods/sipnet/README.md @@ -0,0 +1,3 @@ +[![Discord](https://img.shields.io/discord/1016419835455996076?color=5865F2&label=Discord&logo=discord&logoColor=white)](https://discord.gg/4QWgSz4hTC) ![GitHub](https://img.shields.io/github/license/fonoster/fonoster?color=%2347b96d) ![Twitter Follow](https://img.shields.io/twitter/follow/fonoster?style=social) + +This module is part of the [Fonoster](https://fonoster.com) open-source. By itself, it does not do much. It is intended to be used as a dependency for other modules. For more information about the project, please visit [https://github.com/fonoster/fonoster](https://github.com/fonoster/fonoster). \ No newline at end of file diff --git a/mods/sipnet/package.json b/mods/sipnet/package.json new file mode 100644 index 000000000..436aad178 --- /dev/null +++ b/mods/sipnet/package.json @@ -0,0 +1,45 @@ +{ + "name": "@fonoster/sipnet", + "version": "0.9.0", + "description": "Routr-based SIP stack", + "author": "Pedro Sanders ", + "homepage": "https://github.com/fonoster/fonoster#readme", + "license": "MIT", + "main": "dist/index", + "types": "dist/index", + "directories": { + "src": "src", + "test": "test" + }, + "scripts": { + "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", + "build": "tsc -b tsconfig.json", + "clean": "rimraf ./dist node_modules tsconfig.tsbuildinfo" + }, + "bin": { + "fonoster": "./dist/index.js" + }, + "dependencies": { + "@fonoster/common": "^0.9.0", + "@fonoster/identity": "^0.9.0", + "@fonoster/logger": "^0.9.0", + "@fonoster/types": "^0.9.0", + "@grpc/grpc-js": "~1.10.6", + "@routr/sdk": "2.13.1", + "zod": "^3.23.8" + }, + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/fonoster/fonoster.git" + }, + "bugs": { + "url": "https://github.com/fonoster/fonoster/issues" + }, + "gitHead": "d4aa82f7926c0f451d2f580c59ab812c74a7f579" +} diff --git a/mods/sipnet/src/acls/buildService.ts b/mods/sipnet/src/acls/buildService.ts new file mode 100644 index 000000000..0c69a7c34 --- /dev/null +++ b/mods/sipnet/src/acls/buildService.ts @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import SDK from "@routr/sdk"; +import { createAcl } from "./createAcl"; +import { deleteAcl, getAcl, listAcls } from "./operations"; +import { updateAcl } from "./updateAcl"; +import { ClientOptions } from "../types"; + +function buildService(clientOptions: ClientOptions) { + const client = new SDK.Acls(clientOptions); + + return { + definition: { + serviceName: "Acls", + pckg: "acls", + version: "v1beta2", + proto: "acls.proto" + }, + handlers: { + createAcl: createAcl(client), + updateAcl: updateAcl(client), + getAcl: getAcl(client), + listAcls: listAcls(client), + deleteAcl: deleteAcl(client) + } + }; +} + +export { buildService }; diff --git a/mods/sipnet/src/acls/createAcl.ts b/mods/sipnet/src/acls/createAcl.ts new file mode 100644 index 000000000..0e4d459f1 --- /dev/null +++ b/mods/sipnet/src/acls/createAcl.ts @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getAccessKeyIdFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { AclsApi, BaseApiObject, CreateAclRequest } from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; + +const logger = getLogger({ service: "sipnet", filePath: __filename }); + +function createAcl(api: AclsApi) { + const fn = async ( + call: { request: CreateAclRequest }, + callback: (error?: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { request } = call; + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + logger.verbose("call to createAcl", { ...request, accessKeyId }); + + const response = await api.createAcl({ + ...request, + deny: ["0.0.0.0/0"], + extended: { accessKeyId } + }); + + callback(null, response); + }; + + return withErrorHandlingAndValidation(fn, V.createAclRequestSchema); +} + +export { createAcl }; diff --git a/mods/sipnet/src/acls/index.ts b/mods/sipnet/src/acls/index.ts new file mode 100644 index 000000000..b9d90a223 --- /dev/null +++ b/mods/sipnet/src/acls/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { buildService as buildAclsService } from "./buildService"; diff --git a/mods/sipnet/src/acls/operations.ts b/mods/sipnet/src/acls/operations.ts new file mode 100644 index 000000000..4b0435ad0 --- /dev/null +++ b/mods/sipnet/src/acls/operations.ts @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + AclExtended, + AclsApi, + BaseApiObject, + ListAclsRequest +} from "@fonoster/types"; +import { deleteResource } from "../resources/deleteResource"; +import { getResource } from "../resources/getResource"; +import { listResources } from "../resources/listResources"; + +const RESOURCE = "Acl"; + +function getAcl(acls: AclsApi) { + return getResource(acls, RESOURCE); +} + +function listAcls(acls: AclsApi) { + return listResources(acls, RESOURCE); +} + +function deleteAcl(acls: AclsApi) { + return deleteResource(acls, RESOURCE); +} + +export { deleteAcl, getAcl, listAcls }; diff --git a/mods/sipnet/src/acls/updateAcl.ts b/mods/sipnet/src/acls/updateAcl.ts new file mode 100644 index 000000000..8dc8890b2 --- /dev/null +++ b/mods/sipnet/src/acls/updateAcl.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation, + getAccessKeyIdFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { AclsApi, BaseApiObject, UpdateAclRequest } from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; + +const logger = getLogger({ service: "sipnet", filePath: __filename }); + +function updateAcl(api: AclsApi) { + const fn = async ( + call: { request: UpdateAclRequest }, + callback: (error?: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { request } = call; + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + logger.verbose("call to updateAcl", { ...request, accessKeyId }); + + const response = await api.updateAcl({ ...request, deny: ["0.0.0.0/0"] }); + + callback(null, response); + }; + + return withErrorHandlingAndValidation(fn, V.updateAclRequestSchema); +} + +export { updateAcl }; diff --git a/mods/sipnet/src/agents/buildService.ts b/mods/sipnet/src/agents/buildService.ts new file mode 100644 index 000000000..3d342e33e --- /dev/null +++ b/mods/sipnet/src/agents/buildService.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import SDK from "@routr/sdk"; +import { + createAgent, + deleteAgent, + getAgent, + listAgents, + updateAgent +} from "./operations"; +import { ClientOptions } from "../types"; + +function buildService(clientOptions: ClientOptions) { + const client = new SDK.Agents(clientOptions); + + return { + definition: { + serviceName: "Agents", + pckg: "agents", + version: "v1beta2", + proto: "agents.proto" + }, + handlers: { + createAgent: createAgent(client), + updateAgent: updateAgent(client), + getAgent: getAgent(client), + listAgents: listAgents(client), + deleteAgent: deleteAgent(client) + } + }; +} + +export { buildService }; diff --git a/mods/sipnet/src/agents/index.ts b/mods/sipnet/src/agents/index.ts new file mode 100644 index 000000000..457d8cd38 --- /dev/null +++ b/mods/sipnet/src/agents/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { buildService as buildAgentsService } from "./buildService"; diff --git a/mods/sipnet/src/agents/operations.ts b/mods/sipnet/src/agents/operations.ts new file mode 100644 index 000000000..bd23fea92 --- /dev/null +++ b/mods/sipnet/src/agents/operations.ts @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Validators as V } from "@fonoster/common"; +import { + AgentExtended, + AgentsApi, + BaseApiObject, + CreateAgentRequestExtended, + ListAgentsRequest, + UpdateAgentRequest +} from "@fonoster/types"; +import { createResource } from "../resources/createResource"; +import { deleteResource } from "../resources/deleteResource"; +import { getResource } from "../resources/getResource"; +import { listResources } from "../resources/listResources"; +import { updateResource } from "../resources/updateResource"; + +const RESOURCE = "Agent"; + +function createAgent(agents: AgentsApi) { + return createResource( + agents, + RESOURCE, + V.createAgentRequestSchema + ); +} + +function updateAgent(agents: AgentsApi) { + return updateResource( + agents, + RESOURCE, + V.updateAgentRequestSchema + ); +} + +function getAgent(agents: AgentsApi) { + return getResource(agents, RESOURCE); +} + +function listAgents(agents: AgentsApi) { + return listResources( + agents, + RESOURCE + ); +} + +function deleteAgent(agents: AgentsApi) { + return deleteResource( + agents, + RESOURCE + ); +} + +export { createAgent, deleteAgent, getAgent, listAgents, updateAgent }; diff --git a/mods/sipnet/src/credentials/buildService.ts b/mods/sipnet/src/credentials/buildService.ts new file mode 100644 index 000000000..36cd8a7de --- /dev/null +++ b/mods/sipnet/src/credentials/buildService.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import SDK from "@routr/sdk"; +import { + createCredentials, + deleteCredentials, + getCredentials, + listCredentials, + updateCredentials +} from "./operations"; +import { ClientOptions } from "../types"; + +function buildService(clientOptions: ClientOptions) { + const client = new SDK.Credentials(clientOptions); + + return { + definition: { + serviceName: "CredentialsService", + pckg: "credentials", + version: "v1beta2", + proto: "credentials.proto" + }, + handlers: { + createCredentials: createCredentials(client), + updateCredentials: updateCredentials(client), + getCredentials: getCredentials(client), + listCredentials: listCredentials(client), + deleteCredentials: deleteCredentials(client) + } + }; +} + +export { buildService }; diff --git a/mods/sipnet/src/credentials/index.ts b/mods/sipnet/src/credentials/index.ts new file mode 100644 index 000000000..5d8e43464 --- /dev/null +++ b/mods/sipnet/src/credentials/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { buildService as buildCredentialsService } from "./buildService"; diff --git a/mods/sipnet/src/credentials/operations.ts b/mods/sipnet/src/credentials/operations.ts new file mode 100644 index 000000000..37ba218c9 --- /dev/null +++ b/mods/sipnet/src/credentials/operations.ts @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Validators as V } from "@fonoster/common"; +import { + BaseApiObject, + CreateCredentialsRequestExtended, + CredentialsApi, + CredentialsExtended, + ListCredentialsRequest, + UpdateCredentialsRequest +} from "@fonoster/types"; +import { createResource } from "../resources/createResource"; +import { deleteResource } from "../resources/deleteResource"; +import { getResource } from "../resources/getResource"; +import { listResources } from "../resources/listResources"; +import { updateResource } from "../resources/updateResource"; + +const RESOURCE = "Credentials"; + +function createCredentials(credentials: CredentialsApi) { + return createResource< + CredentialsExtended, + CreateCredentialsRequestExtended, + CredentialsApi + >(credentials, RESOURCE, V.createCredentialsRequestSchema); +} + +function updateCredentials(credentials: CredentialsApi) { + return updateResource< + CredentialsExtended, + UpdateCredentialsRequest, + CredentialsApi + >(credentials, RESOURCE, V.updateCredentialsRequestSchema); +} + +function getCredentials(credentials: CredentialsApi) { + return getResource( + credentials, + RESOURCE + ); +} + +function listCredentials(credentials: CredentialsApi) { + return listResources< + CredentialsExtended, + ListCredentialsRequest, + CredentialsApi + >(credentials, RESOURCE); +} + +function deleteCredentials(credentials: CredentialsApi) { + return deleteResource( + credentials, + RESOURCE + ); +} + +export { + createCredentials, + deleteCredentials, + getCredentials, + listCredentials, + updateCredentials +}; diff --git a/mods/sipnet/src/domains/buildService.ts b/mods/sipnet/src/domains/buildService.ts new file mode 100644 index 000000000..60132071f --- /dev/null +++ b/mods/sipnet/src/domains/buildService.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import SDK from "@routr/sdk"; +import { + createDomain, + deleteDomain, + getDomain, + listDomains, + updateDomain +} from "./operations"; +import { ClientOptions } from "../types"; + +function buildService(clientOptions: ClientOptions) { + const client = new SDK.Domains(clientOptions); + + return { + definition: { + serviceName: "Domains", + pckg: "domains", + version: "v1beta2", + proto: "domains.proto" + }, + handlers: { + createDomain: createDomain(client), + updateDomain: updateDomain(client), + getDomain: getDomain(client), + listDomains: listDomains(client), + deleteDomain: deleteDomain(client) + } + }; +} + +export { buildService }; diff --git a/mods/sipnet/src/domains/index.ts b/mods/sipnet/src/domains/index.ts new file mode 100644 index 000000000..2f2a722f8 --- /dev/null +++ b/mods/sipnet/src/domains/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { buildService as buildDomainsService } from "./buildService"; diff --git a/mods/sipnet/src/domains/operations.ts b/mods/sipnet/src/domains/operations.ts new file mode 100644 index 000000000..07a4d5a38 --- /dev/null +++ b/mods/sipnet/src/domains/operations.ts @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Validators as V } from "@fonoster/common"; +import { + BaseApiObject, + CreateDomainRequestExtended, + DomainExtended, + DomainsApi, + ListDomainsRequest, + UpdateDomainRequest +} from "@fonoster/types"; +import { createResource } from "../resources/createResource"; +import { deleteResource } from "../resources/deleteResource"; +import { getResource } from "../resources/getResource"; +import { listResources } from "../resources/listResources"; +import { updateResource } from "../resources/updateResource"; + +const RESOURCE = "Domain"; + +function createDomain(domains: DomainsApi) { + return createResource< + DomainExtended, + CreateDomainRequestExtended, + DomainsApi + >(domains, RESOURCE, V.createDomainRequestSchema); +} + +function updateDomain(domains: DomainsApi) { + return updateResource( + domains, + RESOURCE, + V.updateDomainRequestSchema + ); +} + +function getDomain(domains: DomainsApi) { + return getResource( + domains, + RESOURCE + ); +} + +function listDomains(domains: DomainsApi) { + return listResources( + domains, + RESOURCE + ); +} + +function deleteDomain(domains: DomainsApi) { + return deleteResource( + domains, + RESOURCE + ); +} + +export { createDomain, deleteDomain, getDomain, listDomains, updateDomain }; diff --git a/mods/sipnet/src/index.ts b/mods/sipnet/src/index.ts new file mode 100644 index 000000000..936281d40 --- /dev/null +++ b/mods/sipnet/src/index.ts @@ -0,0 +1,25 @@ +#!/usr/bin/env node +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./acls"; +export * from "./agents"; +export * from "./credentials"; +export * from "./domains"; +export * from "./numbers"; +export * from "./trunks"; diff --git a/mods/sipnet/src/numbers/buildService.ts b/mods/sipnet/src/numbers/buildService.ts new file mode 100644 index 000000000..3006d4988 --- /dev/null +++ b/mods/sipnet/src/numbers/buildService.ts @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { NumberPreconditionsCheck } from "@fonoster/common"; +import SDK from "@routr/sdk"; +import { createNumber } from "./createNumber"; +import { getNumber } from "./getNumber"; +import { listNumbers } from "./listNumbers"; +import { deleteNumber } from "./operations"; +import { updateNumber } from "./updateNumber"; +import { ClientOptions } from "../types"; + +function buildService( + clientOptions: ClientOptions, + checkNumberPreconditions: NumberPreconditionsCheck +) { + const client = new SDK.Numbers(clientOptions); + + return { + definition: { + serviceName: "Numbers", + pckg: "numbers", + version: "v1beta2", + proto: "numbers.proto" + }, + handlers: { + createNumber: createNumber(client, checkNumberPreconditions), + updateNumber: updateNumber(client, checkNumberPreconditions), + getNumber: getNumber(client), + listNumbers: listNumbers(client), + deleteNumber: deleteNumber(client) + } + }; +} + +export { buildService }; diff --git a/mods/sipnet/src/numbers/convertToFonosterNumber.ts b/mods/sipnet/src/numbers/convertToFonosterNumber.ts new file mode 100644 index 000000000..663e07c0d --- /dev/null +++ b/mods/sipnet/src/numbers/convertToFonosterNumber.ts @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { APP_REF_HEADER } from "@fonoster/common"; +import { INumber, INumberExtended } from "@fonoster/types"; + +function convertToFonosterNumber(number: INumberExtended): INumber { + const appRef = number.extraHeaders?.find( + (header) => header.name === APP_REF_HEADER + )?.value; + + return { + ref: number.ref, + name: number.name, + telUrl: number.telUrl, + appRef, + agentAor: appRef ? undefined : number.aorLink, + city: number.city, + country: number.country, + countryIsoCode: number.countryIsoCode, + trunk: number.trunk, + createdAt: new Date(number.createdAt * 1000), + updatedAt: new Date(number.updatedAt * 1000) + }; +} + +export { convertToFonosterNumber }; diff --git a/mods/sipnet/src/numbers/convertToRoutrNumber.ts b/mods/sipnet/src/numbers/convertToRoutrNumber.ts new file mode 100644 index 000000000..4982d7425 --- /dev/null +++ b/mods/sipnet/src/numbers/convertToRoutrNumber.ts @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { APP_REF_HEADER, ROUTR_DEFAULT_PEER_AOR } from "@fonoster/common"; +import { CreateNumberRequest, UpdateNumberRequest } from "@fonoster/types"; + +function convertToRoutrNumber( + number: CreateNumberRequest, + accessKeyId: string +) { + const aorLink = number.appRef ? ROUTR_DEFAULT_PEER_AOR : number.agentAor; + + return { + name: number.name, + telUrl: number.telUrl, + aorLink, + city: number.city, + country: number.country, + countryIsoCode: number.countryIsoCode, + extraHeaders: number.appRef + ? [ + { + name: APP_REF_HEADER, + value: number.appRef + } + ] + : [], + trunkRef: number.trunkRef, + extended: { accessKeyId } as Record + }; +} + +function convertToRoutrNumberUpdate(number: UpdateNumberRequest) { + let aorLink: string | undefined; + let extraHeaders: { name: string; value: string }[] = []; + + if (number.appRef) { + aorLink = ROUTR_DEFAULT_PEER_AOR; + extraHeaders.push({ + name: APP_REF_HEADER, + value: number.appRef + }); + } else if (number.agentAor) { + extraHeaders = null; + aorLink = number.agentAor; + } + + return { + ref: number.ref, + name: number.name, + aorLink, + extraHeaders, + trunkRef: number.trunkRef + }; +} + +export { convertToRoutrNumber, convertToRoutrNumberUpdate }; diff --git a/mods/sipnet/src/numbers/createNumber.ts b/mods/sipnet/src/numbers/createNumber.ts new file mode 100644 index 000000000..b0563d1bb --- /dev/null +++ b/mods/sipnet/src/numbers/createNumber.ts @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + NumberPreconditionsCheck, + Validators as V, + withErrorHandlingAndValidation, + getAccessKeyIdFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { + BaseApiObject, + CreateNumberRequest, + NumbersApi +} from "@fonoster/types"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { convertToRoutrNumber } from "./convertToRoutrNumber"; + +const logger = getLogger({ service: "sipnet", filePath: __filename }); + +function createNumber( + api: NumbersApi, + checkNumberPreconditions: NumberPreconditionsCheck +) { + const fn = async ( + call: { request: CreateNumberRequest }, + callback: (error?: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { request } = call; + + // Validates that the appRef or agentAor exists in the system + await checkNumberPreconditions(request); + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + logger.verbose("call to createNumber", { ...request, accessKeyId }); + + const response = await api.createNumber( + convertToRoutrNumber(request, accessKeyId) + ); + + callback(null, response); + }; + + return withErrorHandlingAndValidation(fn, V.createNumberRequestSchema); +} + +export { createNumber }; diff --git a/mods/sipnet/src/numbers/getNumber.ts b/mods/sipnet/src/numbers/getNumber.ts new file mode 100644 index 000000000..e25893beb --- /dev/null +++ b/mods/sipnet/src/numbers/getNumber.ts @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { BaseApiObject, NumbersApi } from "@fonoster/types"; +import { convertToFonosterNumber } from "./convertToFonosterNumber"; + +const logger = getLogger({ service: "sipnet", filePath: __filename }); + +function getNumber(api: NumbersApi) { + const fn = async ( + call: { request: BaseApiObject }, + callback: (error?: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { request } = call; + const { ref } = request; + + logger.verbose("call to getNumber", { ref }); + + const response = await api.getNumber(ref); + + callback(null, convertToFonosterNumber(response)); + }; + + return withErrorHandlingAndValidation(fn, V.emptySchema); +} + +export { getNumber }; diff --git a/mods/sipnet/src/numbers/index.ts b/mods/sipnet/src/numbers/index.ts new file mode 100644 index 000000000..43bf12e9d --- /dev/null +++ b/mods/sipnet/src/numbers/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { buildService as buildNumbersService } from "./buildService"; diff --git a/mods/sipnet/src/numbers/listNumbers.ts b/mods/sipnet/src/numbers/listNumbers.ts new file mode 100644 index 000000000..b964c1988 --- /dev/null +++ b/mods/sipnet/src/numbers/listNumbers.ts @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + getAccessKeyIdFromCall, + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { + ListNumbersRequest, + ListNumbersResponse, + NumbersApi +} from "@fonoster/types"; +import { convertToFonosterNumber } from "./convertToFonosterNumber"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; + +const logger = getLogger({ service: "sipnet", filePath: __filename }); + +function listNumbers(api: NumbersApi) { + const fn = async ( + call: { request: ListNumbersRequest }, + callback: (error?: GrpcErrorMessage, response?: ListNumbersResponse) => void + ) => { + const { request } = call; + + logger.verbose("call to listNumbers", { ...request }); + + const response = await api.listNumbers(request); + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + const items = response.items + .filter((item) => item.extended.accessKeyId === accessKeyId) + .map(convertToFonosterNumber); + + callback(null, { + items: items, + nextPageToken: response.nextPageToken + }); + }; + + return withErrorHandlingAndValidation(fn, V.listRequestSchema); +} + +export { listNumbers }; diff --git a/mods/sipnet/src/numbers/operations.ts b/mods/sipnet/src/numbers/operations.ts new file mode 100644 index 000000000..811469b23 --- /dev/null +++ b/mods/sipnet/src/numbers/operations.ts @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseApiObject, INumberExtended, NumbersApi } from "@fonoster/types"; +import { deleteResource } from "../resources/deleteResource"; + +const RESOURCE = "Number"; + +function deleteNumber(numbers: NumbersApi) { + return deleteResource( + numbers, + RESOURCE + ); +} + +export { deleteNumber }; diff --git a/mods/sipnet/src/numbers/updateNumber.ts b/mods/sipnet/src/numbers/updateNumber.ts new file mode 100644 index 000000000..5e9e50f1d --- /dev/null +++ b/mods/sipnet/src/numbers/updateNumber.ts @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + NumberPreconditionsCheck, + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { + BaseApiObject, + NumbersApi, + UpdateNumberRequest +} from "@fonoster/types"; +import { convertToRoutrNumberUpdate } from "./convertToRoutrNumber"; + +const logger = getLogger({ service: "sipnet", filePath: __filename }); + +function updateNumber( + api: NumbersApi, + checkNumberPreconditions: NumberPreconditionsCheck +) { + const fn = async ( + call: { request: UpdateNumberRequest }, + callback: (error?: GrpcErrorMessage, response?: BaseApiObject) => void + ) => { + const { request } = call; + + // Validates that the appRef or agentAor exists in the system + await checkNumberPreconditions(request); + + logger.verbose("call to updateNumber", { ...request }); + + const response = await api.updateNumber( + convertToRoutrNumberUpdate(request) + ); + + callback(null, response); + }; + + return withErrorHandlingAndValidation(fn, V.updateNumberRequestSchema); +} + +export { updateNumber }; diff --git a/mods/sipnet/src/resources/createResource.ts b/mods/sipnet/src/resources/createResource.ts new file mode 100644 index 000000000..e0eba2cac --- /dev/null +++ b/mods/sipnet/src/resources/createResource.ts @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GrpcErrorMessage, + withErrorHandlingAndValidation, + getAccessKeyIdFromCall +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; +import { z } from "zod"; + +const logger = getLogger({ service: "sipnet", filePath: __filename }); + +function createResource( + api: U, + resource: string, + schema: z.ZodSchema +) { + const fn = async ( + call: { request: R }, + callback: (error?: GrpcErrorMessage, response?: T) => void + ) => { + const { request } = call; + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + logger.verbose(`call to create${resource}`, { ...request, accessKeyId }); + + const response = await api[`create${resource}`]({ + ...request, + extended: { + accessKeyId + } + }); + + callback(null, response); + }; + + return withErrorHandlingAndValidation(fn, schema); +} + +export { createResource }; diff --git a/mods/sipnet/src/resources/deleteResource.ts b/mods/sipnet/src/resources/deleteResource.ts new file mode 100644 index 000000000..4f0cecf25 --- /dev/null +++ b/mods/sipnet/src/resources/deleteResource.ts @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { withAccess } from "@fonoster/identity"; +import { getLogger } from "@fonoster/logger"; + +const logger = getLogger({ service: "sipnet", filePath: __filename }); + +function deleteResource(api: U, resource: string) { + const fn = async (call: { request: R }): Promise => { + const { request } = call as { request: { ref: string } }; + + logger.verbose(`call to delete${resource}`, { request, resource }); + + await api[`delete${resource}`](request.ref); + + return { ref: request.ref } as T; + }; + + return withErrorHandlingAndValidation( + withAccess(fn, (ref: string) => api[`get${resource}`](ref)), + V.emptySchema + ); +} + +export { deleteResource }; diff --git a/mods/sipnet/src/resources/getResource.ts b/mods/sipnet/src/resources/getResource.ts new file mode 100644 index 000000000..6cba921b2 --- /dev/null +++ b/mods/sipnet/src/resources/getResource.ts @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { withAccess } from "@fonoster/identity"; +import { getLogger } from "@fonoster/logger"; + +const logger = getLogger({ service: "sipnet", filePath: __filename }); + +function getResource(api: U, resource: string) { + const fn = async (call: { request: R }): Promise => { + const { request } = call as { request: { ref: string } }; + + logger.verbose(`call to get${resource}`, { request, resource }); + + return await api[`get${resource}`](request.ref); + }; + + return withErrorHandlingAndValidation( + withAccess(fn, (ref: string) => api[`get${resource}`](ref)), + V.emptySchema + ); +} + +export { getResource }; diff --git a/mods/sipnet/src/resources/listResources.ts b/mods/sipnet/src/resources/listResources.ts new file mode 100644 index 000000000..cf653df45 --- /dev/null +++ b/mods/sipnet/src/resources/listResources.ts @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + getAccessKeyIdFromCall, + GrpcErrorMessage, + Validators as V, + withErrorHandlingAndValidation +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { ServerInterceptingCall } from "@grpc/grpc-js"; + +const logger = getLogger({ service: "sipnet", filePath: __filename }); + +type ListResourcesResponse = { + nextPageToken?: string; + items: T[]; +}; + +function listResources(api: U, resource: string) { + const fn = async ( + call: { request: R }, + callback: ( + error?: GrpcErrorMessage, + response?: ListResourcesResponse + ) => void + ) => { + const { request } = call; + + const res = resource === "Credentials" ? "Credential" : resource; + + logger.verbose(`call to list${res}s`, { request }); + + const accessKeyId = getAccessKeyIdFromCall( + call as unknown as ServerInterceptingCall + ); + + const response = await api[`list${res}s`](request); + + const items = response.items.filter( + (item: { extended: { accessKeyId: string } }) => + item.extended?.accessKeyId === accessKeyId + ); + + callback(null, { + items, + nextPageToken: response.nextPageToken + }); + }; + + return withErrorHandlingAndValidation(fn, V.listRequestSchema); +} + +export { listResources }; diff --git a/mods/sipnet/src/resources/updateResource.ts b/mods/sipnet/src/resources/updateResource.ts new file mode 100644 index 000000000..e3b30be5e --- /dev/null +++ b/mods/sipnet/src/resources/updateResource.ts @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { withErrorHandlingAndValidation } from "@fonoster/common"; +import { withAccess } from "@fonoster/identity"; +import { getLogger } from "@fonoster/logger"; +import { z } from "zod"; + +const logger = getLogger({ service: "sipnet", filePath: __filename }); + +function updateResource( + api: U, + resource: string, + schema: z.ZodSchema +) { + const fn = async (call: { request: R }): Promise => { + const { request } = call; + + logger.verbose(`call to update${resource}`, { ...request }); + + return await api[`update${resource}`](request); + }; + + return withErrorHandlingAndValidation( + withAccess(fn, (ref: string) => api[`get${resource}`](ref)), + schema + ); +} + +export { updateResource }; diff --git a/mods/sipnet/src/trunks/buildService.ts b/mods/sipnet/src/trunks/buildService.ts new file mode 100644 index 000000000..d794980c7 --- /dev/null +++ b/mods/sipnet/src/trunks/buildService.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import SDK from "@routr/sdk"; +import { + createTrunk, + deleteTrunk, + getTrunk, + listTrunks, + updateTrunk +} from "./operations"; +import { ClientOptions } from "../types"; + +function buildService(clientOptions: ClientOptions) { + const client = new SDK.Trunks(clientOptions); + + return { + definition: { + serviceName: "Trunks", + pckg: "trunks", + version: "v1beta2", + proto: "trunks.proto" + }, + handlers: { + createTrunk: createTrunk(client), + updateTrunk: updateTrunk(client), + getTrunk: getTrunk(client), + listTrunks: listTrunks(client), + deleteTrunk: deleteTrunk(client) + } + }; +} + +export { buildService }; diff --git a/mods/sipnet/src/trunks/index.ts b/mods/sipnet/src/trunks/index.ts new file mode 100644 index 000000000..635167b32 --- /dev/null +++ b/mods/sipnet/src/trunks/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { buildService as buildTrunksService } from "./buildService"; diff --git a/mods/sipnet/src/trunks/operations.ts b/mods/sipnet/src/trunks/operations.ts new file mode 100644 index 000000000..4689c711b --- /dev/null +++ b/mods/sipnet/src/trunks/operations.ts @@ -0,0 +1,71 @@ +/* eslint-disable @typescript-eslint/ban-types */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Validators as V } from "@fonoster/common"; +import { + BaseApiObject, + CreateTrunkRequestExtended, + ListTrunksRequest, + TrunkApi, + TrunkExtended, + UpdateTrunkRequest +} from "@fonoster/types"; +import { createResource } from "../resources/createResource"; +import { deleteResource } from "../resources/deleteResource"; +import { getResource } from "../resources/getResource"; +import { listResources } from "../resources/listResources"; +import { updateResource } from "../resources/updateResource"; + +const RESOURCE = "Trunk"; + +function createTrunk(trunks: TrunkApi) { + return createResource( + trunks, + RESOURCE, + V.createTrunkRequestSchema + ); +} + +function updateTrunk(trunks: TrunkApi) { + return updateResource( + trunks, + RESOURCE, + V.updateTrunkRequestSchema + ); +} + +function getTrunk(trunks: TrunkApi) { + return getResource(trunks, RESOURCE); +} + +function listTrunks(trunks: TrunkApi) { + return listResources( + trunks, + RESOURCE + ); +} + +function deleteTrunk(trunks: TrunkApi) { + return deleteResource( + trunks, + RESOURCE + ); +} + +export { createTrunk, deleteTrunk, getTrunk, listTrunks, updateTrunk }; diff --git a/mods/sipnet/src/types.ts b/mods/sipnet/src/types.ts new file mode 100644 index 000000000..99e0ec4e8 --- /dev/null +++ b/mods/sipnet/src/types.ts @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type ClientOptions = { + endpoint: string; + insecure: boolean; +}; + +export { ClientOptions }; diff --git a/mods/sipnet/test/createNumber.test.ts b/mods/sipnet/test/createNumber.test.ts new file mode 100644 index 000000000..3373e122b --- /dev/null +++ b/mods/sipnet/test/createNumber.test.ts @@ -0,0 +1,205 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { NumbersApi } from "@fonoster/types"; +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { TEST_TOKEN } from "./testToken"; +import { APP_REF_HEADER, ROUTR_DEFAULT_PEER_AOR } from "@fonoster/common"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +const TELEPHONE_NUMBER = "+1234567890"; + +describe("@sipnet[sipnet/createNumber]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a number resource", async function () { + // Arrange + const { createNumber } = await import("../src/numbers/createNumber"); + const accessKeyId = "GRahn02s8tgdfghz72vb0fz538qpb5z35p"; + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + metadata.set("accesskeyid", accessKeyId); + + const numbers = { + createNumber: sandbox.stub().resolves({ ref: "123" }) + } as unknown as NumbersApi; + + const call = { + metadata, + request: { + name: "My Number", + telUrl: TELEPHONE_NUMBER, + city: "New York", + country: "USA", + countryIsoCode: "US", + appRef: "123", + trunkRef: "456" + } + }; + + const callback = sandbox.stub(); + const checkNumberPreconditions = sandbox.stub(); + + const create = createNumber(numbers, checkNumberPreconditions); + + // Act + await create(call, callback); + + // Assert + expect(callback).to.have.been.calledOnceWithExactly(null, { ref: "123" }); + expect(numbers.createNumber).to.have.been.calledOnceWith({ + name: call.request.name, + telUrl: call.request.telUrl, + city: call.request.city, + aorLink: ROUTR_DEFAULT_PEER_AOR, + country: call.request.country, + countryIsoCode: call.request.countryIsoCode, + extraHeaders: [{ name: APP_REF_HEADER, value: call.request.appRef }], + extended: { accessKeyId }, + trunkRef: call.request.trunkRef + }); + }); + + it("should throw a validation error if the country ISO code is invalid", async function () { + // Arrange + const { createNumber } = await import("../src/numbers/createNumber"); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const numbers = { + createNumber: sandbox.stub().resolves({ ref: "123" }) + } as unknown as NumbersApi; + + const call = { + metadata, + request: { + name: "My Number", + telUrl: TELEPHONE_NUMBER, + city: "New York", + country: "USA", + countryIsoCode: "USA", + appRef: "123" + } + }; + + const callback = sandbox.stub(); + const checkNumberPreconditions = sandbox.stub(); + + const create = createNumber(numbers, checkNumberPreconditions); + + // Act + await create(call, callback); + + // Assert + expect(callback).to.have.been.calledOnceWithExactly({ + code: grpc.status.INVALID_ARGUMENT, + message: "Invalid country ISO code" + }); + expect(numbers.createNumber).to.not.have.been.called; + }); + + it("should throw a validation error if the SIP URI is invalid", async function () { + // Arrange + const { createNumber } = await import("../src/numbers/createNumber"); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const numbers = { + createNumber: sandbox.stub().resolves({ ref: "123" }) + } as unknown as NumbersApi; + + const call = { + metadata, + request: { + name: "My Number", + telUrl: TELEPHONE_NUMBER, + city: "New York", + country: "USA", + countryIsoCode: "US", + agentAor: "sip:123" + } + }; + + const callback = sandbox.stub(); + const checkNumberPreconditions = sandbox.stub(); + + const create = createNumber(numbers, checkNumberPreconditions); + + // Act + await create(call, callback); + + // Assert + expect(callback).to.have.been.calledOnceWithExactly({ + code: grpc.status.INVALID_ARGUMENT, + // eslint-disable-next-line prettier/prettier + message: "Invalid SIP URI at \"agentAor\"" + }); + }); + + it("should throw a precondition error if the appRef does not exist", async function () { + // Arrange + const { createNumber } = await import("../src/numbers/createNumber"); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const numbers = { + createNumber: sandbox.stub().resolves({ ref: "123" }) + } as unknown as NumbersApi; + + const call = { + metadata, + request: { + name: "My Number", + telUrl: TELEPHONE_NUMBER, + city: "New York", + country: "USA", + countryIsoCode: "US", + appRef: "123" + } + }; + + const callback = sandbox.stub(); + + const checkNumberPreconditions = sandbox.stub().throws({ + code: grpc.status.INVALID_ARGUMENT, + message: "The application does not exist" + }); + + const create = createNumber(numbers, checkNumberPreconditions); + + // Act + await create(call, callback); + + // Assert + expect(callback).to.have.been.calledOnceWithExactly({ + code: grpc.status.INVALID_ARGUMENT, + message: "The application does not exist" + }); + expect(numbers.createNumber).to.not.have.been.called; + }); +}); diff --git a/mods/sipnet/test/createResource.test.ts b/mods/sipnet/test/createResource.test.ts new file mode 100644 index 000000000..e2228de5a --- /dev/null +++ b/mods/sipnet/test/createResource.test.ts @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Validators as V } from "@fonoster/common"; +import { CreateDomainRequest, Domain, DomainsApi } from "@fonoster/types"; +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getExtendedFieldsHelper } from "./getExtendedFieldsHelper"; +import { TEST_TOKEN } from "./testToken"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@sipnet[resources/createResource]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a sipnet resource", async function () { + // Arrange + const { createResource } = await import("../src/resources/createResource"); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const domains = { + createDomain: sandbox.stub().resolves({ ref: "123" }), + getDomain: getExtendedFieldsHelper(sandbox) + } as unknown as DomainsApi; + + const call = { + metadata, + request: { + name: "My Domain", + domainUri: "sip.fonoster.local", + accessControlListRef: "123", + egressPolicies: [], + extended: { + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p" + } + } + }; + + const callback = sandbox.stub(); + + const create = createResource( + domains, + "Domain", + V.createDomainRequestSchema + ); + + // Act + await create(call, callback); + + // Assert + expect(callback).to.have.been.calledOnceWithExactly(null, { ref: "123" }); + }); + + it("should throw an error if the sipnet resource already exists", async function () { + // Arrange + const { createResource } = await import("../src/resources/createResource"); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const domains = { + createDomain: sandbox.stub().throws({ + code: grpc.status.ALREADY_EXISTS, + message: "The resource already exists" + }), + getDomain: getExtendedFieldsHelper(sandbox) + } as unknown as DomainsApi; + + const call = { + metadata, + request: { + name: "My Domain", + domainUri: "sip.fonoster.local", + accessControlListRef: "123", + egressPolicies: [] + } + }; + + const callback = sandbox.stub(); + + const create = createResource( + domains, + "Domain", + V.createDomainRequestSchema + ); + + // Act + await create(call, callback); + + // Assert + expect(callback).to.have.been.calledOnceWithExactly({ + code: grpc.status.ALREADY_EXISTS, + message: "The resource already exists" + }); + }); +}); diff --git a/mods/sipnet/test/deleteResource.test.ts b/mods/sipnet/test/deleteResource.test.ts new file mode 100644 index 000000000..0c5181940 --- /dev/null +++ b/mods/sipnet/test/deleteResource.test.ts @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseApiObject, Domain, DomainsApi } from "@fonoster/types"; +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getExtendedFieldsHelper } from "./getExtendedFieldsHelper"; +import { TEST_TOKEN } from "./testToken"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@sipnet[resources/deleteResource]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should delete a sipnet resource", async function () { + // Arrange + const { deleteResource } = await import("../src/resources/deleteResource"); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const domains = { + deleteDomain: sandbox.stub().resolves({ ref: "123" }), + getDomain: getExtendedFieldsHelper(sandbox) + } as unknown as DomainsApi; + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const callback = sandbox.stub(); + const deleteD = deleteResource( + domains, + "Domain" + ); + + // Act + await deleteD(call, callback); + + // Assert + expect(callback).to.have.been.calledOnce; + expect(callback).to.have.been.calledWith(null, { ref: "123" }); + }); +}); diff --git a/mods/sipnet/test/getExtendedFieldsHelper.ts b/mods/sipnet/test/getExtendedFieldsHelper.ts new file mode 100644 index 000000000..d4ecaa783 --- /dev/null +++ b/mods/sipnet/test/getExtendedFieldsHelper.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import sinon from "sinon"; + +function getExtendedFieldsHelper(sandbox: sinon.SinonSandbox) { + return sandbox.stub().resolves({ + ref: "123", + extended: { + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p" + } + }); +} + +export { getExtendedFieldsHelper }; diff --git a/mods/sipnet/test/getResource.test.ts b/mods/sipnet/test/getResource.test.ts new file mode 100644 index 000000000..fae737397 --- /dev/null +++ b/mods/sipnet/test/getResource.test.ts @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { TEST_TOKEN } from "@fonoster/sipnet/test/testToken"; +import { BaseApiObject, Domain, DomainsApi } from "@fonoster/types"; +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@sipnet[resources/getResource]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should get a sipnet resource", async function () { + // Arrange + const { getResource } = await import("../src/resources/getResource"); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const domain = { + ref: "123", + name: "SIP Local", + domainUri: "sip.fonoster.local", + extended: { + accessKeyId: "GRahn02s8tgdfghz72vb0fz538qpb5z35p" + }, + createdAt: new Date(), + updatedAt: new Date() + }; + + const domains = { + getDomain: sandbox.stub().resolves(domain) + } as unknown as DomainsApi; + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const get = getResource( + domains, + "Domain" + ); + + // Act + await get(call, (error, response) => { + // Assert + expect(error).to.be.null; + expect(response).to.deep.equal(domain); + }); + }); + + it("should throw an error if sipnet resource not found", async function () { + // Arrange + const { getResource } = await import("../src/resources/getResource"); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const domains = { + getDomain: sandbox.stub().throws({ + code: grpc.status.NOT_FOUND, + message: "The requested resource was not found" + }) + } as unknown as DomainsApi; + + const call = { + metadata, + request: { + ref: "123" + } + }; + + const callback = sandbox.stub(); + const get = getResource( + domains, + "Domain" + ); + + // Act + await get(call, callback); + + // Assert + expect(callback).to.have.been.calledOnce; + expect(callback).to.have.been.calledWithMatch({ + code: grpc.status.NOT_FOUND, + message: "The requested resource was not found" + }); + }); +}); diff --git a/mods/sipnet/test/listResources.test.ts b/mods/sipnet/test/listResources.test.ts new file mode 100644 index 000000000..a4133ea60 --- /dev/null +++ b/mods/sipnet/test/listResources.test.ts @@ -0,0 +1,97 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getExtendedFieldsHelper } from "@fonoster/sipnet/test/getExtendedFieldsHelper"; +import { TEST_TOKEN } from "@fonoster/sipnet/test/testToken"; +import { Domain, DomainsApi, ListDomainsRequest } from "@fonoster/types"; +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@sipnet[resources/listResources]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should list sipnet resources", async function () { + // Arrange + const { listResources } = await import("../src/resources/listResources"); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + metadata.set("accesskeyid", "WO00000000000000000000000000000000"); + + const domain = { + ref: "123", + name: "SIP Local", + domainUri: "sip.fonoster.local", + metadata: { + description: "test" + }, + createdAt: new Date(), + updatedAt: new Date(), + extended: { + accessKeyId: "WO00000000000000000000000000000000" + } + }; + + const domains = { + listDomains: sandbox.stub().resolves({ + items: [domain], + nextPageToken: "" + }), + getDomain: getExtendedFieldsHelper(sandbox) + } as unknown as DomainsApi; + + const call = { + metadata, + request: { + pageSize: 10, + pageToken: "" + } + }; + + const list = listResources( + domains, + "Domain" + ); + + // Act + await list(call, (error, response) => { + // Assert + expect(error).to.be.null; + expect(response).to.deep.equal({ + items: [domain], + nextPageToken: "" + }); + }); + + // Assert + expect(domains.listDomains).to.have.been.calledOnce; + expect(domains.listDomains).to.have.been.calledWith({ + pageSize: 10, + pageToken: "" + }); + }); +}); diff --git a/mods/sipnet/test/testToken.ts b/mods/sipnet/test/testToken.ts new file mode 100644 index 000000000..968ffe284 --- /dev/null +++ b/mods/sipnet/test/testToken.ts @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// Long-lived token for testing only +const TEST_TOKEN = + "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2Zvbm9zdGVyLmxvY2FsIiwic3ViIjoiNjM1YzBjZDgtODEyNS00ODNkLWI0NjctMDVjNTNjZTJjZDMxIiwiYXVkIjoiYXBpIiwidG9rZW5Vc2UiOiJhY2Nlc3MiLCJhY2Nlc3NLZXlJZCI6IlVTMTR3ajhxNnFsaXJ3MzMxZ2Zzd3VzZmJsaWU2aDc4dXoiLCJhY2Nlc3MiOlt7ImFjY2Vzc0tleUlkIjoiR1JhaG4wMnM4dGdkZmdoejcydmIwZno1MzhxcGI1ejM1cCIsInJvbGUiOiJPV05FUiJ9LHsiYWNjZXNzS2V5SWQiOiJHUmtnYmY4YW1pbnl3dWV2dXBiZHB4bDYzNmtjM2N5YmhvIiwicm9sZSI6Ik9XTkVSIn1dLCJpYXQiOjE3MTQ0MzM3MzZ9.eG6UEe8nBncu1I8TtytG5bModK42JxuSLCK74eLzUb-7MLowza8ZSfoHPHSPu5j1Wy_nj8NWa1u1SvqTfW-8inoL8Y_Mawl_u9zSM09Co85RQOI_bj7huGB7v0UECLfKyd7cAo_9wGB9TDDDX5Qo66bQz49hu_8zed8e6RzJXYRC5-5TBlyYdw3o7yHUXL5t8tFxDhT7U61kg0eVjPPZCAUiyohK74Zxdv1Z9RCfWTt9kUYXReqOUvhAFzL5Um5KwNdRnWwFRz_3-Msui2axAsZ6ztGoAvw_GhdlAminGEq7FILVCh6OHeOESAYo-qreAANmbwfBS8qNsglTiPAUEw"; + +export { TEST_TOKEN }; diff --git a/mods/sipnet/test/updateResource.test.ts b/mods/sipnet/test/updateResource.test.ts new file mode 100644 index 000000000..ed8d66e0b --- /dev/null +++ b/mods/sipnet/test/updateResource.test.ts @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Validators as V } from "@fonoster/common"; +import { getExtendedFieldsHelper } from "@fonoster/sipnet/test/getExtendedFieldsHelper"; +import { TEST_TOKEN } from "@fonoster/sipnet/test/testToken"; +import { Domain, DomainsApi, UpdateDomainRequest } from "@fonoster/types"; +import * as grpc from "@grpc/grpc-js"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@sipnet[resources/updateResource]", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should update a sipnet resource", async function () { + // Arrange + const { updateResource } = await import("../src/resources/updateResource"); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const domains = { + updateDomain: sandbox.stub().resolves({ ref: "123" }), + getDomain: getExtendedFieldsHelper(sandbox) + } as unknown as DomainsApi; + + const call = { + metadata, + request: { + ref: "123", + name: "My Domain", + accessControlListRef: "123", + egressPolicies: [] + } + }; + + const callback = sandbox.stub(); + + const update = updateResource( + domains, + "Domain", + V.updateDomainRequestSchema + ); + + // Act + await update(call, callback); + + // Assert + expect(callback).to.have.been.calledOnceWithExactly(null, { ref: "123" }); + }); + + it("should throw an error if the sipnet resource doesn't exists", async function () { + // Arrange + const { updateResource } = await import("../src/resources/updateResource"); + const metadata = new grpc.Metadata(); + metadata.set("token", TEST_TOKEN); + + const domains = { + updateDomain: sandbox.stub().throws({ + code: grpc.status.NOT_FOUND, + message: "The requested resource was not found" + }), + getDomain: getExtendedFieldsHelper(sandbox) + } as unknown as DomainsApi; + + const call = { + metadata, + request: { + ref: "123", + name: "My Domain", + accessControlListRef: "123", + egressPolicies: [] + } + }; + + const callback = sandbox.stub(); + + const update = updateResource( + domains, + "Domain", + V.updateDomainRequestSchema + ); + + // Act + await update(call, callback); + + // Assert + expect(callback).to.have.been.calledOnceWithExactly({ + code: grpc.status.NOT_FOUND, + message: "The requested resource was not found" + }); + }); +}); diff --git a/mods/sipnet/tsconfig.json b/mods/sipnet/tsconfig.json new file mode 100644 index 000000000..e23f1b246 --- /dev/null +++ b/mods/sipnet/tsconfig.json @@ -0,0 +1,22 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "references": [ + { + "path": "../identity", + }, + { + "path": "../logger", + }, + { + "path": "../common", + }, + { + "path": "../types", + } + ], + "exclude": ["node_modules", "dist", "test"] +} diff --git a/mods/storage/.dockerignore b/mods/storage/.dockerignore deleted file mode 100644 index b512c09d4..000000000 --- a/mods/storage/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/mods/storage/.lerna-changed-buster-192 b/mods/storage/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/storage/.npmignore b/mods/storage/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/storage/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/storage/Dockerfile b/mods/storage/Dockerfile deleted file mode 100644 index 22212a4ec..000000000 --- a/mods/storage/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs python3 make g++ \ - && npm install -g fonoster-*.tgz \ - && apk del npm git python3 make g++ - -USER fonoster - -CMD ["run_storage"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_storage" ] \ No newline at end of file diff --git a/mods/storage/etc/hello-monkeys.tgz b/mods/storage/etc/hello-monkeys.tgz deleted file mode 100644 index e39a75010..000000000 Binary files a/mods/storage/etc/hello-monkeys.tgz and /dev/null differ diff --git a/mods/storage/etc/test.txt b/mods/storage/etc/test.txt deleted file mode 100644 index 004d4d11c..000000000 --- a/mods/storage/etc/test.txt +++ /dev/null @@ -1 +0,0 @@ -Hello monkeys! diff --git a/mods/storage/package-lock.json b/mods/storage/package-lock.json deleted file mode 100644 index afd4269f5..000000000 --- a/mods/storage/package-lock.json +++ /dev/null @@ -1,2874 +0,0 @@ -{ - "name": "@fonoster/storage", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/storage", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "minio": "^7.0.18", - "sync": "^0.2.5", - "tar": "^6.1.0", - "walk": "^2.3.14" - }, - "bin": { - "healthcheck_storage": "dist/service/healthcheck.js", - "run_storage": "dist/service/runner.js" - } - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "grpc-ts-health-check": "^2.0.6", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.3.3", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.3.3" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "node_modules/@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "optional": true - }, - "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/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/block-stream2": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz", - "integrity": "sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==", - "dependencies": { - "readable-stream": "^3.4.0" - } - }, - "node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "node_modules/browser-or-node": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz", - "integrity": "sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/bson-objectid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.3.tgz", - "integrity": "sha512-WYwVtY9yqk179EPMNuF3vcxufdrGLEo2XwqdRVbfLVe9X6jLt7WKZQgP+ObOcprakBGbHxzl76tgTaieqsH29g==" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "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/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "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/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/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/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "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/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/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/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/fast-xml-parser": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", - "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", - "dependencies": { - "strnum": "^1.0.4" - }, - "bin": { - "xml2js": "cli.js" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - }, - "node_modules/fibers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.1.tgz", - "integrity": "sha512-VMC7Frt87Oo0AOJ6EcPFbi+tZmkQ4tD85aatwyWL6I9cYMJmm2e+pXUJsfGZ36U7MffXtjou2XIiWJMtHriErw==", - "hasInstallScript": true, - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "node_modules/foreachasync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", - "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "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.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "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/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/json-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz", - "integrity": "sha1-GjhU4o0rvuqzHMfd9oPS3cVlJwg=" - }, - "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.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/minio": { - "version": "7.0.26", - "resolved": "https://registry.npmjs.org/minio/-/minio-7.0.26.tgz", - "integrity": "sha512-knutnEZZMIUB/Xln6psVDrqObFKXDcF9m4IfFIX+zgDHYg3AlcF88DY1wdgg7bUkf+uU8iHkzP2q5CXAhia73w==", - "dependencies": { - "async": "^3.1.0", - "block-stream2": "^2.0.0", - "browser-or-node": "^1.3.0", - "crypto-browserify": "^3.12.0", - "es6-error": "^4.1.1", - "fast-xml-parser": "^3.17.5", - "ipaddr.js": "^2.0.1", - "json-stream": "^1.0.0", - "lodash": "^4.17.21", - "mime-types": "^2.1.14", - "mkdirp": "^0.5.1", - "querystring": "0.2.0", - "through2": "^3.0.1", - "web-encoding": "^1.1.5", - "xml": "^1.0.0", - "xml2js": "^0.4.15" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "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/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "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/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "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/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/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" - }, - "node_modules/sync": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/sync/-/sync-0.2.5.tgz", - "integrity": "sha1-ORC7m2ar7lZULi5w8M5UkDElLfY=", - "dependencies": { - "fibers": ">=0.6" - }, - "engines": { - "node": ">=0.5.2" - } - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar/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/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/walk": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz", - "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==", - "dependencies": { - "foreachasync": "^3.0.0" - } - }, - "node_modules/web-encoding": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "dependencies": { - "util": "^0.12.3" - }, - "optionalDependencies": { - "@zxing/text-encoding": "0.9.0" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=" - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, - "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/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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/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" - } - } - }, - "dependencies": { - "@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - } - }, - "@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "optional": true - }, - "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" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" - }, - "block-stream2": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz", - "integrity": "sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==", - "requires": { - "readable-stream": "^3.4.0" - } - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-or-node": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz", - "integrity": "sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "bson-objectid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.3.tgz", - "integrity": "sha512-WYwVtY9yqk179EPMNuF3vcxufdrGLEo2XwqdRVbfLVe9X6jLt7WKZQgP+ObOcprakBGbHxzl76tgTaieqsH29g==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "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" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "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" - } - }, - "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==" - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "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==" - }, - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "fast-xml-parser": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", - "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", - "requires": { - "strnum": "^1.0.4" - } - }, - "fibers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.1.tgz", - "integrity": "sha512-VMC7Frt87Oo0AOJ6EcPFbi+tZmkQ4tD85aatwyWL6I9cYMJmm2e+pXUJsfGZ36U7MffXtjou2XIiWJMtHriErw==", - "requires": { - "detect-libc": "^1.0.3" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "foreachasync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", - "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "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.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "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-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "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-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" - } - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "json-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz", - "integrity": "sha1-GjhU4o0rvuqzHMfd9oPS3cVlJwg=" - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "minio": { - "version": "7.0.26", - "resolved": "https://registry.npmjs.org/minio/-/minio-7.0.26.tgz", - "integrity": "sha512-knutnEZZMIUB/Xln6psVDrqObFKXDcF9m4IfFIX+zgDHYg3AlcF88DY1wdgg7bUkf+uU8iHkzP2q5CXAhia73w==", - "requires": { - "async": "^3.1.0", - "block-stream2": "^2.0.0", - "browser-or-node": "^1.3.0", - "crypto-browserify": "^3.12.0", - "es6-error": "^4.1.1", - "fast-xml-parser": "^3.17.5", - "ipaddr.js": "^2.0.1", - "json-stream": "^1.0.0", - "lodash": "^4.17.21", - "mime-types": "^2.1.14", - "mkdirp": "^0.5.1", - "querystring": "0.2.0", - "through2": "^3.0.1", - "web-encoding": "^1.1.5", - "xml": "^1.0.0", - "xml2js": "^0.4.15" - } - }, - "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "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" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "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" - } - }, - "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" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "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" - } - }, - "strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" - }, - "sync": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/sync/-/sync-0.2.5.tgz", - "integrity": "sha1-ORC7m2ar7lZULi5w8M5UkDElLfY=", - "requires": { - "fibers": ">=0.6" - } - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } - } - }, - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "walk": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz", - "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==", - "requires": { - "foreachasync": "^3.0.0" - } - }, - "web-encoding": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "requires": { - "@zxing/text-encoding": "0.9.0", - "util": "^0.12.3" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" - } - }, - "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" - } - }, - "xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=" - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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==" - } - } -} diff --git a/mods/storage/package.json b/mods/storage/package.json deleted file mode 100644 index efc4aa804..000000000 --- a/mods/storage/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "@fonoster/storage", - "version": "0.3.22", - "description": "Fonoster Storage Servoce", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/client/storage", - "types": "dist/client/storage", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "postbuild": "cp -a ./src/service/protos/ ./dist/service/protos", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/srv_runner" - }, - "bin": { - "run_storage": "dist/service/runner.js", - "healthcheck_storage": "dist/service/healthcheck.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/errors": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "minio": "^7.0.18", - "sync": "^0.2.5", - "tar": "^6.1.0", - "walk": "^2.3.14" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/storage/src/client/storage.ts b/mods/storage/src/client/storage.ts deleted file mode 100644 index e1854f802..000000000 --- a/mods/storage/src/client/storage.ts +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { APIClient, ClientOptions } from "@fonoster/common"; -import { StorageClient } from "../service/protos/storage_grpc_pb"; -import StoragePB from "../service/protos/storage_pb"; -import CommonPB from "../service/protos/common_pb"; -import { - GetObjectURLRequest, - UploadObjectRequest, - GetObjectURLResponse, - UploadObjectResponse, - IStorageClient -} from "./types"; -import { promisifyAll } from "grpc-promise"; -import { - getObjectServiceUtils, - isDirectory, - uploadServiceUtils -} from "./utils"; - -/** - * @classdesc Use Fonoster Storage, a capability of Fonoster Object Storage subsystem, - * to upload, download, and delete objects. - * - * @extends APIClient - * @example - * - * const Fonoster = require("@fonoster/sdk") - * const storage = new Fonoster.Storage() - * - * storage.uploadObject() - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)) // an error occurred - */ -export default class Storage extends APIClient implements IStorageClient { - /** - * Constructs a new Storage object. - * @param {ClientOptions} options - Options to indicate the objects endpoint - * @see module:core:APIClient - */ - constructor(options?: ClientOptions) { - super(StorageClient, options); - super.init(); - promisifyAll(super.getService(), { metadata: super.getMeta() }); - } - - /** - * Upload an object toFonosterObject Storage subsystem. - * - * @param {UploadObjectRequest} request - Object with information about the origin and - * destination of an object - * @param {string} request.bucket - Bucket at the Storage system - * @param {string} request.dir - Directory on the Storage system where your objec will be uploaded - * @param {string} request.filename - Path to the object to be uploaded - * @return {Promise} localy accessible URL to the object - * @throws if the path does not exist or if is a directory - * @throws if the directory does not exist - * @example - * - * const request = { - * filename: "/path/to/file", - * bucket: "apps", - * directory: "/" - * } - * - * storage.uploadObject(request) - * .then(() => { - * console.log(result) // returns and empty Object - * }).catch(e => console.error(e)) // an error occurred - */ - async uploadObject( - request: UploadObjectRequest - ): Promise { - if (isDirectory(request.filename)) { - throw new Error("Uploading a directory is not supported"); - } - // Passing empty UploadObjectRequest only for initialization - const uor = new StoragePB.UploadObjectRequest(); - const result = await this.getService().uploadObject().sendMessage(uor); - const size = await uploadServiceUtils(request, result.stream); - return { size }; - } - - /** - * Get Object URL. - * - * @param {GetObjectURLRequest} request - Object with information about the location and - * and name of the requested object - * @param {string} request.filename - The name of the object - * save your file. - * @param {string} request.accessKeyId - Optional access key id - * @return {Promise} localy accessible URL to the object - * @throws if directory or object doesn't exist - * @example - * - * const request = { - * filename: "object-name", - * bucket: "bucket-name" - * } - * - * storage.getObjectURL(request) - * .then(result => { - * console.log(result) - * }).catch(e => console.error(e)) // an error occurred - */ - async getObjectURL( - request: GetObjectURLRequest - ): Promise { - const result = await this.getService() - .getObjectURL() - .sendMessage(getObjectServiceUtils(request)); - - return { url: result.getUrl() }; - } -} - -export { StoragePB, CommonPB, IStorageClient }; - -// WARNING: Workaround to support commonjs clients -module.exports = Storage; diff --git a/mods/storage/src/client/types.ts b/mods/storage/src/client/types.ts deleted file mode 100644 index 81d635436..000000000 --- a/mods/storage/src/client/types.ts +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface IStorageClient { - uploadObject(request: UploadObjectRequest): Promise; - getObjectURL(request: GetObjectURLRequest): Promise; -} - -export interface UploadObjectRequest { - bucket: string; - filename: string; - metadata?: unknown; - accessKeyId?: string; -} - -export interface GetObjectURLRequest { - bucket: string; - filename: string; - accessKeyId?: string; -} - -export interface GetObjectURLResponse { - url: string; -} - -export interface UploadObjectResponse { - size: number; -} diff --git a/mods/storage/src/client/utils.ts b/mods/storage/src/client/utils.ts deleted file mode 100644 index 6b43976d6..000000000 --- a/mods/storage/src/client/utils.ts +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import fs from "fs"; -import path from "path"; -import { constants } from "../utils/constants"; -import StoragePB from "../service/protos/storage_pb"; -import { UploadObjectRequest, GetObjectURLRequest } from "./types"; -import { getBucketAsPB } from "../utils/utils"; - -interface CallService { - write(storageObject: StoragePB.UploadObjectRequest); - end(); -} - -export const isDirectory = (filename: string): boolean => { - return fs.lstatSync(filename).isDirectory(); -}; - -export const getObjectServiceUtils = ( - request: GetObjectURLRequest -): StoragePB.GetObjectURLRequest => { - const objectUrlRequest = new StoragePB.GetObjectURLRequest(); - objectUrlRequest.setFilename(request.filename); - objectUrlRequest.setBucket(getBucketAsPB(request.bucket)); - objectUrlRequest.setAccessKeyId(request.accessKeyId); - return objectUrlRequest; -}; - -export const uploadServiceUtils = async ( - request: UploadObjectRequest, - callService: CallService -): Promise => { - const objectName = path.basename(request.filename); - const readStream = fs.createReadStream(request.filename, { - highWaterMark: constants.HIGH_WATER_MARK - }); - - return new Promise((resolve, reject) => { - readStream - .on("data", (chunk) => { - const uor = new StoragePB.UploadObjectRequest(); - uor.setChunks(Buffer.from(chunk)); - uor.setFilename(objectName); - uor.setBucket(getBucketAsPB(request.bucket)); - uor.setAccessKeyId(request.accessKeyId); - - if (request.metadata && Object.keys(request.metadata).length > 0) { - const keys = Object.keys(request.metadata); - keys.forEach((k) => uor.getMetadataMap().set(k, request.metadata[k])); - } - callService.write(uor); - }) - .on("end", () => { - resolve(fs.statSync(request.filename)["size"]); - callService.end(); - }) - .on("error", (err) => { - callService.end(); - reject(err); - }); - }); -}; diff --git a/mods/storage/src/protos/storage.proto b/mods/storage/src/protos/storage.proto deleted file mode 100644 index 429dfa765..000000000 --- a/mods/storage/src/protos/storage.proto +++ /dev/null @@ -1,56 +0,0 @@ -/** - * MIT License - * Copyright (c) 2021 Fonoster Inc - * - * The Storage proto contains the artificats for bucket and objects - * management. - */ -syntax = "proto3"; - -package fonoster.storage.v1beta1; - -option go_package = "github.com/fonoster/fonoster/mods/storage/fonoster/services/protos/storage"; - -import "google/api/annotations.proto"; - -service Storage { - rpc UploadObject (stream UploadObjectRequest) returns (UploadObjectResponse) {}; - rpc GetObjectURL (GetObjectURLRequest) returns (GetObjectURLResponse) { - option (google.api.http) = { get: "/v1beta1/storage/{bucket}/{filename}" }; - }; -} - -message UploadObjectRequest { - enum Bucket { - APPS = 0; - RECORDINGS = 1; - PUBLIC = 2; - FUNCS = 3; - } - Bucket bucket = 1; - string filename = 2; - bytes chunks = 3; - string access_key_id = 4; - map metadata = 5; -} - -message UploadObjectResponse { - // File size in bytes - int32 size = 1; -} - -message GetObjectURLRequest { - enum Bucket { - APPS = 0; - RECORDINGS = 1; - PUBLIC = 2; - FUNCS = 3; - } - Bucket bucket = 1; - string filename = 2; - string access_key_id = 3; -} - -message GetObjectURLResponse { - string url = 1; -} diff --git a/mods/storage/src/service/get_object_url.ts b/mods/storage/src/service/get_object_url.ts deleted file mode 100644 index da2f0049e..000000000 --- a/mods/storage/src/service/get_object_url.ts +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import logger from "@fonoster/logger"; -import grpc from "@grpc/grpc-js"; -import { FonosterError } from "@fonoster/errors"; -import { fsInstance } from "../utils/storage"; - -export default async function ( - accessKeyId: string, - bucket: string, - filename: string -): Promise { - logger.log( - "debug", - `@fonoster/core getObjectURL [bucket: ${bucket}, filename: ${filename}, accessKeId: ${accessKeyId}}]` - ); - - return new Promise((resolve, reject) => { - fsInstance().statObject( - bucket, - `${accessKeyId}/${filename}`, - (err: { message: string }) => { - if (err) { - reject( - new FonosterError( - `${err.message}: filename ${accessKeyId}/${filename} in bucket '${bucket}'`, - grpc.status.NOT_FOUND - ) - ); - return; - } - resolve( - `http://${process.env.FS_HOST}:${process.env.FS_PORT}/${bucket}/${accessKeyId}/${filename}` - ); - } - ); - }); -} diff --git a/mods/storage/src/service/healthcheck.ts b/mods/storage/src/service/healthcheck.ts deleted file mode 100644 index a8988fbb7..000000000 --- a/mods/storage/src/service/healthcheck.ts +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonos - * - * This file is part of Project Fonos - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -healthcheck(); diff --git a/mods/storage/src/service/protos/common_grpc_pb.js b/mods/storage/src/service/protos/common_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/storage/src/service/protos/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/storage/src/service/protos/common_pb.d.ts b/mods/storage/src/service/protos/common_pb.d.ts deleted file mode 100644 index f8b5fb810..000000000 --- a/mods/storage/src/service/protos/common_pb.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// package: fonoster.common.v1beta1 -// file: common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class Empty extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Empty.AsObject; - static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Empty; - static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; -} - -export namespace Empty { - export type AsObject = { - } -} - -export class ErrorResponse extends jspb.Message { - getStatus(): number; - setStatus(value: number): ErrorResponse; - getMessage(): string; - setMessage(value: string): ErrorResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ErrorResponse.AsObject; - static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ErrorResponse; - static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse; -} - -export namespace ErrorResponse { - export type AsObject = { - status: number, - message: string, - } -} - -export enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2, -} diff --git a/mods/storage/src/service/protos/common_pb.js b/mods/storage/src/service/protos/common_pb.js deleted file mode 100644 index b7f99c7ea..000000000 --- a/mods/storage/src/service/protos/common_pb.js +++ /dev/null @@ -1,335 +0,0 @@ -// source: common.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -goog.exportSymbol('proto.fonoster.common.v1beta1.Empty', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.ErrorResponse', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.View', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.Empty = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.Empty, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.Empty.displayName = 'proto.fonoster.common.v1beta1.Empty'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.ErrorResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.ErrorResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.ErrorResponse.displayName = 'proto.fonoster.common.v1beta1.ErrorResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.Empty.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.Empty.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.Empty} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.Empty; - return proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.Empty} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.Empty.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.Empty} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.ErrorResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.toObject = function(includeInstance, msg) { - var f, obj = { - status: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.ErrorResponse; - return proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setStatus(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getStatus(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional int32 status = 1; - * @return {number} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getStatus = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setStatus = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * @enum {number} - */ -proto.fonoster.common.v1beta1.View = { - BASIC: 0, - STANDARD: 1, - FULL: 2 -}; - -goog.object.extend(exports, proto.fonoster.common.v1beta1); diff --git a/mods/storage/src/service/protos/google/api/annotations_grpc_pb.js b/mods/storage/src/service/protos/google/api/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/storage/src/service/protos/google/api/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/storage/src/service/protos/google/api/annotations_pb.d.ts b/mods/storage/src/service/protos/google/api/annotations_pb.d.ts deleted file mode 100644 index 06072f3bd..000000000 --- a/mods/storage/src/service/protos/google/api/annotations_pb.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// package: google.api -// file: google/api/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_api_http_pb from "../../google/api/http_pb"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const http: jspb.ExtensionFieldInfo; diff --git a/mods/storage/src/service/protos/google/api/annotations_pb.js b/mods/storage/src/service/protos/google/api/annotations_pb.js deleted file mode 100644 index 99e4c1824..000000000 --- a/mods/storage/src/service/protos/google/api/annotations_pb.js +++ /dev/null @@ -1,48 +0,0 @@ -// source: google/api/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_http_pb = require('../../google/api/http_pb.js'); -goog.object.extend(proto, google_api_http_pb); -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.http', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `http`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.google.api.http = new jspb.ExtensionFieldInfo( - 72295728, - {http: 0}, - google_api_http_pb.HttpRule, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - google_api_http_pb.HttpRule.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[72295728] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.http, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - google_api_http_pb.HttpRule.serializeBinaryToWriter, - google_api_http_pb.HttpRule.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[72295728] = proto.google.api.http; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/storage/src/service/protos/google/api/field_behavior_grpc_pb.js b/mods/storage/src/service/protos/google/api/field_behavior_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/storage/src/service/protos/google/api/field_behavior_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/storage/src/service/protos/google/api/field_behavior_pb.d.ts b/mods/storage/src/service/protos/google/api/field_behavior_pb.d.ts deleted file mode 100644 index 9b853705f..000000000 --- a/mods/storage/src/service/protos/google/api/field_behavior_pb.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -// package: google.api -// file: google/api/field_behavior.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const fieldBehavior: jspb.ExtensionFieldInfo; - -export enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, -} diff --git a/mods/storage/src/service/protos/google/api/field_behavior_pb.js b/mods/storage/src/service/protos/google/api/field_behavior_pb.js deleted file mode 100644 index 44160cc41..000000000 --- a/mods/storage/src/service/protos/google/api/field_behavior_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// source: google/api/field_behavior.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.FieldBehavior', null, global); -goog.exportSymbol('proto.google.api.fieldBehaviorList', null, global); -/** - * @enum {number} - */ -proto.google.api.FieldBehavior = { - FIELD_BEHAVIOR_UNSPECIFIED: 0, - OPTIONAL: 1, - REQUIRED: 2, - OUTPUT_ONLY: 3, - INPUT_ONLY: 4, - IMMUTABLE: 5, - UNORDERED_LIST: 6, - NON_EMPTY_DEFAULT: 7 -}; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `fieldBehaviorList`. - * @type {!jspb.ExtensionFieldInfo>} - */ -proto.google.api.fieldBehaviorList = new jspb.ExtensionFieldInfo( - 1052, - {fieldBehaviorList: 0}, - null, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - null), - 1); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1052] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.fieldBehaviorList, - jspb.BinaryReader.prototype.readPackedEnum, - jspb.BinaryWriter.prototype.writePackedEnum, - undefined, - undefined, - true); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1052] = proto.google.api.fieldBehaviorList; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/storage/src/service/protos/google/api/http_grpc_pb.js b/mods/storage/src/service/protos/google/api/http_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/storage/src/service/protos/google/api/http_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/storage/src/service/protos/google/api/http_pb.d.ts b/mods/storage/src/service/protos/google/api/http_pb.d.ts deleted file mode 100644 index 02c3b1ece..000000000 --- a/mods/storage/src/service/protos/google/api/http_pb.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -// package: google.api -// file: google/api/http.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Http extends jspb.Message { - clearRulesList(): void; - getRulesList(): Array; - setRulesList(value: Array): Http; - addRules(value?: HttpRule, index?: number): HttpRule; - getFullyDecodeReservedExpansion(): boolean; - setFullyDecodeReservedExpansion(value: boolean): Http; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Http.AsObject; - static toObject(includeInstance: boolean, msg: Http): Http.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Http; - static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http; -} - -export namespace Http { - export type AsObject = { - rulesList: Array, - fullyDecodeReservedExpansion: boolean, - } -} - -export class HttpRule extends jspb.Message { - getSelector(): string; - setSelector(value: string): HttpRule; - - hasGet(): boolean; - clearGet(): void; - getGet(): string; - setGet(value: string): HttpRule; - - hasPut(): boolean; - clearPut(): void; - getPut(): string; - setPut(value: string): HttpRule; - - hasPost(): boolean; - clearPost(): void; - getPost(): string; - setPost(value: string): HttpRule; - - hasDelete(): boolean; - clearDelete(): void; - getDelete(): string; - setDelete(value: string): HttpRule; - - hasPatch(): boolean; - clearPatch(): void; - getPatch(): string; - setPatch(value: string): HttpRule; - - hasCustom(): boolean; - clearCustom(): void; - getCustom(): CustomHttpPattern | undefined; - setCustom(value?: CustomHttpPattern): HttpRule; - getBody(): string; - setBody(value: string): HttpRule; - getResponseBody(): string; - setResponseBody(value: string): HttpRule; - clearAdditionalBindingsList(): void; - getAdditionalBindingsList(): Array; - setAdditionalBindingsList(value: Array): HttpRule; - addAdditionalBindings(value?: HttpRule, index?: number): HttpRule; - - getPatternCase(): HttpRule.PatternCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpRule.AsObject; - static toObject(includeInstance: boolean, msg: HttpRule): HttpRule.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpRule, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpRule; - static deserializeBinaryFromReader(message: HttpRule, reader: jspb.BinaryReader): HttpRule; -} - -export namespace HttpRule { - export type AsObject = { - selector: string, - get: string, - put: string, - post: string, - pb_delete: string, - patch: string, - custom?: CustomHttpPattern.AsObject, - body: string, - responseBody: string, - additionalBindingsList: Array, - } - - export enum PatternCase { - PATTERN_NOT_SET = 0, - GET = 2, - PUT = 3, - POST = 4, - DELETE = 5, - PATCH = 6, - CUSTOM = 8, - } - -} - -export class CustomHttpPattern extends jspb.Message { - getKind(): string; - setKind(value: string): CustomHttpPattern; - getPath(): string; - setPath(value: string): CustomHttpPattern; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CustomHttpPattern.AsObject; - static toObject(includeInstance: boolean, msg: CustomHttpPattern): CustomHttpPattern.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CustomHttpPattern, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CustomHttpPattern; - static deserializeBinaryFromReader(message: CustomHttpPattern, reader: jspb.BinaryReader): CustomHttpPattern; -} - -export namespace CustomHttpPattern { - export type AsObject = { - kind: string, - path: string, - } -} diff --git a/mods/storage/src/service/protos/google/api/http_pb.js b/mods/storage/src/service/protos/google/api/http_pb.js deleted file mode 100644 index 0359c5eec..000000000 --- a/mods/storage/src/service/protos/google/api/http_pb.js +++ /dev/null @@ -1,1006 +0,0 @@ -// source: google/api/http.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.google.api.CustomHttpPattern', null, global); -goog.exportSymbol('proto.google.api.Http', null, global); -goog.exportSymbol('proto.google.api.HttpRule', null, global); -goog.exportSymbol('proto.google.api.HttpRule.PatternCase', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.Http = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Http.repeatedFields_, null); -}; -goog.inherits(proto.google.api.Http, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.Http.displayName = 'proto.google.api.Http'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpRule = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpRule.repeatedFields_, proto.google.api.HttpRule.oneofGroups_); -}; -goog.inherits(proto.google.api.HttpRule, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpRule.displayName = 'proto.google.api.HttpRule'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.CustomHttpPattern = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.google.api.CustomHttpPattern, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.CustomHttpPattern.displayName = 'proto.google.api.CustomHttpPattern'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.Http.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.Http.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.Http.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.Http} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.toObject = function(includeInstance, msg) { - var f, obj = { - rulesList: jspb.Message.toObjectList(msg.getRulesList(), - proto.google.api.HttpRule.toObject, includeInstance), - fullyDecodeReservedExpansion: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.Http; - return proto.google.api.Http.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.Http} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addRules(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFullyDecodeReservedExpansion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.Http.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.Http.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.Http} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRulesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } - f = message.getFullyDecodeReservedExpansion(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * repeated HttpRule rules = 1; - * @return {!Array} - */ -proto.google.api.Http.prototype.getRulesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.Http} returns this -*/ -proto.google.api.Http.prototype.setRulesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.Http.prototype.addRules = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.clearRulesList = function() { - return this.setRulesList([]); -}; - - -/** - * optional bool fully_decode_reserved_expansion = 2; - * @return {boolean} - */ -proto.google.api.Http.prototype.getFullyDecodeReservedExpansion = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.setFullyDecodeReservedExpansion = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpRule.repeatedFields_ = [11]; - -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.google.api.HttpRule.oneofGroups_ = [[2,3,4,5,6,8]]; - -/** - * @enum {number} - */ -proto.google.api.HttpRule.PatternCase = { - PATTERN_NOT_SET: 0, - GET: 2, - PUT: 3, - POST: 4, - DELETE: 5, - PATCH: 6, - CUSTOM: 8 -}; - -/** - * @return {proto.google.api.HttpRule.PatternCase} - */ -proto.google.api.HttpRule.prototype.getPatternCase = function() { - return /** @type {proto.google.api.HttpRule.PatternCase} */(jspb.Message.computeOneofCase(this, proto.google.api.HttpRule.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpRule.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpRule.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpRule} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.toObject = function(includeInstance, msg) { - var f, obj = { - selector: jspb.Message.getFieldWithDefault(msg, 1, ""), - get: jspb.Message.getFieldWithDefault(msg, 2, ""), - put: jspb.Message.getFieldWithDefault(msg, 3, ""), - post: jspb.Message.getFieldWithDefault(msg, 4, ""), - pb_delete: jspb.Message.getFieldWithDefault(msg, 5, ""), - patch: jspb.Message.getFieldWithDefault(msg, 6, ""), - custom: (f = msg.getCustom()) && proto.google.api.CustomHttpPattern.toObject(includeInstance, f), - body: jspb.Message.getFieldWithDefault(msg, 7, ""), - responseBody: jspb.Message.getFieldWithDefault(msg, 12, ""), - additionalBindingsList: jspb.Message.toObjectList(msg.getAdditionalBindingsList(), - proto.google.api.HttpRule.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpRule; - return proto.google.api.HttpRule.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpRule} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSelector(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setGet(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPut(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPost(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDelete(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPatch(value); - break; - case 8: - var value = new proto.google.api.CustomHttpPattern; - reader.readMessage(value,proto.google.api.CustomHttpPattern.deserializeBinaryFromReader); - msg.setCustom(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBody(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setResponseBody(value); - break; - case 11: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addAdditionalBindings(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpRule.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpRule.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpRule} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSelector(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeString( - 3, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeString( - 4, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 5)); - if (f != null) { - writer.writeString( - 5, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 6)); - if (f != null) { - writer.writeString( - 6, - f - ); - } - f = message.getCustom(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.google.api.CustomHttpPattern.serializeBinaryToWriter - ); - } - f = message.getBody(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getResponseBody(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getAdditionalBindingsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 11, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string selector = 1; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getSelector = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setSelector = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string get = 2; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getGet = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setGet = function(value) { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearGet = function() { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasGet = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string put = 3; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPut = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPut = function(value) { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPut = function() { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPut = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional string post = 4; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPost = function(value) { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPost = function() { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPost = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string delete = 5; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getDelete = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setDelete = function(value) { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearDelete = function() { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasDelete = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string patch = 6; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPatch = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPatch = function(value) { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPatch = function() { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPatch = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional CustomHttpPattern custom = 8; - * @return {?proto.google.api.CustomHttpPattern} - */ -proto.google.api.HttpRule.prototype.getCustom = function() { - return /** @type{?proto.google.api.CustomHttpPattern} */ ( - jspb.Message.getWrapperField(this, proto.google.api.CustomHttpPattern, 8)); -}; - - -/** - * @param {?proto.google.api.CustomHttpPattern|undefined} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setCustom = function(value) { - return jspb.Message.setOneofWrapperField(this, 8, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearCustom = function() { - return this.setCustom(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasCustom = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional string body = 7; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setBody = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string response_body = 12; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getResponseBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setResponseBody = function(value) { - return jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * repeated HttpRule additional_bindings = 11; - * @return {!Array} - */ -proto.google.api.HttpRule.prototype.getAdditionalBindingsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 11)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setAdditionalBindingsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 11, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.prototype.addAdditionalBindings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearAdditionalBindingsList = function() { - return this.setAdditionalBindingsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.CustomHttpPattern.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.CustomHttpPattern.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.CustomHttpPattern} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.toObject = function(includeInstance, msg) { - var f, obj = { - kind: jspb.Message.getFieldWithDefault(msg, 1, ""), - path: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.CustomHttpPattern; - return proto.google.api.CustomHttpPattern.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.CustomHttpPattern} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKind(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.CustomHttpPattern.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.CustomHttpPattern.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.CustomHttpPattern} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKind(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string kind = 1; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getKind = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setKind = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string path = 2; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/storage/src/service/protos/google/api/httpbody_grpc_pb.js b/mods/storage/src/service/protos/google/api/httpbody_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/storage/src/service/protos/google/api/httpbody_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/storage/src/service/protos/google/api/httpbody_pb.d.ts b/mods/storage/src/service/protos/google/api/httpbody_pb.d.ts deleted file mode 100644 index 98d973068..000000000 --- a/mods/storage/src/service/protos/google/api/httpbody_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// package: google.api -// file: google/api/httpbody.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb"; - -export class HttpBody extends jspb.Message { - getContentType(): string; - setContentType(value: string): HttpBody; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): HttpBody; - clearExtensionsList(): void; - getExtensionsList(): Array; - setExtensionsList(value: Array): HttpBody; - addExtensions(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpBody.AsObject; - static toObject(includeInstance: boolean, msg: HttpBody): HttpBody.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpBody, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpBody; - static deserializeBinaryFromReader(message: HttpBody, reader: jspb.BinaryReader): HttpBody; -} - -export namespace HttpBody { - export type AsObject = { - contentType: string, - data: Uint8Array | string, - extensionsList: Array, - } -} diff --git a/mods/storage/src/service/protos/google/api/httpbody_pb.js b/mods/storage/src/service/protos/google/api/httpbody_pb.js deleted file mode 100644 index 5539f5936..000000000 --- a/mods/storage/src/service/protos/google/api/httpbody_pb.js +++ /dev/null @@ -1,286 +0,0 @@ -// source: google/api/httpbody.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js'); -goog.object.extend(proto, google_protobuf_any_pb); -goog.exportSymbol('proto.google.api.HttpBody', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpBody = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpBody.repeatedFields_, null); -}; -goog.inherits(proto.google.api.HttpBody, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpBody.displayName = 'proto.google.api.HttpBody'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpBody.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpBody.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpBody.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpBody} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.toObject = function(includeInstance, msg) { - var f, obj = { - contentType: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64(), - extensionsList: jspb.Message.toObjectList(msg.getExtensionsList(), - google_protobuf_any_pb.Any.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpBody; - return proto.google.api.HttpBody.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpBody} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setContentType(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 3: - var value = new google_protobuf_any_pb.Any; - reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader); - msg.addExtensions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpBody.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpBody} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContentType(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getExtensionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - google_protobuf_any_pb.Any.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string content_type = 1; - * @return {string} - */ -proto.google.api.HttpBody.prototype.getContentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setContentType = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.google.api.HttpBody.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.google.api.HttpBody.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setData = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * repeated google.protobuf.Any extensions = 3; - * @return {!Array} - */ -proto.google.api.HttpBody.prototype.getExtensionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpBody} returns this -*/ -proto.google.api.HttpBody.prototype.setExtensionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.google.protobuf.Any=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.Any} - */ -proto.google.api.HttpBody.prototype.addExtensions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.clearExtensionsList = function() { - return this.setExtensionsList([]); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/storage/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js b/mods/storage/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/storage/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/storage/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts b/mods/storage/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts deleted file mode 100644 index 8e3a35012..000000000 --- a/mods/storage/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; -import * as protoc_gen_openapiv2_options_openapiv2_pb from "../../protoc-gen-openapiv2/options/openapiv2_pb"; - -export const openapiv2Swagger: jspb.ExtensionFieldInfo; - -export const openapiv2Operation: jspb.ExtensionFieldInfo; - -export const openapiv2Schema: jspb.ExtensionFieldInfo; - -export const openapiv2Tag: jspb.ExtensionFieldInfo; - -export const openapiv2Field: jspb.ExtensionFieldInfo; diff --git a/mods/storage/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js b/mods/storage/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js deleted file mode 100644 index e92ccec18..000000000 --- a/mods/storage/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js +++ /dev/null @@ -1,152 +0,0 @@ -// source: protoc-gen-openapiv2/options/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -var protoc$gen$openapiv2_options_openapiv2_pb = require('../../protoc-gen-openapiv2/options/openapiv2_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_openapiv2_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Swagger`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Swagger: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.toObject), - 0); - -google_protobuf_descriptor_pb.FileOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FileOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Operation`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Operation: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Operation, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Operation.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Schema`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Schema: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Schema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Schema.toObject), - 0); - -google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MessageOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Tag`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Tag: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Tag, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Tag.toObject), - 0); - -google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.ServiceOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Field`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Field: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.toObject), - 0); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/storage/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js b/mods/storage/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/storage/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/storage/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts b/mods/storage/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts deleted file mode 100644 index 3c3972ea9..000000000 --- a/mods/storage/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +++ /dev/null @@ -1,685 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/openapiv2.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class Swagger extends jspb.Message { - getSwagger(): string; - setSwagger(value: string): Swagger; - - hasInfo(): boolean; - clearInfo(): void; - getInfo(): Info | undefined; - setInfo(value?: Info): Swagger; - getHost(): string; - setHost(value: string): Swagger; - getBasePath(): string; - setBasePath(value: string): Swagger; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Swagger; - addSchemes(value: Scheme, index?: number): Scheme; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Swagger; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Swagger; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - - hasSecurityDefinitions(): boolean; - clearSecurityDefinitions(): void; - getSecurityDefinitions(): SecurityDefinitions | undefined; - setSecurityDefinitions(value?: SecurityDefinitions): Swagger; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Swagger; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Swagger; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Swagger.AsObject; - static toObject(includeInstance: boolean, msg: Swagger): Swagger.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Swagger, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Swagger; - static deserializeBinaryFromReader(message: Swagger, reader: jspb.BinaryReader): Swagger; -} - -export namespace Swagger { - export type AsObject = { - swagger: string, - info?: Info.AsObject, - host: string, - basePath: string, - schemesList: Array, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - securityDefinitions?: SecurityDefinitions.AsObject, - securityList: Array, - externalDocs?: ExternalDocumentation.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Operation extends jspb.Message { - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): Operation; - addTags(value: string, index?: number): string; - getSummary(): string; - setSummary(value: string): Operation; - getDescription(): string; - setDescription(value: string): Operation; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Operation; - getOperationId(): string; - setOperationId(value: string): Operation; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Operation; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Operation; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Operation; - addSchemes(value: Scheme, index?: number): Scheme; - getDeprecated(): boolean; - setDeprecated(value: boolean): Operation; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Operation; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Operation.AsObject; - static toObject(includeInstance: boolean, msg: Operation): Operation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Operation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Operation; - static deserializeBinaryFromReader(message: Operation, reader: jspb.BinaryReader): Operation; -} - -export namespace Operation { - export type AsObject = { - tagsList: Array, - summary: string, - description: string, - externalDocs?: ExternalDocumentation.AsObject, - operationId: string, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - schemesList: Array, - deprecated: boolean, - securityList: Array, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Header extends jspb.Message { - getDescription(): string; - setDescription(value: string): Header; - getType(): string; - setType(value: string): Header; - getFormat(): string; - setFormat(value: string): Header; - getDefault(): string; - setDefault(value: string): Header; - getPattern(): string; - setPattern(value: string): Header; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Header.AsObject; - static toObject(includeInstance: boolean, msg: Header): Header.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Header, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Header; - static deserializeBinaryFromReader(message: Header, reader: jspb.BinaryReader): Header; -} - -export namespace Header { - export type AsObject = { - description: string, - type: string, - format: string, - pb_default: string, - pattern: string, - } -} - -export class Response extends jspb.Message { - getDescription(): string; - setDescription(value: string): Response; - - hasSchema(): boolean; - clearSchema(): void; - getSchema(): Schema | undefined; - setSchema(value?: Schema): Response; - - getHeadersMap(): jspb.Map; - clearHeadersMap(): void; - - getExamplesMap(): jspb.Map; - clearExamplesMap(): void; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Response.AsObject; - static toObject(includeInstance: boolean, msg: Response): Response.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Response, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Response; - static deserializeBinaryFromReader(message: Response, reader: jspb.BinaryReader): Response; -} - -export namespace Response { - export type AsObject = { - description: string, - schema?: Schema.AsObject, - - headersMap: Array<[string, Header.AsObject]>, - - examplesMap: Array<[string, string]>, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Info extends jspb.Message { - getTitle(): string; - setTitle(value: string): Info; - getDescription(): string; - setDescription(value: string): Info; - getTermsOfService(): string; - setTermsOfService(value: string): Info; - - hasContact(): boolean; - clearContact(): void; - getContact(): Contact | undefined; - setContact(value?: Contact): Info; - - hasLicense(): boolean; - clearLicense(): void; - getLicense(): License | undefined; - setLicense(value?: License): Info; - getVersion(): string; - setVersion(value: string): Info; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Info.AsObject; - static toObject(includeInstance: boolean, msg: Info): Info.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Info, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Info; - static deserializeBinaryFromReader(message: Info, reader: jspb.BinaryReader): Info; -} - -export namespace Info { - export type AsObject = { - title: string, - description: string, - termsOfService: string, - contact?: Contact.AsObject, - license?: License.AsObject, - version: string, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Contact extends jspb.Message { - getName(): string; - setName(value: string): Contact; - getUrl(): string; - setUrl(value: string): Contact; - getEmail(): string; - setEmail(value: string): Contact; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contact.AsObject; - static toObject(includeInstance: boolean, msg: Contact): Contact.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contact, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contact; - static deserializeBinaryFromReader(message: Contact, reader: jspb.BinaryReader): Contact; -} - -export namespace Contact { - export type AsObject = { - name: string, - url: string, - email: string, - } -} - -export class License extends jspb.Message { - getName(): string; - setName(value: string): License; - getUrl(): string; - setUrl(value: string): License; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): License.AsObject; - static toObject(includeInstance: boolean, msg: License): License.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: License, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): License; - static deserializeBinaryFromReader(message: License, reader: jspb.BinaryReader): License; -} - -export namespace License { - export type AsObject = { - name: string, - url: string, - } -} - -export class ExternalDocumentation extends jspb.Message { - getDescription(): string; - setDescription(value: string): ExternalDocumentation; - getUrl(): string; - setUrl(value: string): ExternalDocumentation; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ExternalDocumentation.AsObject; - static toObject(includeInstance: boolean, msg: ExternalDocumentation): ExternalDocumentation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ExternalDocumentation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ExternalDocumentation; - static deserializeBinaryFromReader(message: ExternalDocumentation, reader: jspb.BinaryReader): ExternalDocumentation; -} - -export namespace ExternalDocumentation { - export type AsObject = { - description: string, - url: string, - } -} - -export class Schema extends jspb.Message { - - hasJsonSchema(): boolean; - clearJsonSchema(): void; - getJsonSchema(): JSONSchema | undefined; - setJsonSchema(value?: JSONSchema): Schema; - getDiscriminator(): string; - setDiscriminator(value: string): Schema; - getReadOnly(): boolean; - setReadOnly(value: boolean): Schema; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Schema; - getExample(): string; - setExample(value: string): Schema; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Schema.AsObject; - static toObject(includeInstance: boolean, msg: Schema): Schema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Schema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Schema; - static deserializeBinaryFromReader(message: Schema, reader: jspb.BinaryReader): Schema; -} - -export namespace Schema { - export type AsObject = { - jsonSchema?: JSONSchema.AsObject, - discriminator: string, - readOnly: boolean, - externalDocs?: ExternalDocumentation.AsObject, - example: string, - } -} - -export class JSONSchema extends jspb.Message { - getRef(): string; - setRef(value: string): JSONSchema; - getTitle(): string; - setTitle(value: string): JSONSchema; - getDescription(): string; - setDescription(value: string): JSONSchema; - getDefault(): string; - setDefault(value: string): JSONSchema; - getReadOnly(): boolean; - setReadOnly(value: boolean): JSONSchema; - getExample(): string; - setExample(value: string): JSONSchema; - getMultipleOf(): number; - setMultipleOf(value: number): JSONSchema; - getMaximum(): number; - setMaximum(value: number): JSONSchema; - getExclusiveMaximum(): boolean; - setExclusiveMaximum(value: boolean): JSONSchema; - getMinimum(): number; - setMinimum(value: number): JSONSchema; - getExclusiveMinimum(): boolean; - setExclusiveMinimum(value: boolean): JSONSchema; - getMaxLength(): number; - setMaxLength(value: number): JSONSchema; - getMinLength(): number; - setMinLength(value: number): JSONSchema; - getPattern(): string; - setPattern(value: string): JSONSchema; - getMaxItems(): number; - setMaxItems(value: number): JSONSchema; - getMinItems(): number; - setMinItems(value: number): JSONSchema; - getUniqueItems(): boolean; - setUniqueItems(value: boolean): JSONSchema; - getMaxProperties(): number; - setMaxProperties(value: number): JSONSchema; - getMinProperties(): number; - setMinProperties(value: number): JSONSchema; - clearRequiredList(): void; - getRequiredList(): Array; - setRequiredList(value: Array): JSONSchema; - addRequired(value: string, index?: number): string; - clearArrayList(): void; - getArrayList(): Array; - setArrayList(value: Array): JSONSchema; - addArray(value: string, index?: number): string; - clearTypeList(): void; - getTypeList(): Array; - setTypeList(value: Array): JSONSchema; - addType(value: JSONSchema.JSONSchemaSimpleTypes, index?: number): JSONSchema.JSONSchemaSimpleTypes; - getFormat(): string; - setFormat(value: string): JSONSchema; - clearEnumList(): void; - getEnumList(): Array; - setEnumList(value: Array): JSONSchema; - addEnum(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): JSONSchema.AsObject; - static toObject(includeInstance: boolean, msg: JSONSchema): JSONSchema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: JSONSchema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): JSONSchema; - static deserializeBinaryFromReader(message: JSONSchema, reader: jspb.BinaryReader): JSONSchema; -} - -export namespace JSONSchema { - export type AsObject = { - ref: string, - title: string, - description: string, - pb_default: string, - readOnly: boolean, - example: string, - multipleOf: number, - maximum: number, - exclusiveMaximum: boolean, - minimum: number, - exclusiveMinimum: boolean, - maxLength: number, - minLength: number, - pattern: string, - maxItems: number, - minItems: number, - uniqueItems: boolean, - maxProperties: number, - minProperties: number, - requiredList: Array, - arrayList: Array, - typeList: Array, - format: string, - pb_enumList: Array, - } - - export enum JSONSchemaSimpleTypes { - UNKNOWN = 0, - ARRAY = 1, - BOOLEAN = 2, - INTEGER = 3, - NULL = 4, - NUMBER = 5, - OBJECT = 6, - STRING = 7, - } - -} - -export class Tag extends jspb.Message { - getDescription(): string; - setDescription(value: string): Tag; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Tag; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Tag.AsObject; - static toObject(includeInstance: boolean, msg: Tag): Tag.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Tag, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Tag; - static deserializeBinaryFromReader(message: Tag, reader: jspb.BinaryReader): Tag; -} - -export namespace Tag { - export type AsObject = { - description: string, - externalDocs?: ExternalDocumentation.AsObject, - } -} - -export class SecurityDefinitions extends jspb.Message { - - getSecurityMap(): jspb.Map; - clearSecurityMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityDefinitions.AsObject; - static toObject(includeInstance: boolean, msg: SecurityDefinitions): SecurityDefinitions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityDefinitions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityDefinitions; - static deserializeBinaryFromReader(message: SecurityDefinitions, reader: jspb.BinaryReader): SecurityDefinitions; -} - -export namespace SecurityDefinitions { - export type AsObject = { - - securityMap: Array<[string, SecurityScheme.AsObject]>, - } -} - -export class SecurityScheme extends jspb.Message { - getType(): SecurityScheme.Type; - setType(value: SecurityScheme.Type): SecurityScheme; - getDescription(): string; - setDescription(value: string): SecurityScheme; - getName(): string; - setName(value: string): SecurityScheme; - getIn(): SecurityScheme.In; - setIn(value: SecurityScheme.In): SecurityScheme; - getFlow(): SecurityScheme.Flow; - setFlow(value: SecurityScheme.Flow): SecurityScheme; - getAuthorizationUrl(): string; - setAuthorizationUrl(value: string): SecurityScheme; - getTokenUrl(): string; - setTokenUrl(value: string): SecurityScheme; - - hasScopes(): boolean; - clearScopes(): void; - getScopes(): Scopes | undefined; - setScopes(value?: Scopes): SecurityScheme; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityScheme.AsObject; - static toObject(includeInstance: boolean, msg: SecurityScheme): SecurityScheme.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityScheme, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityScheme; - static deserializeBinaryFromReader(message: SecurityScheme, reader: jspb.BinaryReader): SecurityScheme; -} - -export namespace SecurityScheme { - export type AsObject = { - type: SecurityScheme.Type, - description: string, - name: string, - pb_in: SecurityScheme.In, - flow: SecurityScheme.Flow, - authorizationUrl: string, - tokenUrl: string, - scopes?: Scopes.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } - - export enum Type { - TYPE_INVALID = 0, - TYPE_BASIC = 1, - TYPE_API_KEY = 2, - TYPE_OAUTH2 = 3, - } - - export enum In { - IN_INVALID = 0, - IN_QUERY = 1, - IN_HEADER = 2, - } - - export enum Flow { - FLOW_INVALID = 0, - FLOW_IMPLICIT = 1, - FLOW_PASSWORD = 2, - FLOW_APPLICATION = 3, - FLOW_ACCESS_CODE = 4, - } - -} - -export class SecurityRequirement extends jspb.Message { - - getSecurityRequirementMap(): jspb.Map; - clearSecurityRequirementMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirement.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirement): SecurityRequirement.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirement, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirement; - static deserializeBinaryFromReader(message: SecurityRequirement, reader: jspb.BinaryReader): SecurityRequirement; -} - -export namespace SecurityRequirement { - export type AsObject = { - - securityRequirementMap: Array<[string, SecurityRequirement.SecurityRequirementValue.AsObject]>, - } - - - export class SecurityRequirementValue extends jspb.Message { - clearScopeList(): void; - getScopeList(): Array; - setScopeList(value: Array): SecurityRequirementValue; - addScope(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirementValue.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirementValue): SecurityRequirementValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirementValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirementValue; - static deserializeBinaryFromReader(message: SecurityRequirementValue, reader: jspb.BinaryReader): SecurityRequirementValue; - } - - export namespace SecurityRequirementValue { - export type AsObject = { - scopeList: Array, - } - } - -} - -export class Scopes extends jspb.Message { - - getScopeMap(): jspb.Map; - clearScopeMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Scopes.AsObject; - static toObject(includeInstance: boolean, msg: Scopes): Scopes.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Scopes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Scopes; - static deserializeBinaryFromReader(message: Scopes, reader: jspb.BinaryReader): Scopes; -} - -export namespace Scopes { - export type AsObject = { - - scopeMap: Array<[string, string]>, - } -} - -export enum Scheme { - UNKNOWN = 0, - HTTP = 1, - HTTPS = 2, - WS = 3, - WSS = 4, -} diff --git a/mods/storage/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js b/mods/storage/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js deleted file mode 100644 index be8a6bfd2..000000000 --- a/mods/storage/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js +++ /dev/null @@ -1,5367 +0,0 @@ -// source: protoc-gen-openapiv2/options/openapiv2.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Contact', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Header', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Info', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.License', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Response', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Tag', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Operation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Operation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Header, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Header'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Response, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Response'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Info, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Info'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Contact'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.License, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.License.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.License'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Schema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Tag, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Tag'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_ = [5,6,7,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject = function(includeInstance, msg) { - var f, obj = { - swagger: jspb.Message.getFieldWithDefault(msg, 1, ""), - info: (f = msg.getInfo()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(includeInstance, f), - host: jspb.Message.getFieldWithDefault(msg, 3, ""), - basePath: jspb.Message.getFieldWithDefault(msg, 4, ""), - schemesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - securityDefinitions: (f = msg.getSecurityDefinitions()) && proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(includeInstance, f), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSwagger(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader); - msg.setInfo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setBasePath(value); - break; - case 5: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 10: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 11: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader); - msg.setSecurityDefinitions(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 14: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 15: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSwagger(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInfo(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBasePath(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSecurityDefinitions(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 14, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string swagger = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSwagger = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSwagger = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Info info = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getInfo = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Info, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearInfo = function() { - return this.setInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasInfo = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string host = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string base_path = 4; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getBasePath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setBasePath = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated Scheme schemes = 5; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 10; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 10, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * optional SecurityDefinitions security_definitions = 11; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityDefinitions = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, 11)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityDefinitions = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityDefinitions = function() { - return this.setSecurityDefinitions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasSecurityDefinitions = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * optional ExternalDocumentation external_docs = 14; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 14)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 14, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 14) != null; -}; - - -/** - * map extensions = 15; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 15, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_ = [1,6,7,10,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject = function(includeInstance, msg) { - var f, obj = { - tagsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - summary: jspb.Message.getFieldWithDefault(msg, 2, ""), - description: jspb.Message.getFieldWithDefault(msg, 3, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - operationId: jspb.Message.getFieldWithDefault(msg, 5, ""), - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - schemesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f, - deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 11, false), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Operation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSummary(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setOperationId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 9: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 10: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDeprecated(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 13: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getSummary(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getOperationId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 10, - f - ); - } - f = message.getDeprecated(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * repeated string tags = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getTagsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setTagsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addTags = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearTagsList = function() { - return this.setTagsList([]); -}; - - -/** - * optional string summary = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSummary = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSummary = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string description = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string operation_id = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getOperationId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setOperationId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * repeated Scheme schemes = 10; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 10, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 10, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * optional bool deprecated = 11; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDeprecated = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDeprecated = function(value) { - return jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * map extensions = 13; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 13, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, ""), - format: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 6, ""), - pattern: jspb.Message.getFieldWithDefault(msg, 13, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Header; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string type = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string format = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string default = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string pattern = 13; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 13, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - schema: (f = msg.getSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(includeInstance, f), - headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject) : [], - examplesMap: (f = msg.getExamplesMap()) ? f.toObject(includeInstance, undefined) : [], - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Response; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader); - msg.setSchema(value); - break; - case 3: - var value = msg.getHeadersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Header()); - }); - break; - case 4: - var value = msg.getExamplesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - case 5: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchema(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter - ); - } - f = message.getHeadersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter); - } - f = message.getExamplesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Schema schema = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setSchema = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearSchema = function() { - return this.setSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.hasSchema = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * map headers = 3; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getHeadersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 3, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Header)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearHeadersMap = function() { - this.getHeadersMap().clear(); - return this;}; - - -/** - * map examples = 4; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExamplesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 4, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExamplesMap = function() { - this.getExamplesMap().clear(); - return this;}; - - -/** - * map extensions = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject = function(includeInstance, msg) { - var f, obj = { - title: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - termsOfService: jspb.Message.getFieldWithDefault(msg, 3, ""), - contact: (f = msg.getContact()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(includeInstance, f), - license: (f = msg.getLicense()) && proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(includeInstance, f), - version: jspb.Message.getFieldWithDefault(msg, 6, ""), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTermsOfService(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader); - msg.setContact(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader); - msg.setLicense(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 7: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTermsOfService(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getContact(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter - ); - } - f = message.getLicense(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string title = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string terms_of_service = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTermsOfService = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTermsOfService = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional Contact contact = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getContact = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setContact = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearContact = function() { - return this.setContact(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasContact = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional License license = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getLicense = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.License} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.License, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.License|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setLicense = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearLicense = function() { - return this.setLicense(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasLicense = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string version = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setVersion = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * map extensions = 7; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 7, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject = function(includeInstance, msg) { - var f, obj = { - jsonSchema: (f = msg.getJsonSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(includeInstance, f), - discriminator: jspb.Message.getFieldWithDefault(msg, 2, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - example: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader); - msg.setJsonSchema(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDiscriminator(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsonSchema(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter - ); - } - f = message.getDiscriminator(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional JSONSchema json_schema = 1; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getJsonSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, 1)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setJsonSchema = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearJsonSchema = function() { - return this.setJsonSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasJsonSchema = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string discriminator = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getDiscriminator = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setDiscriminator = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool read_only = 3; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string example = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_ = [26,34,35,46]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 3, ""), - title: jspb.Message.getFieldWithDefault(msg, 5, ""), - description: jspb.Message.getFieldWithDefault(msg, 6, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 7, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - example: jspb.Message.getFieldWithDefault(msg, 9, ""), - multipleOf: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0), - maximum: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0), - exclusiveMaximum: jspb.Message.getBooleanFieldWithDefault(msg, 12, false), - minimum: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), - exclusiveMinimum: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - maxLength: jspb.Message.getFieldWithDefault(msg, 15, 0), - minLength: jspb.Message.getFieldWithDefault(msg, 16, 0), - pattern: jspb.Message.getFieldWithDefault(msg, 17, ""), - maxItems: jspb.Message.getFieldWithDefault(msg, 20, 0), - minItems: jspb.Message.getFieldWithDefault(msg, 21, 0), - uniqueItems: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), - maxProperties: jspb.Message.getFieldWithDefault(msg, 24, 0), - minProperties: jspb.Message.getFieldWithDefault(msg, 25, 0), - requiredList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, - arrayList: (f = jspb.Message.getRepeatedField(msg, 34)) == null ? undefined : f, - typeList: (f = jspb.Message.getRepeatedField(msg, 35)) == null ? undefined : f, - format: jspb.Message.getFieldWithDefault(msg, 36, ""), - enumList: (f = jspb.Message.getRepeatedField(msg, 46)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - case 10: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMultipleOf(value); - break; - case 11: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMaximum(value); - break; - case 12: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMaximum(value); - break; - case 13: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMinimum(value); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMinimum(value); - break; - case 15: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxLength(value); - break; - case 16: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinLength(value); - break; - case 17: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - case 20: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxItems(value); - break; - case 21: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinItems(value); - break; - case 22: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUniqueItems(value); - break; - case 24: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxProperties(value); - break; - case 25: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinProperties(value); - break; - case 26: - var value = /** @type {string} */ (reader.readString()); - msg.addRequired(value); - break; - case 34: - var value = /** @type {string} */ (reader.readString()); - msg.addArray(value); - break; - case 35: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addType(values[i]); - } - break; - case 36: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 46: - var value = /** @type {string} */ (reader.readString()); - msg.addEnum(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getMultipleOf(); - if (f !== 0.0) { - writer.writeDouble( - 10, - f - ); - } - f = message.getMaximum(); - if (f !== 0.0) { - writer.writeDouble( - 11, - f - ); - } - f = message.getExclusiveMaximum(); - if (f) { - writer.writeBool( - 12, - f - ); - } - f = message.getMinimum(); - if (f !== 0.0) { - writer.writeDouble( - 13, - f - ); - } - f = message.getExclusiveMinimum(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getMaxLength(); - if (f !== 0) { - writer.writeUint64( - 15, - f - ); - } - f = message.getMinLength(); - if (f !== 0) { - writer.writeUint64( - 16, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 17, - f - ); - } - f = message.getMaxItems(); - if (f !== 0) { - writer.writeUint64( - 20, - f - ); - } - f = message.getMinItems(); - if (f !== 0) { - writer.writeUint64( - 21, - f - ); - } - f = message.getUniqueItems(); - if (f) { - writer.writeBool( - 22, - f - ); - } - f = message.getMaxProperties(); - if (f !== 0) { - writer.writeUint64( - 24, - f - ); - } - f = message.getMinProperties(); - if (f !== 0) { - writer.writeUint64( - 25, - f - ); - } - f = message.getRequiredList(); - if (f.length > 0) { - writer.writeRepeatedString( - 26, - f - ); - } - f = message.getArrayList(); - if (f.length > 0) { - writer.writeRepeatedString( - 34, - f - ); - } - f = message.getTypeList(); - if (f.length > 0) { - writer.writePackedEnum( - 35, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 36, - f - ); - } - f = message.getEnumList(); - if (f.length > 0) { - writer.writeRepeatedString( - 46, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes = { - UNKNOWN: 0, - ARRAY: 1, - BOOLEAN: 2, - INTEGER: 3, - NULL: 4, - NUMBER: 5, - OBJECT: 6, - STRING: 7 -}; - -/** - * optional string ref = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string title = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string description = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string default = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional bool read_only = 8; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - -/** - * optional string example = 9; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional double multiple_of = 10; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMultipleOf = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMultipleOf = function(value) { - return jspb.Message.setProto3FloatField(this, 10, value); -}; - - -/** - * optional double maximum = 11; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaximum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaximum = function(value) { - return jspb.Message.setProto3FloatField(this, 11, value); -}; - - -/** - * optional bool exclusive_maximum = 12; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMaximum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMaximum = function(value) { - return jspb.Message.setProto3BooleanField(this, 12, value); -}; - - -/** - * optional double minimum = 13; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinimum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinimum = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); -}; - - -/** - * optional bool exclusive_minimum = 14; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMinimum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMinimum = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * optional uint64 max_length = 15; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxLength = function(value) { - return jspb.Message.setProto3IntField(this, 15, value); -}; - - -/** - * optional uint64 min_length = 16; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinLength = function(value) { - return jspb.Message.setProto3IntField(this, 16, value); -}; - - -/** - * optional string pattern = 17; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 17, value); -}; - - -/** - * optional uint64 max_items = 20; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxItems = function(value) { - return jspb.Message.setProto3IntField(this, 20, value); -}; - - -/** - * optional uint64 min_items = 21; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinItems = function(value) { - return jspb.Message.setProto3IntField(this, 21, value); -}; - - -/** - * optional bool unique_items = 22; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getUniqueItems = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setUniqueItems = function(value) { - return jspb.Message.setProto3BooleanField(this, 22, value); -}; - - -/** - * optional uint64 max_properties = 24; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxProperties = function(value) { - return jspb.Message.setProto3IntField(this, 24, value); -}; - - -/** - * optional uint64 min_properties = 25; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinProperties = function(value) { - return jspb.Message.setProto3IntField(this, 25, value); -}; - - -/** - * repeated string required = 26; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRequiredList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 26)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRequiredList = function(value) { - return jspb.Message.setField(this, 26, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addRequired = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 26, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearRequiredList = function() { - return this.setRequiredList([]); -}; - - -/** - * repeated string array = 34; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getArrayList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 34)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setArrayList = function(value) { - return jspb.Message.setField(this, 34, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addArray = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 34, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearArrayList = function() { - return this.setArrayList([]); -}; - - -/** - * repeated JSONSchemaSimpleTypes type = 35; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTypeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 35)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTypeList = function(value) { - return jspb.Message.setField(this, 35, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addType = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 35, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearTypeList = function() { - return this.setTypeList([]); -}; - - -/** - * optional string format = 36; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 36, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 36, value); -}; - - -/** - * repeated string enum = 46; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getEnumList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 46)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setEnumList = function(value) { - return jspb.Message.setField(this, 46, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addEnum = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 46, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearEnumList = function() { - return this.setEnumList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Tag; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 3; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 3)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject = function(includeInstance, msg) { - var f, obj = { - securityMap: (f = msg.getSecurityMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter); - } -}; - - -/** - * map security = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.getSecurityMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.clearSecurityMap = function() { - this.getSecurityMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject = function(includeInstance, msg) { - var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_in: jspb.Message.getFieldWithDefault(msg, 4, 0), - flow: jspb.Message.getFieldWithDefault(msg, 5, 0), - authorizationUrl: jspb.Message.getFieldWithDefault(msg, 6, ""), - tokenUrl: jspb.Message.getFieldWithDefault(msg, 7, ""), - scopes: (f = msg.getScopes()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (reader.readEnum()); - msg.setIn(value); - break; - case 5: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (reader.readEnum()); - msg.setFlow(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthorizationUrl(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setTokenUrl(value); - break; - case 8: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader); - msg.setScopes(value); - break; - case 9: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIn(); - if (f !== 0.0) { - writer.writeEnum( - 4, - f - ); - } - f = message.getFlow(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } - f = message.getAuthorizationUrl(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getTokenUrl(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getScopes(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type = { - TYPE_INVALID: 0, - TYPE_BASIC: 1, - TYPE_API_KEY: 2, - TYPE_OAUTH2: 3 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In = { - IN_INVALID: 0, - IN_QUERY: 1, - IN_HEADER: 2 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow = { - FLOW_INVALID: 0, - FLOW_IMPLICIT: 1, - FLOW_PASSWORD: 2, - FLOW_APPLICATION: 3, - FLOW_ACCESS_CODE: 4 -}; - -/** - * optional Type type = 1; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getType = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional In in = 4; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getIn = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setIn = function(value) { - return jspb.Message.setProto3EnumField(this, 4, value); -}; - - -/** - * optional Flow flow = 5; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getFlow = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setFlow = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); -}; - - -/** - * optional string authorization_url = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getAuthorizationUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setAuthorizationUrl = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string token_url = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getTokenUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setTokenUrl = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional Scopes scopes = 8; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getScopes = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, 8)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setScopes = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearScopes = function() { - return this.setScopes(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.hasScopes = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * map extensions = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject = function(includeInstance, msg) { - var f, obj = { - securityRequirementMap: (f = msg.getSecurityRequirementMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityRequirementMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityRequirementMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject = function(includeInstance, msg) { - var f, obj = { - scopeList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addScope(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } -}; - - -/** - * repeated string scope = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.getScopeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.setScopeList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.addScope = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.clearScopeList = function() { - return this.setScopeList([]); -}; - - -/** - * map security_requirement = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.getSecurityRequirementMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.clearSecurityRequirementMap = function() { - this.getSecurityRequirementMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject = function(includeInstance, msg) { - var f, obj = { - scopeMap: (f = msg.getScopeMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getScopeMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map scope = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.getScopeMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.clearScopeMap = function() { - this.getScopeMap().clear(); - return this;}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme = { - UNKNOWN: 0, - HTTP: 1, - HTTPS: 2, - WS: 3, - WSS: 4 -}; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/storage/src/service/protos/storage_grpc_pb.d.ts b/mods/storage/src/service/protos/storage_grpc_pb.d.ts deleted file mode 100644 index 3367912ea..000000000 --- a/mods/storage/src/service/protos/storage_grpc_pb.d.ts +++ /dev/null @@ -1,61 +0,0 @@ -// package: fonoster.storage.v1beta1 -// file: storage.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import {handleClientStreamingCall} from "@grpc/grpc-js/build/src/server-call"; -import * as storage_pb from "./storage_pb"; - -interface IStorageService extends grpc.ServiceDefinition { - uploadObject: IStorageService_IUploadObject; - getObjectURL: IStorageService_IGetObjectURL; -} - -interface IStorageService_IUploadObject extends grpc.MethodDefinition { - path: "/fonoster.storage.v1beta1.Storage/UploadObject"; - requestStream: true; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IStorageService_IGetObjectURL extends grpc.MethodDefinition { - path: "/fonoster.storage.v1beta1.Storage/GetObjectURL"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const StorageService: IStorageService; - -export interface IStorageServer extends grpc.UntypedServiceImplementation { - uploadObject: handleClientStreamingCall; - getObjectURL: grpc.handleUnaryCall; -} - -export interface IStorageClient { - uploadObject(callback: (error: grpc.ServiceError | null, response: storage_pb.UploadObjectResponse) => void): grpc.ClientWritableStream; - uploadObject(metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: storage_pb.UploadObjectResponse) => void): grpc.ClientWritableStream; - uploadObject(options: Partial, callback: (error: grpc.ServiceError | null, response: storage_pb.UploadObjectResponse) => void): grpc.ClientWritableStream; - uploadObject(metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: storage_pb.UploadObjectResponse) => void): grpc.ClientWritableStream; - getObjectURL(request: storage_pb.GetObjectURLRequest, callback: (error: grpc.ServiceError | null, response: storage_pb.GetObjectURLResponse) => void): grpc.ClientUnaryCall; - getObjectURL(request: storage_pb.GetObjectURLRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: storage_pb.GetObjectURLResponse) => void): grpc.ClientUnaryCall; - getObjectURL(request: storage_pb.GetObjectURLRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: storage_pb.GetObjectURLResponse) => void): grpc.ClientUnaryCall; -} - -export class StorageClient extends grpc.Client implements IStorageClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public uploadObject(callback: (error: grpc.ServiceError | null, response: storage_pb.UploadObjectResponse) => void): grpc.ClientWritableStream; - public uploadObject(metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: storage_pb.UploadObjectResponse) => void): grpc.ClientWritableStream; - public uploadObject(options: Partial, callback: (error: grpc.ServiceError | null, response: storage_pb.UploadObjectResponse) => void): grpc.ClientWritableStream; - public uploadObject(metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: storage_pb.UploadObjectResponse) => void): grpc.ClientWritableStream; - public getObjectURL(request: storage_pb.GetObjectURLRequest, callback: (error: grpc.ServiceError | null, response: storage_pb.GetObjectURLResponse) => void): grpc.ClientUnaryCall; - public getObjectURL(request: storage_pb.GetObjectURLRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: storage_pb.GetObjectURLResponse) => void): grpc.ClientUnaryCall; - public getObjectURL(request: storage_pb.GetObjectURLRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: storage_pb.GetObjectURLResponse) => void): grpc.ClientUnaryCall; -} diff --git a/mods/storage/src/service/protos/storage_grpc_pb.js b/mods/storage/src/service/protos/storage_grpc_pb.js deleted file mode 100644 index bf1509491..000000000 --- a/mods/storage/src/service/protos/storage_grpc_pb.js +++ /dev/null @@ -1,85 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// * -// MIT License -// Copyright (c) 2021 Fonoster Inc -// -// The Storage proto contains the artificats for bucket and objects -// management. -'use strict'; -var grpc = require('@grpc/grpc-js'); -var storage_pb = require('./storage_pb.js'); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); - -function serialize_fonoster_storage_v1beta1_GetObjectURLRequest(arg) { - if (!(arg instanceof storage_pb.GetObjectURLRequest)) { - throw new Error('Expected argument of type fonoster.storage.v1beta1.GetObjectURLRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_storage_v1beta1_GetObjectURLRequest(buffer_arg) { - return storage_pb.GetObjectURLRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_storage_v1beta1_GetObjectURLResponse(arg) { - if (!(arg instanceof storage_pb.GetObjectURLResponse)) { - throw new Error('Expected argument of type fonoster.storage.v1beta1.GetObjectURLResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_storage_v1beta1_GetObjectURLResponse(buffer_arg) { - return storage_pb.GetObjectURLResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_storage_v1beta1_UploadObjectRequest(arg) { - if (!(arg instanceof storage_pb.UploadObjectRequest)) { - throw new Error('Expected argument of type fonoster.storage.v1beta1.UploadObjectRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_storage_v1beta1_UploadObjectRequest(buffer_arg) { - return storage_pb.UploadObjectRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_storage_v1beta1_UploadObjectResponse(arg) { - if (!(arg instanceof storage_pb.UploadObjectResponse)) { - throw new Error('Expected argument of type fonoster.storage.v1beta1.UploadObjectResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_storage_v1beta1_UploadObjectResponse(buffer_arg) { - return storage_pb.UploadObjectResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var StorageService = exports.StorageService = { - uploadObject: { - path: '/fonoster.storage.v1beta1.Storage/UploadObject', - requestStream: true, - responseStream: false, - requestType: storage_pb.UploadObjectRequest, - responseType: storage_pb.UploadObjectResponse, - requestSerialize: serialize_fonoster_storage_v1beta1_UploadObjectRequest, - requestDeserialize: deserialize_fonoster_storage_v1beta1_UploadObjectRequest, - responseSerialize: serialize_fonoster_storage_v1beta1_UploadObjectResponse, - responseDeserialize: deserialize_fonoster_storage_v1beta1_UploadObjectResponse, - }, - getObjectURL: { - path: '/fonoster.storage.v1beta1.Storage/GetObjectURL', - requestStream: false, - responseStream: false, - requestType: storage_pb.GetObjectURLRequest, - responseType: storage_pb.GetObjectURLResponse, - requestSerialize: serialize_fonoster_storage_v1beta1_GetObjectURLRequest, - requestDeserialize: deserialize_fonoster_storage_v1beta1_GetObjectURLRequest, - responseSerialize: serialize_fonoster_storage_v1beta1_GetObjectURLResponse, - responseDeserialize: deserialize_fonoster_storage_v1beta1_GetObjectURLResponse, - }, -}; - -exports.StorageClient = grpc.makeGenericClientConstructor(StorageService); diff --git a/mods/storage/src/service/protos/storage_pb.d.ts b/mods/storage/src/service/protos/storage_pb.d.ts deleted file mode 100644 index 90e55262c..000000000 --- a/mods/storage/src/service/protos/storage_pb.d.ts +++ /dev/null @@ -1,125 +0,0 @@ -// package: fonoster.storage.v1beta1 -// file: storage.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class UploadObjectRequest extends jspb.Message { - getBucket(): UploadObjectRequest.Bucket; - setBucket(value: UploadObjectRequest.Bucket): UploadObjectRequest; - getFilename(): string; - setFilename(value: string): UploadObjectRequest; - getChunks(): Uint8Array | string; - getChunks_asU8(): Uint8Array; - getChunks_asB64(): string; - setChunks(value: Uint8Array | string): UploadObjectRequest; - getAccessKeyId(): string; - setAccessKeyId(value: string): UploadObjectRequest; - - getMetadataMap(): jspb.Map; - clearMetadataMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UploadObjectRequest.AsObject; - static toObject(includeInstance: boolean, msg: UploadObjectRequest): UploadObjectRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UploadObjectRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UploadObjectRequest; - static deserializeBinaryFromReader(message: UploadObjectRequest, reader: jspb.BinaryReader): UploadObjectRequest; -} - -export namespace UploadObjectRequest { - export type AsObject = { - bucket: UploadObjectRequest.Bucket, - filename: string, - chunks: Uint8Array | string, - accessKeyId: string, - - metadataMap: Array<[string, string]>, - } - - export enum Bucket { - APPS = 0, - RECORDINGS = 1, - PUBLIC = 2, - FUNCS = 3, - } - -} - -export class UploadObjectResponse extends jspb.Message { - getSize(): number; - setSize(value: number): UploadObjectResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UploadObjectResponse.AsObject; - static toObject(includeInstance: boolean, msg: UploadObjectResponse): UploadObjectResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UploadObjectResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UploadObjectResponse; - static deserializeBinaryFromReader(message: UploadObjectResponse, reader: jspb.BinaryReader): UploadObjectResponse; -} - -export namespace UploadObjectResponse { - export type AsObject = { - size: number, - } -} - -export class GetObjectURLRequest extends jspb.Message { - getBucket(): GetObjectURLRequest.Bucket; - setBucket(value: GetObjectURLRequest.Bucket): GetObjectURLRequest; - getFilename(): string; - setFilename(value: string): GetObjectURLRequest; - getAccessKeyId(): string; - setAccessKeyId(value: string): GetObjectURLRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetObjectURLRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetObjectURLRequest): GetObjectURLRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetObjectURLRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetObjectURLRequest; - static deserializeBinaryFromReader(message: GetObjectURLRequest, reader: jspb.BinaryReader): GetObjectURLRequest; -} - -export namespace GetObjectURLRequest { - export type AsObject = { - bucket: GetObjectURLRequest.Bucket, - filename: string, - accessKeyId: string, - } - - export enum Bucket { - APPS = 0, - RECORDINGS = 1, - PUBLIC = 2, - FUNCS = 3, - } - -} - -export class GetObjectURLResponse extends jspb.Message { - getUrl(): string; - setUrl(value: string): GetObjectURLResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetObjectURLResponse.AsObject; - static toObject(includeInstance: boolean, msg: GetObjectURLResponse): GetObjectURLResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetObjectURLResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetObjectURLResponse; - static deserializeBinaryFromReader(message: GetObjectURLResponse, reader: jspb.BinaryReader): GetObjectURLResponse; -} - -export namespace GetObjectURLResponse { - export type AsObject = { - url: string, - } -} diff --git a/mods/storage/src/service/protos/storage_pb.js b/mods/storage/src/service/protos/storage_pb.js deleted file mode 100644 index b467b45f8..000000000 --- a/mods/storage/src/service/protos/storage_pb.js +++ /dev/null @@ -1,857 +0,0 @@ -// source: storage.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -goog.object.extend(proto, google_api_annotations_pb); -goog.exportSymbol('proto.fonoster.storage.v1beta1.GetObjectURLRequest', null, global); -goog.exportSymbol('proto.fonoster.storage.v1beta1.GetObjectURLRequest.Bucket', null, global); -goog.exportSymbol('proto.fonoster.storage.v1beta1.GetObjectURLResponse', null, global); -goog.exportSymbol('proto.fonoster.storage.v1beta1.UploadObjectRequest', null, global); -goog.exportSymbol('proto.fonoster.storage.v1beta1.UploadObjectRequest.Bucket', null, global); -goog.exportSymbol('proto.fonoster.storage.v1beta1.UploadObjectResponse', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.storage.v1beta1.UploadObjectRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.storage.v1beta1.UploadObjectRequest.displayName = 'proto.fonoster.storage.v1beta1.UploadObjectRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.storage.v1beta1.UploadObjectResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.storage.v1beta1.UploadObjectResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.storage.v1beta1.UploadObjectResponse.displayName = 'proto.fonoster.storage.v1beta1.UploadObjectResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.storage.v1beta1.GetObjectURLRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.storage.v1beta1.GetObjectURLRequest.displayName = 'proto.fonoster.storage.v1beta1.GetObjectURLRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.storage.v1beta1.GetObjectURLResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.storage.v1beta1.GetObjectURLResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.storage.v1beta1.GetObjectURLResponse.displayName = 'proto.fonoster.storage.v1beta1.GetObjectURLResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.storage.v1beta1.UploadObjectRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.storage.v1beta1.UploadObjectRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.toObject = function(includeInstance, msg) { - var f, obj = { - bucket: jspb.Message.getFieldWithDefault(msg, 1, 0), - filename: jspb.Message.getFieldWithDefault(msg, 2, ""), - chunks: msg.getChunks_asB64(), - accessKeyId: jspb.Message.getFieldWithDefault(msg, 4, ""), - metadataMap: (f = msg.getMetadataMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.storage.v1beta1.UploadObjectRequest} - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.storage.v1beta1.UploadObjectRequest; - return proto.fonoster.storage.v1beta1.UploadObjectRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.storage.v1beta1.UploadObjectRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.storage.v1beta1.UploadObjectRequest} - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.fonoster.storage.v1beta1.UploadObjectRequest.Bucket} */ (reader.readEnum()); - msg.setBucket(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setFilename(value); - break; - case 3: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setChunks(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setAccessKeyId(value); - break; - case 5: - var value = msg.getMetadataMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.storage.v1beta1.UploadObjectRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.storage.v1beta1.UploadObjectRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getBucket(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getFilename(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getChunks_asU8(); - if (f.length > 0) { - writer.writeBytes( - 3, - f - ); - } - f = message.getAccessKeyId(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getMetadataMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * @enum {number} - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.Bucket = { - APPS: 0, - RECORDINGS: 1, - PUBLIC: 2, - FUNCS: 3 -}; - -/** - * optional Bucket bucket = 1; - * @return {!proto.fonoster.storage.v1beta1.UploadObjectRequest.Bucket} - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.getBucket = function() { - return /** @type {!proto.fonoster.storage.v1beta1.UploadObjectRequest.Bucket} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.fonoster.storage.v1beta1.UploadObjectRequest.Bucket} value - * @return {!proto.fonoster.storage.v1beta1.UploadObjectRequest} returns this - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.setBucket = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string filename = 2; - * @return {string} - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.getFilename = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.storage.v1beta1.UploadObjectRequest} returns this - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.setFilename = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bytes chunks = 3; - * @return {!(string|Uint8Array)} - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.getChunks = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * optional bytes chunks = 3; - * This is a type-conversion wrapper around `getChunks()` - * @return {string} - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.getChunks_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getChunks())); -}; - - -/** - * optional bytes chunks = 3; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getChunks()` - * @return {!Uint8Array} - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.getChunks_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getChunks())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.fonoster.storage.v1beta1.UploadObjectRequest} returns this - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.setChunks = function(value) { - return jspb.Message.setProto3BytesField(this, 3, value); -}; - - -/** - * optional string access_key_id = 4; - * @return {string} - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.getAccessKeyId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.storage.v1beta1.UploadObjectRequest} returns this - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.setAccessKeyId = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * map metadata = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.getMetadataMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.fonoster.storage.v1beta1.UploadObjectRequest} returns this - */ -proto.fonoster.storage.v1beta1.UploadObjectRequest.prototype.clearMetadataMap = function() { - this.getMetadataMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.storage.v1beta1.UploadObjectResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.storage.v1beta1.UploadObjectResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.storage.v1beta1.UploadObjectResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.storage.v1beta1.UploadObjectResponse.toObject = function(includeInstance, msg) { - var f, obj = { - size: jspb.Message.getFieldWithDefault(msg, 1, 0) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.storage.v1beta1.UploadObjectResponse} - */ -proto.fonoster.storage.v1beta1.UploadObjectResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.storage.v1beta1.UploadObjectResponse; - return proto.fonoster.storage.v1beta1.UploadObjectResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.storage.v1beta1.UploadObjectResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.storage.v1beta1.UploadObjectResponse} - */ -proto.fonoster.storage.v1beta1.UploadObjectResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setSize(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.storage.v1beta1.UploadObjectResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.storage.v1beta1.UploadObjectResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.storage.v1beta1.UploadObjectResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.storage.v1beta1.UploadObjectResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSize(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } -}; - - -/** - * optional int32 size = 1; - * @return {number} - */ -proto.fonoster.storage.v1beta1.UploadObjectResponse.prototype.getSize = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.storage.v1beta1.UploadObjectResponse} returns this - */ -proto.fonoster.storage.v1beta1.UploadObjectResponse.prototype.setSize = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.storage.v1beta1.GetObjectURLRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.storage.v1beta1.GetObjectURLRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest.toObject = function(includeInstance, msg) { - var f, obj = { - bucket: jspb.Message.getFieldWithDefault(msg, 1, 0), - filename: jspb.Message.getFieldWithDefault(msg, 2, ""), - accessKeyId: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.storage.v1beta1.GetObjectURLRequest} - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.storage.v1beta1.GetObjectURLRequest; - return proto.fonoster.storage.v1beta1.GetObjectURLRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.storage.v1beta1.GetObjectURLRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.storage.v1beta1.GetObjectURLRequest} - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.fonoster.storage.v1beta1.GetObjectURLRequest.Bucket} */ (reader.readEnum()); - msg.setBucket(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setFilename(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setAccessKeyId(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.storage.v1beta1.GetObjectURLRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.storage.v1beta1.GetObjectURLRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getBucket(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getFilename(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getAccessKeyId(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest.Bucket = { - APPS: 0, - RECORDINGS: 1, - PUBLIC: 2, - FUNCS: 3 -}; - -/** - * optional Bucket bucket = 1; - * @return {!proto.fonoster.storage.v1beta1.GetObjectURLRequest.Bucket} - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest.prototype.getBucket = function() { - return /** @type {!proto.fonoster.storage.v1beta1.GetObjectURLRequest.Bucket} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.fonoster.storage.v1beta1.GetObjectURLRequest.Bucket} value - * @return {!proto.fonoster.storage.v1beta1.GetObjectURLRequest} returns this - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest.prototype.setBucket = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string filename = 2; - * @return {string} - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest.prototype.getFilename = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.storage.v1beta1.GetObjectURLRequest} returns this - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest.prototype.setFilename = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string access_key_id = 3; - * @return {string} - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest.prototype.getAccessKeyId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.storage.v1beta1.GetObjectURLRequest} returns this - */ -proto.fonoster.storage.v1beta1.GetObjectURLRequest.prototype.setAccessKeyId = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.storage.v1beta1.GetObjectURLResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.storage.v1beta1.GetObjectURLResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.storage.v1beta1.GetObjectURLResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.storage.v1beta1.GetObjectURLResponse.toObject = function(includeInstance, msg) { - var f, obj = { - url: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.storage.v1beta1.GetObjectURLResponse} - */ -proto.fonoster.storage.v1beta1.GetObjectURLResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.storage.v1beta1.GetObjectURLResponse; - return proto.fonoster.storage.v1beta1.GetObjectURLResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.storage.v1beta1.GetObjectURLResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.storage.v1beta1.GetObjectURLResponse} - */ -proto.fonoster.storage.v1beta1.GetObjectURLResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.storage.v1beta1.GetObjectURLResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.storage.v1beta1.GetObjectURLResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.storage.v1beta1.GetObjectURLResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.storage.v1beta1.GetObjectURLResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string url = 1; - * @return {string} - */ -proto.fonoster.storage.v1beta1.GetObjectURLResponse.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.storage.v1beta1.GetObjectURLResponse} returns this - */ -proto.fonoster.storage.v1beta1.GetObjectURLResponse.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -goog.object.extend(exports, proto.fonoster.storage.v1beta1); diff --git a/mods/storage/src/service/runner.ts b/mods/storage/src/service/runner.ts deleted file mode 100644 index 8760e32b3..000000000 --- a/mods/storage/src/service/runner.ts +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env node -require("@fonoster/common").Tracer.init("storage-service"); -import StorageServer from "./storage"; -import { StorageService } from "./protos/storage_grpc_pb"; -import { AuthMiddleware } from "@fonoster/auth"; -import { getSalt } from "@fonoster/certs"; -import { runServices } from "@fonoster/common"; - -const services = [ - { - name: "storage", - version: "v1beta1", - service: StorageService, - server: new StorageServer() - } -]; - -const middleware = { - name: "authentication", - middlewareObj: new AuthMiddleware(getSalt()).middleware -}; - -runServices(services, [middleware]); diff --git a/mods/storage/src/service/storage.ts b/mods/storage/src/service/storage.ts deleted file mode 100644 index be239b788..000000000 --- a/mods/storage/src/service/storage.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import grpc from "@grpc/grpc-js"; -import getObjectURL from "./get_object_url"; -import uploadObject from "./upload_object"; -import { - UploadObjectRequest, - UploadObjectResponse, - GetObjectURLRequest, - GetObjectURLResponse -} from "./protos/storage_pb"; -import { IStorageServer, StorageService } from "./protos/storage_grpc_pb"; -import { getAccessKeyId } from "@fonoster/core"; - -const getBucketName = (bucket: GetObjectURLRequest.Bucket) => { - switch (bucket) { - case GetObjectURLRequest.Bucket.APPS: - return "apps"; - case GetObjectURLRequest.Bucket.RECORDINGS: - return "recordings"; - case GetObjectURLRequest.Bucket.PUBLIC: - return "public"; - } -}; - -class StorageServer implements IStorageServer { - [name: string]: grpc.UntypedHandleCall; - - async uploadObject( - call: grpc.ServerReadableStream, - callback: grpc.sendUnaryData - ): Promise { - try { - await uploadObject(call, callback); - } catch (e) { - callback(e, null); - } - } - - async getObjectURL( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ): Promise { - const bucket = getBucketName(call.request.getBucket()); - let accessKeyId = getAccessKeyId(call); - if ( - call.request.getAccessKeyId() && - call.request.getBucket() === GetObjectURLRequest.Bucket.PUBLIC - ) { - accessKeyId = call.request.getAccessKeyId(); - } - - try { - const url = await getObjectURL( - accessKeyId, - bucket, - call.request.getFilename() - ); - const response = new GetObjectURLResponse(); - response.setUrl(url); - callback(null, response); - } catch (e) { - callback(e, null); - } - } -} - -export { StorageServer as default, IStorageServer, StorageService }; diff --git a/mods/storage/src/service/upload_object.ts b/mods/storage/src/service/upload_object.ts deleted file mode 100644 index 3c4786915..000000000 --- a/mods/storage/src/service/upload_object.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import logger from "@fonoster/logger"; -import fs from "fs"; -import { UploadObjectRequest } from "./protos/storage_pb"; -import { getAccessKeyId } from "@fonoster/core"; -import { getFilesizeInBytes, isCompressFile } from "../utils/files"; -import { handleCompressUpload, handleUncompressUpload } from "../utils/helper"; -import { getBucketAsString, handleError } from "../utils/utils"; -const objectid = require("bson-objectid"); - -export default async function (call: any, callback: any) { - const tmpName = objectid(); - const writeStream = fs.createWriteStream(`/tmp/${tmpName}`); - let object: string; - let bucket: string; - let accessKeyId = getAccessKeyId(call); - - call.on("error", (err: any) => { - logger.log( - "error", - `@fonoster/storage upload [an error ocurred while uploading object ${object} to bucket '${bucket}']` - ); - logger.log("error", err); - }); - - call.on("end", () => writeStream.end()); - - call.on("data", (request: UploadObjectRequest) => { - const chunk = request.getChunks(); - - if (chunk.length === 0) return; - - writeStream.write(Buffer.alloc(chunk.length, chunk as string)); - - if (!object && request.getFilename()) { - object = request.getFilename(); - bucket = getBucketAsString(request.getBucket()); - if ( - request.getAccessKeyId() && - request.getBucket() === UploadObjectRequest.Bucket.PUBLIC - ) { - accessKeyId = request.getAccessKeyId(); - } - logger.debug( - `@fonoster/storage upload [started uploading object ${object} into "${bucket}" bucket]` - ); - } - - logger.log( - "verbose", - `@fonoster/storage upload [received chunk(${chunk.length}) for ${object}]` - ); - }); - - writeStream.on("finish", async () => { - try { - const fileSize = getFilesizeInBytes(`/tmp/${tmpName}`); - fs.renameSync(`/tmp/${tmpName}`, `/tmp/${object}`); - - logger.verbose( - `@fonoster/storage upload [moved ${tmpName} into ${object} (final name)]` - ); - - logger.verbose( - `@fonoster/storage upload [uploading file to storage backend (s3)]` - ); - - const response = isCompressFile(object) - ? await handleCompressUpload(accessKeyId, object, bucket, fileSize) - : await handleUncompressUpload(accessKeyId, object, bucket, fileSize); - - logger.verbose( - `@fonoster/storage upload [removing tmp file /tmp/${object}]` - ); - - fs.unlink(`/tmp/${object}`, () => callback(null, response)); - } catch (e) { - logger.log("error", `@fonoster/storage upload [${e}]`); - callback(handleError(e, bucket)); - } - }); -} diff --git a/mods/storage/src/utils/bucket_policy.ts b/mods/storage/src/utils/bucket_policy.ts deleted file mode 100644 index dcc664ba7..000000000 --- a/mods/storage/src/utils/bucket_policy.ts +++ /dev/null @@ -1,41 +0,0 @@ -// Bucket policy - GET requests on "storageBucket" while skiping authentication. -export default function (bucket: string): string { - return ` - { - "Version": "2012-10-17", - "Statement": [ - { - "Action": [ - "s3:GetBucketLocation", - "s3:ListBucket" - ], - "Effect": "Allow", - "Principal": { - "AWS": [ - "*" - ] - }, - "Resource": [ - "arn:aws:s3:::${bucket}" - ], - "Sid": "" - }, - { - "Action": [ - "s3:GetObject" - ], - "Effect": "Allow", - "Principal": { - "AWS": [ - "*" - ] - }, - "Resource": [ - "arn:aws:s3:::${bucket}/*" - ], - "Sid": "" - } - ] - } - `; -} diff --git a/mods/storage/src/utils/constants.ts b/mods/storage/src/utils/constants.ts deleted file mode 100644 index 04303c8e2..000000000 --- a/mods/storage/src/utils/constants.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export const constants = { - HIGH_WATER_MARK: 1 * 1024, - APPS_BUCKET: "apps", - FUNCS_BUCKET: "funcs", - RECORDINGS_BUCKET: "recordings", - PUBLIC_BUCKET: "public" -}; diff --git a/mods/storage/src/utils/files.ts b/mods/storage/src/utils/files.ts deleted file mode 100644 index 6ced2223d..000000000 --- a/mods/storage/src/utils/files.ts +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import fs from "fs"; -import tar from "tar"; -import logger from "@fonoster/logger"; -import { FonosterError } from "@fonoster/errors"; - -export const extract = (source: string, target: string) => - tar.extract({ file: source, cwd: target }); - -export const getFilesizeInBytes = (filename: string) => { - if (!fs.existsSync(filename)) { - throw new FonosterError(`file ${filename} does not exist`); - } - return fs.statSync(filename)["size"]; -}; - -export const isCompressFile = (object: string) => - object.endsWith(".zip") || - object.endsWith(".tar") || - object.endsWith(".tgz") || - object.endsWith(".tar.gz"); - -export const removeDirSync = (pathToFile: string) => { - if (fs.existsSync(pathToFile)) { - const files = fs.readdirSync(pathToFile); - - if (files.length > 0) { - files.forEach(function (filename: string) { - if (fs.statSync(pathToFile + "/" + filename).isDirectory()) { - removeDirSync(pathToFile + "/" + filename); - } else { - fs.unlinkSync(pathToFile + "/" + filename); - } - }); - fs.rmdirSync(pathToFile); - } else { - fs.rmdirSync(pathToFile); - } - } else { - logger.log("warn", "Directory path not found."); - } -}; diff --git a/mods/storage/src/utils/helper.ts b/mods/storage/src/utils/helper.ts deleted file mode 100644 index f43937932..000000000 --- a/mods/storage/src/utils/helper.ts +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { UploadObjectResponse } from "../service/protos/storage_pb"; -import { extract, removeDirSync } from "./files"; -import { uploadToFS } from "./storage"; -import logger from "@fonoster/logger"; - -export const handleCompressUpload = async ( - accessKeyId: string, - object: string, - bucket: string, - fileSize: number -) => { - const response = new UploadObjectResponse(); - const nameWithoutExt = object.split(".")[0]; - response.setSize(fileSize); - logger.verbose(`@fonoster/storage helper [extrating ${object} into /tmp]`); - await extract(`/tmp/${object}`, "/tmp"); - logger.verbose( - `@fonoster/storage helper [uploading ${nameWithoutExt} to bucket ${bucket}]` - ); - await uploadToFS(accessKeyId, bucket, `/tmp/${nameWithoutExt}`); - logger.verbose(`@fonoster/storage helper [removing /tmp/${nameWithoutExt}]`); - removeDirSync(`/tmp/${nameWithoutExt}`); - return response; -}; - -export const handleUncompressUpload = async ( - accessKeyId: string, - object: string, - bucket: string, - fileSize: number -) => { - const response = new UploadObjectResponse(); - response.setSize(fileSize); - await uploadToFS(accessKeyId, bucket, `/tmp/${object}`, object); - return response; -}; diff --git a/mods/storage/src/utils/storage.ts b/mods/storage/src/utils/storage.ts deleted file mode 100644 index a90566436..000000000 --- a/mods/storage/src/utils/storage.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import walk from "walk"; -import path from "path"; -import logger from "@fonoster/logger"; -import policyForBucket from "./bucket_policy"; - -const splitPath = (p: string) => path.dirname(p).split(path.sep); - -export const fsInstance = () => { - const Minio = require("minio"); - return new Minio.Client({ - endPoint: process.env.FS_HOST, - port: parseInt(process.env.FS_PORT), - useSSL: false, - accessKey: process.env.FS_USERNAME, - secretKey: process.env.FS_SECRET - }); -}; - -export const uploadToFS = async ( - accessKeyId: string, - bucket: string, - pathToObject: string, - object?: string, - metadata: object = {} -) => - new Promise((resolve, reject) => { - const dirCount = splitPath(pathToObject).length; - const baseDir = splitPath(pathToObject).slice(0, dirCount).join("/"); - const walker = walk.walk(pathToObject); - - walker.on( - "file", - (root: string, stats: { name: string }, next: () => void) => { - const filePath = root + "/" + stats.name; - const destFilePath = root + "/" + (object || stats.name); - const dest = - `${accessKeyId}/` + destFilePath.substring(baseDir.length + 1); - - logger.verbose( - `@fonoster/storage upload fs [uploading ${stats.name} file to ${bucket}]` - ); - - fsInstance().fPutObject(bucket, dest, filePath, metadata, (e: any) => { - if (e) { - logger.error(`@fonoster/storage upload fs [${e}]`); - reject(e); - } else { - logger.verbose( - `@fonoster/storage upload fs [finished uploading ${stats.name} file]` - ); - next(); - } - }); - } - ); - - walker.on("errors", (root: any) => { - reject(root); - }); - - walker.on("end", () => { - logger.verbose( - `@fonoster/storage upload fs [finished uploading ${pathToObject}]` - ); - resolve(); - }); - }); - -export default async function (bucket: string) { - const fsConn = fsInstance(); - const exists = await fsConn.bucketExists(bucket); - - if (!exists) { - logger.log( - "verbose", - `@fonoster/core fsutils [Creating storage and setting policy bucket: ${bucket}]` - ); - await fsConn.makeBucket(bucket, "us-west-1"); - await fsConn.setBucketPolicy(bucket, policyForBucket(bucket)); - } -} diff --git a/mods/storage/src/utils/utils.ts b/mods/storage/src/utils/utils.ts deleted file mode 100644 index b124dd504..000000000 --- a/mods/storage/src/utils/utils.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { FonosterError, FonosterFailedPrecondition } from "@fonoster/errors"; -import { UploadObjectRequest } from "../service/protos/storage_pb"; - -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import grpc from "@grpc/grpc-js"; -import { constants } from "./constants"; -import { StoragePB } from "../client/storage"; - -export const mapToObj = (map: { - toArray: () => { - (): any; - new (): any; - length: number; - reduce: { (arg0: (e: any[]) => {}): any; new (): any }; - }; -}) => { - if (!map || map.toArray().length === 0) return {}; - return map.toArray().reduce((e: any[]) => { - const r: any = {}; - r[e[0]] = e[1]; - return r; - }); -}; - -export const handleError = ( - err: { code: any; message: string }, - bucket: string -) => { - switch (err.code) { - case "NoSuchBucket": - return new FonosterFailedPrecondition( - `${err.message} -> bucket: ${bucket}` - ); - case "TAR_BAD_ARCHIVE": - return new FonosterError(err.message, grpc.status.DATA_LOSS); - default: - return new FonosterError(err.message, grpc.status.UNKNOWN); - } -}; - -export const getBucketAsString = (bucket: UploadObjectRequest.Bucket) => { - switch (bucket) { - case UploadObjectRequest.Bucket.FUNCS: - return constants.FUNCS_BUCKET; - case UploadObjectRequest.Bucket.APPS: - return constants.APPS_BUCKET; - case UploadObjectRequest.Bucket.RECORDINGS: - return constants.RECORDINGS_BUCKET; - case UploadObjectRequest.Bucket.PUBLIC: - return constants.PUBLIC_BUCKET; - } -}; - -export const getBucketAsPB = (bucket: string): UploadObjectRequest.Bucket => { - switch (bucket) { - case constants.APPS_BUCKET: - return StoragePB.GetObjectURLRequest.Bucket.APPS; - case constants.FUNCS_BUCKET: - return StoragePB.GetObjectURLRequest.Bucket.FUNCS; - case constants.RECORDINGS_BUCKET: - return StoragePB.GetObjectURLRequest.Bucket.RECORDINGS; - case constants.PUBLIC_BUCKET: - return StoragePB.GetObjectURLRequest.Bucket.PUBLIC; - default: - throw new FonosterError(`Bucket ${bucket} is not a valid one`); - } -}; diff --git a/mods/storage/test/storage.unit.test.ts b/mods/storage/test/storage.unit.test.ts deleted file mode 100644 index 030e62b72..000000000 --- a/mods/storage/test/storage.unit.test.ts +++ /dev/null @@ -1,201 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Storage from "../src/client/storage"; -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import fs, { Stats } from "fs"; -import { APIClient } from "@fonoster/common"; -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); -import path from "path"; -import fiber from "fibers"; -import * as utils from "../src/client/utils"; - -describe("@fonoster/storage", () => { - const objectUrlReturn = { - url: "http://api.fonoster.net:9000/recordings/60368b263e9a7d0800000004/test.txt" - }; - const uploadObjectStubReturn = { - sendMessage: () => - Promise.resolve({ - stream: { - write() { - 0; - }, - end() { - 0; - } - } - }) - }; - - const getUrlObjectStubReturn = { - sendMessage: () => - Promise.resolve({ - getUrl: () => objectUrlReturn.url - }) - }; - afterEach(() => sandbox.restore()); - - it("should reject because is a directory", () => { - sandbox.stub(APIClient.prototype, "init").returns(); - sandbox.stub(utils, "isDirectory").returns(true); - sandbox.stub(APIClient.prototype, "getService").returns({ - uploadObject: () => { - return uploadObjectStubReturn; - } - }); - const storage = new Storage(); - - expect( - storage.uploadObject({ - bucket: "apps", - filename: __dirname + "/../etc/hello-monkeys.tgz" - }) - ).rejected; - }); - - it("should upload a file with apps bucket correctly and return an UploadObjectResponse", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const objectSize = 15; - const fileNameReturn = "hello-monkeys.tgz"; - sandbox.stub(utils, "isDirectory").returns(false); - sandbox.stub(path, "basename").returns(fileNameReturn); - sandbox - .stub(fs, "statSync") - .returns({ ...Stats.prototype, size: objectSize }); - sandbox.stub(APIClient.prototype, "getService").returns({ - uploadObject: () => { - return uploadObjectStubReturn; - } - }); - - const storage = new Storage(); - - const result = await storage.uploadObject({ - bucket: "apps", - filename: __dirname + "/../etc/hello-monkeys.tgz" - }); - expect(result).to.have.property("size").to.be.equal(result.size); - }); - - it("should upload a file with recordings bucket correctly and return an UploadObjectResponse", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const objectSize = 15; - const fileNameReturn = "hello-monkeys.tgz"; - sandbox.stub(utils, "isDirectory").returns(false); - sandbox.stub(path, "basename").returns(fileNameReturn); - sandbox - .stub(fs, "statSync") - .returns({ ...Stats.prototype, size: objectSize }); - sandbox.stub(APIClient.prototype, "getService").returns({ - uploadObject: () => { - return uploadObjectStubReturn; - } - }); - - const storage = new Storage(); - - const result = await storage.uploadObject({ - bucket: "recordings", - filename: __dirname + "/../etc/hello-monkeys.tgz" - }); - expect(result).to.have.property("size").to.be.equal(result.size); - }); - - it("should upload a file with public bucket correctly and return an UploadObjectResponse", async () => { - const objectSize = 15; - const fileNameReturn = "hello-monkeys.tgz"; - - sandbox.stub(APIClient.prototype, "init").returns(); - sandbox.stub(utils, "isDirectory").returns(false); - sandbox.stub(path, "basename").returns(fileNameReturn); - sandbox - .stub(fs, "statSync") - .returns({ ...Stats.prototype, size: objectSize }); - sandbox.stub(APIClient.prototype, "getService").returns({ - uploadObject: () => { - return uploadObjectStubReturn; - } - }); - - const storage = new Storage(); - const result = await storage.uploadObject({ - bucket: "public", - filename: __dirname + "/../etc/hello-monkeys.tgz", - metadata: [1, 2, 3] - }); - expect(result).to.have.property("size").to.be.equal(result.size); - }); - - it("should return an URL with apps bucket from the service", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - sandbox.stub(APIClient.prototype, "getService").returns({ - getObjectURL: (a: any, b: any) => { - return getUrlObjectStubReturn; - } - }); - - const storage = new Storage(); - const result = await storage.getObjectURL({ - bucket: "apps", - filename: __dirname + "/../etc/hello-monkeys.tgz" - }); - - expect(result).to.have.property("url").to.be.equal(objectUrlReturn.url); - }); - - it("should return an URL with public bucket from the service", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - sandbox.stub(APIClient.prototype, "getService").returns({ - getObjectURL: () => { - return getUrlObjectStubReturn; - } - }); - - const storage = new Storage(); - const result = await storage.getObjectURL({ - bucket: "public", - filename: __dirname + "/../etc/hello-monkeys.tgz" - }); - - expect(result).to.have.property("url").to.be.equal(objectUrlReturn.url); - }); - - it("should return an URL with recordings bucket from the service", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - sandbox.stub(APIClient.prototype, "getService").returns({ - getObjectURL: () => { - return getUrlObjectStubReturn; - } - }); - - const storage = new Storage(); - const result = await storage.getObjectURL({ - bucket: "recordings", - filename: __dirname + "/../etc/hello-monkeys.tgz" - }); - - expect(result).to.have.property("url").to.be.equal(objectUrlReturn.url); - }); -}); diff --git a/mods/storage/tsconfig.json b/mods/storage/tsconfig.json deleted file mode 100644 index 5c6a5deba..000000000 --- a/mods/storage/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../common" }, - { "path": "../tts" }, - { "path": "../logger" }, - { "path": "../core" }, - { "path": "../errors" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/streams/.intro.md b/mods/streams/.intro.md new file mode 100644 index 000000000..d0ec0857f --- /dev/null +++ b/mods/streams/.intro.md @@ -0,0 +1,79 @@ +streams +================= + +[![Streams](https://img.shields.io/badge/streams-api-brightgreen.svg)](https://fonoster.com) +[![Version](https://img.shields.io/npm/v/@fonoster/streams.svg)](https://npmjs.org/package/@fonoster/streams) +[![Downloads/week](https://img.shields.io/npm/dw/@fonoster/streams.svg)](https://npmjs.org/package/@fonoster/streams) +[![License](https://img.shields.io/npm/l/@fonoster/streams.svg)](https://github.com/fonoster/fonoster/blob/main/package.json) + +This is a NodeJS implementation of the AudioSocket protocol, which is a simple protocol for accessing bidirectional audio streams from Asterisk. + +* [Installation](#installation) +* [Example](#example) +* [APIs](#apis) + +## Installation + +```sh-session +$ npm install --save @fonoster/streams +``` + +## Example + +While the AudioSocket is a utility for Fonoster Streams, it can be used as a standalone module. To use this library with Asterisk, you must configure your dialplan to use the `AudioSocket` application. Here is an example of how to use the AudioSocket with Asterisk: + +``` +exten = 100,1,Verbose("Call to AudioSocket via Dialplan Application") + same = n,Answer() + same = n,AudioSocket(40325ec2-5efd-4bd3-805f-53576e581d13,server.example.com:9092) + same = n,Hangup() +``` + +Or with the `Dial` application: + +``` +exten = 100,1,Verbose("Call to AudioSocket via Dialplan Application") + same = n,Answer() + same = n,Dial(SIP/100,30,A(AudioSocket(40325ec2-5efd-4bd3-805f-53576e581d13,server.example.com:9092))) + same = n,Hangup() +``` + +Connecting to the AudioSocket server using ARI with the `externalMedia` endpoint is also possible. You must ensure you set the transport to `TCP` the UUID in the data field. + +> Currently, the payload towards Asterisk is limited to signed linear, 16-bit, 8kHz, mono PCM (little-endian). However, the payload from Asterisk can be changed with the `format` parameter when using ARI. Please see the [AudioSocket Server](https://github.com/silentindark/audiosocket_server) implementation, for interesting notes about AudioSocket. + +Once Asterisk is configured, you can use the `AudioSocket` class to create a server that listens for connections. Here is an example of how to use the `AudioSocket` class: + +```js +const { AudioSocket } = require("@fonoster/streams"); + +const audioSocket = new AudioSocket(); + +audioSocket.onConnection(async (req, res) => { + console.log("new connection from:", req.ref); + + res.on("data", (data) => { + // Do something with the audio data + ); + + res.on("end", () => { + // Do something when the stream ends + }); + + res.on("error", (err) => { + // Do something when an error occurs + }); + + // Utility for playing audio files + await res.play("/path/to/audio/file"); +}); + +audioSocket.listen(9092, () => { + console.log("server listening on port 9092"); +}); +``` + +## APIs + +* [`AudioSocket`](#AudioSocket) +* [`AudioStream`](#AudioStream) diff --git a/mods/domains/.lerna-changed-buster-192 b/mods/streams/.lerna-changed-buster-5577 similarity index 100% rename from mods/domains/.lerna-changed-buster-192 rename to mods/streams/.lerna-changed-buster-5577 diff --git a/mods/streams/README.md b/mods/streams/README.md new file mode 100644 index 000000000..d6719d736 --- /dev/null +++ b/mods/streams/README.md @@ -0,0 +1,251 @@ +streams +================= + +[![Streams](https://img.shields.io/badge/streams-api-brightgreen.svg)](https://fonoster.com) +[![Version](https://img.shields.io/npm/v/@fonoster/streams.svg)](https://npmjs.org/package/@fonoster/streams) +[![Downloads/week](https://img.shields.io/npm/dw/@fonoster/streams.svg)](https://npmjs.org/package/@fonoster/streams) +[![License](https://img.shields.io/npm/l/@fonoster/streams.svg)](https://github.com/fonoster/fonoster/blob/main/package.json) + +This is a NodeJS implementation of the AudioSocket protocol, which is a simple protocol for accessing bidirectional audio streams from Asterisk. + +* [Installation](#installation) +* [Example](#example) +* [APIs](#apis) + +## Installation + +```sh-session +$ npm install --save @fonoster/streams +``` + +## Example + +While the AudioSocket is a utility for Fonoster Streams, it can be used as a standalone module. To use this library with Asterisk, you must configure your dialplan to use the `AudioSocket` application. Here is an example of how to use the AudioSocket with Asterisk: + +``` +exten = 100,1,Verbose("Call to AudioSocket via Dialplan Application") + same = n,Answer() + same = n,AudioSocket(40325ec2-5efd-4bd3-805f-53576e581d13,server.example.com:9092) + same = n,Hangup() +``` + +Or with the `Dial` application: + +``` +exten = 100,1,Verbose("Call to AudioSocket via Dialplan Application") + same = n,Answer() + same = n,Dial(SIP/100,30,A(AudioSocket(40325ec2-5efd-4bd3-805f-53576e581d13,server.example.com:9092))) + same = n,Hangup() +``` + +Connecting to the AudioSocket server using ARI with the `externalMedia` endpoint is also possible. You must ensure you set the transport to `TCP` the UUID in the data field. + +> Currently, the payload towards Asterisk is limited to signed linear, 16-bit, 8kHz, mono PCM (little-endian). However, the payload from Asterisk can be changed with the `format` parameter when using ARI. Please see the [AudioSocket Server](https://github.com/silentindark/audiosocket_server) implementation, for interesting notes about AudioSocket. + +Once Asterisk is configured, you can use the `AudioSocket` class to create a server that listens for connections. Here is an example of how to use the `AudioSocket` class: + +```js +const { AudioSocket } = require("@fonoster/streams"); + +const audioSocket = new AudioSocket(); + +audioSocket.onConnection(async (req, res) => { + console.log("new connection from:", req.ref); + + res.on("data", (data) => { + // Do something with the audio data + ); + + res.on("end", () => { + // Do something when the stream ends + }); + + res.on("error", (err) => { + // Do something when an error occurs + }); + + // Utility for playing audio files + await res.play("/path/to/audio/file"); +}); + +audioSocket.listen(9092, () => { + console.log("server listening on port 9092"); +}); +``` + +## APIs + +* [`AudioSocket`](#AudioSocket) +* [`AudioStream`](#AudioStream) + + + + +## AudioSocket +A NodeJS implementation of the AudioSocket protocol. The AudioSocket protocol is +a simple protocol for streaming audio from Asterisk to a NodeJS application. The protocol is +based on the I/O multiplexing model and uses + +**Kind**: global class +**See**: AudioStream + +* [AudioSocket](#AudioSocket) + * [new AudioSocket()](#new_AudioSocket_new) + * [.onConnection(handler)](#AudioSocket+onConnection) + * [.close()](#AudioSocket+close) + + + +### new AudioSocket() +Constructs a new AudioSocket instance. + +**Example** +```js +const { AudioSocket } = require("@fonoster/streams"); + +const audioSocket = new AudioSocket(); + +audioSocket.onConnection(async (req, res) => { + console.log("new connection from:", req.ref); + + res.on("data", (data) => { + // Do something with the audio data + ); + + res.on("end", () => { + // Do something when the stream ends + }); + + res.on("error", (err) => { + // Do something when an error occurs + }); + + // Utility for playing audio files + await res.play("/path/to/audio/file"); +}); + +audioSocket.listen(9092, () => { + console.log("server listening on port 9092"); +}); +``` + + +### audioSocket.onConnection(handler) +Sets the handler to be called when a new connection is established. + +**Kind**: instance method of [AudioSocket](#AudioSocket) + +| Param | Type | Description | +| --- | --- | --- | +| handler | function | The handler to call when a new connection is established | + +**Example** +```js +audioSocket.onConnection(async (req, res) => { + console.log("new connection from:", req.ref); + + await res.play("/path/to/audio/file"); +}); +``` + + +### audioSocket.close() +Closes the server and stops listening for connections. + +**Kind**: instance method of [AudioSocket](#AudioSocket) + + + +## AudioStream +Object representing a stream of bidirectional audio data and control messages. + +**Kind**: global class + +* [AudioStream](#AudioStream) + * [new AudioStream(stream, socket)](#new_AudioStream_new) + * [.write(data)](#AudioStream+write) + * [.hangup()](#AudioStream+hangup) + * [.play(filePath)](#AudioStream+play) ⇒ Promise.<void> + * [.onData(callback)](#AudioStream+onData) ⇒ [AudioStream](#AudioStream) + * [.onClose(callback)](#AudioStream+onClose) ⇒ [AudioStream](#AudioStream) + * [.onError(callback)](#AudioStream+onError) ⇒ [AudioStream](#AudioStream) + + + +### new AudioStream(stream, socket) +Creates a new AudioStream. + + +| Param | Type | Description | +| --- | --- | --- | +| stream | Readable | A readable stream | +| socket | net.Socket | A TCP socket | + + + +### audioStream.write(data) +Writes media data to the stream. + +**Kind**: instance method of [AudioStream](#AudioStream) + +| Param | Type | Description | +| --- | --- | --- | +| data | Buffer | The data to write | + + + +### audioStream.hangup() +Sends a hangup message to the stream and closes the connection. + +**Kind**: instance method of [AudioStream](#AudioStream) + + +### audioStream.play(filePath) ⇒ Promise.<void> +Utility for playing audio files. + +**Kind**: instance method of [AudioStream](#AudioStream) + +| Param | Type | Description | +| --- | --- | --- | +| filePath | string | The path to the audio file | + + + +### audioStream.onData(callback) ⇒ [AudioStream](#AudioStream) +Adds a listener for the data event. + +**Kind**: instance method of [AudioStream](#AudioStream) +**Returns**: [AudioStream](#AudioStream) - The AudioStream instance +**See**: EventType.DATA + +| Param | Type | Description | +| --- | --- | --- | +| callback | function | The callback to be executed | + + + +### audioStream.onClose(callback) ⇒ [AudioStream](#AudioStream) +Adds a listener for the end event. + +**Kind**: instance method of [AudioStream](#AudioStream) +**Returns**: [AudioStream](#AudioStream) - The AudioStream instance +**See**: EventType.END + +| Param | Type | Description | +| --- | --- | --- | +| callback | function | The callback to be executed | + + + +### audioStream.onError(callback) ⇒ [AudioStream](#AudioStream) +Adds a listener for the error event. + +**Kind**: instance method of [AudioStream](#AudioStream) +**Returns**: [AudioStream](#AudioStream) - The AudioStream instance +**See**: EventType.ERROR + +| Param | Type | Description | +| --- | --- | --- | +| callback | function | The callback to be executed | + + diff --git a/mods/streams/package.json b/mods/streams/package.json new file mode 100644 index 000000000..4c8a49b6c --- /dev/null +++ b/mods/streams/package.json @@ -0,0 +1,41 @@ +{ + "name": "@fonoster/streams", + "version": "0.9.0", + "description": "Core support for Fonoster Streams", + "author": "Pedro Sanders ", + "homepage": "https://github.com/fonoster/fonoster#readme", + "license": "MIT", + "main": "dist/index", + "types": "dist/index", + "directories": { + "src": "src", + "test": "test" + }, + "scripts": { + "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", + "build": "tsc -b tsconfig.json", + "clean": "rimraf ./dist node_modules tsconfig.tsbuildinfo", + "generate:readme": "node ../../.scripts/gen-readme.js" + }, + "dependencies": { + "@fonoster/logger": "^0.9.0", + "uuid": "^11.0.3" + }, + "devDependencies": { + "@types/uuid": "^10.0.0" + }, + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/fonoster/fonoster.git" + }, + "bugs": { + "url": "https://github.com/fonoster/fonoster/issues" + }, + "gitHead": "3509817cc2cf3ef6684437e33ffd694d1174510b" +} diff --git a/mods/streams/src/AudioSocket.ts b/mods/streams/src/AudioSocket.ts new file mode 100644 index 000000000..4ecb2f13d --- /dev/null +++ b/mods/streams/src/AudioSocket.ts @@ -0,0 +1,197 @@ +/* eslint-disable no-dupe-class-members */ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import net from "net"; +import { Readable } from "stream"; +import { getLogger } from "@fonoster/logger"; +import { AudioSocketError } from "./AudioSocketError"; +import { AudioStream } from "./AudioStream"; +import { nextMessage } from "./nextMessage"; +import { EventType, MessageType, StreamRequest } from "./types"; + +const logger = getLogger({ service: "streams", filePath: __filename }); + +/** + * @classdesc A NodeJS implementation of the AudioSocket protocol. The AudioSocket protocol is + * a simple protocol for streaming audio from Asterisk to a NodeJS application. The protocol is + * based on the I/O multiplexing model and uses + * + * @example + * + * const { AudioSocket } = require("@fonoster/streams"); + * + * const audioSocket = new AudioSocket(); + * + * audioSocket.onConnection(async (req, res) => { + * console.log("new connection from:", req.ref); + * + * res.on("data", (data) => { + * // Do something with the audio data + * ); + * + * res.on("end", () => { + * // Do something when the stream ends + * }); + * + * res.on("error", (err) => { + * // Do something when an error occurs + * }); + * + * // Utility for playing audio files + * await res.play("/path/to/audio/file"); + * }); + * + * audioSocket.listen(9092, () => { + * console.log("server listening on port 9092"); + * }); + */ +class AudioSocket { + private server: net.Server; + private audioStream: AudioStream; + private connectionHandler: + | ((req: StreamRequest, stream: AudioStream) => void) + | null = null; + + /** + * Constructs a new AudioSocket instance. + * + * @see AudioStream + */ + constructor() { + this.server = net.createServer(this.handleConnection.bind(this)); + } + + private handleConnection(socket: net.Socket) { + logger.verbose("client connected"); + + const asStream = new Readable({ read() {} }); + const audioStream = new AudioStream(asStream, socket); + + this.audioStream = audioStream; + + socket.on(EventType.DATA, (data) => + this.handleData(data, asStream, audioStream) + ); + socket.on(EventType.END, () => asStream.emit(EventType.END)); + socket.on(EventType.ERROR, (err) => { + if ("code" in err && err.code === "ERR_STREAM_WRITE_AFTER_END") { + return; + } + logger.error("socket error:", err); + asStream.emit(EventType.ERROR, err); + }); + } + + private async handleData( + data: Buffer, + asStream: Readable, + audioStream: AudioStream + ) { + const stream = new Readable({ read() {} }); + stream.push(data); + stream.push(null); // End of the stream + + try { + const message = await nextMessage(stream); + + switch (message.getKind()) { + case MessageType.ID: + if (this.connectionHandler) { + this.connectionHandler({ ref: message.getId() }, audioStream); + } else { + logger.warn("no connection handler set"); + } + break; + case MessageType.SLIN: + case MessageType.SILENCE: + asStream.emit(EventType.DATA, message.getPayload()); + break; + case MessageType.HANGUP: + asStream.emit(EventType.END); + break; + case MessageType.ERROR: + asStream.emit( + EventType.ERROR, + new AudioSocketError(message.getErrorCode()) + ); + break; + default: + logger.warn("unknown message type"); + break; + } + } catch (err) { + logger.error("error processing message:", err); + } + } + + /** + * Starts the server listening for connections on the specified port. + * + * @param {number} port - The port to listen on + * @param {() => void} callback - The callback to invoke when the server is listening + */ + listen(port: number, callback?: () => void): void; + + /** + * Starts the server listening for connections on the specified port and bind address. + * + * @param {number} port - The port to listen on + * @param {string} bind - The address to bind to + * @param {() => void} callback - The callback to invoke when the server is listening + */ + listen(port: number, bind: string, callback?: () => void): void; + + listen( + port: number, + bindOrCallback?: string | (() => void), + callback?: () => void + ) { + const bind = + typeof bindOrCallback === "string" ? bindOrCallback : "0.0.0.0"; + const cb = typeof bindOrCallback === "function" ? bindOrCallback : callback; + + this.server.listen(port, bind, cb); + } + + /** + * Sets the handler to be called when a new connection is established. + * + * @param {function(StreamRequest, AudioStream): void} handler - The handler to call when a new connection is established + * @example + * + * audioSocket.onConnection(async (req, res) => { + * console.log("new connection from:", req.ref); + * + * await res.play("/path/to/audio/file"); + * }); + */ + onConnection(handler: (req: StreamRequest, stream: AudioStream) => void) { + this.connectionHandler = handler; + } + + /** + * Closes the server and stops listening for connections. + */ + close() { + this.audioStream?.hangup(); + this.server.close(); + } +} + +export { AudioSocket }; diff --git a/mods/streams/src/AudioSocketError.ts b/mods/streams/src/AudioSocketError.ts new file mode 100644 index 000000000..fdbe3f0ca --- /dev/null +++ b/mods/streams/src/AudioSocketError.ts @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ErrorCode } from "./types"; + +class AudioSocketError extends Error { + constructor(public errorCode: ErrorCode) { + super(AudioSocketError.getMessageFromCode(errorCode)); + this.name = "AudioSocketError"; + } + + static getMessageFromCode(errorCode: ErrorCode): string { + switch (errorCode) { + case ErrorCode.NONE: + return "No error"; + case ErrorCode.AST_HANGUP: + return "Asterisk hangup"; + case ErrorCode.AST_FRAME_FORWARDING: + return "Asterisk frame forwarding"; + case ErrorCode.AST_MEMORY: + return "Asterisk memory"; + default: + return "Unknown error"; + } + } +} + +export { AudioSocketError }; diff --git a/mods/streams/src/AudioStream.ts b/mods/streams/src/AudioStream.ts new file mode 100644 index 000000000..d45d6f9f5 --- /dev/null +++ b/mods/streams/src/AudioStream.ts @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as fs from "fs"; +import * as net from "net"; +import { setTimeout } from "node:timers/promises"; +import { Readable } from "stream"; +import { Message } from "./Message"; +import { EventType } from "./types"; + +const MAX_CHUNK_SIZE = 320; + +/** + * @classdesc Object representing a stream of bidirectional audio data and control messages. + */ +class AudioStream { + private stream: Readable; + private socket: net.Socket; + + /** + * Creates a new AudioStream. + * + * @param {Readable} stream - A readable stream + * @param {net.Socket} socket - A TCP socket + */ + constructor(stream: Readable, socket: net.Socket) { + this.stream = stream; + this.socket = socket; + } + + /** + * Writes media data to the stream. + * + * @param {Buffer} data - The data to write + */ + write(data: Buffer) { + const buffer = Message.createSlinMessage(data); + this.socket.write(buffer); + } + + /** + * Sends a hangup message to the stream and closes the connection. + */ + hangup() { + const buffer = Message.createHangupMessage(); + this.socket.write(buffer); + this.socket.end(); + this.stream.emit(EventType.END); + } + + /** + * Utility for playing audio files. + * + * @param {string} filePath - The path to the audio file + * @return {Promise} + */ + async play(filePath: string) { + const fileStream = fs.readFileSync(filePath); + + let offset = 0; + + // eslint-disable-next-line no-loops/no-loops + while (offset < fileStream.length) { + const sliceSize = Math.min(fileStream.length - offset, MAX_CHUNK_SIZE); + const slicedChunk = fileStream.subarray(offset, offset + sliceSize); + const buffer = Message.createSlinMessage(slicedChunk); + this.socket.write(buffer); + offset += sliceSize; + + // Wait for 20ms to match the sample rate + await setTimeout(20); + } + } + + /** + * Adds a listener for the data event. + * + * @param {function(Buffer): void} callback - The callback to be executed + * @return {AudioStream} The AudioStream instance + * @see EventType.DATA + */ + onData(callback: (data: Buffer) => void): this { + this.stream.on(EventType.DATA, callback); + return this; + } + + /** + * Adds a listener for the end event. + * + * @param {function(): void} callback - The callback to be executed + * @return {AudioStream} The AudioStream instance + * @see EventType.END + */ + onClose(callback: () => void): this { + this.stream.on(EventType.END, callback); + return this; + } + + /** + * Adds a listener for the error event. + * + * @param {function(Error): void} callback - The callback to be executed + * @return {AudioStream} The AudioStream instance + * @see EventType.ERROR + */ + onError(callback: (err: Error) => void): this { + this.stream.on(EventType.ERROR, callback); + return this; + } +} + +export { AudioStream }; diff --git a/mods/streams/src/Message.ts b/mods/streams/src/Message.ts new file mode 100644 index 000000000..e8bf56a0d --- /dev/null +++ b/mods/streams/src/Message.ts @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { parse as uuidParse, stringify as uuidStringify } from "uuid"; +import { + ErrorCode, + MAXIMUM_MESSAGE_LENGTH, + MINIMUM_MESSAGE_LENGTH, + MessageType +} from "./types"; + +class Message { + private data: Buffer; + + constructor(data: Buffer) { + this.data = data; + } + + getContentLength(): number { + return this.data.length >= MINIMUM_MESSAGE_LENGTH + ? this.data.readUInt16BE(1) + : 0; + } + + getKind(): MessageType { + return this.data.length > 0 ? this.data[0] : MessageType.ERROR; + } + + getErrorCode(): ErrorCode { + if (this.getKind() !== MessageType.ERROR) return ErrorCode.NONE; + return this.data.length >= 4 + ? this.data[MINIMUM_MESSAGE_LENGTH] + : ErrorCode.UNKNOWN; + } + + getPayload(): Buffer | null { + const size = this.getContentLength(); + return size > 0 ? this.data.subarray(MINIMUM_MESSAGE_LENGTH) : null; + } + + getId(): string { + if (this.getKind() !== MessageType.ID) { + throw new Error(`Wrong message type ${this.getKind()}`); + } + return uuidStringify(this.getPayload()); + } + + private static createMessage(type: MessageType, data: Buffer): Buffer { + if (data.length > MAXIMUM_MESSAGE_LENGTH) { + throw new Error("Message too large"); + } + const out = Buffer.alloc(MINIMUM_MESSAGE_LENGTH + data.length); + out[0] = type; + out.writeUInt16BE(data.length, 1); + data.copy(out, MINIMUM_MESSAGE_LENGTH); + return out; + } + + static createHangupMessage(): Buffer { + return Buffer.from([MessageType.HANGUP, 0x00, 0x00]); + } + + static createIDMessage(id: string): Buffer { + const idBuffer = Buffer.from(uuidParse(id)); + return this.createMessage(MessageType.ID, idBuffer); + } + + static createSlinMessage(data: Buffer): Buffer { + return this.createMessage(MessageType.SLIN, data); + } +} + +export { Message }; diff --git a/mods/streams/src/example.ts b/mods/streams/src/example.ts new file mode 100644 index 000000000..7b0a0957e --- /dev/null +++ b/mods/streams/src/example.ts @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import { AudioSocket, AudioStream, StreamRequest } from "."; + +const logger = getLogger({ service: "streams", filePath: __filename }); + +const PORT = 9092; + +const audioSocket = new AudioSocket(); + +async function connectionHandler(req: StreamRequest, stream: AudioStream) { + const { ref } = req; + logger.verbose("new connection", { ref }); + + // Do something with the data (e.g. save it to a file, or send it to a transcription service) + // stream.onData((_data) => { /* save on a file or send to a transcription service */ }); + + stream.onClose(() => { + logger.verbose("stream closed"); + }); + + stream.onError((err) => { + logger.error("stream error", err); + }); + + const filePath = process.cwd() + "/etc/sounds/test.sln"; + + logger.verbose("playing sound", { filePath }); + + await stream.play(filePath); + + // Hangup the stream after 10 seconds + setTimeout(async () => { + logger.verbose("hanging up the stream", { ref }); + stream.hangup(); + }, 10000); +} + +audioSocket.listen(PORT, () => { + logger.info(`audiosocket listening on port ${PORT}`); +}); + +audioSocket.onConnection(connectionHandler); diff --git a/mods/streams/src/index.ts b/mods/streams/src/index.ts new file mode 100644 index 000000000..ecff78691 --- /dev/null +++ b/mods/streams/src/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./AudioSocket"; +export * from "./AudioStream"; +export * from "./types"; diff --git a/mods/streams/src/nextMessage.ts b/mods/streams/src/nextMessage.ts new file mode 100644 index 000000000..ee1150323 --- /dev/null +++ b/mods/streams/src/nextMessage.ts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Readable } from "stream"; +import { Message } from "./Message"; +import { MINIMUM_MESSAGE_LENGTH } from "./types"; + +async function nextMessage(stream: Readable): Promise { + const hdr = Buffer.alloc(MINIMUM_MESSAGE_LENGTH); + const bytesRead = (await stream.read(MINIMUM_MESSAGE_LENGTH)) as Buffer; + + if (bytesRead.length !== MINIMUM_MESSAGE_LENGTH) { + throw new Error( + `Read wrong number of bytes (${bytesRead.length}) for header` + ); + } + + hdr.set(bytesRead); + + const payloadLen = hdr.readUInt16BE(1); + + if (payloadLen < 1) return new Message(hdr); + + const payload = Buffer.alloc(payloadLen); + const payloadRead = (await stream.read(payloadLen)) as Buffer; + + if (payloadRead.length !== payloadLen) { + throw new Error( + `Read wrong number of bytes (${payloadRead.length}) for payload` + ); + } + + payload.set(payloadRead); + + return new Message(Buffer.concat([hdr, payload])); +} + +export { nextMessage }; diff --git a/mods/streams/src/types.ts b/mods/streams/src/types.ts new file mode 100644 index 000000000..c8bc16944 --- /dev/null +++ b/mods/streams/src/types.ts @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const MINIMUM_MESSAGE_LENGTH = 3; +const MAXIMUM_MESSAGE_LENGTH = 65535; + +enum MessageType { + HANGUP = 0x00, + ID = 0x01, + SILENCE = 0x02, + SLIN = 0x10, + ERROR = 0xff +} + +enum ErrorCode { + NONE = 0x00, + AST_HANGUP = 0x01, + AST_FRAME_FORWARDING = 0x02, + AST_MEMORY = 0x04, + UNKNOWN = 0xff +} + +enum EventType { + DATA = "data", + END = "end", + ERROR = "error" +} + +type StreamRequest = { + ref: string; +}; + +export { + ErrorCode, + EventType, + MAXIMUM_MESSAGE_LENGTH, + MINIMUM_MESSAGE_LENGTH, + MessageType, + StreamRequest +}; diff --git a/mods/streams/test/AudioSocket.test.ts b/mods/streams/test/AudioSocket.test.ts new file mode 100644 index 000000000..56ba94b33 --- /dev/null +++ b/mods/streams/test/AudioSocket.test.ts @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { AudioSocket } from "../src"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@streams/AudioSocket", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a new instance", function () { + // Arrange + const audioSocket = new AudioSocket(); + + // Assert + expect(audioSocket).to.be.instanceOf(AudioSocket); + }); + + it("should listen on a port", function () { + // Arrange + const audioSocket = new AudioSocket(); + + const listenStub = sandbox.stub(audioSocket, "listen"); + + // Act + audioSocket.listen(8080); + + // Assert + expect(listenStub).to.have.been.calledOnce; + expect(listenStub).to.have.been.calledWith(8080); + }); + + it("should listen on a port and bind", function () { + // Arrange + const audioSocket = new AudioSocket(); + + const listenStub = sandbox.stub(audioSocket, "listen"); + + // Act + audioSocket.listen(8080, "127.0.0.1"); + + // Assert + expect(listenStub).to.have.been.calledOnce; + expect(listenStub).to.have.been.calledWith(8080, "127.0.0.1"); + }); + + it("should listen on a port and bind with a callback", function () { + // Arrange + const audioSocket = new AudioSocket(); + + const listenStub = sandbox.stub(audioSocket, "listen"); + + // Act + audioSocket.listen(8080, "127.0.0.1", () => {}); + + // Assert + expect(listenStub).to.have.been.calledOnce; + expect(listenStub).to.have.been.calledWith(8080, "127.0.0.1", match.func); + }); +}); diff --git a/mods/streams/test/AudioStream.test.ts b/mods/streams/test/AudioStream.test.ts new file mode 100644 index 000000000..a5e749508 --- /dev/null +++ b/mods/streams/test/AudioStream.test.ts @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fs from "fs"; +import net from "net"; +import { Readable } from "stream"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { AudioStream, MessageType } from "../src"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@streams/AudioStream", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a new instance", function () { + // Arrange + const stream = new Readable(); + const socket = new net.Socket(); + const audioStream = new AudioStream(stream, socket); + + // Assert + expect(audioStream).to.be.instanceOf(AudioStream); + }); + + it("should write data to the socket", function () { + // Arrange + const stream = new Readable(); + const socket = new net.Socket(); + const audioStream = new AudioStream(stream, socket); + + const writeStub = sandbox.stub(socket, "write"); + + // Act + audioStream.write(Buffer.from("test")); + + // Assert + expect(writeStub).to.have.been.calledOnce; + expect(writeStub).to.have.been.calledWith( + Buffer.from([MessageType.SLIN, 0x00, 0x04, 0x74, 0x65, 0x73, 0x74]) + ); + }); + + it("should hangup the call", function () { + // Arrange + const stream = new Readable(); + const socket = new net.Socket(); + const audioStream = new AudioStream(stream, socket); + + const writeStub = sandbox.stub(socket, "write"); + const endStub = sandbox.stub(socket, "end"); + const emitStub = sandbox.stub(stream, "emit"); + + // Act + audioStream.hangup(); + + // Assert + expect(writeStub).to.have.been.calledOnce; + expect(endStub).to.have.been.calledOnce; + expect(emitStub).to.have.been.calledOnce; + expect(emitStub).to.have.been.calledWith("end"); + expect(emitStub).to.have.been.calledAfter(endStub); + expect(emitStub).to.have.been.calledAfter(writeStub); + expect(writeStub).to.have.been.calledWith( + Buffer.from([MessageType.HANGUP, 0x00, 0x00]) + ); + }); + + it("should play a file", async function () { + // Arrange + const stream = new Readable(); + const socket = new net.Socket(); + const audioStream = new AudioStream(stream, socket); + + const readFileSyncStub = sandbox + .stub(fs, "readFileSync") + .returns(Buffer.from("test")); + const writeStub = sandbox.stub(socket, "write"); + + // Act + await audioStream.play("test"); + + // Assert + expect(readFileSyncStub).to.have.been.calledOnce; + expect(writeStub).to.have.been.calledOnce; + expect(writeStub).to.have.been.calledWith( + Buffer.from([MessageType.SLIN, 0x00, 0x04, 0x74, 0x65, 0x73, 0x74]) + ); + }); + + it("should add a listener to the stream", function () { + // Arrange + const stream = new Readable(); + const socket = new net.Socket(); + const audioStream = new AudioStream(stream, socket); + + const onStub = sandbox.stub(stream, "on"); + + // Act + audioStream.onData(() => {}); + + // Assert + expect(onStub).to.have.been.calledOnce; + expect(onStub).to.have.been.calledWith("data"); + }); +}); diff --git a/mods/streams/test/Message.test.ts b/mods/streams/test/Message.test.ts new file mode 100644 index 000000000..8872bf103 --- /dev/null +++ b/mods/streams/test/Message.test.ts @@ -0,0 +1,158 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { SinonSandbox, createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { ErrorCode, MessageType } from "../src"; +import { Message } from "../src/Message"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); + +describe("@streams/Message", function () { + let sandbox: SinonSandbox; + let message: Message; + + beforeEach(function () { + sandbox = createSandbox(); + message = new Message( + Buffer.from([MessageType.ID, 0x00, 0x02, 0x03, 0x04]) + ); + }); + + afterEach(function () { + sandbox.restore(); + }); + + it("should create a new instance", function () { + // Assert + expect(message).to.be.instanceOf(Message); + }); + + it("should return the content length", function () { + // Assert + expect(message.getContentLength()).to.be.equal(2); + }); + + it("should return the message kind", function () { + // Assert + expect(message.getKind()).to.be.equal(MessageType.ID); + }); + + it("should return an error code type NONE", function () { + // Assert + expect(message.getErrorCode()).to.be.equal(ErrorCode.NONE); + }); + + it("should return the payload", function () { + // Assert + expect(message.getPayload()).to.be.eql(Buffer.from([0x03, 0x04])); + }); + + it("should return the uuid of the stream", function () { + // Arrange + const idMessage = new Message( + Buffer.from([ + MessageType.ID, + 0x00, + 0x10, + 0x36, + 0xc3, + 0xa7, + 0x75, + 0x04, + 0x14, + 0x4a, + 0xf2, + 0x98, + 0xae, + 0x2e, + 0x7c, + 0xdb, + 0x65, + 0xcf, + 0x65 + ]) + ); + + // Assert + expect(idMessage.getId()).to.be.equal( + "36c3a775-0414-4af2-98ae-2e7cdb65cf65" + ); + }); + + it("should throw an error when the message type is wrong", function () { + // Arrange + const idMessage = new Message( + Buffer.from([0x03, 0x00, 0x10, 0x01, 0x02, 0x03, 0x04]) + ); + + // Assert + expect(() => idMessage.getId()).to.throw("Wrong message type 3"); + }); + + it("should create a hangup message", function () { + // Assert + expect(Message.createHangupMessage()).to.be.eql( + Buffer.from([MessageType.HANGUP, 0x00, 0x00]) + ); + }); + + it("should create an id message", function () { + // Arrange + const id = "36c3a775-0414-4af2-98ae-2e7cdb65cf65"; + + // Assert + expect(Message.createIDMessage(id)).to.be.eql( + Buffer.from([ + MessageType.ID, + 0x00, + 0x10, + 0x36, + 0xc3, + 0xa7, + 0x75, + 0x04, + 0x14, + 0x4a, + 0xf2, + 0x98, + 0xae, + 0x2e, + 0x7c, + 0xdb, + 0x65, + 0xcf, + 0x65 + ]) + ); + }); + + it("should create a slin message", function () { + // Arrange + const data = Buffer.from([0x01, 0x02, 0x03, 0x04]); + + // Assert + expect(Message.createSlinMessage(data)).to.be.eql( + Buffer.from([MessageType.SLIN, 0x00, 0x04, 0x01, 0x02, 0x03, 0x04]) + ); + }); +}); diff --git a/mods/streams/tsconfig.json b/mods/streams/tsconfig.json new file mode 100644 index 000000000..9904d0f8f --- /dev/null +++ b/mods/streams/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "references": [ + { + "path": "../logger", + } + ], + "exclude": ["node_modules", "dist", "test"] +} diff --git a/mods/tts/.lerna-changed-buster-192 b/mods/tts/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/tts/.npmignore b/mods/tts/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/tts/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/tts/etc/test.wav b/mods/tts/etc/test.wav deleted file mode 100644 index fe6f86348..000000000 Binary files a/mods/tts/etc/test.wav and /dev/null differ diff --git a/mods/tts/package-lock.json b/mods/tts/package-lock.json deleted file mode 100644 index 78113af22..000000000 --- a/mods/tts/package-lock.json +++ /dev/null @@ -1,2926 +0,0 @@ -{ - "name": "@fonoster/tts", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/tts", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@fonoster/common": "^0.3.22", - "flat": "^5.0.2", - "sox-audio": "^0.3.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/@fonoster/certs": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/certs/-/certs-0.3.18.tgz", - "integrity": "sha512-echVIIX6le3yBVs0b8XtVFYJtMzMI/1fGm0CVqdrUw/mp9stsKyDV79Fc9KLKAtVs9+H2bwyAgTgo3HuLwLCvA==", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "node_modules/@fonoster/common": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/common/-/common-0.3.18.tgz", - "integrity": "sha512-C7XgeGOZmnKf48zimp/kCcTSb0+Q0m8JUNh1D+ZImdl2keDN2mh+ibJqydjjwjOpB6TNTUJCVa6CEkjRNnGECw==", - "dependencies": { - "@fonoster/certs": "^0.3.18", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "node_modules/@fonoster/grpc-health-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@fonoster/grpc-health-check/-/grpc-health-check-3.1.1.tgz", - "integrity": "sha512-JjXI4i2g2FF7QgHcAgy18RISbeRnqQ+U9QdPeYmE5TijaK7JaFwV/mOK7WgIIxQNqNsR/ozoap5Q46T0qpukeQ==", - "dependencies": { - "google-protobuf": "^3.21.0", - "grpc-boom": "^3.0.11" - }, - "peerDependencies": { - "@fonoster/logger": "^0.3.16-alpha.2", - "@grpc/grpc-js": "^1.6.10", - "@grpc/proto-loader": "^0.7.2" - } - }, - "node_modules/@fonoster/logger": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/logger/-/logger-0.3.18.tgz", - "integrity": "sha512-/RpGAsteYmvbe6o9GKsoZAgl9HzqSvNqTJDj52wo3WzyzLF7rZNxnoL5JAdfP7GV+Z0qvLBM/NW6Hqsc04b2Hw==", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/api-metrics": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.27.0.tgz", - "integrity": "sha512-tB79288bwjkdhPNpw4UdOEy3bacVwtol6Que7cAu8KEJ9ULjRfSiwpYEwJY/oER3xZ7zNFz0uiJ7N1jSiotpVA==", - "deprecated": "Please use @opentelemetry/api >= 1.3.0", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", - "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==", - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/exporter-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.8.0.tgz", - "integrity": "sha512-3h16Sb1T/G33S+RM3yjt1t2xRuu/mi9iB172faS6qFQEclTTJru1pTK4wuWG+9GyI7uyBLfbQoXVA5/BA6gvHw==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0", - "jaeger-client": "^3.15.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/exporter-zipkin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.8.0.tgz", - "integrity": "sha512-Y3WqNCZjfWKnHiRzb35sXpDfGL4Gx2qajFAv059s/VFayIPytLHUOrZMiQqrpfzU/TSIKPG4OHJaypFtUtNlQQ==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.27.0.tgz", - "integrity": "sha512-dUwY/VoDptdK8AYigwS3IKblG+unV5xIdV4VQKy+nX5aT3f7vd5PMYs4arCQSYLbLRe0s7GxK6S9dtjai/TsHQ==", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.27.1.tgz", - "integrity": "sha512-EbpmTyem70Rg56+A0w8ndSmeyVYj7gFV9yk2IGgVVc9n/hs2mTgsBI2evaUtWbpB51pb1u/h+DhICKxgg/8Hew==", - "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/express": "4.17.13" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.2" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.27.0.tgz", - "integrity": "sha512-aFHcAeeLfqoH8PMjmdqEwZwXDJtFSkWmGDBZeH2yrx3KzFMVBB/UJEr1n/ZC6AqfqahL/qqB1N8EnoCoOcs5ig==", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.27.0.tgz", - "integrity": "sha512-Q1dxUt+5d70rbY6jJAC8nwpIQJontmJW94eIS5CsGngvCRYw6tgjLZp2fpVL1o7Lj7uiLpGigeE4EN5Lr2YDFA==", - "dependencies": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/propagator-b3": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.8.0.tgz", - "integrity": "sha512-ffP6AVHyISqK1kiUY1MoVKt43Wp3FJXI8NOePqxBrAU7bRDJ13276VbSl4ugCZbZLTPrPhhSmvQh1WqlfUgcAg==", - "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/propagator-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.8.0.tgz", - "integrity": "sha512-v6GA38k2cqeGAh3368prLW5MsuG2/KxpfWI/PxTPjCa9tThDPq0cvhKpk7cEma3y+F6rieMhwmzZhKQL5QVBzQ==", - "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/resources": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.8.0.tgz", - "integrity": "sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.27.0.tgz", - "integrity": "sha512-HpiWI4sVNsjp3FGyUlc24KvUY2Whl4PQVwcbA/gWv2kHaLQrDJrWC+3rjUR+87Mrd0nsiqJ85xhGFU6IK8h7gg==", - "deprecated": "Please use @opentelemetry/sdk-metrics", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/core": "1.0.1", - "@opentelemetry/resources": "1.0.1", - "lodash.merge": "^4.6.2" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/resources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.1.tgz", - "integrity": "sha512-p8DevOaAEepPucUtImR4cZKHOE2L1jgQAtkdZporV+XnxPA/HqCHPEESyUVuo4f5M0NUlL6k5Pba75KwNJlTRg==", - "dependencies": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz", - "integrity": "sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-node": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.8.0.tgz", - "integrity": "sha512-6FqhJEgW9Nke5SO4Ul9+5EWOfms/JeLg5LRqILMPMK4UMBWcOtk7jldvGGyfVpraJ16/WPo/R5NSnMwlupN5zQ==", - "dependencies": { - "@opentelemetry/context-async-hooks": "1.8.0", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/propagator-b3": "1.8.0", - "@opentelemetry/propagator-jaeger": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz", - "integrity": "sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew==", - "engines": { - "node": ">=14" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "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.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", - "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "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": "16.18.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", - "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==" - }, - "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/acme-client": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/acme-client/-/acme-client-4.2.5.tgz", - "integrity": "sha512-dtnck4sdZ2owFLTC73Ewjx0kmvsRjTRgaOc8UztCNODT+lr1DXj0tiuUXjeY4LAzZryXCtCib/E+KD8NYeP1aw==", - "dependencies": { - "axios": "0.26.1", - "backo2": "^1.0.0", - "bluebird": "^3.5.0", - "debug": "^4.1.1", - "node-forge": "^1.3.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==", - "engines": { - "node": "*" - } - }, - "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/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "dependencies": { - "follow-redirects": "^1.14.8" - } - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "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/bufrw": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", - "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", - "dependencies": { - "ansi-color": "^0.2.1", - "error": "^7.0.0", - "hexer": "^1.5.0", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "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/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/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/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "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/error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", - "dependencies": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "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/event-lite": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz", - "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==" - }, - "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/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/fluent-logger": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/fluent-logger/-/fluent-logger-3.4.1.tgz", - "integrity": "sha512-lERIhXAvhtCYeQq8K7sBDg/HY9GkiVRq5xY3oN+hcSINVKwqwBzG6LQOJK73EnV50qO59U7XEmRnn2hBzLWaHw==", - "dependencies": { - "msgpack-lite": "*" - }, - "engines": { - "node": ">=6" - } - }, - "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/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/google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "node_modules/grpc-boom": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/grpc-boom/-/grpc-boom-3.0.11.tgz", - "integrity": "sha512-bdGLCww+w+CWHdT0Fm2AzoRToJJHzlIEfTggkquUO9JG5d2TU+yUIuk4ksWQ2B+LFQpxLaB7ZbZXKBPkErtW5w==", - "peerDependencies": { - "@types/node": "^16.11.35" - } - }, - "node_modules/grpc-interceptors": { - "version": "0.2.5", - "resolved": "git+ssh://git@github.com/fonoster/node-grpc-interceptors.git#3ccc1d222f8a66e319a0e1e93bd18095aeaeb141", - "license": "ISC", - "dependencies": { - "zipkin": "^0.12.0", - "zipkin-transport-http": "^0.22.0" - }, - "peerDependencies": { - "@grpc/grpc-js": "^1.3.7" - } - }, - "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/hexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", - "dependencies": { - "ansi-color": "^0.2.1", - "minimist": "^1.1.0", - "process": "^0.10.0", - "xtend": "^4.0.0" - }, - "bin": { - "hexer": "cli.js" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/int64-buffer": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz", - "integrity": "sha512-v7cSY1J8ydZ0GyjUHqF+1bshJ6cnEVLo9EnjB8p+4HDRPZc9N5jjmvUV7NvEsqQOKyH0pmIBFWXVQbiS0+OBbA==" - }, - "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-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "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/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/jaeger-client": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", - "dependencies": { - "node-int64": "^0.4.0", - "opentracing": "^0.14.4", - "thriftrw": "^3.5.0", - "uuid": "^8.3.2", - "xorshift": "^1.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "node_modules/jsonwebtoken/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "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/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/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, - "node_modules/logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", - "dependencies": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, - "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/msgpack-lite": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz", - "integrity": "sha512-SZ2IxeqZ1oRFGo0xFGbvBJWMp3yLIY9rlIJyxy8CGrwZn1f0ZK4r6jV/AM1r0FZMDUkWkglOk/eeKIL9g77Nxw==", - "dependencies": { - "event-lite": "^0.1.1", - "ieee754": "^1.1.8", - "int64-buffer": "^0.1.9", - "isarray": "^1.0.0" - }, - "bin": { - "msgpack": "bin/msgpack" - } - }, - "node_modules/network-address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", - "integrity": "sha512-Q6878fmvItA1mE7H9Il46lONgFgTzX2f98zkS0c2YlkCACzNjwvum/8Kq693IQpxe9zy+w+Zm/4p0wQreLEtZw==", - "bin": { - "network-address": "cli.js" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "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/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "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/opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/process": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/protobufjs/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "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/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-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "dependencies": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz", - "integrity": "sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==", - "engines": { - "node": ">=10" - } - }, - "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/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "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/sox-audio": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/sox-audio/-/sox-audio-0.3.0.tgz", - "integrity": "sha1-3UOk3X+pf/QGY5DDmQOuSrGYrsU=", - "dependencies": { - "through": "^2.3.6" - } - }, - "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/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-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==" - }, - "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/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/thriftrw": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.12.0.tgz", - "integrity": "sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw==", - "dependencies": { - "bufrw": "^1.3.0", - "error": "7.0.2", - "long": "^2.4.0" - }, - "bin": { - "thrift2json": "thrift2json.js" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/thriftrw/node_modules/long": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "peer": true - }, - "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/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": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "peer": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "peer": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "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/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/xorshift": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "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/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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/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/zipkin": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.12.0.tgz", - "integrity": "sha512-QguH/UQt/ofUVcTJLW7qdyi7iEo71MJJbKg/6d/m3ptvxhm5gDVf/KVuCEfzxxzzWGSKtX+c+qACvowsPkNjuQ==", - "dependencies": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0", - "network-address": "^1.1.0" - } - }, - "node_modules/zipkin-transport-http": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin-transport-http/-/zipkin-transport-http-0.22.0.tgz", - "integrity": "sha512-bjM2fm/hurseBuvpyB8mYCBBGOz3gc2f9KUSQl71LGxmgYcUeXvDHJyE9MgzWMhl+3HcD8l5nNn6OmdX63he+g==", - "dependencies": { - "zipkin": "^0.22.0" - }, - "peerDependencies": { - "node-fetch": ">=1.4.0 <3.0.0" - } - }, - "node_modules/zipkin-transport-http/node_modules/zipkin": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.22.0.tgz", - "integrity": "sha512-SZgorBAvywnj5R26mqsFP+2MRUsBXGg0B8GLRLw9R0FeE4alMUAfhXYvzeAt2+MvkXne9QdQyziuqO5oXNQ0Sg==", - "dependencies": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0" - } - } - }, - "dependencies": { - "@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" - } - }, - "@fonoster/certs": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/certs/-/certs-0.3.18.tgz", - "integrity": "sha512-echVIIX6le3yBVs0b8XtVFYJtMzMI/1fGm0CVqdrUw/mp9stsKyDV79Fc9KLKAtVs9+H2bwyAgTgo3HuLwLCvA==", - "requires": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "@fonoster/common": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/common/-/common-0.3.18.tgz", - "integrity": "sha512-C7XgeGOZmnKf48zimp/kCcTSb0+Q0m8JUNh1D+ZImdl2keDN2mh+ibJqydjjwjOpB6TNTUJCVa6CEkjRNnGECw==", - "requires": { - "@fonoster/certs": "^0.3.18", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.18", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "@fonoster/grpc-health-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@fonoster/grpc-health-check/-/grpc-health-check-3.1.1.tgz", - "integrity": "sha512-JjXI4i2g2FF7QgHcAgy18RISbeRnqQ+U9QdPeYmE5TijaK7JaFwV/mOK7WgIIxQNqNsR/ozoap5Q46T0qpukeQ==", - "requires": { - "google-protobuf": "^3.21.0", - "grpc-boom": "^3.0.11" - } - }, - "@fonoster/logger": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@fonoster/logger/-/logger-0.3.18.tgz", - "integrity": "sha512-/RpGAsteYmvbe6o9GKsoZAgl9HzqSvNqTJDj52wo3WzyzLF7rZNxnoL5JAdfP7GV+Z0qvLBM/NW6Hqsc04b2Hw==", - "requires": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - } - }, - "@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "requires": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - } - }, - "@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==" - }, - "@opentelemetry/api-metrics": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.27.0.tgz", - "integrity": "sha512-tB79288bwjkdhPNpw4UdOEy3bacVwtol6Que7cAu8KEJ9ULjRfSiwpYEwJY/oER3xZ7zNFz0uiJ7N1jSiotpVA==" - }, - "@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", - "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==", - "requires": {} - }, - "@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "requires": { - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/exporter-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.8.0.tgz", - "integrity": "sha512-3h16Sb1T/G33S+RM3yjt1t2xRuu/mi9iB172faS6qFQEclTTJru1pTK4wuWG+9GyI7uyBLfbQoXVA5/BA6gvHw==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0", - "jaeger-client": "^3.15.0" - } - }, - "@opentelemetry/exporter-zipkin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.8.0.tgz", - "integrity": "sha512-Y3WqNCZjfWKnHiRzb35sXpDfGL4Gx2qajFAv059s/VFayIPytLHUOrZMiQqrpfzU/TSIKPG4OHJaypFtUtNlQQ==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/instrumentation": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.27.0.tgz", - "integrity": "sha512-dUwY/VoDptdK8AYigwS3IKblG+unV5xIdV4VQKy+nX5aT3f7vd5PMYs4arCQSYLbLRe0s7GxK6S9dtjai/TsHQ==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "@opentelemetry/instrumentation-express": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.27.1.tgz", - "integrity": "sha512-EbpmTyem70Rg56+A0w8ndSmeyVYj7gFV9yk2IGgVVc9n/hs2mTgsBI2evaUtWbpB51pb1u/h+DhICKxgg/8Hew==", - "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/express": "4.17.13" - } - }, - "@opentelemetry/instrumentation-grpc": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.27.0.tgz", - "integrity": "sha512-aFHcAeeLfqoH8PMjmdqEwZwXDJtFSkWmGDBZeH2yrx3KzFMVBB/UJEr1n/ZC6AqfqahL/qqB1N8EnoCoOcs5ig==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "dependencies": { - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/instrumentation-http": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.27.0.tgz", - "integrity": "sha512-Q1dxUt+5d70rbY6jJAC8nwpIQJontmJW94eIS5CsGngvCRYw6tgjLZp2fpVL1o7Lj7uiLpGigeE4EN5Lr2YDFA==", - "requires": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1", - "semver": "^7.3.5" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "requires": { - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/propagator-b3": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.8.0.tgz", - "integrity": "sha512-ffP6AVHyISqK1kiUY1MoVKt43Wp3FJXI8NOePqxBrAU7bRDJ13276VbSl4ugCZbZLTPrPhhSmvQh1WqlfUgcAg==", - "requires": { - "@opentelemetry/core": "1.8.0" - } - }, - "@opentelemetry/propagator-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.8.0.tgz", - "integrity": "sha512-v6GA38k2cqeGAh3368prLW5MsuG2/KxpfWI/PxTPjCa9tThDPq0cvhKpk7cEma3y+F6rieMhwmzZhKQL5QVBzQ==", - "requires": { - "@opentelemetry/core": "1.8.0" - } - }, - "@opentelemetry/resources": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.8.0.tgz", - "integrity": "sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/sdk-metrics-base": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.27.0.tgz", - "integrity": "sha512-HpiWI4sVNsjp3FGyUlc24KvUY2Whl4PQVwcbA/gWv2kHaLQrDJrWC+3rjUR+87Mrd0nsiqJ85xhGFU6IK8h7gg==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/core": "1.0.1", - "@opentelemetry/resources": "1.0.1", - "lodash.merge": "^4.6.2" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "requires": { - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/resources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.1.tgz", - "integrity": "sha512-p8DevOaAEepPucUtImR4cZKHOE2L1jgQAtkdZporV+XnxPA/HqCHPEESyUVuo4f5M0NUlL6k5Pba75KwNJlTRg==", - "requires": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/sdk-trace-base": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz", - "integrity": "sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/sdk-trace-node": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.8.0.tgz", - "integrity": "sha512-6FqhJEgW9Nke5SO4Ul9+5EWOfms/JeLg5LRqILMPMK4UMBWcOtk7jldvGGyfVpraJ16/WPo/R5NSnMwlupN5zQ==", - "requires": { - "@opentelemetry/context-async-hooks": "1.8.0", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/propagator-b3": "1.8.0", - "@opentelemetry/propagator-jaeger": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "semver": "^7.3.5" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz", - "integrity": "sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "@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.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/jsonwebtoken": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", - "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", - "requires": { - "@types/node": "*" - } - }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "@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": "16.18.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.3.tgz", - "integrity": "sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==" - }, - "@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": "*" - } - }, - "acme-client": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/acme-client/-/acme-client-4.2.5.tgz", - "integrity": "sha512-dtnck4sdZ2owFLTC73Ewjx0kmvsRjTRgaOc8UztCNODT+lr1DXj0tiuUXjeY4LAzZryXCtCib/E+KD8NYeP1aw==", - "requires": { - "axios": "0.26.1", - "backo2": "^1.0.0", - "bluebird": "^3.5.0", - "debug": "^4.1.1", - "node-forge": "^1.3.0" - } - }, - "ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==" - }, - "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==" - } - } - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "requires": { - "follow-redirects": "^1.14.8" - } - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" - }, - "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==" - }, - "bufrw": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", - "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", - "requires": { - "ansi-color": "^0.2.1", - "error": "^7.0.0", - "hexer": "^1.5.0", - "xtend": "^4.0.0" - } - }, - "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" - } - }, - "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" - } - }, - "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" - } - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "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==" - }, - "error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", - "requires": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "event-lite": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz", - "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==" - }, - "fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" - }, - "fluent-logger": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/fluent-logger/-/fluent-logger-3.4.1.tgz", - "integrity": "sha512-lERIhXAvhtCYeQq8K7sBDg/HY9GkiVRq5xY3oN+hcSINVKwqwBzG6LQOJK73EnV50qO59U7XEmRnn2hBzLWaHw==", - "requires": { - "msgpack-lite": "*" - } - }, - "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==" - }, - "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==" - }, - "google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "grpc-boom": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/grpc-boom/-/grpc-boom-3.0.11.tgz", - "integrity": "sha512-bdGLCww+w+CWHdT0Fm2AzoRToJJHzlIEfTggkquUO9JG5d2TU+yUIuk4ksWQ2B+LFQpxLaB7ZbZXKBPkErtW5w==", - "requires": {} - }, - "grpc-interceptors": { - "version": "git+ssh://git@github.com/fonoster/node-grpc-interceptors.git#3ccc1d222f8a66e319a0e1e93bd18095aeaeb141", - "from": "grpc-interceptors@github:fonoster/node-grpc-interceptors", - "requires": { - "zipkin": "^0.12.0", - "zipkin-transport-http": "^0.22.0" - } - }, - "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" - } - }, - "hexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", - "requires": { - "ansi-color": "^0.2.1", - "minimist": "^1.1.0", - "process": "^0.10.0", - "xtend": "^4.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "int64-buffer": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz", - "integrity": "sha512-v7cSY1J8ydZ0GyjUHqF+1bshJ6cnEVLo9EnjB8p+4HDRPZc9N5jjmvUV7NvEsqQOKyH0pmIBFWXVQbiS0+OBbA==" - }, - "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-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "requires": { - "has": "^1.0.3" - } - }, - "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-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "jaeger-client": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", - "requires": { - "node-int64": "^0.4.0", - "opentracing": "^0.14.4", - "thriftrw": "^3.5.0", - "uuid": "^8.3.2", - "xorshift": "^1.1.1" - } - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "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" - } - }, - "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" - } - }, - "kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, - "logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", - "requires": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" - }, - "module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "msgpack-lite": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz", - "integrity": "sha512-SZ2IxeqZ1oRFGo0xFGbvBJWMp3yLIY9rlIJyxy8CGrwZn1f0ZK4r6jV/AM1r0FZMDUkWkglOk/eeKIL9g77Nxw==", - "requires": { - "event-lite": "^0.1.1", - "ieee754": "^1.1.8", - "int64-buffer": "^0.1.9", - "isarray": "^1.0.0" - } - }, - "network-address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", - "integrity": "sha512-Q6878fmvItA1mE7H9Il46lONgFgTzX2f98zkS0c2YlkCACzNjwvum/8Kq693IQpxe9zy+w+Zm/4p0wQreLEtZw==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "peer": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "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" - } - }, - "opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "process": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==" - }, - "protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - } - } - }, - "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" - } - }, - "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-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "requires": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - } - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "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.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz", - "integrity": "sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA==" - }, - "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" - } - }, - "shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "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" - } - }, - "sox-audio": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/sox-audio/-/sox-audio-0.3.0.tgz", - "integrity": "sha1-3UOk3X+pf/QGY5DDmQOuSrGYrsU=", - "requires": { - "through": "^2.3.6" - } - }, - "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==" - }, - "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-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==" - }, - "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" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "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==" - }, - "thriftrw": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.12.0.tgz", - "integrity": "sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw==", - "requires": { - "bufrw": "^1.3.0", - "error": "7.0.2", - "long": "^2.4.0" - }, - "dependencies": { - "long": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==" - } - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "peer": true - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "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": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "peer": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "peer": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "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" - } - }, - "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" - } - }, - "xorshift": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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==" - }, - "zipkin": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.12.0.tgz", - "integrity": "sha512-QguH/UQt/ofUVcTJLW7qdyi7iEo71MJJbKg/6d/m3ptvxhm5gDVf/KVuCEfzxxzzWGSKtX+c+qACvowsPkNjuQ==", - "requires": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0", - "network-address": "^1.1.0" - } - }, - "zipkin-transport-http": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin-transport-http/-/zipkin-transport-http-0.22.0.tgz", - "integrity": "sha512-bjM2fm/hurseBuvpyB8mYCBBGOz3gc2f9KUSQl71LGxmgYcUeXvDHJyE9MgzWMhl+3HcD8l5nNn6OmdX63he+g==", - "requires": { - "zipkin": "^0.22.0" - }, - "dependencies": { - "zipkin": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.22.0.tgz", - "integrity": "sha512-SZgorBAvywnj5R26mqsFP+2MRUsBXGg0B8GLRLw9R0FeE4alMUAfhXYvzeAt2+MvkXne9QdQyziuqO5oXNQ0Sg==", - "requires": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0" - } - } - } - } - } -} diff --git a/mods/tts/package.json b/mods/tts/package.json deleted file mode 100644 index 412fd5d20..000000000 --- a/mods/tts/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "@fonoster/tts", - "version": "0.3.22", - "description": "Fonoster TTS module", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/index", - "types": "dist/index", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/common": "^0.3.22", - "flat": "^5.0.2", - "sox-audio": "^0.3.0" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/tts/src/index.ts b/mods/tts/src/index.ts deleted file mode 100644 index 26a9c48aa..000000000 --- a/mods/tts/src/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import AbstractTTS from "./plugin" -export * from "./utils"; -export * from "./types"; -export { AbstractTTS }; diff --git a/mods/tts/src/plugin.ts b/mods/tts/src/plugin.ts deleted file mode 100644 index 98e176836..000000000 --- a/mods/tts/src/plugin.ts +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { SynthResult, TTSConfig, TTSPlugin } from "./types"; -import { Plugin } from "@fonoster/common" -import { computeFilename } from "./utils"; -import path from "path"; -import fs from "fs"; -import os from "os"; - -export default abstract class AbstractTTS extends Plugin implements TTSPlugin { - config: TTSConfig; - - constructor(type: string, name: string, config: TTSConfig) { - super(type, name); - this.config = config; - this.config.path = config.path ? config.path : os.tmpdir(); - } - /** - * @inherit - * @deprecated - */ - async synthetize?(text: string, options: any = {}): Promise { - return await this.synthesize(text, options); - } - - /** - * @inherit - */ - async synthesize(text: string, options: any = {}): Promise { - const filename = computeFilename(text, options, "sln24"); - const pathToFile = path.join(this.config.path, filename); - - if (!fs.existsSync(pathToFile)) { - return await this.synthesizeSpeech(text, options, filename, pathToFile); - } - return {filename, pathToFile} - } - - abstract synthesizeSpeech(text: string, options: any, filename: string, pathToFile: string): Promise; - -} \ No newline at end of file diff --git a/mods/tts/src/types.ts b/mods/tts/src/types.ts deleted file mode 100644 index aef8c148f..000000000 --- a/mods/tts/src/types.ts +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface TTSPlugin { - /** - * @deprecated The method should not be used, please use synthesize instead - */ - synthetize?(text: string, options: any): Promise; - synthesize(text: string, options: any): Promise; -} - -export interface SynthResult { - filename: string; - pathToFile: string; -} - -export interface TTSConfig { - path?: string; -} diff --git a/mods/tts/src/utils.ts b/mods/tts/src/utils.ts deleted file mode 100644 index 1197b9915..000000000 --- a/mods/tts/src/utils.ts +++ /dev/null @@ -1,61 +0,0 @@ -import crypto from "crypto"; - -/** - * Uses the input text and options to generate a filename. This is - * later used to cache a file generated by a TTS engine. - * - * @param {string} - the text to synthesize - * @param {object} - json object with configuration for the TTS engine - * @param {sting} - resulting format. Defaults to '.wav' - * @returns {string} compute filename - */ -const computeFilename = (text: string, options: any = {}, format = "wav") => { - const flat = require("flat"); - let c = text; - if (options.cachingFields) { - const flatObj = flat(options); - c = options.cachingFields - .map((opt: string) => flatObj[opt]) - .sort() - .join(); - } - return ( - crypto.createHash("md5").update(`${text},${c}`).digest("hex") + "." + format - ); -}; - -/** - * Takes a json object and creates a query formatted string - * - * @param {object} - a one level json object with the synth options - * @returns {string} a string with the format like 'key=value&' - */ -const optionsToQueryString = (obj: any): string => - Object.keys(obj) - .map((key: string) => `${key}=${obj[key].toString()}`) - .join("&"); - -/** - * Gets the path to a file as input and transcode to - * a new format compatible with Asterisk - * - * @param {string} fileIn - path to original file which is expected to be .wav - * @param {string} fileOut - path resulting file in a format understod by asterisk - * @returns {Promise} path to the resulting file - */ -const transcode = (fileIn: string, fileOut: string): Promise => - new Promise((resolve, reject) => { - // We need a new instance to avoid collisions - const sox = require("sox-audio")(); - sox.on("error", (err: any, stdout: any, stderr: any) => - reject(`Cannot process audio: ${err.message}`) - ); - sox.input(fileIn); - - // TODO: Investigate other formats that can produce a better audio quality - sox.output(fileOut).outputSampleRate(8000).outputFileType("wav"); - sox.run(); - sox.on("end", () => resolve(fileOut)); - }); - -export { computeFilename, transcode, optionsToQueryString }; diff --git a/mods/tts/test/tts.int.test.ts b/mods/tts/test/tts.int.test.ts deleted file mode 100644 index 118aa5913..000000000 --- a/mods/tts/test/tts.int.test.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { transcode } from "../src/utils"; -import path from "path"; - -if (process.env.NODE_ENV === "dev") { - require("dotenv").config({ path: path.join(__dirname, "..", "..", ".env") }); -} - -describe("TTS Utils", () => { - it("converts a given audio into an audio works on asterisk", async () => { - return transcode( - __dirname + "/../etc/test.wav", - __dirname + "/../etc/test_transcoded.wav" - ); - }); -}); diff --git a/mods/tts/test/tts.unit.test.ts b/mods/tts/test/tts.unit.test.ts deleted file mode 100644 index 19c601134..000000000 --- a/mods/tts/test/tts.unit.test.ts +++ /dev/null @@ -1,74 +0,0 @@ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { join } from "path"; -import { computeFilename, optionsToQueryString, transcode } from "../src/utils"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -if (process.env.NODE_ENV === "dev") { - require("dotenv").config({ path: join(__dirname, "..", "..", ".env") }); -} - -describe("@fonoster/tts/utils", () => { - afterEach(() => sandbox.restore()); - - it("converts a json object into a query string", () => { - const options = { - voice: "peter", - language: "spanish" - }; - const q = optionsToQueryString(options); - expect(q).to.be.equal("voice=peter&language=spanish"); - }); - - it("will compute the filename base on given parameters", () => { - const t = computeFilename("Hello World", { - voice: "Anna", - speed: 0.1, - language: "en", - cachingFields: ["voice", "speed"] - }); - expect(t).to.be.equal("940c2687367636c07be34668c6d8299f.wav"); - }); - - it.skip("converts a given audio into an audio works on asterisk", async () => { - const sox = require("sox-audio"); - const run = sandbox.spy(sox.prototype, "run"); - const on = sandbox.stub(sox.prototype, "on"); - on.withArgs("end").yields({}); - //on.withArgs('error').yields(error); - - const result = await transcode( - __dirname + "/../etc/test.wav", - __dirname + "/../etc/test_transcoded.wav" - ); - - expect(run).to.have.been.calledOnce; - expect(on).to.have.been.calledTwice; - expect(result).to.contain("/../etc/test_transcoded.wav"); - }); - - it.skip("rejects promise if transcoding fails", () => { - const sox = require("sox-audio"); - sandbox.spy(sox.prototype, "run"); - sandbox.spy(sox.prototype, "input"); - - const on = sandbox.stub(sox.prototype, "on"); - const error = { message: "nop" }; - - on.withArgs("end").yields({}); - on.withArgs("error").yields(error); - - expect( - transcode( - __dirname + "/../etc/test.wav", - __dirname + "/../etc/test_transcoded.wav" - ) - ).to.eventually.be.rejectedWith("Cannot process audio"); - }); -}); diff --git a/mods/tts/tsconfig.json b/mods/tts/tsconfig.json deleted file mode 100644 index 7104bf4cd..000000000 --- a/mods/tts/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/types/.lerna-changed-buster-192 b/mods/types/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/errors/.lerna-changed-buster-192 b/mods/types/.lerna-changed-buster-5577 similarity index 100% rename from mods/errors/.lerna-changed-buster-192 rename to mods/types/.lerna-changed-buster-5577 diff --git a/mods/types/.npmignore b/mods/types/.npmignore new file mode 100644 index 000000000..51256b514 --- /dev/null +++ b/mods/types/.npmignore @@ -0,0 +1,6 @@ +.nyc_output +coverage +src +test +*.log +.ts \ No newline at end of file diff --git a/mods/types/README.md b/mods/types/README.md new file mode 100644 index 000000000..7669fdd1a --- /dev/null +++ b/mods/types/README.md @@ -0,0 +1,3 @@ +[![Discord](https://img.shields.io/discord/1016419835455996076?color=5865F2&label=Discord&logo=discord&logoColor=white)](https://discord.gg/4QWgSz4hTC) ![GitHub](https://img.shields.io/github/license/fonoster/fonoster?color=%2347b96d) ![Twitter Follow](https://img.shields.io/twitter/follow/fonoster?style=social) + +This module is part of the [Fonoster](https://fonoster.com) open-source. By itself, it does not do much. It is intended to be used as a dependency for other modules. For more information about the project, please visit [https://github.com/fonoster/fonoster](https://github.com/fonoster/fonoster). \ No newline at end of file diff --git a/mods/types/package-lock.json b/mods/types/package-lock.json deleted file mode 100644 index e3a77f78f..000000000 --- a/mods/types/package-lock.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "@fonoster/types", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/types", - "version": "0.3.22", - "license": "MIT" - } - } -} diff --git a/mods/types/package.json b/mods/types/package.json index 1210f5454..0c9c2a901 100644 --- a/mods/types/package.json +++ b/mods/types/package.json @@ -1,20 +1,21 @@ { "name": "@fonoster/types", - "version": "0.3.22", - "description": "Handles Fonoster types", + "version": "0.9.0", + "description": "Common types for Fonoster projects", "author": "Pedro Sanders ", "homepage": "https://github.com/fonoster/fonoster#readme", "license": "MIT", "main": "dist/index", "types": "dist/index", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json" - }, "directories": { "src": "src", "test": "test" }, + "scripts": { + "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", + "build": "tsc -b tsconfig.json", + "clean": "rimraf ./dist node_modules tsconfig.tsbuildinfo" + }, "files": [ "dist" ], @@ -28,5 +29,5 @@ "bugs": { "url": "https://github.com/fonoster/fonoster/issues" }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" + "gitHead": "3509817cc2cf3ef6684437e33ffd694d1174510b" } diff --git a/mods/types/src/acls.types.ts b/mods/types/src/acls.types.ts new file mode 100644 index 000000000..28577b879 --- /dev/null +++ b/mods/types/src/acls.types.ts @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseApiObject, ListRequest, ListResponse } from "./common"; +import { Flatten, RenameAndConvertToTimestamp } from "./utils"; + +type Acl = { + ref: string; + name: string; + allow: string[]; + createdAt: Date; + updatedAt: Date; +}; + +type AclExtended = RenameAndConvertToTimestamp & { + extended?: Record; +}; + +type CreateAclRequest = { + name: string; + allow: string[]; +}; + +type CreateAclRequestExtended = CreateAclRequest & { + deny: string[]; + extended?: Record; +}; + +type UpdateAclRequest = Flatten> & { + deny: string[]; +}; + +type ListAclsRequest = ListRequest; + +type ListAclsResponse = ListResponse; + +type ListAclsResponseExtended = ListResponse; + +type AclsApi = { + createAcl(request: CreateAclRequestExtended): Promise; + updateAcl(request: UpdateAclRequest): Promise; + getAcl(ref: string): Promise; + deleteAcl(ref: string): Promise; + listAcls(request: ListAclsRequest): Promise; +}; + +export { + Acl, + AclExtended, + AclsApi, + CreateAclRequest, + CreateAclRequestExtended, + ListAclsRequest, + ListAclsResponse, + UpdateAclRequest +}; diff --git a/mods/types/src/agents.types.ts b/mods/types/src/agents.types.ts new file mode 100644 index 000000000..30c9facf6 --- /dev/null +++ b/mods/types/src/agents.types.ts @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseApiObject, ListRequest, ListResponse } from "./common"; +import { Flatten, RenameAndConvertToTimestamp } from "./utils"; + +enum Privacy { + PRIVATE = "ID", + NONE = "NONE" +} + +type Agent = { + ref: string; + name: string; + username: string; + privacy: Privacy; + enabled: boolean; + maxContacts?: number; + expires?: number; + domain?: { + ref: string; + name: string; + domainUri: string; + }; + credentials?: { + ref: string; + name: string; + username: string; + }; + createdAt: Date; + updatedAt: Date; +}; + +type AgentExtended = RenameAndConvertToTimestamp & { + extended?: Record; +}; + +type CreateAgentRequest = { + name: string; + username: string; + privacy: Privacy; + enabled: boolean; + maxContacts: number; + expires: number; + domainRef?: string; + credentialsRef?: string; +}; + +type CreateAgentRequestExtended = CreateAgentRequest & { + extended?: Record; +}; + +type UpdateAgentRequest = Flatten< + BaseApiObject & Omit, "username" | "extended"> +>; + +type ListAgentsRequest = ListRequest; + +type ListAgentsResponse = ListResponse; + +type ListAgentsResponseExtended = ListResponse; + +type AgentsApi = { + createAgent(request: CreateAgentRequestExtended): Promise; + updateAgent(request: UpdateAgentRequest): Promise; + getAgent(ref: string): Promise; + deleteAgent(ref: string): Promise; + listAgents(request: ListAgentsRequest): Promise; +}; + +export { + Agent, + AgentExtended, + AgentsApi, + CreateAgentRequest, + CreateAgentRequestExtended, + ListAgentsRequest, + ListAgentsResponse, + Privacy, + UpdateAgentRequest +}; diff --git a/mods/types/src/applications.types.ts b/mods/types/src/applications.types.ts new file mode 100644 index 000000000..2c4bbf755 --- /dev/null +++ b/mods/types/src/applications.types.ts @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseApiObject, ListRequest, ListResponse } from "./common"; +import { Flatten } from "./utils"; + +enum ApplicationType { + EXTERNAL = "EXTERNAL", + AUTOPILOT = "AUTOPILOT" +} + +type Application = { + ref: string; + name: string; + type: ApplicationType; + endpoint?: string; + textToSpeech?: { + productRef: string; + config: Record; + }; + speechToText?: { + productRef: string; + config: Record; + }; + intelligence?: { + productRef: string; + config: Record; + }; + createdAt: Date; + updatedAt: Date; +}; + +type CreateApplicationRequest = { + name: string; + type: ApplicationType; + endpoint?: string; + textToSpeech?: { + productRef: string; + config: Record; + }; + speechToText?: { + productRef: string; + config: Record; + }; + intelligence?: { + productRef: string; + credentials: Record; + config: Record; + }; +}; + +type UpdateApplicationRequest = Flatten< + BaseApiObject & Partial +>; + +type ListApplicationsRequest = ListRequest; + +type ListApplicationsResponse = ListResponse; + +export { + Application, + ApplicationType, + CreateApplicationRequest, + ListApplicationsRequest, + ListApplicationsResponse, + UpdateApplicationRequest +}; diff --git a/mods/types/src/calls.types.ts b/mods/types/src/calls.types.ts new file mode 100644 index 000000000..50dc63186 --- /dev/null +++ b/mods/types/src/calls.types.ts @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseApiObject, ListResponse } from "./common"; + +enum CallType { + SIP_ORIGINATED = "SIP_ORIGINATED", + API_ORIGINATED = "API_ORIGINATED" +} + +enum CallStatus { + NORMAL_CLEARING = "NORMAL_CLEARING", + CALL_REJECTED = "CALL_REJECTED", + UNALLOCATED = "UNALLOCATED", + NO_USER_RESPONSE = "NO_USER_RESPONSE", + NO_ROUTE_DESTINATION = "NO_ROUTE_DESTINATION", + NO_ANSWER = "NO_ANSWER", + USER_BUSY = "USER_BUSY", + NOT_ACCEPTABLE_HERE = "NOT_ACCEPTABLE_HERE", + SERVICE_UNAVAILABLE = "SERVICE_UNAVAILABLE", + INVALID_NUMBER_FORMAT = "INVALID_NUMBER_FORMAT" +} + +enum CallDirection { + FROM_PSTN = "FROM_PSTN", + TO_PSTN = "TO_PSTN", + INTRA_NETWORK = "INTRA_NETWORK" +} + +type CallDetailRecord = { + ref: string; + accessKeyId: string; + status: CallStatus; + type: CallType; + from: string; + to: string; + duration: number; + direction: CallDirection; + startedAt: Date; + endedAt: Date; +}; + +type ListCallsRequest = { + after?: string; + before?: string; + type?: CallType; + status?: CallStatus; + from?: string; + to?: string; + pageSize?: number; + pageToken?: string; +}; + +type ListCallsResponse = ListResponse; + +// If appRef is not provided, we will use the application associated +// with the 'from' number +type CreateCallRequest = { + from: string; + to: string; + appRef?: string; + timeout?: number; +}; + +type CallPublisher = { + publishCall: (event: CreateCallRequest & BaseApiObject) => void; +}; + +type TrackCallResponse = { + ref: string; + status: CallStatus; +}; + +type TrackCallSubscriber = { + events: { + on: (event: string, cb: (data: TrackCallResponse | Error) => void) => void; + }; +}; + +export { + CallDetailRecord, + CallDirection, + CallPublisher, + CallStatus, + CallType, + CreateCallRequest, + ListCallsRequest, + ListCallsResponse, + TrackCallResponse, + TrackCallSubscriber +}; diff --git a/mods/types/src/common.ts b/mods/types/src/common.ts new file mode 100644 index 000000000..e1013ea06 --- /dev/null +++ b/mods/types/src/common.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +enum ContactType { + EMAIL = "EMAIL", + PHONE = "PHONE" +} + +type BaseApiObject = { + ref: string; +}; + +type NumberPreconditionsCheck = (request: { + appRef?: string; + agentAor?: string; +}) => Promise; + +type ListRequest = { + pageSize?: number; + pageToken?: string; +}; + +type ListResponse = { + items: R[]; + nextPageToken?: string; +}; + +export { + BaseApiObject, + ContactType, + ListRequest, + ListResponse, + NumberPreconditionsCheck +}; diff --git a/mods/types/src/credentials.types.ts b/mods/types/src/credentials.types.ts new file mode 100644 index 000000000..cb170e0c3 --- /dev/null +++ b/mods/types/src/credentials.types.ts @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseApiObject, ListRequest, ListResponse } from "./common"; +import { Flatten, RenameAndConvertToTimestamp } from "./utils"; + +type Credentials = { + ref: string; + name: string; + username: string; + createdAt: Date; + updatedAt: Date; +}; + +type CredentialsExtended = RenameAndConvertToTimestamp & { + extended?: Record; +}; + +type CreateCredentialsRequest = { + name: string; + username: string; + password: string; +}; + +type CreateCredentialsRequestExtended = CreateCredentialsRequest & { + extended?: Record; +}; + +type UpdateCredentialsRequest = Flatten; + +type ListCredentialsRequest = ListRequest; + +type ListCredentialsResponse = ListResponse; + +type ListCredentialsResponseExtended = ListResponse; + +type CredentialsApi = { + createCredentials( + request: CreateCredentialsRequestExtended + ): Promise; + updateCredentials(request: UpdateCredentialsRequest): Promise; + getCredentials(ref: string): Promise; + deleteCredentials(ref: string): Promise; + listCredentials( + request: ListCredentialsRequest + ): Promise; +}; + +export { + CreateCredentialsRequest, + CreateCredentialsRequestExtended, + Credentials, + CredentialsApi, + CredentialsExtended, + ListCredentialsRequest, + ListCredentialsResponse, + UpdateCredentialsRequest +}; diff --git a/mods/types/src/domains.types.ts b/mods/types/src/domains.types.ts new file mode 100644 index 000000000..ba00982b4 --- /dev/null +++ b/mods/types/src/domains.types.ts @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseApiObject, ListRequest, ListResponse } from "./common"; +import { Flatten, RenameAndConvertToTimestamp } from "./utils"; + +type Domain = { + ref: string; + name: string; + domainUri: string; + accessControlListRef?: string; + egressPolicies?: { rule: string; numberRef: string }[]; + createdAt: Date; + updatedAt: Date; +}; + +type DomainExtended = RenameAndConvertToTimestamp & { + extended?: Record; +}; + +type CreateDomainRequest = { + name: string; + domainUri: string; + accessControlListRef?: string; + egressPolicies?: { rule: string; numberRef: string }[]; +}; + +type CreateDomainRequestExtended = CreateDomainRequest & { + extended?: Record; +}; + +type UpdateDomainRequest = Flatten< + BaseApiObject & Omit, "domainUri"> +>; + +type ListDomainsRequest = ListRequest; + +type ListDomainsResponse = ListResponse; + +type ListDomainsResponseExtended = ListResponse; + +type DomainsApi = { + createDomain: (request: CreateDomainRequest) => Promise; + updateDomain: (request: UpdateDomainRequest) => Promise; + getDomain: (ref: string) => Promise; + listDomains: ( + request: ListDomainsRequest + ) => Promise; + deleteDomain: (ref: string) => Promise; +}; + +export { + CreateDomainRequest, + CreateDomainRequestExtended, + Domain, + DomainExtended, + DomainsApi, + ListDomainsRequest, + ListDomainsResponse, + UpdateDomainRequest +}; diff --git a/mods/types/src/identity.types.ts b/mods/types/src/identity.types.ts new file mode 100644 index 000000000..e87f1b78a --- /dev/null +++ b/mods/types/src/identity.types.ts @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ListRequest, ListResponse } from "./common"; + +enum ApiRoleEnum { + WORKSPACE_ADMIN = "WORKSPACE_ADMIN" +} + +type User = { + ref: string; + email: string; + name: string; + avatar: string; + createdAt: Date; + updatedAt: Date; +}; + +type CreateUserRequest = { + name: string; + email: string; + password: string; + avatar: string; +}; + +type CreateApiKeyResponse = { + ref: string; + accessKeyId: string; + accessKeySecret: string; +}; + +type UpdateUserRequest = { + ref: string; + name?: string; + password?: string; + avatar?: string; +}; + +type CreateApiKeyRequest = { + role: ApiRoleEnum; + expiresAt?: number; +}; + +type RegenerateApiKeyResponse = { + ref: string; + accessKeyId: string; + accessKeySecret: string; +}; + +type ApiKey = { + ref: string; + accessKeyId: string; + role: ApiRoleEnum; + expiresAt: Date; + createdAt: Date; + updatedAt: Date; +}; + +type ListApiKeysRequest = ListRequest; + +type ListApiKeysResponse = ListResponse; + +export { + ApiRoleEnum, + CreateApiKeyRequest, + CreateApiKeyResponse, + CreateUserRequest, + ListApiKeysRequest, + ListApiKeysResponse, + RegenerateApiKeyResponse, + UpdateUserRequest, + User +}; diff --git a/mods/types/src/index.ts b/mods/types/src/index.ts index 0b9e62bb2..0ec9be64f 100644 --- a/mods/types/src/index.ts +++ b/mods/types/src/index.ts @@ -1 +1,30 @@ -// Deprecated +export * from "./acls.types"; +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./agents.types"; +export * from "./applications.types"; +export * from "./calls.types"; +export * from "./common"; +export * from "./credentials.types"; +export * from "./domains.types"; +export * from "./identity.types"; +export * from "./numbers.types"; +export * from "./secrets.types"; +export * from "./trunks.types"; +export * from "./workspaces.types"; diff --git a/mods/types/src/numbers.types.ts b/mods/types/src/numbers.types.ts new file mode 100644 index 000000000..7f4e9b0c2 --- /dev/null +++ b/mods/types/src/numbers.types.ts @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseApiObject, ListRequest, ListResponse } from "./common"; +import { TrunkExtended } from "./trunks.types"; +import { Flatten, RenameAndConvertToTimestamp } from "./utils"; + +type INumber = { + ref: string; + name: string; + telUrl: string; + appRef?: string; + agentAor?: string; + city: string; + country: string; + countryIsoCode: string; + trunk?: { + ref: string; + name: string; + }; + createdAt: Date; + updatedAt: Date; +}; + +type CreateNumberRequest = { + name: string; + telUrl: string; + city: string; + country: string; + countryIsoCode: string; + trunkRef?: string; + appRef?: string; + agentAor?: string; +}; + +type UpdateNumberRequest = Flatten< + BaseApiObject & + Omit< + Partial, + "telUrl" | "city" | "country" | "countryIsoCode" + > +>; + +type INumberExtended = RenameAndConvertToTimestamp< + Omit +> & { + aorLink?: string; + trunk?: TrunkExtended; + extended?: Record; + extraHeaders?: { name: string; value: string }[]; +}; + +type CreateNumberRequestExtended = CreateNumberRequest & { + trunkRef?: string; + extended?: Record; + extraHeaders?: { name: string; value: string }[]; +}; + +type ListNumbersRequest = ListRequest; + +type ListNumbersResponse = ListResponse; + +type ListNumbersResponseExtended = ListResponse; + +type NumbersApi = { + createNumber(request: CreateNumberRequestExtended): Promise; + updateNumber(request: UpdateNumberRequest): Promise; + getNumber(ref: string): Promise; + deleteNumber(ref: string): Promise; + listNumbers( + request: ListNumbersRequest + ): Promise; +}; + +export { + CreateNumberRequest, + CreateNumberRequestExtended, + INumber, + INumberExtended, + ListNumbersRequest, + ListNumbersResponse, + NumbersApi, + UpdateNumberRequest +}; diff --git a/mods/types/src/secrets.types.ts b/mods/types/src/secrets.types.ts new file mode 100644 index 000000000..0bef76e12 --- /dev/null +++ b/mods/types/src/secrets.types.ts @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { BaseApiObject, ListRequest, ListResponse } from "./common"; + +type Secret = { + ref: string; + name: string; + secret: string; + createdAt: number; + updatedAt: number; +}; + +type CreateSecretRequest = { + name: string; + secret: string; +}; + +type UpdateSecretRequest = BaseApiObject & Partial; + +type ListSecretsRequest = ListRequest; + +type ListSecretsResponse = ListResponse; + +export { + CreateSecretRequest, + ListSecretsRequest, + ListSecretsResponse, + Secret, + UpdateSecretRequest +}; diff --git a/mods/types/src/trunks.types.ts b/mods/types/src/trunks.types.ts new file mode 100644 index 000000000..32b38ce47 --- /dev/null +++ b/mods/types/src/trunks.types.ts @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { AclExtended } from "./acls.types"; +import { BaseApiObject, ListRequest, ListResponse } from "./common"; +import { CredentialsExtended } from "./credentials.types"; +import { Flatten, RenameAndConvertToTimestamp } from "./utils"; + +enum Transport { + UDP = "UDP", + TCP = "TCP", + TLS = "TLS", + SCTP = "SCTP", + WS = "WS", + WSS = "WSS" +} + +type TrunkURI = { + host: string; + port: number; + transport: Transport; + user?: string; + weight: number; + priority: number; + enabled: boolean; +}; + +type Trunk = { + ref: string; + name: string; + sendRegister: boolean; + inboundUri?: string; + accessControlListRef?: string; + inboundCredentialsRef?: string; + outboundCredentialsRef?: string; + uris?: TrunkURI[]; + createdAt: Date; + updatedAt: Date; +}; + +type TrunkExtended = RenameAndConvertToTimestamp & { + accessControlList?: AclExtended; + inboundCredentials?: CredentialsExtended; + outboundCredentials?: CredentialsExtended; + extended?: Record; +}; + +type CreateTrunkRequest = { + name: string; + sendRegister: boolean; + inboundUri: string; + accessControlListRef?: string; + inboundCredentialsRef?: string; + outboundCredentialsRef?: string; + uris?: TrunkURI[]; +}; + +type CreateTrunkRequestExtended = CreateTrunkRequest & { + extended?: Record; +}; + +type UpdateTrunkRequest = Flatten>; + +type ListTrunksRequest = ListRequest; + +type ListTrunksResponse = ListResponse; + +type ListTrunksResponseExtended = ListResponse; + +type TrunkApi = { + createTrunk(request: CreateTrunkRequest): Promise; + updateTrunk(request: UpdateTrunkRequest): Promise; + getTrunk(ref: string): Promise; + deleteTrunk(ref: string): Promise; + listTrunks(request: ListTrunksRequest): Promise; +}; + +export { + CreateTrunkRequest, + CreateTrunkRequestExtended, + ListTrunksRequest, + ListTrunksResponse, + Transport, + Trunk, + TrunkApi, + TrunkExtended, + UpdateTrunkRequest +}; diff --git a/mods/types/src/utils.ts b/mods/types/src/utils.ts new file mode 100644 index 000000000..d9d24563f --- /dev/null +++ b/mods/types/src/utils.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type Flatten = { [K in keyof T]: T[K] }; + +type RenameAndConvertToTimestamp = Omit & { + createdAt: number; + updatedAt: number; +}; + +export { Flatten, RenameAndConvertToTimestamp }; diff --git a/mods/types/src/workspaces.types.ts b/mods/types/src/workspaces.types.ts new file mode 100644 index 000000000..959084d69 --- /dev/null +++ b/mods/types/src/workspaces.types.ts @@ -0,0 +1,93 @@ +import { ListResponse } from "./common"; + +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +enum WorkspaceRoleEnum { + OWNER = "OWNER", + ADMIN = "ADMIN", + USER = "USER" +} + +enum WorkspaceMemberStatus { + PENDING = "PENDING", + ACTIVE = "ACTIVE" +} + +type Workspace = { + ref: string; + name: string; + ownerRef: string; + accessKeyId: string; + createdAt: Date; + updatedAt: Date; +}; + +type CreateWorkspaceRequest = { + name: string; +}; + +type UpdateWorkspaceRequest = { + ref: string; + name: string; +}; + +type ListWorkspacesResponse = ListResponse; + +type InviteUserToWorkspaceResponse = { + workspaceRef: string; + userRef: string; +}; + +type InviteUserToWorkspaceRequest = { + email: string; + name: string; + role: WorkspaceRoleEnum; + password: string; +}; + +type RemoveUserFromWorkspaceRequest = { + userRef: string; +}; + +type RemoveUserFromWorkspaceResponse = { + userRef: string; +}; + +type ResendWorkspaceMembershipInvitationRequest = { + userRef: string; +}; + +type ResendWorkspaceMembershipInvitationResponse = { + userRef: string; +}; + +export { + CreateWorkspaceRequest, + InviteUserToWorkspaceRequest, + InviteUserToWorkspaceResponse, + ListWorkspacesResponse, + RemoveUserFromWorkspaceRequest, + RemoveUserFromWorkspaceResponse, + ResendWorkspaceMembershipInvitationRequest, + ResendWorkspaceMembershipInvitationResponse, + UpdateWorkspaceRequest, + Workspace, + WorkspaceMemberStatus, + WorkspaceRoleEnum +}; diff --git a/mods/types/tsconfig.json b/mods/types/tsconfig.json index 1354f9a39..5e61eb370 100644 --- a/mods/types/tsconfig.json +++ b/mods/types/tsconfig.json @@ -1,8 +1,8 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "outDir": "dist", + "rootDir": "src" }, - "exclude": ["node_modules", "dist"] + "exclude": ["node_modules", "dist", "test"] } diff --git a/mods/users/.dockerignore b/mods/users/.dockerignore deleted file mode 100644 index b512c09d4..000000000 --- a/mods/users/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/mods/users/.lerna-changed-buster-192 b/mods/users/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/users/.npmignore b/mods/users/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/users/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/users/Dockerfile b/mods/users/Dockerfile deleted file mode 100644 index 06f509a4b..000000000 --- a/mods/users/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -## -## Build and pack the service -## -FROM fonoster/base as builder - -COPY . /scripts -RUN ./install.sh - -## -## Runner -## -FROM fonoster/base as runner - -COPY --from=builder /scripts/fonoster-* . - -RUN apk add --no-cache --update git tini npm nodejs \ - && npm install -g fonoster-*.tgz \ - && apk del npm git - -USER fonoster - -CMD ["run_users"] - -HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ - CMD [ "healthcheck_users" ] \ No newline at end of file diff --git a/mods/users/package-lock.json b/mods/users/package-lock.json deleted file mode 100644 index 96c56283b..000000000 --- a/mods/users/package-lock.json +++ /dev/null @@ -1,1638 +0,0 @@ -{ - "name": "@fonoster/users", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/users", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bcrypt": "^5.0.1", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_users": "dist/service/healthcheck.js", - "run_users": "dist/service/runner.js" - } - }, - "../auth": { - "name": "@fonoster/auth", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - }, - "devDependencies": { - "@types/jsonwebtoken": "^8.5.0" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../core": { - "name": "@fonoster/core", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/auth": "^0.3.3", - "@fonoster/certs": "^0.3.3", - "@fonoster/common": "^0.3.3", - "@fonoster/errors": "^0.3.3", - "@fonoster/logger": "^0.3.3", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "grpc-ts-health-check": "^2.0.6", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "devDependencies": { - "@types/btoa": "^1.2.3", - "@types/ioredis": "^4.16.5" - } - }, - "../errors": { - "name": "@fonoster/errors", - "version": "0.3.3", - "extraneous": true, - "license": "MIT" - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.3.3", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.3.3" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz", - "integrity": "sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg==", - "dependencies": { - "detect-libc": "^1.0.3", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.5", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "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/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/bcrypt": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz", - "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==", - "hasInstallScript": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/bson-objectid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.3.tgz", - "integrity": "sha512-WYwVtY9yqk179EPMNuF3vcxufdrGLEo2XwqdRVbfLVe9X6jLt7WKZQgP+ObOcprakBGbHxzl76tgTaieqsH29g==" - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "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/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/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/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "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/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "peer": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "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/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "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/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/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "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.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "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/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "optional": true, - "peer": true - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "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/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/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "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/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "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/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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/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" - } - } - }, - "dependencies": { - "@grpc/grpc-js": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.7.tgz", - "integrity": "sha512-RAlSbZ9LXo0wNoHKeUlwP9dtGgVBDUbnBKFpfAv5iSqMG4qWz9um2yLH215+Wow1I48etIa1QMS+WAGmsE/7HQ==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz", - "integrity": "sha512-UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.2.0" - } - }, - "@mapbox/node-pre-gyp": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz", - "integrity": "sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg==", - "requires": { - "detect-libc": "^1.0.3", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.5", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - } - }, - "@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "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" - } - }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "bcrypt": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz", - "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==", - "requires": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^3.1.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "bson-objectid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.3.tgz", - "integrity": "sha512-WYwVtY9yqk179EPMNuF3vcxufdrGLEo2XwqdRVbfLVe9X6jLt7WKZQgP+ObOcprakBGbHxzl76tgTaieqsH29g==" - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "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" - } - }, - "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==" - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, - "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==" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "peer": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "peer": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - } - }, - "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==" - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==" - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "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==" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "requires": { - "abbrev": "1" - } - }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "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" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "optional": true, - "peer": true - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "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==" - }, - "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" - } - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "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" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "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==" - } - } -} diff --git a/mods/users/package.json b/mods/users/package.json deleted file mode 100644 index 9be0ed1ba..000000000 --- a/mods/users/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "@fonoster/users", - "version": "0.3.22", - "description": "System wide Users", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/client/users", - "types": "dist/client/users", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "postbuild": "cp -a ./src/service/protos/ ./dist/service/protos", - "build": "tsc -b tsconfig.json", - "start": "cross-env NODE_ENV=dev nodemon src/srv_runner" - }, - "bin": { - "run_users": "dist/service/runner.js", - "healthcheck_users": "dist/service/healthcheck.js" - }, - "nodemonConfig": { - "watch": [ - "../" - ], - "ext": "ts", - "exec": "ts-node", - "ignore": "**/*.d.ts" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "dependencies": { - "@fonoster/auth": "^0.3.22", - "@fonoster/certs": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/core": "^0.3.22", - "@fonoster/errors": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bcrypt": "^5.0.1", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/users/src/client/types.ts b/mods/users/src/client/types.ts deleted file mode 100644 index e26bbee6c..000000000 --- a/mods/users/src/client/types.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface IUsersClient { - listUsers(request: ListUsersRequest): Promise; - createUser(request: CreateUserRequest): Promise; - getUser(ref: string): Promise; - updateUser(request: UpdateUserRequest): Promise; - deleteUser(ref: string): Promise; - createUserCredentials( - request: CreateUserCredentialsRequest - ): Promise; -} - -export interface ListUsersRequest { - email?: string; -} -export interface ListUsersResponse { - users: User[]; -} - -export interface User { - ref: string; - accessKeyId: string; - email: string; - name: string; - avatar?: string; - createTime: string; - updateTime: string; -} - -export interface CreateUserCredentialsRequest { - email: string; - secret: string; - expiration?: string; -} - -export interface CreateUserCredentialsResponse { - accessKeyId: string; - accessKeySecret: string; -} - -export interface CreateUserRequest { - email: string; - name: string; - secret: string; - avatar?: string; -} - -export interface CreateUserResponse { - ref: string; - accessKeyId: string; - email: string; - name: string; - avatar?: string; - createTime: string; - updateTime: string; -} - -export interface UpdateUserRequest { - ref: string; - email?: string; - name?: string; - secret?: string; - avatar?: string; - limiter?: string; - status?: string; -} - -export interface UpdateUserResponse { - ref: string; -} - -export interface GetUserRequest { - ref: string; -} - -export interface GetUserResponse { - ref: string; - accessKeyId: string; - email: string; - name: string; - avatar: string; - createTime: string; - updateTime: string; - limiter: string; - status: string; -} - -export interface DeleteUserRequest { - ref: string; -} - -export interface DeleteUserResponse { - ref: string; -} diff --git a/mods/users/src/client/users.ts b/mods/users/src/client/users.ts deleted file mode 100644 index 8bb2d960a..000000000 --- a/mods/users/src/client/users.ts +++ /dev/null @@ -1,287 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { APIClient, ClientOptions } from "@fonoster/common"; -import { UsersClient } from "../service/protos/users_grpc_pb"; -import UsersPB from "../service/protos/users_pb"; -import CommonPB from "../service/protos/common_pb"; -import { promisifyAll } from "grpc-promise"; -import { - CreateUserRequest, - CreateUserResponse, - DeleteUserResponse, - GetUserResponse, - CreateUserCredentialsRequest, - UpdateUserRequest, - UpdateUserResponse, - CreateUserCredentialsResponse, - IUsersClient, - ListUsersRequest, - ListUsersResponse, - User -} from "./types"; - -/** - * @classdesc Use Fonoster Users, a capability of Fonoster, - * to create, update, get and delete Users. Users requires of a - * running Fonoster deployment. - * - * @extends APIClient - * @example - * - * const Fonoster = require("@fonoster/sdk") - * const users = new Fonoster.Users() - * - * const request = { - * email: "john.doe@email.com", - * name: "John Doe", - * secret: "s3cur3pass", - * avatar: "https://avatar.com/avt?userId=2124252" - * } - * - * users.createUser(request) - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)) // an error occurred - */ -export default class Users extends APIClient implements IUsersClient { - /** - * Constructs a new Users object. - * - * @param {ClientOptions} options - Options to indicate the objects endpoint - * @see module:core:APIClient - */ - constructor(options?: ClientOptions) { - super(UsersClient, options); - super.init(); - promisifyAll(super.getService(), { metadata: super.getMeta() }); - } - - /** - * Return a list of Users. - * - * @param {ListUsersRequest} request - Request filters - * @param {string} request.email - Optional email filter - * @return {Promise} - * @example - * - * projects.listUsers({ email: "john.doe@email.com" }) - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)) // an error occurred - */ - async listUsers(request?: ListUsersRequest): Promise { - const res = new UsersPB.ListUsersRequest(); - res.getFiltersMap().set("email", request.email); - - const paginatedList = await super.getService().listUsers().sendMessage(res); - - return { - users: paginatedList.getUsersList().map((p: UsersPB.User) => { - return { - ref: p.getRef(), - accessKeyId: p.getAccessKeyId(), - email: p.getEmail(), - name: p.getName(), - avatar: p.getAvatar(), - createTime: p.getCreateTime(), - updateTime: p.getUpdateTime() - }; - }) - }; - } - - /** - * Create a new Fonoster User. - * - * @param {CreateUserRequest} request - Request for the provision of a new User - * @param {string} request.email - User's email - * @param {string} request.name - User's full name - * @param {string} request.secret - Login password - * @param {string} request.avatar - Optional URL to User's avatar - * @return {Promise} - * @example - * - * const request = { - * email: "john.doe@email.com", - * name: "John Doe", - * secret: "s3cur3pass", - * avatar: "https://avatar.com/avt?userId=2124252" - * } - * - * users.createUser(request) - * .then(result => { - * console.log(result) // successful response - * }).catch(e => console.error(e)) // an error occurred - */ - async createUser(request: CreateUserRequest): Promise { - const user = new UsersPB.CreateUserRequest(); - user.setEmail(request.email); - user.setName(request.name); - user.setSecret(request.secret); - user.setAvatar(request.avatar); - - const res = await super.getService().createUser().sendMessage(user); - - return { - ref: res.getRef(), - accessKeyId: res.getAccessKeyId(), - email: res.getEmail(), - name: res.getName(), - avatar: res.getAvatar(), - createTime: res.getCreateTime(), - updateTime: res.getUpdateTime() - }; - } - - /** - * Retrives an User by reference. - * - * @param {string} ref - Reference to User - * @return {Promise} The User - * @throws if ref is null or User does not exist - * @example - * - * const ref = "507f1f77bcf86cd799439011"; - * - * users.getUser(ref) - * .then(result => { - * console.log(result) // returns the User payload - * }).catch(e => console.error(e)) // an error occurred - */ - async getUser(ref: string): Promise { - const request = new UsersPB.GetUserRequest(); - request.setRef(ref); - const res = await super.getService().getUser().sendMessage(request); - - return { - ref: res.getRef(), - accessKeyId: res.getAccessKeyId(), - email: res.getEmail(), - name: res.getName(), - avatar: res.getAvatar(), - createTime: res.getCreateTime(), - updateTime: res.getUpdateTime(), - limiter: res.getLimiter(), - status: res.getStatus() - }; - } - - /** - * Update a Fonoster User. - * - * @param {UpdateUserRequest} request - Request update of an User - * @param {string} request.ref - Required reference to the User - * @param {string} request.name - Optionally update the name - * @param {string} request.avatar - Optionally update the avatar - * @param {string} request.secret - Optionally update User's password - * @return {Promise} - * @example - * - * const request = { - * name: "John Dee", - * secret: "s3cur3pass" - * } - * - * users.updateUser(request) - * .then(result => { - * console.log(result) // returns the UpdateUserResponse payload - * }).catch(e => console.error(e)) // an error occurred - */ - async updateUser(request: UpdateUserRequest): Promise { - const req = new UsersPB.UpdateUserRequest(); - req.setRef(request.ref); - if (request.name) req.setName(request.name); - if (request.secret) req.setSecret(request.secret); - if (request.avatar) req.setAvatar(request.avatar); - if (request.status) req.setStatus(request.status); - if (request.limiter) req.setLimiter(request.limiter); - - const res = await super.getService().updateUser().sendMessage(req); - - return { - ref: res.getRef() - }; - } - - /** - * Delete an Fonoster User. - * - * @param {string} ref - User's reference - * @example - * - * const ref = "507f1f77bcf86cd799439011" - * - * users.deleteUser(ref) - * .then(() => { - * console.log("done") // returns a reference of the User - * }).catch(e => console.error(e)) // an error occurred - */ - async deleteUser(ref: string): Promise { - const req = new UsersPB.DeleteUserRequest(); - req.setRef(ref); - await super.getService().deleteUser().sendMessage(req); - return { ref }; - } - - /** - * Login using email and a password. - * - * @param {createUserCredentials} request - Request update of an User - * @param {string} request.email - Login username - * @param {string} request.secret - Login password - * @example - * - * const request = { - * email: "john.doe@email.com", - * secret: "s3cur3pass", - * expiration: "30d" - * } - * - * users.createUserCredentials(request) - * .then(result => { - * console.log(result) // returns an accessKeyId and accessKeySecret - * }).catch(e => console.error(e)) // an error occurred - */ - async createUserCredentials( - request: CreateUserCredentialsRequest - ): Promise { - const req = new UsersPB.CreateUserCredentialsRequest(); - req.setEmail(request.email); - req.setSecret(request.secret); - - if (request.expiration) req.setExpiration(request.expiration); - - const res = await super - .getService() - .createUserCredentials() - .sendMessage(req); - - return { - accessKeyId: res.getAccessKeyId(), - accessKeySecret: res.getAccessKeySecret() - }; - } -} - -export { User, UsersPB, CommonPB, IUsersClient }; - -// WARNING: Workaround for support to commonjs clients -module.exports = Users; -module.exports.UsersPB = UsersPB; -module.exports.CommonPB = CommonPB; diff --git a/mods/users/src/protos/users.proto b/mods/users/src/protos/users.proto deleted file mode 100644 index 8737d786c..000000000 --- a/mods/users/src/protos/users.proto +++ /dev/null @@ -1,130 +0,0 @@ -/** -* MIT License -* Copyright (c) 2021 Fonoster Inc -* -* The Users proto contains the artificats for the administration -* of Users. -*/ -syntax = "proto3"; - -package fonoster.users.v1beta1; - -option go_package = "github.com/fonoster/fonoster/mods/users/fonoster/services/protos/users"; - -import "protoc-gen-openapiv2/options/annotations.proto"; -import "google/api/annotations.proto"; -import "google/api/field_behavior.proto"; -import "common.proto"; - -service Users { - // Lists all the Users you have access to - rpc ListUsers (ListUsersRequest) returns (ListUsersResponse) { - option (google.api.http) = { get: "/v1beta1/users" }; - }; - // Creates a new User resource - rpc CreateUser (CreateUserRequest) returns (User) { - option (google.api.http) = { - post: "/v1beta1/users" - body: "*" - }; - }; - // Gets User by reference - rpc GetUser (GetUserRequest) returns (User) { - option (google.api.http) = { get: "/v1beta1/users/{ref}" }; - }; - // Change or update fields in a resource - rpc UpdateUser (UpdateUserRequest) returns (User) { - option (google.api.http) = { - put: "/v1beta1/users/{ref}" - body: "*" - }; - }; - // WARNING: Hard delete of an User will remove all related projects and its resources. - rpc DeleteUser (DeleteUserRequest) returns (fonoster.common.v1beta1.Empty) { - option (google.api.http) = { delete: "/v1beta1/users/{ref}" }; - }; - // Creates a set of credentials - rpc CreateUserCredentials (CreateUserCredentialsRequest) returns (CreateUserCredentialsResponse) { - option (google.api.http) = { - post: "/v1beta1/users/credentials" - body: "*" - }; - }; -} - -message ListUsersRequest { - map filters = 1; -} - -message ListUsersResponse { - repeated User users = 1; -} - -message CreateUserCredentialsRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"email\": \"john.doe@fonoster.io\", \"secret\": \"$U@tl0125\", \"expiration\": \"7d\"}" - }; - string email = 1; - string secret = 2; - string expiration = 3; -} - -message CreateUserCredentialsResponse { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"accessKeyId\": \"407f1679010c19729de860rp\", \"accessKeySecret\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"}" - }; - string access_key_id = 1; - string access_key_secret = 2; -} - -message CreateUserRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"email\": \"john.doe@fonoster.io\", \"name\": \"John Doe\", \"secret\": \"$U@tl0125\", \"avatar\": \"https://avatar.net/0121323/image.jpg\"}" - }; - string email = 1 [(google.api.field_behavior) = REQUIRED]; - string name = 2 [(google.api.field_behavior) = REQUIRED]; - string secret = 3 [(google.api.field_behavior) = REQUIRED]; - // Url to the User's avatar - string avatar = 4; -} - -message UpdateUserRequest { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"ref\": \"407f1679010c19729de860rp\", \"name\": \"John Doe\", \"avatar\": \"https://avatar.net/0121323/image.jpg\"}" - }; - // User's reference - string ref = 1; - string name = 2; - string secret = 3; - string avatar = 4; - // Only an elevated user can change the user's status - string status = 5; - // Only an elevated user can change the user's limiter - string limiter = 6; -} - -message GetUserRequest { - // User's reference - string ref = 1; -} - -message DeleteUserRequest { - // User's reference - string ref = 1; -} - -message User { - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { - example: "{\"ref\": \"407f1679010c19729de860rp\", \"accessKeyId\": \"407f1679010c19729de860rp\", \"email\": \"john.doe@acme.com\", \"name\": \"John Doe\", \"avatar\": \"https://avatar.net/0121323/image.jpg\", \"createTime\": \"2021-10-05T13:23:07.221Z\", \"updateTime\": \"2021-10-05T13:23:07.221Z\"}" - }; - // User's reference - string ref = 1 [(google.api.field_behavior) = REQUIRED]; - string access_key_id = 2 [(google.api.field_behavior) = REQUIRED]; - string email = 3 [(google.api.field_behavior) = REQUIRED]; - string name = 4 [(google.api.field_behavior) = REQUIRED]; - string avatar = 5; - string create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - string update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - string status = 8; - string limiter = 9; -} diff --git a/mods/users/src/service/assertions.ts b/mods/users/src/service/assertions.ts deleted file mode 100644 index ee24fbe36..000000000 --- a/mods/users/src/service/assertions.ts +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { FonosterError, ErrorCodes } from "@fonoster/errors"; - -export const assertValidEmail = (email: string): void => { - if (/\S+@\S+\.\S+/.test(email) == false) - throw new FonosterError( - `invalid email: ${email}`, - ErrorCodes.INVALID_ARGUMENT - ); -}; - -// TODO: Move to @fonoster/common -export const assertNotEmpty = (name: string, value: string): void => { - if (value.length == 0) - throw new FonosterError( - `the parameter '${name}' is required but was not found`, - ErrorCodes.INVALID_ARGUMENT - ); -}; - -export const assertValidURL = (url: string): void => { - if ( - url && - /(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/g.test( - url - ) == false - ) { - throw new FonosterError(`invalid url: ${url}`, ErrorCodes.INVALID_ARGUMENT); - } -}; diff --git a/mods/users/src/service/decoder.ts b/mods/users/src/service/decoder.ts deleted file mode 100644 index a49a44899..000000000 --- a/mods/users/src/service/decoder.ts +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { User } from "./protos/users_pb"; - -export default (raw: string): User => { - const userJSON = JSON.parse(raw); - const user = new User(); - user.setRef(userJSON.ref); - user.setAccessKeyId(userJSON.accessKeyId); - user.setEmail(userJSON.email); - user.setName(userJSON.name); - user.setAvatar(userJSON.avatar); - user.setCreateTime(userJSON.createTime); - user.setUpdateTime(userJSON.updateTime); - user.setLimiter(userJSON.limiter); - user.setStatus(userJSON.status); - return user; -}; diff --git a/mods/users/src/service/encoder.ts b/mods/users/src/service/encoder.ts deleted file mode 100644 index 3fdc2d2ec..000000000 --- a/mods/users/src/service/encoder.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { User } from "./protos/users_pb"; - -export default (user: User, secretHash: string): string => { - const userJSON = { - ref: user.getRef(), - accessKeyId: user.getAccessKeyId(), - email: user.getEmail(), - name: user.getName(), - avatar: user.getAvatar(), - createTime: user.getCreateTime(), - updateTime: user.getUpdateTime(), - limiter: user.getLimiter(), - status: user.getStatus(), - secretHash - }; - return JSON.stringify(userJSON); -}; diff --git a/mods/users/src/service/healthcheck.ts b/mods/users/src/service/healthcheck.ts deleted file mode 100644 index 05ab1a96f..000000000 --- a/mods/users/src/service/healthcheck.ts +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { healthcheck } from "@fonoster/common"; -healthcheck(); diff --git a/mods/users/src/service/protos/common_grpc_pb.js b/mods/users/src/service/protos/common_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/users/src/service/protos/common_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/users/src/service/protos/common_pb.d.ts b/mods/users/src/service/protos/common_pb.d.ts deleted file mode 100644 index f8b5fb810..000000000 --- a/mods/users/src/service/protos/common_pb.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -// package: fonoster.common.v1beta1 -// file: common.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; - -export class Empty extends jspb.Message { - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Empty.AsObject; - static toObject(includeInstance: boolean, msg: Empty): Empty.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Empty, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Empty; - static deserializeBinaryFromReader(message: Empty, reader: jspb.BinaryReader): Empty; -} - -export namespace Empty { - export type AsObject = { - } -} - -export class ErrorResponse extends jspb.Message { - getStatus(): number; - setStatus(value: number): ErrorResponse; - getMessage(): string; - setMessage(value: string): ErrorResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ErrorResponse.AsObject; - static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ErrorResponse; - static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse; -} - -export namespace ErrorResponse { - export type AsObject = { - status: number, - message: string, - } -} - -export enum View { - BASIC = 0, - STANDARD = 1, - FULL = 2, -} diff --git a/mods/users/src/service/protos/common_pb.js b/mods/users/src/service/protos/common_pb.js deleted file mode 100644 index b7f99c7ea..000000000 --- a/mods/users/src/service/protos/common_pb.js +++ /dev/null @@ -1,335 +0,0 @@ -// source: common.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -goog.exportSymbol('proto.fonoster.common.v1beta1.Empty', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.ErrorResponse', null, global); -goog.exportSymbol('proto.fonoster.common.v1beta1.View', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.Empty = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.Empty, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.Empty.displayName = 'proto.fonoster.common.v1beta1.Empty'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.common.v1beta1.ErrorResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.common.v1beta1.ErrorResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.common.v1beta1.ErrorResponse.displayName = 'proto.fonoster.common.v1beta1.ErrorResponse'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.Empty.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.Empty.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.Empty} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.toObject = function(includeInstance, msg) { - var f, obj = { - - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.Empty; - return proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.Empty} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.Empty} - */ -proto.fonoster.common.v1beta1.Empty.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.Empty.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.Empty} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.Empty.serializeBinaryToWriter = function(message, writer) { - var f = undefined; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.common.v1beta1.ErrorResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.toObject = function(includeInstance, msg) { - var f, obj = { - status: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.common.v1beta1.ErrorResponse; - return proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} - */ -proto.fonoster.common.v1beta1.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {number} */ (reader.readInt32()); - msg.setStatus(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.common.v1beta1.ErrorResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.common.v1beta1.ErrorResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getStatus(); - if (f !== 0) { - writer.writeInt32( - 1, - f - ); - } - f = message.getMessage(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional int32 status = 1; - * @return {number} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getStatus = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setStatus = function(value) { - return jspb.Message.setProto3IntField(this, 1, value); -}; - - -/** - * optional string message = 2; - * @return {string} - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.common.v1beta1.ErrorResponse} returns this - */ -proto.fonoster.common.v1beta1.ErrorResponse.prototype.setMessage = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * @enum {number} - */ -proto.fonoster.common.v1beta1.View = { - BASIC: 0, - STANDARD: 1, - FULL: 2 -}; - -goog.object.extend(exports, proto.fonoster.common.v1beta1); diff --git a/mods/users/src/service/protos/google/api/annotations_grpc_pb.js b/mods/users/src/service/protos/google/api/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/users/src/service/protos/google/api/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/users/src/service/protos/google/api/annotations_pb.d.ts b/mods/users/src/service/protos/google/api/annotations_pb.d.ts deleted file mode 100644 index 06072f3bd..000000000 --- a/mods/users/src/service/protos/google/api/annotations_pb.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -// package: google.api -// file: google/api/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_api_http_pb from "../../google/api/http_pb"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const http: jspb.ExtensionFieldInfo; diff --git a/mods/users/src/service/protos/google/api/annotations_pb.js b/mods/users/src/service/protos/google/api/annotations_pb.js deleted file mode 100644 index 99e4c1824..000000000 --- a/mods/users/src/service/protos/google/api/annotations_pb.js +++ /dev/null @@ -1,48 +0,0 @@ -// source: google/api/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_api_http_pb = require('../../google/api/http_pb.js'); -goog.object.extend(proto, google_api_http_pb); -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.http', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `http`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.google.api.http = new jspb.ExtensionFieldInfo( - 72295728, - {http: 0}, - google_api_http_pb.HttpRule, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - google_api_http_pb.HttpRule.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[72295728] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.http, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - google_api_http_pb.HttpRule.serializeBinaryToWriter, - google_api_http_pb.HttpRule.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[72295728] = proto.google.api.http; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/users/src/service/protos/google/api/field_behavior_grpc_pb.js b/mods/users/src/service/protos/google/api/field_behavior_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/users/src/service/protos/google/api/field_behavior_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/users/src/service/protos/google/api/field_behavior_pb.d.ts b/mods/users/src/service/protos/google/api/field_behavior_pb.d.ts deleted file mode 100644 index 9b853705f..000000000 --- a/mods/users/src/service/protos/google/api/field_behavior_pb.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -// package: google.api -// file: google/api/field_behavior.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; - -export const fieldBehavior: jspb.ExtensionFieldInfo; - -export enum FieldBehavior { - FIELD_BEHAVIOR_UNSPECIFIED = 0, - OPTIONAL = 1, - REQUIRED = 2, - OUTPUT_ONLY = 3, - INPUT_ONLY = 4, - IMMUTABLE = 5, - UNORDERED_LIST = 6, - NON_EMPTY_DEFAULT = 7, -} diff --git a/mods/users/src/service/protos/google/api/field_behavior_pb.js b/mods/users/src/service/protos/google/api/field_behavior_pb.js deleted file mode 100644 index 44160cc41..000000000 --- a/mods/users/src/service/protos/google/api/field_behavior_pb.js +++ /dev/null @@ -1,61 +0,0 @@ -// source: google/api/field_behavior.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -goog.exportSymbol('proto.google.api.FieldBehavior', null, global); -goog.exportSymbol('proto.google.api.fieldBehaviorList', null, global); -/** - * @enum {number} - */ -proto.google.api.FieldBehavior = { - FIELD_BEHAVIOR_UNSPECIFIED: 0, - OPTIONAL: 1, - REQUIRED: 2, - OUTPUT_ONLY: 3, - INPUT_ONLY: 4, - IMMUTABLE: 5, - UNORDERED_LIST: 6, - NON_EMPTY_DEFAULT: 7 -}; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `fieldBehaviorList`. - * @type {!jspb.ExtensionFieldInfo>} - */ -proto.google.api.fieldBehaviorList = new jspb.ExtensionFieldInfo( - 1052, - {fieldBehaviorList: 0}, - null, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - null), - 1); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1052] = new jspb.ExtensionFieldBinaryInfo( - proto.google.api.fieldBehaviorList, - jspb.BinaryReader.prototype.readPackedEnum, - jspb.BinaryWriter.prototype.writePackedEnum, - undefined, - undefined, - true); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1052] = proto.google.api.fieldBehaviorList; - -goog.object.extend(exports, proto.google.api); diff --git a/mods/users/src/service/protos/google/api/http_grpc_pb.js b/mods/users/src/service/protos/google/api/http_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/users/src/service/protos/google/api/http_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/users/src/service/protos/google/api/http_pb.d.ts b/mods/users/src/service/protos/google/api/http_pb.d.ts deleted file mode 100644 index 02c3b1ece..000000000 --- a/mods/users/src/service/protos/google/api/http_pb.d.ts +++ /dev/null @@ -1,135 +0,0 @@ -// package: google.api -// file: google/api/http.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; - -export class Http extends jspb.Message { - clearRulesList(): void; - getRulesList(): Array; - setRulesList(value: Array): Http; - addRules(value?: HttpRule, index?: number): HttpRule; - getFullyDecodeReservedExpansion(): boolean; - setFullyDecodeReservedExpansion(value: boolean): Http; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Http.AsObject; - static toObject(includeInstance: boolean, msg: Http): Http.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Http, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Http; - static deserializeBinaryFromReader(message: Http, reader: jspb.BinaryReader): Http; -} - -export namespace Http { - export type AsObject = { - rulesList: Array, - fullyDecodeReservedExpansion: boolean, - } -} - -export class HttpRule extends jspb.Message { - getSelector(): string; - setSelector(value: string): HttpRule; - - hasGet(): boolean; - clearGet(): void; - getGet(): string; - setGet(value: string): HttpRule; - - hasPut(): boolean; - clearPut(): void; - getPut(): string; - setPut(value: string): HttpRule; - - hasPost(): boolean; - clearPost(): void; - getPost(): string; - setPost(value: string): HttpRule; - - hasDelete(): boolean; - clearDelete(): void; - getDelete(): string; - setDelete(value: string): HttpRule; - - hasPatch(): boolean; - clearPatch(): void; - getPatch(): string; - setPatch(value: string): HttpRule; - - hasCustom(): boolean; - clearCustom(): void; - getCustom(): CustomHttpPattern | undefined; - setCustom(value?: CustomHttpPattern): HttpRule; - getBody(): string; - setBody(value: string): HttpRule; - getResponseBody(): string; - setResponseBody(value: string): HttpRule; - clearAdditionalBindingsList(): void; - getAdditionalBindingsList(): Array; - setAdditionalBindingsList(value: Array): HttpRule; - addAdditionalBindings(value?: HttpRule, index?: number): HttpRule; - - getPatternCase(): HttpRule.PatternCase; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpRule.AsObject; - static toObject(includeInstance: boolean, msg: HttpRule): HttpRule.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpRule, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpRule; - static deserializeBinaryFromReader(message: HttpRule, reader: jspb.BinaryReader): HttpRule; -} - -export namespace HttpRule { - export type AsObject = { - selector: string, - get: string, - put: string, - post: string, - pb_delete: string, - patch: string, - custom?: CustomHttpPattern.AsObject, - body: string, - responseBody: string, - additionalBindingsList: Array, - } - - export enum PatternCase { - PATTERN_NOT_SET = 0, - GET = 2, - PUT = 3, - POST = 4, - DELETE = 5, - PATCH = 6, - CUSTOM = 8, - } - -} - -export class CustomHttpPattern extends jspb.Message { - getKind(): string; - setKind(value: string): CustomHttpPattern; - getPath(): string; - setPath(value: string): CustomHttpPattern; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CustomHttpPattern.AsObject; - static toObject(includeInstance: boolean, msg: CustomHttpPattern): CustomHttpPattern.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CustomHttpPattern, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CustomHttpPattern; - static deserializeBinaryFromReader(message: CustomHttpPattern, reader: jspb.BinaryReader): CustomHttpPattern; -} - -export namespace CustomHttpPattern { - export type AsObject = { - kind: string, - path: string, - } -} diff --git a/mods/users/src/service/protos/google/api/http_pb.js b/mods/users/src/service/protos/google/api/http_pb.js deleted file mode 100644 index 0359c5eec..000000000 --- a/mods/users/src/service/protos/google/api/http_pb.js +++ /dev/null @@ -1,1006 +0,0 @@ -// source: google/api/http.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -goog.exportSymbol('proto.google.api.CustomHttpPattern', null, global); -goog.exportSymbol('proto.google.api.Http', null, global); -goog.exportSymbol('proto.google.api.HttpRule', null, global); -goog.exportSymbol('proto.google.api.HttpRule.PatternCase', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.Http = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.Http.repeatedFields_, null); -}; -goog.inherits(proto.google.api.Http, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.Http.displayName = 'proto.google.api.Http'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpRule = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpRule.repeatedFields_, proto.google.api.HttpRule.oneofGroups_); -}; -goog.inherits(proto.google.api.HttpRule, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpRule.displayName = 'proto.google.api.HttpRule'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.CustomHttpPattern = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.google.api.CustomHttpPattern, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.CustomHttpPattern.displayName = 'proto.google.api.CustomHttpPattern'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.Http.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.Http.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.Http.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.Http} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.toObject = function(includeInstance, msg) { - var f, obj = { - rulesList: jspb.Message.toObjectList(msg.getRulesList(), - proto.google.api.HttpRule.toObject, includeInstance), - fullyDecodeReservedExpansion: jspb.Message.getBooleanFieldWithDefault(msg, 2, false) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.Http; - return proto.google.api.Http.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.Http} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.Http} - */ -proto.google.api.Http.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addRules(value); - break; - case 2: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setFullyDecodeReservedExpansion(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.Http.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.Http.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.Http} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.Http.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRulesList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } - f = message.getFullyDecodeReservedExpansion(); - if (f) { - writer.writeBool( - 2, - f - ); - } -}; - - -/** - * repeated HttpRule rules = 1; - * @return {!Array} - */ -proto.google.api.Http.prototype.getRulesList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.Http} returns this -*/ -proto.google.api.Http.prototype.setRulesList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.Http.prototype.addRules = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.clearRulesList = function() { - return this.setRulesList([]); -}; - - -/** - * optional bool fully_decode_reserved_expansion = 2; - * @return {boolean} - */ -proto.google.api.Http.prototype.getFullyDecodeReservedExpansion = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.google.api.Http} returns this - */ -proto.google.api.Http.prototype.setFullyDecodeReservedExpansion = function(value) { - return jspb.Message.setProto3BooleanField(this, 2, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpRule.repeatedFields_ = [11]; - -/** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} - * @const - */ -proto.google.api.HttpRule.oneofGroups_ = [[2,3,4,5,6,8]]; - -/** - * @enum {number} - */ -proto.google.api.HttpRule.PatternCase = { - PATTERN_NOT_SET: 0, - GET: 2, - PUT: 3, - POST: 4, - DELETE: 5, - PATCH: 6, - CUSTOM: 8 -}; - -/** - * @return {proto.google.api.HttpRule.PatternCase} - */ -proto.google.api.HttpRule.prototype.getPatternCase = function() { - return /** @type {proto.google.api.HttpRule.PatternCase} */(jspb.Message.computeOneofCase(this, proto.google.api.HttpRule.oneofGroups_[0])); -}; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpRule.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpRule.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpRule} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.toObject = function(includeInstance, msg) { - var f, obj = { - selector: jspb.Message.getFieldWithDefault(msg, 1, ""), - get: jspb.Message.getFieldWithDefault(msg, 2, ""), - put: jspb.Message.getFieldWithDefault(msg, 3, ""), - post: jspb.Message.getFieldWithDefault(msg, 4, ""), - pb_delete: jspb.Message.getFieldWithDefault(msg, 5, ""), - patch: jspb.Message.getFieldWithDefault(msg, 6, ""), - custom: (f = msg.getCustom()) && proto.google.api.CustomHttpPattern.toObject(includeInstance, f), - body: jspb.Message.getFieldWithDefault(msg, 7, ""), - responseBody: jspb.Message.getFieldWithDefault(msg, 12, ""), - additionalBindingsList: jspb.Message.toObjectList(msg.getAdditionalBindingsList(), - proto.google.api.HttpRule.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpRule; - return proto.google.api.HttpRule.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpRule} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSelector(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setGet(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setPut(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPost(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDelete(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setPatch(value); - break; - case 8: - var value = new proto.google.api.CustomHttpPattern; - reader.readMessage(value,proto.google.api.CustomHttpPattern.deserializeBinaryFromReader); - msg.setCustom(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setBody(value); - break; - case 12: - var value = /** @type {string} */ (reader.readString()); - msg.setResponseBody(value); - break; - case 11: - var value = new proto.google.api.HttpRule; - reader.readMessage(value,proto.google.api.HttpRule.deserializeBinaryFromReader); - msg.addAdditionalBindings(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpRule.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpRule.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpRule} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpRule.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSelector(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 2)); - if (f != null) { - writer.writeString( - 2, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { - writer.writeString( - 3, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 4)); - if (f != null) { - writer.writeString( - 4, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 5)); - if (f != null) { - writer.writeString( - 5, - f - ); - } - f = /** @type {string} */ (jspb.Message.getField(message, 6)); - if (f != null) { - writer.writeString( - 6, - f - ); - } - f = message.getCustom(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.google.api.CustomHttpPattern.serializeBinaryToWriter - ); - } - f = message.getBody(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getResponseBody(); - if (f.length > 0) { - writer.writeString( - 12, - f - ); - } - f = message.getAdditionalBindingsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 11, - f, - proto.google.api.HttpRule.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string selector = 1; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getSelector = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setSelector = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string get = 2; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getGet = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setGet = function(value) { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearGet = function() { - return jspb.Message.setOneofField(this, 2, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasGet = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string put = 3; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPut = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPut = function(value) { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPut = function() { - return jspb.Message.setOneofField(this, 3, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPut = function() { - return jspb.Message.getField(this, 3) != null; -}; - - -/** - * optional string post = 4; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPost = function(value) { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPost = function() { - return jspb.Message.setOneofField(this, 4, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPost = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string delete = 5; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getDelete = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setDelete = function(value) { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearDelete = function() { - return jspb.Message.setOneofField(this, 5, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasDelete = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string patch = 6; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getPatch = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setPatch = function(value) { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearPatch = function() { - return jspb.Message.setOneofField(this, 6, proto.google.api.HttpRule.oneofGroups_[0], undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasPatch = function() { - return jspb.Message.getField(this, 6) != null; -}; - - -/** - * optional CustomHttpPattern custom = 8; - * @return {?proto.google.api.CustomHttpPattern} - */ -proto.google.api.HttpRule.prototype.getCustom = function() { - return /** @type{?proto.google.api.CustomHttpPattern} */ ( - jspb.Message.getWrapperField(this, proto.google.api.CustomHttpPattern, 8)); -}; - - -/** - * @param {?proto.google.api.CustomHttpPattern|undefined} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setCustom = function(value) { - return jspb.Message.setOneofWrapperField(this, 8, proto.google.api.HttpRule.oneofGroups_[0], value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearCustom = function() { - return this.setCustom(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.google.api.HttpRule.prototype.hasCustom = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * optional string body = 7; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setBody = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string response_body = 12; - * @return {string} - */ -proto.google.api.HttpRule.prototype.getResponseBody = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.setResponseBody = function(value) { - return jspb.Message.setProto3StringField(this, 12, value); -}; - - -/** - * repeated HttpRule additional_bindings = 11; - * @return {!Array} - */ -proto.google.api.HttpRule.prototype.getAdditionalBindingsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.google.api.HttpRule, 11)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpRule} returns this -*/ -proto.google.api.HttpRule.prototype.setAdditionalBindingsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 11, value); -}; - - -/** - * @param {!proto.google.api.HttpRule=} opt_value - * @param {number=} opt_index - * @return {!proto.google.api.HttpRule} - */ -proto.google.api.HttpRule.prototype.addAdditionalBindings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.google.api.HttpRule, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpRule} returns this - */ -proto.google.api.HttpRule.prototype.clearAdditionalBindingsList = function() { - return this.setAdditionalBindingsList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.CustomHttpPattern.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.CustomHttpPattern.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.CustomHttpPattern} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.toObject = function(includeInstance, msg) { - var f, obj = { - kind: jspb.Message.getFieldWithDefault(msg, 1, ""), - path: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.CustomHttpPattern; - return proto.google.api.CustomHttpPattern.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.CustomHttpPattern} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.CustomHttpPattern} - */ -proto.google.api.CustomHttpPattern.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setKind(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setPath(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.CustomHttpPattern.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.CustomHttpPattern.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.CustomHttpPattern} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.CustomHttpPattern.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getKind(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPath(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string kind = 1; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getKind = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setKind = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string path = 2; - * @return {string} - */ -proto.google.api.CustomHttpPattern.prototype.getPath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.CustomHttpPattern} returns this - */ -proto.google.api.CustomHttpPattern.prototype.setPath = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/users/src/service/protos/google/api/httpbody_grpc_pb.js b/mods/users/src/service/protos/google/api/httpbody_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/users/src/service/protos/google/api/httpbody_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/users/src/service/protos/google/api/httpbody_pb.d.ts b/mods/users/src/service/protos/google/api/httpbody_pb.d.ts deleted file mode 100644 index 98d973068..000000000 --- a/mods/users/src/service/protos/google/api/httpbody_pb.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// package: google.api -// file: google/api/httpbody.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_any_pb from "google-protobuf/google/protobuf/any_pb"; - -export class HttpBody extends jspb.Message { - getContentType(): string; - setContentType(value: string): HttpBody; - getData(): Uint8Array | string; - getData_asU8(): Uint8Array; - getData_asB64(): string; - setData(value: Uint8Array | string): HttpBody; - clearExtensionsList(): void; - getExtensionsList(): Array; - setExtensionsList(value: Array): HttpBody; - addExtensions(value?: google_protobuf_any_pb.Any, index?: number): google_protobuf_any_pb.Any; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): HttpBody.AsObject; - static toObject(includeInstance: boolean, msg: HttpBody): HttpBody.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: HttpBody, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): HttpBody; - static deserializeBinaryFromReader(message: HttpBody, reader: jspb.BinaryReader): HttpBody; -} - -export namespace HttpBody { - export type AsObject = { - contentType: string, - data: Uint8Array | string, - extensionsList: Array, - } -} diff --git a/mods/users/src/service/protos/google/api/httpbody_pb.js b/mods/users/src/service/protos/google/api/httpbody_pb.js deleted file mode 100644 index 5539f5936..000000000 --- a/mods/users/src/service/protos/google/api/httpbody_pb.js +++ /dev/null @@ -1,286 +0,0 @@ -// source: google/api/httpbody.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js'); -goog.object.extend(proto, google_protobuf_any_pb); -goog.exportSymbol('proto.google.api.HttpBody', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.google.api.HttpBody = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.google.api.HttpBody.repeatedFields_, null); -}; -goog.inherits(proto.google.api.HttpBody, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.google.api.HttpBody.displayName = 'proto.google.api.HttpBody'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.google.api.HttpBody.repeatedFields_ = [3]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.google.api.HttpBody.prototype.toObject = function(opt_includeInstance) { - return proto.google.api.HttpBody.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.google.api.HttpBody} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.toObject = function(includeInstance, msg) { - var f, obj = { - contentType: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64(), - extensionsList: jspb.Message.toObjectList(msg.getExtensionsList(), - google_protobuf_any_pb.Any.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.google.api.HttpBody; - return proto.google.api.HttpBody.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.google.api.HttpBody} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.google.api.HttpBody} - */ -proto.google.api.HttpBody.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setContentType(value); - break; - case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); - msg.setData(value); - break; - case 3: - var value = new google_protobuf_any_pb.Any; - reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader); - msg.addExtensions(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.google.api.HttpBody.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.google.api.HttpBody} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.google.api.HttpBody.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getContentType(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getData_asU8(); - if (f.length > 0) { - writer.writeBytes( - 2, - f - ); - } - f = message.getExtensionsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - google_protobuf_any_pb.Any.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string content_type = 1; - * @return {string} - */ -proto.google.api.HttpBody.prototype.getContentType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setContentType = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional bytes data = 2; - * @return {!(string|Uint8Array)} - */ -proto.google.api.HttpBody.prototype.getData = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes data = 2; - * This is a type-conversion wrapper around `getData()` - * @return {string} - */ -proto.google.api.HttpBody.prototype.getData_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getData())); -}; - - -/** - * optional bytes data = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getData()` - * @return {!Uint8Array} - */ -proto.google.api.HttpBody.prototype.getData_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getData())); -}; - - -/** - * @param {!(string|Uint8Array)} value - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.setData = function(value) { - return jspb.Message.setProto3BytesField(this, 2, value); -}; - - -/** - * repeated google.protobuf.Any extensions = 3; - * @return {!Array} - */ -proto.google.api.HttpBody.prototype.getExtensionsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3)); -}; - - -/** - * @param {!Array} value - * @return {!proto.google.api.HttpBody} returns this -*/ -proto.google.api.HttpBody.prototype.setExtensionsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.google.protobuf.Any=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.Any} - */ -proto.google.api.HttpBody.prototype.addExtensions = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.google.api.HttpBody} returns this - */ -proto.google.api.HttpBody.prototype.clearExtensionsList = function() { - return this.setExtensionsList([]); -}; - - -goog.object.extend(exports, proto.google.api); diff --git a/mods/users/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js b/mods/users/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/users/src/service/protos/protoc-gen-openapiv2/options/annotations_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/users/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts b/mods/users/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts deleted file mode 100644 index 8e3a35012..000000000 --- a/mods/users/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/annotations.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb"; -import * as protoc_gen_openapiv2_options_openapiv2_pb from "../../protoc-gen-openapiv2/options/openapiv2_pb"; - -export const openapiv2Swagger: jspb.ExtensionFieldInfo; - -export const openapiv2Operation: jspb.ExtensionFieldInfo; - -export const openapiv2Schema: jspb.ExtensionFieldInfo; - -export const openapiv2Tag: jspb.ExtensionFieldInfo; - -export const openapiv2Field: jspb.ExtensionFieldInfo; diff --git a/mods/users/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js b/mods/users/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js deleted file mode 100644 index e92ccec18..000000000 --- a/mods/users/src/service/protos/protoc-gen-openapiv2/options/annotations_pb.js +++ /dev/null @@ -1,152 +0,0 @@ -// source: protoc-gen-openapiv2/options/annotations.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_descriptor_pb = require('google-protobuf/google/protobuf/descriptor_pb.js'); -goog.object.extend(proto, google_protobuf_descriptor_pb); -var protoc$gen$openapiv2_options_openapiv2_pb = require('../../protoc-gen-openapiv2/options/openapiv2_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_openapiv2_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag', null, global); - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Swagger`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Swagger: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.toObject), - 0); - -google_protobuf_descriptor_pb.FileOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Swagger.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FileOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Swagger; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Operation`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Operation: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Operation, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Operation.toObject), - 0); - -google_protobuf_descriptor_pb.MethodOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Operation.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MethodOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Operation; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Schema`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Schema: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Schema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Schema.toObject), - 0); - -google_protobuf_descriptor_pb.MessageOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Schema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.MessageOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Schema; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Tag`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Tag: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.Tag, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.Tag.toObject), - 0); - -google_protobuf_descriptor_pb.ServiceOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.Tag.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.ServiceOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Tag; - - -/** - * A tuple of {field number, class constructor} for the extension - * field named `openapiv2Field`. - * @type {!jspb.ExtensionFieldInfo} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field = new jspb.ExtensionFieldInfo( - 1042, - {openapiv2Field: 0}, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema, - /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ ( - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.toObject), - 0); - -google_protobuf_descriptor_pb.FieldOptions.extensionsBinary[1042] = new jspb.ExtensionFieldBinaryInfo( - proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field, - jspb.BinaryReader.prototype.readMessage, - jspb.BinaryWriter.prototype.writeMessage, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.serializeBinaryToWriter, - protoc$gen$openapiv2_options_openapiv2_pb.JSONSchema.deserializeBinaryFromReader, - false); -// This registers the extension field with the extended class, so that -// toObject() will function correctly. -google_protobuf_descriptor_pb.FieldOptions.extensions[1042] = proto.grpc.gateway.protoc_gen_openapiv2.options.openapiv2Field; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/users/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js b/mods/users/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js deleted file mode 100644 index 97b3a2461..000000000 --- a/mods/users/src/service/protos/protoc-gen-openapiv2/options/openapiv2_grpc_pb.js +++ /dev/null @@ -1 +0,0 @@ -// GENERATED CODE -- NO SERVICES IN PROTO \ No newline at end of file diff --git a/mods/users/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts b/mods/users/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts deleted file mode 100644 index 3c3972ea9..000000000 --- a/mods/users/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.d.ts +++ /dev/null @@ -1,685 +0,0 @@ -// package: grpc.gateway.protoc_gen_openapiv2.options -// file: protoc-gen-openapiv2/options/openapiv2.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as google_protobuf_struct_pb from "google-protobuf/google/protobuf/struct_pb"; - -export class Swagger extends jspb.Message { - getSwagger(): string; - setSwagger(value: string): Swagger; - - hasInfo(): boolean; - clearInfo(): void; - getInfo(): Info | undefined; - setInfo(value?: Info): Swagger; - getHost(): string; - setHost(value: string): Swagger; - getBasePath(): string; - setBasePath(value: string): Swagger; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Swagger; - addSchemes(value: Scheme, index?: number): Scheme; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Swagger; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Swagger; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - - hasSecurityDefinitions(): boolean; - clearSecurityDefinitions(): void; - getSecurityDefinitions(): SecurityDefinitions | undefined; - setSecurityDefinitions(value?: SecurityDefinitions): Swagger; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Swagger; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Swagger; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Swagger.AsObject; - static toObject(includeInstance: boolean, msg: Swagger): Swagger.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Swagger, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Swagger; - static deserializeBinaryFromReader(message: Swagger, reader: jspb.BinaryReader): Swagger; -} - -export namespace Swagger { - export type AsObject = { - swagger: string, - info?: Info.AsObject, - host: string, - basePath: string, - schemesList: Array, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - securityDefinitions?: SecurityDefinitions.AsObject, - securityList: Array, - externalDocs?: ExternalDocumentation.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Operation extends jspb.Message { - clearTagsList(): void; - getTagsList(): Array; - setTagsList(value: Array): Operation; - addTags(value: string, index?: number): string; - getSummary(): string; - setSummary(value: string): Operation; - getDescription(): string; - setDescription(value: string): Operation; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Operation; - getOperationId(): string; - setOperationId(value: string): Operation; - clearConsumesList(): void; - getConsumesList(): Array; - setConsumesList(value: Array): Operation; - addConsumes(value: string, index?: number): string; - clearProducesList(): void; - getProducesList(): Array; - setProducesList(value: Array): Operation; - addProduces(value: string, index?: number): string; - - getResponsesMap(): jspb.Map; - clearResponsesMap(): void; - clearSchemesList(): void; - getSchemesList(): Array; - setSchemesList(value: Array): Operation; - addSchemes(value: Scheme, index?: number): Scheme; - getDeprecated(): boolean; - setDeprecated(value: boolean): Operation; - clearSecurityList(): void; - getSecurityList(): Array; - setSecurityList(value: Array): Operation; - addSecurity(value?: SecurityRequirement, index?: number): SecurityRequirement; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Operation.AsObject; - static toObject(includeInstance: boolean, msg: Operation): Operation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Operation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Operation; - static deserializeBinaryFromReader(message: Operation, reader: jspb.BinaryReader): Operation; -} - -export namespace Operation { - export type AsObject = { - tagsList: Array, - summary: string, - description: string, - externalDocs?: ExternalDocumentation.AsObject, - operationId: string, - consumesList: Array, - producesList: Array, - - responsesMap: Array<[string, Response.AsObject]>, - schemesList: Array, - deprecated: boolean, - securityList: Array, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Header extends jspb.Message { - getDescription(): string; - setDescription(value: string): Header; - getType(): string; - setType(value: string): Header; - getFormat(): string; - setFormat(value: string): Header; - getDefault(): string; - setDefault(value: string): Header; - getPattern(): string; - setPattern(value: string): Header; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Header.AsObject; - static toObject(includeInstance: boolean, msg: Header): Header.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Header, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Header; - static deserializeBinaryFromReader(message: Header, reader: jspb.BinaryReader): Header; -} - -export namespace Header { - export type AsObject = { - description: string, - type: string, - format: string, - pb_default: string, - pattern: string, - } -} - -export class Response extends jspb.Message { - getDescription(): string; - setDescription(value: string): Response; - - hasSchema(): boolean; - clearSchema(): void; - getSchema(): Schema | undefined; - setSchema(value?: Schema): Response; - - getHeadersMap(): jspb.Map; - clearHeadersMap(): void; - - getExamplesMap(): jspb.Map; - clearExamplesMap(): void; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Response.AsObject; - static toObject(includeInstance: boolean, msg: Response): Response.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Response, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Response; - static deserializeBinaryFromReader(message: Response, reader: jspb.BinaryReader): Response; -} - -export namespace Response { - export type AsObject = { - description: string, - schema?: Schema.AsObject, - - headersMap: Array<[string, Header.AsObject]>, - - examplesMap: Array<[string, string]>, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Info extends jspb.Message { - getTitle(): string; - setTitle(value: string): Info; - getDescription(): string; - setDescription(value: string): Info; - getTermsOfService(): string; - setTermsOfService(value: string): Info; - - hasContact(): boolean; - clearContact(): void; - getContact(): Contact | undefined; - setContact(value?: Contact): Info; - - hasLicense(): boolean; - clearLicense(): void; - getLicense(): License | undefined; - setLicense(value?: License): Info; - getVersion(): string; - setVersion(value: string): Info; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Info.AsObject; - static toObject(includeInstance: boolean, msg: Info): Info.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Info, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Info; - static deserializeBinaryFromReader(message: Info, reader: jspb.BinaryReader): Info; -} - -export namespace Info { - export type AsObject = { - title: string, - description: string, - termsOfService: string, - contact?: Contact.AsObject, - license?: License.AsObject, - version: string, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } -} - -export class Contact extends jspb.Message { - getName(): string; - setName(value: string): Contact; - getUrl(): string; - setUrl(value: string): Contact; - getEmail(): string; - setEmail(value: string): Contact; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Contact.AsObject; - static toObject(includeInstance: boolean, msg: Contact): Contact.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Contact, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Contact; - static deserializeBinaryFromReader(message: Contact, reader: jspb.BinaryReader): Contact; -} - -export namespace Contact { - export type AsObject = { - name: string, - url: string, - email: string, - } -} - -export class License extends jspb.Message { - getName(): string; - setName(value: string): License; - getUrl(): string; - setUrl(value: string): License; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): License.AsObject; - static toObject(includeInstance: boolean, msg: License): License.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: License, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): License; - static deserializeBinaryFromReader(message: License, reader: jspb.BinaryReader): License; -} - -export namespace License { - export type AsObject = { - name: string, - url: string, - } -} - -export class ExternalDocumentation extends jspb.Message { - getDescription(): string; - setDescription(value: string): ExternalDocumentation; - getUrl(): string; - setUrl(value: string): ExternalDocumentation; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ExternalDocumentation.AsObject; - static toObject(includeInstance: boolean, msg: ExternalDocumentation): ExternalDocumentation.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ExternalDocumentation, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ExternalDocumentation; - static deserializeBinaryFromReader(message: ExternalDocumentation, reader: jspb.BinaryReader): ExternalDocumentation; -} - -export namespace ExternalDocumentation { - export type AsObject = { - description: string, - url: string, - } -} - -export class Schema extends jspb.Message { - - hasJsonSchema(): boolean; - clearJsonSchema(): void; - getJsonSchema(): JSONSchema | undefined; - setJsonSchema(value?: JSONSchema): Schema; - getDiscriminator(): string; - setDiscriminator(value: string): Schema; - getReadOnly(): boolean; - setReadOnly(value: boolean): Schema; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Schema; - getExample(): string; - setExample(value: string): Schema; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Schema.AsObject; - static toObject(includeInstance: boolean, msg: Schema): Schema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Schema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Schema; - static deserializeBinaryFromReader(message: Schema, reader: jspb.BinaryReader): Schema; -} - -export namespace Schema { - export type AsObject = { - jsonSchema?: JSONSchema.AsObject, - discriminator: string, - readOnly: boolean, - externalDocs?: ExternalDocumentation.AsObject, - example: string, - } -} - -export class JSONSchema extends jspb.Message { - getRef(): string; - setRef(value: string): JSONSchema; - getTitle(): string; - setTitle(value: string): JSONSchema; - getDescription(): string; - setDescription(value: string): JSONSchema; - getDefault(): string; - setDefault(value: string): JSONSchema; - getReadOnly(): boolean; - setReadOnly(value: boolean): JSONSchema; - getExample(): string; - setExample(value: string): JSONSchema; - getMultipleOf(): number; - setMultipleOf(value: number): JSONSchema; - getMaximum(): number; - setMaximum(value: number): JSONSchema; - getExclusiveMaximum(): boolean; - setExclusiveMaximum(value: boolean): JSONSchema; - getMinimum(): number; - setMinimum(value: number): JSONSchema; - getExclusiveMinimum(): boolean; - setExclusiveMinimum(value: boolean): JSONSchema; - getMaxLength(): number; - setMaxLength(value: number): JSONSchema; - getMinLength(): number; - setMinLength(value: number): JSONSchema; - getPattern(): string; - setPattern(value: string): JSONSchema; - getMaxItems(): number; - setMaxItems(value: number): JSONSchema; - getMinItems(): number; - setMinItems(value: number): JSONSchema; - getUniqueItems(): boolean; - setUniqueItems(value: boolean): JSONSchema; - getMaxProperties(): number; - setMaxProperties(value: number): JSONSchema; - getMinProperties(): number; - setMinProperties(value: number): JSONSchema; - clearRequiredList(): void; - getRequiredList(): Array; - setRequiredList(value: Array): JSONSchema; - addRequired(value: string, index?: number): string; - clearArrayList(): void; - getArrayList(): Array; - setArrayList(value: Array): JSONSchema; - addArray(value: string, index?: number): string; - clearTypeList(): void; - getTypeList(): Array; - setTypeList(value: Array): JSONSchema; - addType(value: JSONSchema.JSONSchemaSimpleTypes, index?: number): JSONSchema.JSONSchemaSimpleTypes; - getFormat(): string; - setFormat(value: string): JSONSchema; - clearEnumList(): void; - getEnumList(): Array; - setEnumList(value: Array): JSONSchema; - addEnum(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): JSONSchema.AsObject; - static toObject(includeInstance: boolean, msg: JSONSchema): JSONSchema.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: JSONSchema, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): JSONSchema; - static deserializeBinaryFromReader(message: JSONSchema, reader: jspb.BinaryReader): JSONSchema; -} - -export namespace JSONSchema { - export type AsObject = { - ref: string, - title: string, - description: string, - pb_default: string, - readOnly: boolean, - example: string, - multipleOf: number, - maximum: number, - exclusiveMaximum: boolean, - minimum: number, - exclusiveMinimum: boolean, - maxLength: number, - minLength: number, - pattern: string, - maxItems: number, - minItems: number, - uniqueItems: boolean, - maxProperties: number, - minProperties: number, - requiredList: Array, - arrayList: Array, - typeList: Array, - format: string, - pb_enumList: Array, - } - - export enum JSONSchemaSimpleTypes { - UNKNOWN = 0, - ARRAY = 1, - BOOLEAN = 2, - INTEGER = 3, - NULL = 4, - NUMBER = 5, - OBJECT = 6, - STRING = 7, - } - -} - -export class Tag extends jspb.Message { - getDescription(): string; - setDescription(value: string): Tag; - - hasExternalDocs(): boolean; - clearExternalDocs(): void; - getExternalDocs(): ExternalDocumentation | undefined; - setExternalDocs(value?: ExternalDocumentation): Tag; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Tag.AsObject; - static toObject(includeInstance: boolean, msg: Tag): Tag.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Tag, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Tag; - static deserializeBinaryFromReader(message: Tag, reader: jspb.BinaryReader): Tag; -} - -export namespace Tag { - export type AsObject = { - description: string, - externalDocs?: ExternalDocumentation.AsObject, - } -} - -export class SecurityDefinitions extends jspb.Message { - - getSecurityMap(): jspb.Map; - clearSecurityMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityDefinitions.AsObject; - static toObject(includeInstance: boolean, msg: SecurityDefinitions): SecurityDefinitions.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityDefinitions, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityDefinitions; - static deserializeBinaryFromReader(message: SecurityDefinitions, reader: jspb.BinaryReader): SecurityDefinitions; -} - -export namespace SecurityDefinitions { - export type AsObject = { - - securityMap: Array<[string, SecurityScheme.AsObject]>, - } -} - -export class SecurityScheme extends jspb.Message { - getType(): SecurityScheme.Type; - setType(value: SecurityScheme.Type): SecurityScheme; - getDescription(): string; - setDescription(value: string): SecurityScheme; - getName(): string; - setName(value: string): SecurityScheme; - getIn(): SecurityScheme.In; - setIn(value: SecurityScheme.In): SecurityScheme; - getFlow(): SecurityScheme.Flow; - setFlow(value: SecurityScheme.Flow): SecurityScheme; - getAuthorizationUrl(): string; - setAuthorizationUrl(value: string): SecurityScheme; - getTokenUrl(): string; - setTokenUrl(value: string): SecurityScheme; - - hasScopes(): boolean; - clearScopes(): void; - getScopes(): Scopes | undefined; - setScopes(value?: Scopes): SecurityScheme; - - getExtensionsMap(): jspb.Map; - clearExtensionsMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityScheme.AsObject; - static toObject(includeInstance: boolean, msg: SecurityScheme): SecurityScheme.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityScheme, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityScheme; - static deserializeBinaryFromReader(message: SecurityScheme, reader: jspb.BinaryReader): SecurityScheme; -} - -export namespace SecurityScheme { - export type AsObject = { - type: SecurityScheme.Type, - description: string, - name: string, - pb_in: SecurityScheme.In, - flow: SecurityScheme.Flow, - authorizationUrl: string, - tokenUrl: string, - scopes?: Scopes.AsObject, - - extensionsMap: Array<[string, google_protobuf_struct_pb.Value.AsObject]>, - } - - export enum Type { - TYPE_INVALID = 0, - TYPE_BASIC = 1, - TYPE_API_KEY = 2, - TYPE_OAUTH2 = 3, - } - - export enum In { - IN_INVALID = 0, - IN_QUERY = 1, - IN_HEADER = 2, - } - - export enum Flow { - FLOW_INVALID = 0, - FLOW_IMPLICIT = 1, - FLOW_PASSWORD = 2, - FLOW_APPLICATION = 3, - FLOW_ACCESS_CODE = 4, - } - -} - -export class SecurityRequirement extends jspb.Message { - - getSecurityRequirementMap(): jspb.Map; - clearSecurityRequirementMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirement.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirement): SecurityRequirement.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirement, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirement; - static deserializeBinaryFromReader(message: SecurityRequirement, reader: jspb.BinaryReader): SecurityRequirement; -} - -export namespace SecurityRequirement { - export type AsObject = { - - securityRequirementMap: Array<[string, SecurityRequirement.SecurityRequirementValue.AsObject]>, - } - - - export class SecurityRequirementValue extends jspb.Message { - clearScopeList(): void; - getScopeList(): Array; - setScopeList(value: Array): SecurityRequirementValue; - addScope(value: string, index?: number): string; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): SecurityRequirementValue.AsObject; - static toObject(includeInstance: boolean, msg: SecurityRequirementValue): SecurityRequirementValue.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: SecurityRequirementValue, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): SecurityRequirementValue; - static deserializeBinaryFromReader(message: SecurityRequirementValue, reader: jspb.BinaryReader): SecurityRequirementValue; - } - - export namespace SecurityRequirementValue { - export type AsObject = { - scopeList: Array, - } - } - -} - -export class Scopes extends jspb.Message { - - getScopeMap(): jspb.Map; - clearScopeMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): Scopes.AsObject; - static toObject(includeInstance: boolean, msg: Scopes): Scopes.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: Scopes, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): Scopes; - static deserializeBinaryFromReader(message: Scopes, reader: jspb.BinaryReader): Scopes; -} - -export namespace Scopes { - export type AsObject = { - - scopeMap: Array<[string, string]>, - } -} - -export enum Scheme { - UNKNOWN = 0, - HTTP = 1, - HTTPS = 2, - WS = 3, - WSS = 4, -} diff --git a/mods/users/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js b/mods/users/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js deleted file mode 100644 index be8a6bfd2..000000000 --- a/mods/users/src/service/protos/protoc-gen-openapiv2/options/openapiv2_pb.js +++ /dev/null @@ -1,5367 +0,0 @@ -// source: protoc-gen-openapiv2/options/openapiv2.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js'); -goog.object.extend(proto, google_protobuf_struct_pb); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Contact', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Header', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Info', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.License', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Operation', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Response', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Schema', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger', null, global); -goog.exportSymbol('proto.grpc.gateway.protoc_gen_openapiv2.options.Tag', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Operation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Operation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Header, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Header'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Response, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Response'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Info, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Info'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Contact'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.License, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.License.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.License'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Schema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Tag, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Tag'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.displayName = 'proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes'; -} - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.repeatedFields_ = [5,6,7,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.toObject = function(includeInstance, msg) { - var f, obj = { - swagger: jspb.Message.getFieldWithDefault(msg, 1, ""), - info: (f = msg.getInfo()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(includeInstance, f), - host: jspb.Message.getFieldWithDefault(msg, 3, ""), - basePath: jspb.Message.getFieldWithDefault(msg, 4, ""), - schemesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f, - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - securityDefinitions: (f = msg.getSecurityDefinitions()) && proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(includeInstance, f), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setSwagger(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader); - msg.setInfo(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setHost(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setBasePath(value); - break; - case 5: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 10: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 11: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader); - msg.setSecurityDefinitions(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 14: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 15: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSwagger(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getInfo(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter - ); - } - f = message.getHost(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getBasePath(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(10, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSecurityDefinitions(); - if (f != null) { - writer.writeMessage( - 11, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 14, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string swagger = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSwagger = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSwagger = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Info info = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getInfo = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Info} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Info, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Info|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setInfo = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearInfo = function() { - return this.setInfo(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasInfo = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * optional string host = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getHost = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setHost = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string base_path = 4; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getBasePath = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setBasePath = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * repeated Scheme schemes = 5; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 5, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 5, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 10; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 10, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * optional SecurityDefinitions security_definitions = 11; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityDefinitions = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions, 11)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityDefinitions = function(value) { - return jspb.Message.setWrapperField(this, 11, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityDefinitions = function() { - return this.setSecurityDefinitions(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasSecurityDefinitions = function() { - return jspb.Message.getField(this, 11) != null; -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * optional ExternalDocumentation external_docs = 14; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 14)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 14, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 14) != null; -}; - - -/** - * map extensions = 15; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 15, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Swagger.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.repeatedFields_ = [1,6,7,10,12]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.toObject = function(includeInstance, msg) { - var f, obj = { - tagsList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f, - summary: jspb.Message.getFieldWithDefault(msg, 2, ""), - description: jspb.Message.getFieldWithDefault(msg, 3, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - operationId: jspb.Message.getFieldWithDefault(msg, 5, ""), - consumesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f, - producesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f, - responsesMap: (f = msg.getResponsesMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject) : [], - schemesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f, - deprecated: jspb.Message.getBooleanFieldWithDefault(msg, 11, false), - securityList: jspb.Message.toObjectList(msg.getSecurityList(), - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject, includeInstance), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Operation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addTags(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSummary(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setOperationId(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.addConsumes(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.addProduces(value); - break; - case 9: - var value = msg.getResponsesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Response()); - }); - break; - case 10: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addSchemes(values[i]); - } - break; - case 11: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setDeprecated(value); - break; - case 12: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader); - msg.addSecurity(value); - break; - case 13: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTagsList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } - f = message.getSummary(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getOperationId(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getConsumesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 6, - f - ); - } - f = message.getProducesList(); - if (f.length > 0) { - writer.writeRepeatedString( - 7, - f - ); - } - f = message.getResponsesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter); - } - f = message.getSchemesList(); - if (f.length > 0) { - writer.writePackedEnum( - 10, - f - ); - } - f = message.getDeprecated(); - if (f) { - writer.writeBool( - 11, - f - ); - } - f = message.getSecurityList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 12, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(13, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * repeated string tags = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getTagsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setTagsList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addTags = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearTagsList = function() { - return this.setTagsList([]); -}; - - -/** - * optional string summary = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSummary = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSummary = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string description = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional string operation_id = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getOperationId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setOperationId = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * repeated string consumes = 6; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getConsumesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 6)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setConsumesList = function(value) { - return jspb.Message.setField(this, 6, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addConsumes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 6, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearConsumesList = function() { - return this.setConsumesList([]); -}; - - -/** - * repeated string produces = 7; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getProducesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 7)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setProducesList = function(value) { - return jspb.Message.setField(this, 7, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addProduces = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 7, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearProducesList = function() { - return this.setProducesList([]); -}; - - -/** - * map responses = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getResponsesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Response)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearResponsesMap = function() { - this.getResponsesMap().clear(); - return this;}; - - -/** - * repeated Scheme schemes = 10; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSchemesList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSchemesList = function(value) { - return jspb.Message.setField(this, 10, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSchemes = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 10, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSchemesList = function() { - return this.setSchemesList([]); -}; - - -/** - * optional bool deprecated = 11; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getDeprecated = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setDeprecated = function(value) { - return jspb.Message.setProto3BooleanField(this, 11, value); -}; - - -/** - * repeated SecurityRequirement security = 12; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getSecurityList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, 12)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.setSecurityList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 12, value); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement=} opt_value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.addSecurity = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearSecurityList = function() { - return this.setSecurityList([]); -}; - - -/** - * map extensions = 13; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 13, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Operation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Operation.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - type: jspb.Message.getFieldWithDefault(msg, 2, ""), - format: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 6, ""), - pattern: jspb.Message.getFieldWithDefault(msg, 13, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Header; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setType(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 13: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getType(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 13, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string type = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getType = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setType = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string format = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string default = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string pattern = 13; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Header} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Header.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 13, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - schema: (f = msg.getSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(includeInstance, f), - headersMap: (f = msg.getHeadersMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.toObject) : [], - examplesMap: (f = msg.getExamplesMap()) ? f.toObject(includeInstance, undefined) : [], - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Response; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader); - msg.setSchema(value); - break; - case 3: - var value = msg.getHeadersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.Header()); - }); - break; - case 4: - var value = msg.getExamplesMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - case 5: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSchema(); - if (f != null) { - writer.writeMessage( - 2, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter - ); - } - f = message.getHeadersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.Header.serializeBinaryToWriter); - } - f = message.getExamplesMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional Schema schema = 2; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Schema, 2)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Schema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.setSchema = function(value) { - return jspb.Message.setWrapperField(this, 2, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearSchema = function() { - return this.setSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.hasSchema = function() { - return jspb.Message.getField(this, 2) != null; -}; - - -/** - * map headers = 3; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getHeadersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 3, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.Header)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearHeadersMap = function() { - this.getHeadersMap().clear(); - return this;}; - - -/** - * map examples = 4; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExamplesMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 4, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExamplesMap = function() { - this.getExamplesMap().clear(); - return this;}; - - -/** - * map extensions = 5; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 5, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Response} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Response.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.toObject = function(includeInstance, msg) { - var f, obj = { - title: jspb.Message.getFieldWithDefault(msg, 1, ""), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - termsOfService: jspb.Message.getFieldWithDefault(msg, 3, ""), - contact: (f = msg.getContact()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(includeInstance, f), - license: (f = msg.getLicense()) && proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(includeInstance, f), - version: jspb.Message.getFieldWithDefault(msg, 6, ""), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Info; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setTermsOfService(value); - break; - case 4: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader); - msg.setContact(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader); - msg.setLicense(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setVersion(value); - break; - case 7: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getTermsOfService(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getContact(); - if (f != null) { - writer.writeMessage( - 4, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter - ); - } - f = message.getLicense(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter - ); - } - f = message.getVersion(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(7, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * optional string title = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string terms_of_service = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getTermsOfService = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setTermsOfService = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional Contact contact = 4; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getContact = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Contact, 4)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Contact|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setContact = function(value) { - return jspb.Message.setWrapperField(this, 4, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearContact = function() { - return this.setContact(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasContact = function() { - return jspb.Message.getField(this, 4) != null; -}; - - -/** - * optional License license = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getLicense = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.License} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.License, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.License|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setLicense = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearLicense = function() { - return this.setLicense(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.hasLicense = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string version = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getVersion = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.setVersion = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * map extensions = 7; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 7, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Info} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Info.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Contact; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Contact} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Contact.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.toObject = function(includeInstance, msg) { - var f, obj = { - name: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.License; - return proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string name = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.License} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.License.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 1, ""), - url: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - return proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setUrl(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getUrl(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string description = 1; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string url = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.getUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.prototype.setUrl = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.toObject = function(includeInstance, msg) { - var f, obj = { - jsonSchema: (f = msg.getJsonSchema()) && proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(includeInstance, f), - discriminator: jspb.Message.getFieldWithDefault(msg, 2, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 3, false), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f), - example: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Schema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader); - msg.setJsonSchema(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDiscriminator(value); - break; - case 3: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 5: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getJsonSchema(); - if (f != null) { - writer.writeMessage( - 1, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter - ); - } - f = message.getDiscriminator(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 3, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 5, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional JSONSchema json_schema = 1; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getJsonSchema = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema, 1)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setJsonSchema = function(value) { - return jspb.Message.setWrapperField(this, 1, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearJsonSchema = function() { - return this.setJsonSchema(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasJsonSchema = function() { - return jspb.Message.getField(this, 1) != null; -}; - - -/** - * optional string discriminator = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getDiscriminator = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setDiscriminator = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional bool read_only = 3; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 3, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 5; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 5)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 5, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 5) != null; -}; - - -/** - * optional string example = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Schema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Schema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.repeatedFields_ = [26,34,35,46]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 3, ""), - title: jspb.Message.getFieldWithDefault(msg, 5, ""), - description: jspb.Message.getFieldWithDefault(msg, 6, ""), - pb_default: jspb.Message.getFieldWithDefault(msg, 7, ""), - readOnly: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - example: jspb.Message.getFieldWithDefault(msg, 9, ""), - multipleOf: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0), - maximum: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0), - exclusiveMaximum: jspb.Message.getBooleanFieldWithDefault(msg, 12, false), - minimum: jspb.Message.getFloatingPointFieldWithDefault(msg, 13, 0.0), - exclusiveMinimum: jspb.Message.getBooleanFieldWithDefault(msg, 14, false), - maxLength: jspb.Message.getFieldWithDefault(msg, 15, 0), - minLength: jspb.Message.getFieldWithDefault(msg, 16, 0), - pattern: jspb.Message.getFieldWithDefault(msg, 17, ""), - maxItems: jspb.Message.getFieldWithDefault(msg, 20, 0), - minItems: jspb.Message.getFieldWithDefault(msg, 21, 0), - uniqueItems: jspb.Message.getBooleanFieldWithDefault(msg, 22, false), - maxProperties: jspb.Message.getFieldWithDefault(msg, 24, 0), - minProperties: jspb.Message.getFieldWithDefault(msg, 25, 0), - requiredList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f, - arrayList: (f = jspb.Message.getRepeatedField(msg, 34)) == null ? undefined : f, - typeList: (f = jspb.Message.getRepeatedField(msg, 35)) == null ? undefined : f, - format: jspb.Message.getFieldWithDefault(msg, 36, ""), - enumList: (f = jspb.Message.getRepeatedField(msg, 46)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema; - return proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setTitle(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setDefault(value); - break; - case 8: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setReadOnly(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setExample(value); - break; - case 10: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMultipleOf(value); - break; - case 11: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMaximum(value); - break; - case 12: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMaximum(value); - break; - case 13: - var value = /** @type {number} */ (reader.readDouble()); - msg.setMinimum(value); - break; - case 14: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setExclusiveMinimum(value); - break; - case 15: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxLength(value); - break; - case 16: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinLength(value); - break; - case 17: - var value = /** @type {string} */ (reader.readString()); - msg.setPattern(value); - break; - case 20: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxItems(value); - break; - case 21: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinItems(value); - break; - case 22: - var value = /** @type {boolean} */ (reader.readBool()); - msg.setUniqueItems(value); - break; - case 24: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMaxProperties(value); - break; - case 25: - var value = /** @type {number} */ (reader.readUint64()); - msg.setMinProperties(value); - break; - case 26: - var value = /** @type {string} */ (reader.readString()); - msg.addRequired(value); - break; - case 34: - var value = /** @type {string} */ (reader.readString()); - msg.addArray(value); - break; - case 35: - var values = /** @type {!Array} */ (reader.isDelimited() ? reader.readPackedEnum() : [reader.readEnum()]); - for (var i = 0; i < values.length; i++) { - msg.addType(values[i]); - } - break; - case 36: - var value = /** @type {string} */ (reader.readString()); - msg.setFormat(value); - break; - case 46: - var value = /** @type {string} */ (reader.readString()); - msg.addEnum(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getTitle(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getDefault(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getReadOnly(); - if (f) { - writer.writeBool( - 8, - f - ); - } - f = message.getExample(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } - f = message.getMultipleOf(); - if (f !== 0.0) { - writer.writeDouble( - 10, - f - ); - } - f = message.getMaximum(); - if (f !== 0.0) { - writer.writeDouble( - 11, - f - ); - } - f = message.getExclusiveMaximum(); - if (f) { - writer.writeBool( - 12, - f - ); - } - f = message.getMinimum(); - if (f !== 0.0) { - writer.writeDouble( - 13, - f - ); - } - f = message.getExclusiveMinimum(); - if (f) { - writer.writeBool( - 14, - f - ); - } - f = message.getMaxLength(); - if (f !== 0) { - writer.writeUint64( - 15, - f - ); - } - f = message.getMinLength(); - if (f !== 0) { - writer.writeUint64( - 16, - f - ); - } - f = message.getPattern(); - if (f.length > 0) { - writer.writeString( - 17, - f - ); - } - f = message.getMaxItems(); - if (f !== 0) { - writer.writeUint64( - 20, - f - ); - } - f = message.getMinItems(); - if (f !== 0) { - writer.writeUint64( - 21, - f - ); - } - f = message.getUniqueItems(); - if (f) { - writer.writeBool( - 22, - f - ); - } - f = message.getMaxProperties(); - if (f !== 0) { - writer.writeUint64( - 24, - f - ); - } - f = message.getMinProperties(); - if (f !== 0) { - writer.writeUint64( - 25, - f - ); - } - f = message.getRequiredList(); - if (f.length > 0) { - writer.writeRepeatedString( - 26, - f - ); - } - f = message.getArrayList(); - if (f.length > 0) { - writer.writeRepeatedString( - 34, - f - ); - } - f = message.getTypeList(); - if (f.length > 0) { - writer.writePackedEnum( - 35, - f - ); - } - f = message.getFormat(); - if (f.length > 0) { - writer.writeString( - 36, - f - ); - } - f = message.getEnumList(); - if (f.length > 0) { - writer.writeRepeatedString( - 46, - f - ); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes = { - UNKNOWN: 0, - ARRAY: 1, - BOOLEAN: 2, - INTEGER: 3, - NULL: 4, - NUMBER: 5, - OBJECT: 6, - STRING: 7 -}; - -/** - * optional string ref = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string title = 5; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTitle = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTitle = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string description = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string default = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getDefault = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setDefault = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional bool read_only = 8; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getReadOnly = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 8, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setReadOnly = function(value) { - return jspb.Message.setProto3BooleanField(this, 8, value); -}; - - -/** - * optional string example = 9; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExample = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExample = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -/** - * optional double multiple_of = 10; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMultipleOf = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMultipleOf = function(value) { - return jspb.Message.setProto3FloatField(this, 10, value); -}; - - -/** - * optional double maximum = 11; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaximum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaximum = function(value) { - return jspb.Message.setProto3FloatField(this, 11, value); -}; - - -/** - * optional bool exclusive_maximum = 12; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMaximum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMaximum = function(value) { - return jspb.Message.setProto3BooleanField(this, 12, value); -}; - - -/** - * optional double minimum = 13; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinimum = function() { - return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 13, 0.0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinimum = function(value) { - return jspb.Message.setProto3FloatField(this, 13, value); -}; - - -/** - * optional bool exclusive_minimum = 14; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getExclusiveMinimum = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setExclusiveMinimum = function(value) { - return jspb.Message.setProto3BooleanField(this, 14, value); -}; - - -/** - * optional uint64 max_length = 15; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxLength = function(value) { - return jspb.Message.setProto3IntField(this, 15, value); -}; - - -/** - * optional uint64 min_length = 16; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinLength = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinLength = function(value) { - return jspb.Message.setProto3IntField(this, 16, value); -}; - - -/** - * optional string pattern = 17; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getPattern = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 17, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setPattern = function(value) { - return jspb.Message.setProto3StringField(this, 17, value); -}; - - -/** - * optional uint64 max_items = 20; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxItems = function(value) { - return jspb.Message.setProto3IntField(this, 20, value); -}; - - -/** - * optional uint64 min_items = 21; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinItems = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinItems = function(value) { - return jspb.Message.setProto3IntField(this, 21, value); -}; - - -/** - * optional bool unique_items = 22; - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getUniqueItems = function() { - return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 22, false)); -}; - - -/** - * @param {boolean} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setUniqueItems = function(value) { - return jspb.Message.setProto3BooleanField(this, 22, value); -}; - - -/** - * optional uint64 max_properties = 24; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMaxProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMaxProperties = function(value) { - return jspb.Message.setProto3IntField(this, 24, value); -}; - - -/** - * optional uint64 min_properties = 25; - * @return {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getMinProperties = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0)); -}; - - -/** - * @param {number} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setMinProperties = function(value) { - return jspb.Message.setProto3IntField(this, 25, value); -}; - - -/** - * repeated string required = 26; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getRequiredList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 26)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setRequiredList = function(value) { - return jspb.Message.setField(this, 26, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addRequired = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 26, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearRequiredList = function() { - return this.setRequiredList([]); -}; - - -/** - * repeated string array = 34; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getArrayList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 34)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setArrayList = function(value) { - return jspb.Message.setField(this, 34, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addArray = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 34, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearArrayList = function() { - return this.setArrayList([]); -}; - - -/** - * repeated JSONSchemaSimpleTypes type = 35; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getTypeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 35)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setTypeList = function(value) { - return jspb.Message.setField(this, 35, value || []); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addType = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 35, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearTypeList = function() { - return this.setTypeList([]); -}; - - -/** - * optional string format = 36; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getFormat = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 36, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setFormat = function(value) { - return jspb.Message.setProto3StringField(this, 36, value); -}; - - -/** - * repeated string enum = 46; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.getEnumList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 46)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.setEnumList = function(value) { - return jspb.Message.setField(this, 46, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.addEnum = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 46, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.prototype.clearEnumList = function() { - return this.setEnumList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.toObject = function(includeInstance, msg) { - var f, obj = { - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - externalDocs: (f = msg.getExternalDocs()) && proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.toObject(includeInstance, f) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Tag; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.deserializeBinaryFromReader); - msg.setExternalDocs(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExternalDocs(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.serializeBinaryToWriter - ); - } -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional ExternalDocumentation external_docs = 3; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.getExternalDocs = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation, 3)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.setExternalDocs = function(value) { - return jspb.Message.setWrapperField(this, 3, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Tag} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.clearExternalDocs = function() { - return this.setExternalDocs(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Tag.prototype.hasExternalDocs = function() { - return jspb.Message.getField(this, 3) != null; -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.toObject = function(includeInstance, msg) { - var f, obj = { - securityMap: (f = msg.getSecurityMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter); - } -}; - - -/** - * map security = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.getSecurityMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.prototype.clearSecurityMap = function() { - this.getSecurityMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.toObject = function(includeInstance, msg) { - var f, obj = { - type: jspb.Message.getFieldWithDefault(msg, 1, 0), - description: jspb.Message.getFieldWithDefault(msg, 2, ""), - name: jspb.Message.getFieldWithDefault(msg, 3, ""), - pb_in: jspb.Message.getFieldWithDefault(msg, 4, 0), - flow: jspb.Message.getFieldWithDefault(msg, 5, 0), - authorizationUrl: jspb.Message.getFieldWithDefault(msg, 6, ""), - tokenUrl: jspb.Message.getFieldWithDefault(msg, 7, ""), - scopes: (f = msg.getScopes()) && proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(includeInstance, f), - extensionsMap: (f = msg.getExtensionsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (reader.readEnum()); - msg.setType(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setDescription(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 4: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (reader.readEnum()); - msg.setIn(value); - break; - case 5: - var value = /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (reader.readEnum()); - msg.setFlow(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthorizationUrl(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setTokenUrl(value); - break; - case 8: - var value = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - reader.readMessage(value,proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader); - msg.setScopes(value); - break; - case 9: - var value = msg.getExtensionsMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, "", new proto.google.protobuf.Value()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getType(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getDescription(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getIn(); - if (f !== 0.0) { - writer.writeEnum( - 4, - f - ); - } - f = message.getFlow(); - if (f !== 0.0) { - writer.writeEnum( - 5, - f - ); - } - f = message.getAuthorizationUrl(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getTokenUrl(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getScopes(); - if (f != null) { - writer.writeMessage( - 8, - f, - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter - ); - } - f = message.getExtensionsMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(9, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter); - } -}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type = { - TYPE_INVALID: 0, - TYPE_BASIC: 1, - TYPE_API_KEY: 2, - TYPE_OAUTH2: 3 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In = { - IN_INVALID: 0, - IN_QUERY: 1, - IN_HEADER: 2 -}; - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow = { - FLOW_INVALID: 0, - FLOW_IMPLICIT: 1, - FLOW_PASSWORD: 2, - FLOW_APPLICATION: 3, - FLOW_ACCESS_CODE: 4 -}; - -/** - * optional Type type = 1; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getType = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setType = function(value) { - return jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string description = 2; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getDescription = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setDescription = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string name = 3; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional In in = 4; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getIn = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setIn = function(value) { - return jspb.Message.setProto3EnumField(this, 4, value); -}; - - -/** - * optional Flow flow = 5; - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getFlow = function() { - return /** @type {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); -}; - - -/** - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setFlow = function(value) { - return jspb.Message.setProto3EnumField(this, 5, value); -}; - - -/** - * optional string authorization_url = 6; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getAuthorizationUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setAuthorizationUrl = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string token_url = 7; - * @return {string} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getTokenUrl = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setTokenUrl = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional Scopes scopes = 8; - * @return {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getScopes = function() { - return /** @type{?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} */ ( - jspb.Message.getWrapperField(this, proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes, 8)); -}; - - -/** - * @param {?proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes|undefined} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this -*/ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.setScopes = function(value) { - return jspb.Message.setWrapperField(this, 8, value); -}; - - -/** - * Clears the message field making it undefined. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearScopes = function() { - return this.setScopes(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {boolean} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.hasScopes = function() { - return jspb.Message.getField(this, 8) != null; -}; - - -/** - * map extensions = 9; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.getExtensionsMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 9, opt_noLazyCreate, - proto.google.protobuf.Value)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.prototype.clearExtensionsMap = function() { - this.getExtensionsMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.toObject = function(includeInstance, msg) { - var f, obj = { - securityRequirementMap: (f = msg.getSecurityRequirementMap()) ? f.toObject(includeInstance, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getSecurityRequirementMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader, "", new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue()); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getSecurityRequirementMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter); - } -}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.toObject = function(includeInstance, msg) { - var f, obj = { - scopeList: (f = jspb.Message.getRepeatedField(msg, 1)) == null ? undefined : f - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue; - return proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.addScope(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeList(); - if (f.length > 0) { - writer.writeRepeatedString( - 1, - f - ); - } -}; - - -/** - * repeated string scope = 1; - * @return {!Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.getScopeList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.setScopeList = function(value) { - return jspb.Message.setField(this, 1, value || []); -}; - - -/** - * @param {string} value - * @param {number=} opt_index - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.addScope = function(value, opt_index) { - return jspb.Message.addToRepeatedField(this, 1, value, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.prototype.clearScopeList = function() { - return this.setScopeList([]); -}; - - -/** - * map security_requirement = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.getSecurityRequirementMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.prototype.clearSecurityRequirementMap = function() { - this.getSecurityRequirementMap().clear(); - return this;}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.toObject = function(opt_includeInstance) { - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.toObject = function(includeInstance, msg) { - var f, obj = { - scopeMap: (f = msg.getScopeMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes; - return proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getScopeMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getScopeMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map scope = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.getScopeMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes} returns this - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scopes.prototype.clearScopeMap = function() { - this.getScopeMap().clear(); - return this;}; - - -/** - * @enum {number} - */ -proto.grpc.gateway.protoc_gen_openapiv2.options.Scheme = { - UNKNOWN: 0, - HTTP: 1, - HTTPS: 2, - WS: 3, - WSS: 4 -}; - -goog.object.extend(exports, proto.grpc.gateway.protoc_gen_openapiv2.options); diff --git a/mods/users/src/service/protos/users_grpc_pb.d.ts b/mods/users/src/service/protos/users_grpc_pb.d.ts deleted file mode 100644 index 81b0ec8a5..000000000 --- a/mods/users/src/service/protos/users_grpc_pb.d.ts +++ /dev/null @@ -1,130 +0,0 @@ -// package: fonoster.users.v1beta1 -// file: users.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as grpc from "@grpc/grpc-js"; -import {handleClientStreamingCall} from "@grpc/grpc-js/build/src/server-call"; -import * as users_pb from "./users_pb"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as common_pb from "./common_pb"; - -interface IUsersService extends grpc.ServiceDefinition { - listUsers: IUsersService_IListUsers; - createUser: IUsersService_ICreateUser; - getUser: IUsersService_IGetUser; - updateUser: IUsersService_IUpdateUser; - deleteUser: IUsersService_IDeleteUser; - createUserCredentials: IUsersService_ICreateUserCredentials; -} - -interface IUsersService_IListUsers extends grpc.MethodDefinition { - path: "/fonoster.users.v1beta1.Users/ListUsers"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IUsersService_ICreateUser extends grpc.MethodDefinition { - path: "/fonoster.users.v1beta1.Users/CreateUser"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IUsersService_IGetUser extends grpc.MethodDefinition { - path: "/fonoster.users.v1beta1.Users/GetUser"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IUsersService_IUpdateUser extends grpc.MethodDefinition { - path: "/fonoster.users.v1beta1.Users/UpdateUser"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IUsersService_IDeleteUser extends grpc.MethodDefinition { - path: "/fonoster.users.v1beta1.Users/DeleteUser"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} -interface IUsersService_ICreateUserCredentials extends grpc.MethodDefinition { - path: "/fonoster.users.v1beta1.Users/CreateUserCredentials"; - requestStream: false; - responseStream: false; - requestSerialize: grpc.serialize; - requestDeserialize: grpc.deserialize; - responseSerialize: grpc.serialize; - responseDeserialize: grpc.deserialize; -} - -export const UsersService: IUsersService; - -export interface IUsersServer extends grpc.UntypedServiceImplementation { - listUsers: grpc.handleUnaryCall; - createUser: grpc.handleUnaryCall; - getUser: grpc.handleUnaryCall; - updateUser: grpc.handleUnaryCall; - deleteUser: grpc.handleUnaryCall; - createUserCredentials: grpc.handleUnaryCall; -} - -export interface IUsersClient { - listUsers(request: users_pb.ListUsersRequest, callback: (error: grpc.ServiceError | null, response: users_pb.ListUsersResponse) => void): grpc.ClientUnaryCall; - listUsers(request: users_pb.ListUsersRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: users_pb.ListUsersResponse) => void): grpc.ClientUnaryCall; - listUsers(request: users_pb.ListUsersRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: users_pb.ListUsersResponse) => void): grpc.ClientUnaryCall; - createUser(request: users_pb.CreateUserRequest, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - createUser(request: users_pb.CreateUserRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - createUser(request: users_pb.CreateUserRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - getUser(request: users_pb.GetUserRequest, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - getUser(request: users_pb.GetUserRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - getUser(request: users_pb.GetUserRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - updateUser(request: users_pb.UpdateUserRequest, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - updateUser(request: users_pb.UpdateUserRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - updateUser(request: users_pb.UpdateUserRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - deleteUser(request: users_pb.DeleteUserRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteUser(request: users_pb.DeleteUserRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - deleteUser(request: users_pb.DeleteUserRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - createUserCredentials(request: users_pb.CreateUserCredentialsRequest, callback: (error: grpc.ServiceError | null, response: users_pb.CreateUserCredentialsResponse) => void): grpc.ClientUnaryCall; - createUserCredentials(request: users_pb.CreateUserCredentialsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: users_pb.CreateUserCredentialsResponse) => void): grpc.ClientUnaryCall; - createUserCredentials(request: users_pb.CreateUserCredentialsRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: users_pb.CreateUserCredentialsResponse) => void): grpc.ClientUnaryCall; -} - -export class UsersClient extends grpc.Client implements IUsersClient { - constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial); - public listUsers(request: users_pb.ListUsersRequest, callback: (error: grpc.ServiceError | null, response: users_pb.ListUsersResponse) => void): grpc.ClientUnaryCall; - public listUsers(request: users_pb.ListUsersRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: users_pb.ListUsersResponse) => void): grpc.ClientUnaryCall; - public listUsers(request: users_pb.ListUsersRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: users_pb.ListUsersResponse) => void): grpc.ClientUnaryCall; - public createUser(request: users_pb.CreateUserRequest, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - public createUser(request: users_pb.CreateUserRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - public createUser(request: users_pb.CreateUserRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - public getUser(request: users_pb.GetUserRequest, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - public getUser(request: users_pb.GetUserRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - public getUser(request: users_pb.GetUserRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - public updateUser(request: users_pb.UpdateUserRequest, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - public updateUser(request: users_pb.UpdateUserRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - public updateUser(request: users_pb.UpdateUserRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: users_pb.User) => void): grpc.ClientUnaryCall; - public deleteUser(request: users_pb.DeleteUserRequest, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteUser(request: users_pb.DeleteUserRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public deleteUser(request: users_pb.DeleteUserRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: common_pb.Empty) => void): grpc.ClientUnaryCall; - public createUserCredentials(request: users_pb.CreateUserCredentialsRequest, callback: (error: grpc.ServiceError | null, response: users_pb.CreateUserCredentialsResponse) => void): grpc.ClientUnaryCall; - public createUserCredentials(request: users_pb.CreateUserCredentialsRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: users_pb.CreateUserCredentialsResponse) => void): grpc.ClientUnaryCall; - public createUserCredentials(request: users_pb.CreateUserCredentialsRequest, metadata: grpc.Metadata, options: Partial, callback: (error: grpc.ServiceError | null, response: users_pb.CreateUserCredentialsResponse) => void): grpc.ClientUnaryCall; -} diff --git a/mods/users/src/service/protos/users_grpc_pb.js b/mods/users/src/service/protos/users_grpc_pb.js deleted file mode 100644 index d346b279f..000000000 --- a/mods/users/src/service/protos/users_grpc_pb.js +++ /dev/null @@ -1,204 +0,0 @@ -// GENERATED CODE -- DO NOT EDIT! - -// Original file comments: -// * -// MIT License -// Copyright (c) 2021 Fonoster Inc -// -// The Users proto contains the artificats for the administration -// of Users. -'use strict'; -var grpc = require('@grpc/grpc-js'); -var users_pb = require('./users_pb.js'); -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -var common_pb = require('./common_pb.js'); - -function serialize_fonoster_common_v1beta1_Empty(arg) { - if (!(arg instanceof common_pb.Empty)) { - throw new Error('Expected argument of type fonoster.common.v1beta1.Empty'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_common_v1beta1_Empty(buffer_arg) { - return common_pb.Empty.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_users_v1beta1_CreateUserCredentialsRequest(arg) { - if (!(arg instanceof users_pb.CreateUserCredentialsRequest)) { - throw new Error('Expected argument of type fonoster.users.v1beta1.CreateUserCredentialsRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_users_v1beta1_CreateUserCredentialsRequest(buffer_arg) { - return users_pb.CreateUserCredentialsRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_users_v1beta1_CreateUserCredentialsResponse(arg) { - if (!(arg instanceof users_pb.CreateUserCredentialsResponse)) { - throw new Error('Expected argument of type fonoster.users.v1beta1.CreateUserCredentialsResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_users_v1beta1_CreateUserCredentialsResponse(buffer_arg) { - return users_pb.CreateUserCredentialsResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_users_v1beta1_CreateUserRequest(arg) { - if (!(arg instanceof users_pb.CreateUserRequest)) { - throw new Error('Expected argument of type fonoster.users.v1beta1.CreateUserRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_users_v1beta1_CreateUserRequest(buffer_arg) { - return users_pb.CreateUserRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_users_v1beta1_DeleteUserRequest(arg) { - if (!(arg instanceof users_pb.DeleteUserRequest)) { - throw new Error('Expected argument of type fonoster.users.v1beta1.DeleteUserRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_users_v1beta1_DeleteUserRequest(buffer_arg) { - return users_pb.DeleteUserRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_users_v1beta1_GetUserRequest(arg) { - if (!(arg instanceof users_pb.GetUserRequest)) { - throw new Error('Expected argument of type fonoster.users.v1beta1.GetUserRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_users_v1beta1_GetUserRequest(buffer_arg) { - return users_pb.GetUserRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_users_v1beta1_ListUsersRequest(arg) { - if (!(arg instanceof users_pb.ListUsersRequest)) { - throw new Error('Expected argument of type fonoster.users.v1beta1.ListUsersRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_users_v1beta1_ListUsersRequest(buffer_arg) { - return users_pb.ListUsersRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_users_v1beta1_ListUsersResponse(arg) { - if (!(arg instanceof users_pb.ListUsersResponse)) { - throw new Error('Expected argument of type fonoster.users.v1beta1.ListUsersResponse'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_users_v1beta1_ListUsersResponse(buffer_arg) { - return users_pb.ListUsersResponse.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_users_v1beta1_UpdateUserRequest(arg) { - if (!(arg instanceof users_pb.UpdateUserRequest)) { - throw new Error('Expected argument of type fonoster.users.v1beta1.UpdateUserRequest'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_users_v1beta1_UpdateUserRequest(buffer_arg) { - return users_pb.UpdateUserRequest.deserializeBinary(new Uint8Array(buffer_arg)); -} - -function serialize_fonoster_users_v1beta1_User(arg) { - if (!(arg instanceof users_pb.User)) { - throw new Error('Expected argument of type fonoster.users.v1beta1.User'); - } - return Buffer.from(arg.serializeBinary()); -} - -function deserialize_fonoster_users_v1beta1_User(buffer_arg) { - return users_pb.User.deserializeBinary(new Uint8Array(buffer_arg)); -} - - -var UsersService = exports.UsersService = { - // Lists all the Users you have access to -listUsers: { - path: '/fonoster.users.v1beta1.Users/ListUsers', - requestStream: false, - responseStream: false, - requestType: users_pb.ListUsersRequest, - responseType: users_pb.ListUsersResponse, - requestSerialize: serialize_fonoster_users_v1beta1_ListUsersRequest, - requestDeserialize: deserialize_fonoster_users_v1beta1_ListUsersRequest, - responseSerialize: serialize_fonoster_users_v1beta1_ListUsersResponse, - responseDeserialize: deserialize_fonoster_users_v1beta1_ListUsersResponse, - }, - // Creates a new User resource -createUser: { - path: '/fonoster.users.v1beta1.Users/CreateUser', - requestStream: false, - responseStream: false, - requestType: users_pb.CreateUserRequest, - responseType: users_pb.User, - requestSerialize: serialize_fonoster_users_v1beta1_CreateUserRequest, - requestDeserialize: deserialize_fonoster_users_v1beta1_CreateUserRequest, - responseSerialize: serialize_fonoster_users_v1beta1_User, - responseDeserialize: deserialize_fonoster_users_v1beta1_User, - }, - // Gets User by reference -getUser: { - path: '/fonoster.users.v1beta1.Users/GetUser', - requestStream: false, - responseStream: false, - requestType: users_pb.GetUserRequest, - responseType: users_pb.User, - requestSerialize: serialize_fonoster_users_v1beta1_GetUserRequest, - requestDeserialize: deserialize_fonoster_users_v1beta1_GetUserRequest, - responseSerialize: serialize_fonoster_users_v1beta1_User, - responseDeserialize: deserialize_fonoster_users_v1beta1_User, - }, - // Change or update fields in a resource -updateUser: { - path: '/fonoster.users.v1beta1.Users/UpdateUser', - requestStream: false, - responseStream: false, - requestType: users_pb.UpdateUserRequest, - responseType: users_pb.User, - requestSerialize: serialize_fonoster_users_v1beta1_UpdateUserRequest, - requestDeserialize: deserialize_fonoster_users_v1beta1_UpdateUserRequest, - responseSerialize: serialize_fonoster_users_v1beta1_User, - responseDeserialize: deserialize_fonoster_users_v1beta1_User, - }, - // WARNING: Hard delete of an User will remove all related projects and its resources. -deleteUser: { - path: '/fonoster.users.v1beta1.Users/DeleteUser', - requestStream: false, - responseStream: false, - requestType: users_pb.DeleteUserRequest, - responseType: common_pb.Empty, - requestSerialize: serialize_fonoster_users_v1beta1_DeleteUserRequest, - requestDeserialize: deserialize_fonoster_users_v1beta1_DeleteUserRequest, - responseSerialize: serialize_fonoster_common_v1beta1_Empty, - responseDeserialize: deserialize_fonoster_common_v1beta1_Empty, - }, - // Creates a set of credentials -createUserCredentials: { - path: '/fonoster.users.v1beta1.Users/CreateUserCredentials', - requestStream: false, - responseStream: false, - requestType: users_pb.CreateUserCredentialsRequest, - responseType: users_pb.CreateUserCredentialsResponse, - requestSerialize: serialize_fonoster_users_v1beta1_CreateUserCredentialsRequest, - requestDeserialize: deserialize_fonoster_users_v1beta1_CreateUserCredentialsRequest, - responseSerialize: serialize_fonoster_users_v1beta1_CreateUserCredentialsResponse, - responseDeserialize: deserialize_fonoster_users_v1beta1_CreateUserCredentialsResponse, - }, -}; - -exports.UsersClient = grpc.makeGenericClientConstructor(UsersService); diff --git a/mods/users/src/service/protos/users_pb.d.ts b/mods/users/src/service/protos/users_pb.d.ts deleted file mode 100644 index 2cb09f617..000000000 --- a/mods/users/src/service/protos/users_pb.d.ts +++ /dev/null @@ -1,251 +0,0 @@ -// package: fonoster.users.v1beta1 -// file: users.proto - -/* tslint:disable */ -/* eslint-disable */ - -import * as jspb from "google-protobuf"; -import * as protoc_gen_openapiv2_options_annotations_pb from "./protoc-gen-openapiv2/options/annotations_pb"; -import * as google_api_field_behavior_pb from "./google/api/field_behavior_pb"; -import * as common_pb from "./common_pb"; - -export class ListUsersRequest extends jspb.Message { - - getFiltersMap(): jspb.Map; - clearFiltersMap(): void; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListUsersRequest.AsObject; - static toObject(includeInstance: boolean, msg: ListUsersRequest): ListUsersRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListUsersRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListUsersRequest; - static deserializeBinaryFromReader(message: ListUsersRequest, reader: jspb.BinaryReader): ListUsersRequest; -} - -export namespace ListUsersRequest { - export type AsObject = { - - filtersMap: Array<[string, string]>, - } -} - -export class ListUsersResponse extends jspb.Message { - clearUsersList(): void; - getUsersList(): Array; - setUsersList(value: Array): ListUsersResponse; - addUsers(value?: User, index?: number): User; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): ListUsersResponse.AsObject; - static toObject(includeInstance: boolean, msg: ListUsersResponse): ListUsersResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: ListUsersResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): ListUsersResponse; - static deserializeBinaryFromReader(message: ListUsersResponse, reader: jspb.BinaryReader): ListUsersResponse; -} - -export namespace ListUsersResponse { - export type AsObject = { - usersList: Array, - } -} - -export class CreateUserCredentialsRequest extends jspb.Message { - getEmail(): string; - setEmail(value: string): CreateUserCredentialsRequest; - getSecret(): string; - setSecret(value: string): CreateUserCredentialsRequest; - getExpiration(): string; - setExpiration(value: string): CreateUserCredentialsRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateUserCredentialsRequest.AsObject; - static toObject(includeInstance: boolean, msg: CreateUserCredentialsRequest): CreateUserCredentialsRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateUserCredentialsRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateUserCredentialsRequest; - static deserializeBinaryFromReader(message: CreateUserCredentialsRequest, reader: jspb.BinaryReader): CreateUserCredentialsRequest; -} - -export namespace CreateUserCredentialsRequest { - export type AsObject = { - email: string, - secret: string, - expiration: string, - } -} - -export class CreateUserCredentialsResponse extends jspb.Message { - getAccessKeyId(): string; - setAccessKeyId(value: string): CreateUserCredentialsResponse; - getAccessKeySecret(): string; - setAccessKeySecret(value: string): CreateUserCredentialsResponse; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateUserCredentialsResponse.AsObject; - static toObject(includeInstance: boolean, msg: CreateUserCredentialsResponse): CreateUserCredentialsResponse.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateUserCredentialsResponse, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateUserCredentialsResponse; - static deserializeBinaryFromReader(message: CreateUserCredentialsResponse, reader: jspb.BinaryReader): CreateUserCredentialsResponse; -} - -export namespace CreateUserCredentialsResponse { - export type AsObject = { - accessKeyId: string, - accessKeySecret: string, - } -} - -export class CreateUserRequest extends jspb.Message { - getEmail(): string; - setEmail(value: string): CreateUserRequest; - getName(): string; - setName(value: string): CreateUserRequest; - getSecret(): string; - setSecret(value: string): CreateUserRequest; - getAvatar(): string; - setAvatar(value: string): CreateUserRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): CreateUserRequest.AsObject; - static toObject(includeInstance: boolean, msg: CreateUserRequest): CreateUserRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: CreateUserRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): CreateUserRequest; - static deserializeBinaryFromReader(message: CreateUserRequest, reader: jspb.BinaryReader): CreateUserRequest; -} - -export namespace CreateUserRequest { - export type AsObject = { - email: string, - name: string, - secret: string, - avatar: string, - } -} - -export class UpdateUserRequest extends jspb.Message { - getRef(): string; - setRef(value: string): UpdateUserRequest; - getName(): string; - setName(value: string): UpdateUserRequest; - getSecret(): string; - setSecret(value: string): UpdateUserRequest; - getAvatar(): string; - setAvatar(value: string): UpdateUserRequest; - getStatus(): string; - setStatus(value: string): UpdateUserRequest; - getLimiter(): string; - setLimiter(value: string): UpdateUserRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): UpdateUserRequest.AsObject; - static toObject(includeInstance: boolean, msg: UpdateUserRequest): UpdateUserRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: UpdateUserRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): UpdateUserRequest; - static deserializeBinaryFromReader(message: UpdateUserRequest, reader: jspb.BinaryReader): UpdateUserRequest; -} - -export namespace UpdateUserRequest { - export type AsObject = { - ref: string, - name: string, - secret: string, - avatar: string, - status: string, - limiter: string, - } -} - -export class GetUserRequest extends jspb.Message { - getRef(): string; - setRef(value: string): GetUserRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): GetUserRequest.AsObject; - static toObject(includeInstance: boolean, msg: GetUserRequest): GetUserRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: GetUserRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): GetUserRequest; - static deserializeBinaryFromReader(message: GetUserRequest, reader: jspb.BinaryReader): GetUserRequest; -} - -export namespace GetUserRequest { - export type AsObject = { - ref: string, - } -} - -export class DeleteUserRequest extends jspb.Message { - getRef(): string; - setRef(value: string): DeleteUserRequest; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): DeleteUserRequest.AsObject; - static toObject(includeInstance: boolean, msg: DeleteUserRequest): DeleteUserRequest.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: DeleteUserRequest, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): DeleteUserRequest; - static deserializeBinaryFromReader(message: DeleteUserRequest, reader: jspb.BinaryReader): DeleteUserRequest; -} - -export namespace DeleteUserRequest { - export type AsObject = { - ref: string, - } -} - -export class User extends jspb.Message { - getRef(): string; - setRef(value: string): User; - getAccessKeyId(): string; - setAccessKeyId(value: string): User; - getEmail(): string; - setEmail(value: string): User; - getName(): string; - setName(value: string): User; - getAvatar(): string; - setAvatar(value: string): User; - getCreateTime(): string; - setCreateTime(value: string): User; - getUpdateTime(): string; - setUpdateTime(value: string): User; - getStatus(): string; - setStatus(value: string): User; - getLimiter(): string; - setLimiter(value: string): User; - - serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): User.AsObject; - static toObject(includeInstance: boolean, msg: User): User.AsObject; - static extensions: {[key: number]: jspb.ExtensionFieldInfo}; - static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo}; - static serializeBinaryToWriter(message: User, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): User; - static deserializeBinaryFromReader(message: User, reader: jspb.BinaryReader): User; -} - -export namespace User { - export type AsObject = { - ref: string, - accessKeyId: string, - email: string, - name: string, - avatar: string, - createTime: string, - updateTime: string, - status: string, - limiter: string, - } -} diff --git a/mods/users/src/service/protos/users_pb.js b/mods/users/src/service/protos/users_pb.js deleted file mode 100644 index 279e23c0c..000000000 --- a/mods/users/src/service/protos/users_pb.js +++ /dev/null @@ -1,1997 +0,0 @@ -// source: users.proto -/** - * @fileoverview - * @enhanceable - * @suppress {missingRequire} reports error on implicit type usages. - * @suppress {messageConventions} JS Compiler reports an error if a variable or - * field starts with 'MSG_' and isn't a translatable message. - * @public - */ -// GENERATED CODE -- DO NOT EDIT! -/* eslint-disable */ -// @ts-nocheck - -var jspb = require('google-protobuf'); -var goog = jspb; -var global = Function('return this')(); - -var protoc$gen$openapiv2_options_annotations_pb = require('./protoc-gen-openapiv2/options/annotations_pb.js'); -goog.object.extend(proto, protoc$gen$openapiv2_options_annotations_pb); -var google_api_annotations_pb = require('./google/api/annotations_pb.js'); -goog.object.extend(proto, google_api_annotations_pb); -var google_api_field_behavior_pb = require('./google/api/field_behavior_pb.js'); -goog.object.extend(proto, google_api_field_behavior_pb); -var common_pb = require('./common_pb.js'); -goog.object.extend(proto, common_pb); -goog.exportSymbol('proto.fonoster.users.v1beta1.CreateUserCredentialsRequest', null, global); -goog.exportSymbol('proto.fonoster.users.v1beta1.CreateUserCredentialsResponse', null, global); -goog.exportSymbol('proto.fonoster.users.v1beta1.CreateUserRequest', null, global); -goog.exportSymbol('proto.fonoster.users.v1beta1.DeleteUserRequest', null, global); -goog.exportSymbol('proto.fonoster.users.v1beta1.GetUserRequest', null, global); -goog.exportSymbol('proto.fonoster.users.v1beta1.ListUsersRequest', null, global); -goog.exportSymbol('proto.fonoster.users.v1beta1.ListUsersResponse', null, global); -goog.exportSymbol('proto.fonoster.users.v1beta1.UpdateUserRequest', null, global); -goog.exportSymbol('proto.fonoster.users.v1beta1.User', null, global); -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.users.v1beta1.ListUsersRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.users.v1beta1.ListUsersRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.users.v1beta1.ListUsersRequest.displayName = 'proto.fonoster.users.v1beta1.ListUsersRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.users.v1beta1.ListUsersResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.fonoster.users.v1beta1.ListUsersResponse.repeatedFields_, null); -}; -goog.inherits(proto.fonoster.users.v1beta1.ListUsersResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.users.v1beta1.ListUsersResponse.displayName = 'proto.fonoster.users.v1beta1.ListUsersResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.users.v1beta1.CreateUserCredentialsRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.displayName = 'proto.fonoster.users.v1beta1.CreateUserCredentialsRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.users.v1beta1.CreateUserCredentialsResponse, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.displayName = 'proto.fonoster.users.v1beta1.CreateUserCredentialsResponse'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.users.v1beta1.CreateUserRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.users.v1beta1.CreateUserRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.users.v1beta1.CreateUserRequest.displayName = 'proto.fonoster.users.v1beta1.CreateUserRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.users.v1beta1.UpdateUserRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.users.v1beta1.UpdateUserRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.users.v1beta1.UpdateUserRequest.displayName = 'proto.fonoster.users.v1beta1.UpdateUserRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.users.v1beta1.GetUserRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.users.v1beta1.GetUserRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.users.v1beta1.GetUserRequest.displayName = 'proto.fonoster.users.v1beta1.GetUserRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.users.v1beta1.DeleteUserRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.users.v1beta1.DeleteUserRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.users.v1beta1.DeleteUserRequest.displayName = 'proto.fonoster.users.v1beta1.DeleteUserRequest'; -} -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.fonoster.users.v1beta1.User = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.fonoster.users.v1beta1.User, jspb.Message); -if (goog.DEBUG && !COMPILED) { - /** - * @public - * @override - */ - proto.fonoster.users.v1beta1.User.displayName = 'proto.fonoster.users.v1beta1.User'; -} - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.users.v1beta1.ListUsersRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.users.v1beta1.ListUsersRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.users.v1beta1.ListUsersRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.ListUsersRequest.toObject = function(includeInstance, msg) { - var f, obj = { - filtersMap: (f = msg.getFiltersMap()) ? f.toObject(includeInstance, undefined) : [] - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.users.v1beta1.ListUsersRequest} - */ -proto.fonoster.users.v1beta1.ListUsersRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.users.v1beta1.ListUsersRequest; - return proto.fonoster.users.v1beta1.ListUsersRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.users.v1beta1.ListUsersRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.users.v1beta1.ListUsersRequest} - */ -proto.fonoster.users.v1beta1.ListUsersRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = msg.getFiltersMap(); - reader.readMessage(value, function(message, reader) { - jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readString, null, "", ""); - }); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.users.v1beta1.ListUsersRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.users.v1beta1.ListUsersRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.users.v1beta1.ListUsersRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.ListUsersRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getFiltersMap(true); - if (f && f.getLength() > 0) { - f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeString); - } -}; - - -/** - * map filters = 1; - * @param {boolean=} opt_noLazyCreate Do not create the map if - * empty, instead returning `undefined` - * @return {!jspb.Map} - */ -proto.fonoster.users.v1beta1.ListUsersRequest.prototype.getFiltersMap = function(opt_noLazyCreate) { - return /** @type {!jspb.Map} */ ( - jspb.Message.getMapField(this, 1, opt_noLazyCreate, - null)); -}; - - -/** - * Clears values from the map. The map will be non-null. - * @return {!proto.fonoster.users.v1beta1.ListUsersRequest} returns this - */ -proto.fonoster.users.v1beta1.ListUsersRequest.prototype.clearFiltersMap = function() { - this.getFiltersMap().clear(); - return this;}; - - - -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.fonoster.users.v1beta1.ListUsersResponse.repeatedFields_ = [1]; - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.users.v1beta1.ListUsersResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.users.v1beta1.ListUsersResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.users.v1beta1.ListUsersResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.ListUsersResponse.toObject = function(includeInstance, msg) { - var f, obj = { - usersList: jspb.Message.toObjectList(msg.getUsersList(), - proto.fonoster.users.v1beta1.User.toObject, includeInstance) - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.users.v1beta1.ListUsersResponse} - */ -proto.fonoster.users.v1beta1.ListUsersResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.users.v1beta1.ListUsersResponse; - return proto.fonoster.users.v1beta1.ListUsersResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.users.v1beta1.ListUsersResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.users.v1beta1.ListUsersResponse} - */ -proto.fonoster.users.v1beta1.ListUsersResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = new proto.fonoster.users.v1beta1.User; - reader.readMessage(value,proto.fonoster.users.v1beta1.User.deserializeBinaryFromReader); - msg.addUsers(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.users.v1beta1.ListUsersResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.users.v1beta1.ListUsersResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.users.v1beta1.ListUsersResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.ListUsersResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getUsersList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 1, - f, - proto.fonoster.users.v1beta1.User.serializeBinaryToWriter - ); - } -}; - - -/** - * repeated User users = 1; - * @return {!Array} - */ -proto.fonoster.users.v1beta1.ListUsersResponse.prototype.getUsersList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.fonoster.users.v1beta1.User, 1)); -}; - - -/** - * @param {!Array} value - * @return {!proto.fonoster.users.v1beta1.ListUsersResponse} returns this -*/ -proto.fonoster.users.v1beta1.ListUsersResponse.prototype.setUsersList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); -}; - - -/** - * @param {!proto.fonoster.users.v1beta1.User=} opt_value - * @param {number=} opt_index - * @return {!proto.fonoster.users.v1beta1.User} - */ -proto.fonoster.users.v1beta1.ListUsersResponse.prototype.addUsers = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.fonoster.users.v1beta1.User, opt_index); -}; - - -/** - * Clears the list making it empty but non-null. - * @return {!proto.fonoster.users.v1beta1.ListUsersResponse} returns this - */ -proto.fonoster.users.v1beta1.ListUsersResponse.prototype.clearUsersList = function() { - return this.setUsersList([]); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.users.v1beta1.CreateUserCredentialsRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.toObject = function(includeInstance, msg) { - var f, obj = { - email: jspb.Message.getFieldWithDefault(msg, 1, ""), - secret: jspb.Message.getFieldWithDefault(msg, 2, ""), - expiration: jspb.Message.getFieldWithDefault(msg, 3, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.users.v1beta1.CreateUserCredentialsRequest} - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.users.v1beta1.CreateUserCredentialsRequest; - return proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.users.v1beta1.CreateUserCredentialsRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.users.v1beta1.CreateUserCredentialsRequest} - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSecret(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setExpiration(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.users.v1beta1.CreateUserCredentialsRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSecret(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getExpiration(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } -}; - - -/** - * optional string email = 1; - * @return {string} - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.CreateUserCredentialsRequest} returns this - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string secret = 2; - * @return {string} - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.prototype.getSecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.CreateUserCredentialsRequest} returns this - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.prototype.setSecret = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string expiration = 3; - * @return {string} - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.prototype.getExpiration = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.CreateUserCredentialsRequest} returns this - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsRequest.prototype.setExpiration = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.users.v1beta1.CreateUserCredentialsResponse} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.toObject = function(includeInstance, msg) { - var f, obj = { - accessKeyId: jspb.Message.getFieldWithDefault(msg, 1, ""), - accessKeySecret: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.users.v1beta1.CreateUserCredentialsResponse} - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.users.v1beta1.CreateUserCredentialsResponse; - return proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.users.v1beta1.CreateUserCredentialsResponse} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.users.v1beta1.CreateUserCredentialsResponse} - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setAccessKeyId(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setAccessKeySecret(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.users.v1beta1.CreateUserCredentialsResponse} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getAccessKeyId(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getAccessKeySecret(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional string access_key_id = 1; - * @return {string} - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.prototype.getAccessKeyId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.CreateUserCredentialsResponse} returns this - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.prototype.setAccessKeyId = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string access_key_secret = 2; - * @return {string} - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.prototype.getAccessKeySecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.CreateUserCredentialsResponse} returns this - */ -proto.fonoster.users.v1beta1.CreateUserCredentialsResponse.prototype.setAccessKeySecret = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.users.v1beta1.CreateUserRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.users.v1beta1.CreateUserRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.users.v1beta1.CreateUserRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.CreateUserRequest.toObject = function(includeInstance, msg) { - var f, obj = { - email: jspb.Message.getFieldWithDefault(msg, 1, ""), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - secret: jspb.Message.getFieldWithDefault(msg, 3, ""), - avatar: jspb.Message.getFieldWithDefault(msg, 4, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.users.v1beta1.CreateUserRequest} - */ -proto.fonoster.users.v1beta1.CreateUserRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.users.v1beta1.CreateUserRequest; - return proto.fonoster.users.v1beta1.CreateUserRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.users.v1beta1.CreateUserRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.users.v1beta1.CreateUserRequest} - */ -proto.fonoster.users.v1beta1.CreateUserRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setSecret(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setAvatar(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.users.v1beta1.CreateUserRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.users.v1beta1.CreateUserRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.users.v1beta1.CreateUserRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.CreateUserRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getSecret(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getAvatar(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } -}; - - -/** - * optional string email = 1; - * @return {string} - */ -proto.fonoster.users.v1beta1.CreateUserRequest.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.CreateUserRequest} returns this - */ -proto.fonoster.users.v1beta1.CreateUserRequest.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.fonoster.users.v1beta1.CreateUserRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.CreateUserRequest} returns this - */ -proto.fonoster.users.v1beta1.CreateUserRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string secret = 3; - * @return {string} - */ -proto.fonoster.users.v1beta1.CreateUserRequest.prototype.getSecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.CreateUserRequest} returns this - */ -proto.fonoster.users.v1beta1.CreateUserRequest.prototype.setSecret = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string avatar = 4; - * @return {string} - */ -proto.fonoster.users.v1beta1.CreateUserRequest.prototype.getAvatar = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.CreateUserRequest} returns this - */ -proto.fonoster.users.v1beta1.CreateUserRequest.prototype.setAvatar = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.users.v1beta1.UpdateUserRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.users.v1beta1.UpdateUserRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - name: jspb.Message.getFieldWithDefault(msg, 2, ""), - secret: jspb.Message.getFieldWithDefault(msg, 3, ""), - avatar: jspb.Message.getFieldWithDefault(msg, 4, ""), - status: jspb.Message.getFieldWithDefault(msg, 5, ""), - limiter: jspb.Message.getFieldWithDefault(msg, 6, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.users.v1beta1.UpdateUserRequest} - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.users.v1beta1.UpdateUserRequest; - return proto.fonoster.users.v1beta1.UpdateUserRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.users.v1beta1.UpdateUserRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.users.v1beta1.UpdateUserRequest} - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setSecret(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setAvatar(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setStatus(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setLimiter(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.users.v1beta1.UpdateUserRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.users.v1beta1.UpdateUserRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getSecret(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getAvatar(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getStatus(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getLimiter(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.UpdateUserRequest} returns this - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string name = 2; - * @return {string} - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.UpdateUserRequest} returns this - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string secret = 3; - * @return {string} - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.getSecret = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.UpdateUserRequest} returns this - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.setSecret = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string avatar = 4; - * @return {string} - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.getAvatar = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.UpdateUserRequest} returns this - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.setAvatar = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string status = 5; - * @return {string} - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.getStatus = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.UpdateUserRequest} returns this - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.setStatus = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string limiter = 6; - * @return {string} - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.getLimiter = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.UpdateUserRequest} returns this - */ -proto.fonoster.users.v1beta1.UpdateUserRequest.prototype.setLimiter = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.users.v1beta1.GetUserRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.users.v1beta1.GetUserRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.users.v1beta1.GetUserRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.GetUserRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.users.v1beta1.GetUserRequest} - */ -proto.fonoster.users.v1beta1.GetUserRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.users.v1beta1.GetUserRequest; - return proto.fonoster.users.v1beta1.GetUserRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.users.v1beta1.GetUserRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.users.v1beta1.GetUserRequest} - */ -proto.fonoster.users.v1beta1.GetUserRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.users.v1beta1.GetUserRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.users.v1beta1.GetUserRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.users.v1beta1.GetUserRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.GetUserRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.users.v1beta1.GetUserRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.GetUserRequest} returns this - */ -proto.fonoster.users.v1beta1.GetUserRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.users.v1beta1.DeleteUserRequest.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.users.v1beta1.DeleteUserRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.users.v1beta1.DeleteUserRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.DeleteUserRequest.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.users.v1beta1.DeleteUserRequest} - */ -proto.fonoster.users.v1beta1.DeleteUserRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.users.v1beta1.DeleteUserRequest; - return proto.fonoster.users.v1beta1.DeleteUserRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.users.v1beta1.DeleteUserRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.users.v1beta1.DeleteUserRequest} - */ -proto.fonoster.users.v1beta1.DeleteUserRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.users.v1beta1.DeleteUserRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.users.v1beta1.DeleteUserRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.users.v1beta1.DeleteUserRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.DeleteUserRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.users.v1beta1.DeleteUserRequest.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.DeleteUserRequest} returns this - */ -proto.fonoster.users.v1beta1.DeleteUserRequest.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - - - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * Optional fields that are not set will be set to undefined. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * net/proto2/compiler/js/internal/generator.cc#kKeyword. - * @param {boolean=} opt_includeInstance Deprecated. whether to include the - * JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @return {!Object} - */ -proto.fonoster.users.v1beta1.User.prototype.toObject = function(opt_includeInstance) { - return proto.fonoster.users.v1beta1.User.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Deprecated. Whether to include - * the JSPB instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.fonoster.users.v1beta1.User} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.User.toObject = function(includeInstance, msg) { - var f, obj = { - ref: jspb.Message.getFieldWithDefault(msg, 1, ""), - accessKeyId: jspb.Message.getFieldWithDefault(msg, 2, ""), - email: jspb.Message.getFieldWithDefault(msg, 3, ""), - name: jspb.Message.getFieldWithDefault(msg, 4, ""), - avatar: jspb.Message.getFieldWithDefault(msg, 5, ""), - createTime: jspb.Message.getFieldWithDefault(msg, 6, ""), - updateTime: jspb.Message.getFieldWithDefault(msg, 7, ""), - status: jspb.Message.getFieldWithDefault(msg, 8, ""), - limiter: jspb.Message.getFieldWithDefault(msg, 9, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.fonoster.users.v1beta1.User} - */ -proto.fonoster.users.v1beta1.User.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.fonoster.users.v1beta1.User; - return proto.fonoster.users.v1beta1.User.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.fonoster.users.v1beta1.User} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.fonoster.users.v1beta1.User} - */ -proto.fonoster.users.v1beta1.User.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setRef(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setAccessKeyId(value); - break; - case 3: - var value = /** @type {string} */ (reader.readString()); - msg.setEmail(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setName(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setAvatar(value); - break; - case 6: - var value = /** @type {string} */ (reader.readString()); - msg.setCreateTime(value); - break; - case 7: - var value = /** @type {string} */ (reader.readString()); - msg.setUpdateTime(value); - break; - case 8: - var value = /** @type {string} */ (reader.readString()); - msg.setStatus(value); - break; - case 9: - var value = /** @type {string} */ (reader.readString()); - msg.setLimiter(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.fonoster.users.v1beta1.User.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.fonoster.users.v1beta1.User.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.fonoster.users.v1beta1.User} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.fonoster.users.v1beta1.User.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getRef(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getAccessKeyId(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } - f = message.getEmail(); - if (f.length > 0) { - writer.writeString( - 3, - f - ); - } - f = message.getName(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getAvatar(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } - f = message.getCreateTime(); - if (f.length > 0) { - writer.writeString( - 6, - f - ); - } - f = message.getUpdateTime(); - if (f.length > 0) { - writer.writeString( - 7, - f - ); - } - f = message.getStatus(); - if (f.length > 0) { - writer.writeString( - 8, - f - ); - } - f = message.getLimiter(); - if (f.length > 0) { - writer.writeString( - 9, - f - ); - } -}; - - -/** - * optional string ref = 1; - * @return {string} - */ -proto.fonoster.users.v1beta1.User.prototype.getRef = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.User} returns this - */ -proto.fonoster.users.v1beta1.User.prototype.setRef = function(value) { - return jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string access_key_id = 2; - * @return {string} - */ -proto.fonoster.users.v1beta1.User.prototype.getAccessKeyId = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.User} returns this - */ -proto.fonoster.users.v1beta1.User.prototype.setAccessKeyId = function(value) { - return jspb.Message.setProto3StringField(this, 2, value); -}; - - -/** - * optional string email = 3; - * @return {string} - */ -proto.fonoster.users.v1beta1.User.prototype.getEmail = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.User} returns this - */ -proto.fonoster.users.v1beta1.User.prototype.setEmail = function(value) { - return jspb.Message.setProto3StringField(this, 3, value); -}; - - -/** - * optional string name = 4; - * @return {string} - */ -proto.fonoster.users.v1beta1.User.prototype.getName = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.User} returns this - */ -proto.fonoster.users.v1beta1.User.prototype.setName = function(value) { - return jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string avatar = 5; - * @return {string} - */ -proto.fonoster.users.v1beta1.User.prototype.getAvatar = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.User} returns this - */ -proto.fonoster.users.v1beta1.User.prototype.setAvatar = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - -/** - * optional string create_time = 6; - * @return {string} - */ -proto.fonoster.users.v1beta1.User.prototype.getCreateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.User} returns this - */ -proto.fonoster.users.v1beta1.User.prototype.setCreateTime = function(value) { - return jspb.Message.setProto3StringField(this, 6, value); -}; - - -/** - * optional string update_time = 7; - * @return {string} - */ -proto.fonoster.users.v1beta1.User.prototype.getUpdateTime = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.User} returns this - */ -proto.fonoster.users.v1beta1.User.prototype.setUpdateTime = function(value) { - return jspb.Message.setProto3StringField(this, 7, value); -}; - - -/** - * optional string status = 8; - * @return {string} - */ -proto.fonoster.users.v1beta1.User.prototype.getStatus = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.User} returns this - */ -proto.fonoster.users.v1beta1.User.prototype.setStatus = function(value) { - return jspb.Message.setProto3StringField(this, 8, value); -}; - - -/** - * optional string limiter = 9; - * @return {string} - */ -proto.fonoster.users.v1beta1.User.prototype.getLimiter = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); -}; - - -/** - * @param {string} value - * @return {!proto.fonoster.users.v1beta1.User} returns this - */ -proto.fonoster.users.v1beta1.User.prototype.setLimiter = function(value) { - return jspb.Message.setProto3StringField(this, 9, value); -}; - - -goog.object.extend(exports, proto.fonoster.users.v1beta1); diff --git a/mods/users/src/service/runner.ts b/mods/users/src/service/runner.ts deleted file mode 100644 index cafb6a733..000000000 --- a/mods/users/src/service/runner.ts +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env node -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import UsersServer from "./users"; -import { UsersService } from "./protos/users_grpc_pb"; -import { AuthMiddleware } from "@fonoster/auth"; -import { getSalt } from "@fonoster/certs"; -import { runServices } from "@fonoster/common"; - -const services = [ - { - name: "users", - version: "v1beta1", - service: UsersService, - server: new UsersServer() - } -]; - -const middleware = { - name: "authentication", - middlewareObj: new AuthMiddleware(getSalt()).middleware -}; - -runServices(services, [middleware]); diff --git a/mods/users/src/service/types.ts b/mods/users/src/service/types.ts deleted file mode 100644 index 88d4ed38a..000000000 --- a/mods/users/src/service/types.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// This exist as a based status for the user, however you can update with your own -export enum UserStatus { - ACTIVE = "active" -} - -// This exist as a based limiter for the user, however you can update with your own -export enum UserLimiter { - DEFAULT = "default" -} diff --git a/mods/users/src/service/users.ts b/mods/users/src/service/users.ts deleted file mode 100644 index 1f44fca62..000000000 --- a/mods/users/src/service/users.ts +++ /dev/null @@ -1,299 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/* eslint-disable require-jsdoc */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -import grpc from "@grpc/grpc-js"; -import UserPB, { - CreateUserRequest, - UpdateUserRequest, - GetUserRequest, - DeleteUserRequest, - CreateUserCredentialsRequest, - CreateUserCredentialsResponse, - ListUsersRequest, - ListUsersResponse, - User -} from "./protos/users_pb"; -import { Empty } from "./protos/common_pb"; -import { - IUsersService, - UsersService, - IUsersServer -} from "./protos/users_grpc_pb"; -import { assertNotEmpty, assertValidEmail, assertValidURL } from "./assertions"; -import { - getRedisConnection, - getAccessKeyId, - getAccessKeySecret -} from "@fonoster/core"; -import objectid from "bson-objectid"; -import encoder from "./encoder"; -import decoder from "./decoder"; -import { FonosterError } from "@fonoster/errors"; -import { ErrorCodes } from "@fonoster/errors"; -import Auth from "@fonoster/auth/dist/utils/auth_utils"; -import JWT from "@fonoster/auth/dist/utils/jwt"; -import { AUTH_ISS, getSalt } from "@fonoster/certs"; -import logger from "@fonoster/logger"; -import bcrypt from "bcrypt"; -import { UserLimiter, UserStatus } from "./types"; - -const authenticator = new Auth(new JWT()); -const redis = getRedisConnection(); - -// TODO: Move to commons or core -async function getTokenRole(token: string): Promise { - try { - const jwt = new JWT(); - const payload = (await jwt.decode(token, getSalt())) as { role: string }; - return payload.role; - } catch (e) { - return null; - } -} - -class UsersServer implements IUsersServer { - [name: string]: grpc.UntypedHandleCall; - - async listUsers( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const role = await getTokenRole(getAccessKeySecret(call)); - const accessKeyId = getAccessKeyId(call); - const list = await redis.smembers("fn_users"); - const emailFilter = call.request.getFiltersMap().get("email"); - const users: User[] = await Promise.all( - list.map(async (ref) => { - const raw = (await redis.get(ref)).toString(); - const asObj = decoder(raw); - if (emailFilter && emailFilter !== asObj.getEmail()) { - return; - } - - if ( - accessKeyId === asObj.getAccessKeyId() || - role === "SERVICE" || - role === "ADMIN" - ) { - return asObj; - } - }) - ); - - const response = new ListUsersResponse(); - response.setUsersList(users[0] ? users : []); - callback(null, response); - } catch (e) { - callback(e, null); - } - } - - async createUser( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - assertNotEmpty("name", call.request.getName()); - assertNotEmpty("secret", call.request.getSecret()); - assertValidEmail(call.request.getEmail()); - assertValidURL(call.request.getAvatar()); - - const emailExist = await redis.get(call.request.getEmail()); - - if (emailExist) { - throw new FonosterError( - "user already exist", - ErrorCodes.ALREADY_EXISTS - ); - } - - const ref = "US" + objectid(); - const user = new UserPB.User(); - - user.setRef(ref); - user.setAccessKeyId(ref); - user.setName(call.request.getName()); - user.setEmail(call.request.getEmail()); - user.setAvatar(call.request.getAvatar()); - user.setUpdateTime(new Date().toISOString()); - user.setCreateTime(new Date().toISOString()); - user.setStatus(UserStatus.ACTIVE); - user.setLimiter(UserLimiter.DEFAULT); - // TODO: Apply strong cypher - const secretHash = await bcrypt.hash(call.request.getSecret(), 10); - - redis.set(ref, encoder(user, secretHash)); - redis.set(call.request.getEmail(), ref); - redis.sadd("fn_users", ref); - callback(null, user); - } catch (e) { - callback(e, null); - } - } - - async updateUser( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const role = await getTokenRole(getAccessKeySecret(call)); - const ref = call.request.getRef(); - - const raw = await redis.get(ref); - if (!raw) throw new FonosterError("not found", ErrorCodes.NOT_FOUND); - let secretHash = JSON.parse(raw.toString()).secretHash; - const user = decoder(raw); - - if (call.request.getName()) user.setName(call.request.getName()); - if (call.request.getSecret()) { - secretHash = await bcrypt.hash(call.request.getSecret(), 10); - } - if (call.request.getAvatar()) { - assertValidURL(call.request.getAvatar()); - user.setAvatar(call.request.getAvatar()); - } - - if (call.request.getStatus()) { - if (role === "SERVICE" || role === "ADMIN") { - user.setStatus(call.request.getStatus()); - } else { - throw new FonosterError( - "not authorized", - ErrorCodes.PERMISSION_DENIED - ); - } - } - - if (call.request.getLimiter()) { - if (role === "SERVICE" || role === "ADMIN") { - user.setLimiter(call.request.getLimiter()); - } else { - throw new FonosterError( - "not authorized", - ErrorCodes.PERMISSION_DENIED - ); - } - } - - user.setUpdateTime(new Date().toISOString()); - redis.set(ref, encoder(user, secretHash)); - callback(null, user); - } catch (e) { - callback(e, null); - } - } - - async getUser( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const accessKeyId = getAccessKeyId(call); - - if (accessKeyId !== call.request.getRef()) { - throw new FonosterError( - "permission denied", - ErrorCodes.PERMISSION_DENIED - ); - } - - // Get result here - const raw = await redis.get(call.request.getRef()); - - if (!raw) throw new FonosterError("not found", ErrorCodes.NOT_FOUND); - - const user = decoder(raw.toString()); - callback(null, user); - } catch (e) { - callback(e, null); - } - } - - async deleteUser( - call: grpc.ServerUnaryCall, - callback: grpc.sendUnaryData - ) { - try { - const raw = await redis.get(call.request.getRef()); - if (!raw) throw new FonosterError("not found", ErrorCodes.NOT_FOUND); - const user = decoder(raw.toString()); - await redis.del(user.getRef()); - await redis.del(user.getEmail()); - // TODO: Also unlink all of the User's projects - callback(null, new Empty()); - } catch (e) { - callback(e, null); - } - } - - async createUserCredentials( - call: grpc.ServerUnaryCall< - CreateUserCredentialsRequest, - CreateUserCredentialsResponse - >, - callback: grpc.sendUnaryData - ) { - try { - logger.verbose( - `@fonoster/auth creating token [email is ${call.request.getEmail()}]` - ); - const ref = await redis.get(call.request.getEmail()); - - // Compare the value send with the value stored - if (!ref) { - throw new FonosterError( - "invalid credentials", - ErrorCodes.PERMISSION_DENIED - ); - } - - const raw = await redis.get(ref); - - if (!raw) throw new FonosterError("not found", ErrorCodes.NOT_FOUND); - - const user = JSON.parse(raw.toString()); - - if (!bcrypt.compareSync(call.request.getSecret(), user.secretHash)) { - throw new FonosterError( - "invalid credentials", - ErrorCodes.PERMISSION_DENIED - ); - } - - const result = await authenticator.createToken( - user.accessKeyId, - AUTH_ISS, - "USER", - getSalt(), - call.request.getExpiration() || "30d" - ); - - const response = new CreateUserCredentialsResponse(); - response.setAccessKeyId(user.accessKeyId); - response.setAccessKeySecret(result.accessToken); - callback(null, response); - } catch (e) { - callback(e, null); - } - } -} - -export { UsersServer as default, IUsersService, UsersService }; diff --git a/mods/users/test/users.unit.test.ts b/mods/users/test/users.unit.test.ts deleted file mode 100644 index bae40f841..000000000 --- a/mods/users/test/users.unit.test.ts +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import Users, { UsersPB } from "../src/client/users"; -import chaiAsPromised from "chai-as-promised"; -import { APIClient } from "@fonoster/common"; - -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/users", () => { - const userObj = new UsersPB.User(); - userObj.setRef("Nx05y-ldZa"); - userObj.setName("John Doe"); - userObj.setEmail("john@email.com"); - userObj.setAvatar("https://avatar.io/avt.png"); - - afterEach(() => sandbox.restore()); - - it("should list users", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - listUsers: () => { - return { - sendMessage: () => - Promise.resolve({ - getUsersList: () => [userObj] - }) - }; - } - }); - - const usersAPI = new Users(); - const result = await usersAPI.listUsers({}); - - expect(serviceStub).to.be.calledTwice; - expect(result.users[0]) - .to.have.property("ref") - .to.be.equal(userObj.getRef()); - expect(result.users[0]) - .to.have.property("name") - .to.be.equal(userObj.getName()); - expect(result.users[0]) - .to.have.property("email") - .to.be.equal(userObj.getEmail()); - expect(result.users[0]) - .to.have.property("accessKeyId") - .to.be.equal(userObj.getAccessKeyId()); - expect(result.users[0]) - .to.have.property("avatar") - .to.be.equal(userObj.getAvatar()); - expect(result.users[0]) - .to.have.property("createTime") - .to.be.equal(userObj.getCreateTime()); - expect(result.users[0]) - .to.have.property("updateTime") - .to.be.equal(userObj.getUpdateTime()); - }); - - it("should create a user", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - createUser: () => { - return { - sendMessage: () => Promise.resolve(userObj) - }; - } - }); - - const req = { - name: userObj.getName(), - email: userObj.getEmail(), - secret: "1234", - avatar: userObj.getAvatar() - }; - - const usersAPI = new Users(); - const result = await usersAPI.createUser(req); - - expect(result).to.have.property("ref").to.be.equal(userObj.getRef()); - expect(result) - .to.have.property("accessKeyId") - .to.be.equal(userObj.getAccessKeyId()); - expect(result).to.have.property("email").to.be.equal(userObj.getEmail()); - expect(result).to.have.property("name").to.be.equal(userObj.getName()); - expect(result).to.have.property("avatar").to.be.equal(userObj.getAvatar()); - expect(result).to.have.property("createTime").not.to.be.null; - expect(result).to.have.property("updateTime").not.to.be.null; - expect(serviceStub).to.have.been.calledTwice; - }); - - it("should get a user", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - getUser: () => { - return { - sendMessage: () => Promise.resolve(userObj) - }; - } - }); - - const ref = "Nx05y-ldZa"; - const usersAPI = new Users(); - const result = await usersAPI.getUser(ref); - - expect(result).to.have.property("ref").to.be.equal(userObj.getRef()); - expect(result) - .to.have.property("accessKeyId") - .to.be.equal(userObj.getAccessKeyId()); - expect(result).to.have.property("email").to.be.equal(userObj.getEmail()); - expect(result).to.have.property("name").to.be.equal(userObj.getName()); - expect(result).to.have.property("avatar").to.be.equal(userObj.getAvatar()); - expect(result).to.have.property("createTime").not.to.be.null; - expect(result).to.have.property("updateTime").not.to.be.null; - expect(serviceStub).to.have.been.calledTwice; - }); - - it("should delete a user", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const serviceStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - deleteUser: () => { - return { - sendMessage: () => Promise.resolve({ ref: "Nx05y-ldZa" }) - }; - } - }); - - const usersAPI = new Users(); - const res = await usersAPI.deleteUser(userObj.getRef()); - - expect(serviceStub).to.have.been.calledTwice; - expect(res).to.have.property("ref").to.be.equal(userObj.getRef()); - }); - - it("should update a user", async () => { - const request = { - ref: userObj.getRef(), - secret: "1234", - avatar: userObj.getAvatar(), - status: "active", - limiter: "starter" - }; - - sandbox.stub(APIClient.prototype, "init").returns(); - const updateUserStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - updateUser: () => { - return { - sendMessage: () => - Promise.resolve({ getRef: () => userObj.getRef() }) - }; - } - }); - - const usersAPI = new Users(); - const result = await usersAPI.updateUser(request); - expect(result).to.have.property("ref").to.be.equal(userObj.getRef()); - expect(updateUserStub).to.be.calledTwice; - }); - - it("should login a user", async () => { - sandbox.stub(APIClient.prototype, "init").returns(); - const loginUserStub = sandbox - .stub(APIClient.prototype, "getService") - .returns({ - createUserCredentials: () => { - return { - sendMessage: () => - Promise.resolve({ - getAccessKeyId: () => userObj.getAccessKeyId(), - getAccessKeySecret: () => "..." - }) - }; - } - }); - - const request = { - email: userObj.getEmail(), - secret: "1234" - }; - - const usersAPI = new Users(); - const result = await usersAPI.createUserCredentials(request); - expect(result) - .to.have.property("accessKeyId") - .to.be.equal(userObj.getAccessKeyId()); - expect(result).to.have.property("accessKeySecret").to.be.equal("..."); - expect(loginUserStub).to.be.calledTwice; - }); -}); diff --git a/mods/users/tsconfig.json b/mods/users/tsconfig.json deleted file mode 100644 index 0fddb065f..000000000 --- a/mods/users/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" - }, - "references": [ - { "path": "../common" }, - { "path": "../core" }, - { "path": "../logger" } - ], - "exclude": ["node_modules", "dist", "test"] -} diff --git a/mods/voice/.intro.md b/mods/voice/.intro.md new file mode 100644 index 000000000..126e0c943 --- /dev/null +++ b/mods/voice/.intro.md @@ -0,0 +1,75 @@ +voice +================= + +[![Voice](https://img.shields.io/badge/voice-api-brightgreen.svg)](https://fonoster.com) +[![Version](https://img.shields.io/npm/v/@fonoster/voice.svg)](https://npmjs.org/package/@fonoster/voice) +[![Downloads/week](https://img.shields.io/npm/dw/@fonoster/voice.svg)](https://npmjs.org/package/@fonoster/voice) +[![License](https://img.shields.io/npm/l/@fonoster/voice.svg)](https://github.com/fonoster/fonoster/blob/main/package.json) + +The Voice module is a library for creating voice applications using the Fonoster API. It provides a simple way to create voice applications that can interact with the calling party using DTMF or speech recognition combined with simple verbs. + +* [Installation](#installation) +* [Example](#example) +* [Voice Response](#VoiceResponse) + +## Installation + +```sh-session +$ npm install --save @fonoster/voice +``` + +## Example + +A Voice Application is a server that controls a call's flow. A Voice Application can use any combination of the following verbs: + +- `Answer` - Accepts an incoming call +- `Dial` - Passes the call to an Agent or a Number at the PSTN +- `Hangup` - Closes the call +- `Play` - Takes a URL or file and streams the sound back to the calling party +- `Say` - Takes a text, synthesizes the text into audio, and streams back the result +- `Gather` - Waits for DTMF or speech events and returns back the result +- `SGather` - Returns a stream for future DTMF and speech results +- `Stream` - Starts a stream to read and write audio into the call +- `Record` - It records the voice of the calling party and saves the audio on the Storage sub-system +- `Mute` - It tells the channel to stop sending media, effectively muting the channel +- `Unmute` - It tells the channel to allow media flow + +Voice Application Example: + +```typescript +const VoiceServer = require("@fonoster/voice").default; +const { + GatherSource, + VoiceRequest, + VoiceResponse +} = require("@fonoster/voice"); + +new VoiceServer().listen(async (req: VoiceRequest, voice: VoiceResponse) => { + const { ingressNumber, sessionRef, appRef } = req; + + await voice.answer(); + + await voice.say("Hi there! What's your name?"); + + const { speech: name } = await res.gather({ + source: GatherSource.SPEECH + }); + + await voice.say("Nice to meet you " + name + "!"); + + await voice.say("Please enter your 4 digit pin."); + + const { digits } = await voice.gather({ + maxDigits: 4, + finishOnKey: "#" + }); + + await voice.say("Your pin is " + digits); + + await voice.hangup(); +}); + +// Your app will live at tcp://127.0.0.1:50061 +// and you can easily publish it to the Internet with: +// ngrok tcp 50061 +``` \ No newline at end of file diff --git a/mods/voice/.lerna-changed-buster-192 b/mods/voice/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/events/.lerna-changed-buster-192 b/mods/voice/.lerna-changed-buster-5577 similarity index 100% rename from mods/events/.lerna-changed-buster-192 rename to mods/voice/.lerna-changed-buster-5577 diff --git a/mods/voice/.npmignore b/mods/voice/.npmignore deleted file mode 100644 index 385fe1863..000000000 --- a/mods/voice/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -*.ts \ No newline at end of file diff --git a/mods/voice/README.md b/mods/voice/README.md new file mode 100644 index 000000000..ef5718910 --- /dev/null +++ b/mods/voice/README.md @@ -0,0 +1,419 @@ +voice +================= + +[![Voice](https://img.shields.io/badge/voice-api-brightgreen.svg)](https://fonoster.com) +[![Version](https://img.shields.io/npm/v/@fonoster/voice.svg)](https://npmjs.org/package/@fonoster/voice) +[![Downloads/week](https://img.shields.io/npm/dw/@fonoster/voice.svg)](https://npmjs.org/package/@fonoster/voice) +[![License](https://img.shields.io/npm/l/@fonoster/voice.svg)](https://github.com/fonoster/fonoster/blob/main/package.json) + +The Voice module is a library for creating voice applications using the Fonoster API. It provides a simple way to create voice applications that can interact with the calling party using DTMF or speech recognition combined with simple verbs. + +* [Installation](#installation) +* [Example](#example) +* [Voice Response](#VoiceResponse) + +## Installation + +```sh-session +$ npm install --save @fonoster/voice +``` + +## Example + +A Voice Application is a server that controls a call's flow. A Voice Application can use any combination of the following verbs: + +- `Answer` - Accepts an incoming call +- `Dial` - Passes the call to an Agent or a Number at the PSTN +- `Hangup` - Closes the call +- `Play` - Takes a URL or file and streams the sound back to the calling party +- `Say` - Takes a text, synthesizes the text into audio, and streams back the result +- `Gather` - Waits for DTMF or speech events and returns back the result +- `SGather` - Returns a stream for future DTMF and speech results +- `Stream` - Starts a stream to read and write audio into the call +- `Record` - It records the voice of the calling party and saves the audio on the Storage sub-system +- `Mute` - It tells the channel to stop sending media, effectively muting the channel +- `Unmute` - It tells the channel to allow media flow + +Voice Application Example: + +```typescript +const VoiceServer = require("@fonoster/voice").default; +const { + GatherSource, + VoiceRequest, + VoiceResponse +} = require("@fonoster/voice"); + +new VoiceServer().listen(async (req: VoiceRequest, voice: VoiceResponse) => { + const { ingressNumber, sessionRef, appRef } = req; + + await voice.answer(); + + await voice.say("Hi there! What's your name?"); + + const { speech: name } = await res.gather({ + source: GatherSource.SPEECH + }); + + await voice.say("Nice to meet you " + name + "!"); + + await voice.say("Please enter your 4 digit pin."); + + const { digits } = await voice.gather({ + maxDigits: 4, + finishOnKey: "#" + }); + + await voice.say("Your pin is " + digits); + + await voice.hangup(); +}); + +// Your app will live at tcp://127.0.0.1:50061 +// and you can easily publish it to the Internet with: +// ngrok tcp 50061 +``` + + + +## VoiceResponse ⇐ Verb +Use the VoiceResponse object, to construct advance Interactive +Voice Response (IVR) applications. + +**Kind**: global class +**Extends**: Verb +**See**: module:core:APIClient + +* [VoiceResponse](#VoiceResponse) ⇐ Verb + * [new VoiceResponse(request, voice)](#new_VoiceResponse_new) + * [.answer()](#VoiceResponse+answer) + * [.hangup()](#VoiceResponse+hangup) + * [.play(url, options)](#VoiceResponse+play) + * [.playDtmf(digits)](#VoiceResponse+playDtmf) + * [.playbackControl(playbackRef, action)](#VoiceResponse+playbackControl) + * [.gather(options)](#VoiceResponse+gather) + * [.say(text, options)](#VoiceResponse+say) + * [.record(options)](#VoiceResponse+record) ⇒ RecordResponse + * [.dial(destination, options)](#VoiceResponse+dial) ⇒ Promise.<DialStatusStream> + * [.stream(options)](#VoiceResponse+stream) ⇒ Promise.<Stream> + * [.sgather(options)](#VoiceResponse+sgather) ⇒ Promise.<StreamGatherStream> + * [.mute(options)](#VoiceResponse+mute) + * [.unmute(options)](#VoiceResponse+unmute) + * [.on(event, listener)](#VoiceResponse+on) + + + +### new VoiceResponse(request, voice) +Constructs a new VoiceResponse object. + + +| Param | Type | Description | +| --- | --- | --- | +| request | VoiceRequest | Options to indicate the objects endpoint | +| voice | VoiceSessionStream | The voice session stream | + +**Example** +```js +import { VoiceServer } from "@fonoster/voice"; + +async function handler (request, response) { + await response.answer(); + await response.play("https://soundsserver:9000/sounds/hello-world.wav"); +} + +new VoiceServer().listen(handler, { port: 3000 }) +``` + + +### voiceResponse.answer() +Answer the call. Before running any other verb you +must run the answer command. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) +**Example** +```js +async function handler (request, response) { + await response.answer(); +} +``` + + +### voiceResponse.hangup() +Hangup the call. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) +**Example** +```js +async function handler (request, response) { + await response.hangup(); +} +``` + + +### voiceResponse.play(url, options) +Play an audio in the call. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) +**See**: Playback + +| Param | Type | Description | +| --- | --- | --- | +| url | string | The URL of the media to play | +| options | PlayOptions | Options to control the playback | +| options.playbackRef | string | Playback identifier to use in Playback operations | + +**Example** +```js +async function handler (request, response) { + await response.answer(); + await response.play("https://soundsserver:9000/sounds/hello-world.wav"); +} +``` + + +### voiceResponse.playDtmf(digits) +Play a series of DTMF digits in a call. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) + +| Param | Type | Description | +| --- | --- | --- | +| digits | string | The DTMF digits to play (0-9, #, or *) | + +**Example** +```js +async function handler (request, response) { + await response.answer(); + await response.playDtmf("1234"); +} +``` + + +### voiceResponse.playbackControl(playbackRef, action) +Control the playback of the currently playing media. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) +**See**: play + +| Param | Type | Description | +| --- | --- | --- | +| playbackRef | string | The playback identifier | +| action | PlaybackControlAction | The action to perform (STOP, RESTART, PAUSE, UNPAUSE, FORWARD) | + +**Example** +```js +async function handler (request, response) { + await response.answer(); + await response.play("https://s3.fonoster.io/uuid/hello-world.wav", { playbackRef: "playback-01" }); + + // Pause the media + await response.playbackControl("playback-01", PlaybackControlAction.PAUSE); +} +``` + + +### voiceResponse.gather(options) +Waits for data entry from the user's keypad or from a speech provider. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) +**Note**: When including `SPEECH` the default timeout is 10000 (10s). + +| Param | Type | Description | +| --- | --- | --- | +| options | GatherOptions | Options to select the maximum number of digits, final character, and timeout | +| options.maxDigits | number | Maximum number of digits to collect. Defaults to 1 | +| options.timeout | number | Milliseconds to wait before timeout. Defaults to 4000. Use zero for no timeout. | +| options.finishOnKey | string | Optional last character to wait for. Defaults to '#'. It will not be included in the returned digits | +| options.source | GatherSource | Where to listen as input source. This option accepts `DTMF` and `SPEECH`. A speech provider must be configure when including the `SPEECH` source. You might include both with `SPEECH_AND_DTMF`. Defaults to `SPEECH_AND_DTMF` | + +**Example** +```js +async function handler (request, response) { + await response.answer(); + const speech = await response.gather({ source: GatherSource.SPEECH, numDigits: 3 }); + console.log("speech: " + speech); + await response.hangup(); +} +``` + + +### voiceResponse.say(text, options) +Send a text for a TTS engine to convert to speech. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) +**See**: Say + +| Param | Type | Description | +| --- | --- | --- | +| text | string | The text to convert to speech | +| options | SayOptions | Options to control the TTS engine | +| options.playbackRef | string | Playback identifier to use in Playback operations | +| options.ttsOptions | TTSOptions | Options to control the TTS engine (specific to the TTS engine) | + +**Example** +```js +async function handler (request, response) { + await response.answer(); + const playbackRef = await response.say("Hello World"); + + // Like the play verb, you can control the playback + await response.playbackControl(playbackRef, PlaybackControlAction.STOP); +} +``` + + +### voiceResponse.record(options) ⇒ RecordResponse +Record the audio of the call. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) +**Returns**: RecordResponse - The record response + +| Param | Type | Description | +| --- | --- | --- | +| options | RecordOptions | Options to control the record operation | +| options.maxDuration | number | The maximum duration of the recording in seconds. Default is 60 | +| options.maxSilence | number | The maximum duration of silence in seconds. Default is 5 | +| options.beep | boolean | Play a beep before recording. Default is true | +| options.finishOnKey | string | Stop recording when a DTMF digit is received. Default is '#' | + +**Example** +```js +async function handler (request, response) { + await response.answer(); + const record = await response.record(); + console.log("Recording: %s", record.name); +} +``` + + +### voiceResponse.dial(destination, options) ⇒ Promise.<DialStatusStream> +Dials a destination and returns a stream of status. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) +**Returns**: Promise.<DialStatusStream> - The dial status stream + +| Param | Type | Description | +| --- | --- | --- | +| destination | string | The destination to dial | +| options | DialOptions | Options to control the dial operation | +| options.timeout | number | The timeout in seconds. Default is 60 | +| options.recordDirection | RecordDirection | The direction to record the call (IN, OUT, BOTH). Default is BOTH | + + + +### voiceResponse.stream(options) ⇒ Promise.<Stream> +Starts a bidirectional audio stream between the call and the application. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) +**Returns**: Promise.<Stream> - The stream object + +| Param | Type | Description | +| --- | --- | --- | +| options | StreamOptions | Options to control the stream operation | +| options.direction | StreamDirection | The direction to stream the audio (IN, OUT, BOTH). Default is BOTH | +| options.format | StreamAudioFormat | The audio format to stream (WAV). Default is WAV | + +**Example** +```js +async function handler (request, response) { + await response.answer(); + + const stream = await response.stream({ + direction: StreamDirection.BOTH + }); + + stream.onPayload((payload) => { + // Use the payload + }); + + // Or write to the stream + // stream.write({ type: StreamMessageType.AUDIO_OUT, payload: "\x00\x01\x02" }); +} +``` + + +### voiceResponse.sgather(options) ⇒ Promise.<StreamGatherStream> +Starts a server-side stream gather operation which sends transcription data to the voice server. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) +**Returns**: Promise.<StreamGatherStream> - The stream gather object +**See**: Gather + +| Param | Type | Description | +| --- | --- | --- | +| options | StreamGatherOptions | Options to control the stream gather operation | +| options.source | StreamGatherSource | The source to gather data from (DTMF, SPEECH, SPEECH_AND_DTMF). Default is SPEECH | + +**Example** +```js +async function handler (request, response) { + await response.answer(); + const sGather = await response.streamGather({ source: StreamGatherSource.SPEECH }); + sGather.onPayload((payload) => { + console.log("Payload: %s", payload); + }); +} +``` + + +### voiceResponse.mute(options) +Mutes a call. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) +**See**: unmute + +| Param | Type | Description | +| --- | --- | --- | +| options | MuteOptions | Options to control the mute operation | +| options.direction | MuteDirection | The direction to mute the channel (IN, OUT, BOTH). Default is BOTH | + +**Example** +```js +async function handler (request, response) { + await response.answer(); + await response.mute(); // Will mute both directions +} +``` + + +### voiceResponse.unmute(options) +Unmute a call. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) +**See**: mute + +| Param | Type | Description | +| --- | --- | --- | +| options | MuteOptions | Options to control the unmute operation | +| options.direction | MuteDirection | The direction to unmute the call (IN, OUT, BOTH). Default is BOTH | + +**Example** +```js +async function handler (request, response) { + await response.answer(); + await response.unmute(); // Will unmute both directions +} +``` + + +### voiceResponse.on(event, listener) +Register a listener for the given event. + +**Kind**: instance method of [VoiceResponse](#VoiceResponse) + +| Param | Type | Description | +| --- | --- | --- | +| event | StreamEvent | The event to listen for | +| listener | function | The callback function | + +**Example** +```js +async function handler (request, response) { + ... + + response.on(StreamEvent.END, () => { + console.log("Call ended"); + }); +} +``` + diff --git a/mods/voice/package-lock.json b/mods/voice/package-lock.json deleted file mode 100644 index fd8ce5565..000000000 --- a/mods/voice/package-lock.json +++ /dev/null @@ -1,2050 +0,0 @@ -{ - "name": "@fonoster/voice", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/voice", - "version": "0.3.22", - "license": "MIT", - "dependencies": { - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "bson-objectid": "^2.0.2", - "deepmerge": "^4.2.2", - "express": "^4.17.1", - "express-ws": "^4.0.0", - "pubsub-js": "^1.9.3", - "sync": "^0.2.5" - }, - "devDependencies": { - "@types/express": "^4.17.13", - "@types/pubsub-js": "^1.8.2" - } - }, - "../certs": { - "name": "@fonoster/certs", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "../common": { - "name": "@fonoster/common", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "@fonoster/certs": "^0.2.29", - "@fonoster/logger": "^0.2.29", - "@grpc/grpc-js": "^1.3.7", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "../logger": { - "name": "@fonoster/logger", - "version": "0.2.29", - "extraneous": true, - "license": "MIT", - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.3.3" - }, - "devDependencies": { - "rimraf": "^3.0.2" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/api-metrics": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.27.0.tgz", - "integrity": "sha512-tB79288bwjkdhPNpw4UdOEy3bacVwtol6Que7cAu8KEJ9ULjRfSiwpYEwJY/oER3xZ7zNFz0uiJ7N1jSiotpVA==", - "deprecated": "Please use @opentelemetry/api >= 1.3.0", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.27.0.tgz", - "integrity": "sha512-dUwY/VoDptdK8AYigwS3IKblG+unV5xIdV4VQKy+nX5aT3f7vd5PMYs4arCQSYLbLRe0s7GxK6S9dtjai/TsHQ==", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.27.1.tgz", - "integrity": "sha512-EbpmTyem70Rg56+A0w8ndSmeyVYj7gFV9yk2IGgVVc9n/hs2mTgsBI2evaUtWbpB51pb1u/h+DhICKxgg/8Hew==", - "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/express": "4.17.13" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.2" - } - }, - "node_modules/@opentelemetry/instrumentation-express/node_modules/@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/instrumentation-express/node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.27.0.tgz", - "integrity": "sha512-Q1dxUt+5d70rbY6jJAC8nwpIQJontmJW94eIS5CsGngvCRYw6tgjLZp2fpVL1o7Lj7uiLpGigeE4EN5Lr2YDFA==", - "dependencies": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/resources": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.8.0.tgz", - "integrity": "sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.27.0.tgz", - "integrity": "sha512-HpiWI4sVNsjp3FGyUlc24KvUY2Whl4PQVwcbA/gWv2kHaLQrDJrWC+3rjUR+87Mrd0nsiqJ85xhGFU6IK8h7gg==", - "deprecated": "Please use @opentelemetry/sdk-metrics", - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/core": "1.0.1", - "@opentelemetry/resources": "1.0.1", - "lodash.merge": "^4.6.2" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/resources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.1.tgz", - "integrity": "sha512-p8DevOaAEepPucUtImR4cZKHOE2L1jgQAtkdZporV+XnxPA/HqCHPEESyUVuo4f5M0NUlL6k5Pba75KwNJlTRg==", - "dependencies": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz", - "integrity": "sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA==", - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-node": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.8.0.tgz", - "integrity": "sha512-6FqhJEgW9Nke5SO4Ul9+5EWOfms/JeLg5LRqILMPMK4UMBWcOtk7jldvGGyfVpraJ16/WPo/R5NSnMwlupN5zQ==", - "dependencies": { - "@opentelemetry/context-async-hooks": "1.8.0", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/propagator-b3": "1.8.0", - "@opentelemetry/propagator-jaeger": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", - "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==", - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/propagator-b3": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.8.0.tgz", - "integrity": "sha512-ffP6AVHyISqK1kiUY1MoVKt43Wp3FJXI8NOePqxBrAU7bRDJ13276VbSl4ugCZbZLTPrPhhSmvQh1WqlfUgcAg==", - "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/propagator-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.8.0.tgz", - "integrity": "sha512-v6GA38k2cqeGAh3368prLW5MsuG2/KxpfWI/PxTPjCa9tThDPq0cvhKpk7cEma3y+F6rieMhwmzZhKQL5QVBzQ==", - "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz", - "integrity": "sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew==", - "engines": { - "node": ">=14" - } - }, - "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.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "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": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" - }, - "node_modules/@types/pubsub-js": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@types/pubsub-js/-/pubsub-js-1.8.3.tgz", - "integrity": "sha512-6BqY04dh2UV1dNV690tyJVJYQ0U6qBH4tU+FCwY1Mhl8jOPOP9qiIvgLnB59cVik/E6/R002oXZpGiDm+2C8eA==", - "dev": true - }, - "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/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "node_modules/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", - "dependencies": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/bson-objectid": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.4.tgz", - "integrity": "sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==" - }, - "node_modules/bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express-ws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/express-ws/-/express-ws-4.0.0.tgz", - "integrity": "sha512-KEyUw8AwRET2iFjFsI1EJQrJ/fHeGiJtgpYgEWG3yDv4l/To/m3a2GaYfeGyB3lsWdvbesjF5XCMx+SVBgAAYw==", - "dependencies": { - "ws": "^5.2.0" - }, - "engines": { - "node": ">=4.5.0" - }, - "peerDependencies": { - "express": "^4.0.0 || ^5.0.0-alpha.1" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/fibers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.1.tgz", - "integrity": "sha512-VMC7Frt87Oo0AOJ6EcPFbi+tZmkQ4tD85aatwyWL6I9cYMJmm2e+pXUJsfGZ36U7MffXtjou2XIiWJMtHriErw==", - "hasInstallScript": true, - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "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/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/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.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/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "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/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, - "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/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pubsub-js": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/pubsub-js/-/pubsub-js-1.9.4.tgz", - "integrity": "sha512-hJYpaDvPH4w8ZX/0Fdf9ma1AwRgU353GfbaVfPjfJQf1KxZ2iHaHl3fAUw1qlJIR5dr4F3RzjGaWohYUEyoh7A==" - }, - "node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", - "dependencies": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/require-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "dependencies": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/send/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/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sync": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/sync/-/sync-0.2.5.tgz", - "integrity": "sha1-ORC7m2ar7lZULi5w8M5UkDElLfY=", - "dependencies": { - "fibers": ">=0.6" - }, - "engines": { - "node": ">=0.5.2" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - }, - "dependencies": { - "@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==" - }, - "@opentelemetry/api-metrics": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.27.0.tgz", - "integrity": "sha512-tB79288bwjkdhPNpw4UdOEy3bacVwtol6Que7cAu8KEJ9ULjRfSiwpYEwJY/oER3xZ7zNFz0uiJ7N1jSiotpVA==" - }, - "@opentelemetry/instrumentation": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.27.0.tgz", - "integrity": "sha512-dUwY/VoDptdK8AYigwS3IKblG+unV5xIdV4VQKy+nX5aT3f7vd5PMYs4arCQSYLbLRe0s7GxK6S9dtjai/TsHQ==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - } - }, - "@opentelemetry/instrumentation-express": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.27.1.tgz", - "integrity": "sha512-EbpmTyem70Rg56+A0w8ndSmeyVYj7gFV9yk2IGgVVc9n/hs2mTgsBI2evaUtWbpB51pb1u/h+DhICKxgg/8Hew==", - "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/express": "4.17.13" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "requires": { - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - } - } - }, - "@opentelemetry/instrumentation-http": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.27.0.tgz", - "integrity": "sha512-Q1dxUt+5d70rbY6jJAC8nwpIQJontmJW94eIS5CsGngvCRYw6tgjLZp2fpVL1o7Lj7uiLpGigeE4EN5Lr2YDFA==", - "requires": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1", - "semver": "^7.3.5" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "requires": { - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/resources": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.8.0.tgz", - "integrity": "sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "requires": { - "@opentelemetry/semantic-conventions": "1.8.0" - } - } - } - }, - "@opentelemetry/sdk-metrics-base": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.27.0.tgz", - "integrity": "sha512-HpiWI4sVNsjp3FGyUlc24KvUY2Whl4PQVwcbA/gWv2kHaLQrDJrWC+3rjUR+87Mrd0nsiqJ85xhGFU6IK8h7gg==", - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/core": "1.0.1", - "@opentelemetry/resources": "1.0.1", - "lodash.merge": "^4.6.2" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "requires": { - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/resources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.1.tgz", - "integrity": "sha512-p8DevOaAEepPucUtImR4cZKHOE2L1jgQAtkdZporV+XnxPA/HqCHPEESyUVuo4f5M0NUlL6k5Pba75KwNJlTRg==", - "requires": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==" - } - } - }, - "@opentelemetry/sdk-trace-base": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz", - "integrity": "sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "requires": { - "@opentelemetry/semantic-conventions": "1.8.0" - } - } - } - }, - "@opentelemetry/sdk-trace-node": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.8.0.tgz", - "integrity": "sha512-6FqhJEgW9Nke5SO4Ul9+5EWOfms/JeLg5LRqILMPMK4UMBWcOtk7jldvGGyfVpraJ16/WPo/R5NSnMwlupN5zQ==", - "requires": { - "@opentelemetry/context-async-hooks": "1.8.0", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/propagator-b3": "1.8.0", - "@opentelemetry/propagator-jaeger": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "semver": "^7.3.5" - }, - "dependencies": { - "@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", - "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==", - "requires": {} - }, - "@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "requires": { - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/propagator-b3": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.8.0.tgz", - "integrity": "sha512-ffP6AVHyISqK1kiUY1MoVKt43Wp3FJXI8NOePqxBrAU7bRDJ13276VbSl4ugCZbZLTPrPhhSmvQh1WqlfUgcAg==", - "requires": { - "@opentelemetry/core": "1.8.0" - } - }, - "@opentelemetry/propagator-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.8.0.tgz", - "integrity": "sha512-v6GA38k2cqeGAh3368prLW5MsuG2/KxpfWI/PxTPjCa9tThDPq0cvhKpk7cEma3y+F6rieMhwmzZhKQL5QVBzQ==", - "requires": { - "@opentelemetry/core": "1.8.0" - } - } - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz", - "integrity": "sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew==" - }, - "@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.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@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": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" - }, - "@types/pubsub-js": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@types/pubsub-js/-/pubsub-js-1.8.3.tgz", - "integrity": "sha512-6BqY04dh2UV1dNV690tyJVJYQ0U6qBH4tU+FCwY1Mhl8jOPOP9qiIvgLnB59cVik/E6/R002oXZpGiDm+2C8eA==", - "dev": true - }, - "@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": "*" - } - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", - "requires": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "bson-objectid": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.4.tgz", - "integrity": "sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==" - }, - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "express-ws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/express-ws/-/express-ws-4.0.0.tgz", - "integrity": "sha512-KEyUw8AwRET2iFjFsI1EJQrJ/fHeGiJtgpYgEWG3yDv4l/To/m3a2GaYfeGyB3lsWdvbesjF5XCMx+SVBgAAYw==", - "requires": { - "ws": "^5.2.0" - } - }, - "fibers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.1.tgz", - "integrity": "sha512-VMC7Frt87Oo0AOJ6EcPFbi+tZmkQ4tD85aatwyWL6I9cYMJmm2e+pXUJsfGZ36U7MffXtjou2XIiWJMtHriErw==", - "requires": { - "detect-libc": "^1.0.3" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "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" - } - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "requires": { - "has": "^1.0.3" - } - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "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" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "pubsub-js": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/pubsub-js/-/pubsub-js-1.9.4.tgz", - "integrity": "sha512-hJYpaDvPH4w8ZX/0Fdf9ma1AwRgU353GfbaVfPjfJQf1KxZ2iHaHl3fAUw1qlJIR5dr4F3RzjGaWohYUEyoh7A==" - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", - "requires": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "require-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "requires": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - } - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "sync": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/sync/-/sync-0.2.5.tgz", - "integrity": "sha1-ORC7m2ar7lZULi5w8M5UkDElLfY=", - "requires": { - "fibers": ">=0.6" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "ws": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz", - "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } -} diff --git a/mods/voice/package.json b/mods/voice/package.json index cde43fefc..a3186fa11 100644 --- a/mods/voice/package.json +++ b/mods/voice/package.json @@ -1,20 +1,36 @@ { "name": "@fonoster/voice", - "version": "0.3.22", - "description": "Voice verbs", + "version": "0.9.0", + "description": "Voice Server for Fonoster", "author": "Pedro Sanders ", "homepage": "https://github.com/fonoster/fonoster#readme", "license": "MIT", "main": "dist/index", "types": "dist/index", - "scripts": { - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json" - }, "directories": { "src": "src", "test": "test" }, + "scripts": { + "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", + "build": "tsc -b tsconfig.json", + "clean": "rimraf ./dist node_modules tsconfig.tsbuildinfo", + "generate:readme": "node ../../.scripts/gen-readme.js" + }, + "bin": { + "fonoster": "./dist/index.js" + }, + "dependencies": { + "@fonoster/common": "^0.9.0", + "@fonoster/identity": "^0.9.0", + "@fonoster/logger": "^0.9.0", + "@grpc/grpc-js": "~1.10.6", + "deepmerge": "^4.3.1", + "grpc-health-check": "^2.0.2", + "pb-util": "^1.0.3", + "zod": "^3.23.8", + "zod-validation-error": "^3.3.0" + }, "files": [ "dist" ], @@ -28,28 +44,5 @@ "bugs": { "url": "https://github.com/fonoster/fonoster/issues" }, - "dependencies": { - "@fonoster/common": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "bson-objectid": "^2.0.2", - "deepmerge": "^4.2.2", - "express": "^4.17.1", - "express-ws": "^4.0.0", - "pubsub-js": "^1.9.3", - "sync": "^0.2.5" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135", - "devDependencies": { - "@types/express": "^4.17.13", - "@types/pubsub-js": "^1.8.2" - } + "gitHead": "d4aa82f7926c0f451d2f580c59ab812c74a7f579" } diff --git a/mods/voice/src/VoiceResponse.ts b/mods/voice/src/VoiceResponse.ts new file mode 100644 index 000000000..294cafb59 --- /dev/null +++ b/mods/voice/src/VoiceResponse.ts @@ -0,0 +1,477 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + DialOptions, + GatherOptions, + GatherResponse, + GatherSource, + MuteDirection, + MuteOptions, + PlayOptions, + PlayResponse, + PlaybackControlAction, + RecordOptions, + RecordResponse, + SayOptions, + SayResponse, + StreamEvent, + StreamGatherOptions, + StreamOptions, + VerbResponse, + VoiceRequest, + VoiceSessionStreamServer +} from "@fonoster/common"; +import { struct } from "pb-util"; +import { + Answer, + Dial, + DialStatusStream, + Gather, + Hangup, + Mute, + Play, + PlayDtmf, + PlaybackControl, + Record, + Say, + StartStream, + StartStreamGather, + StopStream, + StopStreamGather, + Stream, + StreamGatherStream, + Unmute +} from "./verbs"; + +/** + * @classdesc Use the VoiceResponse object, to construct advance Interactive + * Voice Response (IVR) applications. + * + * @extends Verb + * @example + * + * import { VoiceServer } from "@fonoster/voice"; + * + * async function handler (request, response) { + * await response.answer(); + * await response.play("https://soundsserver:9000/sounds/hello-world.wav"); + * } + * + * new VoiceServer().listen(handler, { port: 3000 }) + */ +class VoiceResponse { + voice: VoiceSessionStreamServer; + request: VoiceRequest; + + /** + * Constructs a new VoiceResponse object. + * + * @param {VoiceRequest} request - Options to indicate the objects endpoint + * @param {VoiceSessionStream} voice - The voice session stream + * @see module:core:APIClient + */ + constructor(request: VoiceRequest, voice: VoiceSessionStreamServer) { + this.voice = voice; + this.request = request; + } + + /** + * Answer the call. Before running any other verb you + * must run the answer command. + * @example + * + * async function handler (request, response) { + * await response.answer(); + * } + */ + async answer(): Promise { + await new Answer(this.request, this.voice).run(); + + return { sessionRef: this.request.sessionRef }; + } + + /** + * Hangup the call. + * @example + * + * async function handler (request, response) { + * await response.hangup(); + * } + */ + async hangup(): Promise { + await new Hangup(this.request, this.voice).run(); + + return { sessionRef: this.request.sessionRef }; + } + + /** + * Play an audio in the call. + * + * @param {string} url - The URL of the media to play + * @param {PlayOptions} options - Options to control the playback + * @param {string} options.playbackRef - Playback identifier to use in Playback operations + * @see Playback + * @example + * + * async function handler (request, response) { + * await response.answer(); + * await response.play("https://soundsserver:9000/sounds/hello-world.wav"); + * } + */ + async play(url: string, options?: PlayOptions): Promise { + const response = await new Play(this.request, this.voice).run({ + ...options, + sessionRef: this.request.sessionRef, + url + }); + + return response.playResponse; + } + + /** + * Play a series of DTMF digits in a call. + * + * @param {string} digits -The DTMF digits to play (0-9, #, or *) + * @example + * + * async function handler (request, response) { + * await response.answer(); + * await response.playDtmf("1234"); + * } + */ + async playDtmf(digits: string): Promise { + await new PlayDtmf(this.request, this.voice).run({ + sessionRef: this.request.sessionRef, + digits + }); + } + + /** + * Control the playback of the currently playing media. + * + * @param {string} playbackRef - The playback identifier + * @param {PlaybackControlAction} action - The action to perform (STOP, RESTART, PAUSE, UNPAUSE, FORWARD) + * @see play + * @example + * + * async function handler (request, response) { + * await response.answer(); + * await response.play("https://s3.fonoster.io/uuid/hello-world.wav", { playbackRef: "playback-01" }); + * + * // Pause the media + * await response.playbackControl("playback-01", PlaybackControlAction.PAUSE); + * } + */ + async playbackControl( + playbackRef: string, + action: PlaybackControlAction + ): Promise { + await new PlaybackControl(this.request, this.voice).run({ + sessionRef: this.request.sessionRef, + playbackRef, + action + }); + + return { sessionRef: this.request.sessionRef }; + } + + /** + * Waits for data entry from the user's keypad or from a speech provider. + * + * @param {GatherOptions} options - Options to select the maximum number of digits, final character, and timeout + * @param {number} options.maxDigits - Maximum number of digits to collect. Defaults to 1 + * @param {number} options.timeout - Milliseconds to wait before timeout. Defaults to 4000. Use zero for no timeout. + * @param {string} options.finishOnKey - Optional last character to wait for. Defaults to '#'. It will not be included in the returned digits + * @param {GatherSource} options.source - Where to listen as input source. This option accepts `DTMF` and `SPEECH`. A speech provider must be configure + * when including the `SPEECH` source. You might include both with `SPEECH_AND_DTMF`. Defaults to `SPEECH_AND_DTMF` + * @note When including `SPEECH` the default timeout is 10000 (10s). + * @example + * + * async function handler (request, response) { + * await response.answer(); + * const speech = await response.gather({ source: GatherSource.SPEECH, numDigits: 3 }); + * console.log("speech: " + speech); + * await response.hangup(); + * } + */ + async gather( + options: GatherOptions = { source: GatherSource.SPEECH_AND_DTMF } + ): Promise { + const response = await new Gather(this.request, this.voice).run({ + sessionRef: this.request.sessionRef, + ...options + }); + + return response.gatherResponse; + } + + /** + * Send a text for a TTS engine to convert to speech. + * + * @param {string} text - The text to convert to speech + * @param {SayOptions} options - Options to control the TTS engine + * @param {string} options.playbackRef - Playback identifier to use in Playback operations + * @param {TTSOptions} options.ttsOptions - Options to control the TTS engine (specific to the TTS engine) + * @see Say + * @example + * + * async function handler (request, response) { + * await response.answer(); + * const playbackRef = await response.say("Hello World"); + * + * // Like the play verb, you can control the playback + * await response.playbackControl(playbackRef, PlaybackControlAction.STOP); + * } + */ + async say(text: string, options?: SayOptions): Promise { + const response = await new Say(this.request, this.voice).run({ + playbackRef: options?.playbackRef, + options: options ? struct.encode(options) : undefined, + sessionRef: this.request.sessionRef, + text + }); + + return { playbackRef: response.sayResponse.playbackRef }; + } + + /** + * Record the audio of the call. + * + * @param {RecordOptions} options - Options to control the record operation + * @param {number} options.maxDuration - The maximum duration of the recording in seconds. Default is 60 + * @param {number} options.maxSilence - The maximum duration of silence in seconds. Default is 5 + * @param {boolean} options.beep - Play a beep before recording. Default is true + * @param {string} options.finishOnKey - Stop recording when a DTMF digit is received. Default is '#' + * @return {RecordResponse} The record response + * @example + * + * async function handler (request, response) { + * await response.answer(); + * const record = await response.record(); + * console.log("Recording: %s", record.name); + * } + */ + async record(options?: RecordOptions): Promise { + const response = await new Record(this.request, this.voice).run({ + sessionRef: this.request.sessionRef, + ...options + }); + + return response.recordResponse; + } + + /** + * Dials a destination and returns a stream of status. + * + * @param {string} destination - The destination to dial + * @param {DialOptions} options - Options to control the dial operation + * @param {number} options.timeout - The timeout in seconds. Default is 60 + * @param {RecordDirection} options.recordDirection - The direction to record the call (IN, OUT, BOTH). Default is BOTH + * @return {Promise} The dial status stream + */ + async dial( + destination: string, + options?: DialOptions + ): Promise { + const stream = new DialStatusStream(); + + await new Dial(this.request, this.voice).run({ + sessionRef: this.request.sessionRef, + destination, + ...options + }); + + this.voice.on(StreamEvent.DATA, (result) => { + if (result.dialResponse) { + stream.emit(result.dialResponse.status); + } + }); + + return stream; + } + + /** + * Starts a bidirectional audio stream between the call and the application. + * + * @param {StreamOptions} options - Options to control the stream operation + * @param {StreamDirection} options.direction - The direction to stream the audio (IN, OUT, BOTH). Default is BOTH + * @param {StreamAudioFormat} options.format - The audio format to stream (WAV). Default is WAV + * @return {Promise} The stream object + * @example + * + * async function handler (request, response) { + * await response.answer(); + * + * const stream = await response.stream({ + * direction: StreamDirection.BOTH + * }); + * + * stream.onPayload((payload) => { + * // Use the payload + * }); + * + * // Or write to the stream + * // stream.write({ type: StreamMessageType.AUDIO_OUT, payload: "\x00\x01\x02" }); + * } + */ + async stream(options?: StreamOptions): Promise { + const stream = new Stream(); + + const startStream = new StartStream(this.request, this.voice); + const stopStream = new StopStream(this.request, this.voice); + + const { startStreamResponse } = await startStream.run({ + sessionRef: this.request.sessionRef, + ...options + }); + + this.voice.on(StreamEvent.DATA, (result) => { + if (result.streamPayload) { + stream.emit("payloadOut", result.streamPayload); + } + }); + + stream.onPayloadIn((payload) => { + this.voice.write({ + streamPayload: payload + }); + }); + + stream.cleanup(() => { + stopStream.run({ + sessionRef: this.request.sessionRef, + streamRef: startStreamResponse?.streamRef + }); + }); + + return stream; + } + + /** + * Starts a server-side stream gather operation which sends transcription data to the voice server. + * + * @param {StreamGatherOptions} options - Options to control the stream gather operation + * @param {StreamGatherSource} options.source - The source to gather data from (DTMF, SPEECH, SPEECH_AND_DTMF). Default is SPEECH + * @return {Promise} The stream gather object + * @see Gather + * @example + * + * async function handler (request, response) { + * await response.answer(); + * const sGather = await response.streamGather({ source: StreamGatherSource.SPEECH }); + * sGather.onPayload((payload) => { + * console.log("Payload: %s", payload); + * }); + * } + */ + async sgather(options: StreamGatherOptions): Promise { + const stream = new StreamGatherStream(); + + const startStreamGather = new StartStreamGather(this.request, this.voice); + const stopStreamGather = new StopStreamGather(this.request, this.voice); + + await startStreamGather.run({ + sessionRef: this.request.sessionRef, + ...options + }); + + this.voice.on(StreamEvent.DATA, (result) => { + if (result.streamGatherPayload) { + stream.emit("data", result.streamGatherPayload); + } + }); + + stream.cleanup(() => { + stopStreamGather.run({ + sessionRef: this.request.sessionRef + }); + }); + + return stream; + } + + /** + * Mutes a call. + * + * @param {MuteOptions} options - Options to control the mute operation + * @param {MuteDirection} options.direction - The direction to mute the channel (IN, OUT, BOTH). Default is BOTH + * @see unmute + * @example + * + * async function handler (request, response) { + * await response.answer(); + * await response.mute(); // Will mute both directions + * } + */ + async mute( + options: MuteOptions = { direction: MuteDirection.BOTH } + ): Promise { + const { direction } = options; + + await new Mute(this.request, this.voice).run({ + sessionRef: this.request.sessionRef, + direction + }); + } + + /** + * Unmute a call. + * + * @param {MuteOptions} options - Options to control the unmute operation + * @param {MuteDirection} options.direction - The direction to unmute the call (IN, OUT, BOTH). Default is BOTH + * @see mute + * @example + * + * async function handler (request, response) { + * await response.answer(); + * await response.unmute(); // Will unmute both directions + * } + */ + async unmute( + options: MuteOptions = { direction: MuteDirection.BOTH } + ): Promise { + const { direction } = options; + + await new Unmute(this.request, this.voice).run({ + sessionRef: this.request.sessionRef, + direction + }); + } + + /** + * Register a listener for the given event. + * + * @param {StreamEvent} event - The event to listen for + * @param {Function} listener - The callback function + * @example + * + * async function handler (request, response) { + * ... + * + * response.on(StreamEvent.END, () => { + * console.log("Call ended"); + * }); + * } + */ + on(event: StreamEvent, listener: (...args: unknown[]) => void): void { + this.voice.on(event, listener); + } +} + +export { VoiceResponse }; diff --git a/mods/voice/src/VoiceServer.ts b/mods/voice/src/VoiceServer.ts new file mode 100644 index 000000000..e81030bad --- /dev/null +++ b/mods/voice/src/VoiceServer.ts @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + GRPC_SERVING_STATUS, + getServerCredentials, + statusMap, + getPublicKey, + createAuthInterceptor +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import * as grpc from "@grpc/grpc-js"; +import merge from "deepmerge"; +import { HealthImplementation } from "grpc-health-check"; +import { createSession } from "./createSession"; +import { defaultServerConfig } from "./defaultServerConfig"; +import { serviceDefinition } from "./serviceDefinition"; +import { ServerConfig, VoiceHandler } from "./types"; + +const logger = getLogger({ service: "voice", filePath: __filename }); + +export default class VoiceServer { + config: ServerConfig; + constructor(config: ServerConfig = defaultServerConfig) { + this.config = merge(defaultServerConfig, config); + } + + async listen(handler: VoiceHandler) { + try { + const healthImpl = new HealthImplementation(statusMap); + const credentials = await getServerCredentials({}); + + let server: grpc.Server; + + if (this.config.skipIdentity) { + server = new grpc.Server(); + } else { + // Get the public key from the identity service + const response = await getPublicKey(this.config.identityAddress); + + const authorization = createAuthInterceptor(response.publicKey, [ + "/grpc.health.v1.Health/Check" + ]); + + server = new grpc.Server({ + interceptors: [authorization] + }); + } + + server.addService(serviceDefinition, { + createSession: createSession(handler) + }); + + // Add the health check service to the server + healthImpl.addToServer(server); + + const bindAddr = `${this.config.bind}:${this.config.port}`; + + server.bindAsync(bindAddr, credentials, async () => { + healthImpl.setStatus("", GRPC_SERVING_STATUS); + logger.info( + `started voice server @ ${this.config.bind}, port=${this.config.port}` + ); + }); + } catch (err) { + if (err.code === grpc.status.UNAVAILABLE) { + logger.error("failed to connect to identity service"); + } else { + logger.error("failed to start voice server", err); + } + process.exit(1); + } + } +} diff --git a/mods/voice/src/answer/answer.ts b/mods/voice/src/answer/answer.ts deleted file mode 100644 index 1e8b2b1a2..000000000 --- a/mods/voice/src/answer/answer.ts +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import PubSub from "pubsub-js"; -import logger from "@fonoster/logger"; -import { objectToQString } from "../utils"; -import { Verb } from "../verb"; - -export default class AnswerVerb extends Verb { - async run(): Promise { - logger.verbose( - `@fonoster/voice sending answer request [sessionId = ${this.request.sessionId}]` - ); - - return new Promise(async (resolve, reject) => { - let token: string; - try { - token = PubSub.subscribe( - `SessionOpen.${this.request.sessionId}`, - (type, data) => { - resolve(); - PubSub.unsubscribe(token); - } - ); - - await super.post( - "events/user/Answer", - objectToQString({ - // WARNING: Harcoded value - application: "mediacontroller" - }), - { - variables: { - sessionId: this.request.sessionId - } - } - ); - } catch (e) { - reject(e); - PubSub.unsubscribe(token); - } - }); - } -} diff --git a/mods/voice/src/asserts.ts b/mods/voice/src/asserts.ts deleted file mode 100644 index 2d7aab6c9..000000000 --- a/mods/voice/src/asserts.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export const assertsValueIsPositive = (name: string, value: any) => { - if (value !== undefined && value <= 0 && !isNaN(value)) { - throw new Error(`the option '${name}' must be a number greater than zero`); - } -}; - -export const assertsValuesIsZeroOrGreater = (name: string, value: any) => { - if (value !== undefined && value < 0 && !isNaN(value)) { - throw new Error( - `the option '${name}' must be a number equal or greater than zero` - ); - } -}; - -export const assertsFinishOnKeyIsChar = (key: string) => { - const isKey = (key: string) => - ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "*", "#"].indexOf(key) != - -1; - - if (key && key.length > 1 && !isKey(key)) { - throw new Error( - "the option 'finishOnKey' must be a single char [0-9], *, or #" - ); - } -}; - -export const assertPluginExist = (self, pluginName) => { - if (!self.plugins[pluginName]) { - throw Error("No available plugin for tts"); - } -}; diff --git a/mods/voice/src/createSession.ts b/mods/voice/src/createSession.ts new file mode 100644 index 000000000..b9abb9afa --- /dev/null +++ b/mods/voice/src/createSession.ts @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { StreamEvent, VoiceSessionStreamServer } from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { VoiceHandler } from "./types"; +import { VoiceResponse } from "./VoiceResponse"; + +const logger = getLogger({ service: "voice", filePath: __filename }); + +function createSession(handler: VoiceHandler) { + return (voice: VoiceSessionStreamServer): Promise => + new Promise((resolve) => { + let sessionRef: string; + voice.once(StreamEvent.DATA, async (params) => { + const { request } = params; + + if (request) { + sessionRef = request.sessionRef; + const response = new VoiceResponse(request, voice); + await handler(request, response); + resolve(); + } + }); + + voice.once(StreamEvent.END, () => { + logger.verbose("session ended", { sessionRef }); + voice.end(); + resolve(); + }); + }); +} + +export { createSession }; diff --git a/mods/voice/src/defaultServerConfig.ts b/mods/voice/src/defaultServerConfig.ts new file mode 100644 index 000000000..aae8e2c8d --- /dev/null +++ b/mods/voice/src/defaultServerConfig.ts @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ServerConfig } from "./types"; + +const defaultServerConfig: ServerConfig = { + port: 50061, + bind: "0.0.0.0", + identityAddress: "api.fonoster.com", + skipIdentity: false +}; + +export { defaultServerConfig }; diff --git a/mods/voice/src/demo.ts b/mods/voice/src/demo.ts new file mode 100644 index 000000000..762dc7bda --- /dev/null +++ b/mods/voice/src/demo.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { getLogger } from "@fonoster/logger"; +import VoiceServer, { GatherSource, VoiceRequest, VoiceResponse } from "."; + +const logger = getLogger({ service: "voice", filePath: __filename }); + +const skipIdentity = process.env.NODE_ENV === "dev"; + +// Only skip identity for local development +new VoiceServer({ skipIdentity }).listen( + async (req: VoiceRequest, res: VoiceResponse) => { + logger.verbose("voice request", { ...req }); + + await res.answer(); + + await res.say("Hi there! What's your name?"); + + const { speech: name } = await res.gather({ + source: GatherSource.SPEECH + }); + + await res.say("Nice to meet you " + name + "!"); + + await res.say("Please enter your 4 digit pin."); + + const { digits } = await res.gather({ + maxDigits: 4, + finishOnKey: "#" + }); + + await res.say("Your pin is " + digits); + + await res.hangup(); + } +); diff --git a/mods/voice/src/dial/dial.ts b/mods/voice/src/dial/dial.ts deleted file mode 100644 index 4eb35a80a..000000000 --- a/mods/voice/src/dial/dial.ts +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import PubSub from "pubsub-js"; -import logger from "@fonoster/logger"; -import { objectToQString } from "../utils"; -import { Verb } from "../verb"; -import { DialOptions } from "./types"; -import StatusStream from "./status_stream"; -import { Stream } from "stream"; - -export default class DialVerb extends Verb { - async run( - destination: string, - options: DialOptions = {} - ): Promise { - const streamStatus = new StatusStream(); - logger.verbose( - `@fonoster/voice dialing [sessionId = ${this.request.sessionId}, number = ${this.request.number}]` - ); - - // We should reject if DialFailed - return new Promise(async (resolve, reject) => { - let dialFailedToken: string; - let statusChangeToken: string; - try { - statusChangeToken = PubSub.subscribe( - `DialStatusChanged.${this.request.sessionId}`, - (type, d) => { - if (d.data.status === "trying") { - resolve(streamStatus); - } else { - streamStatus.emit(d.data.status, d.data); - } - } - ); - - dialFailedToken = PubSub.subscribe( - `DialFailed.${this.request.sessionId}`, - (type, data) => { - reject(data.error); - PubSub.unsubscribe(dialFailedToken); - PubSub.unsubscribe(statusChangeToken); - } - ); - - await super.post( - "events/user/Dial", - objectToQString({ - // WARNING: Harcoded value - application: "mediacontroller" - }), - { - variables: { - accessKeyId: this.request.accessKeyId, - sessionId: this.request.sessionId, - // Could be a Number or an Agent - destination, - number: this.request.number, - timeout: options.timeout || -1, - record: options.record - } - } - ); - } catch (e) { - reject(e); - PubSub.unsubscribe(dialFailedToken); - } - }); - } -} diff --git a/mods/voice/src/dial/status_stream.ts b/mods/voice/src/dial/status_stream.ts deleted file mode 100644 index 3840bdc6b..000000000 --- a/mods/voice/src/dial/status_stream.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Stream } from "stream"; - -export default class StatusStream { - stream: Stream; - constructor() { - this.stream = new Stream(); - } - - close() { - this.stream.removeAllListeners(); - } - - on(event: string, callback: Function) { - this.stream.on(event, (data) => { - callback(data); - }); - } - - emit(event: string, data: any) { - this.stream.emit(event, data); - } -} diff --git a/mods/voice/src/dial/types.ts b/mods/voice/src/dial/types.ts deleted file mode 100644 index 79f6877af..000000000 --- a/mods/voice/src/dial/types.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface DialOptions { - timeout?: number; - record?: { - direction?: "in" | "out" | "both"; - }; -} diff --git a/mods/voice/src/dtmf/asserts.ts b/mods/voice/src/dtmf/asserts.ts deleted file mode 100644 index df8e8e9c6..000000000 --- a/mods/voice/src/dtmf/asserts.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { DtmfOptions } from "./types"; - -export const assertsHasDtmf = (options: DtmfOptions) => { - if (!options || !options.dtmf) { - throw new Error("you must provide the dtmf tones"); - } -}; diff --git a/mods/voice/src/dtmf/dtmf.ts b/mods/voice/src/dtmf/dtmf.ts deleted file mode 100644 index 07dcfc9d7..000000000 --- a/mods/voice/src/dtmf/dtmf.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import logger from "@fonoster/logger"; -import PubSub from "pubsub-js"; -import { objectToQString } from "../utils"; -import { Verb } from "../verb"; -import { assertsHasDtmf } from "./asserts"; -import { DtmfOptions } from "./types"; - -export default class DtmfVerb extends Verb { - async run(opts: DtmfOptions): Promise { - logger.verbose( - `@fonoster/voice sending dtmf request [sessionId = ${ - this.request.sessionId - }, opts = ${JSON.stringify(opts)}]` - ); - - assertsHasDtmf(opts); - - return new Promise(async (resolve, reject) => { - let token; - try { - token = PubSub.subscribe( - `SendDtmfFinished.${this.request.sessionId}`, - (type, data) => { - resolve(); - PubSub.unsubscribe(token); - } - ); - - await super.post( - "events/user/SendDtmf", - objectToQString({ - // WARNING: Harcoded value - application: "mediacontroller" - }), - { - variables: { - sessionId: this.request.sessionId, - dtmf: opts.dtmf - } - } - ); - } catch (e) { - reject(e); - PubSub.unsubscribe(token); - } - }); - } -} diff --git a/mods/voice/src/dtmf/types.ts b/mods/voice/src/dtmf/types.ts deleted file mode 100644 index c5a25c793..000000000 --- a/mods/voice/src/dtmf/types.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface DtmfOptions { - dtmf: string; -} diff --git a/mods/voice/src/gather/asserts.ts b/mods/voice/src/gather/asserts.ts deleted file mode 100644 index 415cac2a4..000000000 --- a/mods/voice/src/gather/asserts.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { GatherOptions } from "./types"; - -export const assertsHasNumDigitsOrTimeout = (options: GatherOptions) => { - if (!options.numDigits && !options.timeout) { - throw new Error("you must provide either 'numDigits' or 'timeout' option"); - } -}; diff --git a/mods/voice/src/gather/gather.ts b/mods/voice/src/gather/gather.ts deleted file mode 100644 index af561b813..000000000 --- a/mods/voice/src/gather/gather.ts +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { SpeechProvider } from "@fonoster/common"; -import merge from "deepmerge"; -import { assertsFinishOnKeyIsChar, assertsValueIsPositive } from "../asserts"; -import { VoiceRequest } from "../types"; -import { Verb } from "../verb"; -import { assertsHasNumDigitsOrTimeout } from "./asserts"; -import waitForDtmf from "./source_dtmf"; -import waitForSpeech from "./source_speech"; -import { GatherOptions } from "./types"; -import logger from "@fonoster/logger"; - -const defaultOptions: GatherOptions = { - finishOnKey: "#", - source: "dtmf" -}; - -export default class GatherVerb extends Verb { - speechProvider: SpeechProvider; - constructor(request: VoiceRequest, speechProvider?: SpeechProvider) { - super(request); - this.speechProvider = speechProvider; - } - - async run(opts: GatherOptions): Promise { - const options = merge(defaultOptions, opts); - - // assertsHasNumDigitsOrTimeout(options); - // assertsValuesIsZeroOrGreater("timeout", options.timeout); - assertsValueIsPositive("numDigits", options.numDigits); - assertsFinishOnKeyIsChar(options.finishOnKey); - - options.timeout = - !options.timeout && options.source.includes("speech") - ? 10000 - : options.timeout || 4000; - - return new Promise(async (resolve, reject) => { - logger.verbose( - `@fonoster/voice started gather [source = ${options.source}]` - ); - if (options.source.includes("dtmf")) { - waitForDtmf(this.request.sessionId, options) - .then(resolve) - .catch(reject); - } - - // TODO: We should explicitly clean this resources if the - // other "source" already resolved the request. - if (options.source.includes("speech")) { - waitForSpeech( - this.request.sessionId, - options, - super.getSelf(), - this.speechProvider - ) - .then(resolve) - .catch(reject); - } - }); - } -} - -export { GatherOptions }; diff --git a/mods/voice/src/gather/source_dtmf.ts b/mods/voice/src/gather/source_dtmf.ts deleted file mode 100644 index c4a56cc96..000000000 --- a/mods/voice/src/gather/source_dtmf.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { GatherOptions } from "./types"; -import PubSub from "pubsub-js"; - -const waitForDtmf = async ( - sessionId: string, - options: GatherOptions -): Promise => - new Promise(async (resolve, reject) => { - const token = null; - try { - let timer: NodeJS.Timeout; - let digits = ""; - - if (options.timeout > 0) { - timer = setTimeout(() => { - resolve(digits); - PubSub.unsubscribe(token); - return; - }, options.timeout); - } - - const token = PubSub.subscribe( - `DtmfReceived.${sessionId}`, - (type, data) => { - const key = data.data; - - if (timer) { - clearTimeout(timer); - timer = setTimeout(() => { - resolve(digits); - PubSub.unsubscribe(token); - return; - }, options.timeout); - } - - // We don't need to include finishOnKey - if (options.finishOnKey != key) { - digits += key; - } - - if ( - digits.length >= options.numDigits || - key === options.finishOnKey - ) { - resolve(digits); - PubSub.unsubscribe(token); - return; - } - } - ); - } catch (e) { - reject(e); - PubSub.unsubscribe(token); - } - }); - -export default waitForDtmf; diff --git a/mods/voice/src/gather/source_speech.ts b/mods/voice/src/gather/source_speech.ts deleted file mode 100644 index c59a94882..000000000 --- a/mods/voice/src/gather/source_speech.ts +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Stream from "stream"; -import PubSub from "pubsub-js"; -import { GatherOptions } from "./types"; -import { startMediaTransfer, stopMediaTransfer } from "../utils"; -import { SpeechProvider } from "@fonoster/common"; -import { Verb } from "../verb"; - -const waitForSpeech = async ( - sessionId: string, - options: GatherOptions, - verb: Verb, - speechProvider: SpeechProvider -): Promise => - new Promise(async (resolve, reject) => { - let timer: NodeJS.Timeout; - let token = null; - - const speechTracker = speechProvider.createSpeechTracker(options); - const readable = new Stream.Readable({ - // The read logic is omitted since the data is pushed to the socket - // outside of the script's control. However, the read() function - // must be defined. - read() {} - }); - - token = PubSub.subscribe(`ReceivingMedia.${sessionId}`, (type, data) => { - readable.push(data); - }); - - await startMediaTransfer(verb, sessionId); - let enabledMedia = true; - - if (options.timeout > 0) { - timer = setTimeout(() => { - if (enabledMedia) stopMediaTransfer(verb, sessionId); - PubSub.unsubscribe(token); - (speechTracker as any).client.close(); - resolve(""); - enabledMedia = false; - }, options.timeout); - } - - speechTracker - .transcribe(readable) - .then((result) => resolve(result.transcript)) - .catch(reject) - .finally(() => { - if (enabledMedia) stopMediaTransfer(verb, sessionId); - if (timer) clearTimeout(timer); - PubSub.unsubscribe(token); - enabledMedia = false; - }); - }); - -export default waitForSpeech; diff --git a/mods/voice/src/gather/types.ts b/mods/voice/src/gather/types.ts deleted file mode 100644 index 65963e6a5..000000000 --- a/mods/voice/src/gather/types.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface GatherOptions { - finishOnKey?: string; - numDigits?: any; - timeout?: number; - source?: "dtmf" | "speech" | "dtmf,speech" | "speech,dtmf"; -} diff --git a/mods/voice/src/hangup/hangup.ts b/mods/voice/src/hangup/hangup.ts deleted file mode 100644 index 852afa89a..000000000 --- a/mods/voice/src/hangup/hangup.ts +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import PubSub from "pubsub-js"; -import logger from "@fonoster/logger"; -import { objectToQString } from "../utils"; -import { Verb } from "../verb"; - -export default class HangupVerb extends Verb { - async run(): Promise { - logger.verbose( - `@fonoster/voice sending hangup request [sessionId = ${this.request.sessionId}]` - ); - - return new Promise(async (resolve, reject) => { - let token: string; - try { - token = PubSub.subscribe( - `SessionClosed.${this.request.sessionId}`, - (type, data) => { - resolve(); - PubSub.unsubscribe(token); - } - ); - - await super.post( - "events/user/Hangup", - objectToQString({ - // WARNING: Harcoded value - application: "mediacontroller" - }), - { - variables: { - sessionId: this.request.sessionId - } - } - ); - } catch (e) { - reject(e); - PubSub.unsubscribe(token); - } - }); - } -} diff --git a/mods/voice/src/index.ts b/mods/voice/src/index.ts index 08ffd3796..3198a8836 100644 --- a/mods/voice/src/index.ts +++ b/mods/voice/src/index.ts @@ -1,5 +1,6 @@ +#!/usr/bin/env node /* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) * http://github.com/fonoster/fonoster * * This file is part of Fonoster @@ -16,15 +17,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { VoiceRequest } from "./types"; -import VoiceServer from "./server"; -import VoiceResponse from "./voice"; -import { SGatherStream } from "./sgather/types"; -import { PlaybackControl } from "./playback/playback"; +import { + AzureVoice, + AzureVoiceDetails, + GatherSource, + GoogleVoice, + GoogleVoiceDetails, + StreamGatherSource +} from "@fonoster/common"; +import VoiceServer from "./VoiceServer"; + +export default VoiceServer; +export * from "./VoiceResponse"; +export * from "./types"; export { - VoiceResponse, - VoiceRequest, - VoiceServer, - PlaybackControl, - SGatherStream + AzureVoice, + AzureVoiceDetails, + GatherSource, + GoogleVoice, + GoogleVoiceDetails, + StreamGatherSource }; diff --git a/mods/voice/src/mute/mute.ts b/mods/voice/src/mute/mute.ts deleted file mode 100644 index 60a2a5eee..000000000 --- a/mods/voice/src/mute/mute.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { objectToQString } from "../utils"; -import { Verb } from "../verb"; -import { MuteOptions } from "./types"; - -export default class MuteVerb extends Verb { - async run(opts: MuteOptions = { direction: "both" }): Promise { - await super.post( - `channels/${this.request.sessionId}/mute`, - objectToQString(opts) - ); - } -} - -export { MuteOptions }; diff --git a/mods/voice/src/mute/types.ts b/mods/voice/src/mute/types.ts deleted file mode 100644 index 39fedbdeb..000000000 --- a/mods/voice/src/mute/types.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface MuteOptions { - direction: "in" | "out" | "both"; -} diff --git a/mods/voice/src/play/play.ts b/mods/voice/src/play/play.ts deleted file mode 100644 index 3562d47b4..000000000 --- a/mods/voice/src/play/play.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Verb } from "../verb"; -import { PlayOptions } from "./types"; -import { objectToQString } from "../utils"; -import { assertsValueIsPositive } from "../asserts"; -import objectid from "bson-objectid"; -import PubSub from "pubsub-js"; - -export default class PlayVerb extends Verb { - run(media: string, options: PlayOptions = {}): Promise { - assertsValueIsPositive("offset", options.offset); - assertsValueIsPositive("skip", options.skip); - - const playbackId = options.playbackId ? options.playbackId : objectid(); - // Renaming properties to match the API query parameters - const opts = { - media, - offsetms: options.offset, - skipms: options.skip, - playbackId - }; - - return new Promise(async (resolve, reject) => { - let token; - try { - await super.post( - `channels/${this.request.sessionId}/play`, - objectToQString(opts) - ); - - token = PubSub.subscribe( - `PlaybackFinished.${playbackId}`, - (type, data) => { - resolve(data); - PubSub.unsubscribe(token); - } - ); - } catch (e) { - reject(e); - PubSub.unsubscribe(token); - } - }); - } -} - -export { PlayOptions }; diff --git a/mods/voice/src/play/types.ts b/mods/voice/src/play/types.ts deleted file mode 100644 index 788ad1b3d..000000000 --- a/mods/voice/src/play/types.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface PlayOptions { - offset?: number; - skip?: number; - playbackId?: string; -} diff --git a/mods/voice/src/playback/playback.ts b/mods/voice/src/playback/playback.ts deleted file mode 100644 index 81c067451..000000000 --- a/mods/voice/src/playback/playback.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Verb } from "../verb"; -import { VoiceRequest } from "../types"; -import logger from "@fonoster/logger"; - -export class PlaybackControl extends Verb { - playbackId: string; - constructor(request: VoiceRequest, playbackId: string) { - super(request); - this.playbackId = playbackId; - } - - private async operation(name: string) { - logger.verbose( - `@fonoster/voice playback control [operation = ${name}, playbackId = ${this.playbackId}]` - ); - - try { - switch (name) { - case "stop": - await super.delete(`playbacks/${this.playbackId}`); - break; - default: - await super.post( - `playbacks/${this.playbackId}/control`, - `operation=${name}` - ); - } - } catch (e) { - if (!e.response || e.response.status !== 404) { - logger.error(e); - } - } - } - - async stop() { - await this.operation("stop"); - } - - async restart() { - await this.operation("restart"); - } - - async pause() { - await this.operation("pause"); - } - - async unpause() { - await this.operation("unpause"); - } - - async forward() { - await this.operation("forward"); - } -} diff --git a/mods/voice/src/record/record.ts b/mods/voice/src/record/record.ts deleted file mode 100644 index f5f771562..000000000 --- a/mods/voice/src/record/record.ts +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import objectid from "bson-objectid"; -import { Verb } from "../verb"; -import { RecordOptions, RecordResult } from "./types"; -import { objectToQString } from "../utils"; -import { assertsFinishOnKeyIsChar, assertsValueIsPositive } from "../asserts"; -import PubSub from "pubsub-js"; - -export default class RecordVerb extends Verb { - run(options: RecordOptions = {}): Promise { - assertsFinishOnKeyIsChar(options.finishOnKey); - assertsValueIsPositive("maxSilence", options.maxSilence); - assertsValueIsPositive("maxDuration", options.maxDuration); - const name = objectid(); - - // Renaming properties to match the API query parameters - const opts = { - format: "wav", - name, - maxSilenceSeconds: options.maxSilence, - maxDurationSeconds: options.maxDuration, - beep: options.beep, - terminateOn: encodeURIComponent(options.finishOnKey || "#") - }; - - return new Promise(async (resolve, reject) => { - let tokenFinished = null; - let tokenFailed = null; - try { - await super.post( - `channels/${this.request.sessionId}/record`, - objectToQString(opts) - ); - - tokenFinished = PubSub.subscribe( - `RecordingFinished.${name}`, - (type, data) => { - resolve(data.data); - PubSub.unsubscribe(tokenFinished); - PubSub.unsubscribe(tokenFailed); - } - ); - - tokenFailed = PubSub.subscribe( - `RecordingFailed.${name}`, - (type, data) => { - reject("recording failed: " + data.cause); - PubSub.unsubscribe(tokenFinished); - PubSub.unsubscribe(tokenFailed); - } - ); - } catch (e) { - reject(e); - PubSub.unsubscribe(tokenFinished); - PubSub.unsubscribe(tokenFailed); - } - }); - } -} - -export { RecordOptions, RecordResult }; diff --git a/mods/voice/src/record/types.ts b/mods/voice/src/record/types.ts deleted file mode 100644 index 4e5133776..000000000 --- a/mods/voice/src/record/types.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface RecordOptions { - maxDuration?: number; - maxSilence?: number; - beep?: boolean; - finishOnKey?: string; -} - -export interface RecordResult { - duration: number; - format: string; - name: string; - silenceDuration: number; - talkingDuration: number; -} diff --git a/mods/voice/src/say/types.ts b/mods/voice/src/say/types.ts deleted file mode 100644 index 02319c0be..000000000 --- a/mods/voice/src/say/types.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface SayOptions { - offset?: number; - skip?: number; - playbackId?: string; -} diff --git a/mods/voice/src/server.ts b/mods/voice/src/server.ts deleted file mode 100644 index 0a4486897..000000000 --- a/mods/voice/src/server.ts +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ServerConfig } from "./types"; -import { posix } from "path"; -import { Plugin } from "@fonoster/common"; -import { VoiceTracer } from "./tracer"; -import { serveFiles } from "./utils"; -import VoiceResponse from "./voice"; -import logger from "@fonoster/logger"; -import express from "express"; -import os from "os"; -import PubSub from "pubsub-js"; -const merge = require("deepmerge"); -const app = express(); -app.use(express.json()); -require("express-ws")(app); - -const defaultServerConfig: ServerConfig = { - base: "/", - port: 3000, - bind: "0.0.0.0", - pathToFiles: os.tmpdir(), - otlSpanExporters: [] -}; - -export default class VoiceServer { - config: ServerConfig; - plugins: {}; - voiceTracer: VoiceTracer; - constructor(config: ServerConfig = defaultServerConfig) { - this.config = merge(defaultServerConfig, config); - this.init(); - this.plugins = {}; - } - - /** - * Add tts or asr plugin. - * - * @param plugin - */ - use(plugin: Plugin) { - // Note: We only support registering one plugin per type - this.plugins[plugin.getType()] = plugin; - } - - listen(handler: Function, port = this.config.port) { - app.get(posix.join(this.config.base, "/sounds/:file"), (req, res) => - serveFiles(this.config)(req, res) - ); - - // Alias path for sounds - app.get(posix.join(this.config.base, "/tts/:file"), (req, res) => - serveFiles(this.config)(req, res) - ); - - app.get("/ping", (req, res) => { - res.send("pong"); - }); - - app.post(posix.join(this.config.base), async (req, res) => { - this.voiceTracer = new VoiceTracer(this.config.otlSpanExporters); - this.voiceTracer.init(); - const response = new VoiceResponse(req.body, this.voiceTracer); - response.plugins = this.plugins; - handler(req.body, response); - res.end(); - }); - - logger.info( - `starting voice server @ ${this.config.bind}, port=${this.config.port}, path=${this.config.base}` - ); - - app.listen(port, this.config.bind); - } - - init() { - logger.info("initializing voice server"); - (app as any).ws(this.config.base, (ws) => { - ws.on("message", (msg) => { - if (Buffer.isBuffer(msg)) { - // Session ids will always be 12 or 13 digits long) - const numDigits = 2; - const idLength = parseInt(msg.toString("utf-8", 0, numDigits)); - const sessionId = msg.toString("utf-8", 2, idLength + numDigits); - const mediaData = msg.slice(idLength + numDigits); - PubSub.publish(`ReceivingMedia.${sessionId}`, mediaData); - } else { - const event = JSON.parse(msg); - - if (event.type === "PlaybackFinished") { - PubSub.publish(`${event.type}.${event.data.playbackId}`, event); - } else if ( - event.type === "RecordingFinished" || - event.type === "RecordingFailed" - ) { - PubSub.publish(`${event.type}.${event.data.name}`, event); - } else { - PubSub.publish(`${event.type}.${event.sessionId}`, event); - } - - logger.verbose( - `@fonoster/voice received event [${JSON.stringify( - event, - null, - " " - )}]` - ); - } - }).on("error", console.error); - }); - } -} diff --git a/mods/voice/src/serviceDefinition.ts b/mods/voice/src/serviceDefinition.ts new file mode 100644 index 000000000..9c292eae4 --- /dev/null +++ b/mods/voice/src/serviceDefinition.ts @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createServiceDefinition } from "@fonoster/common"; + +const serviceDefinition = createServiceDefinition({ + serviceName: "Voice", + pckg: "voice", + proto: "voice.proto", + version: "v1beta2" +}); + +export { serviceDefinition }; diff --git a/mods/voice/src/sgather/gather.ts b/mods/voice/src/sgather/gather.ts deleted file mode 100644 index 274c859d1..000000000 --- a/mods/voice/src/sgather/gather.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { SpeechProvider } from "@fonoster/common"; -import { VoiceRequest } from "../types"; -import { Verb } from "../verb"; -import { SGatherOptions, SGatherStream } from "./types"; -import PubSub from "pubsub-js"; -import logger from "@fonoster/logger"; -import merge from "deepmerge"; -import StreamData from "./stream_data"; -import startSpeechSource from "./source_speech"; - -const defaultOptions: SGatherOptions = { - source: "speech,dtmf" -}; - -export default class SGatherVerb extends Verb { - speechProvider: SpeechProvider; - constructor(request: VoiceRequest, speechProvider?: SpeechProvider) { - super(request); - this.speechProvider = speechProvider; - // Assert speech provider is available if source includes speech - } - - async run(opts: SGatherOptions): Promise { - const options = merge(defaultOptions, opts); - const streamData = new StreamData(); - logger.verbose( - `@fonoster/voice started sgather [source = ${options.source}]` - ); - if (options.source.includes("dtmf")) { - const token = PubSub.subscribe( - `DtmfReceived.${this.request.sessionId}`, - (type, data) => { - const key = data.data; - streamData.emit("dtmf", key); - } - ); - streamData.setDtmfSubscribeToken(token); - } - - if (options.source.includes("speech")) { - const { speechStream, token } = await startSpeechSource( - this.request.sessionId, - opts, - super.getSelf(), - this.speechProvider - ); - streamData.setSpeechSubscribeToken(token); - speechStream.on("transcript", (data) => - streamData.emit("transcript", data) - ); - } - - return streamData; - } -} - -export { SGatherOptions }; diff --git a/mods/voice/src/sgather/source_speech.ts b/mods/voice/src/sgather/source_speech.ts deleted file mode 100644 index 925971848..000000000 --- a/mods/voice/src/sgather/source_speech.ts +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Stream from "stream"; -import PubSub from "pubsub-js"; -import { SGatherOptions } from "./types"; -import { startMediaTransfer } from "../utils"; -import { Verb } from "../verb"; -import { SpeechProvider } from "@fonoster/common"; - -export default async function startSpeechSource( - sessionId: string, - options: SGatherOptions, - verb: Verb, - speechProvider: SpeechProvider -) { - const speechTracker = speechProvider.createSpeechTracker(options); - const readable = new Stream.Readable({ - // The read logic is omitted since the data is pushed to the socket - // outside of the script's control. However, the read() function - // must be defined. - read() {} - }); - await startMediaTransfer(verb, sessionId); - const token = PubSub.subscribe( - `ReceivingMedia.${sessionId}`, - (type, data) => { - readable.push(data); - } - ); - const speechStream = speechTracker.streamTranscribe(readable); - return { speechStream, token }; -} diff --git a/mods/voice/src/sgather/stream_data.ts b/mods/voice/src/sgather/stream_data.ts deleted file mode 100644 index e7461749c..000000000 --- a/mods/voice/src/sgather/stream_data.ts +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Stream } from "stream"; -import { SGatherStream } from "./types"; -import PubSub from "pubsub-js"; - -export default class StreamData implements SGatherStream { - stream: Stream; - dtmfSubscribeToken: string; - speechSubscribeToken: string; - constructor() { - this.stream = new Stream(); - } - - close() { - if (this.dtmfSubscribeToken) { - PubSub.unsubscribe(this.dtmfSubscribeToken); - } - if (this.speechSubscribeToken) { - PubSub.unsubscribe(this.speechSubscribeToken); - } - - this.stream.removeAllListeners(); - } - - on(event: string, callback: Function) { - if (event === "transcript") { - this.stream.on("transcript", (data) => { - callback(data); - }); - } - - if (event === "dtmf") { - this.stream.on("dtmf", (key: string) => { - callback(key); - }); - } - - if (event === "error") { - this.stream.on("error", (error: Error) => { - callback(error); - }); - } - } - - emit(event: string, data: any) { - this.stream.emit(event, data); - } - - setDtmfSubscribeToken(token: string) { - this.dtmfSubscribeToken = token; - } - - setSpeechSubscribeToken(token: string) { - this.speechSubscribeToken = token; - } -} diff --git a/mods/voice/src/sgather/types.ts b/mods/voice/src/sgather/types.ts deleted file mode 100644 index 50dbf67f0..000000000 --- a/mods/voice/src/sgather/types.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface SGatherOptions { - source?: "dtmf" | "speech" | "dtmf,speech" | "speech,dtmf"; -} - -export interface SGatherStream { - on(event: string, callback: Function): void; - close: Function; -} diff --git a/mods/voice/src/tracer.ts b/mods/voice/src/tracer.ts deleted file mode 100644 index 37da8781d..000000000 --- a/mods/voice/src/tracer.ts +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import opentelemetry, { Context, Span, Tracer } from "@opentelemetry/api"; -import { Resource } from "@opentelemetry/resources"; -import { SemanticResourceAttributes } from "@opentelemetry/semantic-conventions"; -import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base"; -const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node"); - -export class VoiceTracer { - callTracer: Tracer; - parentSpan: Span; - ctx: Context; - constructor(otlSpanExporters: Array) { - // Configure span processor to send spans to the exporter - const provider = new NodeTracerProvider({ - resource: new Resource({ - [SemanticResourceAttributes.SERVICE_NAME]: "voice-service" - }) - }); - - for (const exp of otlSpanExporters) { - const exporter = new exp.exporter(exp.config); - provider.addSpanProcessor(new BatchSpanProcessor(exporter)); - } - - provider.register(); - this.callTracer = opentelemetry.trace.getTracer("call_tracer"); - } - - init() { - this.parentSpan = this.callTracer.startSpan("call"); - this.ctx = opentelemetry.trace.setSpan( - opentelemetry.context.active(), - this.parentSpan - ); - } - - close() { - this.parentSpan.end(); - } - - createSpan(name: string): Span { - return this.callTracer.startSpan(name, undefined, this.ctx); - } -} diff --git a/mods/voice/src/types.ts b/mods/voice/src/types.ts index 2ea7dc83a..bda08e8c5 100644 --- a/mods/voice/src/types.ts +++ b/mods/voice/src/types.ts @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) * http://github.com/fonoster/fonoster * * This file is part of Fonoster @@ -16,31 +16,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { MeterProvider } from "@opentelemetry/sdk-metrics-base"; +import { VoiceRequest } from "@fonoster/common"; +import { VoiceResponse } from "./VoiceResponse"; -export interface VoiceRequest { - accessKeyId: string; - sessionToken: string; - sessionId: string; - dialbackEnpoint: string; - number: string; - callerId: string; - callerNumber: string; - selfEndpoint: string; - appRef?: string; -} +type VoiceHandler = (req: VoiceRequest, res: VoiceResponse) => Promise; -export interface ServerConfig { +type ServerConfig = { bind?: string; port?: number; - base?: string; - pathToFiles?: string; - otlSpanExporters?: Array; - meterProvider?: MeterProvider; -} + identityAddress?: string; + skipIdentity?: boolean; +}; -export interface VoiceEventData { - type: string; - sessionId: string; - data: any; -} +export { ServerConfig, VoiceHandler, VoiceRequest }; diff --git a/mods/voice/src/unmute/types.ts b/mods/voice/src/unmute/types.ts deleted file mode 100644 index 39fedbdeb..000000000 --- a/mods/voice/src/unmute/types.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export interface MuteOptions { - direction: "in" | "out" | "both"; -} diff --git a/mods/voice/src/unmute/unmute.ts b/mods/voice/src/unmute/unmute.ts deleted file mode 100644 index 476a80083..000000000 --- a/mods/voice/src/unmute/unmute.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { objectToQString } from "../utils"; -import { Verb } from "../verb"; -import { MuteOptions } from "./types"; - -export default class UnmuteVerb extends Verb { - async run(opts: MuteOptions = { direction: "both" }): Promise { - await super.delete( - `channels/${this.request.sessionId}/mute`, - objectToQString(opts) - ); - } -} - -export { MuteOptions }; diff --git a/mods/voice/src/utils.ts b/mods/voice/src/utils.ts deleted file mode 100644 index 7febda1d4..000000000 --- a/mods/voice/src/utils.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ServerConfig } from "./types"; -import { Verb } from "./verb"; -import { join } from "path"; -import fs from "fs"; - -/** - * Takes a json object and creates a query formatted string - * - * @param {object} - a one level json object with the query options - * @return {string} a string in the form of 'key1=value1&key2=value2&...' - */ -export const objectToQString = (obj: any = {}): string => - Object.keys(obj) - .filter((key: string) => obj[key]) - .map((key: string) => { - const encodedObj = obj[key] === "#" ? encodeURIComponent("#") : obj[key]; - return `${key}=${encodedObj}`; - }) - .join("&"); - -async function sendMediaTransferEvent( - verb: Verb, - sessionId: string, - event: string -) { - await verb.post( - `events/user/${event}`, - objectToQString({ - // WARNING: Harcoded value - application: "mediacontroller" - }), - { - variables: { - sessionId - } - } - ); -} - -export async function startMediaTransfer(verb: Verb, sessionId: string) { - await sendMediaTransferEvent(verb, sessionId, "SendExternalMedia"); -} - -export async function stopMediaTransfer(verb: Verb, sessionId: string) { - await sendMediaTransferEvent(verb, sessionId, "StopExternalMedia"); -} - -export const serveFiles = (config: ServerConfig) => { - return (req, res) => { - // TODO: Update to use a stream instead of fs.readFile - fs.readFile( - join(config.pathToFiles, req.params.file), - function (err, data) { - if (err) { - res.send("unable to find or open file"); - } else { - // TODO: Set this value according to file extension - res.setHeader("content-type", "audio/x-wav"); - res.send(data); - } - res.end(); - } - ); - }; -}; diff --git a/mods/voice/src/verb.ts b/mods/voice/src/verb.ts deleted file mode 100644 index 34c746dac..000000000 --- a/mods/voice/src/verb.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import axios from "axios"; -import { VoiceRequest } from "./types"; -import logger from "@fonoster/logger"; - -const auth = - process.env.NODE_ENV != "production" - ? { - username: "admin", - password: "changeit" - } - : null; - -export class Verb { - request: VoiceRequest; - constructor(request: VoiceRequest) { - this.request = request; - } - - getSelf() { - return this; - } - - getRequest(): VoiceRequest { - return this.request; - } - - async post( - apiPath: string, - queryParameters: string, - data?: Record - ) { - const url = `${ - this.getRequest().dialbackEnpoint - }/ari/${apiPath}?${queryParameters}`; - - logger.silly(`@fonoster/voice posting [url: ${url}]`); - - return await axios({ - method: "post", - url, - auth, - headers: { - "X-Session-Token": this.request.sessionToken, - "Content-Type": "application/json" - }, - data - }); - } - - async delete(apiPath: string, queryParameters?: string) { - const url = `${ - this.getRequest().dialbackEnpoint - }/ari/${apiPath}?${queryParameters}`; - - logger.silly(`@fonoster/voice deleting [url: ${url}]`); - - return await axios({ - method: "delete", - url, - auth, - headers: { - "X-Session-Token": this.request.sessionToken - } - }); - } -} diff --git a/mods/voice/src/verbs/Answer.ts b/mods/voice/src/verbs/Answer.ts new file mode 100644 index 000000000..c2d258c7c --- /dev/null +++ b/mods/voice/src/verbs/Answer.ts @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { Verb } from "./Verb"; + +class Answer extends Verb { + getValidationSchema(): z.Schema { + return z.object({}); + } +} + +export { Answer }; diff --git a/mods/voice/src/verbs/Dial.ts b/mods/voice/src/verbs/Dial.ts new file mode 100644 index 000000000..941aebc28 --- /dev/null +++ b/mods/voice/src/verbs/Dial.ts @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Stream } from "stream"; +import { + DialRecordDirection, + DialRequest, + DialStatus, + Messages +} from "@fonoster/common"; +import { z } from "zod"; +import { Verb } from "./Verb"; + +class Dial extends Verb { + getValidationSchema(): z.Schema { + return z.object({ + destination: z.string(), + timeout: z + .number() + .int({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .positive({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .optional(), + recordDirection: z + .nativeEnum(DialRecordDirection, { + message: "Invalid record direction." + }) + .optional() + }); + } +} + +class DialStatusStream { + stream: Stream; + constructor() { + this.stream = new Stream(); + } + + close() { + this.stream.removeAllListeners(); + } + + on(callback: (data: DialStatus) => void) { + this.stream.on("status", (data) => { + callback(data); + }); + } + + emit(status: DialStatus) { + this.stream.emit("status", status); + } +} + +export { Dial, DialStatusStream }; diff --git a/mods/voice/src/verbs/Gather.ts b/mods/voice/src/verbs/Gather.ts new file mode 100644 index 000000000..feb20dd00 --- /dev/null +++ b/mods/voice/src/verbs/Gather.ts @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { GatherRequest, GatherSource, Messages } from "@fonoster/common"; +import { z } from "zod"; +import { Verb } from "./Verb"; + +class Gather extends Verb { + getValidationSchema(): z.Schema { + return z.object({ + source: z + .nativeEnum(GatherSource, { + message: "Invalid gather source." + }) + .optional(), + finishOnKey: z + .string() + .regex(/^[0-9*#]+$/, { message: Messages.VALID_DTMF }) + .length(1, { message: Messages.MUST_BE_A_SINGLE_CHARACTER }) + .optional(), + timeout: z + .number() + .int({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .positive({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .optional(), + maxDigits: z + .number({ + message: Messages.POSITIVE_INTEGER_MESSAGE + }) + .int({ + message: Messages.POSITIVE_INTEGER_MESSAGE + }) + .positive({ + message: Messages.POSITIVE_INTEGER_MESSAGE + }) + .optional() + }); + } +} + +export { Gather }; diff --git a/mods/voice/src/verbs/Hangup.ts b/mods/voice/src/verbs/Hangup.ts new file mode 100644 index 000000000..988893070 --- /dev/null +++ b/mods/voice/src/verbs/Hangup.ts @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { Verb } from "./Verb"; + +class Hangup extends Verb { + getValidationSchema(): z.Schema { + return z.object({}); + } +} + +export { Hangup }; diff --git a/mods/voice/src/verbs/Mute.ts b/mods/voice/src/verbs/Mute.ts new file mode 100644 index 000000000..ae355896b --- /dev/null +++ b/mods/voice/src/verbs/Mute.ts @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { MuteDirection, MuteRequest } from "@fonoster/common"; +import { z } from "zod"; +import { Verb } from "./Verb"; + +class Mute extends Verb { + getValidationSchema(): z.Schema { + return z.object({ + direction: z.enum([ + MuteDirection.IN, + MuteDirection.OUT, + MuteDirection.BOTH + ]) + }); + } +} + +export { Mute }; diff --git a/mods/voice/src/verbs/Play.ts b/mods/voice/src/verbs/Play.ts new file mode 100644 index 000000000..824725456 --- /dev/null +++ b/mods/voice/src/verbs/Play.ts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Messages, PlayRequest } from "@fonoster/common"; +import { z } from "zod"; +import { Verb } from "./Verb"; + +class Play extends Verb { + getValidationSchema(): z.Schema { + return z.object({ + url: z.string().url({ message: Messages.VALID_URL }), + playbackRef: z.string().uuid({ message: Messages.VALID_UUID }).optional() + }); + } +} + +export { Play }; diff --git a/mods/voice/src/verbs/PlayDtmf.ts b/mods/voice/src/verbs/PlayDtmf.ts new file mode 100644 index 000000000..566680d63 --- /dev/null +++ b/mods/voice/src/verbs/PlayDtmf.ts @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Messages, PlayDtmfRequest } from "@fonoster/common"; +import { z } from "zod"; +import { Verb } from "./Verb"; + +class PlayDtmf extends Verb { + getValidationSchema(): z.Schema { + return z.object({ + digits: z.string().regex(/^[0-9*#]+$/, { message: Messages.VALID_DTMF }) + }); + } +} + +export { PlayDtmf }; diff --git a/mods/voice/src/verbs/PlaybackControl.ts b/mods/voice/src/verbs/PlaybackControl.ts new file mode 100644 index 000000000..6aa6db650 --- /dev/null +++ b/mods/voice/src/verbs/PlaybackControl.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + Messages, + PlaybackControlAction, + PlaybackControlRequest +} from "@fonoster/common"; +import { z } from "zod"; +import { Verb } from "./Verb"; + +class PlaybackControl extends Verb { + getValidationSchema(): z.Schema { + return z.object({ + playbackRef: z.string().uuid({ message: Messages.VALID_UUID }), + action: z.nativeEnum(PlaybackControlAction, { + message: "Invalid playback control action" + }) + }); + } +} + +export { PlaybackControl }; diff --git a/mods/voice/src/verbs/Record.ts b/mods/voice/src/verbs/Record.ts new file mode 100644 index 000000000..7d6336056 --- /dev/null +++ b/mods/voice/src/verbs/Record.ts @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Messages, RecordRequest } from "@fonoster/common"; +import { z } from "zod"; +import { Verb } from "./Verb"; + +class Record extends Verb { + getValidationSchema(): z.Schema { + return z.object({ + maxDuration: z + .number() + .int({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .positive({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .optional(), + maxSilence: z + .number() + .int({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .positive({ message: Messages.POSITIVE_INTEGER_MESSAGE }) + .optional(), + beep: z.boolean().optional(), + finishOnKey: z + .string() + .regex(/^[0-9*#]+$/, { message: Messages.VALID_DTMF }) + .length(1, { + message: Messages.MUST_BE_A_SINGLE_CHARACTER + }) + .optional() + }); + } +} + +export { Record }; diff --git a/mods/voice/src/verbs/Say.ts b/mods/voice/src/verbs/Say.ts new file mode 100644 index 000000000..fd54fc378 --- /dev/null +++ b/mods/voice/src/verbs/Say.ts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Messages, SayRequest } from "@fonoster/common"; +import { z } from "zod"; +import { Verb } from "./Verb"; + +class Say extends Verb { + getValidationSchema(): z.Schema { + return z.object({ + text: z.string().min(1), + playbackRef: z.string().uuid({ message: Messages.VALID_UUID }).optional() + }); + } +} + +export { Say }; diff --git a/mods/voice/src/verbs/Stream.ts b/mods/voice/src/verbs/Stream.ts new file mode 100644 index 000000000..fe2d66b06 --- /dev/null +++ b/mods/voice/src/verbs/Stream.ts @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Stream as StreamObj } from "stream"; +import { + Messages, + StartStreamRequest, + StopStreamRequest, + StreamAudioFormat, + StreamDirection, + StreamPayload +} from "@fonoster/common"; +import { z } from "zod"; +import { Verb } from "./Verb"; + +class StartStream extends Verb { + getValidationSchema(): z.Schema { + return z.object({ + direction: z + .nativeEnum(StreamDirection, { message: "Invalid stream direction" }) + .optional(), + format: z + .nativeEnum(StreamAudioFormat, { + message: "Invalid stream audio direction" + }) + .optional() + }); + } +} + +class StopStream extends Verb { + getValidationSchema(): z.Schema { + return z.object({ + streamRef: z.string().uuid({ message: Messages.VALID_UUID }) + }); + } +} + +class Stream { + stream: StreamObj; + constructor() { + this.stream = new StreamObj(); + } + + close() { + this.stream.removeAllListeners(); + } + + // Public API + onPayload(callback: (payload: StreamPayload) => void) { + this.stream.on("payloadOut", (payload: StreamPayload) => { + callback(payload); + }); + } + + write(payload: StreamPayload) { + this.stream.emit("payloadIn", payload); + } + + // Private API + onPayloadIn(callback: (payload: StreamPayload) => void) { + this.stream.on("payloadIn", (payload) => { + callback(payload); + }); + } + + // Private API + emit(event: "payloadIn" | "payloadOut", payload: StreamPayload) { + this.stream.emit(event, payload); + } + + // Private API + cleanup(callback: () => void) { + this.stream.on("close", callback); + } +} + +export { StartStream, StopStream, Stream }; diff --git a/mods/voice/src/verbs/StreamGather.ts b/mods/voice/src/verbs/StreamGather.ts new file mode 100644 index 000000000..64be4d10e --- /dev/null +++ b/mods/voice/src/verbs/StreamGather.ts @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Stream as StreamObj } from "stream"; +import { + Messages, + StartStreamGatherRequest, + StreamGatherPayload, + StreamGatherSource, + VerbRequest +} from "@fonoster/common"; +import { z } from "zod"; +import { Verb } from "./Verb"; + +class StartStreamGather extends Verb { + getValidationSchema(): z.Schema { + return z.object({ + source: z.optional( + z.nativeEnum(StreamGatherSource, { + message: "Invalid stream gather source." + }) + ) + }); + } +} + +class StopStreamGather extends Verb { + getValidationSchema(): z.Schema { + return z.object({ + sessionRef: z.string().uuid({ message: Messages.VALID_UUID }) + }); + } +} + +class StreamGatherStream { + stream: StreamObj; + constructor() { + this.stream = new StreamObj(); + } + + close() { + this.stream.removeAllListeners(); + } + + // Private API + onPayload(callback: (payload: StreamGatherPayload) => void) { + this.stream.on("data", (payload) => { + callback(payload); + }); + } + + // Private API + emit(event: "data", payload: StreamGatherPayload) { + this.stream.emit(event, payload); + } + + // Private API + cleanup(callback: () => void) { + this.stream.on("close", callback); + } +} + +export { StartStreamGather, StopStreamGather, StreamGatherStream }; diff --git a/mods/voice/src/verbs/Unmute.ts b/mods/voice/src/verbs/Unmute.ts new file mode 100644 index 000000000..06cf5ec3c --- /dev/null +++ b/mods/voice/src/verbs/Unmute.ts @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Mute } from "./Mute"; + +// Shares everything with Mute except the class name +class Unmute extends Mute {} + +export { Unmute }; diff --git a/mods/voice/src/verbs/Verb.ts b/mods/voice/src/verbs/Verb.ts new file mode 100644 index 000000000..a58d57944 --- /dev/null +++ b/mods/voice/src/verbs/Verb.ts @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + StreamEvent, + VerbRequest, + VoiceIn, + VoiceRequest, + VoiceSessionStreamServer, + toCamelCase +} from "@fonoster/common"; +import { getLogger } from "@fonoster/logger"; +import { z } from "zod"; +import { getExpectedContent } from "./getExpectedContent"; +import { validateRequest } from "./validateRequest"; + +const logger = getLogger({ service: "voice", filePath: __filename }); + +abstract class Verb { + request: VoiceRequest; + voice: VoiceSessionStreamServer; + constructor(request: VoiceRequest, voice: VoiceSessionStreamServer) { + this.request = request; + this.voice = voice; + } + + async run(params?: T): Promise { + const { sessionRef } = this.request; + const { voice } = this; + + logger.verbose(`sending a request with the ${this.constructor.name} verb`, { + sessionRef + }); + + return new Promise((resolve, reject) => { + try { + const fullRequest = { + ...params, + sessionRef + }; + + validateRequest(this.getValidationSchema(), fullRequest); + + voice.write({ + [`${toCamelCase(this.constructor.name)}Request`]: fullRequest + }); + + const dataListener = (result: VoiceIn) => { + const expectedContent = getExpectedContent(this.constructor.name); + + if (expectedContent !== result.content) { + return; + } + + logger.verbose(`received ${this.constructor.name} response`, { + sessionRef + }); + resolve(result); + voice.removeListener(StreamEvent.DATA, dataListener); + }; + + voice.on(StreamEvent.DATA, dataListener); + } catch (e) { + reject(e); + } + }); + } + + abstract getValidationSchema(): z.Schema; +} + +export { Verb }; diff --git a/mods/voice/src/verbs/getExpectedContent.ts b/mods/voice/src/verbs/getExpectedContent.ts new file mode 100644 index 000000000..95c9b8a81 --- /dev/null +++ b/mods/voice/src/verbs/getExpectedContent.ts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { toCamelCase } from "@fonoster/common"; + +function getExpectedContent(name: string) { + switch (name) { + case "StartStreamGather": + return "startStreamGatherResponse"; + case "StartStream": + return "startStreamResponse"; + default: + return `${toCamelCase(name)}Response`; + } +} + +export { getExpectedContent }; diff --git a/mods/voice/src/verbs/index.ts b/mods/voice/src/verbs/index.ts new file mode 100644 index 000000000..1247a52df --- /dev/null +++ b/mods/voice/src/verbs/index.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export * from "./Answer"; +export * from "./Dial"; +export * from "./Gather"; +export * from "./Hangup"; +export * from "./Mute"; +export * from "./Play"; +export * from "./PlayDtmf"; +export * from "./PlaybackControl"; +export * from "./Record"; +export * from "./Say"; +export * from "./Stream"; +export * from "./StreamGather"; +export * from "./Unmute"; +export * from "./Verb"; +export * from "./validateRequest"; diff --git a/mods/voice/src/verbs/validateRequest.ts b/mods/voice/src/verbs/validateRequest.ts new file mode 100644 index 000000000..46837c767 --- /dev/null +++ b/mods/voice/src/verbs/validateRequest.ts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { z } from "zod"; +import { fromError } from "zod-validation-error"; + +export function validateRequest(schema: z.Schema, data: unknown): T { + const parsedData = schema.safeParse(data); + + if (!parsedData.success) { + throw fromError(parsedData.error, { + prefix: null + }); + } + + return parsedData.data; +} diff --git a/mods/voice/src/voice.ts b/mods/voice/src/voice.ts deleted file mode 100644 index 06d081874..000000000 --- a/mods/voice/src/voice.ts +++ /dev/null @@ -1,446 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import AnswerVerb from "./answer/answer"; -import HangupVerb from "./hangup/hangup"; -import UnmuteVerb from "./unmute/unmute"; -import GatherVerb, { GatherOptions } from "./gather/gather"; -import MuteVerb, { MuteOptions } from "./mute/mute"; -import PlayVerb, { PlayOptions } from "./play/play"; -import RecordVerb, { RecordOptions, RecordResult } from "./record/record"; -import { PlaybackControl } from "./playback/playback"; -import { SayOptions } from "./say/types"; -import { VoiceRequest } from "./types"; -import { Plugin } from "@fonoster/common"; -import { assertPluginExist } from "./asserts"; -import PubSub from "pubsub-js"; -import { Verb } from "./verb"; -import { startMediaTransfer, stopMediaTransfer } from "./utils"; -import SGatherVerb, { SGatherOptions } from "./sgather/gather"; -import { SGatherStream } from "./sgather/types"; -import { DtmfOptions } from "./dtmf/types"; -import DtmfVerb from "./dtmf/dtmf"; -import DialVerb from "./dial/dial"; -import { DialOptions } from "./dial/types"; -import StreamStatus from "./dial/status_stream"; -import { VoiceTracer } from "./tracer"; - -/** - * @classdesc Use the VoiceResponse object, to construct advance Interactive - * Voice Response (IVR) applications. - * - * @extends Verb - * @example - * - * import { VoiceServer } from "@fonoster/voice"; - * - * async function handler (request, response) { - * await response.answer(); - * await response.play("sound:hello-world"); - * } - * - * const voiceServer = new VoiceServer({base: '/voiceapp'}) - * voiceServer.listen(handler, { port: 3000 }) - */ -export default class VoiceResponse { - request: VoiceRequest; - plugins: {}; - voiceTracer: VoiceTracer; - - /** - * Constructs a new VoiceResponse object. - * - * @param {VoiceRequest} request - Options to indicate the objects endpoint - * @see module:core:APIClient - */ - constructor(request: VoiceRequest, voiceTracer: VoiceTracer) { - this.request = request; - this.voiceTracer = voiceTracer; - this.plugins = {}; - } - - /** - * Adds a tts or asr plugin. Only one type of plugin can be attached. - * - * @param plugin - * @see GoogleTTS - * @see GoogleASR - */ - use(plugin: Plugin): void { - this.plugins[plugin.getType()] = plugin; - } - - /** - * Play an audio in the channel. - * - * @param {string} media - Sound name or uri with audio file - * @param {PlayOptions} options - Optional parameters to alter the command's normal - * behavior - * @param {string} options.offset - Milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified - * @param {string} options.skip - Milliseconds to skip for forward/reverse operations - * @param {string} options.playbackId - Playback identifier to use in Playback operations - * @see Playback - * @example - * - * async function handler (request, response) { - * await response.answer(); - * await response.play("https://soundsserver:9000/sounds/hello-world.wav"); - * } - */ - async play(media: string, options: PlayOptions = {}): Promise { - const span = this.voiceTracer.createSpan("play"); - await new PlayVerb(this.request).run(media, options); - span.end(); - } - - /** - * Converts a text into a sound and sends sound to media server. To use this verb, you must - * first setup a TTS plugin such as MaryTTS, GoogleTTS, or AWS PollyTTS - * - * @param {string} text - Converts a text into a sound and sends sound to media server - * @param {SayOptions} options - Optional parameters to alter the command's normal - * behavior - * @param {string} options.offset - Milliseconds to skip before playing - * @param {string} options.skip - Milliseconds to skip for forward/reverse operations - * @param {string} options.playbackId - Playback identifier to use in Playback operations - * @see Play - * @see Voice.use - * @example - * - * async function handler (request, response) { - * await response.answer(); - * response.use(new GoogleTTS()) - * await response.say("Hello workd"); // Plays the sound using GoogleTTS's default values - * } - */ - async say(text: string, options: SayOptions = {}): Promise { - assertPluginExist(this, "tts"); - const tts = this.plugins["tts"]; - // It should return the filename and the generated file location - const main = this.voiceTracer.createSpan("play"); - const span = this.voiceTracer.createSpan("synthesize"); - const result = await tts.synthesize(text, options); - span.setAttribute("text", text); - span.setAttribute("options", JSON.stringify(options)); - span.end(); - const media = `sound:${this.request.selfEndpoint}/tts/${result.filename}`; - - await new PlayVerb(this.request).run(media, options); - main.setAttribute("media", media); - main.setAttribute("options", JSON.stringify(options)); - main.end(); - } - - /** - * Waits for data entry from the user's keypad or from a speech provider. - * - * @param {GatherOptions} options - Options to select the maximum number of digits, final character, and timeout - * @param {number} options.numDigits - Milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified - * @param {number} options.timeout - Milliseconds to wait before timeout. Defaults to 4000. Use zero for no timeout. - * @param {string} options.finishOnKey - Optional last character to wait for. Defaults to '#'. It will not be included in the returned digits - * @param {string} options.source - Where to listen as input source. This option accepts `dtmf` and `speech`. A speech provider must be configure - * when including the `speech` source. You might inclue both with `dtmf,speech`. Defaults to `dtmf` - * @note When including `speech` the default timeout is 10000 (10s). - * @see SpeechProvider - * @example - * - * async function handler (request, response) { - * await response.answer(); - * const digits = await response.gather({source: "dtmf,speech", numDigits: 3}); - * console.log("digits: " + digits); - * } - */ - async gather( - options: GatherOptions = { source: "speech,dtmf" } - ): Promise { - let asr = null; - if (options.source.includes("speech")) { - assertPluginExist(this, "asr"); - asr = this.plugins["asr"]; - } - const span = this.voiceTracer.createSpan("gather"); - const result = await new GatherVerb(this.request, asr).run(options); - span.setAttribute("options", JSON.stringify(options)); - span.end(); - return result; - } - - /** - * Waits for data entry from the user's keypad or from a stream speech provider. This command is different from `gather` - * in that it returns a stream of results instead of a single result. You can think of it as active listening. - * - * @param {SGatherOptions} options - Options object for the SGather verb - * @param {string} options.source - Where to listen as input source. This option accepts `dtmf` and `speech`. A speech provider must be configure - * when including the `speech` source. You might inclue both with `dtmf,speech`. Defaults to `speech,dtmf` - * @return {SGatherStream} The SGatherStream fires events via the `on` method for `transcription`, `dtmf`, and `error`. And the stream can be close - * with the `close` function. - * @see StreamSpeechProvider - * @example - * - * async function handler (request, response) { - * await response.answer(); - * const stream = await response.sgather({source: "dtmf,speech"}); - * - * stream.on("transcript", (text, isFinal) => { - * console.log("transcript: %s", text); - * }) - * - * stream.on("dtmf", digit => { - * console.log("digit: " + digit); - * if (digit === "#") stream.close(); - * }) - * } - */ - async sgather( - options: SGatherOptions = { source: "speech,dtmf" } - ): Promise { - let asr = null; - if (options.source.includes("speech")) { - assertPluginExist(this, "asr"); - asr = this.plugins["asr"]; - } - return await new SGatherVerb(this.request, asr).run(options); - } - - /** - * Sends dtmf tones to the current session. - * - * @param {DtmfOptions} options - Options object for the Dtmf verb - * @param {string} options.dtmf - A string of the dtmf tones - * @example - * - * async function handler (request, response) { - * await response.answer(); - * await response.play("sound:hello-world"); - * await response.dtmf({dtmf: "1234"}); - * } - */ - async dtmf(options: DtmfOptions): Promise { - const span = this.voiceTracer.createSpan("dtmf"); - const result = await new DtmfVerb(this.request).run(options); - span.setAttribute("options", JSON.stringify(options)); - span.end(); - return result; - } - - /** - * Forwards the call to an Agent or the PSTN. - * - * @param {string} destination - Number or Agent to forward the call to - * @param {DialOptions} options - Options object for the Dial verb - * @param {timeout} options.timeout - Dial timeout - * @return {StatusStream} The StatusStream fires events via the `on` method for `progress`, `answer`, `noanswer`, and `busy`. And the stream can be close - * with the `close` function. - * @example - * - * async function handler (request, response) { - * await response.answer(); - * await response.say("dialing number"); - * const stream = await response.dial("17853178070"); - * stream.on("progress", console.log) - * stream.on("answer", console.log) - * stream.on("busy", console.log) - * } - */ - async dial( - destination: string, - options?: DialOptions - ): Promise { - const span = this.voiceTracer.createSpan("dial"); - const result = await new DialVerb(this.request).run(destination, options); - span.setAttribute("destination", destination); - span.setAttribute("options", JSON.stringify(options)); - span.end(); - return result; - } - - /** - * Returns a PlaybackControl control object. - * - * @param {string} playbackId - Playback identifier to use in Playback operations - * @see Play - * @example - * - * async function handler (request, response) { - * await response.answer(); - * response.onDtmfReceived(async(digit) => { - * const control = response.playback("1234") - * digit === "3" - * ? await control.restart() - * : await control.forward() - * }) - * - * await response.play("https://soundsserver:9000/sounds/hello-world.wav", { - * playbackId: "1234" - * }); - * } - */ - playback(playbackId: string): PlaybackControl { - const span = this.voiceTracer.createSpan("playback"); - const result = new PlaybackControl(this.request, playbackId); - span.setAttribute("playbackId", playbackId); - span.end(); - return result; - } - - /** - * Listens event publication. - * - * @param {Function} handler - Event handler - * @example - * - * async function handler (request, response) { - * await response.answer(); - * response.on("DtmfReceived", async(digit) => { - * const control = response.playback("1234") - * digit === "3" - * ? await control.restart() - * : await control.forward() - * }) - * - * await response.play("https://soundsserver:9000/sounds/hello-world.wav", { - * playbackId: "1234" - * }); - * } - */ - async on(topic: string, handler: Function) { - PubSub.subscribe(`${topic}.${this.request.sessionId}`, (type, data) => { - handler(data); - }); - } - - /** - * Mutes a channel. - * - * @param {MuteOptions} options - Indicate which direction of he communication to mute - * @param {string} options.direction - Possible values are 'in', 'out', and 'both' - * @see unmute - * @example - * - * async function handler (request, response) { - * await response.answer(); - * await response.mute(); // Will mute both directions - * } - */ - async mute(options?: MuteOptions): Promise { - const span = this.voiceTracer.createSpan("mute"); - const result = new MuteVerb(this.request).run(options); - span.setAttribute("options", JSON.stringify(options)); - span.end(); - await result; - } - - /** - * Unmutes a channel. - * - * @param {MuteOptions} options - Indicate which direction of he communication to unmute - * @param {string} options.direction - Possible values are 'in', 'out', and 'both' - * @see mute - * @example - * - * async function handler (request, response) { - * ... - * await response.unmute({direction: "out"}); // Will unmute only the "out" direction - * } - */ - async unmute(options?: MuteOptions): Promise { - const span = this.voiceTracer.createSpan("unmute"); - const result = new UnmuteVerb(this.request).run(options); - span.setAttribute("options", JSON.stringify(options)); - span.end(); - await result; - } - - /** - * Answer the communication channel. Before running any other verb you - * must run the anwer command. - * - * @example - * - * async function handler (request, response) { - * await response.answer(); - * ... - * } - */ - async answer(): Promise { - const span = this.voiceTracer.createSpan("answer"); - const result = new AnswerVerb(this.request).run(); - span.end(); - await result; - } - - /** - * Terminates the communication channel. - * - * @example - * - * async function handler (request, response) { - * ... - * await response.hangup(); - * } - */ - async hangup(): Promise { - const span = this.voiceTracer.createSpan("hangup"); - const result = new HangupVerb(this.request).run(); - span.end(); - // Need to close or the span will be lost - this.voiceTracer.close(); - await result; - } - - /** - * Records the current channel and uploads the file to the storage subsystem. - * - * @param {RecordOptions} options - optional parameters to alter the command's normal - * behavior - * @param {number} options.maxDuration - Maximum duration of the recording, in seconds. Use `0` for no limit - * @param {number} options.maxSilence - Maximum duration of silence, in seconds. Use `0` for no limit - * @param {boolean} options.beep - Play beep when recording begins - * @param {string} options.finishOnKey - DTMF input to terminate recording - * @return {Promise} Returns useful information such as the duration of the recording, etc. - * @example - * - * async function handler (request, response) { - * await response.answer();; - * const result = await response.record({finishOnKey: "#"}); - * console.log("recording result: " + JSON.stringify(result)) // recording result: { duration: 30 ...} - * } - */ - async record(options: RecordOptions): Promise { - const span = this.voiceTracer.createSpan("record"); - const result = await new RecordVerb(this.request).run(options); - span.end(); - return result; - } - - // Requests media from Media server - async openMediaPipe() { - const span = this.voiceTracer.createSpan("openMediaPipe"); - const genericVerb = new Verb(this.request); - await startMediaTransfer(genericVerb, this.request.sessionId); - span.end(); - } - - // Requests media stop from Media server - async closeMediaPipe() { - const span = this.voiceTracer.createSpan("stopMediaTransfer"); - const genericVerb = new Verb(this.request); - await stopMediaTransfer(genericVerb, this.request.sessionId); - span.end(); - } -} diff --git a/mods/voice/test/answer.test.ts b/mods/voice/test/answer.test.ts new file mode 100644 index 000000000..c8a2a1832 --- /dev/null +++ b/mods/voice/test/answer.test.ts @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox } from "sinon"; +import sinonChai from "sinon-chai"; +import { getVoiceObject, sessionRef, voiceRequest } from "./helpers"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/verbs/answer", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should answer a call", async function () { + // Arrange + const voice = getVoiceObject(sandbox, "answerResponse"); + + const { Answer } = await import("../src/verbs"); + + const answer = new Answer(voiceRequest, voice); + + // Act + await answer.run(); + + // Assert + expect(voice.removeListener).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledOnce; + expect(voice.write).to.have.been.calledOnce; + expect(voice.write).to.have.been.calledWith({ + answerRequest: { sessionRef } + }); + }); +}); diff --git a/mods/voice/test/asserts.unit.test.ts b/mods/voice/test/asserts.unit.test.ts deleted file mode 100644 index a7f4de609..000000000 --- a/mods/voice/test/asserts.unit.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { - assertsFinishOnKeyIsChar, - assertsValueIsPositive, - assertsValuesIsZeroOrGreater -} from "../src/asserts"; -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); - -describe("@fonoster/voice/asserts", () => { - it("ensures that numDigits and timeout are both positive numbers", () => { - expect(() => assertsValueIsPositive("numDigits", 0)).to.throw( - "the option 'numDigits' must be a number greater than zero" - ); - expect(() => assertsValueIsPositive("numDigits", -1)).to.throw( - "the option 'numDigits' must be a number greater than zero" - ); - expect(() => assertsValueIsPositive("numDigits", 0)).to.not.throw; - expect(() => assertsValuesIsZeroOrGreater("timeout", 0)).to.not.throw; - expect(() => assertsValuesIsZeroOrGreater("timeout", -1)).to.throw( - "the option 'timeout' must be a number equal or greater than zero" - ); - }); - - it("finish on key is on the keypad", () => { - expect(() => assertsFinishOnKeyIsChar("-1")).to.throw( - "the option 'finishOnKey' must be a single char [0-9], *, or #" - ); - expect(() => assertsFinishOnKeyIsChar("01")).to.throw( - "the option 'finishOnKey' must be a single char [0-9], *, or #" - ); - expect(() => assertsFinishOnKeyIsChar("0")).to.not.throw; - }); -}); diff --git a/mods/voice/test/createSession.test.ts b/mods/voice/test/createSession.test.ts new file mode 100644 index 000000000..44fdede8e --- /dev/null +++ b/mods/voice/test/createSession.test.ts @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { StreamEvent } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { sessionRef, voiceRequest } from "./helpers"; +import { VoiceRequest } from "../src/types"; +import { VoiceResponse } from "../src/VoiceResponse"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/createSession", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create a session", async function () { + const callbackResponses = [ + { answerResponse: { sessionRef }, content: "answerResponse" }, + { + playResponse: { sessionRef, playbackRef: "123" }, + content: "playResponse" + }, + { hangupResponse: { sessionRef }, content: "hangupResponse" } + ]; + let cnt = 0; + + // Arrange + const onceStub = sandbox + .stub() + .callsFake((event: StreamEvent, cb: (params) => void) => { + if (event === StreamEvent.DATA) { + cb({ request: voiceRequest }); + } + // We purposely ignore the END event to avoid the process to exit + }); + + const onStub = sandbox + .stub() + .callsFake((event: StreamEvent, cb: (params) => void) => { + cb(callbackResponses[cnt++]); + }); + + const voice = { + removeListener: sandbox.stub(), + on: onStub, + once: onceStub, + write: sandbox.stub(), + end: sandbox.stub() + }; + + const { createSession } = await import("../src/createSession"); + + const handler = async (req: VoiceRequest, res: VoiceResponse) => { + await res.answer(); + await res.play("http://example.com/audio.mp3"); + await res.hangup(); + }; + + // Act + await createSession(handler)(voice); + + // Assert + expect(voice.once).to.have.been.calledWith(StreamEvent.DATA, match.func); + expect(voice.once).to.have.been.calledWith(StreamEvent.END, match.func); + expect(voice.once).to.have.been.calledTwice; + expect(voice.on).to.have.been.calledThrice; + expect(voice.write).to.have.been.calledThrice; + expect(voice.write).to.have.been.calledWith({ + answerRequest: { sessionRef } + }); + expect(voice.write).to.have.been.calledWith({ + playRequest: { sessionRef, url: "http://example.com/audio.mp3" } + }); + expect(voice.write).to.have.been.calledWith({ + hangupRequest: { sessionRef } + }); + }); +}); diff --git a/mods/voice/test/dial.test.ts b/mods/voice/test/dial.test.ts new file mode 100644 index 000000000..1dd3d7ba2 --- /dev/null +++ b/mods/voice/test/dial.test.ts @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { DialRecordDirection, DialRequest, DialStatus } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getVoiceObject, sessionRef, voiceRequest } from "./helpers"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/verbs/dial", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should dial a number", async function () { + // Arrange + const { Dial } = await import("../src/verbs"); + + const voice = getVoiceObject(sandbox, "dialResponse"); + + const dial = new Dial(voiceRequest, voice); + + const dialRequest: DialRequest = { + sessionRef, + destination: "+1234567890", + recordDirection: DialRecordDirection.BOTH + }; + + // Act + await dial.run(dialRequest); + + // Assert + expect(voice.removeListener).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledWith("data", match.func); + expect(voice.write).to.have.been.calledOnce; + expect(voice.write).to.have.been.calledWith({ + dialRequest + }); + }); + + it("should stream the dial status", async function () { + // Arrange + const { VoiceResponse } = await import("../src/VoiceResponse"); + + const onStub = sandbox + .stub() + .onFirstCall() + .callsFake((_, cb) => { + cb({ + dialResponse: { status: DialStatus.PROGRESS }, + content: "dialResponse" + }); + }); + + const voice = { + removeListener: sandbox.stub(), + on: onStub, + once: sandbox.stub(), + write: sandbox.stub(), + end: sandbox.stub() + }; + + const voiceResponse = new VoiceResponse(voiceRequest, voice); + + const dummyCallback = sandbox.stub(); + + // Act + const stream = await voiceResponse.dial("+1234567890"); + + stream.on(dummyCallback); + + voice.on.yield({ dialResponse: { status: DialStatus.PROGRESS } }); + voice.on.yield({ dialResponse: { status: DialStatus.ANSWER } }); + + // Assert + expect(dummyCallback).to.have.been.calledTwice; + expect(dummyCallback).to.have.been.calledWith(DialStatus.PROGRESS); + expect(dummyCallback).to.have.been.calledWith(DialStatus.ANSWER); + expect(dummyCallback).to.not.have.been.calledWith(DialStatus.CANCEL); + }); + + it("should throw an error if the request is invalid", async function () { + // Arrange + const { Dial } = await import("../src/verbs"); + + const voice = getVoiceObject(sandbox, "dialResponse"); + + const dial = new Dial(voiceRequest, voice); + + // Act + const promise = dial.run({ invalid: "data" } as unknown as DialRequest); + + // Assert + // eslint-disable-next-line prettier/prettier + return expect(promise).to.be.rejectedWith("Required at \"destination\""); + }); +}); diff --git a/mods/voice/test/gather.test.ts b/mods/voice/test/gather.test.ts new file mode 100644 index 000000000..c7f749a65 --- /dev/null +++ b/mods/voice/test/gather.test.ts @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { GatherRequest, GatherSource } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getVoiceObject, sessionRef, voiceRequest } from "./helpers"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/verbs/gather", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should gather speech or dtmf", async function () { + // Arrange + const { Gather } = await import("../src/verbs"); + + const voice = getVoiceObject(sandbox, "gatherResponse"); + + const gather = new Gather(voiceRequest, voice); + + const gatherRequest: GatherRequest = { + sessionRef, + timeout: 10, + maxDigits: 1, + source: GatherSource.SPEECH_AND_DTMF + }; + + // Act + await gather.run(gatherRequest); + + // Assert + expect(voice.removeListener).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledWith("data", match.func); + expect(voice.write).to.have.been.calledOnce; + expect(voice.write).to.have.been.calledWith({ + gatherRequest + }); + }); +}); diff --git a/mods/voice/test/gather.unit.test.ts b/mods/voice/test/gather.unit.test.ts deleted file mode 100644 index 262dec05b..000000000 --- a/mods/voice/test/gather.unit.test.ts +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import GatherVerb from "../src/gather/gather"; -import { Verb } from "../src/verb"; -import { assertsHasNumDigitsOrTimeout } from "../src/gather/asserts"; -import { voiceRequest } from "./voice_request"; -import PubSub from "pubsub-js"; -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/voice/gather", () => { - afterEach(() => sandbox.restore()); - - it.skip("waits for dtmf send from phone", (done) => { - sandbox.stub(Verb.prototype, "post").returns(); - const gather = new GatherVerb(voiceRequest); - - gather - .run({ - numDigits: 3 - }) - .then((digits) => { - expect(digits).to.be.deep.equal("122"); - done(); - }) - .catch((e) => done(e)); - - setTimeout(() => { - PubSub.publish("DtmfReceived", { type: "DtmfReceived", data: "1" }); - PubSub.publish("DtmfReceived", { type: "DtmfReceived", data: "2" }); - PubSub.publish("DtmfReceived", { type: "DtmfReceived", data: "2" }); - }, 1000); - }); - - it.skip("resolves when receives a finishOnChar", (done) => { - sandbox.stub(Verb.prototype, "post").returns(); - const gather = new GatherVerb(voiceRequest); - - gather - .run({ - numDigits: 3, - finishOnKey: "#" - }) - .then((digits) => { - expect(digits).to.be.deep.equal("12"); - done(); - }) - .catch((e) => done(e)); - - setTimeout(() => { - PubSub.publish("DtmfReceived", { type: "DtmfReceived", data: "1" }); - PubSub.publish("DtmfReceived", { type: "DtmfReceived", data: "2" }); - PubSub.publish("DtmfReceived", { type: "DtmfReceived", data: "#" }); - }, 500); - }); - - it.skip("only returns digits before timeout", (done) => { - sandbox.stub(Verb.prototype, "post").returns(); - const gather = new GatherVerb(voiceRequest); - - gather - .run({ - numDigits: 3, - timeout: 400 - }) - .then((digits) => { - expect(digits).to.be.deep.equal("12"); - done(); - }) - .catch((e) => done(e)); - - setTimeout(() => { - PubSub.publish("DtmfReceived", { type: "DtmfReceived", data: "1" }); - PubSub.publish("DtmfReceived", { type: "DtmfReceived", data: "2" }); - // Here we simulate taking a long time to send the last digit - }, 200); - }); - - context("assert functions", () => { - it.skip("asserts that options has either a numDigits or a timeout back stop", () => { - expect(() => assertsHasNumDigitsOrTimeout({ numDigits: 3 })).to.not.throw; - expect(() => assertsHasNumDigitsOrTimeout({})).to.throw( - "you must provide either 'numDigits' or 'timeout' option" - ); - }); - }); -}); diff --git a/mods/voice/test/helpers.ts b/mods/voice/test/helpers.ts new file mode 100644 index 000000000..e94ba9ef3 --- /dev/null +++ b/mods/voice/test/helpers.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { SinonSandbox } from "sinon"; +import { CallDirection } from "@fonoster/types"; +import { VoiceRequest } from "../src"; + +const sessionRef = "848b8803-7106-48b7-b820-515b05c40d6b"; + +const voiceRequest: VoiceRequest = { + appRef: "3861b08b-1602-45e4-b523-dc3036ba85e7", + sessionRef, + accessKeyId: "WO00000000000000000000000000000000", + endpoint: "localhost:50061", + ingressNumber: "+1234567890", + callerName: "John Doe", + callerNumber: "+14345551234", + sessionToken: "jwt-token", + callDirection: CallDirection.FROM_PSTN, + metadata: {} +}; + +function getVoiceObject(sandbox: SinonSandbox, resultContent: string) { + const onStub = sandbox.stub().callsFake((_, cb) => { + cb({ content: resultContent }); + }); + + return { + removeListener: sandbox.stub(), + on: onStub, + once: onStub, + write: sandbox.stub(), + end: sandbox.stub() + }; +} + +export { getVoiceObject, sessionRef, voiceRequest }; diff --git a/mods/voice/test/mute.test.ts b/mods/voice/test/mute.test.ts new file mode 100644 index 000000000..81823e4f5 --- /dev/null +++ b/mods/voice/test/mute.test.ts @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { MuteDirection, MuteRequest, StreamEvent } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getVoiceObject, sessionRef, voiceRequest } from "./helpers"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/verbs/mute", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should mute a channel", async function () { + // Arrange + const { Mute } = await import("../src/verbs"); + + const voice = getVoiceObject(sandbox, "muteResponse"); + + const mute = new Mute(voiceRequest, voice); + + const muteRequest: MuteRequest = { + sessionRef, + direction: MuteDirection.IN + }; + + // Act + await mute.run(muteRequest); + + // Assert + expect(voice.removeListener).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledWith(StreamEvent.DATA, match.func); + expect(voice.write).to.have.been.calledOnce; + expect(voice.write).to.have.been.calledWith({ + muteRequest + }); + }); + + it("should throw an error if the request is invalid", async function () { + // Arrange + const { Mute } = await import("../src/verbs"); + + const voice = getVoiceObject(sandbox, "muteResponse"); + + const mute = new Mute(voiceRequest, voice); + + // Act + const promise = mute.run({ direction: "south" } as unknown as MuteRequest); + + // Assert + // eslint-disable-next-line prettier/prettier + return expect(promise).to.be.rejectedWith("Invalid enum value. Expected 'IN' | 'OUT' | 'BOTH', received 'south' at \"direction\""); + }); +}); diff --git a/mods/voice/test/play.test.ts b/mods/voice/test/play.test.ts new file mode 100644 index 000000000..1103b69a4 --- /dev/null +++ b/mods/voice/test/play.test.ts @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { PlayRequest } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getVoiceObject, sessionRef, voiceRequest } from "./helpers"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/verbs/play", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should play an audio", async function () { + // Arrange + const { Play } = await import("../src/verbs"); + + const voice = getVoiceObject(sandbox, "playResponse"); + + const play = new Play(voiceRequest, voice); + + const playRequest: PlayRequest = { + sessionRef, + url: "http://example.com/audio.mp3" + }; + + // Act + await play.run(playRequest); + + // Assert + expect(voice.removeListener).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledWith("data", match.func); + expect(voice.write).to.have.been.calledOnce; + expect(voice.write).to.have.been.calledWith({ + playRequest + }); + }); + + it("should throw an error if the request is invalid", async function () { + // Arrange + const { Play } = await import("../src/verbs"); + + const voice = getVoiceObject(sandbox, "playResponse"); + + const play = new Play(voiceRequest, voice); + + // Act + const promise = play.run({ invalid: "data" } as unknown as PlayRequest); + + // Assert + // eslint-disable-next-line prettier/prettier + return expect(promise).to.be.rejectedWith("Required at \"url\""); + }); +}); diff --git a/mods/voice/test/play.unit.test.ts b/mods/voice/test/play.unit.test.ts deleted file mode 100644 index 9f1ddf377..000000000 --- a/mods/voice/test/play.unit.test.ts +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import PlayVerb from "../src/play/play"; -import { Verb } from "../src/verb"; -import { voiceRequest } from "./voice_request"; -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); -import PubSub from "pubsub-js"; - -describe("@fonoster/voice/play", () => { - afterEach(() => sandbox.restore()); - - it.skip("play a sound on a remote media server", (done) => { - sandbox.stub(Verb.prototype, "post").returns(); - const play = new PlayVerb(voiceRequest); - play - .run("sounds:hello-world", {}) - .then((event) => { - expect(event).to.be.deep.equal({ type: "PlaybackFinished", data: "1" }); - done(); - }) - .catch((e) => done(e)); - - setTimeout(() => { - PubSub.publish("PlaybackFinished", { - type: "PlaybackFinished", - data: "1" - }); - }, 500); - }); -}); diff --git a/mods/voice/test/playDtmf.test.ts b/mods/voice/test/playDtmf.test.ts new file mode 100644 index 000000000..acfbda8a1 --- /dev/null +++ b/mods/voice/test/playDtmf.test.ts @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { PlayDtmfRequest } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getVoiceObject, sessionRef, voiceRequest } from "./helpers"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/verbs/playDtmf", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should play a series of dtmf digits", async function () { + // Arrange + const { PlayDtmf } = await import("../src/verbs/PlayDtmf"); + + const voice = getVoiceObject(sandbox, "playDtmfResponse"); + + const playDtmf = new PlayDtmf(voiceRequest, voice); + + const playDtmfRequest: PlayDtmfRequest = { + sessionRef, + digits: "123" + }; + + // Act + await playDtmf.run(playDtmfRequest); + + // Assert + expect(voice.removeListener).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledWith("data", match.func); + expect(voice.write).to.have.been.calledOnce; + expect(voice.write).to.have.been.calledWith({ + playDtmfRequest + }); + }); + + it("should throw an error if the request is invalid", async function () { + // Arrange + const { PlayDtmf } = await import("../src/verbs/PlayDtmf"); + + const voice = getVoiceObject(sandbox, "playDtmfResponse"); + + const playDtmf = new PlayDtmf(voiceRequest, voice); + + // Act + const promise = playDtmf.run({ + invalid: "data" + } as unknown as PlayDtmfRequest); + + // Assert + // eslint-disable-next-line prettier/prettier + return expect(promise).to.be.rejectedWith("Required at \"digits\""); + }); +}); diff --git a/mods/voice/test/playbackControl.test.ts b/mods/voice/test/playbackControl.test.ts new file mode 100644 index 000000000..70f8c7f6b --- /dev/null +++ b/mods/voice/test/playbackControl.test.ts @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + PlaybackControlAction, + PlaybackControlRequest +} from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getVoiceObject, sessionRef, voiceRequest } from "./helpers"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/verbs/playbackControl", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should control the media of a call", async function () { + // Arrange + const { PlaybackControl } = await import("../src/verbs"); + + const voice = getVoiceObject(sandbox, "playbackControlResponse"); + + const playbackControl = new PlaybackControl(voiceRequest, voice); + + const playbackControlRequest: PlaybackControlRequest = { + sessionRef, + playbackRef: "848b8803-7106-48b7-b820-515b05c40d6b", + action: PlaybackControlAction.STOP + }; + + // Act + await playbackControl.run(playbackControlRequest); + + // Assert + expect(voice.removeListener).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledWith("data", match.func); + expect(voice.write).to.have.been.calledOnce; + expect(voice.write).to.have.been.calledWith({ + playbackControlRequest + }); + }); + + it("should throw an error if the request is invalid", async function () { + // Arrange + const { PlaybackControl } = await import("../src/verbs"); + + const voice = getVoiceObject(sandbox, "playbackControlResponse"); + + const playbackControl = new PlaybackControl(voiceRequest, voice); + + // Act + const promise = playbackControl.run({ + invalid: "data" + } as unknown as PlaybackControlRequest); + + // Assert + // eslint-disable-next-line prettier/prettier + return expect(promise).to.be.rejectedWith("Required at \"playbackRef\"; Invalid playback control action at \"action\""); + }); +}); diff --git a/mods/voice/test/record.test.ts b/mods/voice/test/record.test.ts new file mode 100644 index 000000000..ac71bae57 --- /dev/null +++ b/mods/voice/test/record.test.ts @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { RecordRequest } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getVoiceObject, sessionRef, voiceRequest } from "./helpers"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/verbs/record", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should record a call", async function () { + // Arrange + const { Record } = await import("../src/verbs"); + + const voice = getVoiceObject(sandbox, "recordResponse"); + + const record = new Record(voiceRequest, voice); + + const recordRequest: RecordRequest = { + sessionRef, + maxDuration: 10, + maxSilence: 5, + beep: true + }; + + // Act + await record.run(recordRequest); + + // Assert + expect(voice.removeListener).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledWith("data", match.func); + expect(voice.write).to.have.been.calledOnce; + expect(voice.write).to.have.been.calledWith({ + recordRequest + }); + }); +}); diff --git a/mods/voice/test/record.unit.test.ts b/mods/voice/test/record.unit.test.ts deleted file mode 100644 index 8be6e8127..000000000 --- a/mods/voice/test/record.unit.test.ts +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { Verb } from "../src/verb"; -import RecordVerb from "../src/record/record"; -import { voiceRequest } from "./voice_request"; -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); -import PubSub from "pubsub-js"; - -describe("@fonoster/voice/record", () => { - afterEach(() => sandbox.restore()); - - it.skip("records a channel and uploads the file to the storage subsystem", (done) => { - sandbox.stub(Verb.prototype, "post").returns(); - const record = new RecordVerb(voiceRequest); - record - .run() - .then((event) => { - expect(event).to.be.deep.equal({ duration: 30 }); - done(); - }) - .catch((e) => done(e)); - - setTimeout(() => { - PubSub.publish("RecordingFinished", { - type: "RecordingFinished", - data: { duration: 30 } - }); - }, 500); - }); -}); diff --git a/mods/voice/test/say.test.ts b/mods/voice/test/say.test.ts new file mode 100644 index 000000000..877dbf9ac --- /dev/null +++ b/mods/voice/test/say.test.ts @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { SayRequest } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { struct } from "pb-util"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getVoiceObject, sessionRef, voiceRequest } from "./helpers"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/verbs/play", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should play an audio", async function () { + // Arrange + const { Say } = await import("../src/verbs"); + + const voice = getVoiceObject(sandbox, "sayResponse"); + + const say = new Say(voiceRequest, voice); + + const sayRequest: SayRequest = { + sessionRef, + text: "Hello World", + playbackRef: "848b8803-7106-48b7-b820-515b05c40d6b", + options: struct.encode({ + voice: "en-US-Wavenet-D", + pitch: 100, + speakingRate: 1 + }) + }; + + // Act + await say.run(sayRequest); + + // Assert + expect(voice.removeListener).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledWith("data", match.func); + expect(voice.write).to.have.been.calledOnce; + expect(voice.write).to.have.been.calledWith({ + sayRequest + }); + }); + + it("should throw an error if the request is invalid", async function () { + // Arrange + const { Say } = await import("../src/verbs"); + + const voice = getVoiceObject(sandbox, "sayResponse"); + + const say = new Say(voiceRequest, voice); + + // Act + const promise = say.run({ invalid: "data" } as unknown as SayRequest); + + // Assert + // eslint-disable-next-line prettier/prettier + return expect(promise).to.be.rejectedWith("Required at \"text\""); + }); +}); diff --git a/mods/voice/test/sgather.test.ts b/mods/voice/test/sgather.test.ts new file mode 100644 index 000000000..93cc5131c --- /dev/null +++ b/mods/voice/test/sgather.test.ts @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { StartStreamGatherRequest, StreamGatherSource } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getVoiceObject, sessionRef, voiceRequest } from "./helpers"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/verbs/SGather", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create an transcription stream", async function () { + // Arrange + const { StartStreamGather } = await import("../src/verbs/StreamGather"); + + const voice = getVoiceObject(sandbox, "startStreamGatherResponse"); + + const startStreamGather = new StartStreamGather(voiceRequest, voice); + + const startStreamGatherRequest: StartStreamGatherRequest = { + sessionRef, + source: StreamGatherSource.SPEECH + }; + + // Act + await startStreamGather.run(startStreamGatherRequest); + + // Assert + expect(voice.removeListener).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledWith("data", match.func); + expect(voice.write).to.have.been.calledOnce; + expect(voice.write).to.have.been.calledWith({ + startStreamGatherRequest + }); + }); + + it("should stream transcriptions from the server", async function () { + // Arrange + const { VoiceResponse } = await import("../src/VoiceResponse"); + + const onStub = sandbox + .stub() + .onFirstCall() + .callsFake((_, cb) => { + cb({ content: "startStreamGatherResponse" }); + }); + + const voice = { + removeListener: sandbox.stub(), + on: onStub, + once: sandbox.stub(), + write: sandbox.stub(), + end: sandbox.stub() + }; + const voiceResponse = new VoiceResponse(voiceRequest, voice); + + const dummyCallback = sandbox.stub(); + + // Act + const sGather = await voiceResponse.sgather({ + source: StreamGatherSource.SPEECH + }); + + // This will be called twice + sGather.onPayload(dummyCallback); + + // First payload in + voice.on.yield({ + streamGatherPayload: { + data: { speech: "Hi there!" } + } + }); + + // Second payload in + voice.on.yield({ + streamGatherPayload: { + data: { speech: "How are you?" } + } + }); + + // Assert + expect(dummyCallback).to.have.been.calledTwice; + + expect(dummyCallback).to.have.been.calledWith({ + data: { speech: "Hi there!" } + }); + + expect(dummyCallback).to.have.been.calledWith({ + data: { speech: "How are you?" } + }); + }); +}); diff --git a/mods/voice/test/stream.test.ts b/mods/voice/test/stream.test.ts new file mode 100644 index 000000000..9b4a87199 --- /dev/null +++ b/mods/voice/test/stream.test.ts @@ -0,0 +1,161 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + StartStreamRequest, + StreamAudioFormat, + StreamDirection, + StreamMessageType +} from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getVoiceObject, sessionRef, voiceRequest } from "./helpers"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/verbs/stream", function () { + afterEach(function () { + return sandbox.restore(); + }); + + it("should create an audio stream", async function () { + // Arrange + const { StartStream } = await import("../src/verbs/Stream"); + + const voice = getVoiceObject(sandbox, "startStreamResponse"); + + const startStream = new StartStream(voiceRequest, voice); + + const startStreamRequest: StartStreamRequest = { + sessionRef, + direction: StreamDirection.IN, + format: StreamAudioFormat.WAV + }; + + // Act + await startStream.run(startStreamRequest); + + // Assert + expect(voice.removeListener).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledWith("data", match.func); + expect(voice.write).to.have.been.calledOnce; + expect(voice.write).to.have.been.calledWith({ + startStreamRequest + }); + }); + + it("should allow streaming audio in and out", async function () { + // Arrange + const { VoiceResponse } = await import("../src/VoiceResponse"); + + const onStub = sandbox + .stub() + .onFirstCall() + .callsFake((_, cb) => { + cb({ content: "startStreamResponse" }); + }); + + const voice = { + removeListener: sandbox.stub(), + on: onStub, + once: sandbox.stub(), + write: sandbox.stub(), + end: sandbox.stub() + }; + const voiceResponse = new VoiceResponse(voiceRequest, voice); + + const dummyCallback = sandbox.stub(); + + // Act + const stream = await voiceResponse.stream({ + direction: StreamDirection.BOTH, + format: StreamAudioFormat.WAV + }); + + // This will be called twice + stream.onPayload(dummyCallback); + + // First chunk in + stream.write({ + sessionRef, + streamRef: "streamRef", + format: StreamAudioFormat.WAV, + type: StreamMessageType.AUDIO_IN, + data: Buffer.from("data") + }); + + // First chunk out + voice.on.yield({ + streamPayload: { + type: StreamMessageType.AUDIO_OUT, + data: Buffer.from("data") + } + }); + + // Second chunk in + stream.write({ + sessionRef, + streamRef: "streamRef", + format: StreamAudioFormat.WAV, + type: StreamMessageType.AUDIO_IN, + data: Buffer.from("data") + }); + + // Second chunk out + voice.on.yield({ + streamPayload: { + type: StreamMessageType.AUDIO_OUT, + data: Buffer.from("data") + } + }); + + // Assert + expect(dummyCallback).to.have.been.calledTwice; + + expect(dummyCallback).to.have.been.calledWith({ + type: StreamMessageType.AUDIO_OUT, + data: Buffer.from("data") + }); + + expect(voice.write).to.have.been.calledThrice; + + expect(voice.write).to.have.been.calledWith({ + startStreamRequest: { + sessionRef, + direction: StreamDirection.BOTH, + format: StreamAudioFormat.WAV + } + }); + + expect(voice.write).to.have.been.calledWith({ + streamPayload: { + sessionRef, + streamRef: "streamRef", + format: StreamAudioFormat.WAV, + type: StreamMessageType.AUDIO_IN, + data: Buffer.from("data") + } + }); + }); +}); diff --git a/mods/voice/test/unmute.test.ts b/mods/voice/test/unmute.test.ts new file mode 100644 index 000000000..a07d8e61d --- /dev/null +++ b/mods/voice/test/unmute.test.ts @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { MuteDirection } from "@fonoster/common"; +import * as chai from "chai"; +import { expect } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { createSandbox, match } from "sinon"; +import sinonChai from "sinon-chai"; +import { getVoiceObject, sessionRef, voiceRequest } from "./helpers"; + +chai.use(chaiAsPromised); +chai.use(sinonChai); +const sandbox = createSandbox(); + +describe("@voice/verbs/unmute", function () { + afterEach(function () { + return sandbox.restore(); + }); + + // Only test neeed as it shares everything with Mute + it("should unmute a channel", async function () { + // Arrange + const { Unmute } = await import("../src/verbs/Unmute"); + + const voice = getVoiceObject(sandbox, "unmuteResponse"); + + const unmute = new Unmute(voiceRequest, voice); + + // Act + await unmute.run({ sessionRef, direction: MuteDirection.IN }); + + // Assert + expect(voice.removeListener).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledOnce; + expect(voice.on).to.have.been.calledWith("data", match.func); + expect(voice.write).to.have.been.calledOnce; + expect(voice.write).to.have.been.calledWith({ + unmuteRequest: { sessionRef, direction: MuteDirection.IN } + }); + }); +}); diff --git a/mods/voice/test/utils.unit.test.ts b/mods/voice/test/utils.unit.test.ts deleted file mode 100644 index abc583775..000000000 --- a/mods/voice/test/utils.unit.test.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import chai from "chai"; -import sinon from "sinon"; -import sinonChai from "sinon-chai"; -import chaiAsPromised from "chai-as-promised"; -import { objectToQString } from "../src/utils"; -const expect = chai.expect; -chai.use(sinonChai); -chai.use(chaiAsPromised); -const sandbox = sinon.createSandbox(); - -describe("@fonoster/voice/utils", () => { - it("will convert an object to a query string", () => { - const testObject = { - optionA: "A", - optionB: "B", - optionC: undefined - }; - expect(objectToQString(testObject)).to.be.equal("optionA=A&optionB=B"); - expect(objectToQString({ sharp: "#", n: "121G" })).to.be.equal( - "sharp=%23&n=121G" - ); - expect(objectToQString()).to.be.equal(""); - }); -}); diff --git a/mods/voice/test/voice_request.ts b/mods/voice/test/voice_request.ts deleted file mode 100644 index 0940af39f..000000000 --- a/mods/voice/test/voice_request.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { VoiceRequest } from "../src/types"; - -export const voiceRequest: VoiceRequest = { - accessKeyId: "603693c0afaa1a080000000c", - sessionToken: - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmb25vcyIsInJv...", - sessionId: "1622916892.122", - dialbackEnpoint: "http://localhost:8088", - number: "17853178070", - callerId: "John Doe", - callerNumber: "19103178070", - selfEndpoint: "http://localhost:3000/voiceapp" -}; diff --git a/mods/voice/tsconfig.json b/mods/voice/tsconfig.json index 06796eaeb..6ca2ecad5 100644 --- a/mods/voice/tsconfig.json +++ b/mods/voice/tsconfig.json @@ -1,15 +1,16 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "outDir": "dist", + "rootDir": "src" }, "references": [ - { "path": "../tts" }, - { "path": "../logger" }, - { "path": "../events" }, - { "path": "../common" }, - { "path": "../googleasr" } + { + "path": "../logger", + }, + { + "path": "../common", + } ], "exclude": ["node_modules", "dist", "test"] } diff --git a/mods/websdk/.lerna-changed-buster-192 b/mods/websdk/.lerna-changed-buster-192 deleted file mode 100644 index e69de29bb..000000000 diff --git a/mods/websdk/.npmignore b/mods/websdk/.npmignore deleted file mode 100644 index 79b216f22..000000000 --- a/mods/websdk/.npmignore +++ /dev/null @@ -1,8 +0,0 @@ -node_modules -.nyc_output -coverage -src -test -*.log -generated -*.ts \ No newline at end of file diff --git a/mods/websdk/.scripts/download_swagger_file.sh b/mods/websdk/.scripts/download_swagger_file.sh deleted file mode 100755 index f53179dcf..000000000 --- a/mods/websdk/.scripts/download_swagger_file.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env sh - -npx wget https://raw.githubusercontent.com/fonoster/grpc-gateway/main/swagger.json -O swagger.json \ No newline at end of file diff --git a/mods/websdk/babel.config.json b/mods/websdk/babel.config.json deleted file mode 100644 index 910557898..000000000 --- a/mods/websdk/babel.config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "sourceType": "unambiguous", - "plugins": ["@babel/plugin-transform-runtime"], - "presets": ["@babel/preset-env"] -} diff --git a/mods/websdk/index.html b/mods/websdk/index.html deleted file mode 100644 index bcaafcfcc..000000000 --- a/mods/websdk/index.html +++ /dev/null @@ -1,19 +0,0 @@ - -WebSDK Test - - diff --git a/mods/websdk/openapitools.json b/mods/websdk/openapitools.json deleted file mode 100644 index 3b40e47a4..000000000 --- a/mods/websdk/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "5.3.0" - } -} diff --git a/mods/websdk/package-lock.json b/mods/websdk/package-lock.json deleted file mode 100644 index f1497d9f1..000000000 --- a/mods/websdk/package-lock.json +++ /dev/null @@ -1,21795 +0,0 @@ -{ - "name": "@fonoster/websdk", - "version": "0.3.22", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fonoster/websdk", - "version": "0.3.22", - "license": "MIT", - "devDependencies": { - "@babel/plugin-transform-runtime": "^7.15.8", - "@babel/preset-env": "^7.15.8", - "@fonoster/agents": "^0.3.22", - "@fonoster/auth": "^0.3.22", - "@fonoster/callmanager": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/domains": "^0.3.22", - "@fonoster/funcs": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@fonoster/numbers": "^0.3.22", - "@fonoster/projects": "^0.3.22", - "@fonoster/providers": "^0.3.22", - "@fonoster/secrets": "^0.3.22", - "@fonoster/storage": "^0.3.22", - "@fonoster/users": "^0.3.22", - "@openapitools/openapi-generator-cli": "^2.4.13", - "babel": "^6.23.0", - "babel-core": "^6.26.3", - "babel-loader": "^8.2.3", - "http-server": "^14.1.0", - "rollup": "2.56.3", - "tslib": "2.3.1", - "webpack": "^5.60.0", - "webpack-cli": "^4.9.1" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.1.tgz", - "integrity": "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz", - "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", - "dev": true, - "peer": true, - "dependencies": { - "@ampproject/remapping": "^2.0.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.0", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", - "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", - "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", - "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", - "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", - "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", - "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.14.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", - "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", - "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.0", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.0", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@balena/dockerignore": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", - "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", - "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@fonoster/agents": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/agents/-/agents-0.3.21.tgz", - "integrity": "sha512-0KXFDok2GqCyeB1gsrPv8Pmc9XL3zlqXGcs55qrOWHoMmN2hZJ9SwbE2cA6rqhIpSrdfS7PiMhHexjbVwlI40Q==", - "dev": true, - "dependencies": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_agents": "dist/service/healthcheck.js", - "run_agents": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/apps": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/apps/-/apps-0.3.21.tgz", - "integrity": "sha512-clxZZIHZ44tevAS+4bcM9esdyNzec4R4hIIMDPHsQC1R9un8MMZS6QEVsjTb5HJVuZfSffgqCzJuahu+qVQk3w==", - "dev": true, - "dependencies": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_apps": "dist/service/healthcheck.js", - "run_apps": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/auth": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@fonoster/auth/-/auth-0.3.20.tgz", - "integrity": "sha512-azS5T3DNDPPS9Ki4Dh5W8kFr9lJtyw8gnG2nJLkTwbvh6Gycsf/QrH/kXmPQP02/x0ChYPz2t1Oqdc/XtT04KA==", - "dev": true, - "dependencies": { - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - }, - "bin": { - "healthcheck_auth": "dist/service/healthcheck.js", - "run_auth": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/callmanager": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/callmanager/-/callmanager-0.3.21.tgz", - "integrity": "sha512-FQRD6j0MqzjOsV0Mn7OD9cAbXWz6VlWQQU1Glv8b902Yi3XD8DgTxZ9QIFNn7qA1+8d2TA+01tRm+fdur5USnw==", - "dev": true, - "dependencies": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "ari-client": "^2.2.0", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - }, - "bin": { - "healthcheck_callmanager": "dist/service/healthcheck.js", - "run_callmanager": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/certs": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@fonoster/certs/-/certs-0.3.20.tgz", - "integrity": "sha512-Q0X12dUc5zdtTilIpoFOM8iHsDzFwe+OQ1bW4DW0UxAo7GTRkEFgUL4PtoPPK66SZ18v28ANcavzeGe1ov5DDQ==", - "dev": true, - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "node_modules/@fonoster/common": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@fonoster/common/-/common-0.3.20.tgz", - "integrity": "sha512-DJge4mGHnn6Pn1oaeIrrSfp218xJNvI/FCtABjz3SuimQS64GgZinrKJ42t0nkT84hc8iYHDzKTilbHOnlyGWw==", - "dev": true, - "dependencies": { - "@fonoster/certs": "^0.3.20", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "node_modules/@fonoster/core": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/core/-/core-0.3.21.tgz", - "integrity": "sha512-zT5FW1MlvcpcEUt9mYThVcWS1DRfxYidZuVSPrKGnZ68Yq06XKhRzHFewM5xK4uMgkL+25fZIGABzeJYFWNeAA==", - "dev": true, - "dependencies": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - } - }, - "node_modules/@fonoster/domains": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/domains/-/domains-0.3.21.tgz", - "integrity": "sha512-r99f1UciKoQa/2/V+ZGz+wYMiraT+Pfhkeku9/srCSRtnfD8M5J6DP6AvVtrvhtebP1gNbcamdDp+07hxcqDEQ==", - "dev": true, - "dependencies": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-domain": "^0.1.2" - }, - "bin": { - "healthcheck_domains": "dist/service/healthcheck.js", - "run_domains": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/errors": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@fonoster/errors/-/errors-0.3.20.tgz", - "integrity": "sha512-au5Q8eGidZ0cmt+7ovG3XrVMvvfKbi6vWAsyez2Z2GqSRT9cxVRJD7Z4G39GN1xPdQ7QYW2/JH3qtLQbBRDXyw==", - "dev": true - }, - "node_modules/@fonoster/funcs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/funcs/-/funcs-0.3.21.tgz", - "integrity": "sha512-IwDDyl/u/8tov/SxcCBp4Gw8SveRqzKGH6lBA2lTxIzYlMF34v7NJz8VRnf6augb+DcZ+EAN0HSJuZAOkyL2Ag==", - "dev": true, - "dependencies": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@fonoster/storage": "^0.3.21", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "btoa": "^1.2.1", - "container-image-builder": "^3.2.0", - "cron-validate": "^1.4.3", - "cross-spawn": "^7.0.3", - "dockerode": "^3.3.0", - "fs-extra": "^8.1.0", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "ndjson": "^2.0.0", - "openfaas-client": "^0.0.2", - "tar": "^6.1.0", - "walk": "^2.3.14" - }, - "bin": { - "healthcheck_funcs": "dist/service/healthcheck.js", - "run_funcs": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/grpc-health-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@fonoster/grpc-health-check/-/grpc-health-check-3.1.1.tgz", - "integrity": "sha512-JjXI4i2g2FF7QgHcAgy18RISbeRnqQ+U9QdPeYmE5TijaK7JaFwV/mOK7WgIIxQNqNsR/ozoap5Q46T0qpukeQ==", - "dev": true, - "dependencies": { - "google-protobuf": "^3.21.0", - "grpc-boom": "^3.0.11" - }, - "peerDependencies": { - "@fonoster/logger": "^0.3.16-alpha.2", - "@grpc/grpc-js": "^1.6.10", - "@grpc/proto-loader": "^0.7.2" - } - }, - "node_modules/@fonoster/logger": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@fonoster/logger/-/logger-0.3.20.tgz", - "integrity": "sha512-Qdhy3KJz2RdpcHfmvMDlkiHA7ewPF2D4dtmasnbujxlAOME8t/6PObETjSGoJeH1vEvZ6Ar97msZBC11tnXiwA==", - "dev": true, - "dependencies": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - } - }, - "node_modules/@fonoster/numbers": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/numbers/-/numbers-0.3.21.tgz", - "integrity": "sha512-1oQSOsIsmJQr5j4AJydA9sZRyWUIBRVbgpEpX6b5SYj6dtHfIwmsnmjs0qRp+Rgmi4E53rLblaw6pn6ha6qTzQ==", - "dev": true, - "dependencies": { - "@fonoster/apps": "^0.3.21", - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "phone": "^3.1.31" - }, - "bin": { - "healthcheck_numbers": "dist/service/healthcheck.js", - "run_numbers": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/numbers/node_modules/phone": { - "version": "3.1.32", - "resolved": "https://registry.npmjs.org/phone/-/phone-3.1.32.tgz", - "integrity": "sha512-kT89uAqNr8sEXjv/2NDzp2Kpb/BQ5bTzHMLZFwUnqDnDBaObcO3qLzQ030tDlhxZrFVUd+EIq8pie5/L8SNVrQ==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@fonoster/projects": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/projects/-/projects-0.3.21.tgz", - "integrity": "sha512-BTFShBD0QT3+ME8m7lJZN7hkhkZ6iNhh9rrTlXmXO5QkYiWwJvFwaU/v6ytYcpmYYoVFb0CoQhjFinT6y4NqSg==", - "dev": true, - "dependencies": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_projects": "dist/service/healthcheck.js", - "run_projects": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/providers": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/providers/-/providers-0.3.21.tgz", - "integrity": "sha512-g8pySzJwmb3J+2ftRtDZlNy00Zs6m6HFX1fH/oSLFtGHje/1UryeWK0QW2uLpr65gaqJZ+kL0V+stPs/ZPMJbw==", - "dev": true, - "dependencies": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-host": "^1.0.1" - }, - "bin": { - "healthcheck_providers": "dist/service/healthcheck.js", - "run_providers": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/secrets": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/secrets/-/secrets-0.3.21.tgz", - "integrity": "sha512-YBR/NYQRwd6YLnRQdgBUU5qGcZZ/Jf9MTyjRMVAz0Mv3gNjrK7PAUA6l2ypJu9gvcIRTcJCvsE5hGSRRDMPMRA==", - "dev": true, - "dependencies": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "grpc-promise": "^1.4.0", - "node-vault": "^0.9.21" - }, - "bin": { - "healthcheck_secrets": "dist/service/healthcheck.js", - "init": "dist/utils/init.js", - "run_secrets": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/storage": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/storage/-/storage-0.3.21.tgz", - "integrity": "sha512-9mOSGyjEuDZ5pQ3ay5IWnRQGD0YoDMpiBPMD0qPLvB5hzj7gEey6ymPAIsHXgX97RwxL4ddftqAybCJ2a1JG8A==", - "dev": true, - "dependencies": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "minio": "^7.0.18", - "sync": "^0.2.5", - "tar": "^6.1.0", - "walk": "^2.3.14" - }, - "bin": { - "healthcheck_storage": "dist/service/healthcheck.js", - "run_storage": "dist/service/runner.js" - } - }, - "node_modules/@fonoster/users": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/users/-/users-0.3.21.tgz", - "integrity": "sha512-IMoCFemhEPEGCD+1o7atlzo8M/LHM+03eLCFogZEpHC1u4NnKI8ahtW0g0u9xx2i1xYBzIdPuiuhGQbuwClbtA==", - "dev": true, - "dependencies": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bcrypt": "^5.0.1", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - }, - "bin": { - "healthcheck_users": "dist/service/healthcheck.js", - "run_users": "dist/service/runner.js" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.1.tgz", - "integrity": "sha512-mdqYADWl/9Kb75XLstt6pvBnS1DpxSDFRKrbadkY1ymUd29hq49nP6tLcL7a7qLydgqFCpjNwa2RsyrqB3MsXA==", - "dev": true, - "dependencies": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.4.tgz", - "integrity": "sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w==", - "dev": true, - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", - "dev": true, - "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@mapbox/node-pre-gyp/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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@nestjs/common": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-8.2.6.tgz", - "integrity": "sha512-flLYSXunxcKyjbYddrhwbc49uE705MxBt85rS3mHyhDbAIPSGGeZEqME44YyAzCg1NTfJSNe7ztmOce5kNkb9A==", - "dev": true, - "dependencies": { - "axios": "0.24.0", - "iterare": "1.2.1", - "tslib": "2.3.1", - "uuid": "8.3.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" - }, - "peerDependencies": { - "cache-manager": "*", - "class-transformer": "*", - "class-validator": "*", - "reflect-metadata": "^0.1.12", - "rxjs": "^7.1.0" - }, - "peerDependenciesMeta": { - "cache-manager": { - "optional": true - }, - "class-transformer": { - "optional": true - }, - "class-validator": { - "optional": true - } - } - }, - "node_modules/@nestjs/core": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-8.2.6.tgz", - "integrity": "sha512-NwPcEIMmCsucs3QaDlQvkoU1FlFM2wm/WjaqLQhkSoIEmAR1gNtBo88f5io5cpMwCo1k5xYhqGlaSl6TfngwWQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@nuxtjs/opencollective": "0.3.2", - "fast-safe-stringify": "2.1.1", - "iterare": "1.2.1", - "object-hash": "2.2.0", - "path-to-regexp": "3.2.0", - "tslib": "2.3.1", - "uuid": "8.3.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" - }, - "peerDependencies": { - "@nestjs/common": "^8.0.0", - "@nestjs/microservices": "^8.0.0", - "@nestjs/platform-express": "^8.0.0", - "@nestjs/websockets": "^8.0.0", - "reflect-metadata": "^0.1.12", - "rxjs": "^7.1.0" - }, - "peerDependenciesMeta": { - "@nestjs/microservices": { - "optional": true - }, - "@nestjs/platform-express": { - "optional": true - }, - "@nestjs/websockets": { - "optional": true - } - } - }, - "node_modules/@nuxtjs/opencollective": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", - "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.0", - "node-fetch": "^2.6.1" - }, - "bin": { - "opencollective": "bin/opencollective.js" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/@nuxtjs/opencollective/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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@nuxtjs/opencollective/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@nuxtjs/opencollective/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@nuxtjs/opencollective/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==", - "dev": true - }, - "node_modules/@nuxtjs/opencollective/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@nuxtjs/opencollective/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@openapitools/openapi-generator-cli": { - "version": "2.4.26", - "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.4.26.tgz", - "integrity": "sha512-O42H9q1HWGoIpcpMaUu318b6bmOgcjP3MieHwOrFdoG3KyttceBGlbLf9Kbf7WM91WSNCDXum7cnEKASuoGjAg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@nestjs/common": "8.2.6", - "@nestjs/core": "8.2.6", - "@nuxtjs/opencollective": "0.3.2", - "chalk": "4.1.2", - "commander": "8.3.0", - "compare-versions": "3.6.0", - "concurrently": "6.5.1", - "console.table": "0.10.0", - "fs-extra": "10.0.0", - "glob": "7.1.6", - "inquirer": "8.2.0", - "lodash": "4.17.21", - "reflect-metadata": "0.1.13", - "rxjs": "7.5.2", - "tslib": "2.0.3" - }, - "bin": { - "openapi-generator-cli": "main.js" - }, - "engines": { - "node": ">=10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/openapi_generator" - } - }, - "node_modules/@openapitools/openapi-generator-cli/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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@openapitools/openapi-generator-cli/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@openapitools/openapi-generator-cli/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==", - "dev": true - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/api-metrics": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.27.0.tgz", - "integrity": "sha512-tB79288bwjkdhPNpw4UdOEy3bacVwtol6Que7cAu8KEJ9ULjRfSiwpYEwJY/oER3xZ7zNFz0uiJ7N1jSiotpVA==", - "deprecated": "Please use @opentelemetry/api >= 1.3.0", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", - "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "dev": true, - "dependencies": { - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/exporter-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.8.0.tgz", - "integrity": "sha512-3h16Sb1T/G33S+RM3yjt1t2xRuu/mi9iB172faS6qFQEclTTJru1pTK4wuWG+9GyI7uyBLfbQoXVA5/BA6gvHw==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0", - "jaeger-client": "^3.15.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/exporter-zipkin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.8.0.tgz", - "integrity": "sha512-Y3WqNCZjfWKnHiRzb35sXpDfGL4Gx2qajFAv059s/VFayIPytLHUOrZMiQqrpfzU/TSIKPG4OHJaypFtUtNlQQ==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.27.0.tgz", - "integrity": "sha512-dUwY/VoDptdK8AYigwS3IKblG+unV5xIdV4VQKy+nX5aT3f7vd5PMYs4arCQSYLbLRe0s7GxK6S9dtjai/TsHQ==", - "dev": true, - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-express": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.27.1.tgz", - "integrity": "sha512-EbpmTyem70Rg56+A0w8ndSmeyVYj7gFV9yk2IGgVVc9n/hs2mTgsBI2evaUtWbpB51pb1u/h+DhICKxgg/8Hew==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/express": "4.17.13" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.2" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.27.0.tgz", - "integrity": "sha512-aFHcAeeLfqoH8PMjmdqEwZwXDJtFSkWmGDBZeH2yrx3KzFMVBB/UJEr1n/ZC6AqfqahL/qqB1N8EnoCoOcs5ig==", - "dev": true, - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-grpc/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.27.0.tgz", - "integrity": "sha512-Q1dxUt+5d70rbY6jJAC8nwpIQJontmJW94eIS5CsGngvCRYw6tgjLZp2fpVL1o7Lj7uiLpGigeE4EN5Lr2YDFA==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dev": true, - "dependencies": { - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/instrumentation-http/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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/instrumentation-http/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@opentelemetry/instrumentation/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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/instrumentation/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/instrumentation/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@opentelemetry/propagator-b3": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.8.0.tgz", - "integrity": "sha512-ffP6AVHyISqK1kiUY1MoVKt43Wp3FJXI8NOePqxBrAU7bRDJ13276VbSl4ugCZbZLTPrPhhSmvQh1WqlfUgcAg==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/propagator-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.8.0.tgz", - "integrity": "sha512-v6GA38k2cqeGAh3368prLW5MsuG2/KxpfWI/PxTPjCa9tThDPq0cvhKpk7cEma3y+F6rieMhwmzZhKQL5QVBzQ==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/resources": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.8.0.tgz", - "integrity": "sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.27.0.tgz", - "integrity": "sha512-HpiWI4sVNsjp3FGyUlc24KvUY2Whl4PQVwcbA/gWv2kHaLQrDJrWC+3rjUR+87Mrd0nsiqJ85xhGFU6IK8h7gg==", - "deprecated": "Please use @opentelemetry/sdk-metrics", - "dev": true, - "dependencies": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/core": "1.0.1", - "@opentelemetry/resources": "1.0.1", - "lodash.merge": "^4.6.2" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.0.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dev": true, - "dependencies": { - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/resources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.1.tgz", - "integrity": "sha512-p8DevOaAEepPucUtImR4cZKHOE2L1jgQAtkdZporV+XnxPA/HqCHPEESyUVuo4f5M0NUlL6k5Pba75KwNJlTRg==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.1.0" - } - }, - "node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz", - "integrity": "sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA==", - "dev": true, - "dependencies": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-node": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.8.0.tgz", - "integrity": "sha512-6FqhJEgW9Nke5SO4Ul9+5EWOfms/JeLg5LRqILMPMK4UMBWcOtk7jldvGGyfVpraJ16/WPo/R5NSnMwlupN5zQ==", - "dev": true, - "dependencies": { - "@opentelemetry/context-async-hooks": "1.8.0", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/propagator-b3": "1.8.0", - "@opentelemetry/propagator-jaeger": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.4.0" - } - }, - "node_modules/@opentelemetry/sdk-trace-node/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==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/sdk-trace-node/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@opentelemetry/sdk-trace-node/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz", - "integrity": "sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "dev": true - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "dev": true - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "dev": true - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "dev": true - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dev": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "dev": true - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "dev": true - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "dev": true - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "dev": true - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", - "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.32", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz", - "integrity": "sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", - "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/lodash": { - "version": "4.14.191", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", - "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==", - "dev": true - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/@types/node": { - "version": "16.18.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.11.tgz", - "integrity": "sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", - "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", - "dev": true, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", - "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", - "dev": true, - "dependencies": { - "envinfo": "^7.7.3" - }, - "peerDependencies": { - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", - "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", - "dev": true, - "peerDependencies": { - "webpack-cli": "4.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "dev": true, - "optional": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acme-client": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/acme-client/-/acme-client-4.2.5.tgz", - "integrity": "sha512-dtnck4sdZ2owFLTC73Ewjx0kmvsRjTRgaOc8UztCNODT+lr1DXj0tiuUXjeY4LAzZryXCtCib/E+KD8NYeP1aw==", - "dev": true, - "dependencies": { - "axios": "0.26.1", - "backo2": "^1.0.0", - "bluebird": "^3.5.0", - "debug": "^4.1.1", - "node-forge": "^1.3.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/acme-client/node_modules/axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.8" - } - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "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/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ari-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ari-client/-/ari-client-2.2.0.tgz", - "integrity": "sha512-DPz+vC/dZyvy5HqBrEzYpNH6X2hDb+AIyRith6f8IVLHyveRWaHPO0S7rF1Q91qry/U8G+504KUZfeaBPwzIVQ==", - "dev": true, - "dependencies": { - "backoff-func": "^0.1.2", - "bluebird": "^3.5.2", - "lodash": "^4.17.10", - "request": "^2.34.0", - "swagger-client": "2.0.26", - "uuid": "^3.0.0", - "ws": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ari-client/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "node_modules/ax": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/ax/-/ax-0.1.8.tgz", - "integrity": "sha512-s1c0qoZbk9QzrpycVDBdlXkD+ZWY9SjnP7Y0ImUG+CRkPSmOHRb8K1zMT95zyULId4mzGjkWBYlqXFagllkzxg==", - "dev": true - }, - "node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.4" - } - }, - "node_modules/babel": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel/-/babel-6.23.0.tgz", - "integrity": "sha1-0NHn2APpdHZb7qMjLU4VPA77kPQ=", - "deprecated": "In 6.x, the babel package has been deprecated in favor of babel-cli. Check https://opencollective.com/babel to support the Babel maintainers", - "dev": true, - "bin": { - "babel": "lib/cli.js", - "babel-external-helpers": "lib/cli.js", - "babel-node": "lib/cli.js" - } - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "node_modules/babel-code-frame/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "node_modules/babel-core/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-core/node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-core/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "dependencies": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "node_modules/babel-generator/node_modules/jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "dependencies": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-traverse/node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-traverse/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/babel-types/node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true, - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==", - "dev": true - }, - "node_modules/backoff-func": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/backoff-func/-/backoff-func-0.1.2.tgz", - "integrity": "sha512-tO4xSM6onGv8JTHueffdfQOoS5AChcs4sTYUD4Ju19tiby7LmaI70TKR/0nIwVTTcCRVrPcq1ZEuTeWMRm7QUQ==", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "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/basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dev": true, - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bcrypt": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz", - "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.10", - "node-addon-api": "^5.0.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/block-stream2": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz", - "integrity": "sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.4.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/braces/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, - "node_modules/browser-or-node": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz", - "integrity": "sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==", - "dev": true - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/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==", - "dev": true, - "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/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/bson-objectid": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.4.tgz", - "integrity": "sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==", - "dev": true - }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "dev": true, - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "node_modules/bufrw": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", - "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", - "dev": true, - "dependencies": { - "ansi-color": "^0.2.1", - "error": "^7.0.0", - "hexer": "^1.5.0", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/buildcheck": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.3.tgz", - "integrity": "sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.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==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001312", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", - "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "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==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dev": true, - "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==", - "dev": true, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "node_modules/colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/concurrently": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz", - "integrity": "sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "date-fns": "^2.16.1", - "lodash": "^4.17.21", - "rxjs": "^6.6.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", - "tree-kill": "^1.2.2", - "yargs": "^16.2.0" - }, - "bin": { - "concurrently": "bin/concurrently.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/concurrently/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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/concurrently/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/concurrently/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==", - "dev": true - }, - "node_modules/concurrently/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/concurrently/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "node_modules/console.table": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz", - "integrity": "sha1-CRcCVYiHW+/XDPLv9L7yxuLXXQQ=", - "dev": true, - "dependencies": { - "easy-table": "1.1.0" - }, - "engines": { - "node": "> 0.10" - } - }, - "node_modules/container-image-builder": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/container-image-builder/-/container-image-builder-3.2.0.tgz", - "integrity": "sha512-HHo1h+yqesR/2jqWsebzljuQAUuDCkyrtOUgAtJyvW1hZedzILPWnDiCFM8t5UqjwkFwta9RMrb8p3e4V8s6NA==", - "dev": true, - "dependencies": { - "google-auth-library": "^5.1.0", - "micromatch": "^3.1.10", - "p-retry": "^3.0.1", - "request": "^2.88.0", - "tar": "^4.4.8", - "walkdir": "^0.4.0" - } - }, - "node_modules/container-image-builder/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/container-image-builder/node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/container-image-builder/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/container-image-builder/node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/container-image-builder/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==", - "dev": true, - "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/container-image-builder/node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/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==", - "dev": true, - "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/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "node_modules/cookiejar": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-1.3.1.tgz", - "integrity": "sha512-9sKamftjpu1NPJuJoXH2EmZkVPHvhjewTg39hRhoOLOxTM9sNudaFlMu5VZ4DLKTDQu63luVQu7L24AScFr2nw==", - "dev": true - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz", - "integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==", - "dev": true, - "dependencies": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "node_modules/corser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", - "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/cpu-features": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.4.tgz", - "integrity": "sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "buildcheck": "0.0.3", - "nan": "^2.15.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/cron-validate": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/cron-validate/-/cron-validate-1.4.5.tgz", - "integrity": "sha512-nKlOJEnYKudMn/aNyNH8xxWczlfpaazfWV32Pcx/2St51r2bxWbGhZD7uwzMcRhunA/ZNL+Htm/i0792Z59UMQ==", - "dev": true, - "dependencies": { - "yup": "0.32.9" - } - }, - "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==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", - "dev": true, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "node_modules/denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/docker-modem": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.6.tgz", - "integrity": "sha512-h0Ow21gclbYsZ3mkHDfsYNDqtRhXS8fXr51bU0qr1dxgTMJj0XufbzX+jhNOvA8KuEEzn6JbvLVhXyv+fny9Uw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "readable-stream": "^3.5.0", - "split-ca": "^1.0.1", - "ssh2": "^1.11.0" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/dockerode": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.4.tgz", - "integrity": "sha512-3EUwuXnCU+RUlQEheDjmBE0B7q66PV9Rw5NiH1sXwINq0M9c5ERP9fxgkw36ZHOtzf4AGEEYySnkx/sACC9EgQ==", - "dev": true, - "dependencies": { - "@balena/dockerignore": "^1.0.2", - "docker-modem": "^3.0.0", - "tar-fs": "~2.0.1" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/easy-table": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz", - "integrity": "sha1-hvmrTBAvA3G3KXuSplHVgkvIy3M=", - "dev": true, - "optionalDependencies": { - "wcwidth": ">=1.0.1" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.71", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz", - "integrity": "sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "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==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", - "dev": true, - "dependencies": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-lite": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz", - "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==", - "dev": true - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "node_modules/express/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/express/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==", - "dev": true, - "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/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/fast-text-encoding": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", - "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==", - "dev": true - }, - "node_modules/fast-xml-parser": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", - "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", - "dev": true, - "dependencies": { - "strnum": "^1.0.4" - }, - "bin": { - "xml2js": "cli.js" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/fibers": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.3.tgz", - "integrity": "sha512-/qYTSoZydQkM21qZpGLDLuCq8c+B8KhuCQ1kLPvnRNhxhVbvrpmH9l2+Lblf5neDuEsY4bfT7LeO553TXQDvJw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/fibers/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "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==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fluent-logger": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/fluent-logger/-/fluent-logger-3.4.1.tgz", - "integrity": "sha512-lERIhXAvhtCYeQq8K7sBDg/HY9GkiVRq5xY3oN+hcSINVKwqwBzG6LQOJK73EnV50qO59U7XEmRnn2hBzLWaHw==", - "dev": true, - "dependencies": { - "msgpack-lite": "*" - }, - "engines": { - "node": ">=6" - } - }, - "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==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreachasync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", - "integrity": "sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw==", - "dev": true - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fs-minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gaxios": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.3.4.tgz", - "integrity": "sha512-US8UMj8C5pRnao3Zykc4AAVr+cffoNKRTg9Rsf2GiuZCW69vgJj38VK2PzlPuQU73FZ/nTk9/Av6/JGcE1N9vA==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/gcp-metadata": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-3.5.0.tgz", - "integrity": "sha512-ZQf+DLZ5aKcRpLzYUyBS3yo3N0JSa82lNDO8rj3nMSlovLcz2riKFBsYgDzeXcv75oo5eqB2lx+B14UvPoCRnA==", - "dev": true, - "dependencies": { - "gaxios": "^2.1.0", - "json-bigint": "^0.3.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/google-auth-library": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-5.10.1.tgz", - "integrity": "sha512-rOlaok5vlpV9rSiUu5EpR0vVpc+PhN62oF4RyX/6++DG1VsaulAFEMlDYBLjJDDPI6OcNOCGAKy9UVB/3NIDXg==", - "dev": true, - "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^2.1.0", - "gcp-metadata": "^3.4.0", - "gtoken": "^4.1.0", - "jws": "^4.0.0", - "lru-cache": "^5.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/google-p12-pem": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.5.tgz", - "integrity": "sha512-7RLkxwSsMsYh9wQ5Vb2zRtkAHvqPvfoMGag+nugl1noYO7gf0844Yr9TIFA5NEBMAeVt2Z+Imu7CQMp3oNatzQ==", - "dev": true, - "dependencies": { - "node-forge": "^0.10.0" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/google-p12-pem/node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==", - "dev": true - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true - }, - "node_modules/grpc-boom": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/grpc-boom/-/grpc-boom-3.0.11.tgz", - "integrity": "sha512-bdGLCww+w+CWHdT0Fm2AzoRToJJHzlIEfTggkquUO9JG5d2TU+yUIuk4ksWQ2B+LFQpxLaB7ZbZXKBPkErtW5w==", - "dev": true, - "peerDependencies": { - "@types/node": "^16.11.35" - } - }, - "node_modules/grpc-interceptors": { - "version": "0.2.5", - "resolved": "git+ssh://git@github.com/fonoster/node-grpc-interceptors.git#3ccc1d222f8a66e319a0e1e93bd18095aeaeb141", - "dev": true, - "license": "ISC", - "dependencies": { - "zipkin": "^0.12.0", - "zipkin-transport-http": "^0.22.0" - }, - "peerDependencies": { - "@grpc/grpc-js": "^1.3.7" - } - }, - "node_modules/grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==", - "dev": true - }, - "node_modules/gtoken": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-4.1.4.tgz", - "integrity": "sha512-VxirzD0SWoFUo5p8RDP8Jt2AGyOmyYcT/pOUgDKJCK+iSw0TMqwrVfY37RXTNmoKwrzmDHSk0GMT9FsgVmnVSA==", - "dev": true, - "dependencies": { - "gaxios": "^2.1.0", - "google-p12-pem": "^2.0.0", - "jws": "^4.0.0", - "mime": "^2.2.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/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==", - "dev": true, - "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/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", - "dev": true, - "dependencies": { - "ansi-color": "^0.2.1", - "minimist": "^1.1.0", - "process": "^0.10.0", - "xtend": "^4.0.0" - }, - "bin": { - "hexer": "cli.js" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-server": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", - "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", - "dev": true, - "dependencies": { - "basic-auth": "^2.0.1", - "chalk": "^4.1.2", - "corser": "^2.0.1", - "he": "^1.2.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy": "^1.18.1", - "mime": "^1.6.0", - "minimist": "^1.2.6", - "opener": "^1.5.1", - "portfinder": "^1.0.28", - "secure-compare": "3.0.1", - "union": "~0.5.0", - "url-join": "^4.0.1" - }, - "bin": { - "http-server": "bin/http-server" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/http-server/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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/http-server/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/http-server/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/http-server/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==", - "dev": true - }, - "node_modules/http-server/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/http-server/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/http-server/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "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/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.2.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/inquirer/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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/inquirer/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/inquirer/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==", - "dev": true - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/int64-buffer": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz", - "integrity": "sha512-v7cSY1J8ydZ0GyjUHqF+1bshJ6cnEVLo9EnjB8p+4HDRPZc9N5jjmvUV7NvEsqQOKyH0pmIBFWXVQbiS0+OBbA==", - "dev": true - }, - "node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ioredis": { - "version": "4.28.5", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.28.5.tgz", - "integrity": "sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==", - "dev": true, - "dependencies": { - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.1", - "denque": "^1.1.0", - "lodash.defaults": "^4.2.0", - "lodash.flatten": "^4.4.0", - "lodash.isarguments": "^3.1.0", - "p-map": "^2.1.0", - "redis-commands": "1.7.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" - } - }, - "node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dev": true - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-valid-domain": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.1.6.tgz", - "integrity": "sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - } - }, - "node_modules/is-valid-host": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-valid-host/-/is-valid-host-1.0.1.tgz", - "integrity": "sha512-LPjR7ypIMG/MLCh/dkz4lqQw4KZWFD2AeHNSbY4Y9pGp2rnWMMWqBY/iJLMwoVbOIG2r2y7L/wS9pHhr0gYRrg==", - "dev": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "node_modules/iterare": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", - "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/jaeger-client": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0", - "opentracing": "^0.14.4", - "thriftrw": "^3.5.0", - "uuid": "^8.3.2", - "xorshift": "^1.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-bigint": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.1.tgz", - "integrity": "sha512-DGWnSzmusIreWlEupsUelHrhwmPPE+FiQvg+drKfk2p+bdEYa5mp4PJ8JsCWqae0M2jQNb0HPvnwvf1qOTThzQ==", - "dev": true, - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/json-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz", - "integrity": "sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "peer": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dev": true, - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "node_modules/jsonwebtoken/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==", - "dev": true, - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jsonwebtoken/node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dev": true, - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jsonwebtoken/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "dev": true, - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "dev": true, - "dependencies": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "dev": true - }, - "node_modules/loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "dev": true - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", - "dev": true - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "dev": true - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", - "dev": true - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "dev": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/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==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", - "dev": true, - "dependencies": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.1.tgz", - "integrity": "sha512-reLxBcKUPNBnc/sVtAbxgRVFSegoGeLaSjmphNhcwcolhYLRgtJscn5mRl6YRZNQv40Y7P6JM2YhSIsbL9OB5A==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minio": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/minio/-/minio-7.0.32.tgz", - "integrity": "sha512-txa7Vr0N24MKzeAybP/wY1jxbLnfGHXwZYyfFXuMW55HX2+HOcKEIgH4hU6Qj/kiMgyXs/ozHjAuLIDrR8nwLg==", - "dev": true, - "dependencies": { - "async": "^3.1.0", - "block-stream2": "^2.0.0", - "browser-or-node": "^1.3.0", - "buffer-crc32": "^0.2.13", - "crypto-browserify": "^3.12.0", - "es6-error": "^4.1.1", - "fast-xml-parser": "^3.17.5", - "ipaddr.js": "^2.0.1", - "json-stream": "^1.0.0", - "lodash": "^4.17.21", - "mime-types": "^2.1.14", - "mkdirp": "^0.5.1", - "query-string": "^7.1.1", - "through2": "^3.0.1", - "web-encoding": "^1.1.5", - "xml": "^1.0.0", - "xml2js": "^0.4.15" - }, - "engines": { - "node": ">8 <=18" - } - }, - "node_modules/minipass": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", - "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "node_modules/module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/msgpack-lite": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz", - "integrity": "sha512-SZ2IxeqZ1oRFGo0xFGbvBJWMp3yLIY9rlIJyxy8CGrwZn1f0ZK4r6jV/AM1r0FZMDUkWkglOk/eeKIL9g77Nxw==", - "dev": true, - "dependencies": { - "event-lite": "^0.1.1", - "ieee754": "^1.1.8", - "int64-buffer": "^0.1.9", - "isarray": "^1.0.0" - }, - "bin": { - "msgpack": "bin/msgpack" - } - }, - "node_modules/mustache": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz", - "integrity": "sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==", - "dev": true, - "bin": { - "mustache": "bin/mustache" - }, - "engines": { - "npm": ">=1.4.0" - } - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "dev": true, - "optional": true - }, - "node_modules/nanoclone": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", - "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ndjson": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", - "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", - "dev": true, - "dependencies": { - "json-stringify-safe": "^5.0.1", - "minimist": "^1.2.5", - "readable-stream": "^3.6.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "ndjson": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ndjson/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/network-address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", - "integrity": "sha512-Q6878fmvItA1mE7H9Il46lONgFgTzX2f98zkS0c2YlkCACzNjwvum/8Kq693IQpxe9zy+w+Zm/4p0wQreLEtZw==", - "dev": true, - "bin": { - "network-address": "cli.js" - } - }, - "node_modules/node-addon-api": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz", - "integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", - "dev": true - }, - "node_modules/node-vault": { - "version": "0.9.22", - "resolved": "https://registry.npmjs.org/node-vault/-/node-vault-0.9.22.tgz", - "integrity": "sha512-/IR+YvINFhCzxJA5x/KHUDymJerFaeqvPUE2zwceRig8yEIA41qfVKusmO6bqRGFkr/2f6CaBVp7YfabzQyteg==", - "dev": true, - "dependencies": { - "debug": "3.1.0", - "mustache": "^2.2.1", - "request": "2.88.0", - "request-promise-native": "1.0.7", - "tv4": "^1.2.7" - } - }, - "node_modules/node-vault/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/node-vault/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/node-vault/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "node_modules/node-vault/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/node-vault/node_modules/request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/node-vault/node_modules/tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "dependencies": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/node-vault/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "fn.name": "1.x.x" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true, - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/openfaas-client": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/openfaas-client/-/openfaas-client-0.0.2.tgz", - "integrity": "sha512-Dv3sBrbRNmdh9Tjsam6E00Wyh7Ghspv3i9tv1kfRHiVnZV0bmH5rx6zJ8i4A8jCfYHuBdHONffhm9/xh/KSYBQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.7.2", - "request": "^2.88.2", - "typescript": "^4.2.4" - } - }, - "node_modules/opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ora/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ora/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==", - "dev": true - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "dependencies": { - "retry": "^0.12.0" - }, - "engines": { - "node": ">=6" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", - "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==", - "dev": true - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, - "node_modules/phone": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/phone/-/phone-2.4.22.tgz", - "integrity": "sha512-k2f9qkIgcgbbeyFFMHDcCaYdPxq7u71EjmMvD998PEquwDvIT7zmUFe00S4hH9WPjk+IQlw9W/FlHOu1O17Tbw==", - "dev": true, - "engines": { - "node": ">=6.10.0" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/process": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/property-expr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", - "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==", - "dev": true - }, - "node_modules/protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/protobufjs/node_modules/long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==", - "dev": true - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "dev": true, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "dev": true, - "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "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==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/redis-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", - "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==", - "dev": true - }, - "node_modules/redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "dev": true, - "dependencies": { - "redis-errors": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request-promise-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", - "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", - "dev": true, - "dependencies": { - "lodash": "^4.17.11" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "request": "^2.34" - } - }, - "node_modules/request-promise-native": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", - "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", - "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "request-promise-core": "1.1.2", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "engines": { - "node": ">=0.12.0" - }, - "peerDependencies": { - "request": "^2.34" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rollup": { - "version": "2.56.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz", - "integrity": "sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/rxjs": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz", - "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/secure-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", - "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", - "dev": true - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/send/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==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "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==", - "dev": true - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", - "dev": true - }, - "node_modules/shred": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/shred/-/shred-0.8.10.tgz", - "integrity": "sha512-DQHh3pS3uroW6Okv66lHm6FTh0RPR+cBVveRS8XpH18MW4wr6fMQTfHUawBqKP4laIvSE1ENtkWvaSPmYXaqMA==", - "dev": true, - "dependencies": { - "ax": "0.1.8", - "cookiejar": "1.3.1", - "iconv-lite": ">= 0.1.2", - "sprintf": "0.1.1" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", - "dev": true - }, - "node_modules/split-ca": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==", - "dev": true - }, - "node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/sprintf": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/sprintf/-/sprintf-0.1.1.tgz", - "integrity": "sha512-4tw3/d54Ob/sMSkU2j+XhSCUhnXW0iWw3ztub6KvMeGC4SCMagADLuLinz8emveQgwmz197rAvVZQFA2vCCJCw==", - "deprecated": "The sprintf package is deprecated in favor of sprintf-js.", - "dev": true, - "engines": { - "node": ">=0.2.4" - } - }, - "node_modules/ssh2": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz", - "integrity": "sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "asn1": "^0.2.4", - "bcrypt-pbkdf": "^1.0.2" - }, - "engines": { - "node": ">=10.16.0" - }, - "optionalDependencies": { - "cpu-features": "~0.0.4", - "nan": "^2.16.0" - } - }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", - "dev": true - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "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==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/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==", - "dev": true, - "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/string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "dev": true - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/swagger-client": { - "version": "2.0.26", - "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-2.0.26.tgz", - "integrity": "sha512-sClCI4QlqdRaiwofgwKIc4wsja4yxJph3ZkRF+gi/84ygAjx1q+c2ZHTfp3Ac0qe6JFGj3KIDEP/+GZzWnrY8A==", - "deprecated": "No longer maintained, please upgrade to swagger-client@3.", - "dev": true, - "dependencies": { - "btoa": "1.1.1", - "shred": "0.8.10" - }, - "engines": { - "node": ">= 0.6.6" - } - }, - "node_modules/swagger-client/node_modules/btoa": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.1.1.tgz", - "integrity": "sha512-Zr8ZdgW3SQJSMZVouLvZ6jn1FLv5AqWnMbHKIs22M3uMbYdrmJ7dscocEJVIPO8REDQNsFiXdrlZNwbJrnLYPg==", - "dev": true, - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/sync": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/sync/-/sync-0.2.5.tgz", - "integrity": "sha512-g7UDPo8z33h0KAr1cXDU0UzV3LTHONom/EuU7oyEgTEf4/sWR8OYzvKYwiEYqgCmMlbF8YQutoDAfw3hsDU5EQ==", - "dev": true, - "dependencies": { - "fibers": ">=0.6" - }, - "engines": { - "node": ">=0.5.2" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar-fs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", - "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/terser": { - "version": "5.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", - "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "dev": true, - "dependencies": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser-webpack-plugin/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/terser/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==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/terser/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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true - }, - "node_modules/thriftrw": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.12.0.tgz", - "integrity": "sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw==", - "dev": true, - "dependencies": { - "bufrw": "^1.3.0", - "error": "7.0.2", - "long": "^2.4.0" - }, - "bin": { - "thrift2json": "thrift2json.js" - }, - "engines": { - "node": ">= 0.10.x" - } - }, - "node_modules/thriftrw/node_modules/long": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", - "dev": true - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true, - "engines": { - "node": ">=0.10.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==", - "dev": true - }, - "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tv4": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", - "integrity": "sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/union": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", - "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", - "dev": true, - "dependencies": { - "qs": "^6.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/walk": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz", - "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==", - "dev": true, - "dependencies": { - "foreachasync": "^3.0.0" - } - }, - "node_modules/walkdir": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", - "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-encoding": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "dev": true, - "dependencies": { - "util": "^0.12.3" - }, - "optionalDependencies": { - "@zxing/text-encoding": "0.9.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - }, - "node_modules/webpack": { - "version": "5.76.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.0.tgz", - "integrity": "sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", - "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.1.1", - "@webpack-cli/info": "^1.4.1", - "@webpack-cli/serve": "^1.6.1", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "@webpack-cli/migrate": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.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==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "node_modules/winston": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "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==", - "dev": true, - "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/wrap-ansi/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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/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==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", - "dev": true - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xorshift": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "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/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==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yup": { - "version": "0.32.9", - "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", - "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.10.5", - "@types/lodash": "^4.14.165", - "lodash": "^4.17.20", - "lodash-es": "^4.17.15", - "nanoclone": "^0.2.1", - "property-expr": "^2.0.4", - "toposort": "^2.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/zipkin": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.12.0.tgz", - "integrity": "sha512-QguH/UQt/ofUVcTJLW7qdyi7iEo71MJJbKg/6d/m3ptvxhm5gDVf/KVuCEfzxxzzWGSKtX+c+qACvowsPkNjuQ==", - "dev": true, - "dependencies": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0", - "network-address": "^1.1.0" - } - }, - "node_modules/zipkin-transport-http": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin-transport-http/-/zipkin-transport-http-0.22.0.tgz", - "integrity": "sha512-bjM2fm/hurseBuvpyB8mYCBBGOz3gc2f9KUSQl71LGxmgYcUeXvDHJyE9MgzWMhl+3HcD8l5nNn6OmdX63he+g==", - "dev": true, - "dependencies": { - "zipkin": "^0.22.0" - }, - "peerDependencies": { - "node-fetch": ">=1.4.0 <3.0.0" - } - }, - "node_modules/zipkin-transport-http/node_modules/zipkin": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.22.0.tgz", - "integrity": "sha512-SZgorBAvywnj5R26mqsFP+2MRUsBXGg0B8GLRLw9R0FeE4alMUAfhXYvzeAt2+MvkXne9QdQyziuqO5oXNQ0Sg==", - "dev": true, - "dependencies": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.1.tgz", - "integrity": "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.0" - } - }, - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", - "dev": true - }, - "@babel/core": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz", - "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", - "dev": true, - "peer": true, - "requires": { - "@ampproject/remapping": "^2.0.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.0", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", - "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", - "dev": true, - "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", - "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", - "dev": true, - "peer": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" - } - }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", - "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", - "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", - "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", - "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", - "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", - "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.0", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.0", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@balena/dockerignore": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", - "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==", - "dev": true - }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true - }, - "@dabh/diagnostics": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", - "dev": true, - "requires": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "@discoveryjs/json-ext": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", - "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", - "dev": true - }, - "@fonoster/agents": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/agents/-/agents-0.3.21.tgz", - "integrity": "sha512-0KXFDok2GqCyeB1gsrPv8Pmc9XL3zlqXGcs55qrOWHoMmN2hZJ9SwbE2cA6rqhIpSrdfS7PiMhHexjbVwlI40Q==", - "dev": true, - "requires": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - } - }, - "@fonoster/apps": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/apps/-/apps-0.3.21.tgz", - "integrity": "sha512-clxZZIHZ44tevAS+4bcM9esdyNzec4R4hIIMDPHsQC1R9un8MMZS6QEVsjTb5HJVuZfSffgqCzJuahu+qVQk3w==", - "dev": true, - "requires": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "grpc-promise": "^1.4.0" - } - }, - "@fonoster/auth": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@fonoster/auth/-/auth-0.3.20.tgz", - "integrity": "sha512-azS5T3DNDPPS9Ki4Dh5W8kFr9lJtyw8gnG2nJLkTwbvh6Gycsf/QrH/kXmPQP02/x0ChYPz2t1Oqdc/XtT04KA==", - "dev": true, - "requires": { - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "express": "^4.17.1", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "jsonwebtoken": "^8.5.1" - } - }, - "@fonoster/callmanager": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/callmanager/-/callmanager-0.3.21.tgz", - "integrity": "sha512-FQRD6j0MqzjOsV0Mn7OD9cAbXWz6VlWQQU1Glv8b902Yi3XD8DgTxZ9QIFNn7qA1+8d2TA+01tRm+fdur5USnw==", - "dev": true, - "requires": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "ari-client": "^2.2.0", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - } - }, - "@fonoster/certs": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@fonoster/certs/-/certs-0.3.20.tgz", - "integrity": "sha512-Q0X12dUc5zdtTilIpoFOM8iHsDzFwe+OQ1bW4DW0UxAo7GTRkEFgUL4PtoPPK66SZ18v28ANcavzeGe1ov5DDQ==", - "dev": true, - "requires": { - "@types/jsonwebtoken": "^8.5.0", - "acme-client": "^4.1.3", - "btoa": "^1.2.1", - "jsonwebtoken": "^8.5.1" - } - }, - "@fonoster/common": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@fonoster/common/-/common-0.3.20.tgz", - "integrity": "sha512-DJge4mGHnn6Pn1oaeIrrSfp218xJNvI/FCtABjz3SuimQS64GgZinrKJ42t0nkT84hc8iYHDzKTilbHOnlyGWw==", - "dev": true, - "requires": { - "@fonoster/certs": "^0.3.20", - "@fonoster/grpc-health-check": "^3.1.1", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@grpc/proto-loader": "^0.7.2", - "@opentelemetry/api": "^1.0.4", - "@opentelemetry/exporter-jaeger": "^1.0.1", - "@opentelemetry/exporter-zipkin": "^1.0.1", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/instrumentation-express": "^0.27.0", - "@opentelemetry/instrumentation-grpc": "^0.27.0", - "@opentelemetry/instrumentation-http": "^0.27.0", - "@opentelemetry/resources": "^1.0.4", - "@opentelemetry/sdk-metrics-base": "0.27.0", - "@opentelemetry/sdk-trace-base": "^1.0.4", - "@opentelemetry/sdk-trace-node": "^1.0.4", - "@opentelemetry/semantic-conventions": "^1.0.4", - "atob": "^2.1.2", - "deepmerge": "^4.2.2", - "grpc-interceptors": "github:fonoster/node-grpc-interceptors" - } - }, - "@fonoster/core": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/core/-/core-0.3.21.tgz", - "integrity": "sha512-zT5FW1MlvcpcEUt9mYThVcWS1DRfxYidZuVSPrKGnZ68Yq06XKhRzHFewM5xK4uMgkL+25fZIGABzeJYFWNeAA==", - "dev": true, - "requires": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "atob": "^2.1.2", - "btoa": "^1.2.1", - "deepmerge": "^4.2.2", - "ioredis": "^4.16.0", - "nanoid": "^3.1.23", - "phone": "^2.4.21" - } - }, - "@fonoster/domains": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/domains/-/domains-0.3.21.tgz", - "integrity": "sha512-r99f1UciKoQa/2/V+ZGz+wYMiraT+Pfhkeku9/srCSRtnfD8M5J6DP6AvVtrvhtebP1gNbcamdDp+07hxcqDEQ==", - "dev": true, - "requires": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-domain": "^0.1.2" - } - }, - "@fonoster/errors": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@fonoster/errors/-/errors-0.3.20.tgz", - "integrity": "sha512-au5Q8eGidZ0cmt+7ovG3XrVMvvfKbi6vWAsyez2Z2GqSRT9cxVRJD7Z4G39GN1xPdQ7QYW2/JH3qtLQbBRDXyw==", - "dev": true - }, - "@fonoster/funcs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/funcs/-/funcs-0.3.21.tgz", - "integrity": "sha512-IwDDyl/u/8tov/SxcCBp4Gw8SveRqzKGH6lBA2lTxIzYlMF34v7NJz8VRnf6augb+DcZ+EAN0HSJuZAOkyL2Ag==", - "dev": true, - "requires": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@fonoster/storage": "^0.3.21", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "btoa": "^1.2.1", - "container-image-builder": "^3.2.0", - "cron-validate": "^1.4.3", - "cross-spawn": "^7.0.3", - "dockerode": "^3.3.0", - "fs-extra": "^8.1.0", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "ndjson": "^2.0.0", - "openfaas-client": "^0.0.2", - "tar": "^6.1.0", - "walk": "^2.3.14" - } - }, - "@fonoster/grpc-health-check": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@fonoster/grpc-health-check/-/grpc-health-check-3.1.1.tgz", - "integrity": "sha512-JjXI4i2g2FF7QgHcAgy18RISbeRnqQ+U9QdPeYmE5TijaK7JaFwV/mOK7WgIIxQNqNsR/ozoap5Q46T0qpukeQ==", - "dev": true, - "requires": { - "google-protobuf": "^3.21.0", - "grpc-boom": "^3.0.11" - } - }, - "@fonoster/logger": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@fonoster/logger/-/logger-0.3.20.tgz", - "integrity": "sha512-Qdhy3KJz2RdpcHfmvMDlkiHA7ewPF2D4dtmasnbujxlAOME8t/6PObETjSGoJeH1vEvZ6Ar97msZBC11tnXiwA==", - "dev": true, - "requires": { - "fluent-logger": "^3.4.1", - "winston": "^3.6.0" - } - }, - "@fonoster/numbers": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/numbers/-/numbers-0.3.21.tgz", - "integrity": "sha512-1oQSOsIsmJQr5j4AJydA9sZRyWUIBRVbgpEpX6b5SYj6dtHfIwmsnmjs0qRp+Rgmi4E53rLblaw6pn6ha6qTzQ==", - "dev": true, - "requires": { - "@fonoster/apps": "^0.3.21", - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "phone": "^3.1.31" - }, - "dependencies": { - "phone": { - "version": "3.1.32", - "resolved": "https://registry.npmjs.org/phone/-/phone-3.1.32.tgz", - "integrity": "sha512-kT89uAqNr8sEXjv/2NDzp2Kpb/BQ5bTzHMLZFwUnqDnDBaObcO3qLzQ030tDlhxZrFVUd+EIq8pie5/L8SNVrQ==", - "dev": true - } - } - }, - "@fonoster/projects": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/projects/-/projects-0.3.21.tgz", - "integrity": "sha512-BTFShBD0QT3+ME8m7lJZN7hkhkZ6iNhh9rrTlXmXO5QkYiWwJvFwaU/v6ytYcpmYYoVFb0CoQhjFinT6y4NqSg==", - "dev": true, - "requires": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - } - }, - "@fonoster/providers": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/providers/-/providers-0.3.21.tgz", - "integrity": "sha512-g8pySzJwmb3J+2ftRtDZlNy00Zs6m6HFX1fH/oSLFtGHje/1UryeWK0QW2uLpr65gaqJZ+kL0V+stPs/ZPMJbw==", - "dev": true, - "requires": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "is-valid-host": "^1.0.1" - } - }, - "@fonoster/secrets": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/secrets/-/secrets-0.3.21.tgz", - "integrity": "sha512-YBR/NYQRwd6YLnRQdgBUU5qGcZZ/Jf9MTyjRMVAz0Mv3gNjrK7PAUA6l2ypJu9gvcIRTcJCvsE5hGSRRDMPMRA==", - "dev": true, - "requires": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "grpc-promise": "^1.4.0", - "node-vault": "^0.9.21" - } - }, - "@fonoster/storage": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/storage/-/storage-0.3.21.tgz", - "integrity": "sha512-9mOSGyjEuDZ5pQ3ay5IWnRQGD0YoDMpiBPMD0qPLvB5hzj7gEey6ymPAIsHXgX97RwxL4ddftqAybCJ2a1JG8A==", - "dev": true, - "requires": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0", - "minio": "^7.0.18", - "sync": "^0.2.5", - "tar": "^6.1.0", - "walk": "^2.3.14" - } - }, - "@fonoster/users": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@fonoster/users/-/users-0.3.21.tgz", - "integrity": "sha512-IMoCFemhEPEGCD+1o7atlzo8M/LHM+03eLCFogZEpHC1u4NnKI8ahtW0g0u9xx2i1xYBzIdPuiuhGQbuwClbtA==", - "dev": true, - "requires": { - "@fonoster/auth": "^0.3.20", - "@fonoster/certs": "^0.3.20", - "@fonoster/common": "^0.3.20", - "@fonoster/core": "^0.3.21", - "@fonoster/errors": "^0.3.20", - "@fonoster/logger": "^0.3.20", - "@grpc/grpc-js": "^1.3.7", - "@opentelemetry/api": "^1.0.4", - "bcrypt": "^5.0.1", - "bson-objectid": "^2.0.2", - "google-protobuf": "^3.17.0", - "grpc-promise": "^1.4.0" - } - }, - "@grpc/grpc-js": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.1.tgz", - "integrity": "sha512-mdqYADWl/9Kb75XLstt6pvBnS1DpxSDFRKrbadkY1ymUd29hq49nP6tLcL7a7qLydgqFCpjNwa2RsyrqB3MsXA==", - "dev": true, - "requires": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.4.tgz", - "integrity": "sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w==", - "dev": true, - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", - "dev": true, - "requires": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "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==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@nestjs/common": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-8.2.6.tgz", - "integrity": "sha512-flLYSXunxcKyjbYddrhwbc49uE705MxBt85rS3mHyhDbAIPSGGeZEqME44YyAzCg1NTfJSNe7ztmOce5kNkb9A==", - "dev": true, - "requires": { - "axios": "0.24.0", - "iterare": "1.2.1", - "tslib": "2.3.1", - "uuid": "8.3.2" - } - }, - "@nestjs/core": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-8.2.6.tgz", - "integrity": "sha512-NwPcEIMmCsucs3QaDlQvkoU1FlFM2wm/WjaqLQhkSoIEmAR1gNtBo88f5io5cpMwCo1k5xYhqGlaSl6TfngwWQ==", - "dev": true, - "requires": { - "@nuxtjs/opencollective": "0.3.2", - "fast-safe-stringify": "2.1.1", - "iterare": "1.2.1", - "object-hash": "2.2.0", - "path-to-regexp": "3.2.0", - "tslib": "2.3.1", - "uuid": "8.3.2" - } - }, - "@nuxtjs/opencollective": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", - "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "consola": "^2.15.0", - "node-fetch": "^2.6.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@openapitools/openapi-generator-cli": { - "version": "2.4.26", - "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.4.26.tgz", - "integrity": "sha512-O42H9q1HWGoIpcpMaUu318b6bmOgcjP3MieHwOrFdoG3KyttceBGlbLf9Kbf7WM91WSNCDXum7cnEKASuoGjAg==", - "dev": true, - "requires": { - "@nestjs/common": "8.2.6", - "@nestjs/core": "8.2.6", - "@nuxtjs/opencollective": "0.3.2", - "chalk": "4.1.2", - "commander": "8.3.0", - "compare-versions": "3.6.0", - "concurrently": "6.5.1", - "console.table": "0.10.0", - "fs-extra": "10.0.0", - "glob": "7.1.6", - "inquirer": "8.2.0", - "lodash": "4.17.21", - "reflect-metadata": "0.1.13", - "rxjs": "7.5.2", - "tslib": "2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - } - } - }, - "@opentelemetry/api": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.4.tgz", - "integrity": "sha512-BuJuXRSJNQ3QoKA6GWWDyuLpOUck+9hAXNMCnrloc1aWVoy6Xq6t9PUV08aBZ4Lutqq2LEHM486bpZqoViScog==", - "dev": true - }, - "@opentelemetry/api-metrics": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.27.0.tgz", - "integrity": "sha512-tB79288bwjkdhPNpw4UdOEy3bacVwtol6Que7cAu8KEJ9ULjRfSiwpYEwJY/oER3xZ7zNFz0uiJ7N1jSiotpVA==", - "dev": true - }, - "@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", - "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==", - "dev": true, - "requires": {} - }, - "@opentelemetry/core": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", - "integrity": "sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw==", - "dev": true, - "requires": { - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/exporter-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.8.0.tgz", - "integrity": "sha512-3h16Sb1T/G33S+RM3yjt1t2xRuu/mi9iB172faS6qFQEclTTJru1pTK4wuWG+9GyI7uyBLfbQoXVA5/BA6gvHw==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0", - "jaeger-client": "^3.15.0" - } - }, - "@opentelemetry/exporter-zipkin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.8.0.tgz", - "integrity": "sha512-Y3WqNCZjfWKnHiRzb35sXpDfGL4Gx2qajFAv059s/VFayIPytLHUOrZMiQqrpfzU/TSIKPG4OHJaypFtUtNlQQ==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/instrumentation": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.27.0.tgz", - "integrity": "sha512-dUwY/VoDptdK8AYigwS3IKblG+unV5xIdV4VQKy+nX5aT3f7vd5PMYs4arCQSYLbLRe0s7GxK6S9dtjai/TsHQ==", - "dev": true, - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "require-in-the-middle": "^5.0.3", - "semver": "^7.3.2", - "shimmer": "^1.2.1" - }, - "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==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@opentelemetry/instrumentation-express": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.27.1.tgz", - "integrity": "sha512-EbpmTyem70Rg56+A0w8ndSmeyVYj7gFV9yk2IGgVVc9n/hs2mTgsBI2evaUtWbpB51pb1u/h+DhICKxgg/8Hew==", - "dev": true, - "requires": { - "@opentelemetry/core": "^1.0.0", - "@opentelemetry/instrumentation": "^0.27.0", - "@opentelemetry/semantic-conventions": "^1.0.0", - "@types/express": "4.17.13" - } - }, - "@opentelemetry/instrumentation-grpc": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.27.0.tgz", - "integrity": "sha512-aFHcAeeLfqoH8PMjmdqEwZwXDJtFSkWmGDBZeH2yrx3KzFMVBB/UJEr1n/ZC6AqfqahL/qqB1N8EnoCoOcs5ig==", - "dev": true, - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1" - }, - "dependencies": { - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "dev": true - } - } - }, - "@opentelemetry/instrumentation-http": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.27.0.tgz", - "integrity": "sha512-Q1dxUt+5d70rbY6jJAC8nwpIQJontmJW94eIS5CsGngvCRYw6tgjLZp2fpVL1o7Lj7uiLpGigeE4EN5Lr2YDFA==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/instrumentation": "0.27.0", - "@opentelemetry/semantic-conventions": "1.0.1", - "semver": "^7.3.5" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dev": true, - "requires": { - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@opentelemetry/propagator-b3": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.8.0.tgz", - "integrity": "sha512-ffP6AVHyISqK1kiUY1MoVKt43Wp3FJXI8NOePqxBrAU7bRDJ13276VbSl4ugCZbZLTPrPhhSmvQh1WqlfUgcAg==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.8.0" - } - }, - "@opentelemetry/propagator-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.8.0.tgz", - "integrity": "sha512-v6GA38k2cqeGAh3368prLW5MsuG2/KxpfWI/PxTPjCa9tThDPq0cvhKpk7cEma3y+F6rieMhwmzZhKQL5QVBzQ==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.8.0" - } - }, - "@opentelemetry/resources": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.8.0.tgz", - "integrity": "sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/sdk-metrics-base": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.27.0.tgz", - "integrity": "sha512-HpiWI4sVNsjp3FGyUlc24KvUY2Whl4PQVwcbA/gWv2kHaLQrDJrWC+3rjUR+87Mrd0nsiqJ85xhGFU6IK8h7gg==", - "dev": true, - "requires": { - "@opentelemetry/api-metrics": "0.27.0", - "@opentelemetry/core": "1.0.1", - "@opentelemetry/resources": "1.0.1", - "lodash.merge": "^4.6.2" - }, - "dependencies": { - "@opentelemetry/core": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.1.tgz", - "integrity": "sha512-90nQ2X6b/8X+xjcLDBYKooAcOsIlwLRYm+1VsxcX5cHl6V4CSVmDpBreQSDH/A21SqROzapk6813008SatmPpQ==", - "dev": true, - "requires": { - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/resources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.1.tgz", - "integrity": "sha512-p8DevOaAEepPucUtImR4cZKHOE2L1jgQAtkdZporV+XnxPA/HqCHPEESyUVuo4f5M0NUlL6k5Pba75KwNJlTRg==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.0.1", - "@opentelemetry/semantic-conventions": "1.0.1" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", - "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", - "dev": true - } - } - }, - "@opentelemetry/sdk-trace-base": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz", - "integrity": "sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA==", - "dev": true, - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, - "@opentelemetry/sdk-trace-node": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.8.0.tgz", - "integrity": "sha512-6FqhJEgW9Nke5SO4Ul9+5EWOfms/JeLg5LRqILMPMK4UMBWcOtk7jldvGGyfVpraJ16/WPo/R5NSnMwlupN5zQ==", - "dev": true, - "requires": { - "@opentelemetry/context-async-hooks": "1.8.0", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/propagator-b3": "1.8.0", - "@opentelemetry/propagator-jaeger": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "semver": "^7.3.5" - }, - "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==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@opentelemetry/semantic-conventions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz", - "integrity": "sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew==", - "dev": true - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", - "dev": true - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "dev": true - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "dev": true - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "dev": true - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dev": true, - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "dev": true - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "dev": true - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "dev": true - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "dev": true - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "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==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/eslint": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", - "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.32", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz", - "integrity": "sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "@types/jsonwebtoken": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", - "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/lodash": { - "version": "4.14.191", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", - "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==", - "dev": true - }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "dev": true - }, - "@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", - "dev": true - }, - "@types/node": { - "version": "16.18.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.11.tgz", - "integrity": "sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==", - "dev": true - }, - "@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==", - "dev": true - }, - "@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==", - "dev": true - }, - "@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==", - "dev": true, - "requires": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", - "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", - "dev": true, - "requires": {} - }, - "@webpack-cli/info": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", - "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", - "dev": true, - "requires": { - "envinfo": "^7.7.3" - } - }, - "@webpack-cli/serve": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", - "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", - "dev": true, - "requires": {} - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "dev": true, - "optional": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acme-client": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/acme-client/-/acme-client-4.2.5.tgz", - "integrity": "sha512-dtnck4sdZ2owFLTC73Ewjx0kmvsRjTRgaOc8UztCNODT+lr1DXj0tiuUXjeY4LAzZryXCtCib/E+KD8NYeP1aw==", - "dev": true, - "requires": { - "axios": "0.26.1", - "backo2": "^1.0.0", - "bluebird": "^3.5.0", - "debug": "^4.1.1", - "node-forge": "^1.3.0" - }, - "dependencies": { - "axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "dev": true, - "requires": { - "follow-redirects": "^1.14.8" - } - } - } - }, - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "requires": {} - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "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" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "ari-client": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ari-client/-/ari-client-2.2.0.tgz", - "integrity": "sha512-DPz+vC/dZyvy5HqBrEzYpNH6X2hDb+AIyRith6f8IVLHyveRWaHPO0S7rF1Q91qry/U8G+504KUZfeaBPwzIVQ==", - "dev": true, - "requires": { - "backoff-func": "^0.1.2", - "bluebird": "^3.5.2", - "lodash": "^4.17.10", - "request": "^2.34.0", - "swagger-client": "2.0.26", - "uuid": "^3.0.0", - "ws": "^6.0.0" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "ax": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/ax/-/ax-0.1.8.tgz", - "integrity": "sha512-s1c0qoZbk9QzrpycVDBdlXkD+ZWY9SjnP7Y0ImUG+CRkPSmOHRb8K1zMT95zyULId4mzGjkWBYlqXFagllkzxg==", - "dev": true - }, - "axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", - "dev": true, - "requires": { - "follow-redirects": "^1.14.4" - } - }, - "babel": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel/-/babel-6.23.0.tgz", - "integrity": "sha1-0NHn2APpdHZb7qMjLU4VPA77kPQ=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - } - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==", - "dev": true - }, - "backoff-func": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/backoff-func/-/backoff-func-0.1.2.tgz", - "integrity": "sha512-tO4xSM6onGv8JTHueffdfQOoS5AChcs4sTYUD4Ju19tiby7LmaI70TKR/0nIwVTTcCRVrPcq1ZEuTeWMRm7QUQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "bcrypt": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz", - "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==", - "dev": true, - "requires": { - "@mapbox/node-pre-gyp": "^1.0.10", - "node-addon-api": "^5.0.0" - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "dev": true - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "block-stream2": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz", - "integrity": "sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==", - "dev": true, - "requires": { - "readable-stream": "^3.4.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, - "browser-or-node": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz", - "integrity": "sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, - "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "bson-objectid": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/bson-objectid/-/bson-objectid-2.0.4.tgz", - "integrity": "sha512-vgnKAUzcDoa+AeyYwXCoHyF2q6u/8H46dxu5JN+4/TZeq/Dlinn0K6GvxsCLb3LHUJl0m/TLiEK31kUwtgocMQ==", - "dev": true - }, - "btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "dev": true - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "bufrw": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", - "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", - "dev": true, - "requires": { - "ansi-color": "^0.2.1", - "error": "^7.0.0", - "hexer": "^1.5.0", - "xtend": "^4.0.0" - } - }, - "buildcheck": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.3.tgz", - "integrity": "sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==", - "dev": true, - "optional": true - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.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==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caniuse-lite": { - "version": "1.0.30001312", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", - "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dev": true, - "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==", - "dev": true, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "dev": true, - "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==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true - }, - "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==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concurrently": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz", - "integrity": "sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "date-fns": "^2.16.1", - "lodash": "^4.17.21", - "rxjs": "^6.6.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", - "tree-kill": "^1.2.2", - "yargs": "^16.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "console.table": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz", - "integrity": "sha1-CRcCVYiHW+/XDPLv9L7yxuLXXQQ=", - "dev": true, - "requires": { - "easy-table": "1.1.0" - } - }, - "container-image-builder": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/container-image-builder/-/container-image-builder-3.2.0.tgz", - "integrity": "sha512-HHo1h+yqesR/2jqWsebzljuQAUuDCkyrtOUgAtJyvW1hZedzILPWnDiCFM8t5UqjwkFwta9RMrb8p3e4V8s6NA==", - "dev": true, - "requires": { - "google-auth-library": "^5.1.0", - "micromatch": "^3.1.10", - "p-retry": "^3.0.1", - "request": "^2.88.0", - "tar": "^4.4.8", - "walkdir": "^0.4.0" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "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==", - "dev": true - }, - "tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dev": true, - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - } - } - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "cookiejar": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-1.3.1.tgz", - "integrity": "sha512-9sKamftjpu1NPJuJoXH2EmZkVPHvhjewTg39hRhoOLOxTM9sNudaFlMu5VZ4DLKTDQu63luVQu7L24AScFr2nw==", - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true - }, - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "dev": true - }, - "core-js-compat": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz", - "integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==", - "dev": true, - "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "corser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", - "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", - "dev": true - }, - "cpu-features": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.4.tgz", - "integrity": "sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==", - "dev": true, - "optional": true, - "requires": { - "buildcheck": "0.0.3", - "nan": "^2.15.0" - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cron-validate": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/cron-validate/-/cron-validate-1.4.5.tgz", - "integrity": "sha512-nKlOJEnYKudMn/aNyNH8xxWczlfpaazfWV32Pcx/2St51r2bxWbGhZD7uwzMcRhunA/ZNL+Htm/i0792Z59UMQ==", - "dev": true, - "requires": { - "yup": "0.32.9" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", - "dev": true - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", - "dev": true - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "docker-modem": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.6.tgz", - "integrity": "sha512-h0Ow21gclbYsZ3mkHDfsYNDqtRhXS8fXr51bU0qr1dxgTMJj0XufbzX+jhNOvA8KuEEzn6JbvLVhXyv+fny9Uw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "readable-stream": "^3.5.0", - "split-ca": "^1.0.1", - "ssh2": "^1.11.0" - } - }, - "dockerode": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.4.tgz", - "integrity": "sha512-3EUwuXnCU+RUlQEheDjmBE0B7q66PV9Rw5NiH1sXwINq0M9c5ERP9fxgkw36ZHOtzf4AGEEYySnkx/sACC9EgQ==", - "dev": true, - "requires": { - "@balena/dockerignore": "^1.0.2", - "docker-modem": "^3.0.0", - "tar-fs": "~2.0.1" - } - }, - "easy-table": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz", - "integrity": "sha1-hvmrTBAvA3G3KXuSplHVgkvIy3M=", - "dev": true, - "requires": { - "wcwidth": ">=1.0.1" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.71", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz", - "integrity": "sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "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==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", - "dev": true, - "requires": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true - }, - "event-lite": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz", - "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==", - "dev": true - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "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==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "fast-text-encoding": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", - "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==", - "dev": true - }, - "fast-xml-parser": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", - "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", - "dev": true, - "requires": { - "strnum": "^1.0.4" - } - }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", - "dev": true - }, - "fibers": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/fibers/-/fibers-5.0.3.tgz", - "integrity": "sha512-/qYTSoZydQkM21qZpGLDLuCq8c+B8KhuCQ1kLPvnRNhxhVbvrpmH9l2+Lblf5neDuEsY4bfT7LeO553TXQDvJw==", - "dev": true, - "requires": { - "detect-libc": "^1.0.3" - }, - "dependencies": { - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true - } - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - } - } - }, - "filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "dev": true - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "fluent-logger": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/fluent-logger/-/fluent-logger-3.4.1.tgz", - "integrity": "sha512-lERIhXAvhtCYeQq8K7sBDg/HY9GkiVRq5xY3oN+hcSINVKwqwBzG6LQOJK73EnV50qO59U7XEmRnn2hBzLWaHw==", - "dev": true, - "requires": { - "msgpack-lite": "*" - } - }, - "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==", - "dev": true - }, - "follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", - "dev": true - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true - }, - "foreachasync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", - "integrity": "sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw==", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "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==", - "dev": true - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - } - }, - "gaxios": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.3.4.tgz", - "integrity": "sha512-US8UMj8C5pRnao3Zykc4AAVr+cffoNKRTg9Rsf2GiuZCW69vgJj38VK2PzlPuQU73FZ/nTk9/Av6/JGcE1N9vA==", - "dev": true, - "requires": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" - } - }, - "gcp-metadata": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-3.5.0.tgz", - "integrity": "sha512-ZQf+DLZ5aKcRpLzYUyBS3yo3N0JSa82lNDO8rj3nMSlovLcz2riKFBsYgDzeXcv75oo5eqB2lx+B14UvPoCRnA==", - "dev": true, - "requires": { - "gaxios": "^2.1.0", - "json-bigint": "^0.3.0" - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "peer": true - }, - "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==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "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==", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "google-auth-library": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-5.10.1.tgz", - "integrity": "sha512-rOlaok5vlpV9rSiUu5EpR0vVpc+PhN62oF4RyX/6++DG1VsaulAFEMlDYBLjJDDPI6OcNOCGAKy9UVB/3NIDXg==", - "dev": true, - "requires": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^2.1.0", - "gcp-metadata": "^3.4.0", - "gtoken": "^4.1.0", - "jws": "^4.0.0", - "lru-cache": "^5.0.0" - } - }, - "google-p12-pem": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.5.tgz", - "integrity": "sha512-7RLkxwSsMsYh9wQ5Vb2zRtkAHvqPvfoMGag+nugl1noYO7gf0844Yr9TIFA5NEBMAeVt2Z+Imu7CQMp3oNatzQ==", - "dev": true, - "requires": { - "node-forge": "^0.10.0" - }, - "dependencies": { - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true - } - } - }, - "google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==", - "dev": true - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true - }, - "grpc-boom": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/grpc-boom/-/grpc-boom-3.0.11.tgz", - "integrity": "sha512-bdGLCww+w+CWHdT0Fm2AzoRToJJHzlIEfTggkquUO9JG5d2TU+yUIuk4ksWQ2B+LFQpxLaB7ZbZXKBPkErtW5w==", - "dev": true, - "requires": {} - }, - "grpc-interceptors": { - "version": "git+ssh://git@github.com/fonoster/node-grpc-interceptors.git#3ccc1d222f8a66e319a0e1e93bd18095aeaeb141", - "dev": true, - "from": "grpc-interceptors@github:fonoster/node-grpc-interceptors", - "requires": { - "zipkin": "^0.12.0", - "zipkin-transport-http": "^0.22.0" - } - }, - "grpc-promise": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/grpc-promise/-/grpc-promise-1.4.0.tgz", - "integrity": "sha512-4BBXHXb5OjjBh7luylu8vFqL6H6aPn/LeqpQaSBeRzO/Xv95wHW/WkU9TJRqaCTMZ5wq9jTSvlJWp0vRJy1pVA==", - "dev": true - }, - "gtoken": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-4.1.4.tgz", - "integrity": "sha512-VxirzD0SWoFUo5p8RDP8Jt2AGyOmyYcT/pOUgDKJCK+iSw0TMqwrVfY37RXTNmoKwrzmDHSk0GMT9FsgVmnVSA==", - "dev": true, - "requires": { - "gaxios": "^2.1.0", - "google-p12-pem": "^2.0.0", - "jws": "^4.0.0", - "mime": "^2.2.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", - "dev": true, - "requires": { - "ansi-color": "^0.2.1", - "minimist": "^1.1.0", - "process": "^0.10.0", - "xtend": "^4.0.0" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "requires": { - "whatwg-encoding": "^2.0.0" - } - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-server": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", - "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", - "dev": true, - "requires": { - "basic-auth": "^2.0.1", - "chalk": "^4.1.2", - "corser": "^2.0.1", - "he": "^1.2.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy": "^1.18.1", - "mime": "^1.6.0", - "minimist": "^1.2.6", - "opener": "^1.5.1", - "portfinder": "^1.0.28", - "secure-compare": "3.0.1", - "union": "~0.5.0", - "url-join": "^4.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.2.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "int64-buffer": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz", - "integrity": "sha512-v7cSY1J8ydZ0GyjUHqF+1bshJ6cnEVLo9EnjB8p+4HDRPZc9N5jjmvUV7NvEsqQOKyH0pmIBFWXVQbiS0+OBbA==", - "dev": true - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "ioredis": { - "version": "4.28.5", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.28.5.tgz", - "integrity": "sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==", - "dev": true, - "requires": { - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.1", - "denque": "^1.1.0", - "lodash.defaults": "^4.2.0", - "lodash.flatten": "^4.4.0", - "lodash.isarguments": "^3.1.0", - "p-map": "^2.1.0", - "redis-commands": "1.7.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - } - }, - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "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==", - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true - }, - "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==", - "dev": true - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "is-valid-domain": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.1.6.tgz", - "integrity": "sha512-ZKtq737eFkZr71At8NxOFcP9O1K89gW3DkdrGMpp1upr/ueWjj+Weh4l9AI4rN0Gt8W2M1w7jrG2b/Yv83Ljpg==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "is-valid-host": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-valid-host/-/is-valid-host-1.0.1.tgz", - "integrity": "sha512-LPjR7ypIMG/MLCh/dkz4lqQw4KZWFD2AeHNSbY4Y9pGp2rnWMMWqBY/iJLMwoVbOIG2r2y7L/wS9pHhr0gYRrg==", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "iterare": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", - "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", - "dev": true - }, - "jaeger-client": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", - "dev": true, - "requires": { - "node-int64": "^0.4.0", - "opentracing": "^0.14.4", - "thriftrw": "^3.5.0", - "uuid": "^8.3.2", - "xorshift": "^1.1.1" - } - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-bigint": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.1.tgz", - "integrity": "sha512-DGWnSzmusIreWlEupsUelHrhwmPPE+FiQvg+drKfk2p+bdEYa5mp4PJ8JsCWqae0M2jQNb0HPvnwvf1qOTThzQ==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.0" - } - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "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==", - "dev": true - }, - "json-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz", - "integrity": "sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==", - "dev": true - }, - "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==", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "peer": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dev": true, - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dev": true, - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dev": true, - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "dev": true, - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "dev": true, - "requires": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "dev": true - }, - "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true - }, - "loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "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==", - "dev": true - }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "dev": true - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", - "dev": true - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "dev": true - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", - "dev": true - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "logform": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", - "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", - "dev": true, - "requires": { - "@colors/colors": "1.5.0", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "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==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, - "minimatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.1.tgz", - "integrity": "sha512-reLxBcKUPNBnc/sVtAbxgRVFSegoGeLaSjmphNhcwcolhYLRgtJscn5mRl6YRZNQv40Y7P6JM2YhSIsbL9OB5A==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true - }, - "minio": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/minio/-/minio-7.0.32.tgz", - "integrity": "sha512-txa7Vr0N24MKzeAybP/wY1jxbLnfGHXwZYyfFXuMW55HX2+HOcKEIgH4hU6Qj/kiMgyXs/ozHjAuLIDrR8nwLg==", - "dev": true, - "requires": { - "async": "^3.1.0", - "block-stream2": "^2.0.0", - "browser-or-node": "^1.3.0", - "buffer-crc32": "^0.2.13", - "crypto-browserify": "^3.12.0", - "es6-error": "^4.1.1", - "fast-xml-parser": "^3.17.5", - "ipaddr.js": "^2.0.1", - "json-stream": "^1.0.0", - "lodash": "^4.17.21", - "mime-types": "^2.1.14", - "mkdirp": "^0.5.1", - "query-string": "^7.1.1", - "through2": "^3.0.1", - "web-encoding": "^1.1.5", - "xml": "^1.0.0", - "xml2js": "^0.4.15" - } - }, - "minipass": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", - "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "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==", - "dev": true - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "module-details-from-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "msgpack-lite": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz", - "integrity": "sha512-SZ2IxeqZ1oRFGo0xFGbvBJWMp3yLIY9rlIJyxy8CGrwZn1f0ZK4r6jV/AM1r0FZMDUkWkglOk/eeKIL9g77Nxw==", - "dev": true, - "requires": { - "event-lite": "^0.1.1", - "ieee754": "^1.1.8", - "int64-buffer": "^0.1.9", - "isarray": "^1.0.0" - } - }, - "mustache": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz", - "integrity": "sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", - "dev": true, - "optional": true - }, - "nanoclone": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", - "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==", - "dev": true - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "ndjson": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", - "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", - "dev": true, - "requires": { - "json-stringify-safe": "^5.0.1", - "minimist": "^1.2.5", - "readable-stream": "^3.6.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "dependencies": { - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "requires": { - "readable-stream": "3" - } - } - } - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "network-address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz", - "integrity": "sha512-Q6878fmvItA1mE7H9Il46lONgFgTzX2f98zkS0c2YlkCACzNjwvum/8Kq693IQpxe9zy+w+Zm/4p0wQreLEtZw==", - "dev": true - }, - "node-addon-api": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz", - "integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==", - "dev": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", - "dev": true - }, - "node-vault": { - "version": "0.9.22", - "resolved": "https://registry.npmjs.org/node-vault/-/node-vault-0.9.22.tgz", - "integrity": "sha512-/IR+YvINFhCzxJA5x/KHUDymJerFaeqvPUE2zwceRig8yEIA41qfVKusmO6bqRGFkr/2f6CaBVp7YfabzQyteg==", - "dev": true, - "requires": { - "debug": "3.1.0", - "mustache": "^2.2.1", - "request": "2.88.0", - "request-promise-native": "1.0.7", - "tv4": "^1.2.7" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dev": true, - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "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==", - "dev": true, - "requires": { - "fn.name": "1.x.x" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true - }, - "openfaas-client": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/openfaas-client/-/openfaas-client-0.0.2.tgz", - "integrity": "sha512-Dv3sBrbRNmdh9Tjsam6E00Wyh7Ghspv3i9tv1kfRHiVnZV0bmH5rx6zJ8i4A8jCfYHuBdHONffhm9/xh/KSYBQ==", - "dev": true, - "requires": { - "bluebird": "^3.7.2", - "request": "^2.88.2", - "typescript": "^4.2.4" - } - }, - "opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==", - "dev": true - }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "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==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "requires": { - "retry": "^0.12.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==", - "dev": true - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true - }, - "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==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", - "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==", - "dev": true - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, - "phone": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/phone/-/phone-2.4.22.tgz", - "integrity": "sha512-k2f9qkIgcgbbeyFFMHDcCaYdPxq7u71EjmMvD998PEquwDvIT7zmUFe00S4hH9WPjk+IQlw9W/FlHOu1O17Tbw==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==", - "dev": true - }, - "property-expr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", - "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==", - "dev": true - }, - "protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "dev": true, - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==", - "dev": true - } - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - } - } - }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "dev": true - }, - "query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "dev": true, - "requires": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - }, - "redis-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", - "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==", - "dev": true - }, - "redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "dev": true - }, - "redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "dev": true, - "requires": { - "redis-errors": "^1.0.0" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "request-promise-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", - "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", - "dev": true, - "requires": { - "lodash": "^4.17.11" - } - }, - "request-promise-native": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", - "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", - "dev": true, - "requires": { - "request-promise-core": "1.1.2", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-in-the-middle": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", - "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "module-details-from-path": "^1.0.3", - "resolve": "^1.22.1" - } - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rollup": { - "version": "2.56.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz", - "integrity": "sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "rxjs": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz", - "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "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==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "secure-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", - "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "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==", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - } - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "shimmer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", - "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", - "dev": true - }, - "shred": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/shred/-/shred-0.8.10.tgz", - "integrity": "sha512-DQHh3pS3uroW6Okv66lHm6FTh0RPR+cBVveRS8XpH18MW4wr6fMQTfHUawBqKP4laIvSE1ENtkWvaSPmYXaqMA==", - "dev": true, - "requires": { - "ax": "0.1.8", - "cookiejar": "1.3.1", - "iconv-lite": ">= 0.1.2", - "sprintf": "0.1.1" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "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==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", - "dev": true - }, - "split-ca": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==", - "dev": true - }, - "split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "requires": { - "readable-stream": "^3.0.0" - } - }, - "sprintf": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/sprintf/-/sprintf-0.1.1.tgz", - "integrity": "sha512-4tw3/d54Ob/sMSkU2j+XhSCUhnXW0iWw3ztub6KvMeGC4SCMagADLuLinz8emveQgwmz197rAvVZQFA2vCCJCw==", - "dev": true - }, - "ssh2": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz", - "integrity": "sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==", - "dev": true, - "requires": { - "asn1": "^0.2.4", - "bcrypt-pbkdf": "^1.0.2", - "cpu-features": "~0.0.4", - "nan": "^2.16.0" - } - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "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==", - "dev": true - }, - "standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==", - "dev": true - }, - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, - "string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "swagger-client": { - "version": "2.0.26", - "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-2.0.26.tgz", - "integrity": "sha512-sClCI4QlqdRaiwofgwKIc4wsja4yxJph3ZkRF+gi/84ygAjx1q+c2ZHTfp3Ac0qe6JFGj3KIDEP/+GZzWnrY8A==", - "dev": true, - "requires": { - "btoa": "1.1.1", - "shred": "0.8.10" - }, - "dependencies": { - "btoa": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.1.1.tgz", - "integrity": "sha512-Zr8ZdgW3SQJSMZVouLvZ6jn1FLv5AqWnMbHKIs22M3uMbYdrmJ7dscocEJVIPO8REDQNsFiXdrlZNwbJrnLYPg==", - "dev": true - } - } - }, - "sync": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/sync/-/sync-0.2.5.tgz", - "integrity": "sha512-g7UDPo8z33h0KAr1cXDU0UzV3LTHONom/EuU7oyEgTEf4/sWR8OYzvKYwiEYqgCmMlbF8YQutoDAfw3hsDU5EQ==", - "dev": true, - "requires": { - "fibers": ">=0.6" - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "tar-fs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", - "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "terser": { - "version": "5.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", - "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - } - } - } - } - }, - "terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "dev": true, - "requires": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "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==", - "dev": true - }, - "thriftrw": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.12.0.tgz", - "integrity": "sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw==", - "dev": true, - "requires": { - "bufrw": "^1.3.0", - "error": "7.0.2", - "long": "^2.4.0" - }, - "dependencies": { - "long": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==", - "dev": true - } - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", - "dev": true - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tv4": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", - "integrity": "sha512-afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==", - "dev": true - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", - "dev": true - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true - }, - "union": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", - "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", - "dev": true, - "requires": { - "qs": "^6.4.0" - } - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - } - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true - } - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "dev": true - }, - "url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "walk": { - "version": "2.3.15", - "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz", - "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==", - "dev": true, - "requires": { - "foreachasync": "^3.0.0" - } - }, - "walkdir": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", - "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", - "dev": true - }, - "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "web-encoding": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "dev": true, - "requires": { - "@zxing/text-encoding": "0.9.0", - "util": "^0.12.3" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - }, - "webpack": { - "version": "5.76.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.0.tgz", - "integrity": "sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "webpack-cli": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", - "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.1.1", - "@webpack-cli/info": "^1.4.1", - "@webpack-cli/serve": "^1.6.1", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - } - } - }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true - }, - "whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "requires": { - "iconv-lite": "0.6.3" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "winston": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", - "dev": true, - "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==", - "dev": true, - "requires": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.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==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", - "dev": true - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true - }, - "xorshift": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "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==", - "dev": true - }, - "yup": { - "version": "0.32.9", - "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", - "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.5", - "@types/lodash": "^4.14.165", - "lodash": "^4.17.20", - "lodash-es": "^4.17.15", - "nanoclone": "^0.2.1", - "property-expr": "^2.0.4", - "toposort": "^2.0.2" - } - }, - "zipkin": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.12.0.tgz", - "integrity": "sha512-QguH/UQt/ofUVcTJLW7qdyi7iEo71MJJbKg/6d/m3ptvxhm5gDVf/KVuCEfzxxzzWGSKtX+c+qACvowsPkNjuQ==", - "dev": true, - "requires": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0", - "network-address": "^1.1.0" - } - }, - "zipkin-transport-http": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin-transport-http/-/zipkin-transport-http-0.22.0.tgz", - "integrity": "sha512-bjM2fm/hurseBuvpyB8mYCBBGOz3gc2f9KUSQl71LGxmgYcUeXvDHJyE9MgzWMhl+3HcD8l5nNn6OmdX63he+g==", - "dev": true, - "requires": { - "zipkin": "^0.22.0" - }, - "dependencies": { - "zipkin": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/zipkin/-/zipkin-0.22.0.tgz", - "integrity": "sha512-SZgorBAvywnj5R26mqsFP+2MRUsBXGg0B8GLRLw9R0FeE4alMUAfhXYvzeAt2+MvkXne9QdQyziuqO5oXNQ0Sg==", - "dev": true, - "requires": { - "base64-js": "^1.1.2", - "is-promise": "^2.1.0" - } - } - } - } - } -} diff --git a/mods/websdk/package.json b/mods/websdk/package.json deleted file mode 100644 index b73e6f80d..000000000 --- a/mods/websdk/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "@fonoster/websdk", - "version": "0.3.22", - "description": "Fonoster WebSDK module", - "author": "Pedro Sanders ", - "homepage": "https://github.com/fonoster/fonoster#readme", - "license": "MIT", - "main": "dist/websdk.js", - "jsdelivr": "dist/websdk.js", - "unpkg": "dist/websdk.js", - "scripts": { - "pregenerate": ".scripts/download_swagger_file.sh", - "generate": "openapi-generator-cli generate --remove-operation-id-prefix -i ./swagger.json -g typescript-axios -o ./src/generated/api/ --additional-properties=typescriptThreePlus=true", - "prebuild": "rimraf ./dist tsconfig.tsbuildinfo", - "build": "tsc -b tsconfig.json && webpack --progress --config webpack.config.cjs", - "start": "http-server . -o -c10" - }, - "directories": { - "src": "src", - "test": "test" - }, - "files": [ - "dist" - ], - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fonoster/fonoster.git" - }, - "bugs": { - "url": "https://github.com/fonoster/fonoster/issues" - }, - "devDependencies": { - "@babel/plugin-transform-runtime": "^7.15.8", - "@babel/preset-env": "^7.15.8", - "@fonoster/agents": "^0.3.22", - "@fonoster/auth": "^0.3.22", - "@fonoster/callmanager": "^0.3.22", - "@fonoster/common": "^0.3.22", - "@fonoster/domains": "^0.3.22", - "@fonoster/funcs": "^0.3.22", - "@fonoster/logger": "^0.3.22", - "@fonoster/numbers": "^0.3.22", - "@fonoster/projects": "^0.3.22", - "@fonoster/providers": "^0.3.22", - "@fonoster/secrets": "^0.3.22", - "@fonoster/storage": "^0.3.22", - "@fonoster/users": "^0.3.22", - "@openapitools/openapi-generator-cli": "^2.4.13", - "babel": "^6.23.0", - "babel-core": "^6.26.3", - "babel-loader": "^8.2.3", - "http-server": "^14.1.0", - "rollup": "2.56.3", - "tslib": "2.3.1", - "webpack": "^5.60.0", - "webpack-cli": "^4.9.1" - }, - "gitHead": "9834f90642e6603cb00ae0ec76ec798f74ed2135" -} diff --git a/mods/websdk/src/agents.ts b/mods/websdk/src/agents.ts deleted file mode 100644 index 340bfd4e7..000000000 --- a/mods/websdk/src/agents.ts +++ /dev/null @@ -1,60 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable require-jsdoc */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebAPIClient from "@fonoster/common/dist/web_client"; -import { WebClientOptions } from "@fonoster/common/dist/types"; -import { IAgentsClient } from "@fonoster/agents"; -import { - CreateAgentRequest, - CreateAgentResponse, - DeleteAgentResponse, - GetAgentResponse, - ListAgentsRequest, - ListAgentsResponse, - UpdateAgentRequest, - UpdateAgentResponse -} from "@fonoster/agents/src/client/types"; -import * as c from "./generated/api"; - -export default class Agents extends WebAPIClient implements IAgentsClient { - constructor(options: WebClientOptions) { - super(c, "AgentsApi", options); - } - - async createAgent(request: CreateAgentRequest): Promise { - return (await super.run("createAgent", request)) as any; - } - - async getAgent(ref: string): Promise { - return (await super.run("getAgent", ref)) as any; - } - - async updateAgent(request: UpdateAgentRequest): Promise { - return (await super.run("updateAgent", request)) as any; - } - - async listAgents(request: ListAgentsRequest): Promise { - return (await super.run("listAgents", request)) as any; - } - - async deleteAgent(ref: string): Promise { - return (await super.run("deleteAgent", ref)) as any; - } -} diff --git a/mods/websdk/src/auth.ts b/mods/websdk/src/auth.ts deleted file mode 100644 index 8c04923bf..000000000 --- a/mods/websdk/src/auth.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable require-jsdoc */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebAPIClient from "@fonoster/common/dist/web_client"; -import { WebClientOptions } from "@fonoster/common/dist/types"; -import { IAuthClient } from "@fonoster/auth/src/client/types"; -import { - CreateTokenRequest, - CreateTokenResponse, - ValidateTokenRequest -} from "@fonoster/auth/src/client/types"; -import * as c from "./generated/api"; - -export default class Auth extends WebAPIClient implements IAuthClient { - constructor(options: WebClientOptions) { - super(c, "AuthApi", options); - } - - async createToken(request: CreateTokenRequest): Promise { - return (await super.run("createToken", request)) as any; - } - - async createNoAccessToken( - request: CreateTokenRequest - ): Promise { - return (await super.run("createNoAccessToken", request)) as any; - } - - async validateToken(request: ValidateTokenRequest): Promise { - return (await super.run("validateToken", request)) as any; - } -} diff --git a/mods/websdk/src/callmanager.ts b/mods/websdk/src/callmanager.ts deleted file mode 100644 index 690b5ef19..000000000 --- a/mods/websdk/src/callmanager.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable require-jsdoc */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebAPIClient from "@fonoster/common/dist/web_client"; -import { WebClientOptions } from "@fonoster/common/dist/types"; -import { ICallManagerClient } from "@fonoster/callmanager"; -import { - CallRequest, - CallResponse -} from "@fonoster/callmanager/src/client/types"; -import * as c from "./generated/api"; - -export default class CallManager - extends WebAPIClient - implements ICallManagerClient -{ - constructor(options: WebClientOptions) { - super(c, "CallManagerApi", options); - } - - async call(request: CallRequest): Promise { - return (await super.run("call", request)) as any; - } -} diff --git a/mods/websdk/src/domains.ts b/mods/websdk/src/domains.ts deleted file mode 100644 index c10dddeb0..000000000 --- a/mods/websdk/src/domains.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable require-jsdoc */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebAPIClient from "@fonoster/common/dist/web_client"; -import { WebClientOptions } from "@fonoster/common/dist/types"; -import { IDomainsClient } from "@fonoster/domains"; -import { - CreateDomainRequest, - CreateDomainResponse, - DeleteDomainResponse, - GetDomainResponse, - ListDomainsRequest, - ListDomainsResponse, - UpdateDomainRequest, - UpdateDomainResponse -} from "@fonoster/domains/src/client/types"; -import * as c from "./generated/api"; - -export default class Domains extends WebAPIClient implements IDomainsClient { - constructor(options: WebClientOptions) { - super(c, "DomainsApi", options); - } - - async createDomain( - request: CreateDomainRequest - ): Promise { - return (await super.run("createDomain", request)) as any; - } - - async getDomain(ref: string): Promise { - return (await super.run("getDomain", ref)) as any; - } - - async updateDomain( - request: UpdateDomainRequest - ): Promise { - return (await super.run("updateDomain", request)) as any; - } - - async listDomains(request: ListDomainsRequest): Promise { - return (await super.run("listDomains", request)) as any; - } - - async deleteDomain(ref: string): Promise { - return (await super.run("deleteDomain", ref)) as any; - } -} diff --git a/mods/websdk/src/funcs.ts b/mods/websdk/src/funcs.ts deleted file mode 100644 index 6e0791717..000000000 --- a/mods/websdk/src/funcs.ts +++ /dev/null @@ -1,64 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable require-jsdoc */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebAPIClient from "@fonoster/common/dist/web_client"; -import { WebClientOptions } from "@fonoster/common/dist/types"; -import { - IFuncsClient, - DeployFuncRequest, - GetFuncRequest, - GetFuncResponse, - DeleteFuncResponse, - DeleteFuncRequest, - ListFuncsRequest, - ListFuncsResponse, - GetFuncLogsRequest -} from "@fonoster/funcs/src/client/types"; -import { - DeployStream, - LogsStream -} from "@fonoster/funcs/src/client/stream_wrappers"; -import * as c from "./generated/api"; - -export default class Agents extends WebAPIClient implements IFuncsClient { - constructor(options: WebClientOptions) { - super(c, "FuncsApi", options); - } - - async deployFunc(request: DeployFuncRequest): Promise { - return (await super.run("deployFunc", request)) as any; - } - - async getFunc(request: GetFuncRequest): Promise { - return (await super.run("getFunc", request)) as any; - } - - async deleteFunc(request: DeleteFuncRequest): Promise { - return (await super.run("deleteFunc", request)) as any; - } - - async listFuncs(request: ListFuncsRequest): Promise { - return (await super.run("listFuncs", request)) as any; - } - - async getFuncLogs(request: GetFuncLogsRequest): Promise { - return (await super.run("getFuncLogs", request)) as any; - } -} diff --git a/mods/websdk/src/generated/api/.gitignore b/mods/websdk/src/generated/api/.gitignore deleted file mode 100644 index 149b57654..000000000 --- a/mods/websdk/src/generated/api/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -wwwroot/*.js -node_modules -typings -dist diff --git a/mods/websdk/src/generated/api/.npmignore b/mods/websdk/src/generated/api/.npmignore deleted file mode 100644 index 999d88df6..000000000 --- a/mods/websdk/src/generated/api/.npmignore +++ /dev/null @@ -1 +0,0 @@ -# empty npmignore to ensure all required files (e.g., in the dist folder) are published by npm \ No newline at end of file diff --git a/mods/websdk/src/generated/api/.openapi-generator-ignore b/mods/websdk/src/generated/api/.openapi-generator-ignore deleted file mode 100644 index 7484ee590..000000000 --- a/mods/websdk/src/generated/api/.openapi-generator-ignore +++ /dev/null @@ -1,23 +0,0 @@ -# OpenAPI Generator Ignore -# Generated by openapi-generator https://github.com/openapitools/openapi-generator - -# Use this file to prevent files from being overwritten by the generator. -# The patterns follow closely to .gitignore or .dockerignore. - -# As an example, the C# client generator defines ApiClient.cs. -# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: -#ApiClient.cs - -# You can match any string of characters against a directory, file or extension with a single asterisk (*): -#foo/*/qux -# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux - -# You can recursively match patterns against a directory, file or extension with a double asterisk (**): -#foo/**/qux -# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux - -# You can also negate patterns with an exclamation (!). -# For example, you can ignore all files in a docs folder with the file extension .md: -#docs/*.md -# Then explicitly reverse the ignore rule for a single file: -#!docs/README.md diff --git a/mods/websdk/src/generated/api/.openapi-generator/FILES b/mods/websdk/src/generated/api/.openapi-generator/FILES deleted file mode 100644 index a80cd4f07..000000000 --- a/mods/websdk/src/generated/api/.openapi-generator/FILES +++ /dev/null @@ -1,8 +0,0 @@ -.gitignore -.npmignore -api.ts -base.ts -common.ts -configuration.ts -git_push.sh -index.ts diff --git a/mods/websdk/src/generated/api/.openapi-generator/VERSION b/mods/websdk/src/generated/api/.openapi-generator/VERSION deleted file mode 100644 index e230c8396..000000000 --- a/mods/websdk/src/generated/api/.openapi-generator/VERSION +++ /dev/null @@ -1 +0,0 @@ -5.3.0 \ No newline at end of file diff --git a/mods/websdk/src/generated/api/api.js b/mods/websdk/src/generated/api/api.js deleted file mode 100644 index db82ca89b..000000000 --- a/mods/websdk/src/generated/api/api.js +++ /dev/null @@ -1,3480 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Project Fonos - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: v1beta1 - * Contact: psanders@fonoster.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -import globalAxios from 'axios'; -// Some imports not used depending on template conditions -// @ts-ignore -import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common'; -// @ts-ignore -import { BASE_PATH, BaseAPI } from './base'; -/** - * - * @export - * @enum {string} - */ -export var GetObjectURLRequestBucket; -(function (GetObjectURLRequestBucket) { - GetObjectURLRequestBucket["Apps"] = "APPS"; - GetObjectURLRequestBucket["Recordings"] = "RECORDINGS"; - GetObjectURLRequestBucket["Public"] = "PUBLIC"; - GetObjectURLRequestBucket["Funcs"] = "FUNCS"; -})(GetObjectURLRequestBucket || (GetObjectURLRequestBucket = {})); -/** - * - * @export - * @enum {string} - */ -export var UploadObjectRequestBucket; -(function (UploadObjectRequestBucket) { - UploadObjectRequestBucket["Apps"] = "APPS"; - UploadObjectRequestBucket["Recordings"] = "RECORDINGS"; - UploadObjectRequestBucket["Public"] = "PUBLIC"; - UploadObjectRequestBucket["Funcs"] = "FUNCS"; -})(UploadObjectRequestBucket || (UploadObjectRequestBucket = {})); -/** - * - * @export - * @enum {string} - */ -export var View; -(function (View) { - View["Basic"] = "BASIC"; - View["Standard"] = "STANDARD"; - View["Full"] = "FULL"; -})(View || (View = {})); -/** - * AgentsApi - axios parameter creator - * @export - */ -export const AgentsApiAxiosParamCreator = function (configuration) { - return { - /** - * - * @summary Creates a new Agent resource - * @param {CreateAgentRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createAgent: (body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'body' is not null or undefined - assertParamExists('createAgent', 'body', body); - const localVarPath = `/v1beta1/agents`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Hard delete of an Agent resource - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteAgent: (ref, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('deleteAgent', 'ref', ref); - const localVarPath = `/v1beta1/agents/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Gets Agent by reference - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getAgent: (ref, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('getAgent', 'ref', ref); - const localVarPath = `/v1beta1/agents/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Lists Agents from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listAgents: (pageSize, pageToken, view, options = {}) => __awaiter(this, void 0, void 0, function* () { - const localVarPath = `/v1beta1/agents`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - if (pageSize !== undefined) { - localVarQueryParameter['pageSize'] = pageSize; - } - if (pageToken !== undefined) { - localVarQueryParameter['pageToken'] = pageToken; - } - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Agent\'s reference - * @param {InlineObject} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateAgent: (ref, body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('updateAgent', 'ref', ref); - // verify required parameter 'body' is not null or undefined - assertParamExists('updateAgent', 'body', body); - const localVarPath = `/v1beta1/agents/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - }; -}; -/** - * AgentsApi - functional programming interface - * @export - */ -export const AgentsApiFp = function (configuration) { - const localVarAxiosParamCreator = AgentsApiAxiosParamCreator(configuration); - return { - /** - * - * @summary Creates a new Agent resource - * @param {CreateAgentRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createAgent(body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.createAgent(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Hard delete of an Agent resource - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteAgent(ref, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.deleteAgent(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Gets Agent by reference - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getAgent(ref, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.getAgent(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Lists Agents from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listAgents(pageSize, pageToken, view, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.listAgents(pageSize, pageToken, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Agent\'s reference - * @param {InlineObject} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateAgent(ref, body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.updateAgent(ref, body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - }; -}; -/** - * AgentsApi - factory interface - * @export - */ -export const AgentsApiFactory = function (configuration, basePath, axios) { - const localVarFp = AgentsApiFp(configuration); - return { - /** - * - * @summary Creates a new Agent resource - * @param {CreateAgentRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createAgent(body, options) { - return localVarFp.createAgent(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Hard delete of an Agent resource - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteAgent(ref, options) { - return localVarFp.deleteAgent(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets Agent by reference - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getAgent(ref, options) { - return localVarFp.getAgent(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Lists Agents from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listAgents(pageSize, pageToken, view, options) { - return localVarFp.listAgents(pageSize, pageToken, view, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Agent\'s reference - * @param {InlineObject} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateAgent(ref, body, options) { - return localVarFp.updateAgent(ref, body, options).then((request) => request(axios, basePath)); - }, - }; -}; -/** - * AgentsApi - object-oriented interface - * @export - * @class AgentsApi - * @extends {BaseAPI} - */ -export class AgentsApi extends BaseAPI { - /** - * - * @summary Creates a new Agent resource - * @param {CreateAgentRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AgentsApi - */ - createAgent(body, options) { - return AgentsApiFp(this.configuration).createAgent(body, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Hard delete of an Agent resource - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AgentsApi - */ - deleteAgent(ref, options) { - return AgentsApiFp(this.configuration).deleteAgent(ref, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Gets Agent by reference - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AgentsApi - */ - getAgent(ref, options) { - return AgentsApiFp(this.configuration).getAgent(ref, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Lists Agents from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AgentsApi - */ - listAgents(pageSize, pageToken, view, options) { - return AgentsApiFp(this.configuration).listAgents(pageSize, pageToken, view, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Agent\'s reference - * @param {InlineObject} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AgentsApi - */ - updateAgent(ref, body, options) { - return AgentsApiFp(this.configuration).updateAgent(ref, body, options).then((request) => request(this.axios, this.basePath)); - } -} -/** - * AuthApi - axios parameter creator - * @export - */ -export const AuthApiAxiosParamCreator = function (configuration) { - return { - /** - * - * @summary Creates a new token for a given accessKeyId - * @param {CreateTokenRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createToken: (body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'body' is not null or undefined - assertParamExists('createToken', 'body', body); - const localVarPath = `/v1beta1/auth/token`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Gets a role by name - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getRole: (name, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'name' is not null or undefined - assertParamExists('getRole', 'name', name); - const localVarPath = `/v1beta1/auth/role/{name}` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Verifies if a token was issue by Fonos - * @param {string} token - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - validateToken: (token, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'token' is not null or undefined - assertParamExists('validateToken', 'token', token); - const localVarPath = `/v1beta1/auth/token/{token}` - .replace(`{${"token"}}`, encodeURIComponent(String(token))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - }; -}; -/** - * AuthApi - functional programming interface - * @export - */ -export const AuthApiFp = function (configuration) { - const localVarAxiosParamCreator = AuthApiAxiosParamCreator(configuration); - return { - /** - * - * @summary Creates a new token for a given accessKeyId - * @param {CreateTokenRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createToken(body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.createToken(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Gets a role by name - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getRole(name, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.getRole(name, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Verifies if a token was issue by Fonos - * @param {string} token - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - validateToken(token, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.validateToken(token, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - }; -}; -/** - * AuthApi - factory interface - * @export - */ -export const AuthApiFactory = function (configuration, basePath, axios) { - const localVarFp = AuthApiFp(configuration); - return { - /** - * - * @summary Creates a new token for a given accessKeyId - * @param {CreateTokenRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createToken(body, options) { - return localVarFp.createToken(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets a role by name - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getRole(name, options) { - return localVarFp.getRole(name, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Verifies if a token was issue by Fonos - * @param {string} token - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - validateToken(token, options) { - return localVarFp.validateToken(token, options).then((request) => request(axios, basePath)); - }, - }; -}; -/** - * AuthApi - object-oriented interface - * @export - * @class AuthApi - * @extends {BaseAPI} - */ -export class AuthApi extends BaseAPI { - /** - * - * @summary Creates a new token for a given accessKeyId - * @param {CreateTokenRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AuthApi - */ - createToken(body, options) { - return AuthApiFp(this.configuration).createToken(body, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Gets a role by name - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AuthApi - */ - getRole(name, options) { - return AuthApiFp(this.configuration).getRole(name, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Verifies if a token was issue by Fonos - * @param {string} token - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AuthApi - */ - validateToken(token, options) { - return AuthApiFp(this.configuration).validateToken(token, options).then((request) => request(this.axios, this.basePath)); - } -} -/** - * CallManagerApi - axios parameter creator - * @export - */ -export const CallManagerApiAxiosParamCreator = function (configuration) { - return { - /** - * - * @summary Originates a call and pass channel to an application - * @param {CallRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - call: (body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'body' is not null or undefined - assertParamExists('call', 'body', body); - const localVarPath = `/v1beta1/call`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - }; -}; -/** - * CallManagerApi - functional programming interface - * @export - */ -export const CallManagerApiFp = function (configuration) { - const localVarAxiosParamCreator = CallManagerApiAxiosParamCreator(configuration); - return { - /** - * - * @summary Originates a call and pass channel to an application - * @param {CallRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - call(body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.call(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - }; -}; -/** - * CallManagerApi - factory interface - * @export - */ -export const CallManagerApiFactory = function (configuration, basePath, axios) { - const localVarFp = CallManagerApiFp(configuration); - return { - /** - * - * @summary Originates a call and pass channel to an application - * @param {CallRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - call(body, options) { - return localVarFp.call(body, options).then((request) => request(axios, basePath)); - }, - }; -}; -/** - * CallManagerApi - object-oriented interface - * @export - * @class CallManagerApi - * @extends {BaseAPI} - */ -export class CallManagerApi extends BaseAPI { - /** - * - * @summary Originates a call and pass channel to an application - * @param {CallRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof CallManagerApi - */ - call(body, options) { - return CallManagerApiFp(this.configuration).call(body, options).then((request) => request(this.axios, this.basePath)); - } -} -/** - * DomainsApi - axios parameter creator - * @export - */ -export const DomainsApiAxiosParamCreator = function (configuration) { - return { - /** - * - * @summary Creates a new Domain resource - * @param {CreateDomainRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createDomain: (body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'body' is not null or undefined - assertParamExists('createDomain', 'body', body); - const localVarPath = `/v1beta1/domains`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Hard delete of a domain resource - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteDomain: (ref, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('deleteDomain', 'ref', ref); - const localVarPath = `/v1beta1/domains/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Gets a Domain by reference - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getDomain: (ref, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('getDomain', 'ref', ref); - const localVarPath = `/v1beta1/domains/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Domain\'s reference - * @param {InlineObject1} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateDomain: (ref, body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('updateDomain', 'ref', ref); - // verify required parameter 'body' is not null or undefined - assertParamExists('updateDomain', 'body', body); - const localVarPath = `/v1beta1/domains/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - }; -}; -/** - * DomainsApi - functional programming interface - * @export - */ -export const DomainsApiFp = function (configuration) { - const localVarAxiosParamCreator = DomainsApiAxiosParamCreator(configuration); - return { - /** - * - * @summary Creates a new Domain resource - * @param {CreateDomainRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createDomain(body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.createDomain(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Hard delete of a domain resource - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteDomain(ref, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.deleteDomain(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Gets a Domain by reference - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getDomain(ref, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.getDomain(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Domain\'s reference - * @param {InlineObject1} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateDomain(ref, body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.updateDomain(ref, body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - }; -}; -/** - * DomainsApi - factory interface - * @export - */ -export const DomainsApiFactory = function (configuration, basePath, axios) { - const localVarFp = DomainsApiFp(configuration); - return { - /** - * - * @summary Creates a new Domain resource - * @param {CreateDomainRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createDomain(body, options) { - return localVarFp.createDomain(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Hard delete of a domain resource - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteDomain(ref, options) { - return localVarFp.deleteDomain(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets a Domain by reference - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getDomain(ref, options) { - return localVarFp.getDomain(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Domain\'s reference - * @param {InlineObject1} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateDomain(ref, body, options) { - return localVarFp.updateDomain(ref, body, options).then((request) => request(axios, basePath)); - }, - }; -}; -/** - * DomainsApi - object-oriented interface - * @export - * @class DomainsApi - * @extends {BaseAPI} - */ -export class DomainsApi extends BaseAPI { - /** - * - * @summary Creates a new Domain resource - * @param {CreateDomainRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DomainsApi - */ - createDomain(body, options) { - return DomainsApiFp(this.configuration).createDomain(body, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Hard delete of a domain resource - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DomainsApi - */ - deleteDomain(ref, options) { - return DomainsApiFp(this.configuration).deleteDomain(ref, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Gets a Domain by reference - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DomainsApi - */ - getDomain(ref, options) { - return DomainsApiFp(this.configuration).getDomain(ref, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Domain\'s reference - * @param {InlineObject1} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DomainsApi - */ - updateDomain(ref, body, options) { - return DomainsApiFp(this.configuration).updateDomain(ref, body, options).then((request) => request(this.axios, this.basePath)); - } -} -/** - * FuncsApi - axios parameter creator - * @export - */ -export const FuncsApiAxiosParamCreator = function (configuration) { - return { - /** - * - * @summary Peforms a hard delete of the function - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteFunc: (name, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'name' is not null or undefined - assertParamExists('deleteFunc', 'name', name); - const localVarPath = `/v1beta1/funcs/{name}` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Gets a function by name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Requested level of detail. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getFunc: (name, view, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'name' is not null or undefined - assertParamExists('getFunc', 'name', name); - const localVarPath = `/v1beta1/funcs/{name}` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Peforms a hard delete of the function - * @param {string} name - * @param {string} [since] Only return logs after a specific date (RFC3339). - * @param {number} [tail] - * @param {boolean} [follow] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getFuncLogs: (name, since, tail, follow, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'name' is not null or undefined - assertParamExists('getFuncLogs', 'name', name); - const localVarPath = `/v1beta1/funcs/{name}/logs` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - if (since !== undefined) { - localVarQueryParameter['since'] = since; - } - if (tail !== undefined) { - localVarQueryParameter['tail'] = tail; - } - if (follow !== undefined) { - localVarQueryParameter['follow'] = follow; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Shows a list of user functions - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listFuncs: (pageSize, pageToken, view, options = {}) => __awaiter(this, void 0, void 0, function* () { - const localVarPath = `/v1beta1/funcs`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - if (pageSize !== undefined) { - localVarQueryParameter['pageSize'] = pageSize; - } - if (pageToken !== undefined) { - localVarQueryParameter['pageToken'] = pageToken; - } - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - }; -}; -/** - * FuncsApi - functional programming interface - * @export - */ -export const FuncsApiFp = function (configuration) { - const localVarAxiosParamCreator = FuncsApiAxiosParamCreator(configuration); - return { - /** - * - * @summary Peforms a hard delete of the function - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteFunc(name, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.deleteFunc(name, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Gets a function by name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Requested level of detail. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getFunc(name, view, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.getFunc(name, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Peforms a hard delete of the function - * @param {string} name - * @param {string} [since] Only return logs after a specific date (RFC3339). - * @param {number} [tail] - * @param {boolean} [follow] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getFuncLogs(name, since, tail, follow, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.getFuncLogs(name, since, tail, follow, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Shows a list of user functions - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listFuncs(pageSize, pageToken, view, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.listFuncs(pageSize, pageToken, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - }; -}; -/** - * FuncsApi - factory interface - * @export - */ -export const FuncsApiFactory = function (configuration, basePath, axios) { - const localVarFp = FuncsApiFp(configuration); - return { - /** - * - * @summary Peforms a hard delete of the function - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteFunc(name, options) { - return localVarFp.deleteFunc(name, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets a function by name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Requested level of detail. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getFunc(name, view, options) { - return localVarFp.getFunc(name, view, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Peforms a hard delete of the function - * @param {string} name - * @param {string} [since] Only return logs after a specific date (RFC3339). - * @param {number} [tail] - * @param {boolean} [follow] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getFuncLogs(name, since, tail, follow, options) { - return localVarFp.getFuncLogs(name, since, tail, follow, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Shows a list of user functions - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listFuncs(pageSize, pageToken, view, options) { - return localVarFp.listFuncs(pageSize, pageToken, view, options).then((request) => request(axios, basePath)); - }, - }; -}; -/** - * FuncsApi - object-oriented interface - * @export - * @class FuncsApi - * @extends {BaseAPI} - */ -export class FuncsApi extends BaseAPI { - /** - * - * @summary Peforms a hard delete of the function - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FuncsApi - */ - deleteFunc(name, options) { - return FuncsApiFp(this.configuration).deleteFunc(name, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Gets a function by name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Requested level of detail. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FuncsApi - */ - getFunc(name, view, options) { - return FuncsApiFp(this.configuration).getFunc(name, view, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Peforms a hard delete of the function - * @param {string} name - * @param {string} [since] Only return logs after a specific date (RFC3339). - * @param {number} [tail] - * @param {boolean} [follow] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FuncsApi - */ - getFuncLogs(name, since, tail, follow, options) { - return FuncsApiFp(this.configuration).getFuncLogs(name, since, tail, follow, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Shows a list of user functions - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FuncsApi - */ - listFuncs(pageSize, pageToken, view, options) { - return FuncsApiFp(this.configuration).listFuncs(pageSize, pageToken, view, options).then((request) => request(this.axios, this.basePath)); - } -} -/** - * NumbersApi - axios parameter creator - * @export - */ -export const NumbersApiAxiosParamCreator = function (configuration) { - return { - /** - * - * @summary Creates a new Number resource - * @param {CreateNumberRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createNumber: (body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'body' is not null or undefined - assertParamExists('createNumber', 'body', body); - const localVarPath = `/v1beta1/numbers`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Hard delete of a Number resource - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteNumber: (ref, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('deleteNumber', 'ref', ref); - const localVarPath = `/v1beta1/numbers/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Gets Number using its reference - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getNumber: (ref, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('getNumber', 'ref', ref); - const localVarPath = `/v1beta1/numbers/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Lists Numbers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listNumbers: (pageSize, pageToken, view, options = {}) => __awaiter(this, void 0, void 0, function* () { - const localVarPath = `/v1beta1/numbers`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - if (pageSize !== undefined) { - localVarQueryParameter['pageSize'] = pageSize; - } - if (pageToken !== undefined) { - localVarQueryParameter['pageToken'] = pageToken; - } - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Number\'s reference - * @param {InlineObject2} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateNumber: (ref, body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('updateNumber', 'ref', ref); - // verify required parameter 'body' is not null or undefined - assertParamExists('updateNumber', 'body', body); - const localVarPath = `/v1beta1/numbers/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - }; -}; -/** - * NumbersApi - functional programming interface - * @export - */ -export const NumbersApiFp = function (configuration) { - const localVarAxiosParamCreator = NumbersApiAxiosParamCreator(configuration); - return { - /** - * - * @summary Creates a new Number resource - * @param {CreateNumberRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createNumber(body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.createNumber(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Hard delete of a Number resource - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteNumber(ref, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.deleteNumber(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Gets Number using its reference - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getNumber(ref, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.getNumber(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Lists Numbers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listNumbers(pageSize, pageToken, view, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.listNumbers(pageSize, pageToken, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Number\'s reference - * @param {InlineObject2} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateNumber(ref, body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.updateNumber(ref, body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - }; -}; -/** - * NumbersApi - factory interface - * @export - */ -export const NumbersApiFactory = function (configuration, basePath, axios) { - const localVarFp = NumbersApiFp(configuration); - return { - /** - * - * @summary Creates a new Number resource - * @param {CreateNumberRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createNumber(body, options) { - return localVarFp.createNumber(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Hard delete of a Number resource - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteNumber(ref, options) { - return localVarFp.deleteNumber(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets Number using its reference - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getNumber(ref, options) { - return localVarFp.getNumber(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Lists Numbers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listNumbers(pageSize, pageToken, view, options) { - return localVarFp.listNumbers(pageSize, pageToken, view, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Number\'s reference - * @param {InlineObject2} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateNumber(ref, body, options) { - return localVarFp.updateNumber(ref, body, options).then((request) => request(axios, basePath)); - }, - }; -}; -/** - * NumbersApi - object-oriented interface - * @export - * @class NumbersApi - * @extends {BaseAPI} - */ -export class NumbersApi extends BaseAPI { - /** - * - * @summary Creates a new Number resource - * @param {CreateNumberRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NumbersApi - */ - createNumber(body, options) { - return NumbersApiFp(this.configuration).createNumber(body, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Hard delete of a Number resource - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NumbersApi - */ - deleteNumber(ref, options) { - return NumbersApiFp(this.configuration).deleteNumber(ref, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Gets Number using its reference - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NumbersApi - */ - getNumber(ref, options) { - return NumbersApiFp(this.configuration).getNumber(ref, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Lists Numbers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NumbersApi - */ - listNumbers(pageSize, pageToken, view, options) { - return NumbersApiFp(this.configuration).listNumbers(pageSize, pageToken, view, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Number\'s reference - * @param {InlineObject2} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NumbersApi - */ - updateNumber(ref, body, options) { - return NumbersApiFp(this.configuration).updateNumber(ref, body, options).then((request) => request(this.axios, this.basePath)); - } -} -/** - * ProjectsApi - axios parameter creator - * @export - */ -export const ProjectsApiAxiosParamCreator = function (configuration) { - return { - /** - * - * @summary Creates a new Project resource - * @param {CreateProjectRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createProject: (body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'body' is not null or undefined - assertParamExists('createProject', 'body', body); - const localVarPath = `/v1beta1/projects`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary WARNING: Hard delete of a Project will remove all related resources - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteProject: (ref, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('deleteProject', 'ref', ref); - const localVarPath = `/v1beta1/projects/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Gets a Project by AccessKeyId - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getProject: (ref, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('getProject', 'ref', ref); - const localVarPath = `/v1beta1/projects/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Lists all the Projects for a given User - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listProjects: (options = {}) => __awaiter(this, void 0, void 0, function* () { - const localVarPath = `/v1beta1/projects`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Regenerates the accessKeySecret - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - renewAccessKeySecret: (ref, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('renewAccessKeySecret', 'ref', ref); - const localVarPath = `/v1beta1/projects/{ref}/credentials` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Updates a given Project - * @param {string} ref Project\'s reference - * @param {InlineObject3} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateProject: (ref, body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('updateProject', 'ref', ref); - // verify required parameter 'body' is not null or undefined - assertParamExists('updateProject', 'body', body); - const localVarPath = `/v1beta1/projects/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - }; -}; -/** - * ProjectsApi - functional programming interface - * @export - */ -export const ProjectsApiFp = function (configuration) { - const localVarAxiosParamCreator = ProjectsApiAxiosParamCreator(configuration); - return { - /** - * - * @summary Creates a new Project resource - * @param {CreateProjectRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createProject(body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.createProject(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary WARNING: Hard delete of a Project will remove all related resources - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteProject(ref, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.deleteProject(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Gets a Project by AccessKeyId - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getProject(ref, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.getProject(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Lists all the Projects for a given User - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listProjects(options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.listProjects(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Regenerates the accessKeySecret - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - renewAccessKeySecret(ref, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.renewAccessKeySecret(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Updates a given Project - * @param {string} ref Project\'s reference - * @param {InlineObject3} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateProject(ref, body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.updateProject(ref, body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - }; -}; -/** - * ProjectsApi - factory interface - * @export - */ -export const ProjectsApiFactory = function (configuration, basePath, axios) { - const localVarFp = ProjectsApiFp(configuration); - return { - /** - * - * @summary Creates a new Project resource - * @param {CreateProjectRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createProject(body, options) { - return localVarFp.createProject(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary WARNING: Hard delete of a Project will remove all related resources - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteProject(ref, options) { - return localVarFp.deleteProject(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets a Project by AccessKeyId - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getProject(ref, options) { - return localVarFp.getProject(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Lists all the Projects for a given User - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listProjects(options) { - return localVarFp.listProjects(options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Regenerates the accessKeySecret - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - renewAccessKeySecret(ref, options) { - return localVarFp.renewAccessKeySecret(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Updates a given Project - * @param {string} ref Project\'s reference - * @param {InlineObject3} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateProject(ref, body, options) { - return localVarFp.updateProject(ref, body, options).then((request) => request(axios, basePath)); - }, - }; -}; -/** - * ProjectsApi - object-oriented interface - * @export - * @class ProjectsApi - * @extends {BaseAPI} - */ -export class ProjectsApi extends BaseAPI { - /** - * - * @summary Creates a new Project resource - * @param {CreateProjectRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProjectsApi - */ - createProject(body, options) { - return ProjectsApiFp(this.configuration).createProject(body, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary WARNING: Hard delete of a Project will remove all related resources - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProjectsApi - */ - deleteProject(ref, options) { - return ProjectsApiFp(this.configuration).deleteProject(ref, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Gets a Project by AccessKeyId - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProjectsApi - */ - getProject(ref, options) { - return ProjectsApiFp(this.configuration).getProject(ref, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Lists all the Projects for a given User - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProjectsApi - */ - listProjects(options) { - return ProjectsApiFp(this.configuration).listProjects(options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Regenerates the accessKeySecret - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProjectsApi - */ - renewAccessKeySecret(ref, options) { - return ProjectsApiFp(this.configuration).renewAccessKeySecret(ref, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Updates a given Project - * @param {string} ref Project\'s reference - * @param {InlineObject3} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProjectsApi - */ - updateProject(ref, body, options) { - return ProjectsApiFp(this.configuration).updateProject(ref, body, options).then((request) => request(this.axios, this.basePath)); - } -} -/** - * ProvidersApi - axios parameter creator - * @export - */ -export const ProvidersApiAxiosParamCreator = function (configuration) { - return { - /** - * - * @summary Creates a new Provider resource. - * @param {CreateProviderRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createProvider: (body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'body' is not null or undefined - assertParamExists('createProvider', 'body', body); - const localVarPath = `/v1beta1/providers`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Hard delete of a Provider resource - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteProvider: (ref, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('deleteProvider', 'ref', ref); - const localVarPath = `/v1beta1/providers/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Gets Provider using its reference - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getProvider: (ref, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('getProvider', 'ref', ref); - const localVarPath = `/v1beta1/providers/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Lists Providers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listProviders: (pageSize, pageToken, view, options = {}) => __awaiter(this, void 0, void 0, function* () { - const localVarPath = `/v1beta1/providers`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - if (pageSize !== undefined) { - localVarQueryParameter['pageSize'] = pageSize; - } - if (pageToken !== undefined) { - localVarQueryParameter['pageToken'] = pageToken; - } - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Provider\'s reference - * @param {InlineObject4} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateProvider: (ref, body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('updateProvider', 'ref', ref); - // verify required parameter 'body' is not null or undefined - assertParamExists('updateProvider', 'body', body); - const localVarPath = `/v1beta1/providers/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - }; -}; -/** - * ProvidersApi - functional programming interface - * @export - */ -export const ProvidersApiFp = function (configuration) { - const localVarAxiosParamCreator = ProvidersApiAxiosParamCreator(configuration); - return { - /** - * - * @summary Creates a new Provider resource. - * @param {CreateProviderRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createProvider(body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.createProvider(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Hard delete of a Provider resource - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteProvider(ref, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.deleteProvider(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Gets Provider using its reference - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getProvider(ref, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.getProvider(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Lists Providers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listProviders(pageSize, pageToken, view, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.listProviders(pageSize, pageToken, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Provider\'s reference - * @param {InlineObject4} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateProvider(ref, body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.updateProvider(ref, body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - }; -}; -/** - * ProvidersApi - factory interface - * @export - */ -export const ProvidersApiFactory = function (configuration, basePath, axios) { - const localVarFp = ProvidersApiFp(configuration); - return { - /** - * - * @summary Creates a new Provider resource. - * @param {CreateProviderRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createProvider(body, options) { - return localVarFp.createProvider(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Hard delete of a Provider resource - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteProvider(ref, options) { - return localVarFp.deleteProvider(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets Provider using its reference - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getProvider(ref, options) { - return localVarFp.getProvider(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Lists Providers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listProviders(pageSize, pageToken, view, options) { - return localVarFp.listProviders(pageSize, pageToken, view, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Provider\'s reference - * @param {InlineObject4} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateProvider(ref, body, options) { - return localVarFp.updateProvider(ref, body, options).then((request) => request(axios, basePath)); - }, - }; -}; -/** - * ProvidersApi - object-oriented interface - * @export - * @class ProvidersApi - * @extends {BaseAPI} - */ -export class ProvidersApi extends BaseAPI { - /** - * - * @summary Creates a new Provider resource. - * @param {CreateProviderRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProvidersApi - */ - createProvider(body, options) { - return ProvidersApiFp(this.configuration).createProvider(body, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Hard delete of a Provider resource - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProvidersApi - */ - deleteProvider(ref, options) { - return ProvidersApiFp(this.configuration).deleteProvider(ref, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Gets Provider using its reference - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProvidersApi - */ - getProvider(ref, options) { - return ProvidersApiFp(this.configuration).getProvider(ref, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Lists Providers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProvidersApi - */ - listProviders(pageSize, pageToken, view, options) { - return ProvidersApiFp(this.configuration).listProviders(pageSize, pageToken, view, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Provider\'s reference - * @param {InlineObject4} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProvidersApi - */ - updateProvider(ref, body, options) { - return ProvidersApiFp(this.configuration).updateProvider(ref, body, options).then((request) => request(this.axios, this.basePath)); - } -} -/** - * SecretsApi - axios parameter creator - * @export - */ -export const SecretsApiAxiosParamCreator = function (configuration) { - return { - /** - * - * @param {CreateSecretRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createSecret: (body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'body' is not null or undefined - assertParamExists('createSecret', 'body', body); - const localVarPath = `/v1beta1/secrets`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Peforms a hard delete of the Secret resource - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteSecret: (name, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'name' is not null or undefined - assertParamExists('deleteSecret', 'name', name); - const localVarPath = `/v1beta1/secrets/{name}` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Gets Secret with the Secret-name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSecret: (name, view, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'name' is not null or undefined - assertParamExists('getSecret', 'name', name); - const localVarPath = `/v1beta1/secrets/{name}` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Lists Secret - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listSecretsId: (pageSize, pageToken, view, options = {}) => __awaiter(this, void 0, void 0, function* () { - const localVarPath = `/v1beta1/secrets`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - if (pageSize !== undefined) { - localVarQueryParameter['pageSize'] = pageSize; - } - if (pageToken !== undefined) { - localVarQueryParameter['pageToken'] = pageToken; - } - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - }; -}; -/** - * SecretsApi - functional programming interface - * @export - */ -export const SecretsApiFp = function (configuration) { - const localVarAxiosParamCreator = SecretsApiAxiosParamCreator(configuration); - return { - /** - * - * @param {CreateSecretRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createSecret(body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.createSecret(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Peforms a hard delete of the Secret resource - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteSecret(name, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.deleteSecret(name, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Gets Secret with the Secret-name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSecret(name, view, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.getSecret(name, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Lists Secret - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listSecretsId(pageSize, pageToken, view, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.listSecretsId(pageSize, pageToken, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - }; -}; -/** - * SecretsApi - factory interface - * @export - */ -export const SecretsApiFactory = function (configuration, basePath, axios) { - const localVarFp = SecretsApiFp(configuration); - return { - /** - * - * @param {CreateSecretRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createSecret(body, options) { - return localVarFp.createSecret(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Peforms a hard delete of the Secret resource - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteSecret(name, options) { - return localVarFp.deleteSecret(name, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets Secret with the Secret-name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSecret(name, view, options) { - return localVarFp.getSecret(name, view, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Lists Secret - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listSecretsId(pageSize, pageToken, view, options) { - return localVarFp.listSecretsId(pageSize, pageToken, view, options).then((request) => request(axios, basePath)); - }, - }; -}; -/** - * SecretsApi - object-oriented interface - * @export - * @class SecretsApi - * @extends {BaseAPI} - */ -export class SecretsApi extends BaseAPI { - /** - * - * @param {CreateSecretRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SecretsApi - */ - createSecret(body, options) { - return SecretsApiFp(this.configuration).createSecret(body, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Peforms a hard delete of the Secret resource - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SecretsApi - */ - deleteSecret(name, options) { - return SecretsApiFp(this.configuration).deleteSecret(name, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Gets Secret with the Secret-name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SecretsApi - */ - getSecret(name, view, options) { - return SecretsApiFp(this.configuration).getSecret(name, view, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Lists Secret - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SecretsApi - */ - listSecretsId(pageSize, pageToken, view, options) { - return SecretsApiFp(this.configuration).listSecretsId(pageSize, pageToken, view, options).then((request) => request(this.axios, this.basePath)); - } -} -/** - * StorageApi - axios parameter creator - * @export - */ -export const StorageApiAxiosParamCreator = function (configuration) { - return { - /** - * - * @param {'APPS' | 'RECORDINGS' | 'PUBLIC' | 'FUNCS'} bucket - * @param {string} filename - * @param {string} [accessKeyId] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getObjectURL: (bucket, filename, accessKeyId, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'bucket' is not null or undefined - assertParamExists('getObjectURL', 'bucket', bucket); - // verify required parameter 'filename' is not null or undefined - assertParamExists('getObjectURL', 'filename', filename); - const localVarPath = `/v1beta1/storage/{bucket}/{filename}` - .replace(`{${"bucket"}}`, encodeURIComponent(String(bucket))) - .replace(`{${"filename"}}`, encodeURIComponent(String(filename))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - if (accessKeyId !== undefined) { - localVarQueryParameter['accessKeyId'] = accessKeyId; - } - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - }; -}; -/** - * StorageApi - functional programming interface - * @export - */ -export const StorageApiFp = function (configuration) { - const localVarAxiosParamCreator = StorageApiAxiosParamCreator(configuration); - return { - /** - * - * @param {'APPS' | 'RECORDINGS' | 'PUBLIC' | 'FUNCS'} bucket - * @param {string} filename - * @param {string} [accessKeyId] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getObjectURL(bucket, filename, accessKeyId, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.getObjectURL(bucket, filename, accessKeyId, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - }; -}; -/** - * StorageApi - factory interface - * @export - */ -export const StorageApiFactory = function (configuration, basePath, axios) { - const localVarFp = StorageApiFp(configuration); - return { - /** - * - * @param {'APPS' | 'RECORDINGS' | 'PUBLIC' | 'FUNCS'} bucket - * @param {string} filename - * @param {string} [accessKeyId] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getObjectURL(bucket, filename, accessKeyId, options) { - return localVarFp.getObjectURL(bucket, filename, accessKeyId, options).then((request) => request(axios, basePath)); - }, - }; -}; -/** - * StorageApi - object-oriented interface - * @export - * @class StorageApi - * @extends {BaseAPI} - */ -export class StorageApi extends BaseAPI { - /** - * - * @param {'APPS' | 'RECORDINGS' | 'PUBLIC' | 'FUNCS'} bucket - * @param {string} filename - * @param {string} [accessKeyId] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof StorageApi - */ - getObjectURL(bucket, filename, accessKeyId, options) { - return StorageApiFp(this.configuration).getObjectURL(bucket, filename, accessKeyId, options).then((request) => request(this.axios, this.basePath)); - } -} -/** - * UsersApi - axios parameter creator - * @export - */ -export const UsersApiAxiosParamCreator = function (configuration) { - return { - /** - * - * @summary Creates a new User resource - * @param {CreateUserRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createUser: (body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'body' is not null or undefined - assertParamExists('createUser', 'body', body); - const localVarPath = `/v1beta1/users`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Creates a set of credentials - * @param {CreateUserCredentialsRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createUserCredentials: (body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'body' is not null or undefined - assertParamExists('createUserCredentials', 'body', body); - const localVarPath = `/v1beta1/users/credentials`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary WARNING: Hard delete of an User will remove all related projects and its resources. - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteUser: (ref, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('deleteUser', 'ref', ref); - const localVarPath = `/v1beta1/users/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Gets User by reference - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getUser: (ref, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('getUser', 'ref', ref); - const localVarPath = `/v1beta1/users/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - /** - * - * @summary Change or update fields in a resource - * @param {string} ref User\'s reference - * @param {InlineObject5} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateUser: (ref, body, options = {}) => __awaiter(this, void 0, void 0, function* () { - // verify required parameter 'ref' is not null or undefined - assertParamExists('updateUser', 'ref', ref); - // verify required parameter 'body' is not null or undefined - assertParamExists('updateUser', 'body', body); - const localVarPath = `/v1beta1/users/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - const localVarRequestOptions = Object.assign(Object.assign({ method: 'PUT' }, baseOptions), options); - const localVarHeaderParameter = {}; - const localVarQueryParameter = {}; - // authentication AccessKeyId required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration); - // authentication AccessKeySecret required - yield setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration); - localVarHeaderParameter['Content-Type'] = 'application/json'; - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers); - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration); - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }), - }; -}; -/** - * UsersApi - functional programming interface - * @export - */ -export const UsersApiFp = function (configuration) { - const localVarAxiosParamCreator = UsersApiAxiosParamCreator(configuration); - return { - /** - * - * @summary Creates a new User resource - * @param {CreateUserRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createUser(body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.createUser(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Creates a set of credentials - * @param {CreateUserCredentialsRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createUserCredentials(body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.createUserCredentials(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary WARNING: Hard delete of an User will remove all related projects and its resources. - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteUser(ref, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.deleteUser(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Gets User by reference - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getUser(ref, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.getUser(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref User\'s reference - * @param {InlineObject5} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateUser(ref, body, options) { - return __awaiter(this, void 0, void 0, function* () { - const localVarAxiosArgs = yield localVarAxiosParamCreator.updateUser(ref, body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }); - }, - }; -}; -/** - * UsersApi - factory interface - * @export - */ -export const UsersApiFactory = function (configuration, basePath, axios) { - const localVarFp = UsersApiFp(configuration); - return { - /** - * - * @summary Creates a new User resource - * @param {CreateUserRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createUser(body, options) { - return localVarFp.createUser(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Creates a set of credentials - * @param {CreateUserCredentialsRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createUserCredentials(body, options) { - return localVarFp.createUserCredentials(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary WARNING: Hard delete of an User will remove all related projects and its resources. - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteUser(ref, options) { - return localVarFp.deleteUser(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets User by reference - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getUser(ref, options) { - return localVarFp.getUser(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref User\'s reference - * @param {InlineObject5} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateUser(ref, body, options) { - return localVarFp.updateUser(ref, body, options).then((request) => request(axios, basePath)); - }, - }; -}; -/** - * UsersApi - object-oriented interface - * @export - * @class UsersApi - * @extends {BaseAPI} - */ -export class UsersApi extends BaseAPI { - /** - * - * @summary Creates a new User resource - * @param {CreateUserRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof UsersApi - */ - createUser(body, options) { - return UsersApiFp(this.configuration).createUser(body, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Creates a set of credentials - * @param {CreateUserCredentialsRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof UsersApi - */ - createUserCredentials(body, options) { - return UsersApiFp(this.configuration).createUserCredentials(body, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary WARNING: Hard delete of an User will remove all related projects and its resources. - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof UsersApi - */ - deleteUser(ref, options) { - return UsersApiFp(this.configuration).deleteUser(ref, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Gets User by reference - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof UsersApi - */ - getUser(ref, options) { - return UsersApiFp(this.configuration).getUser(ref, options).then((request) => request(this.axios, this.basePath)); - } - /** - * - * @summary Change or update fields in a resource - * @param {string} ref User\'s reference - * @param {InlineObject5} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof UsersApi - */ - updateUser(ref, body, options) { - return UsersApiFp(this.configuration).updateUser(ref, body, options).then((request) => request(this.axios, this.basePath)); - } -} diff --git a/mods/websdk/src/generated/api/api.ts b/mods/websdk/src/generated/api/api.ts deleted file mode 100644 index c4aac942c..000000000 --- a/mods/websdk/src/generated/api/api.ts +++ /dev/null @@ -1,5186 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Fonoster - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: v1beta1 - * Contact: psanders@fonoster.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import { Configuration } from './configuration'; -import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; -// Some imports not used depending on template conditions -// @ts-ignore -import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from './common'; -// @ts-ignore -import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base'; - -/** - * - * @export - * @interface Agent - */ -export interface Agent { - /** - * - * @type {string} - * @memberof Agent - */ - 'ref'?: string; - /** - * - * @type {string} - * @memberof Agent - */ - 'name': string; - /** - * - * @type {string} - * @memberof Agent - */ - 'username': string; - /** - * - * @type {string} - * @memberof Agent - */ - 'secret': string; - /** - * - * @type {Array} - * @memberof Agent - */ - 'domains': Array; - /** - * - * @type {string} - * @memberof Agent - */ - 'privacy'?: string; - /** - * - * @type {string} - * @memberof Agent - */ - 'createTime'?: string; - /** - * - * @type {string} - * @memberof Agent - */ - 'updateTime'?: string; -} -/** - * - * @export - * @interface CallRequest - */ -export interface CallRequest { - /** - * - * @type {string} - * @memberof CallRequest - */ - 'from'?: string; - /** - * - * @type {string} - * @memberof CallRequest - */ - 'to'?: string; - /** - * - * @type {string} - * @memberof CallRequest - */ - 'webhook'?: string; - /** - * - * @type {boolean} - * @memberof CallRequest - */ - 'ignoreE164Validation'?: boolean; - /** - * - * @type {string} - * @memberof CallRequest - */ - 'metadata'?: string; -} -/** - * - * @export - * @interface CallResponse - */ -export interface CallResponse { - /** - * - * @type {string} - * @memberof CallResponse - */ - 'ref'?: string; -} -/** - * - * @export - * @interface CreateAgentRequest - */ -export interface CreateAgentRequest { - /** - * - * @type {string} - * @memberof CreateAgentRequest - */ - 'name': string; - /** - * - * @type {string} - * @memberof CreateAgentRequest - */ - 'username': string; - /** - * - * @type {string} - * @memberof CreateAgentRequest - */ - 'secret': string; - /** - * - * @type {Array} - * @memberof CreateAgentRequest - */ - 'domains': Array; - /** - * - * @type {string} - * @memberof CreateAgentRequest - */ - 'privacy'?: string; -} -/** - * - * @export - * @interface CreateDomainRequest - */ -export interface CreateDomainRequest { - /** - * - * @type {string} - * @memberof CreateDomainRequest - */ - 'name': string; - /** - * - * @type {string} - * @memberof CreateDomainRequest - */ - 'domainUri': string; - /** - * - * @type {string} - * @memberof CreateDomainRequest - */ - 'egressRule'?: string; - /** - * - * @type {string} - * @memberof CreateDomainRequest - */ - 'egressNumberRef'?: string; - /** - * - * @type {Array} - * @memberof CreateDomainRequest - */ - 'accessDeny'?: Array; - /** - * - * @type {Array} - * @memberof CreateDomainRequest - */ - 'accessAllow'?: Array; -} -/** - * - * @export - * @interface CreateNumberRequest - */ -export interface CreateNumberRequest { - /** - * - * @type {string} - * @memberof CreateNumberRequest - */ - 'providerRef': string; - /** - * - * @type {string} - * @memberof CreateNumberRequest - */ - 'e164Number': string; - /** - * - * @type {string} - * @memberof CreateNumberRequest - */ - 'aorLink'?: string; - /** - * - * @type {IngressInfo} - * @memberof CreateNumberRequest - */ - 'ingressInfo'?: IngressInfo; -} -/** - * - * @export - * @interface CreateProjectRequest - */ -export interface CreateProjectRequest { - /** - * - * @type {string} - * @memberof CreateProjectRequest - */ - 'name': string; - /** - * - * @type {boolean} - * @memberof CreateProjectRequest - */ - 'allowExperiments'?: boolean; -} -/** - * - * @export - * @interface CreateProviderRequest - */ -export interface CreateProviderRequest { - /** - * - * @type {string} - * @memberof CreateProviderRequest - */ - 'name': string; - /** - * - * @type {string} - * @memberof CreateProviderRequest - */ - 'username': string; - /** - * - * @type {string} - * @memberof CreateProviderRequest - */ - 'secret': string; - /** - * - * @type {string} - * @memberof CreateProviderRequest - */ - 'host': string; - /** - * - * @type {string} - * @memberof CreateProviderRequest - */ - 'transport': string; - /** - * - * @type {number} - * @memberof CreateProviderRequest - */ - 'expires'?: number; -} -/** - * - * @export - * @interface CreateRegistryTokenResponse - */ -export interface CreateRegistryTokenResponse { - /** - * - * @type {string} - * @memberof CreateRegistryTokenResponse - */ - 'token'?: string; - /** - * - * @type {string} - * @memberof CreateRegistryTokenResponse - */ - 'image'?: string; -} -/** - * - * @export - * @interface CreateSecretRequest - */ -export interface CreateSecretRequest { - /** - * - * @type {string} - * @memberof CreateSecretRequest - */ - 'name'?: string; - /** - * - * @type {string} - * @memberof CreateSecretRequest - */ - 'secret'?: string; -} -/** - * - * @export - * @interface CreateSecretResponse - */ -export interface CreateSecretResponse { - /** - * - * @type {string} - * @memberof CreateSecretResponse - */ - 'name'?: string; -} -/** - * - * @export - * @interface CreateTokenRequest - */ -export interface CreateTokenRequest { - /** - * - * @type {string} - * @memberof CreateTokenRequest - */ - 'roleName': string; - /** - * - * @type {string} - * @memberof CreateTokenRequest - */ - 'accessKeyId': string; - /** - * - * @type {string} - * @memberof CreateTokenRequest - */ - 'expiration'?: string; -} -/** - * - * @export - * @interface CreateTokenResponse - */ -export interface CreateTokenResponse { - /** - * - * @type {string} - * @memberof CreateTokenResponse - */ - 'token'?: string; -} -/** - * - * @export - * @interface CreateUserCredentialsRequest - */ -export interface CreateUserCredentialsRequest { - /** - * - * @type {string} - * @memberof CreateUserCredentialsRequest - */ - 'email'?: string; - /** - * - * @type {string} - * @memberof CreateUserCredentialsRequest - */ - 'secret'?: string; - /** - * - * @type {string} - * @memberof CreateUserCredentialsRequest - */ - 'expiration'?: string; -} -/** - * - * @export - * @interface CreateUserCredentialsResponse - */ -export interface CreateUserCredentialsResponse { - /** - * - * @type {string} - * @memberof CreateUserCredentialsResponse - */ - 'accessKeyId'?: string; - /** - * - * @type {string} - * @memberof CreateUserCredentialsResponse - */ - 'accessKeySecret'?: string; -} -/** - * - * @export - * @interface CreateUserRequest - */ -export interface CreateUserRequest { - /** - * - * @type {string} - * @memberof CreateUserRequest - */ - 'email': string; - /** - * - * @type {string} - * @memberof CreateUserRequest - */ - 'name': string; - /** - * - * @type {string} - * @memberof CreateUserRequest - */ - 'secret': string; - /** - * - * @type {string} - * @memberof CreateUserRequest - */ - 'avatar'?: string; -} -/** - * - * @export - * @interface DeployStream - */ -export interface DeployStream { - /** - * - * @type {string} - * @memberof DeployStream - */ - 'text'?: string; -} -/** - * - * @export - * @interface Domain - */ -export interface Domain { - /** - * - * @type {string} - * @memberof Domain - */ - 'ref'?: string; - /** - * - * @type {string} - * @memberof Domain - */ - 'name': string; - /** - * - * @type {string} - * @memberof Domain - */ - 'domainUri': string; - /** - * - * @type {string} - * @memberof Domain - */ - 'egressRule'?: string; - /** - * - * @type {string} - * @memberof Domain - */ - 'egressNumberRef'?: string; - /** - * - * @type {Array} - * @memberof Domain - */ - 'accessDeny'?: Array; - /** - * - * @type {Array} - * @memberof Domain - */ - 'accessAllow'?: Array; - /** - * - * @type {string} - * @memberof Domain - */ - 'createTime'?: string; - /** - * - * @type {string} - * @memberof Domain - */ - 'updateTime'?: string; -} -/** - * - * @export - * @interface ErrorResponse - */ -export interface ErrorResponse { - /** - * - * @type {number} - * @memberof ErrorResponse - */ - 'status'?: number; - /** - * - * @type {string} - * @memberof ErrorResponse - */ - 'message'?: string; -} -/** - * - * @export - * @interface Func - */ -export interface Func { - /** - * - * @type {string} - * @memberof Func - */ - 'name'?: string; - /** - * - * @type {string} - * @memberof Func - */ - 'image'?: string; - /** - * - * @type {number} - * @memberof Func - */ - 'invocationCount'?: number; - /** - * - * @type {number} - * @memberof Func - */ - 'replicas'?: number; - /** - * - * @type {number} - * @memberof Func - */ - 'availableReplicas'?: number; - /** - * - * @type {Resource} - * @memberof Func - */ - 'limits'?: Resource; - /** - * - * @type {Resource} - * @memberof Func - */ - 'requests'?: Resource; - /** - * - * @type {string} - * @memberof Func - */ - 'schedule'?: string; -} -/** - * - * @export - * @interface FuncLog - */ -export interface FuncLog { - /** - * - * @type {string} - * @memberof FuncLog - */ - 'name'?: string; - /** - * - * @type {string} - * @memberof FuncLog - */ - 'instance'?: string; - /** - * - * @type {string} - * @memberof FuncLog - */ - 'timestamp'?: string; - /** - * - * @type {string} - * @memberof FuncLog - */ - 'text'?: string; -} -/** - * - * @export - * @enum {string} - */ - -export enum GetObjectURLRequestBucket { - Apps = 'APPS', - Recordings = 'RECORDINGS', - Public = 'PUBLIC', - Funcs = 'FUNCS' -} - -/** - * - * @export - * @interface GetObjectURLResponse - */ -export interface GetObjectURLResponse { - /** - * - * @type {string} - * @memberof GetObjectURLResponse - */ - 'url'?: string; -} -/** - * - * @export - * @interface GetSecretResponse - */ -export interface GetSecretResponse { - /** - * - * @type {string} - * @memberof GetSecretResponse - */ - 'name'?: string; - /** - * - * @type {string} - * @memberof GetSecretResponse - */ - 'secret'?: string; -} -/** - * - * @export - * @interface IngressInfo - */ -export interface IngressInfo { - /** - * - * @type {string} - * @memberof IngressInfo - */ - 'accessKeyId'?: string; - /** - * - * @type {string} - * @memberof IngressInfo - */ - 'webhook'?: string; -} -/** - * - * @export - * @interface InlineObject - */ -export interface InlineObject { - /** - * - * @type {string} - * @memberof InlineObject - */ - 'name'?: string; - /** - * - * @type {string} - * @memberof InlineObject - */ - 'username'?: string; - /** - * - * @type {string} - * @memberof InlineObject - */ - 'secret'?: string; - /** - * - * @type {Array} - * @memberof InlineObject - */ - 'domains'?: Array; - /** - * - * @type {string} - * @memberof InlineObject - */ - 'privacy'?: string; -} -/** - * - * @export - * @interface InlineObject1 - */ -export interface InlineObject1 { - /** - * - * @type {string} - * @memberof InlineObject1 - */ - 'name'?: string; - /** - * - * @type {string} - * @memberof InlineObject1 - */ - 'egressRule'?: string; - /** - * - * @type {string} - * @memberof InlineObject1 - */ - 'egressNumberRef'?: string; - /** - * - * @type {Array} - * @memberof InlineObject1 - */ - 'accessDeny'?: Array; - /** - * - * @type {Array} - * @memberof InlineObject1 - */ - 'accessAllow'?: Array; -} -/** - * - * @export - * @interface InlineObject2 - */ -export interface InlineObject2 { - /** - * - * @type {string} - * @memberof InlineObject2 - */ - 'aorLink'?: string; - /** - * - * @type {IngressInfo} - * @memberof InlineObject2 - */ - 'ingressInfo'?: IngressInfo; -} -/** - * - * @export - * @interface InlineObject3 - */ -export interface InlineObject3 { - /** - * - * @type {string} - * @memberof InlineObject3 - */ - 'name'?: string; - /** - * - * @type {boolean} - * @memberof InlineObject3 - */ - 'allowExperiments': boolean; -} -/** - * - * @export - * @interface InlineObject4 - */ -export interface InlineObject4 { - /** - * - * @type {string} - * @memberof InlineObject4 - */ - 'name': string; - /** - * - * @type {string} - * @memberof InlineObject4 - */ - 'username': string; - /** - * - * @type {string} - * @memberof InlineObject4 - */ - 'secret': string; - /** - * - * @type {string} - * @memberof InlineObject4 - */ - 'host': string; - /** - * - * @type {string} - * @memberof InlineObject4 - */ - 'transport': string; - /** - * - * @type {number} - * @memberof InlineObject4 - */ - 'expires'?: number; -} -/** - * - * @export - * @interface InlineObject5 - */ -export interface InlineObject5 { - /** - * - * @type {string} - * @memberof InlineObject5 - */ - 'name'?: string; - /** - * - * @type {string} - * @memberof InlineObject5 - */ - 'secret'?: string; - /** - * - * @type {string} - * @memberof InlineObject5 - */ - 'avatar'?: string; -} -/** - * - * @export - * @interface ListAgentsResponse - */ -export interface ListAgentsResponse { - /** - * - * @type {Array} - * @memberof ListAgentsResponse - */ - 'agents'?: Array; - /** - * - * @type {string} - * @memberof ListAgentsResponse - */ - 'nextPageToken'?: string; -} -/** - * - * @export - * @interface ListDomainsResponse - */ -export interface ListDomainsResponse { - /** - * - * @type {Array} - * @memberof ListDomainsResponse - */ - 'domains'?: Array; - /** - * - * @type {string} - * @memberof ListDomainsResponse - */ - 'nextPageToken'?: string; -} -/** - * - * @export - * @interface ListFuncsResponse - */ -export interface ListFuncsResponse { - /** - * - * @type {Array} - * @memberof ListFuncsResponse - */ - 'funcs'?: Array; - /** - * - * @type {string} - * @memberof ListFuncsResponse - */ - 'nextPageToken'?: string; -} -/** - * - * @export - * @interface ListNumbersResponse - */ -export interface ListNumbersResponse { - /** - * - * @type {Array} - * @memberof ListNumbersResponse - */ - 'numbers'?: Array; - /** - * Token to retrieve the next page of results, or empty if there are no more results in the list. - * @type {string} - * @memberof ListNumbersResponse - */ - 'nextPageToken'?: string; -} -/** - * - * @export - * @interface ListProjectsResponse - */ -export interface ListProjectsResponse { - /** - * - * @type {Array} - * @memberof ListProjectsResponse - */ - 'projects'?: Array; -} -/** - * - * @export - * @interface ListProvidersResponse - */ -export interface ListProvidersResponse { - /** - * - * @type {Array} - * @memberof ListProvidersResponse - */ - 'providers'?: Array; - /** - * - * @type {string} - * @memberof ListProvidersResponse - */ - 'nextPageToken'?: string; -} -/** - * - * @export - * @interface ListSecretIdResponse - */ -export interface ListSecretIdResponse { - /** - * - * @type {Array} - * @memberof ListSecretIdResponse - */ - 'secrets'?: Array; - /** - * - * @type {string} - * @memberof ListSecretIdResponse - */ - 'nextPageToken'?: string; -} -/** - * - * @export - * @interface ListUsersResponse - */ -export interface ListUsersResponse { - /** - * - * @type {Array} - * @memberof ListUsersResponse - */ - 'users'?: Array; -} -/** - * - * @export - * @interface Number - */ -export interface Number { - /** - * - * @type {string} - * @memberof Number - */ - 'ref'?: string; - /** - * - * @type {string} - * @memberof Number - */ - 'providerRef': string; - /** - * - * @type {string} - * @memberof Number - */ - 'e164Number': string; - /** - * - * @type {string} - * @memberof Number - */ - 'aorLink'?: string; - /** - * - * @type {IngressInfo} - * @memberof Number - */ - 'ingressInfo'?: IngressInfo; - /** - * - * @type {string} - * @memberof Number - */ - 'createTime'?: string; - /** - * - * @type {string} - * @memberof Number - */ - 'updateTime'?: string; -} -/** - * - * @export - * @interface Project - */ -export interface Project { - /** - * - * @type {string} - * @memberof Project - */ - 'name': string; - /** - * - * @type {string} - * @memberof Project - */ - 'ref': string; - /** - * - * @type {string} - * @memberof Project - */ - 'userRef': string; - /** - * - * @type {string} - * @memberof Project - */ - 'accessKeyId': string; - /** - * - * @type {string} - * @memberof Project - */ - 'accessKeySecret': string; - /** - * - * @type {boolean} - * @memberof Project - */ - 'allowExperiments'?: boolean; - /** - * - * @type {string} - * @memberof Project - */ - 'createTime'?: string; - /** - * - * @type {string} - * @memberof Project - */ - 'updateTime'?: string; -} -/** - * - * @export - * @interface Provider - */ -export interface Provider { - /** - * - * @type {string} - * @memberof Provider - */ - 'ref'?: string; - /** - * - * @type {string} - * @memberof Provider - */ - 'name': string; - /** - * - * @type {string} - * @memberof Provider - */ - 'username': string; - /** - * - * @type {string} - * @memberof Provider - */ - 'secret': string; - /** - * - * @type {string} - * @memberof Provider - */ - 'host': string; - /** - * - * @type {string} - * @memberof Provider - */ - 'transport': string; - /** - * - * @type {number} - * @memberof Provider - */ - 'expires'?: number; - /** - * - * @type {string} - * @memberof Provider - */ - 'createTime'?: string; - /** - * - * @type {string} - * @memberof Provider - */ - 'updateTime'?: string; -} -/** - * - * @export - * @interface RenewAccessKeySecretResponse - */ -export interface RenewAccessKeySecretResponse { - /** - * - * @type {string} - * @memberof RenewAccessKeySecretResponse - */ - 'accessKeySecret'?: string; -} -/** - * - * @export - * @interface Resource - */ -export interface Resource { - /** - * - * @type {string} - * @memberof Resource - */ - 'memory'?: string; - /** - * - * @type {string} - * @memberof Resource - */ - 'cpu'?: string; -} -/** - * - * @export - * @interface Role - */ -export interface Role { - /** - * - * @type {string} - * @memberof Role - */ - 'name'?: string; - /** - * - * @type {string} - * @memberof Role - */ - 'description'?: string; - /** - * - * @type {Array} - * @memberof Role - */ - 'access'?: Array; -} -/** - * - * @export - * @interface SecretName - */ -export interface SecretName { - /** - * - * @type {string} - * @memberof SecretName - */ - 'name'?: string; -} -/** - * - * @export - * @enum {string} - */ - -export enum UploadObjectRequestBucket { - Apps = 'APPS', - Recordings = 'RECORDINGS', - Public = 'PUBLIC', - Funcs = 'FUNCS' -} - -/** - * - * @export - * @interface UploadObjectResponse - */ -export interface UploadObjectResponse { - /** - * - * @type {number} - * @memberof UploadObjectResponse - */ - 'size'?: number; -} -/** - * - * @export - * @interface User - */ -export interface User { - /** - * - * @type {string} - * @memberof User - */ - 'ref': string; - /** - * - * @type {string} - * @memberof User - */ - 'accessKeyId': string; - /** - * - * @type {string} - * @memberof User - */ - 'email': string; - /** - * - * @type {string} - * @memberof User - */ - 'name': string; - /** - * - * @type {string} - * @memberof User - */ - 'avatar'?: string; - /** - * - * @type {string} - * @memberof User - */ - 'createTime'?: string; - /** - * - * @type {string} - * @memberof User - */ - 'updateTime'?: string; -} -/** - * - * @export - * @interface ValidateTokenResponse - */ -export interface ValidateTokenResponse { - /** - * - * @type {boolean} - * @memberof ValidateTokenResponse - */ - 'valid'?: boolean; -} -/** - * - * @export - * @enum {string} - */ - -export enum View { - Basic = 'BASIC', - Standard = 'STANDARD', - Full = 'FULL' -} - - -/** - * AgentsApi - axios parameter creator - * @export - */ -export const AgentsApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @summary Creates a new Agent resource - * @param {CreateAgentRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createAgent: async (body: CreateAgentRequest, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'body' is not null or undefined - assertParamExists('createAgent', 'body', body) - const localVarPath = `/v1beta1/agents`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Hard delete of an Agent resource - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteAgent: async (ref: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('deleteAgent', 'ref', ref) - const localVarPath = `/v1beta1/agents/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Gets Agent by reference - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getAgent: async (ref: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('getAgent', 'ref', ref) - const localVarPath = `/v1beta1/agents/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Lists Agents from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listAgents: async (pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/v1beta1/agents`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - if (pageSize !== undefined) { - localVarQueryParameter['pageSize'] = pageSize; - } - - if (pageToken !== undefined) { - localVarQueryParameter['pageToken'] = pageToken; - } - - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Agent\'s reference - * @param {InlineObject} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateAgent: async (ref: string, body: InlineObject, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('updateAgent', 'ref', ref) - // verify required parameter 'body' is not null or undefined - assertParamExists('updateAgent', 'body', body) - const localVarPath = `/v1beta1/agents/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * AgentsApi - functional programming interface - * @export - */ -export const AgentsApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = AgentsApiAxiosParamCreator(configuration) - return { - /** - * - * @summary Creates a new Agent resource - * @param {CreateAgentRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async createAgent(body: CreateAgentRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.createAgent(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Hard delete of an Agent resource - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async deleteAgent(ref: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.deleteAgent(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Gets Agent by reference - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getAgent(ref: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getAgent(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Lists Agents from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async listAgents(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listAgents(pageSize, pageToken, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Agent\'s reference - * @param {InlineObject} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async updateAgent(ref: string, body: InlineObject, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.updateAgent(ref, body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - } -}; - -/** - * AgentsApi - factory interface - * @export - */ -export const AgentsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = AgentsApiFp(configuration) - return { - /** - * - * @summary Creates a new Agent resource - * @param {CreateAgentRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createAgent(body: CreateAgentRequest, options?: any): AxiosPromise { - return localVarFp.createAgent(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Hard delete of an Agent resource - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteAgent(ref: string, options?: any): AxiosPromise { - return localVarFp.deleteAgent(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets Agent by reference - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getAgent(ref: string, options?: any): AxiosPromise { - return localVarFp.getAgent(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Lists Agents from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listAgents(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: any): AxiosPromise { - return localVarFp.listAgents(pageSize, pageToken, view, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Agent\'s reference - * @param {InlineObject} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateAgent(ref: string, body: InlineObject, options?: any): AxiosPromise { - return localVarFp.updateAgent(ref, body, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * AgentsApi - object-oriented interface - * @export - * @class AgentsApi - * @extends {BaseAPI} - */ -export class AgentsApi extends BaseAPI { - /** - * - * @summary Creates a new Agent resource - * @param {CreateAgentRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AgentsApi - */ - public createAgent(body: CreateAgentRequest, options?: AxiosRequestConfig) { - return AgentsApiFp(this.configuration).createAgent(body, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Hard delete of an Agent resource - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AgentsApi - */ - public deleteAgent(ref: string, options?: AxiosRequestConfig) { - return AgentsApiFp(this.configuration).deleteAgent(ref, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Gets Agent by reference - * @param {string} ref Agent\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AgentsApi - */ - public getAgent(ref: string, options?: AxiosRequestConfig) { - return AgentsApiFp(this.configuration).getAgent(ref, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Lists Agents from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AgentsApi - */ - public listAgents(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig) { - return AgentsApiFp(this.configuration).listAgents(pageSize, pageToken, view, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Agent\'s reference - * @param {InlineObject} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AgentsApi - */ - public updateAgent(ref: string, body: InlineObject, options?: AxiosRequestConfig) { - return AgentsApiFp(this.configuration).updateAgent(ref, body, options).then((request) => request(this.axios, this.basePath)); - } -} - - -/** - * AuthApi - axios parameter creator - * @export - */ -export const AuthApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @summary Creates a new token for a given accessKeyId - * @param {CreateTokenRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createToken: async (body: CreateTokenRequest, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'body' is not null or undefined - assertParamExists('createToken', 'body', body) - const localVarPath = `/v1beta1/auth/token`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Gets a role by name - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getRole: async (name: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'name' is not null or undefined - assertParamExists('getRole', 'name', name) - const localVarPath = `/v1beta1/auth/role/{name}` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Verifies if a token was issue by Fonoster - * @param {string} token - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - validateToken: async (token: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'token' is not null or undefined - assertParamExists('validateToken', 'token', token) - const localVarPath = `/v1beta1/auth/token/{token}` - .replace(`{${"token"}}`, encodeURIComponent(String(token))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * AuthApi - functional programming interface - * @export - */ -export const AuthApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = AuthApiAxiosParamCreator(configuration) - return { - /** - * - * @summary Creates a new token for a given accessKeyId - * @param {CreateTokenRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async createToken(body: CreateTokenRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.createToken(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Gets a role by name - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getRole(name: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getRole(name, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Verifies if a token was issue by Fonoster - * @param {string} token - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async validateToken(token: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.validateToken(token, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - } -}; - -/** - * AuthApi - factory interface - * @export - */ -export const AuthApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = AuthApiFp(configuration) - return { - /** - * - * @summary Creates a new token for a given accessKeyId - * @param {CreateTokenRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createToken(body: CreateTokenRequest, options?: any): AxiosPromise { - return localVarFp.createToken(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets a role by name - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getRole(name: string, options?: any): AxiosPromise { - return localVarFp.getRole(name, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Verifies if a token was issue by Fonoster - * @param {string} token - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - validateToken(token: string, options?: any): AxiosPromise { - return localVarFp.validateToken(token, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * AuthApi - object-oriented interface - * @export - * @class AuthApi - * @extends {BaseAPI} - */ -export class AuthApi extends BaseAPI { - /** - * - * @summary Creates a new token for a given accessKeyId - * @param {CreateTokenRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AuthApi - */ - public createToken(body: CreateTokenRequest, options?: AxiosRequestConfig) { - return AuthApiFp(this.configuration).createToken(body, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Gets a role by name - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AuthApi - */ - public getRole(name: string, options?: AxiosRequestConfig) { - return AuthApiFp(this.configuration).getRole(name, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Verifies if a token was issue by Fonoster - * @param {string} token - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof AuthApi - */ - public validateToken(token: string, options?: AxiosRequestConfig) { - return AuthApiFp(this.configuration).validateToken(token, options).then((request) => request(this.axios, this.basePath)); - } -} - - -/** - * CallManagerApi - axios parameter creator - * @export - */ -export const CallManagerApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @summary Originates a call and pass channel to an application - * @param {CallRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - call: async (body: CallRequest, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'body' is not null or undefined - assertParamExists('call', 'body', body) - const localVarPath = `/v1beta1/call`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * CallManagerApi - functional programming interface - * @export - */ -export const CallManagerApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = CallManagerApiAxiosParamCreator(configuration) - return { - /** - * - * @summary Originates a call and pass channel to an application - * @param {CallRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async call(body: CallRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.call(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - } -}; - -/** - * CallManagerApi - factory interface - * @export - */ -export const CallManagerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = CallManagerApiFp(configuration) - return { - /** - * - * @summary Originates a call and pass channel to an application - * @param {CallRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - call(body: CallRequest, options?: any): AxiosPromise { - return localVarFp.call(body, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * CallManagerApi - object-oriented interface - * @export - * @class CallManagerApi - * @extends {BaseAPI} - */ -export class CallManagerApi extends BaseAPI { - /** - * - * @summary Originates a call and pass channel to an application - * @param {CallRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof CallManagerApi - */ - public call(body: CallRequest, options?: AxiosRequestConfig) { - return CallManagerApiFp(this.configuration).call(body, options).then((request) => request(this.axios, this.basePath)); - } -} - - -/** - * DomainsApi - axios parameter creator - * @export - */ -export const DomainsApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @summary Creates a new Domain resource - * @param {CreateDomainRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createDomain: async (body: CreateDomainRequest, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'body' is not null or undefined - assertParamExists('createDomain', 'body', body) - const localVarPath = `/v1beta1/domains`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Hard delete of a domain resource - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteDomain: async (ref: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('deleteDomain', 'ref', ref) - const localVarPath = `/v1beta1/domains/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Gets a Domain by reference - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getDomain: async (ref: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('getDomain', 'ref', ref) - const localVarPath = `/v1beta1/domains/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Domain\'s reference - * @param {InlineObject1} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateDomain: async (ref: string, body: InlineObject1, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('updateDomain', 'ref', ref) - // verify required parameter 'body' is not null or undefined - assertParamExists('updateDomain', 'body', body) - const localVarPath = `/v1beta1/domains/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * DomainsApi - functional programming interface - * @export - */ -export const DomainsApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = DomainsApiAxiosParamCreator(configuration) - return { - /** - * - * @summary Creates a new Domain resource - * @param {CreateDomainRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async createDomain(body: CreateDomainRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.createDomain(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Hard delete of a domain resource - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async deleteDomain(ref: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.deleteDomain(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Gets a Domain by reference - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getDomain(ref: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getDomain(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Domain\'s reference - * @param {InlineObject1} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async updateDomain(ref: string, body: InlineObject1, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.updateDomain(ref, body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - } -}; - -/** - * DomainsApi - factory interface - * @export - */ -export const DomainsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = DomainsApiFp(configuration) - return { - /** - * - * @summary Creates a new Domain resource - * @param {CreateDomainRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createDomain(body: CreateDomainRequest, options?: any): AxiosPromise { - return localVarFp.createDomain(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Hard delete of a domain resource - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteDomain(ref: string, options?: any): AxiosPromise { - return localVarFp.deleteDomain(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets a Domain by reference - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getDomain(ref: string, options?: any): AxiosPromise { - return localVarFp.getDomain(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Domain\'s reference - * @param {InlineObject1} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateDomain(ref: string, body: InlineObject1, options?: any): AxiosPromise { - return localVarFp.updateDomain(ref, body, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * DomainsApi - object-oriented interface - * @export - * @class DomainsApi - * @extends {BaseAPI} - */ -export class DomainsApi extends BaseAPI { - /** - * - * @summary Creates a new Domain resource - * @param {CreateDomainRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DomainsApi - */ - public createDomain(body: CreateDomainRequest, options?: AxiosRequestConfig) { - return DomainsApiFp(this.configuration).createDomain(body, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Hard delete of a domain resource - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DomainsApi - */ - public deleteDomain(ref: string, options?: AxiosRequestConfig) { - return DomainsApiFp(this.configuration).deleteDomain(ref, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Gets a Domain by reference - * @param {string} ref Domain\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DomainsApi - */ - public getDomain(ref: string, options?: AxiosRequestConfig) { - return DomainsApiFp(this.configuration).getDomain(ref, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Domain\'s reference - * @param {InlineObject1} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DomainsApi - */ - public updateDomain(ref: string, body: InlineObject1, options?: AxiosRequestConfig) { - return DomainsApiFp(this.configuration).updateDomain(ref, body, options).then((request) => request(this.axios, this.basePath)); - } -} - - -/** - * FuncsApi - axios parameter creator - * @export - */ -export const FuncsApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @summary Peforms a hard delete of the function - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteFunc: async (name: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'name' is not null or undefined - assertParamExists('deleteFunc', 'name', name) - const localVarPath = `/v1beta1/funcs/{name}` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Gets a function by name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Requested level of detail. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getFunc: async (name: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'name' is not null or undefined - assertParamExists('getFunc', 'name', name) - const localVarPath = `/v1beta1/funcs/{name}` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Gets a stream of logs - * @param {string} name - * @param {string} [since] Only return logs after a specific date (RFC3339). - * @param {number} [tail] - * @param {boolean} [follow] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getFuncLogs: async (name: string, since?: string, tail?: number, follow?: boolean, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'name' is not null or undefined - assertParamExists('getFuncLogs', 'name', name) - const localVarPath = `/v1beta1/funcs/{name}/logs` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - if (since !== undefined) { - localVarQueryParameter['since'] = since; - } - - if (tail !== undefined) { - localVarQueryParameter['tail'] = tail; - } - - if (follow !== undefined) { - localVarQueryParameter['follow'] = follow; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Shows a list of user functions - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listFuncs: async (pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/v1beta1/funcs`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - if (pageSize !== undefined) { - localVarQueryParameter['pageSize'] = pageSize; - } - - if (pageToken !== undefined) { - localVarQueryParameter['pageToken'] = pageToken; - } - - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * FuncsApi - functional programming interface - * @export - */ -export const FuncsApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = FuncsApiAxiosParamCreator(configuration) - return { - /** - * - * @summary Peforms a hard delete of the function - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async deleteFunc(name: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.deleteFunc(name, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Gets a function by name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Requested level of detail. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getFunc(name: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getFunc(name, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Gets a stream of logs - * @param {string} name - * @param {string} [since] Only return logs after a specific date (RFC3339). - * @param {number} [tail] - * @param {boolean} [follow] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getFuncLogs(name: string, since?: string, tail?: number, follow?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getFuncLogs(name, since, tail, follow, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Shows a list of user functions - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async listFuncs(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listFuncs(pageSize, pageToken, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - } -}; - -/** - * FuncsApi - factory interface - * @export - */ -export const FuncsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = FuncsApiFp(configuration) - return { - /** - * - * @summary Peforms a hard delete of the function - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteFunc(name: string, options?: any): AxiosPromise { - return localVarFp.deleteFunc(name, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets a function by name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Requested level of detail. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getFunc(name: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: any): AxiosPromise { - return localVarFp.getFunc(name, view, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets a stream of logs - * @param {string} name - * @param {string} [since] Only return logs after a specific date (RFC3339). - * @param {number} [tail] - * @param {boolean} [follow] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getFuncLogs(name: string, since?: string, tail?: number, follow?: boolean, options?: any): AxiosPromise { - return localVarFp.getFuncLogs(name, since, tail, follow, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Shows a list of user functions - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listFuncs(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: any): AxiosPromise { - return localVarFp.listFuncs(pageSize, pageToken, view, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * FuncsApi - object-oriented interface - * @export - * @class FuncsApi - * @extends {BaseAPI} - */ -export class FuncsApi extends BaseAPI { - /** - * - * @summary Peforms a hard delete of the function - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FuncsApi - */ - public deleteFunc(name: string, options?: AxiosRequestConfig) { - return FuncsApiFp(this.configuration).deleteFunc(name, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Gets a function by name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Requested level of detail. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FuncsApi - */ - public getFunc(name: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig) { - return FuncsApiFp(this.configuration).getFunc(name, view, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Gets a stream of logs - * @param {string} name - * @param {string} [since] Only return logs after a specific date (RFC3339). - * @param {number} [tail] - * @param {boolean} [follow] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FuncsApi - */ - public getFuncLogs(name: string, since?: string, tail?: number, follow?: boolean, options?: AxiosRequestConfig) { - return FuncsApiFp(this.configuration).getFuncLogs(name, since, tail, follow, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Shows a list of user functions - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof FuncsApi - */ - public listFuncs(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig) { - return FuncsApiFp(this.configuration).listFuncs(pageSize, pageToken, view, options).then((request) => request(this.axios, this.basePath)); - } -} - - -/** - * NumbersApi - axios parameter creator - * @export - */ -export const NumbersApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @summary Creates a new Number resource - * @param {CreateNumberRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createNumber: async (body: CreateNumberRequest, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'body' is not null or undefined - assertParamExists('createNumber', 'body', body) - const localVarPath = `/v1beta1/numbers`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Hard delete of a Number resource - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteNumber: async (ref: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('deleteNumber', 'ref', ref) - const localVarPath = `/v1beta1/numbers/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Gets Number using its reference - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getNumber: async (ref: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('getNumber', 'ref', ref) - const localVarPath = `/v1beta1/numbers/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Lists Numbers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listNumbers: async (pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/v1beta1/numbers`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - if (pageSize !== undefined) { - localVarQueryParameter['pageSize'] = pageSize; - } - - if (pageToken !== undefined) { - localVarQueryParameter['pageToken'] = pageToken; - } - - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Number\'s reference - * @param {InlineObject2} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateNumber: async (ref: string, body: InlineObject2, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('updateNumber', 'ref', ref) - // verify required parameter 'body' is not null or undefined - assertParamExists('updateNumber', 'body', body) - const localVarPath = `/v1beta1/numbers/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * NumbersApi - functional programming interface - * @export - */ -export const NumbersApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = NumbersApiAxiosParamCreator(configuration) - return { - /** - * - * @summary Creates a new Number resource - * @param {CreateNumberRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async createNumber(body: CreateNumberRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.createNumber(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Hard delete of a Number resource - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async deleteNumber(ref: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.deleteNumber(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Gets Number using its reference - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getNumber(ref: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getNumber(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Lists Numbers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async listNumbers(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listNumbers(pageSize, pageToken, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Number\'s reference - * @param {InlineObject2} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async updateNumber(ref: string, body: InlineObject2, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.updateNumber(ref, body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - } -}; - -/** - * NumbersApi - factory interface - * @export - */ -export const NumbersApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = NumbersApiFp(configuration) - return { - /** - * - * @summary Creates a new Number resource - * @param {CreateNumberRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createNumber(body: CreateNumberRequest, options?: any): AxiosPromise { - return localVarFp.createNumber(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Hard delete of a Number resource - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteNumber(ref: string, options?: any): AxiosPromise { - return localVarFp.deleteNumber(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets Number using its reference - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getNumber(ref: string, options?: any): AxiosPromise { - return localVarFp.getNumber(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Lists Numbers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listNumbers(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: any): AxiosPromise { - return localVarFp.listNumbers(pageSize, pageToken, view, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Number\'s reference - * @param {InlineObject2} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateNumber(ref: string, body: InlineObject2, options?: any): AxiosPromise { - return localVarFp.updateNumber(ref, body, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * NumbersApi - object-oriented interface - * @export - * @class NumbersApi - * @extends {BaseAPI} - */ -export class NumbersApi extends BaseAPI { - /** - * - * @summary Creates a new Number resource - * @param {CreateNumberRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NumbersApi - */ - public createNumber(body: CreateNumberRequest, options?: AxiosRequestConfig) { - return NumbersApiFp(this.configuration).createNumber(body, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Hard delete of a Number resource - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NumbersApi - */ - public deleteNumber(ref: string, options?: AxiosRequestConfig) { - return NumbersApiFp(this.configuration).deleteNumber(ref, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Gets Number using its reference - * @param {string} ref Number\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NumbersApi - */ - public getNumber(ref: string, options?: AxiosRequestConfig) { - return NumbersApiFp(this.configuration).getNumber(ref, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Lists Numbers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NumbersApi - */ - public listNumbers(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig) { - return NumbersApiFp(this.configuration).listNumbers(pageSize, pageToken, view, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Number\'s reference - * @param {InlineObject2} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof NumbersApi - */ - public updateNumber(ref: string, body: InlineObject2, options?: AxiosRequestConfig) { - return NumbersApiFp(this.configuration).updateNumber(ref, body, options).then((request) => request(this.axios, this.basePath)); - } -} - - -/** - * ProjectsApi - axios parameter creator - * @export - */ -export const ProjectsApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @summary Creates a new Project resource - * @param {CreateProjectRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createProject: async (body: CreateProjectRequest, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'body' is not null or undefined - assertParamExists('createProject', 'body', body) - const localVarPath = `/v1beta1/projects`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary WARNING: Hard delete of a Project will remove all related resources - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteProject: async (ref: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('deleteProject', 'ref', ref) - const localVarPath = `/v1beta1/projects/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Gets a Project by AccessKeyId - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getProject: async (ref: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('getProject', 'ref', ref) - const localVarPath = `/v1beta1/projects/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Lists all the Projects for a given User - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listProjects: async (options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/v1beta1/projects`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Regenerates the accessKeySecret - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - renewAccessKeySecret: async (ref: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('renewAccessKeySecret', 'ref', ref) - const localVarPath = `/v1beta1/projects/{ref}/credentials` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Updates a given Project - * @param {string} ref Project\'s reference - * @param {InlineObject3} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateProject: async (ref: string, body: InlineObject3, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('updateProject', 'ref', ref) - // verify required parameter 'body' is not null or undefined - assertParamExists('updateProject', 'body', body) - const localVarPath = `/v1beta1/projects/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * ProjectsApi - functional programming interface - * @export - */ -export const ProjectsApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = ProjectsApiAxiosParamCreator(configuration) - return { - /** - * - * @summary Creates a new Project resource - * @param {CreateProjectRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async createProject(body: CreateProjectRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.createProject(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary WARNING: Hard delete of a Project will remove all related resources - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async deleteProject(ref: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.deleteProject(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Gets a Project by AccessKeyId - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getProject(ref: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getProject(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Lists all the Projects for a given User - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async listProjects(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listProjects(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Regenerates the accessKeySecret - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async renewAccessKeySecret(ref: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.renewAccessKeySecret(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Updates a given Project - * @param {string} ref Project\'s reference - * @param {InlineObject3} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async updateProject(ref: string, body: InlineObject3, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.updateProject(ref, body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - } -}; - -/** - * ProjectsApi - factory interface - * @export - */ -export const ProjectsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = ProjectsApiFp(configuration) - return { - /** - * - * @summary Creates a new Project resource - * @param {CreateProjectRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createProject(body: CreateProjectRequest, options?: any): AxiosPromise { - return localVarFp.createProject(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary WARNING: Hard delete of a Project will remove all related resources - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteProject(ref: string, options?: any): AxiosPromise { - return localVarFp.deleteProject(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets a Project by AccessKeyId - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getProject(ref: string, options?: any): AxiosPromise { - return localVarFp.getProject(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Lists all the Projects for a given User - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listProjects(options?: any): AxiosPromise { - return localVarFp.listProjects(options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Regenerates the accessKeySecret - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - renewAccessKeySecret(ref: string, options?: any): AxiosPromise { - return localVarFp.renewAccessKeySecret(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Updates a given Project - * @param {string} ref Project\'s reference - * @param {InlineObject3} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateProject(ref: string, body: InlineObject3, options?: any): AxiosPromise { - return localVarFp.updateProject(ref, body, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * ProjectsApi - object-oriented interface - * @export - * @class ProjectsApi - * @extends {BaseAPI} - */ -export class ProjectsApi extends BaseAPI { - /** - * - * @summary Creates a new Project resource - * @param {CreateProjectRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProjectsApi - */ - public createProject(body: CreateProjectRequest, options?: AxiosRequestConfig) { - return ProjectsApiFp(this.configuration).createProject(body, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary WARNING: Hard delete of a Project will remove all related resources - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProjectsApi - */ - public deleteProject(ref: string, options?: AxiosRequestConfig) { - return ProjectsApiFp(this.configuration).deleteProject(ref, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Gets a Project by AccessKeyId - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProjectsApi - */ - public getProject(ref: string, options?: AxiosRequestConfig) { - return ProjectsApiFp(this.configuration).getProject(ref, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Lists all the Projects for a given User - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProjectsApi - */ - public listProjects(options?: AxiosRequestConfig) { - return ProjectsApiFp(this.configuration).listProjects(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Regenerates the accessKeySecret - * @param {string} ref Project\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProjectsApi - */ - public renewAccessKeySecret(ref: string, options?: AxiosRequestConfig) { - return ProjectsApiFp(this.configuration).renewAccessKeySecret(ref, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Updates a given Project - * @param {string} ref Project\'s reference - * @param {InlineObject3} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProjectsApi - */ - public updateProject(ref: string, body: InlineObject3, options?: AxiosRequestConfig) { - return ProjectsApiFp(this.configuration).updateProject(ref, body, options).then((request) => request(this.axios, this.basePath)); - } -} - - -/** - * ProvidersApi - axios parameter creator - * @export - */ -export const ProvidersApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @summary Creates a new Provider resource. - * @param {CreateProviderRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createProvider: async (body: CreateProviderRequest, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'body' is not null or undefined - assertParamExists('createProvider', 'body', body) - const localVarPath = `/v1beta1/providers`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Hard delete of a Provider resource - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteProvider: async (ref: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('deleteProvider', 'ref', ref) - const localVarPath = `/v1beta1/providers/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Gets Provider using its reference - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getProvider: async (ref: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('getProvider', 'ref', ref) - const localVarPath = `/v1beta1/providers/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Lists Providers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listProviders: async (pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/v1beta1/providers`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - if (pageSize !== undefined) { - localVarQueryParameter['pageSize'] = pageSize; - } - - if (pageToken !== undefined) { - localVarQueryParameter['pageToken'] = pageToken; - } - - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Provider\'s reference - * @param {InlineObject4} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateProvider: async (ref: string, body: InlineObject4, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('updateProvider', 'ref', ref) - // verify required parameter 'body' is not null or undefined - assertParamExists('updateProvider', 'body', body) - const localVarPath = `/v1beta1/providers/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * ProvidersApi - functional programming interface - * @export - */ -export const ProvidersApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = ProvidersApiAxiosParamCreator(configuration) - return { - /** - * - * @summary Creates a new Provider resource. - * @param {CreateProviderRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async createProvider(body: CreateProviderRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.createProvider(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Hard delete of a Provider resource - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async deleteProvider(ref: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.deleteProvider(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Gets Provider using its reference - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getProvider(ref: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getProvider(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Lists Providers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async listProviders(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listProviders(pageSize, pageToken, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Provider\'s reference - * @param {InlineObject4} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async updateProvider(ref: string, body: InlineObject4, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.updateProvider(ref, body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - } -}; - -/** - * ProvidersApi - factory interface - * @export - */ -export const ProvidersApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = ProvidersApiFp(configuration) - return { - /** - * - * @summary Creates a new Provider resource. - * @param {CreateProviderRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createProvider(body: CreateProviderRequest, options?: any): AxiosPromise { - return localVarFp.createProvider(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Hard delete of a Provider resource - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteProvider(ref: string, options?: any): AxiosPromise { - return localVarFp.deleteProvider(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets Provider using its reference - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getProvider(ref: string, options?: any): AxiosPromise { - return localVarFp.getProvider(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Lists Providers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listProviders(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: any): AxiosPromise { - return localVarFp.listProviders(pageSize, pageToken, view, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Provider\'s reference - * @param {InlineObject4} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateProvider(ref: string, body: InlineObject4, options?: any): AxiosPromise { - return localVarFp.updateProvider(ref, body, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * ProvidersApi - object-oriented interface - * @export - * @class ProvidersApi - * @extends {BaseAPI} - */ -export class ProvidersApi extends BaseAPI { - /** - * - * @summary Creates a new Provider resource. - * @param {CreateProviderRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProvidersApi - */ - public createProvider(body: CreateProviderRequest, options?: AxiosRequestConfig) { - return ProvidersApiFp(this.configuration).createProvider(body, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Hard delete of a Provider resource - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProvidersApi - */ - public deleteProvider(ref: string, options?: AxiosRequestConfig) { - return ProvidersApiFp(this.configuration).deleteProvider(ref, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Gets Provider using its reference - * @param {string} ref Provider\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProvidersApi - */ - public getProvider(ref: string, options?: AxiosRequestConfig) { - return ProvidersApiFp(this.configuration).getProvider(ref, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Lists Providers from the SIP Proxy subsystem - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProvidersApi - */ - public listProviders(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig) { - return ProvidersApiFp(this.configuration).listProviders(pageSize, pageToken, view, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Change or update fields in a resource - * @param {string} ref Provider\'s reference - * @param {InlineObject4} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof ProvidersApi - */ - public updateProvider(ref: string, body: InlineObject4, options?: AxiosRequestConfig) { - return ProvidersApiFp(this.configuration).updateProvider(ref, body, options).then((request) => request(this.axios, this.basePath)); - } -} - - -/** - * SecretsApi - axios parameter creator - * @export - */ -export const SecretsApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @param {CreateSecretRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createSecret: async (body: CreateSecretRequest, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'body' is not null or undefined - assertParamExists('createSecret', 'body', body) - const localVarPath = `/v1beta1/secrets`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Peforms a hard delete of the Secret resource - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteSecret: async (name: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'name' is not null or undefined - assertParamExists('deleteSecret', 'name', name) - const localVarPath = `/v1beta1/secrets/{name}` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Gets Secret with the Secret-name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSecret: async (name: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'name' is not null or undefined - assertParamExists('getSecret', 'name', name) - const localVarPath = `/v1beta1/secrets/{name}` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Lists Secret - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listSecretsId: async (pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/v1beta1/secrets`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - if (pageSize !== undefined) { - localVarQueryParameter['pageSize'] = pageSize; - } - - if (pageToken !== undefined) { - localVarQueryParameter['pageToken'] = pageToken; - } - - if (view !== undefined) { - localVarQueryParameter['view'] = view; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * SecretsApi - functional programming interface - * @export - */ -export const SecretsApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = SecretsApiAxiosParamCreator(configuration) - return { - /** - * - * @param {CreateSecretRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async createSecret(body: CreateSecretRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.createSecret(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Peforms a hard delete of the Secret resource - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async deleteSecret(name: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.deleteSecret(name, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Gets Secret with the Secret-name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getSecret(name: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getSecret(name, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Lists Secret - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async listSecretsId(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listSecretsId(pageSize, pageToken, view, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - } -}; - -/** - * SecretsApi - factory interface - * @export - */ -export const SecretsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = SecretsApiFp(configuration) - return { - /** - * - * @param {CreateSecretRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createSecret(body: CreateSecretRequest, options?: any): AxiosPromise { - return localVarFp.createSecret(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Peforms a hard delete of the Secret resource - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteSecret(name: string, options?: any): AxiosPromise { - return localVarFp.deleteSecret(name, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets Secret with the Secret-name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getSecret(name: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: any): AxiosPromise { - return localVarFp.getSecret(name, view, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Lists Secret - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listSecretsId(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: any): AxiosPromise { - return localVarFp.listSecretsId(pageSize, pageToken, view, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * SecretsApi - object-oriented interface - * @export - * @class SecretsApi - * @extends {BaseAPI} - */ -export class SecretsApi extends BaseAPI { - /** - * - * @param {CreateSecretRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SecretsApi - */ - public createSecret(body: CreateSecretRequest, options?: AxiosRequestConfig) { - return SecretsApiFp(this.configuration).createSecret(body, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Peforms a hard delete of the Secret resource - * @param {string} name - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SecretsApi - */ - public deleteSecret(name: string, options?: AxiosRequestConfig) { - return SecretsApiFp(this.configuration).deleteSecret(name, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Gets Secret with the Secret-name - * @param {string} name - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SecretsApi - */ - public getSecret(name: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig) { - return SecretsApiFp(this.configuration).getSecret(name, view, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Lists Secret - * @param {number} [pageSize] The maximum number of items in the list. - * @param {string} [pageToken] The next_page_token value returned from the previous request, if any. - * @param {'BASIC' | 'STANDARD' | 'FULL'} [view] Level of detail of the individual entities (reserved). - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SecretsApi - */ - public listSecretsId(pageSize?: number, pageToken?: string, view?: 'BASIC' | 'STANDARD' | 'FULL', options?: AxiosRequestConfig) { - return SecretsApiFp(this.configuration).listSecretsId(pageSize, pageToken, view, options).then((request) => request(this.axios, this.basePath)); - } -} - - -/** - * StorageApi - axios parameter creator - * @export - */ -export const StorageApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @param {'APPS' | 'RECORDINGS' | 'PUBLIC' | 'FUNCS'} bucket - * @param {string} filename - * @param {string} [accessKeyId] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getObjectURL: async (bucket: 'APPS' | 'RECORDINGS' | 'PUBLIC' | 'FUNCS', filename: string, accessKeyId?: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'bucket' is not null or undefined - assertParamExists('getObjectURL', 'bucket', bucket) - // verify required parameter 'filename' is not null or undefined - assertParamExists('getObjectURL', 'filename', filename) - const localVarPath = `/v1beta1/storage/{bucket}/{filename}` - .replace(`{${"bucket"}}`, encodeURIComponent(String(bucket))) - .replace(`{${"filename"}}`, encodeURIComponent(String(filename))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - if (accessKeyId !== undefined) { - localVarQueryParameter['accessKeyId'] = accessKeyId; - } - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * StorageApi - functional programming interface - * @export - */ -export const StorageApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = StorageApiAxiosParamCreator(configuration) - return { - /** - * - * @param {'APPS' | 'RECORDINGS' | 'PUBLIC' | 'FUNCS'} bucket - * @param {string} filename - * @param {string} [accessKeyId] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getObjectURL(bucket: 'APPS' | 'RECORDINGS' | 'PUBLIC' | 'FUNCS', filename: string, accessKeyId?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getObjectURL(bucket, filename, accessKeyId, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - } -}; - -/** - * StorageApi - factory interface - * @export - */ -export const StorageApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = StorageApiFp(configuration) - return { - /** - * - * @param {'APPS' | 'RECORDINGS' | 'PUBLIC' | 'FUNCS'} bucket - * @param {string} filename - * @param {string} [accessKeyId] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getObjectURL(bucket: 'APPS' | 'RECORDINGS' | 'PUBLIC' | 'FUNCS', filename: string, accessKeyId?: string, options?: any): AxiosPromise { - return localVarFp.getObjectURL(bucket, filename, accessKeyId, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * StorageApi - object-oriented interface - * @export - * @class StorageApi - * @extends {BaseAPI} - */ -export class StorageApi extends BaseAPI { - /** - * - * @param {'APPS' | 'RECORDINGS' | 'PUBLIC' | 'FUNCS'} bucket - * @param {string} filename - * @param {string} [accessKeyId] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof StorageApi - */ - public getObjectURL(bucket: 'APPS' | 'RECORDINGS' | 'PUBLIC' | 'FUNCS', filename: string, accessKeyId?: string, options?: AxiosRequestConfig) { - return StorageApiFp(this.configuration).getObjectURL(bucket, filename, accessKeyId, options).then((request) => request(this.axios, this.basePath)); - } -} - - -/** - * UsersApi - axios parameter creator - * @export - */ -export const UsersApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @summary Creates a new User resource - * @param {CreateUserRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createUser: async (body: CreateUserRequest, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'body' is not null or undefined - assertParamExists('createUser', 'body', body) - const localVarPath = `/v1beta1/users`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Creates a set of credentials - * @param {CreateUserCredentialsRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createUserCredentials: async (body: CreateUserCredentialsRequest, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'body' is not null or undefined - assertParamExists('createUserCredentials', 'body', body) - const localVarPath = `/v1beta1/users/credentials`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary WARNING: Hard delete of an User will remove all related projects and its resources. - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteUser: async (ref: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('deleteUser', 'ref', ref) - const localVarPath = `/v1beta1/users/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Gets User by reference - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getUser: async (ref: string, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('getUser', 'ref', ref) - const localVarPath = `/v1beta1/users/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Lists all the Users you have access to - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listUsers: async (options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/v1beta1/users`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref User\'s reference - * @param {InlineObject5} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateUser: async (ref: string, body: InlineObject5, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'ref' is not null or undefined - assertParamExists('updateUser', 'ref', ref) - // verify required parameter 'body' is not null or undefined - assertParamExists('updateUser', 'body', body) - const localVarPath = `/v1beta1/users/{ref}` - .replace(`{${"ref"}}`, encodeURIComponent(String(ref))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication AccessKeyId required - await setApiKeyToObject(localVarHeaderParameter, "access_key_id", configuration) - - // authentication AccessKeySecret required - await setApiKeyToObject(localVarHeaderParameter, "access_key_secret", configuration) - - - - localVarHeaderParameter['Content-Type'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(body, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * UsersApi - functional programming interface - * @export - */ -export const UsersApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = UsersApiAxiosParamCreator(configuration) - return { - /** - * - * @summary Creates a new User resource - * @param {CreateUserRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async createUser(body: CreateUserRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.createUser(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Creates a set of credentials - * @param {CreateUserCredentialsRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async createUserCredentials(body: CreateUserCredentialsRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.createUserCredentials(body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary WARNING: Hard delete of an User will remove all related projects and its resources. - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async deleteUser(ref: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.deleteUser(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Gets User by reference - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async getUser(ref: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getUser(ref, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Lists all the Users you have access to - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async listUsers(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listUsers(options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref User\'s reference - * @param {InlineObject5} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async updateUser(ref: string, body: InlineObject5, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.updateUser(ref, body, options); - return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); - }, - } -}; - -/** - * UsersApi - factory interface - * @export - */ -export const UsersApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = UsersApiFp(configuration) - return { - /** - * - * @summary Creates a new User resource - * @param {CreateUserRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createUser(body: CreateUserRequest, options?: any): AxiosPromise { - return localVarFp.createUser(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Creates a set of credentials - * @param {CreateUserCredentialsRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - createUserCredentials(body: CreateUserCredentialsRequest, options?: any): AxiosPromise { - return localVarFp.createUserCredentials(body, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary WARNING: Hard delete of an User will remove all related projects and its resources. - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - deleteUser(ref: string, options?: any): AxiosPromise { - return localVarFp.deleteUser(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Gets User by reference - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - getUser(ref: string, options?: any): AxiosPromise { - return localVarFp.getUser(ref, options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Lists all the Users you have access to - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listUsers(options?: any): AxiosPromise { - return localVarFp.listUsers(options).then((request) => request(axios, basePath)); - }, - /** - * - * @summary Change or update fields in a resource - * @param {string} ref User\'s reference - * @param {InlineObject5} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - updateUser(ref: string, body: InlineObject5, options?: any): AxiosPromise { - return localVarFp.updateUser(ref, body, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * UsersApi - object-oriented interface - * @export - * @class UsersApi - * @extends {BaseAPI} - */ -export class UsersApi extends BaseAPI { - /** - * - * @summary Creates a new User resource - * @param {CreateUserRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof UsersApi - */ - public createUser(body: CreateUserRequest, options?: AxiosRequestConfig) { - return UsersApiFp(this.configuration).createUser(body, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Creates a set of credentials - * @param {CreateUserCredentialsRequest} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof UsersApi - */ - public createUserCredentials(body: CreateUserCredentialsRequest, options?: AxiosRequestConfig) { - return UsersApiFp(this.configuration).createUserCredentials(body, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary WARNING: Hard delete of an User will remove all related projects and its resources. - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof UsersApi - */ - public deleteUser(ref: string, options?: AxiosRequestConfig) { - return UsersApiFp(this.configuration).deleteUser(ref, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Gets User by reference - * @param {string} ref User\'s reference - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof UsersApi - */ - public getUser(ref: string, options?: AxiosRequestConfig) { - return UsersApiFp(this.configuration).getUser(ref, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Lists all the Users you have access to - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof UsersApi - */ - public listUsers(options?: AxiosRequestConfig) { - return UsersApiFp(this.configuration).listUsers(options).then((request) => request(this.axios, this.basePath)); - } - - /** - * - * @summary Change or update fields in a resource - * @param {string} ref User\'s reference - * @param {InlineObject5} body - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof UsersApi - */ - public updateUser(ref: string, body: InlineObject5, options?: AxiosRequestConfig) { - return UsersApiFp(this.configuration).updateUser(ref, body, options).then((request) => request(this.axios, this.basePath)); - } -} - - diff --git a/mods/websdk/src/generated/api/base.js b/mods/websdk/src/generated/api/base.js deleted file mode 100644 index 249db5fcc..000000000 --- a/mods/websdk/src/generated/api/base.js +++ /dev/null @@ -1,56 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Project Fonos - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: v1beta1 - * Contact: psanders@fonoster.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -// Some imports not used depending on template conditions -// @ts-ignore -import globalAxios from 'axios'; -export const BASE_PATH = "http://localhost/api".replace(/\/+$/, ""); -/** - * - * @export - */ -export const COLLECTION_FORMATS = { - csv: ",", - ssv: " ", - tsv: "\t", - pipes: "|", -}; -/** - * - * @export - * @class BaseAPI - */ -export class BaseAPI { - constructor(configuration, basePath = BASE_PATH, axios = globalAxios) { - this.basePath = basePath; - this.axios = axios; - if (configuration) { - this.configuration = configuration; - this.basePath = configuration.basePath || this.basePath; - } - } -} -; -/** - * - * @export - * @class RequiredError - * @extends {Error} - */ -export class RequiredError extends Error { - constructor(field, msg) { - super(msg); - this.field = field; - this.name = "RequiredError"; - } -} diff --git a/mods/websdk/src/generated/api/base.ts b/mods/websdk/src/generated/api/base.ts deleted file mode 100644 index a52cd30dd..000000000 --- a/mods/websdk/src/generated/api/base.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Fonoster - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: v1beta1 - * Contact: psanders@fonoster.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import { Configuration } from "./configuration"; -// Some imports not used depending on template conditions -// @ts-ignore -import globalAxios, { AxiosPromise, AxiosInstance, AxiosRequestConfig } from 'axios'; - -export const BASE_PATH = "http://localhost/api".replace(/\/+$/, ""); - -/** - * - * @export - */ -export const COLLECTION_FORMATS = { - csv: ",", - ssv: " ", - tsv: "\t", - pipes: "|", -}; - -/** - * - * @export - * @interface RequestArgs - */ -export interface RequestArgs { - url: string; - options: AxiosRequestConfig; -} - -/** - * - * @export - * @class BaseAPI - */ -export class BaseAPI { - protected configuration: Configuration | undefined; - - constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) { - if (configuration) { - this.configuration = configuration; - this.basePath = configuration.basePath || this.basePath; - } - } -}; - -/** - * - * @export - * @class RequiredError - * @extends {Error} - */ -export class RequiredError extends Error { - name: "RequiredError" = "RequiredError"; - constructor(public field: string, msg?: string) { - super(msg); - } -} diff --git a/mods/websdk/src/generated/api/common.js b/mods/websdk/src/generated/api/common.js deleted file mode 100644 index 60c9eef21..000000000 --- a/mods/websdk/src/generated/api/common.js +++ /dev/null @@ -1,140 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Project Fonos - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: v1beta1 - * Contact: psanders@fonoster.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -import { RequiredError } from "./base"; -/** - * - * @export - */ -export const DUMMY_BASE_URL = 'https://example.com'; -/** - * - * @throws {RequiredError} - * @export - */ -export const assertParamExists = function (functionName, paramName, paramValue) { - if (paramValue === null || paramValue === undefined) { - throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`); - } -}; -/** - * - * @export - */ -export const setApiKeyToObject = function (object, keyParamName, configuration) { - return __awaiter(this, void 0, void 0, function* () { - if (configuration && configuration.apiKey) { - const localVarApiKeyValue = typeof configuration.apiKey === 'function' - ? yield configuration.apiKey(keyParamName) - : yield configuration.apiKey; - object[keyParamName] = localVarApiKeyValue; - } - }); -}; -/** - * - * @export - */ -export const setBasicAuthToObject = function (object, configuration) { - if (configuration && (configuration.username || configuration.password)) { - object["auth"] = { username: configuration.username, password: configuration.password }; - } -}; -/** - * - * @export - */ -export const setBearerAuthToObject = function (object, configuration) { - return __awaiter(this, void 0, void 0, function* () { - if (configuration && configuration.accessToken) { - const accessToken = typeof configuration.accessToken === 'function' - ? yield configuration.accessToken() - : yield configuration.accessToken; - object["Authorization"] = "Bearer " + accessToken; - } - }); -}; -/** - * - * @export - */ -export const setOAuthToObject = function (object, name, scopes, configuration) { - return __awaiter(this, void 0, void 0, function* () { - if (configuration && configuration.accessToken) { - const localVarAccessTokenValue = typeof configuration.accessToken === 'function' - ? yield configuration.accessToken(name, scopes) - : yield configuration.accessToken; - object["Authorization"] = "Bearer " + localVarAccessTokenValue; - } - }); -}; -/** - * - * @export - */ -export const setSearchParams = function (url, ...objects) { - const searchParams = new URLSearchParams(url.search); - for (const object of objects) { - for (const key in object) { - if (Array.isArray(object[key])) { - searchParams.delete(key); - for (const item of object[key]) { - searchParams.append(key, item); - } - } - else { - searchParams.set(key, object[key]); - } - } - } - url.search = searchParams.toString(); -}; -/** - * - * @export - */ -export const serializeDataIfNeeded = function (value, requestOptions, configuration) { - const nonString = typeof value !== 'string'; - const needsSerialization = nonString && configuration && configuration.isJsonMime - ? configuration.isJsonMime(requestOptions.headers['Content-Type']) - : nonString; - return needsSerialization - ? JSON.stringify(value !== undefined ? value : {}) - : (value || ""); -}; -/** - * - * @export - */ -export const toPathString = function (url) { - return url.pathname + url.search + url.hash; -}; -/** - * - * @export - */ -export const createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) { - return (axios = globalAxios, basePath = BASE_PATH) => { - const axiosRequestArgs = Object.assign(Object.assign({}, axiosArgs.options), { url: ((configuration === null || configuration === void 0 ? void 0 : configuration.basePath) || basePath) + axiosArgs.url }); - return axios.request(axiosRequestArgs); - }; -}; diff --git a/mods/websdk/src/generated/api/common.ts b/mods/websdk/src/generated/api/common.ts deleted file mode 100644 index 0be152909..000000000 --- a/mods/websdk/src/generated/api/common.ts +++ /dev/null @@ -1,138 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Fonoster - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: v1beta1 - * Contact: psanders@fonoster.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import { Configuration } from "./configuration"; -import { RequiredError, RequestArgs } from "./base"; -import { AxiosInstance, AxiosResponse } from 'axios'; - -/** - * - * @export - */ -export const DUMMY_BASE_URL = 'https://example.com' - -/** - * - * @throws {RequiredError} - * @export - */ -export const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) { - if (paramValue === null || paramValue === undefined) { - throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`); - } -} - -/** - * - * @export - */ -export const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) { - if (configuration && configuration.apiKey) { - const localVarApiKeyValue = typeof configuration.apiKey === 'function' - ? await configuration.apiKey(keyParamName) - : await configuration.apiKey; - object[keyParamName] = localVarApiKeyValue; - } -} - -/** - * - * @export - */ -export const setBasicAuthToObject = function (object: any, configuration?: Configuration) { - if (configuration && (configuration.username || configuration.password)) { - object["auth"] = { username: configuration.username, password: configuration.password }; - } -} - -/** - * - * @export - */ -export const setBearerAuthToObject = async function (object: any, configuration?: Configuration) { - if (configuration && configuration.accessToken) { - const accessToken = typeof configuration.accessToken === 'function' - ? await configuration.accessToken() - : await configuration.accessToken; - object["Authorization"] = "Bearer " + accessToken; - } -} - -/** - * - * @export - */ -export const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) { - if (configuration && configuration.accessToken) { - const localVarAccessTokenValue = typeof configuration.accessToken === 'function' - ? await configuration.accessToken(name, scopes) - : await configuration.accessToken; - object["Authorization"] = "Bearer " + localVarAccessTokenValue; - } -} - -/** - * - * @export - */ -export const setSearchParams = function (url: URL, ...objects: any[]) { - const searchParams = new URLSearchParams(url.search); - for (const object of objects) { - for (const key in object) { - if (Array.isArray(object[key])) { - searchParams.delete(key); - for (const item of object[key]) { - searchParams.append(key, item); - } - } else { - searchParams.set(key, object[key]); - } - } - } - url.search = searchParams.toString(); -} - -/** - * - * @export - */ -export const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) { - const nonString = typeof value !== 'string'; - const needsSerialization = nonString && configuration && configuration.isJsonMime - ? configuration.isJsonMime(requestOptions.headers['Content-Type']) - : nonString; - return needsSerialization - ? JSON.stringify(value !== undefined ? value : {}) - : (value || ""); -} - -/** - * - * @export - */ -export const toPathString = function (url: URL) { - return url.pathname + url.search + url.hash -} - -/** - * - * @export - */ -export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) { - return >(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs = {...axiosArgs.options, url: (configuration?.basePath || basePath) + axiosArgs.url}; - return axios.request(axiosRequestArgs); - }; -} diff --git a/mods/websdk/src/generated/api/configuration.js b/mods/websdk/src/generated/api/configuration.js deleted file mode 100644 index 043b519ec..000000000 --- a/mods/websdk/src/generated/api/configuration.js +++ /dev/null @@ -1,38 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Project Fonos - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: v1beta1 - * Contact: psanders@fonoster.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export class Configuration { - constructor(param = {}) { - this.apiKey = param.apiKey; - this.username = param.username; - this.password = param.password; - this.accessToken = param.accessToken; - this.basePath = param.basePath; - this.baseOptions = param.baseOptions; - this.formDataCtor = param.formDataCtor; - } - /** - * Check if the given MIME is a JSON MIME. - * JSON MIME examples: - * application/json - * application/json; charset=UTF8 - * APPLICATION/JSON - * application/vnd.company+json - * @param mime - MIME (Multipurpose Internet Mail Extensions) - * @return True if the given MIME is JSON, false otherwise. - */ - isJsonMime(mime) { - const jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); - return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); - } -} diff --git a/mods/websdk/src/generated/api/configuration.ts b/mods/websdk/src/generated/api/configuration.ts deleted file mode 100644 index e2477633f..000000000 --- a/mods/websdk/src/generated/api/configuration.ts +++ /dev/null @@ -1,101 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Fonoster - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: v1beta1 - * Contact: psanders@fonoster.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export interface ConfigurationParameters { - apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); - username?: string; - password?: string; - accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); - basePath?: string; - baseOptions?: any; - formDataCtor?: new () => any; -} - -export class Configuration { - /** - * parameter for apiKey security - * @param name security name - * @memberof Configuration - */ - apiKey?: string | Promise | ((name: string) => string) | ((name: string) => Promise); - /** - * parameter for basic security - * - * @type {string} - * @memberof Configuration - */ - username?: string; - /** - * parameter for basic security - * - * @type {string} - * @memberof Configuration - */ - password?: string; - /** - * parameter for oauth2 security - * @param name security name - * @param scopes oauth2 scope - * @memberof Configuration - */ - accessToken?: string | Promise | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise); - /** - * override base path - * - * @type {string} - * @memberof Configuration - */ - basePath?: string; - /** - * base options for axios calls - * - * @type {any} - * @memberof Configuration - */ - baseOptions?: any; - /** - * The FormData constructor that will be used to create multipart form data - * requests. You can inject this here so that execution environments that - * do not support the FormData class can still run the generated client. - * - * @type {new () => FormData} - */ - formDataCtor?: new () => any; - - constructor(param: ConfigurationParameters = {}) { - this.apiKey = param.apiKey; - this.username = param.username; - this.password = param.password; - this.accessToken = param.accessToken; - this.basePath = param.basePath; - this.baseOptions = param.baseOptions; - this.formDataCtor = param.formDataCtor; - } - - /** - * Check if the given MIME is a JSON MIME. - * JSON MIME examples: - * application/json - * application/json; charset=UTF8 - * APPLICATION/JSON - * application/vnd.company+json - * @param mime - MIME (Multipurpose Internet Mail Extensions) - * @return True if the given MIME is JSON, false otherwise. - */ - public isJsonMime(mime: string): boolean { - const jsonMime: RegExp = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i'); - return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json'); - } -} diff --git a/mods/websdk/src/generated/api/git_push.sh b/mods/websdk/src/generated/api/git_push.sh deleted file mode 100755 index bc0a89c2e..000000000 --- a/mods/websdk/src/generated/api/git_push.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh -# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ -# -# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com" - -git_user_id=$1 -git_repo_id=$2 -release_note=$3 -git_host=$4 - -if [ "$git_host" = "" ]; then - git_host="github.com" - echo "[INFO] No command line input provided. Set \$git_host to $git_host" -fi - -if [ "$git_user_id" = "" ]; then - git_user_id="GIT_USER_ID" - echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" -fi - -if [ "$git_repo_id" = "" ]; then - git_repo_id="GIT_REPO_ID" - echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" -fi - -if [ "$release_note" = "" ]; then - release_note="Minor update" - echo "[INFO] No command line input provided. Set \$release_note to $release_note" -fi - -# Initialize the local directory as a Git repository -git init - -# Adds the files in the local repository and stages them for commit. -git add . - -# Commits the tracked changes and prepares them to be pushed to a remote repository. -git commit -m "$release_note" - -# Sets the new remote -git_remote=$(git remote) -if [ "$git_remote" = "" ]; then # git remote not defined - if [ "$GIT_TOKEN" = "" ]; then - echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." - git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git - else - git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git - fi -fi - -git pull origin master - -# Pushes (Forces) the changes in the local repository up to the remote repository -echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git" -git push origin master 2>&1 | grep -v 'To https' diff --git a/mods/websdk/src/generated/api/index.js b/mods/websdk/src/generated/api/index.js deleted file mode 100644 index d425e9e68..000000000 --- a/mods/websdk/src/generated/api/index.js +++ /dev/null @@ -1,15 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Project Fonos - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: v1beta1 - * Contact: psanders@fonoster.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -export * from "./api"; -export * from "./configuration"; diff --git a/mods/websdk/src/generated/api/index.ts b/mods/websdk/src/generated/api/index.ts deleted file mode 100644 index a36c37388..000000000 --- a/mods/websdk/src/generated/api/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Fonoster - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: v1beta1 - * Contact: psanders@fonoster.com - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -export * from "./api"; -export * from "./configuration"; - diff --git a/mods/websdk/src/index.ts b/mods/websdk/src/index.ts deleted file mode 100644 index e36237743..000000000 --- a/mods/websdk/src/index.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import Agents from "./agents"; -import Auth from "./auth"; -import Secrets from "./secrets"; -import CallManager from "./callmanager"; -import Domains from "./domains"; -import Numbers from "./numbers"; -import Projects from "./projects"; -import Storage from "./storage"; -import Users from "./users"; -import Providers from "./providers"; - -export { - Agents, - Auth, - Secrets, - CallManager, - Domains, - Numbers, - Projects, - Storage, - Users, - Providers -}; diff --git a/mods/websdk/src/numbers.ts b/mods/websdk/src/numbers.ts deleted file mode 100644 index 4c73ba2c3..000000000 --- a/mods/websdk/src/numbers.ts +++ /dev/null @@ -1,72 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable require-jsdoc */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebAPIClient from "@fonoster/common/dist/web_client"; -import { WebClientOptions } from "@fonoster/common/dist/types"; -import { INumbersClient } from "@fonoster/numbers"; -import { - CreateNumberRequest, - CreateNumberResponse, - DeleteNumberResponse, - GetNumberResponse, - ListNumbersRequest, - ListNumbersResponse, - UpdateNumberRequest, - UpdateNumberResponse, - GetIngressInfoRequest, - GetIngressInfoResponse -} from "@fonoster/numbers/src/client/types"; -import * as c from "./generated/api"; - -export default class Numbers extends WebAPIClient implements INumbersClient { - constructor(options: WebClientOptions) { - super(c, "NumbersApi", options); - } - - async createNumber( - request: CreateNumberRequest - ): Promise { - return (await super.run("createNumber", request)) as any; - } - - async getNumber(ref: string): Promise { - return (await super.run("getNumber", ref)) as any; - } - - async updateNumber( - request: UpdateNumberRequest - ): Promise { - return (await super.run("updateNumber", request)) as any; - } - - async listNumbers(request: ListNumbersRequest): Promise { - return (await super.run("listNumbers", request)) as any; - } - - async deleteNumber(ref: string): Promise { - return (await super.run("deleteNumber", ref)) as any; - } - - async getIngressInfo( - request: GetIngressInfoRequest - ): Promise { - return (await super.run("getIngressInfo", request)) as any; - } -} diff --git a/mods/websdk/src/projects.ts b/mods/websdk/src/projects.ts deleted file mode 100644 index 0655daa1f..000000000 --- a/mods/websdk/src/projects.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable require-jsdoc */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebAPIClient from "@fonoster/common/dist/web_client"; -import { WebClientOptions } from "@fonoster/common/dist/types"; -import { IProjectsClient } from "@fonoster/projects"; -import { - CreateProjectRequest, - CreateProjectResponse, - DeleteProjectResponse, - GetProjectResponse, - ListProjectsRequest, - ListProjectsResponse, - UpdateProjectRequest, - UpdateProjectResponse -} from "@fonoster/projects/src/client/types"; -import * as c from "./generated/api"; - -export default class Projects extends WebAPIClient implements IProjectsClient { - constructor(options: WebClientOptions) { - super(c, "ProjectsApi", options); - } - - async createProject( - request: CreateProjectRequest - ): Promise { - return (await super.run("createProject", request)) as any; - } - - async getProject(ref: string): Promise { - return (await super.run("getProject", ref)) as any; - } - - async updateProject( - request: UpdateProjectRequest - ): Promise { - return (await super.run("updateProject", request)) as any; - } - - async listProjects( - request: ListProjectsRequest - ): Promise { - return (await super.run("listProjects", request)) as any; - } - - async deleteProject(ref: string): Promise { - return (await super.run("deleteProject", ref)) as any; - } -} diff --git a/mods/websdk/src/providers.ts b/mods/websdk/src/providers.ts deleted file mode 100644 index 1f71fb9a6..000000000 --- a/mods/websdk/src/providers.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable require-jsdoc */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebAPIClient from "@fonoster/common/dist/web_client"; -import { WebClientOptions } from "@fonoster/common/dist/types"; -import { IProvidersClient } from "@fonoster/providers"; -import { - CreateProviderRequest, - CreateProviderResponse, - DeleteProviderResponse, - GetProviderResponse, - ListProvidersRequest, - ListProvidersResponse, - UpdateProviderRequest, - UpdateProviderResponse -} from "@fonoster/providers/src/client/types"; -import * as c from "./generated/api"; - -export default class Providers - extends WebAPIClient - implements IProvidersClient -{ - constructor(options: WebClientOptions) { - super(c, "ProvidersApi", options); - } - - async createProvider( - request: CreateProviderRequest - ): Promise { - return (await super.run("createProvider", request)) as any; - } - - async getProvider(ref: string): Promise { - return (await super.run("getProvider", ref)) as any; - } - - async updateProvider( - request: UpdateProviderRequest - ): Promise { - return (await super.run("updateProvider", request)) as any; - } - - async listProviders( - request: ListProvidersRequest - ): Promise { - return (await super.run("listProviders", request)) as any; - } - - async deleteProvider(ref: string): Promise { - return (await super.run("deleteProvider", ref)) as any; - } -} diff --git a/mods/websdk/src/secrets.ts b/mods/websdk/src/secrets.ts deleted file mode 100644 index 51558d31d..000000000 --- a/mods/websdk/src/secrets.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable require-jsdoc */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebAPIClient from "@fonoster/common/dist/web_client"; -import { WebClientOptions } from "@fonoster/common/dist/types"; -import { ISecretsClient } from "@fonoster/secrets"; -import { - CreateSecretRequest, - CreateSecretResponse, - GetSecretResponse, - ListSecretsRequest, - ListSecretsResponse -} from "@fonoster/secrets/src/client/types"; -import * as c from "./generated/api"; - -export default class Secrets extends WebAPIClient implements ISecretsClient { - constructor(options: WebClientOptions) { - super(c, "SecretsApi", options); - } - - async createSecret( - request: CreateSecretRequest - ): Promise { - return (await super.run("createSecret", request)) as any; - } - - async getSecret(ref: string): Promise { - return (await super.run("getSecret", ref)) as any; - } - - async deleteSecret(ref: string): Promise { - return (await super.run("updateSecret", ref)) as any; - } - - async listSecrets(request: ListSecretsRequest): Promise { - return (await super.run("listSecrets", request)) as any; - } -} diff --git a/mods/websdk/src/storage.ts b/mods/websdk/src/storage.ts deleted file mode 100644 index 908232a53..000000000 --- a/mods/websdk/src/storage.ts +++ /dev/null @@ -1,47 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable require-jsdoc */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebAPIClient from "@fonoster/common/dist/web_client"; -import { WebClientOptions } from "@fonoster/common/dist/types"; -import { IStorageClient } from "@fonoster/storage"; -import { - UploadObjectRequest, - UploadObjectResponse, - GetObjectURLRequest, - GetObjectURLResponse -} from "@fonoster/storage/src/client/types"; -import * as c from "./generated/api"; - -export default class Storage extends WebAPIClient implements IStorageClient { - constructor(options: WebClientOptions) { - super(c, "StorageApi", options); - } - - // eslint-disable-next-line @typescript-eslint/no-unused-vars - async uploadObject(_: UploadObjectRequest): Promise { - throw new Error("implementation not available on browsers"); - } - - async getObjectURL( - request: GetObjectURLRequest - ): Promise { - return (await super.run("getObjectURL", request)) as any; - } -} diff --git a/mods/websdk/src/users.ts b/mods/websdk/src/users.ts deleted file mode 100644 index 7bb272923..000000000 --- a/mods/websdk/src/users.ts +++ /dev/null @@ -1,68 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable require-jsdoc */ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import WebAPIClient from "@fonoster/common/dist/web_client"; -import { WebClientOptions } from "@fonoster/common/dist/types"; -import { IUsersClient } from "@fonoster/users"; -import { - CreateUserRequest, - CreateUserResponse, - DeleteUserResponse, - GetUserResponse, - UpdateUserRequest, - UpdateUserResponse, - CreateUserCredentialsRequest, - CreateUserCredentialsResponse, - ListUsersRequest, - ListUsersResponse -} from "@fonoster/users/src/client/types"; -import * as c from "./generated/api"; - -export default class Users extends WebAPIClient implements IUsersClient { - constructor(options: WebClientOptions) { - super(c, "UsersApi", options); - } - - async listUsers(request: ListUsersRequest): Promise { - return (await super.run("listUsers", request)) as any; - } - - async createUser(request: CreateUserRequest): Promise { - return (await super.run("createUser", request)) as any; - } - - async getUser(ref: string): Promise { - return (await super.run("getUser", ref)) as any; - } - - async updateUser(request: UpdateUserRequest): Promise { - return (await super.run("updateUser", request)) as any; - } - - async deleteUser(ref: string): Promise { - return (await super.run("deleteUser", ref)) as any; - } - - async createUserCredentials( - request: CreateUserCredentialsRequest - ): Promise { - return (await super.run("createUserCredentials", request)) as any; - } -} diff --git a/mods/websdk/test/sdk.unit.test.ts b/mods/websdk/test/sdk.unit.test.ts deleted file mode 100644 index 3240947d5..000000000 --- a/mods/websdk/test/sdk.unit.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// No much to test here -describe("@fonoster/websdk", () => { - it("needs tests"); -}); diff --git a/mods/websdk/tsconfig.json b/mods/websdk/tsconfig.json deleted file mode 100644 index 31a852035..000000000 --- a/mods/websdk/tsconfig.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "compilerOptions": { - "allowJs": true, - "allowSyntheticDefaultImports": true, - "baseUrl": "src", - "declaration": false, - "esModuleInterop": true, - "inlineSourceMap": false, - "lib": ["ESNext", "DOM"], - "listEmittedFiles": false, - "listFiles": false, - "moduleResolution": "node", - "noFallthroughCasesInSwitch": true, - "pretty": true, - "rootDir": "src", - "skipLibCheck": true, - "strict": true, - "target": "esnext", - "traceResolution": false, - "outDir": "dist" - }, - "compileOnSave": false, - "exclude": ["node_modules", "dist"], - "include": ["src"], - "references": [ - { - "path": "../auth" - }, - { - "path": "../secrets" - }, - { - "path": "../agents" - }, - { - "path": "../funcs" - }, - { - "path": "../storage" - }, - { - "path": "../callmanager" - }, - { - "path": "../logger" - }, - { - "path": "../providers" - }, - { - "path": "../numbers" - }, - { - "path": "../domains" - }, - { - "path": "../projects" - }, - { - "path": "../users" - }, - { - "path": "../common" - }, - { - "path": "../core" - }, - { - "path": "../logger" - } - ] -} diff --git a/mods/websdk/webpack.config.cjs b/mods/websdk/webpack.config.cjs deleted file mode 100644 index 94bad7a77..000000000 --- a/mods/websdk/webpack.config.cjs +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2022 by Fonoster Inc (https://fonoster.com) - * http://github.com/fonoster/fonoster - * - * This file is part of Fonoster - * - * Licensed under the MIT License (the "License"); - * you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * https://opensource.org/licenses/MIT - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const path = require("path"); - -module.exports = { - target: "web", - entry: { - websdk: "./dist/index.js" - }, - devtool: "inline-source-map", - mode: "development", - module: { - rules: [ - { - test: /\.tsx?$/, - use: "ts-loader", - exclude: /node_modules/ - }, - { - test: /\.js$/, - exclude: /(node_modules|bower_components)/, - use: { - loader: "babel-loader", - options: { - presets: ["@babel/preset-env"], - plugins: ["@babel/plugin-transform-runtime"] - } - } - } - ] - }, - resolve: { - extensions: [".tsx", ".ts", ".js"] - }, - output: { - filename: "[name].js", - path: path.resolve(__dirname, "dist"), - iife: true, - library: "Fonoster" - } -}; diff --git a/mods/webui/.gitignore b/mods/webui/.gitignore new file mode 100644 index 000000000..f940a995d --- /dev/null +++ b/mods/webui/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*storybook.log diff --git a/mods/funcs/.lerna-changed-buster-192 b/mods/webui/.lerna-changed-buster-5577 similarity index 100% rename from mods/funcs/.lerna-changed-buster-192 rename to mods/webui/.lerna-changed-buster-5577 diff --git a/mods/webui/.storybook/main.ts b/mods/webui/.storybook/main.ts new file mode 100644 index 000000000..cec8a3a40 --- /dev/null +++ b/mods/webui/.storybook/main.ts @@ -0,0 +1,33 @@ +import type { StorybookConfig } from "@storybook/react-vite"; + +import { join, dirname } from "path"; + +/** + * This function is used to resolve the absolute path of a package. + * It is needed in projects that use Yarn PnP or are set up within a monorepo. + */ +function getAbsolutePath(value: string) { + return dirname(require.resolve(join(value, "package.json"))); +} + +const staticDirs = [join(process.cwd(), ".storybook/public")]; + +const config: StorybookConfig = { + staticDirs, + stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], + addons: [ + getAbsolutePath("@storybook/addon-onboarding"), + getAbsolutePath("@storybook/addon-essentials"), + getAbsolutePath("@storybook/addon-interactions"), + getAbsolutePath("@storybook/addon-themes"), + getAbsolutePath("@storybook/addon-designs") + ], + framework: { + name: getAbsolutePath("@storybook/react-vite"), + options: {} + }, + core: { + disableTelemetry: true + } +}; +export default config; diff --git a/mods/webui/.storybook/manager-head.html b/mods/webui/.storybook/manager-head.html new file mode 100644 index 000000000..0930efc09 --- /dev/null +++ b/mods/webui/.storybook/manager-head.html @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mods/webui/.storybook/manager.ts b/mods/webui/.storybook/manager.ts new file mode 100644 index 000000000..a2e0d1c4c --- /dev/null +++ b/mods/webui/.storybook/manager.ts @@ -0,0 +1,9 @@ +import { addons } from '@storybook/manager-api'; +import theme from './theme'; + +addons.setConfig({ + sidebar: { + showRoots: false + }, + theme +}); diff --git a/mods/webui/.storybook/preview-head.html b/mods/webui/.storybook/preview-head.html new file mode 100644 index 000000000..df430795c --- /dev/null +++ b/mods/webui/.storybook/preview-head.html @@ -0,0 +1,72 @@ + + + + + + + \ No newline at end of file diff --git a/mods/webui/.storybook/preview.tsx b/mods/webui/.storybook/preview.tsx new file mode 100644 index 000000000..a2e264e8f --- /dev/null +++ b/mods/webui/.storybook/preview.tsx @@ -0,0 +1,33 @@ +import type { Preview } from "@storybook/react"; +import React from "react"; +import { ThemeProvider } from "@mui/material/styles"; +import CssBaseline from "@mui/material/CssBaseline"; +import { fnLight } from "../src/theme.ts"; + +const preview: Preview = { + parameters: { + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/i + } + }, + options: { + storySort: { + order: ["Introduction", "Brand Identity", "Shared Components"], + includeName: true + } + } + } +}; + +export const decorators = [ + (Story) => ( + + + + + ), +]; + +export default preview; diff --git a/mods/webui/.storybook/public/favicon.ico b/mods/webui/.storybook/public/favicon.ico new file mode 100644 index 000000000..32fdaccdb Binary files /dev/null and b/mods/webui/.storybook/public/favicon.ico differ diff --git a/mods/webui/.storybook/public/images/logo.svg b/mods/webui/.storybook/public/images/logo.svg new file mode 100644 index 000000000..f69a6c14d --- /dev/null +++ b/mods/webui/.storybook/public/images/logo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/mods/webui/.storybook/theme.ts b/mods/webui/.storybook/theme.ts new file mode 100644 index 000000000..05735ba37 --- /dev/null +++ b/mods/webui/.storybook/theme.ts @@ -0,0 +1,40 @@ +import { create } from "@storybook/theming/create"; + +export default create({ + base: "light", + // Typography + fontBase: '"Open Sans", sans-serif', + fontCode: "monospace", + + brandTitle: "Fonoster Design System", + brandUrl: "https://fonoster.com", + brandImage: "/images/logo.svg", + brandTarget: "_self", + + // Primary colors + colorPrimary: "#39e19e", + colorSecondary: "#053204", + + // UI + appBg: "#ffffff", + appContentBg: "#ffffff", + appPreviewBg: "#ffffff", + appBorderColor: "#10162F", + appBorderRadius: 4, + + // Text colors + textColor: "#053204", + textInverseColor: "#ffffff", + + // Toolbar default and active colors + barTextColor: "#053204", + barSelectedColor: "#053204", + barHoverColor: "#39e19e", + barBg: "#ffffff", + + // Form colors + inputBg: "#ffffff", + inputBorder: "#10162F", + inputTextColor: "#053204", + inputBorderRadius: 2 +}); \ No newline at end of file diff --git a/mods/webui/README.md b/mods/webui/README.md new file mode 100644 index 000000000..2a8e48370 --- /dev/null +++ b/mods/webui/README.md @@ -0,0 +1,3 @@ +# Getting started + +This is the webui module of the project. It is a React + Typescript + Vite application that uses Storybook to ensure reusable, well-documented, and testable components. diff --git a/mods/webui/index.html b/mods/webui/index.html new file mode 100644 index 000000000..4bc9bd7da --- /dev/null +++ b/mods/webui/index.html @@ -0,0 +1,13 @@ + + + + + + + Fonoster Console + + +
+ + + diff --git a/mods/webui/package.json b/mods/webui/package.json new file mode 100644 index 000000000..0625496cd --- /dev/null +++ b/mods/webui/package.json @@ -0,0 +1,50 @@ +{ + "name": "@fonoster/webui", + "version": "0.9.0", + "type": "module", + "scripts": { + "start": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview", + "storybook": "storybook dev -p 6006", + "build-storybook": "storybook build" + }, + "dependencies": { + "@emotion/styled": "^11.13.0", + "@fontsource/poppins": "^5.1.0", + "@mui/icons-material": "^6.1.8", + "@mui/material": "^6.1.7", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@storybook/addon-designs": "^8.0.4", + "@storybook/addon-docs": "^8.4.4", + "@storybook/addon-essentials": "^8.4.4", + "@storybook/addon-interactions": "^8.4.4", + "@storybook/addon-onboarding": "^8.4.4", + "@storybook/addon-themes": "^8.4.4", + "@storybook/blocks": "^8.4.4", + "@storybook/manager-api": "^8.4.4", + "@storybook/react": "^8.4.4", + "@storybook/react-vite": "^8.4.4", + "@storybook/test": "^8.4.4", + "@storybook/theming": "^8.4.4", + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react": "^4.3.3", + "globals": "^15.11.0", + "storybook": "^8.4.4", + "vite": "^5.4.10" + }, + "eslintConfig": { + "extends": [ + "plugin:storybook/recommended" + ] + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "d4aa82f7926c0f451d2f580c59ab812c74a7f579" +} diff --git a/mods/webui/public/vite.svg b/mods/webui/public/vite.svg new file mode 100644 index 000000000..e7b8dfb1b --- /dev/null +++ b/mods/webui/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mods/googleasr/.lerna-changed-buster-192 b/mods/webui/src/App.css similarity index 100% rename from mods/googleasr/.lerna-changed-buster-192 rename to mods/webui/src/App.css diff --git a/mods/webui/src/App.tsx b/mods/webui/src/App.tsx new file mode 100644 index 000000000..720baabf4 --- /dev/null +++ b/mods/webui/src/App.tsx @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Button } from "./stories/button/Button"; +import { NavButton } from "./stories/navbutton/NavButton"; + +function App() { + return ( + <> + {}} /> + + + ); +} + +export default App; diff --git a/mods/webui/src/docs/brand/1-colors.mdx b/mods/webui/src/docs/brand/1-colors.mdx new file mode 100644 index 000000000..a2dd3bc9b --- /dev/null +++ b/mods/webui/src/docs/brand/1-colors.mdx @@ -0,0 +1,88 @@ +import { Meta, ColorPalette, ColorItem } from "@storybook/addon-docs"; + + + +# Color Palette + +The color palette is a key element of the brand identity. It is used to create a visual hierarchy and to differentiate between different elements. + +
+ +
+ + + + + + + + +
+ +## Color Categories + +
+ +### Base Colors + +These are the base grayscale colors used for backgrounds, borders, and text. They provide a neutral foundation for the design. + +### Fonoster Colors + +These colors represent the Fonoster brand. They are vibrant and should be used to emphasize brand identity. + +### GoodTok Colors + +These colors represent the GoodTok brand. They are warm and engaging, ideal for a friendly user experience. + +
+ +## Best Practices for Using Colors + +- **Consistency:** Use colors consistently to ensure a cohesive look and feel across the application. +- **Accessibility:** Ensure sufficient contrast between text and background colors for readability. +- **Brand Identity:** Use brand colors to highlight primary actions and important information. +- **Neutral Colors:** Use grayscale colors for secondary and background elements to keep the interface clean and uncluttered. + +
+ +## Conclusion + +By following these guidelines, you can ensure a consistent and accessible color scheme throughout your application. diff --git a/mods/webui/src/docs/brand/2-spacings.mdx b/mods/webui/src/docs/brand/2-spacings.mdx new file mode 100644 index 000000000..023adbc7f --- /dev/null +++ b/mods/webui/src/docs/brand/2-spacings.mdx @@ -0,0 +1,12 @@ +import { Meta } from "@storybook/addon-docs"; + + + +# Spacings + +We use the Material-UI (MUI) spacing scale, which is based on increments of 4, 8, and 16, etc. to define the spacings in our design system. + +
+These increments ensure consistency and scalability across components and +layouts. For more details, refer to the [MUI Spacing +documentation.](https://mui.com/material-ui/customization/spacing/) diff --git a/mods/webui/src/docs/introduction/1-overview.mdx b/mods/webui/src/docs/introduction/1-overview.mdx new file mode 100644 index 000000000..0449e5dd7 --- /dev/null +++ b/mods/webui/src/docs/introduction/1-overview.mdx @@ -0,0 +1,7 @@ +import { Meta } from "@storybook/addon-docs"; + + + +# Fonoster Design System + +This is the official design system for Fonoster. It is a collection of reusable components and guidelines for creating consistent and accessible user interfaces. diff --git a/mods/googletts/.lerna-changed-buster-192 b/mods/webui/src/index.css similarity index 100% rename from mods/googletts/.lerna-changed-buster-192 rename to mods/webui/src/index.css diff --git a/mods/webui/src/main.tsx b/mods/webui/src/main.tsx new file mode 100644 index 000000000..6c557fdea --- /dev/null +++ b/mods/webui/src/main.tsx @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import CssBaseline from "@mui/material/CssBaseline"; +import { ThemeProvider } from "@mui/material/styles"; +import { createRoot } from "react-dom/client"; +import App from "./App.tsx"; +import { fnLight } from "./theme.ts"; + +createRoot(document.getElementById("root")!).render( + + + + +); diff --git a/mods/webui/src/stories/button/Button.stories.ts b/mods/webui/src/stories/button/Button.stories.ts new file mode 100644 index 000000000..33babb05c --- /dev/null +++ b/mods/webui/src/stories/button/Button.stories.ts @@ -0,0 +1,140 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; +import React from "react"; +import { Button } from "./Button"; +import { Icon } from "../icon/Icon"; + +/** + * This story is for the regular Button component based on Material UI. + * It has a contained variant and full width with optional start and end icons. + */ +const meta = { + title: "Core Components/Buttons, Links, and Chips/Button", + component: Button, + parameters: { + layout: "padded", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=9-9052&node-type=frame&m=dev" + } + }, + tags: ["autodocs"], + args: { onClick: fn() }, + argTypes: { + onClick: { + name: "On Click", + description: "Function to execute on click" + }, + children: { + name: "Children", + description: "The content of the button", + control: "text", + defaultValue: { summary: "Button" } + }, + size: { + name: "Size", + description: "The size of the button", + options: ["small", "large"], + control: "radio", + defaultValue: { summary: "Large" } + }, + variant: { + name: "Variant", + description: "The variant to use", + options: ["contained", "outlined"], + control: "radio", + defaultValue: { summary: "contained" } + }, + fullWidth: { + name: "Full Width", + description: + "If true, the button will take up the full width of its container", + control: "boolean", + defaultValue: { summary: false } + }, + disabled: { + name: "Disabled", + description: "If true, the button will be disabled", + control: "boolean", + defaultValue: { summary: false } + }, + endIcon: { + table: { + disable: true + } + }, + startIcon: { + table: { + disable: true + } + } + } +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +/** + * Example of a button with a contained variant and disabled + */ +export const ContainedAndDisabled: Story = { + args: { + children: "Button Contained And Disabled", + variant: "contained", + fullWidth: false, + disabled: true + } +}; + +/** + * Example of a button with a contained variant and full width + */ +export const ContainedWithFullWidth: Story = { + args: { + children: "Button contained with full width", + variant: "contained", + fullWidth: true, + endIcon: React.createElement(Icon, { name: "Add", fontSize: "small" }) + } +}; + +/** + * Example of a button with an outlined variant and full width + */ +export const Outlined: Story = { + args: { + children: "Button Outlined", + variant: "outlined", + fullWidth: false + } +}; + +/** + * Example of a button with an outlined variant and disabled + */ +export const OutlinedAndDisabled: Story = { + args: { + children: "Button Outlined And Disabled", + variant: "outlined", + fullWidth: false, + disabled: true + } +}; diff --git a/mods/webui/src/stories/button/Button.styles.ts b/mods/webui/src/stories/button/Button.styles.ts new file mode 100644 index 000000000..369cd7a84 --- /dev/null +++ b/mods/webui/src/stories/button/Button.styles.ts @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import Button, { ButtonPropsVariantOverrides } from "@mui/material/Button"; +import { Theme, styled } from "@mui/material/styles"; +import { ButtonVariant } from "./types"; + +function computeColor(theme: Theme, variant: ButtonPropsVariantOverrides) { + if (theme.palette.mode === "dark") { + return theme.palette.common.white; + } else if (variant === "outlined") { + return theme.palette.grey[800]; + } else { + return theme.palette.primary[900]; + } +} + +export const StyledMuiButton = styled(Button)(({ theme, variant, size }) => ({ + display: size === "large" ? "flex" : "inline-flex", + padding: size === "large" ? "8px 20px" : "6px 20px", + justifyContent: "center", + alignItems: "flex-start", + gap: "10px", + fontFamily: "Roboto Mono", + fontSize: size === "large" ? "11px" : "10px", + fontStyle: "normal", + fontWeight: 500, + lineHeight: "21px", + letterSpacing: "1.32px", + textTransform: "uppercase", + textAlign: "center", + fontFeatureSettings: "'liga' off, 'clig' off", + border: + variant === "outlined" + ? `1px solid ${computeColor(theme, variant)}` + : "none", + color: computeColor(theme, variant as ButtonVariant), + "&:hover": { + background: + variant === "outlined" + ? theme.palette.grey[300] + : theme.palette.primary.light + } +})); diff --git a/mods/webui/src/stories/button/Button.tsx b/mods/webui/src/stories/button/Button.tsx new file mode 100644 index 000000000..91c3b2b77 --- /dev/null +++ b/mods/webui/src/stories/button/Button.tsx @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { StyledMuiButton } from "./Button.styles"; +import { ButtonProps, OriginalButtonVariant } from "./types"; + +export const Button = (props: ButtonProps) => { + const { + size, + variant, + fullWidth, + disabled, + startIcon, + endIcon, + children, + onClick + } = props; + const actualSize = size || "large"; + + return ( + + {children} + + ); +}; diff --git a/mods/webui/src/stories/button/types.ts b/mods/webui/src/stories/button/types.ts new file mode 100644 index 000000000..6d88e4445 --- /dev/null +++ b/mods/webui/src/stories/button/types.ts @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ButtonPropsVariantOverrides } from "@mui/material"; +import { OverridableStringUnion } from "@mui/types"; +import React from "react"; + +type ButtonVariant = Omit< + OverridableStringUnion< + "text" | "outlined" | "contained", + ButtonPropsVariantOverrides + >, + "text" +>; + +type OriginalButtonVariant = OverridableStringUnion< + "text" | "outlined" | "contained", + ButtonPropsVariantOverrides +>; + +type ButtonProps = { + variant?: ButtonVariant; + size?: "small" | "large"; + fullWidth?: boolean; + disabled?: boolean; + startIcon?: React.ReactNode; + endIcon?: React.ReactNode; + children: React.ReactNode; + onClick: () => void; +}; + +export type { ButtonProps, ButtonVariant, OriginalButtonVariant }; diff --git a/mods/webui/src/stories/checkbox/Checkbox.stories.ts b/mods/webui/src/stories/checkbox/Checkbox.stories.ts new file mode 100644 index 000000000..048a9d399 --- /dev/null +++ b/mods/webui/src/stories/checkbox/Checkbox.stories.ts @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; +import { Checkbox } from "./Checkbox"; + +/** + * This story is for the Checkbox component based on Material UI. + * It has a checkbox with optional label and can be in a checked or disabled state. + */ +const meta = { + title: "Core Components/Inputs and Checkbox/Checkbox", + component: Checkbox, + parameters: { + layout: "padded", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=276-26951&m=dev" + } + }, + tags: ["autodocs"], + args: { onChange: fn() }, + argTypes: { + onChange: { + name: "On Change", + description: "Function to execute on change" + }, + checked: { + name: "Checked", + description: "Whether the checkbox is checked", + control: "boolean", + defaultValue: { summary: false } + }, + disabled: { + name: "Disabled", + description: "Whether the checkbox is disabled", + control: "boolean", + defaultValue: { summary: false } + }, + children: { + name: "Children", + description: "The label of the checkbox", + control: "text", + defaultValue: { summary: "Checkbox Label" } + } + } +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +/** + * Example of a checked checkbox + */ +export const Checked: Story = { + args: { + checked: true, + children: "Agree to the terms and conditions" + } +}; + +/** + * Example of a disabled checkbox + */ +export const Disabled: Story = { + args: { + checked: false, + disabled: true, + children: "Agree to the terms and conditions" + } +}; + +export const NoLabel: Story = { + args: { + checked: true + } +}; diff --git a/mods/webui/src/stories/checkbox/Checkbox.styles.ts b/mods/webui/src/stories/checkbox/Checkbox.styles.ts new file mode 100644 index 000000000..1fdb5f866 --- /dev/null +++ b/mods/webui/src/stories/checkbox/Checkbox.styles.ts @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { FormControlLabel } from "@mui/material"; +import Checkbox from "@mui/material/Checkbox"; +import { styled } from "@mui/material/styles"; + +export const StyledFormControlLabel = styled(FormControlLabel)(({ theme }) => ({ + "& .MuiFormControlLabel-label": { + fontFamily: "Poppins", + fontFeatureSettings: "'liga' off, 'clig' off", + fontStyle: "normal", + fontSize: "12px", + lineHeight: "18px", + textDecoration: "underline" + } +})); + +export const StyledMuiCheckbox = styled(Checkbox)(({ theme }) => ({ + padding: "8px", + color: theme.palette.secondary[700], + "&.Mui-checked": { + color: theme.palette.secondary[700] + } +})); diff --git a/mods/webui/src/stories/checkbox/Checkbox.tsx b/mods/webui/src/stories/checkbox/Checkbox.tsx new file mode 100644 index 000000000..31080a02b --- /dev/null +++ b/mods/webui/src/stories/checkbox/Checkbox.tsx @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { CheckboxProps } from "./types"; +import { StyledFormControlLabel, StyledMuiCheckbox } from "./Checkbox.styles"; +import { Icon } from "../icon/Icon"; + +export const Checkbox = (props: CheckboxProps) => { + const { children, ...checkboxProps } = props; + + return ( + } + checkedIcon={} + indeterminateIcon={ + + } + disableRipple + {...checkboxProps} + /> + } + label={children} + /> + ); +}; diff --git a/mods/webui/src/stories/checkbox/types.ts b/mods/webui/src/stories/checkbox/types.ts new file mode 100644 index 000000000..8b99fabd0 --- /dev/null +++ b/mods/webui/src/stories/checkbox/types.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { CheckboxProps as MuiCheckboxProps } from "@mui/material/Checkbox"; +import React from "react"; + +type CheckboxProps = Omit & { + children?: React.ReactNode; +}; + +export type { CheckboxProps }; diff --git a/mods/webui/src/stories/chip/Chip.stories.ts b/mods/webui/src/stories/chip/Chip.stories.ts new file mode 100644 index 000000000..53aa8806b --- /dev/null +++ b/mods/webui/src/stories/chip/Chip.stories.ts @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { Chip } from "./Chip"; +import { fn } from "@storybook/test"; + +/** + * This story is for the Chip component based on MUI chip component + * It takes a label, onRemove and enabled. + */ +const meta = { + title: "Core Components/Buttons, Links, and Chips/Chip", + component: Chip, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=888-3695&t=k7cH6w6QU34fWv5z-4" + } + }, + tags: ["autodocs"], + args: { onRemove: fn() }, + argTypes: { + onRemove: { + name: "On Remove", + description: "Function to execute on remove" + }, + enabled: { + name: "Enabled", + description: "If true, the chip will be enabled", + control: "boolean" + }, + label: { + name: "Label", + description: "The label to display", + control: "text" + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Example of a Chip with label "Chip" and enabled true. + */ +export const Enabled: Story = { + args: { + label: "material-chip-example", + enabled: true + } +}; + +/** + * Example of a Chip with label "Chip" and enabled false. + */ +export const Disabled: Story = { + args: { + label: "material-chip-example", + enabled: false + } +}; + +/** + * Example of a Chip with label "Chip" and onRemove function. + */ +export const WithOnRemove: Story = { + args: { + label: "material-chip-example", + enabled: true, + onRemove: fn() + } +}; diff --git a/mods/webui/src/stories/chip/Chip.styles.ts b/mods/webui/src/stories/chip/Chip.styles.ts new file mode 100644 index 000000000..74793b8a2 --- /dev/null +++ b/mods/webui/src/stories/chip/Chip.styles.ts @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { styled } from "@mui/material/styles"; +import Chip from "@mui/material/Chip"; + +export const StyledMuiChip = styled(Chip)(({ theme }) => ({ + display: "flex", + alignItems: "center", + borderRadius: 8, + size: "medium", + fontWeight: 500, + backgroundColor: theme.palette.primary[200], + color: theme.palette.text.primary, + "& .MuiChip-label": { + color: theme.palette.secondary[800] + }, + "& .MuiChip-deleteIcon": { + color: theme.palette.primary + }, + "&:hover": { + backgroundColor: theme.palette.primary[500] + }, + "&.Mui-disabled": { + backgroundColor: theme.palette.secondary[100], + color: theme.palette.secondary[500], + pointerEvents: "none" + } +})); diff --git a/mods/webui/src/stories/chip/Chip.tsx b/mods/webui/src/stories/chip/Chip.tsx new file mode 100644 index 000000000..bc25782f7 --- /dev/null +++ b/mods/webui/src/stories/chip/Chip.tsx @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { StyledMuiChip } from "./Chip.styles"; +import { ChipProps } from "./types"; +import CloseIcon from "@mui/icons-material/Close"; + +export const Chip = (props: ChipProps) => { + const { label, onRemove, enabled } = props; + + return ( + } + /> + ); +}; diff --git a/mods/webui/src/stories/chip/types.ts b/mods/webui/src/stories/chip/types.ts new file mode 100644 index 000000000..e1d73b24d --- /dev/null +++ b/mods/webui/src/stories/chip/types.ts @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type ChipProps = { + onRemove?: (event: React.MouseEvent) => void; + enabled?: boolean; + label: string; +}; + +export type { ChipProps }; diff --git a/mods/webui/src/stories/generictoggle/GenericToggle.stories.ts b/mods/webui/src/stories/generictoggle/GenericToggle.stories.ts new file mode 100644 index 000000000..044c57ff6 --- /dev/null +++ b/mods/webui/src/stories/generictoggle/GenericToggle.stories.ts @@ -0,0 +1,120 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; +import { GenericToggle } from "./GenericToggle"; + +/** + * This story is for the Generic Toggle component based on MUI switch component + * It takes a defaultValue, value, disabled and onChange. + */ +const meta = { + title: "Core Components/Buttons, Links, and Chips/GenericToggle", + component: GenericToggle, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=922-10844&m=dev" + } + }, + tags: ["autodocs"], + args: { onChange: fn() }, + argTypes: { + onChange: { + name: "On Change", + description: "Function to execute on change" + }, + defaultValue: { + name: "Default Value", + control: "boolean", + description: "The default value to use" + }, + value: { + name: "Value", + control: "boolean", + description: "The current value" + }, + disabled: { + name: "Disabled", + description: "If true, the toggle will be disabled", + control: "boolean" + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Example of a GenericToggle with defaultValue false. + */ +export const DefaultValueFalse: Story = { + args: { + defaultValue: false + } +}; + +/** + * Example of a GenericToggle with defaultValue true. + */ +export const DefaultValueTrue: Story = { + args: { + defaultValue: true + } +}; + +/** + * Example of a checked GenericToggle. + */ +export const Checked: Story = { + args: { + value: true + } +}; + +/** + * Example of a unchecked GenericToggle. + */ +export const Unchecked: Story = { + args: { + value: false + } +}; + +/** + * Example of a unchecked and disabled GenericToggle. + */ +export const UncheckedAndDisabled: Story = { + args: { + disabled: true, + value: false + } +}; + +/** + * Example of a checked and disabled GenericToggle. + */ +export const CheckedAndDisabled: Story = { + args: { + disabled: true, + value: true + } +}; diff --git a/mods/webui/src/stories/generictoggle/GenericToggle.styles.ts b/mods/webui/src/stories/generictoggle/GenericToggle.styles.ts new file mode 100644 index 000000000..ac68e73c6 --- /dev/null +++ b/mods/webui/src/stories/generictoggle/GenericToggle.styles.ts @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import Switch from "@mui/material/Switch"; +import { styled } from "@mui/material/styles"; + +export const StyledMuiSwitch = styled(Switch)(({ theme }) => ({ + width: 31, + height: 16, + padding: 0, + borderRadius: 8, + display: "flex", + "& .MuiSwitch-switchBase": { + padding: 2, + "&.Mui-checked": { + transform: "translateX(14.5px)", + "& + .MuiSwitch-track": { + opacity: 1, + border: 0, + backgroundColor: theme.palette.primary[100] + } + }, + + "&.Mui-checked .MuiSwitch-thumb": { + color: theme.palette.primary[500] + }, + + "& .MuiSwitch-thumb": { + boxShadow: "1px 1px 4px 0px #00000040 inset", + width: 12, + height: 12, + color: theme.palette.secondary[500], + transition: theme.transitions.create(["background-color"], { + duration: 200 + }) + }, + "&.Mui-disabled": { + opacity: 0.5, + "& + .MuiSwitch-track": { + opacity: 0.5 + } + } + }, + "& .MuiSwitch-track": { + opacity: 1, + backgroundColor: theme.palette.secondary[200], + boxSizing: "border-box" + } +})); diff --git a/mods/webui/src/stories/generictoggle/GenericToggle.tsx b/mods/webui/src/stories/generictoggle/GenericToggle.tsx new file mode 100644 index 000000000..0d4fdcde7 --- /dev/null +++ b/mods/webui/src/stories/generictoggle/GenericToggle.tsx @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useEffect, useState } from "react"; +import { StyledMuiSwitch } from "./GenericToggle.styles"; +import { GenericToggleProps } from "./types"; + +export const GenericToggle = (props: GenericToggleProps) => { + const { defaultValue, value, disabled, onChange } = props; + + const [isChecked, setIsChecked] = useState(value ?? defaultValue); + + useEffect(() => { + setIsChecked(value ?? defaultValue); + }, [value, defaultValue]); + + const handleChange = (event: React.ChangeEvent) => { + setIsChecked(event.target.checked); + if (onChange) { + onChange(event); + } + }; + + return ( + + ); +}; diff --git a/mods/webui/src/stories/generictoggle/types.ts b/mods/webui/src/stories/generictoggle/types.ts new file mode 100644 index 000000000..7b8d29058 --- /dev/null +++ b/mods/webui/src/stories/generictoggle/types.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type GenericToggleProps = { + defaultValue?: boolean; + value?: boolean; + disabled?: boolean; + onChange: (event: React.ChangeEvent) => void; +}; + +export type { GenericToggleProps }; diff --git a/mods/webui/src/stories/icon/Icon.stories.ts b/mods/webui/src/stories/icon/Icon.stories.ts new file mode 100644 index 000000000..159ad44ae --- /dev/null +++ b/mods/webui/src/stories/icon/Icon.stories.ts @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { Icon } from "./Icon"; + +/** + * This story is for the Icon component based on Material UI. + * It can be used to display icons in the application with different sizes. + */ +const meta = { + title: "Core Components/Icons, Badges, and Labels/Icon", + component: Icon, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=284-10528" + } + }, + tags: ["autodocs"], + argTypes: { + name: { + name: "Icon Name", + description: "The icon to display", + control: { + type: "select" + }, + defaultValue: "Add" + }, + fontSize: { + name: "Font Size", + description: "The size of the icon", + control: { + type: "select", + options: ["small", "medium", "large"] + }, + defaultValue: "medium" + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Example of an icon with the name "Add" and a medium font size. + */ +export const PlusIcon: Story = { + args: { + name: "Add", + fontSize: "medium" + } +}; diff --git a/mods/webui/src/stories/icon/Icon.tsx b/mods/webui/src/stories/icon/Icon.tsx new file mode 100644 index 000000000..0c86b7b61 --- /dev/null +++ b/mods/webui/src/stories/icon/Icon.tsx @@ -0,0 +1,200 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import Add from "@mui/icons-material/AddOutlined"; +import DarkMode from "@mui/icons-material/DarkModeOutlined"; +import LightMode from "@mui/icons-material/LightModeOutlined"; +import Settings from "@mui/icons-material/SettingsOutlined"; +import Person from "@mui/icons-material/PersonOutline"; +import Groups from "@mui/icons-material/GroupsOutlined"; +import Close from "@mui/icons-material/CloseOutlined"; +import NotificationsActive from "@mui/icons-material/NotificationsActiveOutlined"; +import CheckboxEmpty from "@mui/icons-material/CheckBoxOutlineBlankOutlined"; +import CheckboxSelected from "@mui/icons-material/CheckBoxOutlined"; +import CheckboxIntermediate from "@mui/icons-material/IndeterminateCheckBoxOutlined"; +import MinusOutline from "@mui/icons-material/RemoveOutlined"; +import UnfoldLess from "@mui/icons-material/UnfoldLessOutlined"; +import UnfoldMore from "@mui/icons-material/UnfoldMoreOutlined"; +import ArrowDropUp from "@mui/icons-material/ArrowDropUpOutlined"; +import ArrowDropDown from "@mui/icons-material/ArrowDropDownOutlined"; +import Search from "@mui/icons-material/SearchOutlined"; +import Calendar from "@mui/icons-material/CalendarTodayOutlined"; +import OpenInNew from "@mui/icons-material/OpenInNewOutlined"; +import Key from "@mui/icons-material/VpnKeyOutlined"; +import Delete from "@mui/icons-material/DeleteOutlined"; +import Email from "@mui/icons-material/EmailOutlined"; +import Edit from "@mui/icons-material/EditOutlined"; +import Upload from "@mui/icons-material/FileUploadOutlined"; +import Show from "@mui/icons-material/VisibilityOutlined"; +import Info from "@mui/icons-material/InfoOutlined"; +import Copy from "@mui/icons-material/ContentCopyOutlined"; +import Minus from "@mui/icons-material/RemoveOutlined"; +import Chat from "@mui/icons-material/QuestionAnswerOutlined"; +import Phone from "@mui/icons-material/PhoneEnabledOutlined"; +import CameraOn from "@mui/icons-material/VideocamOutlined"; +import CameraOff from "@mui/icons-material/VideocamOffOutlined"; +import MicOff from "@mui/icons-material/MicOffOutlined"; +import MicOn from "@mui/icons-material/MicNoneOutlined"; +import PictureInPicture from "@mui/icons-material/PictureInPictureOutlined"; +import ScreenShareOn from "@mui/icons-material/ScreenShareOutlined"; +import ScreenShareOff from "@mui/icons-material/StopScreenShareOutlined"; +import KeyboardArrowUp from "@mui/icons-material/KeyboardArrowUp"; +import KeyboardArrowDown from "@mui/icons-material/KeyboardArrowDown"; +import ChevronLeft from "@mui/icons-material/ChevronLeft"; +import ChevronRight from "@mui/icons-material/ChevronRight"; +import { SvgIconProps } from "@mui/material"; + +type IconName = + | "Add" + | "DarkMode" + | "LightMode" + | "Settings" + | "Person" + | "Groups" + | "Close" + | "NotificationsActive" + | "CheckboxEmpty" + | "CheckboxSelected" + | "CheckboxIntermediate" + | "MinusOutline" + | "UnfoldLess" + | "UnfoldMore" + | "KeyboardArrowUp" + | "KeyboardArrowDown" + | "ArrowDropUp" + | "ArrowDropDown" + | "Search" + | "Calendar" + | "OpenInNew" + | "Key" + | "Delete" + | "Email" + | "Edit" + | "Upload" + | "Show" + | "Info" + | "Copy" + | "Minus" + | "Chat" + | "Phone" + | "CameraOn" + | "CameraOff" + | "MicOff" + | "MicOn" + | "PictureInPicture" + | "ScreenShareOn" + | "ScreenShareOff" + | "ChevronLeft" + | "ChevronRight"; + +type IconProps = SvgIconProps & { + name: IconName; + fontSize?: "small" | "medium" | "large"; +}; + +export function Icon(props: IconProps) { + const { name, fontSize } = props; + const actualFontSize = fontSize || "medium"; + + switch (name) { + case "Add": + return ; + case "DarkMode": + return ; + case "LightMode": + return ; + case "Settings": + return ; + case "Person": + return ; + case "Groups": + return ; + case "Close": + return ; + case "NotificationsActive": + return ; + case "CheckboxEmpty": + return ; + case "CheckboxSelected": + return ; + case "CheckboxIntermediate": + return ; + case "MinusOutline": + return ; + case "UnfoldLess": + return ; + case "UnfoldMore": + return ; + case "KeyboardArrowUp": + return ; + case "KeyboardArrowDown": + return ; + case "ArrowDropUp": + return ; + case "ArrowDropDown": + return ; + case "Search": + return ; + case "Calendar": + return ; + case "OpenInNew": + return ; + case "Key": + return ; + case "Delete": + return ; + case "Email": + return ; + case "Edit": + return ; + case "Upload": + return ; + case "Show": + return ; + case "Info": + return ; + case "Copy": + return ; + case "Minus": + return ; + case "Chat": + return ; + case "Phone": + return ; + case "CameraOn": + return ; + case "CameraOff": + return ; + case "MicOff": + return ; + case "MicOn": + return ; + case "PictureInPicture": + return ; + case "ScreenShareOn": + return ; + case "ScreenShareOff": + return ; + case "ChevronLeft": + return ; + case "ChevronRight": + return ; + default: + return null; + } +} diff --git a/mods/webui/src/stories/inputtext/InputText.stories.ts b/mods/webui/src/stories/inputtext/InputText.stories.ts new file mode 100644 index 000000000..c5903af63 --- /dev/null +++ b/mods/webui/src/stories/inputtext/InputText.stories.ts @@ -0,0 +1,179 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { InputText } from "./InputText"; +import { fn } from "@storybook/test"; +import React from "react"; +import { Icon } from "../icon/Icon"; + +/** + * This file is a storybook file for the InputText component. + */ +const meta = { + title: "Core Components/Inputs and Checkbox/InputText", + component: InputText, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=276-26263&t=VChSQK38URs4Ob0O-0" + } + }, + tags: ["autodocs"], + args: { + onClick: fn(), + label: "Label", + defaultValue: "Input" + }, + argTypes: { + onClick: { + name: "On Click", + description: "Function to execute on click" + }, + disabled: { + name: "Disabled", + description: "Disables the input", + control: "boolean" + }, + label: { + name: "Label", + description: "Label for the input" + }, + leadingIcon: { + table: { + disable: true + } + }, + trailingIcon: { + table: { + disable: true + } + }, + defaultValue: { + name: "Default Value", + description: "Default value for the input" + }, + supportingText: { + name: "Supporting Text", + description: "Supporting text for the input" + }, + value: { + name: "Value", + description: "Value for the input" + }, + onChange: { + name: "On Change", + description: "Function to execute on change" + }, + type: { + name: "Type", + description: "Type of input", + control: "select", + options: ["text", "password", "email", "number"] + }, + error: { + name: "Error", + description: "Error state of the input", + control: "boolean" + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Default story for the InputText component. + */ +export const Default: Story = { + args: { + label: null + } +}; + +/** + * Default story for the InputText component. + */ +export const WithLabel: Story = {}; + +/** + * Example of an InputText component with a trailing icon. + */ +export const TrailingIcon: Story = { + args: { + trailingIcon: React.createElement(Icon, { + name: "ArrowDropDown", + fontSize: "medium" + }) + } +}; + +/** + * Example of an InputText component with a trailing icon and supporting text. + */ +export const TrailingIconAndSupportingText: Story = { + args: { + supportingText: "Supporting text", + trailingIcon: React.createElement(Icon, { + name: "ArrowDropDown", + fontSize: "medium" + }) + } +}; + +/** + * Example for an InputText component with a leading icon, trailing icon, and supporting text. + */ +export const LeadingAndTrailingIconAndSupportingText: Story = { + args: { + supportingText: "Supporting text", + leadingIcon: React.createElement(Icon, { + name: "Search", + fontSize: "small" + }), + trailingIcon: React.createElement(Icon, { + name: "ArrowDropDown", + fontSize: "medium" + }) + } +}; + +/** + * Example for an InputText component with a leading icon. + */ +export const LeadingIcon: Story = { + args: { + leadingIcon: React.createElement(Icon, { + name: "Search", + fontSize: "small" + }) + } +}; + +/** + * Example for an InputText component with an error state. + */ +export const WithError: Story = { + args: { + error: true, + supportingText: "Error message goes here", + defaultValue: "Invalid input" + } +}; diff --git a/mods/webui/src/stories/inputtext/InputText.styles.ts b/mods/webui/src/stories/inputtext/InputText.styles.ts new file mode 100644 index 000000000..7f0f158d3 --- /dev/null +++ b/mods/webui/src/stories/inputtext/InputText.styles.ts @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { styled } from "@mui/material/styles"; +import TextField from "@mui/material/TextField"; + +export const StyledTextField = styled(TextField)(({ theme }) => ({ + "& .MuiInputBase-input": { + padding: "6px 16px", + height: "28px", + fontSize: "12px", + fontFamily: theme.typography.fontFamily, + fontWeight: 400, + lineHeight: "normal", + letterSpacing: "0.12px" + }, + "& .MuiFormLabel-root.MuiInputLabel-root.Mui-focused": { + fontFamily: theme.typography.fontFamily, + fontWeight: 500, + lineHeight: "normal", + transform: "translate(16px, -11px) scale(0.66)", + color: theme.palette.text.primary + }, + "& .MuiFormLabel-root.MuiInputLabel-root.MuiInputLabel-shrink": { + fontFamily: theme.typography.fontFamily, + fontWeight: 500, + lineHeight: "normal", + transform: "translate(16px, -11px) scale(0.66)", + color: theme.palette.text.primary + }, + "& .MuiInputBase-inputAdornedStart": { + paddingLeft: "0" + }, + "& .MuiInputBase-root.MuiOutlinedInput-root": { + "& .MuiInputAdornment-root": { + marginRight: 4, + "&.MuiInputAdornment-positionEnd": { + marginRight: -8 + } + } + }, + "& .MuiInputAdornment-root": { + color: theme.palette.text.primary + }, + "& .MuiOutlinedInput-root": { + "&.Mui-focused .MuiOutlinedInput-notchedOutline": { + borderColor: theme.palette.primary.main, + borderWidth: "1px" + } + }, + "& .MuiFormHelperText-root": { + fontFamily: theme.typography.fontFamily, + fontSize: "10px", + fontWeight: 500, + lineHeight: "normal", + letterSpacing: "0.12px", + marginTop: "8px", + color: theme.palette.text.primary + }, + "& .MuiFormLabel-root.MuiInputLabel-root:not(.MuiInputLabel-shrink)": { + fontFamily: theme.typography.fontFamily, + fontSize: "12px", + fontWeight: 500, + lineHeight: "normal", + letterSpacing: "0.12px", + marginTop: "-2px", + color: theme.palette.text.primary + } +})); diff --git a/mods/webui/src/stories/inputtext/InputText.tsx b/mods/webui/src/stories/inputtext/InputText.tsx new file mode 100644 index 000000000..44dd0195c --- /dev/null +++ b/mods/webui/src/stories/inputtext/InputText.tsx @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from "react"; +import { InputTextProps } from "./types"; +import { InputAdornment } from "@mui/material"; +import { StyledTextField } from "./InputText.styles"; +import { Icon } from "../icon/Icon"; + +export const InputText: React.FC = ({ + onClick, + disabled, + label, + leadingIcon, + trailingIcon, + defaultValue, + supportingText, + value, + onChange, + error, + type +}) => { + return ( + {leadingIcon} + ) + }), + ...(trailingIcon && { + endAdornment: ( + {trailingIcon} + ) + }) + } + }} + /> + ); +}; diff --git a/mods/webui/src/stories/inputtext/types.ts b/mods/webui/src/stories/inputtext/types.ts new file mode 100644 index 000000000..0b4101da7 --- /dev/null +++ b/mods/webui/src/stories/inputtext/types.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type InputTextProps = { + onClick?: () => void; + disabled?: boolean; + label?: string; + defaultValue?: string; + leadingIcon?: React.ReactNode; + trailingIcon?: React.ReactNode; + supportingText?: string; + value?: string; + type?: "text" | "password" | "email" | "number"; + onChange?: React.ChangeEventHandler; + error?: boolean; +}; + +export type { InputTextProps }; diff --git a/mods/webui/src/stories/linkbackto/LinkBackTo.stories.ts b/mods/webui/src/stories/linkbackto/LinkBackTo.stories.ts new file mode 100644 index 000000000..b490c17cc --- /dev/null +++ b/mods/webui/src/stories/linkbackto/LinkBackTo.stories.ts @@ -0,0 +1,52 @@ +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; +import { LinkBackTo } from "./LinkBackTo"; + +const meta = { + title: "Core Components/Buttons, Links, and Chips/LinkBackTo", + component: LinkBackTo, + parameters: { + layout: "padded", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=888-19698&m=dev" + } + }, + tags: ["autodocs"], + args: { onClick: fn() }, + argTypes: { + onClick: { + name: "On Click", + description: "Function to execute when clicking the link" + }, + disabled: { + name: "Disabled", + description: "If true, the link will be disabled", + control: "boolean", + defaultValue: { summary: false } + } + } +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +/** + * Default state of the LinkBackTo component + */ +export const Default: Story = { + args: { + label: "Back to overview", + disabled: false + } +}; + +/** + * Disabled state of the LinkBackTo component + */ +export const Disabled: Story = { + args: { + label: "Back to overview", + disabled: true + } +}; diff --git a/mods/webui/src/stories/linkbackto/LinkBackTo.styles.ts b/mods/webui/src/stories/linkbackto/LinkBackTo.styles.ts new file mode 100644 index 000000000..c714e5d5d --- /dev/null +++ b/mods/webui/src/stories/linkbackto/LinkBackTo.styles.ts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Box } from "@mui/material"; +import { styled } from "@mui/material/styles"; + +export const StyledBox = styled(Box)(({ theme }) => ({ + display: "flex", + alignItems: "center", + cursor: "pointer", + width: "fit-content", + color: theme.palette.secondary[500], + + "&:hover": { + color: theme.palette.secondary[800] + }, + + "&.disabled": { + color: theme.palette.secondary[200], + cursor: "not-allowed", + pointerEvents: "none" + } +})); diff --git a/mods/webui/src/stories/linkbackto/LinkBackTo.tsx b/mods/webui/src/stories/linkbackto/LinkBackTo.tsx new file mode 100644 index 000000000..3de174043 --- /dev/null +++ b/mods/webui/src/stories/linkbackto/LinkBackTo.tsx @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Icon } from "../icon/Icon"; +import { Typography } from "../typography/Typography"; +import { StyledBox } from "./LinkBackTo.styles"; + +export interface LinkBackToProps { + /** + * The text to display in the link + */ + label: string; + /** + * Callback fired when the link is clicked + */ + onClick?: () => void; + /** + * If true, the link will be disabled + */ + disabled?: boolean; +} + +export const LinkBackTo = ({ + onClick, + label, + disabled = false +}: LinkBackToProps) => { + return ( + + + {label} + + ); +}; diff --git a/mods/webui/src/stories/logo/Logo.stories.ts b/mods/webui/src/stories/logo/Logo.stories.ts new file mode 100644 index 000000000..6537d0e10 --- /dev/null +++ b/mods/webui/src/stories/logo/Logo.stories.ts @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { Logo } from "./Logo"; + +/** + * This story is for the Logo component which is used for branding in the app. + */ +const meta = { + title: "Core Components/Icons, Badges, and Labels/Logo", + component: Logo, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=8-8510" + } + }, + tags: ["autodocs"], + argTypes: { + size: { + name: "Size", + description: "The type of logo to render", + control: { + type: "select", + options: ["micro", "large"] + } + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Example of a large logo + */ +export const LargeLogo: Story = { + args: { + size: "large" + } +}; + +/** + * Example of a micro logo + */ +export const MicroLogo: Story = { + args: { + size: "micro" + } +}; diff --git a/mods/webui/src/stories/logo/Logo.tsx b/mods/webui/src/stories/logo/Logo.tsx new file mode 100644 index 000000000..68d20b0b8 --- /dev/null +++ b/mods/webui/src/stories/logo/Logo.tsx @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export function Logo({ size = "large" }: { size: "micro" | "large" }) { + return size === "large" ? ( + + + + + + + + + + + + ) : ( + + + + + ); +} diff --git a/mods/webui/src/stories/modalterms/DemoWrapper.tsx b/mods/webui/src/stories/modalterms/DemoWrapper.tsx new file mode 100644 index 000000000..fec3babeb --- /dev/null +++ b/mods/webui/src/stories/modalterms/DemoWrapper.tsx @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useState } from "react"; +import { ModalTerms } from "./ModalTerms"; +import { Button } from "../button/Button"; + +export const DemoWrapper = () => { + const [open, setOpen] = useState(false); + + const handleOpen = () => setOpen(true); + const handleClose = () => setOpen(false); + + return ( +
+ + + +
+ ); +}; diff --git a/mods/webui/src/stories/modalterms/ModalTerms.stories.tsx b/mods/webui/src/stories/modalterms/ModalTerms.stories.tsx new file mode 100644 index 000000000..66dd087ec --- /dev/null +++ b/mods/webui/src/stories/modalterms/ModalTerms.stories.tsx @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { ModalTerms } from "./ModalTerms"; +import { fn } from "@storybook/test"; +import { DemoWrapper } from "./DemoWrapper"; + +/** + * This story is for the Terms and Conditions Modal component based on Material UI. + */ +const meta = { + title: "Core Components/Modals and Popups/ModalTerms", + component: ModalTerms, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=23-4218&t=OHxjKnUMu9QS80uR-0" + } + }, + tags: ["autodocs"], + args: { + message: + "Your API Key was successfully generated and has been copied to your keyboard.", + open: true, + onClose: fn() + }, + argTypes: { + title: { + name: "Title", + description: "The title to display in the terms modal", + control: "text" + }, + message: { + name: "Message", + description: "The message to display in the terms modal", + control: "text" + }, + open: { + name: "Open", + description: "Controls the visibility of the terms modal", + control: "boolean" + }, + onClose: { + name: "On Close", + description: "Function to call when terms modal is closed" + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Default Terms Modal + */ +export const TermsModal: Story = { + render: () => +}; diff --git a/mods/webui/src/stories/modalterms/ModalTerms.styles.ts b/mods/webui/src/stories/modalterms/ModalTerms.styles.ts new file mode 100644 index 000000000..830ff5338 --- /dev/null +++ b/mods/webui/src/stories/modalterms/ModalTerms.styles.ts @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { styled, Theme } from "@mui/material/styles"; + +export const StyledModalTerms = (theme: Theme) => ({ + backgroundColor: theme.palette.common.white, + boxShadow: "0px 4px 32px 0px rgba(0, 0, 0, 0.15)", + padding: "24px", + outline: "none", + border: "none", + maxWidth: "100%", + margin: "auto", + position: "absolute", + top: "50%", + left: "50%", + transform: "translate(-50%, -50%)" +}); + +export const StyledTitleContainer = styled("div")(() => ({ + display: "flex", + alignItems: "center", + justifyContent: "space-between" +})); + +export const StyledTitle = { + fontFamily: (theme: Theme) => theme.typography.fontFamily, + marginBottom: (theme: Theme) => theme.spacing(3) +}; + +export const StyledCloseButtonContainer = styled("div")(() => ({ + width: "auto", + height: "auto", + cursor: "pointer" +})); diff --git a/mods/webui/src/stories/modalterms/ModalTerms.tsx b/mods/webui/src/stories/modalterms/ModalTerms.tsx new file mode 100644 index 000000000..3050ee420 --- /dev/null +++ b/mods/webui/src/stories/modalterms/ModalTerms.tsx @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from "react"; +import { Modal, Box, useTheme } from "@mui/material"; +import CloseIcon from "@mui/icons-material/Close"; +import { + StyledModalTerms, + StyledTitleContainer, + StyledCloseButtonContainer, + StyledTitle +} from "./ModalTerms.styles"; +import { TermsProps } from "./types"; +import { Typography } from "../typography/Typography"; + +export const ModalTerms: React.FC = ({ + title = "Terms and Conditions", + message, + open, + onClose +}) => { + const theme = useTheme(); + + return ( + + + + {title} + + + + + {message} + + + ); +}; diff --git a/mods/webui/src/stories/modalterms/types.ts b/mods/webui/src/stories/modalterms/types.ts new file mode 100644 index 000000000..824b97f28 --- /dev/null +++ b/mods/webui/src/stories/modalterms/types.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type TermsProps = { + title?: string; + message: string; + open: boolean; + onClose: () => void; +}; + +export type { TermsProps }; diff --git a/mods/webui/src/stories/modaltrigger/ModalTrigger.stories.ts b/mods/webui/src/stories/modaltrigger/ModalTrigger.stories.ts new file mode 100644 index 000000000..affbdd767 --- /dev/null +++ b/mods/webui/src/stories/modaltrigger/ModalTrigger.stories.ts @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { ModalTrigger } from "./ModalTrigger"; +import { fn } from "@storybook/test"; + +/** + * This story is for the modal trigger component based on Material UI. + * It has a enabled and disabled variants. + */ +const meta = { + title: "Core Components/Buttons, Links, and Chips/ModalTrigger", + component: ModalTrigger, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=888-19702&t=kMSUMoNiANfbgLUK-0" + } + }, + tags: ["autodocs"], + args: { onClick: fn(), label: "Back" }, + argTypes: { + onClick: { + name: "On Click", + description: "Function to execute on click" + }, + disabled: { + name: "Disabled", + description: "If true, the button will be disabled", + control: "boolean" + }, + label: { + name: "Label", + description: "The label to display", + control: "text" + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Example of an enabled modal trigger + */ +export const Default: Story = { + args: { + label: "Create New Secret", + disabled: false + } +}; + +/** + * Example of a disabled modal trigger. + */ +export const Disabled: Story = { + args: { + label: "Create New Secret", + disabled: true + } +}; diff --git a/mods/webui/src/stories/modaltrigger/ModalTrigger.styles.ts b/mods/webui/src/stories/modaltrigger/ModalTrigger.styles.ts new file mode 100644 index 000000000..7e49ea8b0 --- /dev/null +++ b/mods/webui/src/stories/modaltrigger/ModalTrigger.styles.ts @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { styled } from "@mui/material/styles"; + +export const StyledModalTrigger = styled("button")(({ theme }) => ({ + all: "unset", + display: "flex", + alignItems: "center", + color: theme.palette.mode === "dark" ? theme.palette.primary[800] : "#333333", + fontFamily: "Poppins", + fontSize: "10px", + fontWeight: 400, + letterSpacing: "0.5px", + lineHeight: "24px", + cursor: "pointer", + textDecoration: "underline", + wordWrap: "break-word", + "&:hover": { + textDecoration: "underline" + }, + "&:disabled": { + color: "#8D8D8D", + cursor: "not-allowed", + textDecoration: "underline" + } +})); + +export const StyledIcon = styled("div")<{ disabled: boolean }>( + ({ theme, disabled }) => ({ + "& svg": { + width: "16px", + height: "16px" + }, + marginRight: "8px", + display: "flex", + alignItems: "center", + color: disabled + ? "#8D8D8D" + : theme.palette.mode === "dark" + ? theme.palette.primary[500] + : "#333333", + pointerEvents: disabled ? "none" : "auto" + }) +); diff --git a/mods/webui/src/stories/modaltrigger/ModalTrigger.tsx b/mods/webui/src/stories/modaltrigger/ModalTrigger.tsx new file mode 100644 index 000000000..8ed7c4401 --- /dev/null +++ b/mods/webui/src/stories/modaltrigger/ModalTrigger.tsx @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from "react"; +import { StyledModalTrigger, StyledIcon } from "./ModalTrigger.styles"; +import { ModalTriggerProps } from "./types"; +import AddIcon from "@mui/icons-material/Add"; + +export const ModalTrigger: React.FC = ({ + onClick, + disabled, + label +}) => { + return ( + + + + + {label} + + ); +}; diff --git a/mods/webui/src/stories/modaltrigger/types.ts b/mods/webui/src/stories/modaltrigger/types.ts new file mode 100644 index 000000000..5818b1a1b --- /dev/null +++ b/mods/webui/src/stories/modaltrigger/types.ts @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type ModalTriggerProps = { + onClick?: () => void; + disabled?: boolean; + label: string; +}; + +export type { ModalTriggerProps }; diff --git a/mods/webui/src/stories/navbutton/NavButton.stories.ts b/mods/webui/src/stories/navbutton/NavButton.stories.ts new file mode 100644 index 000000000..901b3e2ff --- /dev/null +++ b/mods/webui/src/stories/navbutton/NavButton.stories.ts @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; +import { NavButton } from "./NavButton"; + +/** + * This story is for the NavButton component which is used for navigation + * in the AppBar. It is a button with an icon and a badge. + */ +const meta = { + title: "Core Components/Icons, Badges, and Labels/NavButton", + component: NavButton, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=276-11172" + } + }, + tags: ["autodocs"], + args: { onClick: fn() }, + argTypes: { + onClick: { + name: "On Click", + description: "Function to execute on click" + }, + isOpen: { + name: "Is Open", + description: "Whether the button is open or not" + }, + label: { + name: "Label", + description: "The badge content" + }, + variant: { + name: "Variant", + description: "The type of button to render", + control: { + type: "select", + options: ["notifications", "profile"] + } + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Example of a NavButton with a badge and an icon using the notifications variant and closed state. + */ +export const NotSelectedNotification: Story = { + args: { + isOpen: false, + label: 10 + } +}; + +/** + * Example of a NavButton using the profile variant and open state. + */ +export const ProfileVariant: Story = { + args: { + variant: "profile", + isOpen: true, + label: "PS" + } +}; diff --git a/mods/webui/src/stories/navbutton/NavButton.styles.ts b/mods/webui/src/stories/navbutton/NavButton.styles.ts new file mode 100644 index 000000000..e052bebc9 --- /dev/null +++ b/mods/webui/src/stories/navbutton/NavButton.styles.ts @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import NotificationsIcon from "@mui/icons-material/NotificationsActiveOutlined"; +import { Avatar, Badge, IconButton, styled } from "@mui/material"; + +const StyledIconButton = styled(IconButton, { + shouldForwardProp: (prop) => prop !== "isActive" +})<{ + isOpen: boolean; +}>(({ theme, isOpen }) => ({ + backgroundColor: isOpen + ? theme.palette.primary[800] + : theme.palette.primary[100], + width: "33px", + height: "33px", + color: isOpen ? theme.palette.common.white : theme.palette.primary[800], + "&:hover": { + backgroundColor: isOpen + ? theme.palette.primary[900] + : theme.palette.primary[200] + }, + position: "relative" +})); + +const StyledBadge = styled(Badge)<{ + label: number; +}>(({ theme, label }) => ({ + "& .MuiBadge-badge": { + display: "flex", + flexDirection: "column", + justifyContent: "center", + flexShrink: 0, + width: "10px", + height: "10px", + fontSize: label > 9 ? "6px" : "8px", + fontWeight: 600, + fontFamily: "Poppins", + fontFeatureSettings: "'liga' off, 'clig' off", + fontStyle: "normal", + lineHeight: "16px", + borderRadius: "50%", + textAlign: "center", + minWidth: "10px", + padding: "0px", + paddingTop: label > 9 ? "2px" : "1px", + top: "-5px", + right: "-5px", + color: theme.palette.warning[50] + } +})); + +const StyledNotificationsIcon = styled(NotificationsIcon)(() => ({ + fontSize: 16 +})); + +const StyledAvatar = styled(Avatar, { + shouldForwardProp: (prop) => prop !== "isOpen" +})<{ isOpen: boolean }>(({ theme, isOpen }) => ({ + width: "33px", + height: "33px", + fontSize: "13px", + fontWeight: 700, + fontFamily: "Poppins", + fontFeatureSettings: "'liga' off, 'clig' off", + fontStyle: "normal", + textAlign: "center", + color: isOpen ? theme.palette.common.white : theme.palette.primary[800], + backgroundColor: isOpen + ? theme.palette.primary[800] + : theme.palette.primary[100] +})); + +export { StyledAvatar, StyledBadge, StyledIconButton, StyledNotificationsIcon }; diff --git a/mods/webui/src/stories/navbutton/NavButton.tsx b/mods/webui/src/stories/navbutton/NavButton.tsx new file mode 100644 index 000000000..463275b81 --- /dev/null +++ b/mods/webui/src/stories/navbutton/NavButton.tsx @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useTheme } from "@mui/material"; +import { + StyledAvatar, + StyledBadge, + StyledIconButton, + StyledNotificationsIcon +} from "./NavButton.styles"; +import { NavButtonProps } from "./types"; + +export const NavButton = (props: NavButtonProps) => { + const { variant, isOpen, label, onClick } = props; + const actualLabel = label ?? 0; + const actualVariant = variant ?? "notifications"; + const theme = useTheme(); + + return ( + + {actualVariant === "notifications" && ( + 9 ? "9+" : actualLabel + } + color="warning" + overlap="circular" + > + + + )} + + {actualVariant === "profile" && ( + {label} + )} + + ); +}; diff --git a/mods/webui/src/stories/navbutton/types.ts b/mods/webui/src/stories/navbutton/types.ts new file mode 100644 index 000000000..fbcb18fbe --- /dev/null +++ b/mods/webui/src/stories/navbutton/types.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type NavButtonProps = { + variant?: "notifications" | "profile"; + isOpen: boolean; + label: string | number; + onClick: () => void; +}; + +export type { NavButtonProps }; diff --git a/mods/webui/src/stories/navigationdropdownaccount/NavigationDropdownAccount.stories.ts b/mods/webui/src/stories/navigationdropdownaccount/NavigationDropdownAccount.stories.ts new file mode 100644 index 000000000..9d0562b14 --- /dev/null +++ b/mods/webui/src/stories/navigationdropdownaccount/NavigationDropdownAccount.stories.ts @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { NavigationDropdownAccount } from "./NavigationDropdownAccount"; +import { fn } from "@storybook/test"; + +/** + * This story is for the Navigation Dropdown Account. + * It takes open, onAccountSettingsClicked and onSignoutClicked. + */ +const meta = { + title: "Shared Components/NavigationDropdownAccount", + component: NavigationDropdownAccount, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=284-12264" + }, + tags: ["autodocs"], + argTypes: { + open: { + name: "Open", + description: "This is the open state of the dropdown" + }, + onAccountSettingsClicked: { + name: "OnAccountSettingsClicked", + description: "This is onClick handler of account setting" + }, + onSignoutClicked: { + name: "OnSignoutClicked", + description: "This the onClick handler of sign out" + } + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Example to show NavigationDropdownAccount usage. + */ +export const Default: Story = { + args: { + open: true, + onAccountSettingsClicked: fn(), + onSignoutClicked: fn() + } +}; diff --git a/mods/webui/src/stories/navigationdropdownaccount/NavigationDropdownAccount.styles.ts b/mods/webui/src/stories/navigationdropdownaccount/NavigationDropdownAccount.styles.ts new file mode 100644 index 000000000..24aff54b1 --- /dev/null +++ b/mods/webui/src/stories/navigationdropdownaccount/NavigationDropdownAccount.styles.ts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { styled } from "@mui/material/styles"; + +export const NavigationDropdownAccountContainer = styled("div")(() => ({ + position: "relative" +})); + +export const NavigationDropdownAccountContent = styled("div")<{ + open: boolean; +}>(({ open }) => ({ + position: "absolute", + display: open ? "flex" : "none", + flexDirection: "column", + width: "251px", + boxShadow: "0px 5px 10px 0px #0000001A", + zIndex: 10, + padding: "10px 0px" +})); + +export const NavigationDropdownAccountHeader = styled("div")(() => ({ + display: "flex", + alignItems: "center", + height: "42px", + padding: "0px 10px" +})); + +export const NavigationDropdownAccountMenuItem = styled("div")(({ theme }) => ({ + display: "flex", + alignItems: "center", + height: "38px", + padding: "0px 10px", + cursor: "pointer", + "&:hover": { + backgroundColor: theme.palette.secondary[50] + } +})); diff --git a/mods/webui/src/stories/navigationdropdownaccount/NavigationDropdownAccount.tsx b/mods/webui/src/stories/navigationdropdownaccount/NavigationDropdownAccount.tsx new file mode 100644 index 000000000..de0b9a673 --- /dev/null +++ b/mods/webui/src/stories/navigationdropdownaccount/NavigationDropdownAccount.tsx @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2024 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + NavigationDropdownAccountContainer, + NavigationDropdownAccountContent, + NavigationDropdownAccountHeader, + NavigationDropdownAccountMenuItem +} from "./NavigationDropdownAccount.styles"; +import { NavigationDropdownAccountProps } from "./types"; +import { Typography } from "../typography/Typography"; + +export const NavigationDropdownAccount = ( + props: NavigationDropdownAccountProps +) => { + const { open, onAccountSettingsClicked, onSignoutClicked } = props; + + return ( + + + + Account + + + + Account settings + + + + Sign Out + + + + ); +}; diff --git a/mods/webui/src/stories/navigationdropdownaccount/types.ts b/mods/webui/src/stories/navigationdropdownaccount/types.ts new file mode 100644 index 000000000..aae5aaca4 --- /dev/null +++ b/mods/webui/src/stories/navigationdropdownaccount/types.ts @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +type NavigationDropdownAccountProps = { + open: boolean; + onSignoutClicked: () => void; + onAccountSettingsClicked: () => void; +}; + +export type { NavigationDropdownAccountProps }; diff --git a/mods/webui/src/stories/overviewcard/OverviewCard.stories.ts b/mods/webui/src/stories/overviewcard/OverviewCard.stories.ts new file mode 100644 index 000000000..15bd5df5f --- /dev/null +++ b/mods/webui/src/stories/overviewcard/OverviewCard.stories.ts @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { fn } from "@storybook/test"; +import { OverviewCard } from "./OverviewCard"; +import { Icon } from "../icon/Icon"; +import React from "react"; + +/** + * This story is for the OverviewCard component. It takes a label, icon and onClick. + */ +const meta = { + title: "Core Components/Cards/OverviewCard", + component: OverviewCard, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=888-20517&m=dev" + } + }, + tags: ["autodocs"], + args: { onClick: fn() }, + argTypes: { + onClick: { + name: "On Click", + description: "Function to execute on click" + }, + icon: { + name: "Icon", + description: "The icon on the card" + }, + label: { + name: "Label", + control: "text", + description: "The label of the card" + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Example to show OverviewCard. + */ +export const Example: Story = { + args: { + label: "Workspace setting", + icon: React.createElement(Icon, { + name: "Settings", + fontSize: "small" + }) + } +}; + +/** + * Example to show OverviewCard with new Icon. + */ +export const ChangeIcon: Story = { + args: { + label: "Workspace setting", + icon: React.createElement(Icon, { + name: "Search", + fontSize: "small" + }) + } +}; + +/** + * Example to show OverviewCard with new Icon and label. + */ +export const ChangeIconAndLabel: Story = { + args: { + label: "Notification setting", + icon: React.createElement(Icon, { + name: "NotificationsActive", + fontSize: "small" + }) + } +}; diff --git a/mods/webui/src/stories/overviewcard/OverviewCard.styles.ts b/mods/webui/src/stories/overviewcard/OverviewCard.styles.ts new file mode 100644 index 000000000..9b6b4aee4 --- /dev/null +++ b/mods/webui/src/stories/overviewcard/OverviewCard.styles.ts @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import Box from "@mui/material/Box"; +import { styled } from "@mui/material/styles"; + +export const StyledMuiBox = styled(Box)(({ theme }) => ({ + display: "flex", + width: "439px", + height: "76px", + alignItems: "center", + justifyContent: "space-between", + paddingTop: "24px", + paddingRight: "16px", + paddingBottom: "24px", + paddingLeft: "16px", + borderRadius: "8px", + border: "1px", + borderStyle: "solid", + borderColor: theme.palette.secondary[100], + gap: "10px", + cursor: "pointer", + backgroundColor: theme.palette.secondary[50], + "&:hover": { + borderColor: theme.palette.primary[500] + } +})); + +export const StyledIconBox = styled(Box)(({ theme }) => ({ + display: "flex", + backgroundColor: theme.palette.primary[200], + padding: "4px", + borderRadius: "4px", + color: theme.palette.primary[700] +})); + +export const StyledLabelBox = styled(Box)(({ theme }) => ({ + flexGrow: 1, + padding: "0px" +})); diff --git a/mods/webui/src/stories/overviewcard/OverviewCard.tsx b/mods/webui/src/stories/overviewcard/OverviewCard.tsx new file mode 100644 index 000000000..da22af5b2 --- /dev/null +++ b/mods/webui/src/stories/overviewcard/OverviewCard.tsx @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Icon } from "../icon/Icon"; +import { Typography } from "../typography/Typography"; +import { + StyledIconBox, + StyledLabelBox, + StyledMuiBox +} from "./OverviewCard.styles"; +import { OverviewCardProps } from "./types"; + +export const OverviewCard = (props: OverviewCardProps) => { + const { label, icon, onClick } = props; + return ( + + {icon} + + + {label} + + + + + ); +}; diff --git a/mods/webui/src/stories/overviewcard/types.ts b/mods/webui/src/stories/overviewcard/types.ts new file mode 100644 index 000000000..8a3b78d43 --- /dev/null +++ b/mods/webui/src/stories/overviewcard/types.ts @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ReactNode } from "react"; + +type OverviewCardProps = { + icon: ReactNode; + label: string; + onClick: () => void; +}; + +export type { OverviewCardProps }; diff --git a/mods/webui/src/stories/pagination/Pagination.stories.ts b/mods/webui/src/stories/pagination/Pagination.stories.ts new file mode 100644 index 000000000..531c8ef4e --- /dev/null +++ b/mods/webui/src/stories/pagination/Pagination.stories.ts @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { Pagination } from "./Pagination"; +import { fn } from "@storybook/test"; + +/** + * Story of the Pagination component. + */ +const meta = { + title: "Core Components/Buttons, Links, and Chips/Pagination", + component: Pagination, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=888-19707&t=7iBONnPS49mz6HuU-4" + } + }, + tags: ["autodocs"], + args: { onClick: fn() }, + argTypes: { + count: { + name: "Count", + description: "Count of the total number of items", + control: "number" + }, + disabled: { + name: "Disabled", + description: "If true, pagination will be disable", + control: "boolean" + }, + rowsPerPage: { + name: "Rows per page", + description: "Rows per page", + control: "number" + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Example of a Pagination with the count of 32 + * and default rowsPerPage of 10 + */ +export const Default: Story = { + args: { + count: 32, + disabled: false + } +}; + +/** + * Example of Pagination Component with the count of 4269 + * and explicit rowsPerPage of 69 + */ +export const WithExplicitOnPage: Story = { + args: { + count: 4269, + disabled: false, + rowsPerPage: 69 + } +}; + +/** + * Example of disabled pagination component + */ +export const Disable: Story = { + args: { + count: 100, + disabled: true + } +}; diff --git a/mods/webui/src/stories/pagination/Pagination.styles.ts b/mods/webui/src/stories/pagination/Pagination.styles.ts new file mode 100644 index 000000000..6a7e631c0 --- /dev/null +++ b/mods/webui/src/stories/pagination/Pagination.styles.ts @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { styled } from "@mui/material/styles"; +import TablePagination, { + TablePaginationProps +} from "@mui/material/TablePagination"; +import React from "react"; + +export type StyledPaginationProps = TablePaginationProps & { + component?: React.ElementType; +}; + +export const StyledPagination = styled(TablePagination)( + ({ theme }) => ({ + "& .MuiTablePagination-toolbar": { + display: "flex", + justifyContent: "flex-start", + gap: theme.spacing(0.5) + }, + "& .MuiTablePagination-actions": { + order: -1, + gap: theme.spacing(0.1), + "& .MuiSvgIcon-root": { + fontSize: "2rem", + fontWeight: 700 + }, + "& button": { + margin: 0, + padding: theme.spacing(0.1) + } + }, + "&.disabled": { + color: theme.palette.secondary[200], + pointerEvents: "none" + } + }) +); diff --git a/mods/webui/src/stories/pagination/Pagination.tsx b/mods/webui/src/stories/pagination/Pagination.tsx new file mode 100644 index 000000000..422d8f906 --- /dev/null +++ b/mods/webui/src/stories/pagination/Pagination.tsx @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useState } from "react"; +import { StyledPagination } from "./Pagination.styles"; +import { PaginationProps } from "./types"; +import { Typography } from "../typography/Typography"; + +export const Pagination = (props: PaginationProps) => { + const [page, setPage] = useState(0); + const { onClick, count, disabled, rowsPerPage } = props; + + const handleChangePage = ( + event: React.MouseEvent | null, + newPage: number + ) => { + onClick(event, newPage); + setPage(newPage); + }; + + const renderDisplayedRows = ({ + from, + to, + count + }: { + from: number; + to: number; + count: number; + }) => ( + {`${from}-${to} of ${count}`} + ); + + return ( + + ); +}; diff --git a/mods/webui/src/stories/pagination/types.ts b/mods/webui/src/stories/pagination/types.ts new file mode 100644 index 000000000..7fc71ac3d --- /dev/null +++ b/mods/webui/src/stories/pagination/types.ts @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type PaginationProps = { + onClick?: ( + event: React.MouseEvent | null, + newPage: number + ) => void; + count: number; + disabled: boolean; + rowsPerPage?: number; +}; + +export type { PaginationProps }; diff --git a/mods/webui/src/stories/progessindicator/ProgressIndicator.stories.ts b/mods/webui/src/stories/progessindicator/ProgressIndicator.stories.ts new file mode 100644 index 000000000..21f75933f --- /dev/null +++ b/mods/webui/src/stories/progessindicator/ProgressIndicator.stories.ts @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { ProgressIndicator } from "./ProgressIndicator"; + +/** + * This story is for the ProgressIndicator component. It takes steps, and current step. + */ +const meta = { + title: "Core Components/Navigation/ProgressIndicator", + component: ProgressIndicator, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=16-11665&t=9fsQpnbEFLDtU7tO-4" + } + }, + tags: ["autodocs"], + argTypes: { + steps: { + name: "Steps", + description: "The list of steps" + }, + current: { + name: "Current", + control: "number", + description: "The current step" + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Example to show Progress Indicator. + */ +export const Example: Story = { + args: { + steps: [ + "Verify email address", + "Enter phone number", + "Verify phone number" + ], + current: 2 + } +}; + +/** + * Example to show Progress Indicator with four steps and zero progress. + */ +export const ZeroProgress: Story = { + args: { + steps: [ + "Verify email address", + "Enter phone number", + "Verify phone number", + "Confirmation" + ], + current: 0 + } +}; + +/** + * Example to show Progress Indicator with four steps and half progress. + */ +export const HalfProgress: Story = { + args: { + steps: [ + "Verify email address", + "Enter phone number", + "Verify phone number", + "Confirmation" + ], + current: 2 + } +}; + +/** + * Example to show Progress Indicator with four steps and complete progress. + */ +export const CompleteProgress: Story = { + args: { + steps: [ + "Verify email address", + "Enter phone number", + "Verify phone number", + "Confirmation" + ], + current: 4 + } +}; diff --git a/mods/webui/src/stories/progessindicator/ProgressIndicator.styles.ts b/mods/webui/src/stories/progessindicator/ProgressIndicator.styles.ts new file mode 100644 index 000000000..332f4391d --- /dev/null +++ b/mods/webui/src/stories/progessindicator/ProgressIndicator.styles.ts @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { styled } from "@mui/material/styles"; +import { IndicatorLabelProps, ProgressProps } from "./types"; + +export const StyledProgressContainer = styled("div")(() => ({ + width: "670px", + display: "flex", + flexDirection: "column", + gap: "16px" +})); + +export const StyledProgressBar = styled("div")(({ theme }) => ({ + display: "flex", + height: "4px", + backgroundColor: theme.palette.primary[200] +})); + +export const StyledProgressIndicator = styled("div")( + ({ theme, progress }) => ({ + height: "100%", + width: progress, + backgroundColor: theme.palette.primary[500] + }) +); + +export const StyledIndicatorLabelList = styled("ol")(() => ({ + display: "flex", + flexDirection: "row", + justifyContent: "space-between", + listStyle: "none", + padding: "0px", + margin: "0px", + gap: "10px" +})); + +export const StyledIndicatorLabel = styled("li")( + ({ theme, completed }) => ({ + color: completed + ? theme.palette.secondary[900] + : theme.palette.secondary[500] + }) +); diff --git a/mods/webui/src/stories/progessindicator/ProgressIndicator.tsx b/mods/webui/src/stories/progessindicator/ProgressIndicator.tsx new file mode 100644 index 000000000..8026c9c8d --- /dev/null +++ b/mods/webui/src/stories/progessindicator/ProgressIndicator.tsx @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useEffect, useState } from "react"; +import { Typography } from "../typography/Typography"; +import { + StyledIndicatorLabel, + StyledIndicatorLabelList, + StyledProgressBar, + StyledProgressContainer, + StyledProgressIndicator +} from "./ProgressIndicator.styles"; +import { ProgressIndicatorProps } from "./types"; + +export const ProgressIndicator = (props: ProgressIndicatorProps) => { + const { steps, current = 0 } = props; + const [progress, setProgress] = useState(0); + + useEffect(() => { + const progress = (current / steps.length) * 100; + setProgress(Math.round(progress)); + }, [steps, current]); + + return ( + + + + + + {steps.map((step, i) => ( + i}> + {step} + + ))} + + + ); +}; diff --git a/mods/webui/src/stories/progessindicator/types.ts b/mods/webui/src/stories/progessindicator/types.ts new file mode 100644 index 000000000..8ede58c5e --- /dev/null +++ b/mods/webui/src/stories/progessindicator/types.ts @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type ProgressIndicatorProps = { + steps: string[]; + current: number; +}; + +type ProgressProps = { + progress: `${number}%`; +}; + +type IndicatorLabelProps = { + completed?: boolean; +}; + +export type { ProgressIndicatorProps, ProgressProps, IndicatorLabelProps }; diff --git a/mods/webui/src/stories/regionlabel/RegionLabel.stories.ts b/mods/webui/src/stories/regionlabel/RegionLabel.stories.ts new file mode 100644 index 000000000..57868dbb6 --- /dev/null +++ b/mods/webui/src/stories/regionlabel/RegionLabel.stories.ts @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { RegionLabel } from "./RegionLabel"; + +/** + * This story is for the regular Button component based on Material UI. + * It has a contained variant and full width with optional start and end icons. + */ +const meta = { + title: "Core Components/Icons, Badges, and Labels/RegionLabel", + component: RegionLabel, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=301-13513" + } + }, + tags: ["autodocs"], + argTypes: { + children: { + name: "Text", + description: "The text to display" + }, + type: { + name: "Type", + description: "The type of region label based on usage", + control: { + type: "select", + options: ["landing-page", "drawer"] + } + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Example of a RegionLabel for a drawer. + */ +export const DrawerExample: Story = { + args: { + children: "REGION", + type: "drawer" + } +}; + +/** + * Example of a RegionLabel for a landing page. + */ +export const LandingPageExample: Story = { + args: { + children: "REGION", + type: "landing-page" + } +}; diff --git a/mods/webui/src/stories/regionlabel/RegionLabel.styles.ts b/mods/webui/src/stories/regionlabel/RegionLabel.styles.ts new file mode 100644 index 000000000..80d72b995 --- /dev/null +++ b/mods/webui/src/stories/regionlabel/RegionLabel.styles.ts @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import Box from "@mui/material/Box"; +import { styled } from "@mui/material/styles"; +import { CSSProperties } from "react"; + +const commonStyles: CSSProperties = { + display: "inline-flex", + justifyContent: "center", + alignItems: "center", + gap: "10px", + fontFamily: "Roboto Mono", + fontSize: "10px", + fontStyle: "normal", + fontWeight: 700, + lineHeight: "21px", + textTransform: "uppercase", + textAlign: "center", + fontFeatureSettings: "'liga' off, 'clig' off" +}; + +export const DrawerRegionLabel = styled(Box)(({ theme }) => ({ + ...commonStyles, + padding: "0px 4px", + backgroundColor: theme.palette.grey[300], + color: theme.palette.grey[700], + borderRadius: "20px" +})); + +export const LandingPageRegionLabel = styled(Box)(({ theme }) => ({ + ...commonStyles, + padding: "2px 8px", + backgroundColor: theme.palette.primary[500], + color: theme.palette.primary[900], + borderRadius: "40px" +})); diff --git a/mods/webui/src/stories/regionlabel/RegionLabel.tsx b/mods/webui/src/stories/regionlabel/RegionLabel.tsx new file mode 100644 index 000000000..b6696be2b --- /dev/null +++ b/mods/webui/src/stories/regionlabel/RegionLabel.tsx @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Box } from "@mui/material"; +import { + DrawerRegionLabel, + LandingPageRegionLabel +} from "./RegionLabel.styles"; + +export const RegionLabel = ({ + children, + type = "landing-page" +}: { + children: string; + type?: "landing-page" | "drawer"; +}) => { + const Wrapper = + type === "landing-page" ? LandingPageRegionLabel : DrawerRegionLabel; + + return ( + + + {children} + + + ); +}; diff --git a/mods/webui/src/stories/snackbar/SnackBar.stories.ts b/mods/webui/src/stories/snackbar/SnackBar.stories.ts new file mode 100644 index 000000000..7a8f70df7 --- /dev/null +++ b/mods/webui/src/stories/snackbar/SnackBar.stories.ts @@ -0,0 +1,140 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { Snackbar } from "./SnackBar"; +import { action } from "@storybook/addon-actions"; + +/** + * This story is for the Snackbar component based on Material UI. + * It demonstrates different positions and behavior of the snackbar. + */ +const meta = { + title: "Core Components/Modals and Popups/Snackbar", + component: Snackbar, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=276-34326&t=PCa7qoqJ5LyNWGvX-0" + } + }, + tags: ["autodocs"], + args: { + message: + "Your API Key was successfully generated and has been copied to your keyboard.", + open: true, + position: "top-center", + onClose: action("Snackbar closed"), + autoHideDuration: 5000 + }, + argTypes: { + message: { + name: "Message", + description: "The message to display in the snackbar", + control: "text" + }, + open: { + name: "Open", + description: "Controls the visibility of the snackbar", + control: "boolean" + }, + onClose: { + name: "On Close", + description: "Function to call when snackbar is closed" + }, + position: { + name: "Position", + description: "The position of the snackbar", + control: { + type: "select", + options: [ + "top-center", + "top-right", + "top-left", + "bottom-center", + "bottom-right", + "bottom-left" + ] + } + }, + autoHideDuration: { + name: "Auto-hide Duration", + description: "Time (in ms) before the snackbar hides automatically", + control: { type: "number" } + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Default snackbar positioned at the top center + */ +export const TopCenter: Story = { + args: { + position: "top-center" + } +}; + +/** + * Snackbar positioned at the top-right corner + */ +export const TopRight: Story = { + args: { + position: "top-right" + } +}; + +/** + * Snackbar positioned at the top-left corner + */ +export const TopLeft: Story = { + args: { + position: "top-left" + } +}; + +/** + * Snackbar positioned at the bottom-center corner + */ +export const BottomCenter: Story = { + args: { + position: "bottom-center" + } +}; + +/** + * Snackbar positioned at the bottom-right corner + */ +export const BottomRight: Story = { + args: { + position: "bottom-right" + } +}; + +/** + * Snackbar positioned at the bottom-left corner + */ +export const BottomLeft: Story = { + args: { + position: "bottom-left" + } +}; diff --git a/mods/webui/src/stories/snackbar/SnackBar.styles.ts b/mods/webui/src/stories/snackbar/SnackBar.styles.ts new file mode 100644 index 000000000..58a1c8a34 --- /dev/null +++ b/mods/webui/src/stories/snackbar/SnackBar.styles.ts @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { styled } from "@mui/material/styles"; + +export const StyledSnackbarContainer = styled("div")<{ position: string }>(({ + position +}) => { + const getPositionStyles = () => { + const positions = { + "top-center": { + justifyContent: "center", + alignItems: "flex-start", + paddingTop: "10px" + }, + "top-right": { + justifyContent: "flex-end", + alignItems: "flex-start", + paddingRight: "10px" + }, + "top-left": { + justifyContent: "flex-start", + alignItems: "flex-start", + paddingLeft: "10px" + }, + "bottom-center": { + justifyContent: "center", + alignItems: "flex-end", + paddingCenter: "10px" + }, + "bottom-right": { + justifyContent: "flex-end", + alignItems: "flex-end", + paddingRight: "10px" + }, + "bottom-left": { + justifyContent: "flex-start", + alignItems: "flex-end", + paddingLeft: "10px" + } + }; + return positions[position]; + }; + + return { + display: "flex", + width: "100%", + height: "100%", + justifyContent: "center", + alignItems: "center", + ...getPositionStyles() + }; +}); + +export const StyledSnackbar = styled("div")(({ theme }) => { + return { + width: "344px", + backgroundColor: "#CCEFE1", + color: "#053204", + borderRadius: "4px", + padding: "16px", + boxShadow: theme.shadows[4], + display: "flex", + alignItems: "center", + justifyContent: "space-between", + gap: "10px" + }; +}); + +export const StyledMessage = styled("div")(() => ({ + width: "90%", + fontFamily: "Poppins", + fontSize: "12px", + fontWeight: 400, + textAlign: "left", + textUnderlinePosition: "from-font", + textDecorationSkipInk: "none", + letterSpacing: "0.01em", + lineHeight: "18px" +})); + +export const StyledCloseButtonContainer = styled("div")(() => ({ + width: "10%", + height: "auto", + cursor: "pointer", + display: "flex", + alignItems: "center", + justifyContent: "center" +})); diff --git a/mods/webui/src/stories/snackbar/SnackBar.tsx b/mods/webui/src/stories/snackbar/SnackBar.tsx new file mode 100644 index 000000000..b76ae3b25 --- /dev/null +++ b/mods/webui/src/stories/snackbar/SnackBar.tsx @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { useEffect } from "react"; +import { + StyledSnackbarContainer, + StyledSnackbar, + StyledMessage, + StyledCloseButtonContainer +} from "./SnackBar.styles"; +import Grow from "@mui/material/Grow"; +import { SnackBarProps } from "./types"; +import CloseIcon from "@mui/icons-material/Close"; + +export const Snackbar: React.FC = ({ + message, + open, + onClose, + position, + autoHideDuration = 5000 +}) => { + useEffect(() => { + if (open && autoHideDuration) { + const timer = setTimeout(onClose, autoHideDuration); + return () => clearTimeout(timer); + } + }, [open, autoHideDuration, onClose]); + + return ( + + + + {message} + + + + + + + ); +}; diff --git a/mods/webui/src/stories/snackbar/types.ts b/mods/webui/src/stories/snackbar/types.ts new file mode 100644 index 000000000..2ca0cb436 --- /dev/null +++ b/mods/webui/src/stories/snackbar/types.ts @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type SnackBarProps = { + autoHideDuration: number; + message: string; + open: boolean; + onClose: () => void; + position: + | "top-center" + | "top-right" + | "top-left" + | "bottom-center" + | "bottom-right" + | "bottom-left"; +}; + +export type { SnackBarProps }; diff --git a/mods/webui/src/stories/tooltip/Tooltip.stories.ts b/mods/webui/src/stories/tooltip/Tooltip.stories.ts new file mode 100644 index 000000000..e1d5dbbd3 --- /dev/null +++ b/mods/webui/src/stories/tooltip/Tooltip.stories.ts @@ -0,0 +1,171 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { Tooltip } from "./Tooltip"; +import React from "react"; +import { Button } from "../button/Button"; + +/** + * This story is for the Tooltip Component. It takes content, placement and children. + */ +const meta = { + title: "Core Components/Modals and Popups/Tooltip", + component: Tooltip, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=947-2396&t=FZpgQQ5oJZ2p3FGb-4" + }, + tags: ["autodocs"], + argTypes: { + content: { + name: "Content", + description: "This is the content" + }, + placement: { + name: "Placement", + description: "This is placement of the tooltip relative to the children" + }, + children: { + name: "Children", + description: "This the component that requries the tooltip" + } + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Example to show Tooltip usage. + */ +export const Example: Story = { + args: { + content: "Request Video Call", + placement: "top", + children: React.createElement(Button, null, "Video call") + } +}; + +/** + * Example to show Tooltip top placement. + */ +export const Top: Story = { + args: { + content: "Request Video Call", + placement: "top", + children: React.createElement(Button, null, "Video call") + } +}; + +/** + * Example to show Tooltip right placement. + */ +export const Right: Story = { + args: { + content: "Request Video Call", + placement: "right", + children: React.createElement(Button, null, "Video call") + } +}; + +/** + * Example to show Tooltip left placement. + */ +export const Left: Story = { + args: { + content: "Request Video Call", + placement: "left", + children: React.createElement(Button, null, "Video call") + } +}; + +/** + * Example to show Tooltip bottom placement. + */ +export const Bottom: Story = { + args: { + content: "Request Video Call", + placement: "bottom", + children: React.createElement(Button, null, "Video call") + } +}; + +/** + * Example to show Multiline Tooltip top placement. + */ +export const MultilineTop: Story = { + args: { + content: [ + "Enable AI Assistance", + "Request Video Call", + "Request Audio Call" + ], + placement: "top", + children: React.createElement(Button, null, "Enable AI,Video,Audio") + } +}; + +/** + * Example to show Multiline Tooltip right placement. + */ +export const MultilineRight: Story = { + args: { + content: [ + "Enable AI Assistance", + "Request Video Call", + "Request Audio Call" + ], + placement: "right", + children: React.createElement(Button, null, "Enable AI,Video,Audio") + } +}; + +/** + * Example to show Multiline Tooltip left placement. + */ +export const MultilineLeft: Story = { + args: { + content: [ + "Enable AI Assistance", + "Request Video Call", + "Request Audio Call" + ], + placement: "left", + children: React.createElement(Button, null, "Enable AI,Video,Audio") + } +}; + +/** + * Example to show Multiline Tooltip bottom placement. + */ +export const MultilineBottom: Story = { + args: { + content: [ + "Enable AI Assistance", + "Request Video Call", + "Request Audio Call" + ], + placement: "bottom", + children: React.createElement(Button, null, "Enable AI,Video,Audio") + } +}; diff --git a/mods/webui/src/stories/tooltip/Tooltip.styles.ts b/mods/webui/src/stories/tooltip/Tooltip.styles.ts new file mode 100644 index 000000000..1ae43c9aa --- /dev/null +++ b/mods/webui/src/stories/tooltip/Tooltip.styles.ts @@ -0,0 +1,133 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { styled, Theme } from "@mui/material/styles"; +import { TooltipPlacement } from "./types"; + +const arrowSize = "6px"; +const translateX0Y_50 = "translateX(0) translateY(-50%)"; +const translateX_50 = "translateX(-50%)"; +const tooltipDistance = "calc(100% + 12px)"; + +export const StyledTooltipContainer = styled("div")(() => ({ + position: "relative" +})); + +export const StyledTooltipContentList = styled("div")<{ + placement: TooltipPlacement; +}>(({ theme, placement }) => ({ + position: "absolute", + left: "50%", + backgroundColor: theme.palette.secondary[700], + borderRadius: "4px", + padding: "10px", + paddingTop: "5px", + whiteSpace: "nowrap", + transform: "translateX(-50%)", + zIndex: 100, + ...getTooltipPositionStyles(placement) +})); + +export const StyledTooltipContent = styled("div")(({ theme }) => ({ + color: theme.palette.primary[50] +})); + +export const StyledTooltipArrow = styled("span")<{ + placement: TooltipPlacement; +}>(({ theme, placement }) => ({ + content: "''", + position: "absolute", + border: "solid transparent", + height: 0, + width: 0, + pointerEvents: "none", + borderWidth: "10px", + ...getTooltipArrowStyles(placement, theme) +})); + +const getTooltipPositionStyles = (placement: TooltipPlacement) => { + switch (placement) { + case "top": + return { + bottom: tooltipDistance + }; + case "right": + return { + left: tooltipDistance, + top: "50%", + transform: translateX0Y_50 + }; + case "bottom": + return { + top: tooltipDistance + }; + case "left": + return { + left: "auto", + right: tooltipDistance, + top: "50%", + transform: translateX0Y_50 + }; + default: + return {}; + } +}; + +const getTooltipArrowStyles = ( + placement: TooltipPlacement, + theme: Theme +): React.CSSProperties => { + const backgroundColor = theme.palette.secondary[700]; + + switch (placement) { + case "top": + return { + top: "100%", + left: "50%", + transform: translateX_50, + borderTopColor: backgroundColor, + borderTopWidth: arrowSize + }; + case "right": + return { + right: `100%`, + top: "50%", + transform: translateX0Y_50, + borderRightColor: backgroundColor, + borderRightWidth: arrowSize + }; + case "bottom": + return { + bottom: "100%", + left: "50%", + transform: translateX_50, + borderBottomColor: backgroundColor, + borderBottomWidth: arrowSize + }; + case "left": + return { + left: `100%`, + top: "50%", + transform: translateX0Y_50, + borderLeftColor: backgroundColor, + borderLeftWidth: arrowSize + }; + default: + return {}; + } +}; diff --git a/mods/webui/src/stories/tooltip/Tooltip.tsx b/mods/webui/src/stories/tooltip/Tooltip.tsx new file mode 100644 index 000000000..17763ccaf --- /dev/null +++ b/mods/webui/src/stories/tooltip/Tooltip.tsx @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useState } from "react"; +import { Typography } from "../typography/Typography"; +import { + StyledTooltipArrow, + StyledTooltipContainer, + StyledTooltipContent, + StyledTooltipContentList +} from "./Tooltip.styles"; +import { TooltipProps } from "./types"; + +export const Tooltip = (props: TooltipProps) => { + const { content, placement = "top", children } = props; + const [show, setShow] = useState(false); + + const showTip = () => setShow(true); + const hideTip = () => setShow(false); + + return ( + + {children} + {show && ( + + {typeof content === "string" ? ( + + {content}{" "} + + ) : ( + content.map((value, i) => ( + + {value}{" "} + + )) + )} + + + )} + + ); +}; diff --git a/mods/webui/src/stories/tooltip/types.ts b/mods/webui/src/stories/tooltip/types.ts new file mode 100644 index 000000000..ce1a1570f --- /dev/null +++ b/mods/webui/src/stories/tooltip/types.ts @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from "react"; + +type TooltipProps = { + content: string | string[]; + placement?: TooltipPlacement; + children: React.ReactNode; +}; + +type TooltipPlacement = "top" | "right" | "bottom" | "left"; + +export type { TooltipProps, TooltipPlacement }; diff --git a/mods/webui/src/stories/typography/Typography.stories.ts b/mods/webui/src/stories/typography/Typography.stories.ts new file mode 100644 index 000000000..bcb673be9 --- /dev/null +++ b/mods/webui/src/stories/typography/Typography.stories.ts @@ -0,0 +1,164 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Meta, StoryObj } from "@storybook/react"; +import { Typography } from "./Typography"; + +const meta = { + title: "Core Components/Icons, Badges, and Labels/Typography", + component: Typography, + argTypes: {}, + parameters: { + layout: "centered" + }, + tags: ["autodocs"] +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Body/Large. + */ +export const BodyLarge: Story = { + args: { + variant: "body-large", + children: "Body/Large" + } +}; + +/** + * Body/Medium. + */ +export const BodyMedium: Story = { + args: { + variant: "body-medium", + children: "Body/Medium" + } +}; + +/** + * Body/Micro. + */ +export const BodyMicro: Story = { + args: { + variant: "body-micro", + children: "Body/Micro" + } +}; + +/** + * Body/Small. + */ +export const BodySmall: Story = { + args: { + variant: "body-small", + children: "Body/Small" + } +}; + +/** + * Body/Small Underline. + */ +export const BodySmallUnderline: Story = { + args: { + variant: "body-small-underline", + children: "Body/Small Underline" + } +}; + +/** + * Drawer Label. + */ +export const DrawerLabel: Story = { + args: { + variant: "drawer-label", + children: "Drawer Label" + } +}; + +/** + * Drawer Title. + */ +export const DrawerTitle: Story = { + args: { + variant: "drawer-title", + children: "Drawer Title" + } +}; + +/** + * Heading/Large. + */ +export const HeadingLarge: Story = { + args: { + variant: "heading-large", + children: "Heading/Large" + } +}; + +/** + * Heading/Medium. + */ +export const HeadingMedium: Story = { + args: { + variant: "heading-medium", + children: "Heading/Medium" + } +}; + +/** + * Heading/Small. + */ +export const HeadingSmall: Story = { + args: { + variant: "heading-small", + children: "Heading/Small" + } +}; + +/** + * Mono/Medium. + */ +export const MonoMedium: Story = { + args: { + variant: "mono-medium", + children: "Mono/Medium" + } +}; + +/** + * Mono/Medium Underline. + */ +export const MonoMediumUnderline: Story = { + args: { + variant: "mono-medium-underline", + children: "Mono/Medium Underline" + } +}; + +/** + * Mono/Small. + */ +export const MonoSmall: Story = { + args: { + variant: "mono-small", + children: "Mono/Small" + } +}; diff --git a/mods/webui/src/stories/typography/Typography.tsx b/mods/webui/src/stories/typography/Typography.tsx new file mode 100644 index 000000000..336ff6799 --- /dev/null +++ b/mods/webui/src/stories/typography/Typography.tsx @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + Typography as MuiTypography, + TypographyPropsVariantOverrides +} from "@mui/material"; +import { Variant } from "@mui/material/styles/createTypography"; +import { OverridableStringUnion } from "@mui/types"; +import { TypographyProps } from "./types"; +import { variantMapping } from "./variantMapping"; + +function Typography(props: TypographyProps) { + const { variant = "body-medium", children } = props; + + const { muiVariant, style } = variantMapping[variant]; + + return ( + + } + style={style} + > + {children} + + ); +} + +export { Typography }; diff --git a/mods/webui/src/stories/typography/types.ts b/mods/webui/src/stories/typography/types.ts new file mode 100644 index 000000000..9fd425162 --- /dev/null +++ b/mods/webui/src/stories/typography/types.ts @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type TypographyVariant = + | "heading-large" + | "heading-medium" + | "heading-small" + | "body-large" + | "body-medium" + | "body-small" + | "body-small-underline" + | "body-micro" + | "mono-medium" + | "mono-medium-underline" + | "mono-small" + | "drawer-title" + | "drawer-label"; + +type TypographyProps = { + variant?: TypographyVariant; + children: string; +}; + +export type { TypographyProps, TypographyVariant }; diff --git a/mods/webui/src/stories/typography/variantMapping.ts b/mods/webui/src/stories/typography/variantMapping.ts new file mode 100644 index 000000000..9d8730a2c --- /dev/null +++ b/mods/webui/src/stories/typography/variantMapping.ts @@ -0,0 +1,186 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { TypographyVariant } from "./types"; + +const variantMapping: Record< + TypographyVariant, + { muiVariant: string; style?: React.CSSProperties } +> = { + "heading-large": { + muiVariant: "h2", + style: { + fontFamily: "Poppins", + fontWeight: 600, + fontStyle: "normal", + fontSize: "24px", + fontFeatureSettings: "'liga' off, 'clig' off", + letterSpacing: "0.5px" + } + }, + "heading-medium": { + muiVariant: "h3", + style: { + fontFamily: "Poppins", + fontWeight: 600, + fontStyle: "normal", + fontSize: "21px", + fontFeatureSettings: "'liga' off, 'clig' off", + letterSpacing: "0.5px", + lineHeight: "21px" + } + }, + "heading-small": { + muiVariant: "h4", + style: { + fontFamily: "Poppins", + fontWeight: 500, + fontStyle: "normal", + fontSize: "18px", + fontFeatureSettings: "'liga' off, 'clig' off", + letterSpacing: "0.5px" + } + }, + "body-large": { + muiVariant: "body1", + style: { + fontFamily: "Poppins", + fontWeight: 400, + fontStyle: "normal", + fontSize: "16px", + fontFeatureSettings: "'liga' off, 'clig' off", + letterSpacing: "0.16px", + lineHeight: "21px" + } + }, + "body-medium": { + muiVariant: "body2", + style: { + fontFamily: "Poppins", + fontWeight: 500, + fontStyle: "normal", + fontSize: "14px", + letterSpacing: "0.14px", + lineHeight: "22px" + } + }, + "body-small": { + muiVariant: "body2", + style: { + fontFamily: "Poppins", + fontWeight: 400, + fontStyle: "normal", + fontSize: "12px", + letterSpacing: "0.12px", + lineHeight: "normal" + } + }, + "body-small-underline": { + muiVariant: "body2", + style: { + fontFamily: "Poppins", + fontWeight: 400, + fontStyle: "normal", + fontSize: "12px", + textDecoration: "underline", + textDecorationStyle: "solid", + textDecorationSkipInk: "none", + textDecorationThickness: "auto", + textUnderlineOffset: "auto", + textUnderlinePosition: "from-font" + } + }, + "body-micro": { + muiVariant: "caption", + style: { + fontFamily: "Poppins", + fontWeight: 500, + fontStyle: "normal", + fontSize: "10px", + lineHeight: "normal" + } + }, + "mono-medium": { + muiVariant: "body1", + style: { + fontFamily: "Roboto Mono", + fontSize: "11px", + fontWeight: 500, + fontStyle: "normal", + fontFeatureSettings: "'liga' off, 'clig' off", + lineHeight: "21px", + letterSpacing: "1.32px", + textTransform: "uppercase" + } + }, + "mono-medium-underline": { + muiVariant: "body1", + style: { + fontFamily: "Roboto Mono", + fontSize: "11px", + fontWeight: 500, + fontStyle: "normal", + lineHeight: "21px", + letterSpacing: "1.32px", + textDecoration: "underline", + textDecorationStyle: "solid", + textDecorationSkipInk: "none", + textDecorationThickness: "auto", + textUnderlineOffset: "auto", + textUnderlinePosition: "from-font", + textTransform: "uppercase" + } + }, + "mono-small": { + muiVariant: "body2", + style: { + fontFamily: "Roboto Mono", + fontSize: "10px", + fontWeight: 500, + fontStyle: "normal", + fontFeatureSettings: "'liga' off, 'clig' off", + lineHeight: "21px", + letterSpacing: "0.5px", + textTransform: "uppercase" + } + }, + "drawer-title": { + muiVariant: "subtitle1", + style: { + fontFamily: "Poppins", + fontSize: "14px", + fontWeight: 600, + fontStyle: "normal", + lineHeight: "20px", + letterSpacing: "0.1px" + } + }, + "drawer-label": { + muiVariant: "body2", + style: { + fontFamily: "Poppins", + fontSize: "11px", + fontWeight: 500, + fontStyle: "normal", + lineHeight: "16px", + letterSpacing: "0.1px" + } + } +}; + +export { variantMapping }; diff --git a/mods/webui/src/stories/versionlabel/VersionLabel.stories.ts b/mods/webui/src/stories/versionlabel/VersionLabel.stories.ts new file mode 100644 index 000000000..68ddb8bc9 --- /dev/null +++ b/mods/webui/src/stories/versionlabel/VersionLabel.stories.ts @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { VersionLabel } from "./VersionLabel"; + +/** + * This story is for the regular Button component based on Material UI. + * It has a contained variant and full width with optional start and end icons. + */ +const meta = { + title: "Core Components/Icons, Badges, and Labels/VersionLabel", + component: VersionLabel, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=607-3145" + } + }, + tags: ["autodocs"], + argTypes: { + children: { + name: "Text", + description: "The text to display" + } + } +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +/** + * Example of a VersionLabel with a body large variant. + */ +export const VersionLabelExample: Story = { + args: { + children: "© 2024, Fonoster. v0.9.0" + } +}; diff --git a/mods/webui/src/stories/versionlabel/VersionLabel.tsx b/mods/webui/src/stories/versionlabel/VersionLabel.tsx new file mode 100644 index 000000000..47546a507 --- /dev/null +++ b/mods/webui/src/stories/versionlabel/VersionLabel.tsx @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Typography } from "@mui/material"; +import { useTheme } from "@mui/material/styles"; + +export const VersionLabel = ({ children }: { children: string }) => { + const theme = useTheme(); + + return ( + + {children} + + ); +}; diff --git a/mods/webui/src/stories/workspace/WorkspaceCard.stories.tsx b/mods/webui/src/stories/workspace/WorkspaceCard.stories.tsx new file mode 100644 index 000000000..97493735b --- /dev/null +++ b/mods/webui/src/stories/workspace/WorkspaceCard.stories.tsx @@ -0,0 +1,139 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Meta, StoryObj } from "@storybook/react"; +import { WorkspaceCard } from "./WorkspaceCard"; +import { fn } from "@storybook/test"; + +/** + * This story is for the WorkspaceCard component based on Material UI. + * It supports both regular and empty variants and can be disabled. + */ +const meta = { + title: "Core Components/Cards/WorkspaceCard", + component: WorkspaceCard, + parameters: { + layout: "centered", + design: { + type: "figma", + url: "https://www.figma.com/design/OsZlne0RvIgoFlFKF7hnAU/Shared-Component-Library?node-id=8-8505&p=f&t=NCJIzjsjMFiDAc1s-0" + } + }, + tags: ["autodocs"], + args: { onClick: fn() }, + argTypes: { + onClick: { + name: "On Click", + description: "Function to execute on click" + }, + onSettingsClick: { + name: "On Settings Click", + description: "Function to execute on settings click" + }, + workspaceRef: { + name: "Workspace Ref", + description: "The ref of the workspace card", + control: "text", + defaultValue: { summary: "workspaceRef" } + }, + region: { + name: "Region", + description: "The region label of the card", + control: "text", + defaultValue: { summary: "Region" } + }, + description: { + name: "Description", + description: "The description of the workspace", + control: "text", + defaultValue: { summary: "Workspace description" } + }, + date: { + name: "Date", + description: "The date associated with the workspace", + control: "text", + defaultValue: { summary: "4/14/24" } + }, + variant: { + name: "Variant", + description: "The variant to use", + options: ["regular", "empty"], + control: "radio", + defaultValue: { summary: "regular" } + }, + disabled: { + name: "Disabled", + description: "If true, the card will be disabled", + control: "boolean", + defaultValue: { summary: false } + } + } +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +/** + * Example of a regular WorkspaceCard with region, description, and date + */ +export const RegularCard: Story = { + args: { + region: "Region", + description: "Demo Workspace With Wrapping Title.", + date: "4/14/24", + variant: "regular", + disabled: false, + onSettingsClick: fn(), + onClick: fn() + } +}; + +/** + * Example of a regular WorkspaceCard that is disabled + */ +export const DisabledCard: Story = { + args: { + region: "Region", + description: "Demo Workspace With Wrapping Title.", + date: "4/14/24", + variant: "regular", + disabled: true + } +}; + +/** + * Example of an empty WorkspaceCard + */ +export const EmptyCard: Story = { + args: { + variant: "empty", + disabled: false, + onClick: fn() + } +}; + +/** + * Example of an empty WorkspaceCard that is disabled + */ +export const DisabledEmptyCard: Story = { + args: { + variant: "empty", + disabled: true + } +}; diff --git a/mods/webui/src/stories/workspace/WorkspaceCard.styles.ts b/mods/webui/src/stories/workspace/WorkspaceCard.styles.ts new file mode 100644 index 000000000..f0fe59cee --- /dev/null +++ b/mods/webui/src/stories/workspace/WorkspaceCard.styles.ts @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { styled } from "@mui/material/styles"; +import Card from "@mui/material/Card"; +import Typography from "@mui/material/Typography"; + +export const StyledCard = styled(Card)<{ + disabled: boolean; + workspaceVariant?: string; +}>(({ disabled, workspaceVariant }) => ({ + height: "325px", + backgroundColor: + workspaceVariant === "regular" ? "rgba(244, 244, 244, 1)" : "#ffffff", + cursor: disabled ? "not-allowed" : "pointer", + borderRadius: "10px", + border: disabled + ? "1px solid rgba(232, 232, 232, 1)" + : "1px solid rgba(57, 225, 158, 1)", + padding: "30px 30px 16px 30px" +})); + +export const StyledCardContentContainer = styled("div")(() => ({ + display: "flex", + flexDirection: "column", + height: "100%" +})); + +export const StyledNewWorkSpaceDescription = styled(Typography)<{ + disabled: boolean; +}>(({ disabled }) => ({ + fontFamily: "Poppins", + fontSize: "21px", + fontWeight: 600, + lineHeight: "31.5px", + letterSpacing: "0.5px", + textAlign: "center", + textUnderlinePosition: "from-font", + textDecorationSkipInk: "none", + color: disabled ? "rgba(194, 194, 194, 1)" : "rgba(0, 135, 81, 1)" +})); + +export const StyledAddIconContainer = styled("div")<{ + disabled: boolean; +}>(({ disabled }) => ({ + color: disabled ? "rgba(194, 194, 194, 1)" : "rgba(0, 135, 81, 1)", + "& svg": { + width: "40px", + height: "40px" + } +})); + +export const StyledDescription = styled(Typography)(() => ({ + fontFamily: "Poppins", + fontSize: "21px", + fontWeight: 600, + lineHeight: "31.5px", + letterSpacing: "0.5px", + textAlign: "left", + textUnderlinePosition: "from-font", + textDecorationSkipInk: "none", + color: "#333333" +})); + +export const StyledBottomContainer = styled("div")(() => ({ + display: "flex", + alignItems: "center", + justifyContent: "space-between", + marginTop: "24px" +})); + +export const StyledDateContainer = styled("div")(() => ({ + display: "flex", + alignItems: "center", + gap: "7.5px" +})); + +export const StyledDate = styled(Typography)(() => ({ + fontFamily: "Roboto Mono", + color: "rgba(85, 85, 85, 1)", + fontSize: "10px", + fontWeight: 700, + lineHeight: "21px", + letterSpacing: "0.5px", + textAlign: "left", + textUnderlinePosition: "from-font", + textDecorationSkipInk: "none" +})); + +export const StyledIcon = styled("div")(() => ({ + color: "rgba(51, 51, 51, 1)", + display: "flex", + alignItems: "center", + "& svg": { + width: "16px", + height: "16px" + } +})); diff --git a/mods/webui/src/stories/workspace/WorkspaceCard.tsx b/mods/webui/src/stories/workspace/WorkspaceCard.tsx new file mode 100644 index 000000000..40da366c1 --- /dev/null +++ b/mods/webui/src/stories/workspace/WorkspaceCard.tsx @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from "react"; +import { WorkspaceCardProps } from "./types"; +import { + StyledCard, + StyledCardContentContainer, + StyledNewWorkSpaceDescription, + StyledDescription, + StyledDateContainer, + StyledBottomContainer, + StyledDate, + StyledIcon, + StyledAddIconContainer +} from "./WorkspaceCard.styles"; +import AddIcon from "@mui/icons-material/Add"; +import SettingsOutlinedIcon from "@mui/icons-material/SettingsOutlined"; +import CalendarTodayOutlinedIcon from "@mui/icons-material/CalendarTodayOutlined"; +import { RegionLabel } from "../regionlabel/RegionLabel"; +import { CardContent } from "@mui/material"; + +export const WorkspaceCard: React.FC = ({ + onClick, + region, + description, + date, + variant, + disabled = false, + workspaceRef, + onSettingsClick +}) => { + if (variant === "empty") { + return ( + + + + + + + + New Workspace + + + + + ); + } + + return ( + + + + {region && } + {description && {description}} + + + + + + {date && {date}} + + + + + + + + + ); +}; diff --git a/mods/webui/src/stories/workspace/types.ts b/mods/webui/src/stories/workspace/types.ts new file mode 100644 index 000000000..bb7126dad --- /dev/null +++ b/mods/webui/src/stories/workspace/types.ts @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +type WorkspaceCardProps = { + onClick?: () => void; + region?: string; + description?: string; + date?: string; + variant: "regular" | "empty"; + disabled: boolean; + workspaceRef?: React.RefObject; + onSettingsClick?: () => void; +}; + +export type { WorkspaceCardProps }; diff --git a/mods/webui/src/theme.ts b/mods/webui/src/theme.ts new file mode 100644 index 000000000..bcef986be --- /dev/null +++ b/mods/webui/src/theme.ts @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createTheme } from "@mui/material/styles"; + +const fnLight = createTheme({ + palette: { + primary: { + "50": "#FFFFFF", + "100": "#E6FFF5", + "200": "#CCEFE1", + "500": "#39E19E", + "700": "#008751", + "800": "#053204", + "900": "#011900" + }, + secondary: { + "50": "#F4F4F4", + "100": "#E8E8E8", + "200": "#C2C2C2", + "500": "#8D8D8D", + "700": "#555555", + "800": "#333333", + "900": "#252525", + main: "#C2C2C2" + }, + warning: { + "50": "#FFFFFF", + "100": "#FFF4F0", + "200": "#F1DED7", + "500": "#FF9965", + "700": "#C46C3F", + "800": "#612E13", + "900": "#27150C" + }, + text: { + primary: "#555" + } + }, + components: { + MuiButton: { + styleOverrides: { + root: { + borderRadius: 40 + } + } + }, + MuiButtonBase: { + defaultProps: { + disableRipple: true + }, + styleOverrides: { + root: { + "& .MuiButton-endIcon": { + "& > *:first-child": { + fontSize: "16px", + marginTop: "2px" + } + }, + "& .MuiButton-startIcon": { + "& > *:first-child": { + fontSize: "16px", + marginTop: "2px" + } + } + } + } + } + } +}); + +export { fnLight }; diff --git a/mods/webui/src/vite-env.d.ts b/mods/webui/src/vite-env.d.ts new file mode 100644 index 000000000..ed6049b44 --- /dev/null +++ b/mods/webui/src/vite-env.d.ts @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// / diff --git a/mods/webui/tsconfig.json b/mods/webui/tsconfig.json new file mode 100644 index 000000000..d7fbb5976 --- /dev/null +++ b/mods/webui/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + "moduleResolution": "Bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + }, + "include": ["src"] +} diff --git a/mods/webui/vite.config.ts b/mods/webui/vite.config.ts new file mode 100644 index 000000000..f1de84074 --- /dev/null +++ b/mods/webui/vite.config.ts @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import react from "@vitejs/plugin-react"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [react()] +}); diff --git a/operator/cloud-config.txt b/operator/cloud-config.txt deleted file mode 100644 index 8548de7e5..000000000 --- a/operator/cloud-config.txt +++ /dev/null @@ -1,49 +0,0 @@ -#cloud-config -ssh_authorized_keys: -## Note: Replace with your own public key - - ssh-rsa ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKcZlvWQphbnVsau7V4Va1itaPvekkTxZGriJO1A9aGzKLrmX3vOsETz96fVS5OphP7PNbGVppjEUSeSqAeOjxJ84+Uko0GCDH2ypZncipF13DJnNgyv9V+WqfA7SHJHMBVxChmY5A/xzgDl94O6Sozb/wd5dzCqCpW0htx4DUcYluJWTsLMmmP2Xw9KeE9HvF8Z3niMjiCgkBzYA0LdldXrHXS8yJnIwIrGslDbpIZG7c7UJSWHhJzKX5v73VLk1qITFqkbYMVKJ3JYOXla5T5aR3brh8zn+i0f84C9vIveHq90vGASsyjzgpjpKpcN/g8K791DeRjHK47PUE2REp pedrosanders@Pedros-MBP - -write_files: - - path: /opt/fonoster/user_opts - content: | - # Uncomment and replace with the IP of your Docker Host, - # unless you are running on a cloud environment like - # DO or AWS. - #DOCKER_HOST_IP=192.168.1.149 - - # Uncomment if you want automatic TLS support. You must also set the - # environment variable DOMAIN - #ENABLE_TLS=true - - # This is required for TLS support. The DNS entry must point to - # the public IP of your Docker Host - #DOMAIN=api.yourdomain.com - - # We recommend using a working email - #LETSENCRYPT_EMAIL=admin@yourdomain.com - -runcmd: - - | - cd /opt - export $(grep -v '^#' /opt/fonoster/user_opts | xargs) - docker run -i --rm \ - -e DOCKER_HOST_IP=$DOCKER_HOST_IP \ - -e DOMAIN=$DOMAIN \ - -e ENABLE_TLS=$ENABLE_TLS \ - -e HTTP_PORT=$HTTP_PORT \ - -e HTTPS_PORT=$HTTPS_PORT \ - -e LETSENCRYPT_EMAIL=$LETSENCRYPT_EMAIL \ - -e GLOBAL_SIP_DOMAIN=$GLOBAL_SIP_DOMAIN \ - -e CONFIG_PATH=$(pwd)/fonoster/config \ - --volume /var/run/docker.sock:/var/run/docker.sock \ - --volume $(pwd)/fonoster:/out:rw \ - --entrypoint="/install.sh" \ - fonoster/fonoster:$FONOSTER_VERSION - rm /opt/fonoster/user_opts - -package_update: true - -packages: - - docker.io - -final_message: "Cloud init is done!" diff --git a/operator/compose/00_config.yml b/operator/compose/00_config.yml deleted file mode 100644 index 8fb253a50..000000000 --- a/operator/compose/00_config.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: '3' - -networks: - fonoster: - -volumes: - esdata1: - external: true - data1-1: - external: true diff --git a/operator/compose/01_api.yml b/operator/compose/01_api.yml deleted file mode 100644 index 11916f188..000000000 --- a/operator/compose/01_api.yml +++ /dev/null @@ -1,190 +0,0 @@ -# API Services - -version: '3' - -services: - - apiserver: - image: fonoster/traefik:${COMPOSE_PROJECT_VERSION} - command: - # - --log.level=DEBUG - - --api.insecure=true - - --providers.docker=true - - --providers.docker.exposedbydefault=false - - --entrypoints.internal.address=:${HTTP_PORT} - - --entrypoints.websecure.address=:${HTTPS_PORT} - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - networks: - fonoster: - aliases: - - ${AS_HOST} - - auth: - image: fonoster/auth:${COMPOSE_PROJECT_VERSION} - extends: - file: api-common.yml - service: common - labels: - - traefik.enable=true - - traefik.http.routers.auth.entrypoints=internal,websecure - - traefik.http.routers.auth.rule=PathPrefix(`/fonoster.auth.v1beta1.Auth`) - - traefik.http.services.auth.loadbalancer.server.scheme=h2c - volumes: - - ${CONFIG}/rbac.json:/home/fonoster/rbac.json - - limiter: - image: fonoster/limiter:${COMPOSE_PROJECT_VERSION} - extends: - file: api-common.yml - service: common - environment: - - SIPPROXY_HOST - - SIPPROXY_API_PORT - - SIPPROXY_API_USERNAME - - SIPPROXY_API_SECRET - labels: - - traefik.enable=true - - traefik.http.routers.limiter.entrypoints=internal,websecure - - traefik.http.routers.limiter.rule=PathPrefix(`/fonoster.auth.v1beta1.Limiter`) - - traefik.http.services.limiter.loadbalancer.server.scheme=h2c - volumes: - - ${CONFIG}/limiters.json:/home/fonoster/limiters.json - - monitor: - image: fonoster/monitor:${COMPOSE_PROJECT_VERSION} - extends: - file: api-common.yml - service: common - labels: - - traefik.enable=true - - traefik.http.routers.monitor.entrypoints=internal,websecure - - traefik.http.routers.monitor.rule=PathPrefix(`/fonoster.monitor.v1beta1`) - - traefik.http.services.monitor.loadbalancer.server.scheme=h2c - - users: - image: fonoster/users:${COMPOSE_PROJECT_VERSION} - extends: - file: api-common.yml - service: common - labels: - - traefik.enable=true - - traefik.http.routers.users.entrypoints=internal,websecure - - traefik.http.routers.users.rule=PathPrefix(`/fonoster.users.v1beta1`) - - traefik.http.services.users.loadbalancer.server.scheme=h2c - - projects: - image: fonoster/projects:${COMPOSE_PROJECT_VERSION} - extends: - file: api-common.yml - service: common - labels: - - traefik.enable=true - - traefik.http.routers.projects.entrypoints=internal,websecure - - traefik.http.routers.projects.rule=PathPrefix(`/fonoster.projects.v1beta1`) - - traefik.http.services.projects.loadbalancer.server.scheme=h2c - - agents: - image: fonoster/agents:${COMPOSE_PROJECT_VERSION} - extends: - file: api-common.yml - service: common - environment: - - SIPPROXY_HOST - - SIPPROXY_API_PORT - - SIPPROXY_API_USERNAME - - SIPPROXY_API_SECRET - labels: - - traefik.enable=true - - traefik.http.routers.agents.entrypoints=internal,websecure - - traefik.http.routers.agents.rule=PathPrefix(`/fonoster.agents.v1beta1`) - - traefik.http.services.agents.loadbalancer.server.scheme=h2c - - domains: - image: fonoster/domains:${COMPOSE_PROJECT_VERSION} - extends: - file: api-common.yml - service: common - environment: - - GLOBAL_SIP_DOMAIN - - SIPPROXY_HOST - - SIPPROXY_API_PORT - - SIPPROXY_API_USERNAME - - SIPPROXY_API_SECRET - labels: - - traefik.enable=true - - traefik.http.routers.domains.entrypoints=internal,websecure - - traefik.http.routers.domains.rule=PathPrefix(`/fonoster.domains.v1beta1`) - - traefik.http.services.domains.loadbalancer.server.scheme=h2c - - numbers: - image: fonoster/numbers:${COMPOSE_PROJECT_VERSION} - extends: - file: api-common.yml - service: common - environment: - - VOICE_URL - - MS_ENDPOINT - - SIPPROXY_HOST - - SIPPROXY_API_PORT - - SIPPROXY_API_USERNAME - - SIPPROXY_API_SECRET - labels: - - traefik.enable=true - - traefik.http.routers.numbers.entrypoints=internal,websecure - - traefik.http.routers.numbers.rule=PathPrefix(`/fonoster.numbers.v1beta1`) - - traefik.http.services.numbers.loadbalancer.server.scheme=h2c - - providers: - image: fonoster/providers:${COMPOSE_PROJECT_VERSION} - extends: - file: api-common.yml - service: common - environment: - - SIPPROXY_HOST - - SIPPROXY_API_PORT - - SIPPROXY_API_USERNAME - - SIPPROXY_API_SECRET - labels: - - traefik.enable=true - - traefik.http.routers.providers.entrypoints=internal,websecure - - traefik.http.routers.providers.rule=PathPrefix(`/fonoster.providers.v1beta1`) - - traefik.http.services.providers.loadbalancer.server.scheme=h2c - - storage: - image: fonoster/storage:${COMPOSE_PROJECT_VERSION} - extends: - file: api-common.yml - service: common - environment: - - FS_HOST - - FS_PORT - - FS_USERNAME - - FS_SECRET - labels: - - traefik.enable=true - - traefik.http.routers.storage.entrypoints=internal,websecure - - traefik.http.routers.storage.rule=PathPrefix(`/fonoster.storage.v1beta1`) - - traefik.http.services.storage.loadbalancer.server.scheme=h2c - - callmanager: - image: fonoster/callmanager:${COMPOSE_PROJECT_VERSION} - extends: - file: api-common.yml - service: common - environment: - - MS_ARI_INTERNAL_URL - - MS_TRUNK - - MS_CONTEXT - - MS_EXTENSION - - MS_ARI_USERNAME - - MS_ARI_SECRET - - SIPPROXY_HOST - - SIPPROXY_API_PORT - - SIPPROXY_API_USERNAME - - SIPPROXY_API_SECRET - labels: - - traefik.enable=true - - traefik.http.routers.callmanager.entrypoints=internal,websecure - - traefik.http.routers.callmanager.rule=PathPrefix(`/fonoster.callmanager.v1beta1`) - - traefik.http.services.callmanager.loadbalancer.server.scheme=h2c diff --git a/operator/compose/02_sipnet.yml b/operator/compose/02_sipnet.yml deleted file mode 100644 index a86b107a3..000000000 --- a/operator/compose/02_sipnet.yml +++ /dev/null @@ -1,99 +0,0 @@ -version: '3' - -services: - - sipproxy: - image: fonoster/routr:${COMPOSE_PROJECT_VERSION} - restart: ${RESTART_POLICY} - environment: - EXTERN_ADDR: ${DOCKER_HOST_ADDRESS} - DATA_SOURCE_PROVIDER: redis_data_provider - INITIAL_API_SECRET: ${SIPPROXY_API_SECRET} - DATA_SOURCE_PARAMETERS: host=${DS_HOST},port=${DS_PORT},secret=${DS_SECRET} - BIND_ADDR: 0.0.0.0 - RECORD_ROUTE: "true" - REGISTRAR_INTF: Internal - EX_RTP_ENGINE_ENABLED: "true" - EX_RTP_ENGINE_PROTO: http - EX_RTP_ENGINE_HOST: ${RTPE_HOST} - EX_RTP_ENGINE_PORT: ${RTPE_PORT} - # Setting this to true is breaking the routing workflow in Routr - EX_CONVERT_TEL_TO_E164: "true" - JAVA_OPTS: -XX:NewRatio=2 -Xmx250M - ports: - - ${SIPPROXY_SIP_PORTS}:${SIPPROXY_SIP_PORTS} - - ${SIPPROXY_SIP_PORT_UDP}:${SIPPROXY_SIP_PORT_UDP}/udp - logging: - options: - tag: ${LOG_OPT_TAG_PREFIX}.${COMPOSE_PROJECT_NAME}.sipproxy - networks: - fonoster: - aliases: - - ${SIPPROXY_HOST} - volumes: - - ${CONFIG}/log4j2.yml:/opt/routr/config/log4j2.yml:ro - - # Before you start this in production you should limit the traffic to port 8080 - # to only internal to avoid denial of service on RTPEngine. - rtpengine: - image: fonoster/rtpengine:${COMPOSE_PROJECT_VERSION} - restart: ${RESTART_POLICY} - labels: - - traefik.enable=true - - traefik.http.routers.rtpengine.entrypoints=internal,websecure - - traefik.http.routers.rtpengine.rule=PathPrefix(`/ng`) - - traefik.http.services.rtpengine.loadbalancer.server.port=8080 - # Network hostmode seems to only work in Linux systems - network_mode: host - environment: - # This will fail if network_mode != host - PUBLIC_IP: ${DOCKER_HOST_ADDRESS} - PORT_MIN: ${RTPE_RTP_PORT_START} - PORT_MAX: ${RTPE_RTP_PORT_END} - LOG_LEVEL: '6' - - mediaserver: - image: fonoster/mediaserver:${COMPOSE_PROJECT_VERSION} - restart: ${RESTART_POLICY} - labels: - - traefik.enable=true - - traefik.http.routers.mediaserver.entrypoints=internal,websecure - - traefik.http.routers.mediaserver.rule=PathPrefix(`/ari/playbacks`) || PathPrefix(`/ari/channels`) || PathPrefix(`/ari/events`) - - traefik.http.services.mediaserver.loadbalancer.server.port=8088 - - traefik.http.routers.mediaserver.middlewares=basic-auth@docker,session-auth@docker - - traefik.http.middlewares.session-auth.forwardauth.address=http://auth:3000/session_auth - - traefik.http.middlewares.basic-auth.headers.customrequestheaders.Authorization=Basic ${MS_ARI_AUTHORIZATION} - environment: - APISERVER_ENDPOINT: ${AS_HOST}:${HTTP_PORT} - ALLOW_INSECURE: ${AS_ALLOW_INSECURE} - ARI_EXTERNAL_URL: ${PUBLIC_URL} - ARI_INTERNAL_URL: ${MS_ARI_INTERNAL_URL} - ARI_USERNAME: ${MS_ARI_USERNAME} - ARI_SECRET: ${MS_ARI_SECRET} - EXTERN_ADDR: ${DOCKER_HOST_ADDRESS} - EXTERN_PORT: ${MS_SIP_PORT} - SIPPROXY_HOST: ${DOCKER_HOST_ADDRESS} - SIPPROXY_PORT: ${SIPPROXY_SIP_PORT} - SIPPROXY_USERNAME: ${SIPPROXY_USERNAME} - SIPPROXY_API_HOST: ${SIPPROXY_API_HOST} - SIPPROXY_API_USERNAME: ${SIPPROXY_API_USERNAME} - SIPPROXY_API_SECRET: ${SIPPROXY_API_SECRET} - SIPPROXY_SECRET: ${SIPPROXY_SECRET} - RTP_PORT_START: ${MS_RTP_PORT_START} - RTP_PORT_END: ${MS_RTP_PORT_END} - LOGS_FORMAT: ${LOGS_FORMAT} - LOGS_LEVEL: ${LOGS_LEVEL} - LOGS_TRANSPORT: ${LOGS_TRANSPORT} - LOG_OPT_TAG_PREFIX: ${LOG_OPT_TAG_PREFIX} - LOGS_DRIVER_HOST: ${LOGS_DRIVER_HOST} - LOGS_DRIVER_PORT: ${LOGS_DRIVER_PORT} - TRACING_ENDPOINT: ${TRACING_ENDPOINT} - volumes: - - data1-1:/home/fonoster - # TODO: Update image to add user fonoster - - ${CONFIG}/config:/root/.fonoster/config:ro - logging: - options: - tag: ${LOG_OPT_TAG_PREFIX}.${COMPOSE_PROJECT_NAME}.mediaserver - networks: - fonoster: diff --git a/operator/compose/api-common.yml b/operator/compose/api-common.yml deleted file mode 100644 index 7e740ba9c..000000000 --- a/operator/compose/api-common.yml +++ /dev/null @@ -1,36 +0,0 @@ -version: '3' - -services: - - common: - restart: ${RESTART_POLICY} - expose: - - 50052 - environment: - APISERVER_ENDPOINT: ${AS_HOST}:${HTTP_PORT} - ALLOW_INSECURE: ${AS_ALLOW_INSECURE} - DS_HOST: ${DS_HOST} - DS_PORT: ${DS_PORT} - DS_SECRET: ${DS_SECRET} - AUTH_ISS: ${AUTH_ISS} - TRACING_ENDPOINT: ${TRACING_ENDPOINT} - AUTH_ACCESS_WHITELIST: ${AUTH_ACCESS_WHITELIST} - LOG_OPT_TAG_PREFIX: ${LOG_OPT_TAG_PREFIX} - LOGS_FORMAT: ${LOGS_FORMAT} - LOGS_LEVEL: ${LOGS_LEVEL} - LOGS_TRANSPORT: ${LOGS_TRANSPORT} - LOGS_DRIVER_HOST: ${LOGS_DRIVER_HOST} - LOGS_DRIVER_PORT: ${LOGS_DRIVER_PORT} - LOGS_AGGREGRATOR_HOST: ${LOGS_AGGREGRATOR_HOST} - LOGS_AGGREGRATOR_PORT: ${LOGS_AGGREGRATOR_PORT} - NODE_ENV: ${NODE_ENV} - NODE_OPTIONS: ${NODE_OPTIONS} - networks: - fonoster: - volumes: - - ${CONFIG}/config:/home/fonoster/.fonoster/config:ro - - ${CONFIG}/private_key:/home/fonoster/.fonoster/private_key:ro - - ${CONFIG}/service_envs.json:/home/fonoster/service_envs.json:ro - logging: - options: - tag: ${LOG_OPT_TAG_PREFIX}.${COMPOSE_PROJECT_NAME}.api diff --git a/operator/compose/basic-network.sh b/operator/compose/basic-network.sh deleted file mode 100755 index 36ae4dd30..000000000 --- a/operator/compose/basic-network.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash - -function error() { - echo -e "🔥 [ERROR]: $1" - echo " " - exit 1 -} - -function basic_network() { - local COMPOSE_CMD COMPOSE_FILES SERVICES DEFAULT_SERVICES DEFAULT_IFS - - DEFAULT_IFS=$IFS - - DEFAULT_SERVICES=( - "fs" - "datasource" - ) - - SERVICES=( - "logging" - "health" - "00_config" - "01_api" - "02_sipnet" - ) - - echo -e "Checking basic network... 🌐 \n" - - IFS=, - if [ -n "$EXTRA_SERVICES" ]; then - echo -e "Getting extra services... 🔍 \n" - - for service in $EXTRA_SERVICES; do - [[ $service = *.yml ]] && error "Service $service must not have .yml extension" - [[ $service = extras/* ]] && error "Service $service must not contain 'extras/'" - - SERVICES+=("extras/$service") - done - fi - - IFS=$DEFAULT_IFS - - echo -e "Checking and adding default services... 🔍 \n" - for service in "${DEFAULT_SERVICES[@]}"; do - EXTRA_SERVICE="extras/${service}" - - if [[ ! "${SERVICES[*]}" =~ $EXTRA_SERVICE ]]; then - - # Skip datasource service if DS_HOST and DS_SECRET env vars are set - [[ $EXTRA_SERVICE = "extras/datasource" && -n $DS_HOST && -n $DS_SECRET ]] && continue - - SERVICES+=("$EXTRA_SERVICE") - fi - done - - for service in "${SERVICES[@]}"; do - local SERVICE_PATH="${service}.yml" - - if [ -f "$SERVICE_PATH" ]; then - COMPOSE_FILES+="-f $SERVICE_PATH " - else - echo -e "Service $SERVICE_PATH not found. This service will not be started. \n" - fi - done - - COMPOSE_CMD="docker-compose --env-file .env ${COMPOSE_FILES[*]}" - - case $1 in - start) - eval "$COMPOSE_CMD -f letsencrypt.yml up -d --remove-orphans" - ;; - start-unsecure) - eval "$COMPOSE_CMD -f noencrypt.yml up -d --remove-orphans" - ;; - stop | down) - eval "$COMPOSE_CMD -f noencrypt.yml down" - ;; - *) - echo -e "Usage: basic_network start|start-unsecure|stop \n" - ;; - esac -} - -basic_network "$@" diff --git a/operator/compose/dev.yml b/operator/compose/dev.yml deleted file mode 100644 index b09a994b2..000000000 --- a/operator/compose/dev.yml +++ /dev/null @@ -1,30 +0,0 @@ -# Warning: Including this file in your Fonoster deployment will -# open the ports to a number of private services. This is very -# unsecured. Only recommended for development. - -version: '3' - -services: - - logsdriver: - ports: - - ${LOGS_DRIVER_PORT}:${LOGS_DRIVER_PORT} - - ${LOGS_DRIVER_PORT}:${LOGS_DRIVER_PORT}/udp - logsaggregator: - ports: - - ${LOGS_AGGREGRATOR_PORT}:${LOGS_AGGREGRATOR_PORT} - - apiserver: - ports: - # Port for Traefik dashboard - - 8181:8080 - - ${HTTP_PORT}:${HTTP_PORT} - - sipproxy: - ports: - - ${SIPPROXY_API_PORT}:${SIPPROXY_API_PORT} - - mediaserver: - ports: - - 6060:6060 - - 8088:8088 diff --git a/operator/compose/env_example b/operator/compose/env_example deleted file mode 100644 index b86efd1a9..000000000 --- a/operator/compose/env_example +++ /dev/null @@ -1,186 +0,0 @@ -# shellcheck disable=SC2034 - -# Security -# -# Set these to strong secrets to avoid intruders from impersonating a service account -# The service(s) won't start unless these are specified -# Running ./gen-secrets.sh will update .env with strong passwords -# Reusing secrets IS NOT recommended. -# - -# Password for Asterisk ARI API -MS_ARI_SECRET= - -# Username and password base64 encoded for external access to ARI API -MS_ARI_AUTHORIZATION= - -# Password for Minio's clients connections -# Note that if you have a managed S3 server(recommended) -# you will have to set this manually -FS_SECRET= - -# Password for Routr SIP registrations -SIPPROXY_SECRET= - -# Password for Routr restful API -SIPPROXY_API_SECRET= - -# Password for connections to Redis -# Note that if you have a managed Redis server(recommended) -# you will have to set this manually -DS_SECRET= - -# -# General configuration -# - -# External IP or Domain for your Fonoster API (required) -# Before going on production you must replace this with the -# TLS protected URL -#PUBLIC_URL=http://api.example.com:51051 - -# Any new domain will be a subdomain under this global domain -GLOBAL_SIP_DOMAIN=fonoster.io - -# Exposed HTTP port -HTTP_PORT=51051 - -# Exposed HTTPS port (required) -HTTPS_PORT=443 - -# Directory where all configuration will be stored -CONFIG=/opt/fonoster/config - -# IP address of the Docker host (required) -#DOCKER_HOST_ADDRESS=192.168.1.1 - -# IP address of the RTPEngine server (required) -# Tipically it is same as the DOCKER_HOST_ADDRESS -#RTPE_HOST=192.168.1.1 - -# Domain for which to generate the certificate -LETSENCRYPT_DOMAIN= - -# E-Mail for receiving important account notifications (mandatory) -LETSENCRYPT_EMAIL= - -# Whitelisted services (comma separated) -AUTH_ACCESS_WHITELIST=/fonoster.auth.v1beta1.Auth/GetRole,/fonoster.users.v1beta1.Users/CreateUser,/fonoster.auth.v1beta1.Users/CreateUserCredentials - -# Issuer for JWT claims -AUTH_ISS=fonoster - -# Hostname for reverse proxy -AS_HOST=apiserver.fonoster - -# Allow non-tls connection (this only applies to internal communication) -AS_ALLOW_INSECURE=true - -# -# Media Server integration (Asterisk) -# -MS_ENDPOINT=sip:voice@default -MS_SIP_PORT=6060 -MS_RTP_PORT_START=20000 -MS_RTP_PORT_END=21000 -MS_TRUNK=routr -MS_CONTEXT=local-ctx -MS_EXTENSION=s -MS_ARI_USERNAME=ari -MS_ARI_INTERNAL_URL=http://mediaserver:8088 - -# -# Integration with media proxy (RTPEngine) -# (required) -# -RTPE_PORT=8080 -RTPE_RTP_PORT_START=30000 -RTPE_RTP_PORT_END=31000 - -# -# Integration with S3 server (Minio) -# We run an S3 server instance based on Minio to help you -# get started. However, we strongly recommend using a managed -# S3 service with your prefer cloud service provider -# -FS_HOST=fs.fonoster -FS_PORT=9000 -FS_USERNAME=minio - -# -# Database integration (with Redis) -# Redis at the moment is only used by the SIPProxy -# We run the database service by default to help you -# get started. However, we strongly recommend using a managed -# database. -# -DS_HOST=datasource.fonoster -DS_PORT=6379 - -# -# Integration with SIPProxy (Routr) -# -SIPPROXY_USERNAME=voice -SIPPROXY_API_HOST=sipproxy.fonoster -SIPPROXY_HOST=sipproxy.fonoster -SIPPROXY_API_PORT=4567 -SIPPROXY_API_USERNAME=admin -SIPPROXY_SIP_PORTS=5060-5063 -SIPPROXY_SIP_PORT_UDP=5060 - -# Single port for connection from Peers (Such as the Media Server) -SIPPROXY_SIP_PORT=5060 - -# -# Configuration to logging service (Based on Kibana) -# -LOGS_DRIVER_HOST=logsdriver.fonoster -LOGS_DRIVER_PORT=24224 -LOGS_AGGREGRATOR_HOST=logsaggregator.fonoster -LOGS_AGGREGRATOR_PORT=9200 -LOG_OPT_TAG_PREFIX=beta -LOGS_FORMAT=json -LOGS_LEVEL=info -LOGS_TRANSPORT=fluent - -# Tracing -TRACING_ENDPOINT=http://tracing:14268/api/traces - -# -# Integration with secrets server (Vault) -# -SECRETS_URL=http://secrets:8200 -SECRETS_POLICY=fonoster-policy -SECRETS_TOKEN= - -# -# Integration with Rox Connector -# -VOICE_URL=http://voice.fonoster:3000 -VOICE_HOST=voice.fonoster - -# -# Miscelaneous variables -# - -# Name of the overall project -COMPOSE_PROJECT_NAME=fonoster - -# Overall version for the project -# This variable will determine which docker -# image is downloaded for FN services -COMPOSE_PROJECT_VERSION=0.2.36 - -# Restart policy for containers -RESTART_POLICY=unless-stopped - -# Node environment variable -NODE_ENV=production -NODE_OPTIONS="--unhandled-rejections=throw" - -# Fonoster extra services (comma separated) -EXTRA_SERVICES=datasource,fs - -# Jaeger credentials -JAEGER_USERNAME=fonoster -JAEGER_PASSWORD_HASH=$apr1$VJx7cQNd$F1kwQsD5u7LAReunUNL310 \ No newline at end of file diff --git a/operator/compose/extras/apps.yml b/operator/compose/extras/apps.yml deleted file mode 100644 index 4ba84f4d6..000000000 --- a/operator/compose/extras/apps.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Extra API Service - -version: '3' - -networks: - fonoster: - -services: - - apps: - image: fonoster/apps:${COMPOSE_PROJECT_VERSION} - extends: - file: api-common.yml - service: common - labels: - - traefik.enable=true - - traefik.http.routers.apps.entrypoints=internal,websecure - - traefik.http.routers.apps.rule=PathPrefix(`/fonoster.apps.v1beta1`) - - traefik.http.services.apps.loadbalancer.server.scheme=h2c diff --git a/operator/compose/extras/datasource.dev.yml b/operator/compose/extras/datasource.dev.yml deleted file mode 100644 index ee953ab6a..000000000 --- a/operator/compose/extras/datasource.dev.yml +++ /dev/null @@ -1,10 +0,0 @@ -# Enables remote access to datasource(Redis) -# Recommended only for development - -version: '3' - -services: - - datasource: - ports: - - ${DS_PORT}:${DS_PORT} diff --git a/operator/compose/extras/datasource.yml b/operator/compose/extras/datasource.yml deleted file mode 100644 index 1304b5b2b..000000000 --- a/operator/compose/extras/datasource.yml +++ /dev/null @@ -1,32 +0,0 @@ -# Required dependencies - -version: '3' - -networks: - fonoster: - -volumes: - datasource: - external: true - -services: - - datasource: - image: fonoster/redis:${COMPOSE_PROJECT_VERSION} - restart: ${RESTART_POLICY} - command: ['redis-server', '/etc/redis/redis.conf' ] - healthcheck: - test: ['CMD', 'redis-cli','ping'] - interval: 30s - timeout: 10s - retries: 3 - logging: - options: - tag: ${LOG_OPT_TAG_PREFIX}.${COMPOSE_PROJECT_NAME}.datasource - networks: - fonoster: - aliases: - - ${DS_HOST} - volumes: - - ${CONFIG}/redis.conf:/etc/redis/redis.conf:ro - - datasource:/data \ No newline at end of file diff --git a/operator/compose/extras/fs.dev.yml b/operator/compose/extras/fs.dev.yml deleted file mode 100644 index b7a3d2a4e..000000000 --- a/operator/compose/extras/fs.dev.yml +++ /dev/null @@ -1,10 +0,0 @@ -# Enables remote access to FilesServer(Minio) -# Recommended only for development - -version: '3' - -services: - - fs: - ports: - - ${FS_PORT}:${FS_PORT} diff --git a/operator/compose/extras/fs.yml b/operator/compose/extras/fs.yml deleted file mode 100644 index e46e8bc86..000000000 --- a/operator/compose/extras/fs.yml +++ /dev/null @@ -1,34 +0,0 @@ -# Required dependencies - -version: '3' - -networks: - fonoster: - -volumes: - data1-1: - external: true - -services: - - fs: - image: fonoster/minio:${COMPOSE_PROJECT_VERSION} - restart: ${RESTART_POLICY} - command: minio server /fonoster - volumes: - - data1-1:/fonoster - environment: - MINIO_ACCESS_KEY: ${FS_USERNAME} - MINIO_SECRET_KEY: ${FS_SECRET} - healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] - interval: 30s - timeout: 20s - retries: 3 - logging: - options: - tag: ${LOG_OPT_TAG_PREFIX}.${COMPOSE_PROJECT_NAME}.fs - networks: - fonoster: - aliases: - - ${FS_HOST} diff --git a/operator/compose/extras/secrets.dev.yml b/operator/compose/extras/secrets.dev.yml deleted file mode 100644 index 08a47f1a5..000000000 --- a/operator/compose/extras/secrets.dev.yml +++ /dev/null @@ -1,10 +0,0 @@ -# Enables rest access to Secrets(Vault). -# Recommended only for development. - -version: '3' - -services: - - secrets: - ports: - - 8200:8200 \ No newline at end of file diff --git a/operator/compose/extras/secrets.init.yml b/operator/compose/extras/secrets.init.yml deleted file mode 100644 index d7d1145d0..000000000 --- a/operator/compose/extras/secrets.init.yml +++ /dev/null @@ -1,14 +0,0 @@ -# Vault Initialization script - -version: '3' - -networks: - fonoster: - -services: - - secrets_init: - image: fonoster/secrets:${COMPOSE_PROJECT_VERSION} - entrypoint: /bin/sh -c "init" - networks: - fonoster: diff --git a/operator/compose/extras/secrets.yml b/operator/compose/extras/secrets.yml deleted file mode 100644 index 8376c27a9..000000000 --- a/operator/compose/extras/secrets.yml +++ /dev/null @@ -1,37 +0,0 @@ -# Optional Secrets service (Vault) - -version: '3' - -networks: - fonoster: - -services: - - secrets: - image: fonoster/vault:${COMPOSE_PROJECT_VERSION} - restart: ${RESTART_POLICY} - entrypoint: vault server -config=/vault/config/vault.json - # ports: - # - "127.0.0.1:8200:8200" - volumes: - - ${CONFIG}/file:/vault/file:rw - - ${CONFIG}/vault.json:/vault/config/vault.json:ro - cap_add: - - IPC_LOCK - networks: - fonoster: - - secrets_api: - image: fonoster/secrets:${COMPOSE_PROJECT_VERSION} - environment: - VAULT_ADDR: ${SECRETS_URL} - VAULT_TOKEN: ${SECRETS_TOKEN} - SECRETS_POLICY: ${SECRETS_POLICY} - extends: - file: api-common.yml - service: common - labels: - - traefik.enable=true - - traefik.http.routers.secrets_api.entrypoints=internal,websecure - - traefik.http.routers.secrets_api.rule=PathPrefix(`/fonoster.secrets.v1beta1`) - - traefik.http.services.secrets_api.loadbalancer.server.scheme=h2c diff --git a/operator/compose/extras/tracing.yml b/operator/compose/extras/tracing.yml deleted file mode 100644 index 40c32940d..000000000 --- a/operator/compose/extras/tracing.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Optional Tracing monitor service (Jaeger) - -version: '3' - -networks: - fonoster: - -services: - jaeger: - image: jaegertracing/all-in-one:1.30.0 - ports: - - 14268:14268 - - 14250 - expose: - - 16686 - labels: - - traefik.enable=true - - traefik.http.routers.jaeger.entrypoints=internal,websecure - - traefik.http.routers.jaeger.rule=PathPrefix(`/search`, `/trace`, `/dependencies`, `/static`, `/api/services`, `/api/traces`, `/api/dependencies`) - - traefik.http.routers.jaeger.service=jaeger - - traefik.http.services.jaeger.loadbalancer.server.port=16686 - - traefik.http.middlewares.jaeger-auth.basicauth.users=${JAEGER_USERNAME}:${JAEGER_PASSWORD_HASH} - - traefik.http.middlewares.jaeger-chain.chain.middlewares=jaeger-auth - - traefik.http.routers.jaeger.middlewares=jaeger-chain - networks: - fonoster: \ No newline at end of file diff --git a/operator/compose/extras/voice.yml b/operator/compose/extras/voice.yml deleted file mode 100644 index e1c2a8b98..000000000 --- a/operator/compose/extras/voice.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: '3' - -networks: - fonoster: - -services: - voice: - restart: ${RESTART_POLICY} - image: fonoster/voice:${COMPOSE_PROJECT_VERSION} - command: ['rox'] - expose: - - 3000 - - 3001 - - 9090 - environment: - - DEFAULT_LANGUAGE_CODE - - OTL_EXPORTER_ZIPKIN_URL - - OTL_EXPORTER_JAEGER_URL - - OTL_EXPORTER_PROMETHEUS_PORT - - OTL_EXPORTER_GCP_ENABLED - - EVENTS_SERVER_ENABLED - - LOGS_FORMAT - - LOGS_LEVEL - - LOGS_TRANSPORT - - LOGS_DRIVER_HOST - - LOGS_DRIVER_PORT - networks: - fonoster: - aliases: - - ${VOICE_HOST} diff --git a/operator/compose/gen-secrets.sh b/operator/compose/gen-secrets.sh deleted file mode 100755 index 4a03b190f..000000000 --- a/operator/compose/gen-secrets.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -function generateSecrets() { - openssl rand -hex 16 -} - -MS_ARI_USERNAME=$(grep MS_ARI_USERNAME .env | cut -d '=' -f2) -MS_ARI_SECRET=$(generateSecrets) -FS_SECRET=$(generateSecrets) -SIPPROXY_SECRET=$(generateSecrets) -SIPPROXY_API_SECRET=$(generateSecrets) -MS_ARI_AUTHORIZATION=$(printf ${MS_ARI_USERNAME}:${MS_ARI_SECRET} | base64) - -[ -z "$DS_SECRET" ] && DS_SECRET=$(generateSecrets) -[ -z "$FS_SECRET" ] && FS_SECRET=$(generateSecrets) - -sed -i.bak \ - -e "s#MS_ARI_SECRET=.*#MS_ARI_SECRET=${MS_ARI_SECRET}#g" \ - -e "s#MS_ARI_AUTHORIZATION=.*#MS_ARI_AUTHORIZATION=${MS_ARI_AUTHORIZATION}#g" \ - -e "s#FS_SECRET=.*#FS_SECRET=${FS_SECRET}#g" \ - -e "s#SIPPROXY_SECRET=.*#SIPPROXY_SECRET=${SIPPROXY_SECRET}#g" \ - -e "s#SIPPROXY_API_SECRET=.*#SIPPROXY_API_SECRET=${SIPPROXY_API_SECRET}#g" \ - -e "s#DS_SECRET=.*#DS_SECRET=${DS_SECRET}#g" \ - "$(dirname "$0")/.env" diff --git a/operator/compose/health.yml b/operator/compose/health.yml deleted file mode 100644 index 310f3fb11..000000000 --- a/operator/compose/health.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: '3' - -networks: - fonoster: - -services: - - healthcheck: - image: fonoster/healthcheck:${COMPOSE_PROJECT_VERSION} - restart: ${RESTART_POLICY} - # TODO: Find a way to secure this - # ports: - # - 45679:3000 - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - networks: - fonoster: - - autoheal: - image: fonoster/autoheal:${COMPOSE_PROJECT_VERSION} - restart: ${RESTART_POLICY} - environment: - AUTOHEAL_CONTAINER_LABEL: all - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - networks: - fonoster: diff --git a/operator/compose/init.yml b/operator/compose/init.yml deleted file mode 100644 index 842d5c367..000000000 --- a/operator/compose/init.yml +++ /dev/null @@ -1,97 +0,0 @@ -# Initialization script - -version: '3' - -networks: - fonoster: - -services: - - create_buckets: - image: minio/mc:latest - entrypoint: > - /bin/sh -c " - set -e; - /usr/bin/mc config host add fs http://${FS_HOST}:${FS_PORT} ${FS_USERNAME} ${FS_SECRET}; - /usr/bin/mc mb fs/funcs; - /usr/bin/mc mb fs/public; - /usr/bin/mc mb fs/recordings; - /usr/bin/mc policy set download fs/public; - exit 0; - " - networks: - fonoster: - - bootstrap_sipnet: - image: fonoster/routr-ctl - entrypoint: > - /bin/sh -c " - set -e; - rctl login https://${SIPPROXY_HOST}:${SIPPROXY_API_PORT}/api/v1beta1 -u ${SIPPROXY_API_USERNAME} -p ${SIPPROXY_API_SECRET}; - rctl create -f /bootstrap.yml; - exit 0; - " - volumes: - - ${CONFIG}/bootstrap.yml:/bootstrap.yml:ro - networks: - fonoster: - - service_creds: - image: fonoster/jwthelper:${COMPOSE_PROJECT_VERSION} - environment: - ENDPOINT: ${AS_HOST}:${HTTP_PORT} - ACCESS_KEY_ID: internal - ROLE: SERVICE - EXPIRATION: 1y - LOGS_TRANSPORT: console - volumes: - - type: bind - source: ${CONFIG}/private_key - target: /home/fonoster/private_key - read_only: true - - type: bind - source: ${CONFIG}/config - target: /home/fonoster/config - - user_creds: - image: fonoster/jwthelper:${COMPOSE_PROJECT_VERSION} - environment: - ACCESS_KEY_ID: fonoster - ROLE: USER - EXPIRATION: 1y - LOGS_TRANSPORT: console - volumes: - - type: bind - source: ${CONFIG}/private_key - target: /home/fonoster/private_key - read_only: true - - type: bind - source: ${CONFIG}/user_credentials - target: /home/fonoster/config - - server_certs: - image: fonoster/certshelper - environment: - SUBJECT: localhost - CERT_NAME: server - volumes: - - ${CONFIG}/certs:/certs - - client_certs: - image: fonoster/certshelper - environment: - SUBJECT: localhost - CERT_NAME: client - volumes: - - ${CONFIG}/certs:/certs - - apply_server_certs: - image: fonoster/confighelper - volumes: - - ${CONFIG}/certs:/config - - apply_client_certs: - image: fonoster/confighelper - entrypoint: /bin/sh -c "config-client" - volumes: - - ${CONFIG}/certs:/config diff --git a/operator/compose/letsencrypt.yml b/operator/compose/letsencrypt.yml deleted file mode 100644 index de7074987..000000000 --- a/operator/compose/letsencrypt.yml +++ /dev/null @@ -1,32 +0,0 @@ -# API Services with let's encrpyt - -version: '3' - -services: - - apiserver: - command: - # - "--log.level=DEBUG" - - --api.insecure=true - - --providers.docker=true - - --providers.docker.exposedbydefault=false - - --entrypoints.internal.address=:${HTTP_PORT} - - --entrypoints.websecure.address=:${HTTPS_PORT} - - --entrypoints.websecure.http.tls.certResolver=le - - --certificatesresolvers.le.acme.tlschallenge=true - # - --certificatesresolvers.le.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory - - --certificatesresolvers.le.acme.email=${LETSENCRYPT_EMAIL} - - --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json - ports: - - ${HTTPS_PORT}:${HTTPS_PORT} - volumes: - - ${CONFIG}/letsencrypt:/letsencrypt - - placeholder_service: - image: fonoster/whoami:${COMPOSE_PROJECT_VERSION} - restart: ${RESTART_POLICY} - labels: - - traefik.enable=true - - traefik.http.routers.placeholder_service.rule=Host(`${LETSENCRYPT_DOMAIN}`) - - traefik.http.routers.placeholder_service.entrypoints=websecure - - traefik.http.routers.placeholder_service.tls.certresolver=le diff --git a/operator/compose/logging.yml b/operator/compose/logging.yml deleted file mode 100644 index 4d12d6c9d..000000000 --- a/operator/compose/logging.yml +++ /dev/null @@ -1,36 +0,0 @@ -# Logging services (Elastic Search, Fluent) - -version: '3' - -networks: - fonoster: - -services: - - logsdriver: - image: fonoster/fluent:${COMPOSE_PROJECT_VERSION} - restart: ${RESTART_POLICY} - expose: - - ${LOGS_DRIVER_PORT} - volumes: - - ${CONFIG}/fluent.conf:/fluentd/etc/fluent.conf:ro - logging: - driver: "local" - networks: - fonoster: - aliases: - - ${LOGS_DRIVER_HOST} - - logsaggregator: - image: fonoster/elasticsearch:${COMPOSE_PROJECT_VERSION} - restart: ${RESTART_POLICY} - environment: - - "discovery.type=single-node" - expose: - - ${LOGS_AGGREGRATOR_PORT} - volumes: - - esdata1:/usr/share/elasticsearch/data:rw - networks: - fonoster: - aliases: - - ${LOGS_AGGREGRATOR_HOST} diff --git a/operator/compose/noencrypt.yml b/operator/compose/noencrypt.yml deleted file mode 100644 index 59878f2cd..000000000 --- a/operator/compose/noencrypt.yml +++ /dev/null @@ -1,9 +0,0 @@ -# Warning: Using this configuration will allow unsecured access to the API - -version: '3' - -services: - - apiserver: - ports: - - ${HTTP_PORT}:${HTTP_PORT} diff --git a/operator/compose/vault-unseal.sh b/operator/compose/vault-unseal.sh deleted file mode 100755 index e1f6d5854..000000000 --- a/operator/compose/vault-unseal.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -# Enter Vault keys in the environment variables bellow, -# and keep in mind that this is a bad idea for production environments -KEY1= -KEY2= -KEY3= -KEYS=(${KEY1} ${KEY2} ${KEY3}) - -# Find the container name for vault instance -CONTAINER_NAME=fonoster_secrets_1 - -CONTAINER_ID=$(docker ps --no-trunc -aqf name=${CONTAINER_NAME}) - -for key in "${KEYS[@]}"; do - docker exec -it "${CONTAINER_ID}" sh -c "VAULT_ADDR=http://127.0.0.1:8200 vault operator unseal ${key}" -done diff --git a/package-lock.json b/package-lock.json index 2fd737e63..73c1b7297 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,4937 +1,12115 @@ { "name": "root", - "lockfileVersion": 2, + "version": "independent", + "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "root", + "version": "independent", + "hasInstallScript": true, "license": "MIT", + "workspaces": [ + "mods/*" + ], "dependencies": { - "axios": "^0.24.0", - "colors": "^1.4.0" + "@prisma/client": "^6.1.0" }, "devDependencies": { - "@types/mocha": "^8.2.0", - "@types/node": "^15.14.9", - "@typescript-eslint/eslint-plugin": "^4.19.0", - "@typescript-eslint/parser": "^4.19.0", - "chai": "^4.2.0", - "chai-as-promised": "^7.1.1", + "@commitlint/cli": "^19.2.2", + "@commitlint/config-conventional": "^19.2.2", + "@types/chai": "^5.0.1", + "@types/chai-as-promised": "^8.0.1", + "@types/mocha": "^10.0.6", + "@types/node": "^20.12.7", + "@types/sinon": "^17.0.3", + "@types/sinon-chai": "^4.0.0", + "@types/webrtc": "^0.0.44", + "chai-as-promised": "^8.0.1", "cross-env": "^7.0.3", - "dotenv": "^8.2.0", - "eslint": "^7.23.0", - "eslint-config-google": "^0.14.0", - "eslint-config-prettier": "^8.1.0", - "eslint-plugin-no-loops": "^0.3.0", - "eslint-plugin-notice": "^0.9.10", - "eslint-plugin-prettier": "^3.3.1", - "grpc_tools_node_protoc_ts": "5.2.2", - "grpc-tools": "1.11.3", - "husky": "^6.0.0", - "jsdoc-to-markdown": "^7.0.1", - "jsonfile": "^6.1.0", - "lerna": "^6.1.0", - "lerna-audit": "^1.3.3", - "mocha": "^9.2.1", - "nodemon": "^2.0.7", - "nyc": "^15.1.0", - "prettier": "^2.3.0", - "rimraf": "^3.0.2", - "sinon": "^9.0.1", - "sinon-chai": "^3.5.0", - "ts-node": "^9.1.1", - "typescript": "^4.5.4" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.17.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", - "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" + "globals": "^15.13.0", + "grpc_tools_node_protoc_ts": "^5.3.3", + "grpc-tools": "^1.12.4", + "husky": "^9.0.11", + "jsdoc-to-markdown": "^8.0.1", + "lerna": "^8.1.7", + "mocha": "^11.0.2", + "nodemon": "^3.1.9", + "prettier": "^3.4.2", + "prisma": "^6.1.0", + "rimraf": "^6.0.1", + "sinon": "^19.0.2", + "sinon-chai": "^4.0.0", + "tsx": "^4.19.2" + }, + "engines": { + "node": ">=20.11.1" }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "optionalDependencies": { + "@rollup/rollup-linux-arm64-gnu": "^4.29.1", + "@rollup/rollup-linux-arm64-musl": "^4.29.1", + "@rollup/rollup-linux-x64-gnu": "^4.29.1", + "@rollup/rollup-linux-x64-musl": "^4.29.1" } }, - "node_modules/@babel/core/node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, + "mods/apiserver": { + "name": "@fonoster/apiserver", + "version": "0.9.0", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.16.7" + "@deepgram/sdk": "^3.5.1", + "@fonoster/authz": "^0.9.0", + "@fonoster/common": "^0.9.0", + "@fonoster/identity": "^0.9.0", + "@fonoster/logger": "^0.9.0", + "@fonoster/sipnet": "^0.9.0", + "@fonoster/streams": "^0.9.0", + "@fonoster/types": "^0.9.0", + "@google-cloud/speech": "^6.6.0", + "@google-cloud/text-to-speech": "^5.3.0", + "@grpc/grpc-js": "~1.10.6", + "@influxdata/influxdb-client": "^1.33.2", + "@prisma/client": "^6.1.0", + "@routr/common": "^2.10.0", + "@routr/sdk": "^2.13.1", + "ari-client": "^2.2.0", + "dotenv": "^16.4.5", + "elevenlabs": "^1.50.2", + "express": "^5.0.1", + "grpc-health-check": "^2.0.1", + "jsonwebtoken": "^9.0.2", + "jwt-decode": "^4.0.0", + "microsoft-cognitiveservices-speech-sdk": "^1.36.0", + "nanoid": "^3.3.6", + "nats": "^2.25.0", + "pb-util": "^1.0.3", + "pick-port": "^2.0.1", + "prisma-field-encryption": "^1.5.2", + "uuid": "^11.0.3", + "validator": "^13.12.0", + "wait-port": "^1.1.0", + "zod": "^3.23.8" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" + "fonoster": "dist/index.js" }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" + "devDependencies": { + "@types/ari-client": "^2.2.12", + "@types/express": "^5.0.0", + "@types/jsonwebtoken": "^9.0.6", + "@types/uuid": "^10.0.0", + "@types/validator": "^13.12.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, + "mods/apiserver/node_modules/uuid": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.3.tgz", + "integrity": "sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" + "uuid": "dist/esm/bin/uuid" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, + "mods/authz": { + "name": "@fonoster/authz", + "version": "0.9.0", + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "@fonoster/common": "^0.9.0", + "@fonoster/identity": "^0.9.0", + "@fonoster/logger": "^0.9.0", + "@grpc/grpc-js": "~1.10.6", + "deepmerge": "^4.3.1", + "grpc-health-check": "^2.0.2" }, - "engines": { - "node": ">=4" + "bin": { + "authz": "dist/server.js" } }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, + "mods/autopilot": { + "name": "@fonoster/autopilot", + "version": "0.9.0", + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@aws-sdk/client-s3": "^3.712.0", + "@fonoster/common": "^0.9.0", + "@fonoster/logger": "^0.9.0", + "@fonoster/sdk": "^0.9.0", + "@fonoster/types": "^0.9.0", + "@fonoster/voice": "^0.9.0", + "@langchain/community": "^0.3.29", + "@langchain/core": "^0.3.39", + "@langchain/groq": "^0.1.3", + "@langchain/ollama": "^0.1.5", + "@langchain/openai": "^0.4.3", + "cheerio": "^1.0.0", + "cli-table3": "^0.6.5", + "dotenv": "^16.4.5", + "js-yaml": "^4.1.0", + "langchain": "^0.3.6", + "onnxruntime-node": "^1.19.0", + "pdf-parse": "^1.1.1", + "uuid": "^11.0.3", + "xstate": "^5.17.3", + "zod": "^3.23.8" }, - "engines": { - "node": ">=4" + "devDependencies": { + "typescript": "^5.5.4" } }, - "node_modules/@babel/highlight/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==", - "dev": true, + "mods/autopilot/node_modules/@aws-crypto/crc32": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", + "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", + "license": "Apache-2.0", + "optional": true, + "peer": true, "dependencies": { - "color-name": "1.1.3" + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" } }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } + "mods/autopilot/node_modules/@aws-crypto/crc32/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD", + "optional": true, + "peer": true }, - "node_modules/@babel/highlight/node_modules/has-flag": { + "mods/autopilot/node_modules/@aws-crypto/util": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", + "license": "Apache-2.0", + "optional": true, + "peer": true, "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" } }, - "node_modules/@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } + "mods/autopilot/node_modules/@aws-crypto/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD", + "optional": true, + "peer": true }, - "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, + "mods/autopilot/node_modules/@langchain/community": { + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@langchain/community/-/community-0.3.29.tgz", + "integrity": "sha512-6XIPGctpH3KziFpdVDEvYBEQMMsNomffqy545shoxOLoMkZqgn1wfMs6R7ltzzS0p3LJUXW1RbwAUEuWp0rbuA==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@langchain/openai": ">=0.2.0 <0.5.0", + "binary-extensions": "^2.2.0", + "expr-eval": "^2.0.2", + "flat": "^5.0.2", + "js-yaml": "^4.1.0", + "langchain": ">=0.2.3 <0.3.0 || >=0.3.4 <0.4.0", + "langsmith": ">=0.2.8 <0.4.0", + "uuid": "^10.0.0", + "zod": "^3.22.3", + "zod-to-json-schema": "^3.22.5" }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template/node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" + "node": ">=18" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.10.tgz", - "integrity": "sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "debug": "^4.1.0", - "globals": "^11.1.0" + "peerDependencies": { + "@arcjet/redact": "^v1.0.0-alpha.23", + "@aws-crypto/sha256-js": "^5.0.0", + "@aws-sdk/client-bedrock-agent-runtime": "^3.583.0", + "@aws-sdk/client-bedrock-runtime": "^3.422.0", + "@aws-sdk/client-dynamodb": "^3.310.0", + "@aws-sdk/client-kendra": "^3.352.0", + "@aws-sdk/client-lambda": "^3.310.0", + "@aws-sdk/client-s3": "^3.310.0", + "@aws-sdk/client-sagemaker-runtime": "^3.310.0", + "@aws-sdk/client-sfn": "^3.310.0", + "@aws-sdk/credential-provider-node": "^3.388.0", + "@azure/search-documents": "^12.0.0", + "@azure/storage-blob": "^12.15.0", + "@browserbasehq/sdk": "*", + "@browserbasehq/stagehand": "^1.0.0", + "@clickhouse/client": "^0.2.5", + "@cloudflare/ai": "*", + "@datastax/astra-db-ts": "^1.0.0", + "@elastic/elasticsearch": "^8.4.0", + "@getmetal/metal-sdk": "*", + "@getzep/zep-cloud": "^1.0.6", + "@getzep/zep-js": "^0.9.0", + "@gomomento/sdk": "^1.51.1", + "@gomomento/sdk-core": "^1.51.1", + "@google-ai/generativelanguage": "*", + "@google-cloud/storage": "^6.10.1 || ^7.7.0", + "@gradientai/nodejs-sdk": "^1.2.0", + "@huggingface/inference": "^2.6.4", + "@huggingface/transformers": "^3.2.3", + "@ibm-cloud/watsonx-ai": "*", + "@lancedb/lancedb": "^0.12.0", + "@langchain/core": ">=0.2.21 <0.4.0", + "@layerup/layerup-security": "^1.5.12", + "@libsql/client": "^0.14.0", + "@mendable/firecrawl-js": "^1.4.3", + "@mlc-ai/web-llm": "*", + "@mozilla/readability": "*", + "@neondatabase/serverless": "*", + "@notionhq/client": "^2.2.10", + "@opensearch-project/opensearch": "*", + "@pinecone-database/pinecone": "*", + "@planetscale/database": "^1.8.0", + "@premai/prem-sdk": "^0.3.25", + "@qdrant/js-client-rest": "^1.8.2", + "@raycast/api": "^1.55.2", + "@rockset/client": "^0.9.1", + "@smithy/eventstream-codec": "^2.0.5", + "@smithy/protocol-http": "^3.0.6", + "@smithy/signature-v4": "^2.0.10", + "@smithy/util-utf8": "^2.0.0", + "@spider-cloud/spider-client": "^0.0.21", + "@supabase/supabase-js": "^2.45.0", + "@tensorflow-models/universal-sentence-encoder": "*", + "@tensorflow/tfjs-converter": "*", + "@tensorflow/tfjs-core": "*", + "@upstash/ratelimit": "^1.1.3 || ^2.0.3", + "@upstash/redis": "^1.20.6", + "@upstash/vector": "^1.1.1", + "@vercel/kv": "*", + "@vercel/postgres": "*", + "@writerai/writer-sdk": "^0.40.2", + "@xata.io/client": "^0.28.0", + "@zilliz/milvus2-sdk-node": ">=2.3.5", + "apify-client": "^2.7.1", + "assemblyai": "^4.6.0", + "better-sqlite3": ">=9.4.0 <12.0.0", + "cassandra-driver": "^4.7.2", + "cborg": "^4.1.1", + "cheerio": "^1.0.0-rc.12", + "chromadb": "*", + "closevector-common": "0.1.3", + "closevector-node": "0.1.6", + "closevector-web": "0.1.6", + "cohere-ai": "*", + "convex": "^1.3.1", + "crypto-js": "^4.2.0", + "d3-dsv": "^2.0.0", + "discord.js": "^14.14.1", + "dria": "^0.0.3", + "duck-duck-scrape": "^2.2.5", + "epub2": "^3.0.1", + "faiss-node": "^0.5.1", + "fast-xml-parser": "*", + "firebase-admin": "^11.9.0 || ^12.0.0", + "google-auth-library": "*", + "googleapis": "*", + "hnswlib-node": "^3.0.0", + "html-to-text": "^9.0.5", + "ibm-cloud-sdk-core": "*", + "ignore": "^5.2.0", + "interface-datastore": "^8.2.11", + "ioredis": "^5.3.2", + "it-all": "^3.0.4", + "jsdom": "*", + "jsonwebtoken": "^9.0.2", + "llmonitor": "^0.5.9", + "lodash": "^4.17.21", + "lunary": "^0.7.10", + "mammoth": "^1.6.0", + "mongodb": ">=5.2.0", + "mysql2": "^3.9.8", + "neo4j-driver": "*", + "notion-to-md": "^3.1.0", + "officeparser": "^4.0.4", + "openai": "*", + "pdf-parse": "1.1.1", + "pg": "^8.11.0", + "pg-copy-streams": "^6.0.5", + "pickleparser": "^0.2.1", + "playwright": "^1.32.1", + "portkey-ai": "^0.1.11", + "puppeteer": "*", + "pyodide": ">=0.24.1 <0.27.0", + "redis": "*", + "replicate": "*", + "sonix-speech-recognition": "^2.1.1", + "srt-parser-2": "^1.2.3", + "typeorm": "^0.3.20", + "typesense": "^1.5.3", + "usearch": "^1.1.1", + "voy-search": "0.6.2", + "weaviate-ts-client": "*", + "web-auth-library": "^1.0.3", + "word-extractor": "*", + "ws": "^8.14.2", + "youtubei.js": "*" + }, + "peerDependenciesMeta": { + "@arcjet/redact": { + "optional": true + }, + "@aws-crypto/sha256-js": { + "optional": true + }, + "@aws-sdk/client-bedrock-agent-runtime": { + "optional": true + }, + "@aws-sdk/client-bedrock-runtime": { + "optional": true + }, + "@aws-sdk/client-dynamodb": { + "optional": true + }, + "@aws-sdk/client-kendra": { + "optional": true + }, + "@aws-sdk/client-lambda": { + "optional": true + }, + "@aws-sdk/client-s3": { + "optional": true + }, + "@aws-sdk/client-sagemaker-runtime": { + "optional": true + }, + "@aws-sdk/client-sfn": { + "optional": true + }, + "@aws-sdk/credential-provider-node": { + "optional": true + }, + "@azure/search-documents": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@browserbasehq/sdk": { + "optional": true + }, + "@clickhouse/client": { + "optional": true + }, + "@cloudflare/ai": { + "optional": true + }, + "@datastax/astra-db-ts": { + "optional": true + }, + "@elastic/elasticsearch": { + "optional": true + }, + "@getmetal/metal-sdk": { + "optional": true + }, + "@getzep/zep-cloud": { + "optional": true + }, + "@getzep/zep-js": { + "optional": true + }, + "@gomomento/sdk": { + "optional": true + }, + "@gomomento/sdk-core": { + "optional": true + }, + "@google-ai/generativelanguage": { + "optional": true + }, + "@google-cloud/storage": { + "optional": true + }, + "@gradientai/nodejs-sdk": { + "optional": true + }, + "@huggingface/inference": { + "optional": true + }, + "@huggingface/transformers": { + "optional": true + }, + "@lancedb/lancedb": { + "optional": true + }, + "@layerup/layerup-security": { + "optional": true + }, + "@libsql/client": { + "optional": true + }, + "@mendable/firecrawl-js": { + "optional": true + }, + "@mlc-ai/web-llm": { + "optional": true + }, + "@mozilla/readability": { + "optional": true + }, + "@neondatabase/serverless": { + "optional": true + }, + "@notionhq/client": { + "optional": true + }, + "@opensearch-project/opensearch": { + "optional": true + }, + "@pinecone-database/pinecone": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@premai/prem-sdk": { + "optional": true + }, + "@qdrant/js-client-rest": { + "optional": true + }, + "@raycast/api": { + "optional": true + }, + "@rockset/client": { + "optional": true + }, + "@smithy/eventstream-codec": { + "optional": true + }, + "@smithy/protocol-http": { + "optional": true + }, + "@smithy/signature-v4": { + "optional": true + }, + "@smithy/util-utf8": { + "optional": true + }, + "@spider-cloud/spider-client": { + "optional": true + }, + "@supabase/supabase-js": { + "optional": true + }, + "@tensorflow-models/universal-sentence-encoder": { + "optional": true + }, + "@tensorflow/tfjs-converter": { + "optional": true + }, + "@tensorflow/tfjs-core": { + "optional": true + }, + "@upstash/ratelimit": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@upstash/vector": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "@vercel/postgres": { + "optional": true + }, + "@writerai/writer-sdk": { + "optional": true + }, + "@xata.io/client": { + "optional": true + }, + "@zilliz/milvus2-sdk-node": { + "optional": true + }, + "apify-client": { + "optional": true + }, + "assemblyai": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "cassandra-driver": { + "optional": true + }, + "cborg": { + "optional": true + }, + "cheerio": { + "optional": true + }, + "chromadb": { + "optional": true + }, + "closevector-common": { + "optional": true + }, + "closevector-node": { + "optional": true + }, + "closevector-web": { + "optional": true + }, + "cohere-ai": { + "optional": true + }, + "convex": { + "optional": true + }, + "crypto-js": { + "optional": true + }, + "d3-dsv": { + "optional": true + }, + "discord.js": { + "optional": true + }, + "dria": { + "optional": true + }, + "duck-duck-scrape": { + "optional": true + }, + "epub2": { + "optional": true + }, + "faiss-node": { + "optional": true + }, + "fast-xml-parser": { + "optional": true + }, + "firebase-admin": { + "optional": true + }, + "google-auth-library": { + "optional": true + }, + "googleapis": { + "optional": true + }, + "hnswlib-node": { + "optional": true + }, + "html-to-text": { + "optional": true + }, + "ignore": { + "optional": true + }, + "interface-datastore": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "it-all": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "jsonwebtoken": { + "optional": true + }, + "llmonitor": { + "optional": true + }, + "lodash": { + "optional": true + }, + "lunary": { + "optional": true + }, + "mammoth": { + "optional": true + }, + "mongodb": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "neo4j-driver": { + "optional": true + }, + "notion-to-md": { + "optional": true + }, + "officeparser": { + "optional": true + }, + "pdf-parse": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-copy-streams": { + "optional": true + }, + "pickleparser": { + "optional": true + }, + "playwright": { + "optional": true + }, + "portkey-ai": { + "optional": true + }, + "puppeteer": { + "optional": true + }, + "pyodide": { + "optional": true + }, + "redis": { + "optional": true + }, + "replicate": { + "optional": true + }, + "sonix-speech-recognition": { + "optional": true + }, + "srt-parser-2": { + "optional": true + }, + "typeorm": { + "optional": true + }, + "typesense": { + "optional": true + }, + "usearch": { + "optional": true + }, + "voy-search": { + "optional": true + }, + "weaviate-ts-client": { + "optional": true + }, + "web-auth-library": { + "optional": true + }, + "word-extractor": { + "optional": true + }, + "ws": { + "optional": true + }, + "youtubei.js": { + "optional": true + } + } + }, + "mods/autopilot/node_modules/@langchain/community/node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "mods/autopilot/node_modules/@langchain/openai": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@langchain/openai/-/openai-0.4.3.tgz", + "integrity": "sha512-QPtkhzJElChagIybWTHZ0IRf2cwyjg9AhbJovYiPjOOmkwRBBEbfsA3YKr97JEKUQzKvMq/rcAZRvGvGEFGeLQ==", + "license": "MIT", + "dependencies": { + "js-tiktoken": "^1.0.12", + "openai": "^4.77.0", + "zod": "^3.22.4", + "zod-to-json-schema": "^3.22.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@langchain/core": ">=0.3.39 <0.4.0" + } + }, + "mods/autopilot/node_modules/@smithy/eventstream-codec": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz", + "integrity": "sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@smithy/types": "^2.12.0", + "@smithy/util-hex-encoding": "^2.2.0", + "tslib": "^2.6.2" + } + }, + "mods/autopilot/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "mods/autopilot/node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "mods/autopilot/node_modules/@smithy/signature-v4": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.3.0.tgz", + "integrity": "sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/util-hex-encoding": "^2.2.0", + "@smithy/util-middleware": "^2.2.0", + "@smithy/util-uri-escape": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "mods/autopilot/node_modules/@smithy/types": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", + "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "mods/autopilot/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "mods/autopilot/node_modules/@smithy/util-hex-encoding": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz", + "integrity": "sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "mods/autopilot/node_modules/@smithy/util-middleware": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.2.0.tgz", + "integrity": "sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "mods/autopilot/node_modules/@smithy/util-uri-escape": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz", + "integrity": "sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "mods/autopilot/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "mods/autopilot/node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "mods/autopilot/node_modules/langchain": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/langchain/-/langchain-0.3.8.tgz", + "integrity": "sha512-EiAHFgBdThuXFmIx9j81wjdPItpRsw0Ck4r5dyhB74gyhehRGna/UK2CTqeKVnIUM/f4g4JbxUgAU4voXljDMw==", + "license": "MIT", + "dependencies": { + "@langchain/openai": ">=0.1.0 <0.4.0", + "@langchain/textsplitters": ">=0.0.0 <0.2.0", + "js-tiktoken": "^1.0.12", + "js-yaml": "^4.1.0", + "jsonpointer": "^5.0.1", + "langsmith": "^0.2.8", + "openapi-types": "^12.1.3", + "p-retry": "4", + "uuid": "^10.0.0", + "yaml": "^2.2.1", + "zod": "^3.22.4", + "zod-to-json-schema": "^3.22.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@langchain/anthropic": "*", + "@langchain/aws": "*", + "@langchain/cohere": "*", + "@langchain/core": ">=0.2.21 <0.4.0", + "@langchain/google-genai": "*", + "@langchain/google-vertexai": "*", + "@langchain/groq": "*", + "@langchain/mistralai": "*", + "@langchain/ollama": "*", + "axios": "*", + "cheerio": "*", + "handlebars": "^4.7.8", + "peggy": "^3.0.2", + "typeorm": "*" + }, + "peerDependenciesMeta": { + "@langchain/anthropic": { + "optional": true + }, + "@langchain/aws": { + "optional": true + }, + "@langchain/cohere": { + "optional": true + }, + "@langchain/google-genai": { + "optional": true + }, + "@langchain/google-vertexai": { + "optional": true + }, + "@langchain/groq": { + "optional": true + }, + "@langchain/mistralai": { + "optional": true + }, + "@langchain/ollama": { + "optional": true + }, + "axios": { + "optional": true + }, + "cheerio": { + "optional": true + }, + "handlebars": { + "optional": true + }, + "peggy": { + "optional": true + }, + "typeorm": { + "optional": true + } + } + }, + "mods/autopilot/node_modules/langchain/node_modules/@langchain/openai": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@langchain/openai/-/openai-0.3.17.tgz", + "integrity": "sha512-uw4po32OKptVjq+CYHrumgbfh4NuD7LqyE+ZgqY9I/LrLc6bHLMc+sisHmI17vgek0K/yqtarI0alPJbzrwyag==", + "license": "MIT", + "dependencies": { + "js-tiktoken": "^1.0.12", + "openai": "^4.77.0", + "zod": "^3.22.4", + "zod-to-json-schema": "^3.22.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@langchain/core": ">=0.3.29 <0.4.0" + } + }, + "mods/autopilot/node_modules/langchain/node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "mods/autopilot/node_modules/uuid": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.3.tgz", + "integrity": "sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "mods/autopilot/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "optional": true, + "peer": true, + "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 + } + } + }, + "mods/common": { + "name": "@fonoster/common", + "version": "0.9.0", + "license": "MIT", + "dependencies": { + "@fonoster/logger": "^0.9.0", + "@grpc/grpc-js": "~1.10.6", + "@grpc/proto-loader": "^0.7.12", + "@influxdata/influxdb-client": "^1.35.0", + "dotenv": "^16.4.7", + "grpc-health-check": "^2.0.2", + "handlebars": "^4.7.8", + "jsonwebtoken": "^9.0.2", + "jwt-decode": "^4.0.0", + "nodemailer": "^6.9.13", + "twilio": "^5.3.4", + "validator": "^13.12.0", + "zod-validation-error": "^3.3.0" + }, + "devDependencies": { + "@types/nodemailer": "^6.4.14" + } + }, + "mods/common/node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "mods/ctl": { + "name": "@fonoster/ctl", + "version": "0.9.0", + "license": "MIT", + "dependencies": { + "@fonoster/autopilot": "^0.9.0", + "@fonoster/sdk": "^0.9.0", + "@inquirer/prompts": "^7.1.0", + "@oclif/core": "^4.0.34", + "@oclif/plugin-warn-if-update-available": "^3.1.28", + "cliui": "^8.0.1", + "figlet": "^1.8.0", + "moment": "^2.30.1", + "oclif": "^4.17.3", + "phone": "^3.1.55", + "terminal-link": "^3.0.0", + "twilio": "^5.4.0", + "zod": "^3.24.1" + }, + "bin": { + "fonoster": "bin/run.js" + }, + "devDependencies": { + "@oclif/test": "^4.1.3", + "@types/figlet": "^1.7.0", + "@types/node": "22.10.1" + } + }, + "mods/ctl/node_modules/@types/node": { + "version": "22.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz", + "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "mods/identity": { + "name": "@fonoster/identity", + "version": "0.9.0", + "license": "MIT", + "dependencies": { + "@fonoster/common": "^0.9.0", + "@fonoster/logger": "^0.9.0", + "@fonoster/types": "^0.9.0", + "@grpc/grpc-js": "~1.10.6", + "@prisma/client": "^6.0.1", + "jsonwebtoken": "^9.0.2", + "jwt-decode": "^4.0.0", + "nanoid": "^3.3.6", + "prisma-field-encryption": "^1.5.2", + "zod": "^3.24.1", + "zod-validation-error": "^3.4.0" + }, + "bin": { + "fonoster": "dist/index.js" + }, + "devDependencies": { + "@types/jsonwebtoken": "^9.0.6" + } + }, + "mods/logger": { + "name": "@fonoster/logger", + "version": "0.9.0", + "license": "MIT", + "dependencies": { + "fluent-logger": "^3.4.1", + "winston": "^3.13.0" + } + }, + "mods/sdk": { + "name": "@fonoster/sdk", + "version": "0.9.0", + "license": "MIT", + "dependencies": { + "@fonoster/common": "^0.9.0", + "@fonoster/types": "^0.9.0", + "@grpc/grpc-js": "~1.10.6", + "@grpc/proto-loader": "^0.7.12", + "google-protobuf": "^3.21.2", + "grpc-web": "^1.5.0" + }, + "devDependencies": { + "@esm-bundle/chai": "^4.3.4-fix.0", + "@rollup/plugin-commonjs": "^26.0.1", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-replace": "^5.0.7", + "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "^11.1.6", + "@types/google-protobuf": "^3.15.12", + "@types/mustache": "^4.2.5", + "@web/dev-server-esbuild": "^1.0.2", + "@web/test-runner": "^0.18.2", + "@web/test-runner-playwright": "^0.11.0", + "mustache": "^4.2.0", + "rollup": "^4.18.0", + "serve": "^14.2.3" + } + }, + "mods/sdk/node_modules/google-protobuf": { + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.4.tgz", + "integrity": "sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ==", + "license": "(BSD-3-Clause AND Apache-2.0)" + }, + "mods/sipnet": { + "name": "@fonoster/sipnet", + "version": "0.9.0", + "license": "MIT", + "dependencies": { + "@fonoster/common": "^0.9.0", + "@fonoster/identity": "^0.9.0", + "@fonoster/logger": "^0.9.0", + "@fonoster/types": "^0.9.0", + "@grpc/grpc-js": "~1.10.6", + "@routr/sdk": "2.13.1", + "zod": "^3.23.8" + }, + "bin": { + "fonoster": "dist/index.js" + } + }, + "mods/sipnet/node_modules/@routr/sdk": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/@routr/sdk/-/sdk-2.13.1.tgz", + "integrity": "sha512-9gmAmYoj+7+LMdmRcaM3PUpG+ZZqR4YLY0Zgcc0J4x7ELGji8FaDnovYJ3ngOxiTuoblDb/MTAAc266XQf1xKw==", + "license": "MIT", + "dependencies": { + "@fonoster/logger": "0.6.0", + "@grpc/grpc-js": "~1.10.1", + "@opentelemetry/api": "^1.0.4", + "@opentelemetry/exporter-jaeger": "^1.0.4", + "@opentelemetry/instrumentation": "^0.27.0", + "@opentelemetry/instrumentation-grpc": "^0.27.0", + "@opentelemetry/resources": "^1.0.4", + "@opentelemetry/sdk-trace-base": "^1.0.4", + "@opentelemetry/sdk-trace-node": "^1.0.4", + "@opentelemetry/semantic-conventions": "^1.0.4", + "@routr/common": "^2.13.1", + "google-protobuf": "^3.9.2", + "pb-util": "^1.0.3" + } + }, + "mods/sipnet/node_modules/@routr/sdk/node_modules/@fonoster/logger": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@fonoster/logger/-/logger-0.6.0.tgz", + "integrity": "sha512-WaqeVFbHKPJaif9Axw7denhTQe8Yz9v+OYiMFcmRjEE5A27/26jCG/oKIEtq3k2A6uuTkgTs88t7TpqK4v/fIA==", + "license": "MIT", + "dependencies": { + "fluent-logger": "^3.4.1", + "winston": "^3.13.0" + } + }, + "mods/streams": { + "name": "@fonoster/streams", + "version": "0.9.0", + "license": "MIT", + "dependencies": { + "@fonoster/logger": "^0.9.0", + "uuid": "^11.0.3" + }, + "devDependencies": { + "@types/uuid": "^10.0.0" + } + }, + "mods/streams/node_modules/uuid": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.3.tgz", + "integrity": "sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "mods/types": { + "name": "@fonoster/types", + "version": "0.9.0", + "license": "MIT" + }, + "mods/voice": { + "name": "@fonoster/voice", + "version": "0.9.0", + "license": "MIT", + "dependencies": { + "@fonoster/common": "^0.9.0", + "@fonoster/identity": "^0.9.0", + "@fonoster/logger": "^0.9.0", + "@grpc/grpc-js": "~1.10.6", + "deepmerge": "^4.3.1", + "grpc-health-check": "^2.0.2", + "pb-util": "^1.0.3", + "zod": "^3.23.8", + "zod-validation-error": "^3.3.0" + }, + "bin": { + "fonoster": "dist/index.js" + } + }, + "mods/webui": { + "name": "@fonoster/webui", + "version": "0.9.0", + "dependencies": { + "@emotion/styled": "^11.13.0", + "@fontsource/poppins": "^5.1.0", + "@mui/icons-material": "^6.1.8", + "@mui/material": "^6.1.7", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@storybook/addon-designs": "^8.0.4", + "@storybook/addon-docs": "^8.4.4", + "@storybook/addon-essentials": "^8.4.4", + "@storybook/addon-interactions": "^8.4.4", + "@storybook/addon-onboarding": "^8.4.4", + "@storybook/addon-themes": "^8.4.4", + "@storybook/blocks": "^8.4.4", + "@storybook/manager-api": "^8.4.4", + "@storybook/react": "^8.4.4", + "@storybook/react-vite": "^8.4.4", + "@storybook/test": "^8.4.4", + "@storybook/theming": "^8.4.4", + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react": "^4.3.3", + "globals": "^15.11.0", + "storybook": "^8.4.4", + "vite": "^5.4.10" + } + }, + "node_modules/@47ng/cloak": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@47ng/cloak/-/cloak-1.2.0.tgz", + "integrity": "sha512-kKufIDIfW7+YdW+m/0PIFR9zsoIan04tCiAoWsvd2e/MsIh4HtU//n/xDk8eNTTl9cN/rI78qd1r2zCP0QB7hw==", + "license": "MIT", + "dependencies": { + "@47ng/codec": "^1.0.1", + "@stablelib/base64": "^1.0.1", + "@stablelib/hex": "^1.0.1", + "@stablelib/utf8": "^1.0.1", + "chalk": "^4.1.2", + "commander": "^8.3.0", + "dotenv": "^10.0.0", + "s-ago": "^2.2.0" + }, + "bin": { + "cloak": "dist/cli.js" + } + }, + "node_modules/@47ng/cloak/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@47ng/cloak/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@47ng/cloak/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@47ng/cloak/node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/@47ng/cloak/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@47ng/codec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@47ng/codec/-/codec-1.1.0.tgz", + "integrity": "sha512-gvtA2RjijvEiYQbURPM6/Z+ySfS4lmtQ9NovDzzT+5ekeZ3M5pGiotlT94Qd+At4AYwWp7mWJLvxFn3JR+BZbA==", + "license": "MIT", + "dependencies": { + "@stablelib/base64": "^1.0.1", + "@stablelib/hex": "^1.0.1" + }, + "engines": { + "node": ">=11" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz", + "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@anthropic-ai/sdk": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.27.3.tgz", + "integrity": "sha512-IjLt0gd3L4jlOfilxVXTifn42FnVffMgDC04RJK1KDZpmkBWLv0XC92MVVmkxrFZNS/7l3xWgP/I3nqtX1sQHw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/node": "^18.11.18", + "@types/node-fetch": "^2.6.4", + "abort-controller": "^3.0.0", + "agentkeepalive": "^4.2.1", + "form-data-encoder": "1.7.2", + "formdata-node": "^4.3.2", + "node-fetch": "^2.6.7" + } + }, + "node_modules/@anthropic-ai/sdk/node_modules/@types/node": { + "version": "18.19.68", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz", + "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==", + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@anthropic-ai/sdk/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "peer": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@anthropic-ai/sdk/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT", + "peer": true + }, + "node_modules/@anthropic-ai/sdk/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT", + "peer": true + }, + "node_modules/@anthropic-ai/sdk/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause", + "peer": true + }, + "node_modules/@anthropic-ai/sdk/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "peer": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@aws-crypto/crc32": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz", + "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-crypto/crc32c": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz", + "integrity": "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha1-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz", + "integrity": "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", + "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-js": "^5.2.0", + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", + "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", + "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/client-cloudfront": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudfront/-/client-cloudfront-3.716.0.tgz", + "integrity": "sha512-r9m+gxgjh/Bt+W3z+F8iR9W0TwBCJQIHt9gjyfIzWa2tLFGzrAajFfs5RUrWpFyl+e8Q6wukAXXm9QhQDwTOsQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sso-oidc": "3.716.0", + "@aws-sdk/client-sts": "3.716.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-node": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@aws-sdk/xml-builder": "3.709.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-node": "^3.0.11", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", + "@smithy/util-stream": "^3.3.2", + "@smithy/util-utf8": "^3.0.0", + "@smithy/util-waiter": "^3.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-s3": { + "version": "3.717.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.717.0.tgz", + "integrity": "sha512-jzaH8IskAXVnqlZ3/H/ROwrB2HCnq/atlN7Hi7FIfjWvMPf5nfcJKfzJ1MXFX0EQR5qO6X4TbK7rgi7Bjw9NjQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha1-browser": "5.2.0", + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sso-oidc": "3.716.0", + "@aws-sdk/client-sts": "3.716.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-node": "3.716.0", + "@aws-sdk/middleware-bucket-endpoint": "3.714.0", + "@aws-sdk/middleware-expect-continue": "3.714.0", + "@aws-sdk/middleware-flexible-checksums": "3.717.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-location-constraint": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-sdk-s3": "3.716.0", + "@aws-sdk/middleware-ssec": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/signature-v4-multi-region": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@aws-sdk/xml-builder": "3.709.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/eventstream-serde-browser": "^3.0.14", + "@smithy/eventstream-serde-config-resolver": "^3.0.11", + "@smithy/eventstream-serde-node": "^3.0.13", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-blob-browser": "^3.1.10", + "@smithy/hash-node": "^3.0.11", + "@smithy/hash-stream-node": "^3.1.10", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/md5-js": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", + "@smithy/util-stream": "^3.3.2", + "@smithy/util-utf8": "^3.0.0", + "@smithy/util-waiter": "^3.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.716.0.tgz", + "integrity": "sha512-5Nb0jJXce2TclbjG7WVPufwhgV1TRydz1QnsuBtKU0AdViEpr787YrZhPpGnNIM1Dx+R1H/tmAHZnOoohS6D8g==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-node": "^3.0.11", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.716.0.tgz", + "integrity": "sha512-lA4IB9FzR2KjH7EVCo+mHGFKqdViVyeBQEIX9oVratL/l7P0bMS1fMwgfHOc3ACazqNxBxDES7x08ZCp32y6Lw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-node": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-node": "^3.0.11", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.716.0" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.716.0.tgz", + "integrity": "sha512-i4SVNsrdXudp8T4bkm7Fi3YWlRnvXCSwvNDqf6nLqSJxqr4CN3VlBELueDyjBK7TAt453/qSif+eNx+bHmwo4Q==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sso-oidc": "3.716.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-node": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-node": "^3.0.11", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.716.0.tgz", + "integrity": "sha512-5DkUiTrbyzO8/W4g7UFEqRFpuhgizayHI/Zbh0wtFMcot8801nJV+MP/YMhdjimlvAr/OqYB08FbGsPyWppMTw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@smithy/core": "^2.5.5", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/property-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/signature-v4": "^4.2.4", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/util-middleware": "^3.0.11", + "fast-xml-parser": "4.4.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.716.0.tgz", + "integrity": "sha512-JI2KQUnn2arICwP9F3CnqP1W3nAbm4+meQg/yOhp9X0DMzQiHrHRd4HIrK2vyVgi2/6hGhONY5uLF26yRTA7nQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.716.0.tgz", + "integrity": "sha512-CZ04pl2z7igQPysQyH2xKZHM3fLwkemxQbKOlje3TmiS1NwXvcKvERhp9PE/H23kOL7beTM19NMRog/Fka/rlw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/property-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/util-stream": "^3.3.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.716.0.tgz", + "integrity": "sha512-P37We2GtZvdROxiwP0zrpEL81/HuYK1qlYxp5VCj3uV+G4mG8UQN2gMIU/baYrpOQqa0h81RfyQGRFUjVaDVqw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-env": "3.716.0", + "@aws-sdk/credential-provider-http": "3.716.0", + "@aws-sdk/credential-provider-process": "3.716.0", + "@aws-sdk/credential-provider-sso": "3.716.0", + "@aws-sdk/credential-provider-web-identity": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/credential-provider-imds": "^3.2.8", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.716.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.716.0.tgz", + "integrity": "sha512-FGQPK2uKfS53dVvoskN/s/t6m0Po24BGd1PzJdzHBFCOjxbZLM6+8mDMXeyi2hCLVVQOUcuW41kOgmJ0+zMbww==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.716.0", + "@aws-sdk/credential-provider-http": "3.716.0", + "@aws-sdk/credential-provider-ini": "3.716.0", + "@aws-sdk/credential-provider-process": "3.716.0", + "@aws-sdk/credential-provider-sso": "3.716.0", + "@aws-sdk/credential-provider-web-identity": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/credential-provider-imds": "^3.2.8", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.716.0.tgz", + "integrity": "sha512-0spcu2MWVVHSTHH3WE2E//ttUJPwXRM3BCp+WyI41xLzpNu1Fd8zjOrDpEo0SnGUzsSiRTIJWgkuu/tqv9NJ2A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.716.0.tgz", + "integrity": "sha512-J2IA3WuCpRGGoZm6VHZVFCnrxXP+41iUWb9Ct/1spljegTa1XjiaZ5Jf3+Ubj7WKiyvP9/dgz1L0bu2bYEjliw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-sso": "3.716.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/token-providers": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.716.0.tgz", + "integrity": "sha512-vzgpWKs2gGXZGdbMKRFrMW4PqEFWkGvwWH2T7ZwQv9m+8lQ7P4Dk2uimqu0f37HZAbpn8HFMqRh4CaySjU354A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.716.0" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint": { + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.714.0.tgz", + "integrity": "sha512-I/xSOskiseJJ8i183Z522BgqbgYzLKP7jGcg2Qeib/IWoG2IP+9DH8pwqagKaPAycyswtnoKBJiiFXY43n0CkA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-arn-parser": "3.693.0", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "@smithy/util-config-provider": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-expect-continue": { + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.714.0.tgz", + "integrity": "sha512-rlzsXdG8Lzo4Qpl35ZnpOBAWlzvDHpP9++0AXoUwAJA0QmMm7auIRmgxJuNj91VwT9h15ZU6xjU4S7fJl4W0+w==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-flexible-checksums": { + "version": "3.717.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.717.0.tgz", + "integrity": "sha512-a5kY5r7/7bDZZlOQQGWOR1ulQewdtNexdW1Ex5DD0FLKlFY7RD0va24hxQ6BP7mWHol+Dx4pj6UQ8ahk0ap1tw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/crc32": "5.2.0", + "@aws-crypto/crc32c": "5.2.0", + "@aws-crypto/util": "5.2.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/is-array-buffer": "^3.0.0", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-stream": "^3.3.2", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.714.0.tgz", + "integrity": "sha512-6l68kjNrh5QC8FGX3I3geBDavWN5Tg1RLHJ2HLA8ByGBtJyCwnz3hEkKfaxn0bBx0hF9DzbfjEOUF6cDqy2Kjg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-location-constraint": { + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.714.0.tgz", + "integrity": "sha512-MX7M+V+FblujKck3fyuzePVIAy9530gY719IiSxV6uN1qLHl7VDJxNblpF/KpXakD6rOg8OpvtmqsXj9aBMftw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.714.0.tgz", + "integrity": "sha512-RkqHlMvQWUaRklU1bMfUuBvdWwxgUtEqpADaHXlGVj3vtEY2UgBjy+57CveC4MByqKIunNvVHBBbjrGVtwY7Lg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.714.0.tgz", + "integrity": "sha512-AVU5ixnh93nqtsfgNc284oXsXaadyHGPHpql/jwgaaqQfEXjS/1/j3j9E/vpacfTTz2Vzo7hAOjnvrOXSEVDaA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.716.0.tgz", + "integrity": "sha512-Qzz5OfRA/5brqfvq+JHTInwS1EuJ1+tC6qMtwKWJN3czMnVJVdnnsPTf+G5IM/1yYaGEIjY8rC1ExQLcc8ApFQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-arn-parser": "3.693.0", + "@smithy/core": "^2.5.5", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/signature-v4": "^4.2.4", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-stream": "^3.3.2", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-ssec": { + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.714.0.tgz", + "integrity": "sha512-RkK8REAVwNUQmYbIDRw8eYbMJ8F1Rw4C9mlME4BBMhFlelGcD3ErU2ce24moQbDxBjNwHNESmIqgmdQk93CDCQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.716.0.tgz", + "integrity": "sha512-FpAtT6nNKrYdkDZndutEraiRMf+TgDzAGvniqRtZ/YTPA+gIsWrsn+TwMKINR81lFC3nQfb9deS5CFtxd021Ew==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@smithy/core": "^2.5.5", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.714.0.tgz", + "integrity": "sha512-HJzsQxgMOAzZrbf/YIqEx30or4tZK1oNAk6Wm6xecUQx+23JXIaePRu1YFUOLBBERQ4QBPpISFurZWBMZ5ibAw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.11", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.716.0.tgz", + "integrity": "sha512-k0goWotZKKz+kV6Ln0qeAMSeSVi4NipuIIz5R8A0uCF2zBK4CXWdZR7KeaIoLBhJwQnHj1UU7E+2MK74KIUBzA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/middleware-sdk-s3": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/signature-v4": "^4.2.4", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.714.0.tgz", + "integrity": "sha512-vKN064aLE3kl+Zl16Ony3jltHnMddMBT7JRkP1L+lLywhA0PcAKxpdvComul/sTBWnbnwLnaS5NsDUhcWySH8A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "^3.714.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.714.0.tgz", + "integrity": "sha512-ZjpP2gYbSFlxxaUDa1Il5AVvfggvUPbjzzB/l3q0gIE5Thd6xKW+yzEpt2mLZ5s5UaYSABZbF94g8NUOF4CVGA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-arn-parser": { + "version": "3.693.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.693.0.tgz", + "integrity": "sha512-WC8x6ca+NRrtpAH64rWu+ryDZI3HuLwlEr8EU6/dbC/pt+r/zC0PBoC15VEygUaBA+isppCikQpGyEDu0Yj7gQ==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.714.0.tgz", + "integrity": "sha512-Xv+Z2lhe7w7ZZRsgBwBMZgGTVmS+dkkj2S13uNHAx9lhB5ovM8PhK5G/j28xYf6vIibeuHkRAbb7/ozdZIGR+A==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", + "@smithy/util-endpoints": "^2.1.7", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.693.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.693.0.tgz", + "integrity": "sha512-ttrag6haJLWABhLqtg1Uf+4LgHWIMOVSYL+VYZmAp2v4PUGOwWmWQH0Zk8RM7YuQcLfH/EoR72/Yxz6A4FKcuw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.714.0.tgz", + "integrity": "sha512-OdJJ03cP9/MgIVToPJPCPUImbpZzTcwdIgbXC0tUQPJhbD7b7cB4LdnkhNHko+MptpOrCq4CPY/33EpOjRdofw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.716.0.tgz", + "integrity": "sha512-3PqaXmQbxrtHKAsPCdp7kn5FrQktj8j3YyuNsqFZ8rWZeEQ88GWlsvE61PTsr2peYCKzpFqYVddef2x1axHU0w==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", + "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.709.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.709.0.tgz", + "integrity": "sha512-2GPCwlNxeHspoK/Mc8nbk9cBOkSpp3j2SJUQmFnyQK6V/pR6II2oPRyZkMomug1Rc10hqlBHByMecq4zhV2uUw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", + "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", + "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.3", + "@babel/parser": "^7.26.3", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.3", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@browserbasehq/sdk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@browserbasehq/sdk/-/sdk-2.0.0.tgz", + "integrity": "sha512-BdPlZyn0dpXlL70gNK4acpqWIRB+edo2z0/GalQdWghRq8iQjySd9fVIF3evKH1p2wCYekZJRK6tm29YfXB67g==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@types/node": "^18.11.18", + "@types/node-fetch": "^2.6.4", + "abort-controller": "^3.0.0", + "agentkeepalive": "^4.2.1", + "form-data-encoder": "1.7.2", + "formdata-node": "^4.3.2", + "node-fetch": "^2.6.7" + } + }, + "node_modules/@browserbasehq/sdk/node_modules/@types/node": { + "version": "18.19.68", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz", + "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==", + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@browserbasehq/sdk/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "peer": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@browserbasehq/sdk/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT", + "peer": true + }, + "node_modules/@browserbasehq/sdk/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT", + "peer": true + }, + "node_modules/@browserbasehq/sdk/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause", + "peer": true + }, + "node_modules/@browserbasehq/sdk/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "peer": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@browserbasehq/stagehand": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@browserbasehq/stagehand/-/stagehand-1.8.0.tgz", + "integrity": "sha512-ozwE2imQzWhi1pir6+L7bwIWKXQQ+tX7oVRbQkcmHkj+xdDJJDMYxNMBJyt8mnAvXHvsadUowAWSIEfcTrNEqA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@anthropic-ai/sdk": "^0.27.3", + "@browserbasehq/sdk": "^2.0.0", + "sharp": "^0.33.5", + "ws": "^8.18.0", + "zod-to-json-schema": "^3.23.5" + }, + "peerDependencies": { + "@playwright/test": "^1.42.1", + "deepmerge": "^4.3.1", + "dotenv": "^16.4.5", + "openai": "^4.62.1", + "zod": "^3.23.8" + } + }, + "node_modules/@browserbasehq/stagehand/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "peer": true, + "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/@cfworker/json-schema": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@cfworker/json-schema/-/json-schema-4.0.3.tgz", + "integrity": "sha512-ZykIcDTVv5UNmKWSTLAs3VukO6NDJkkSKxrgUTDPBkAlORVT3H9n5DbRjRl8xIotklscHdbLIa0b9+y3mQq73g==", + "license": "MIT" + }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@commitlint/cli": { + "version": "19.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.6.1.tgz", + "integrity": "sha512-8hcyA6ZoHwWXC76BoC8qVOSr8xHy00LZhZpauiD0iO0VYbVhMnED0da85lTfIULxl7Lj4c6vZgF0Wu/ed1+jlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/format": "^19.5.0", + "@commitlint/lint": "^19.6.0", + "@commitlint/load": "^19.6.1", + "@commitlint/read": "^19.5.0", + "@commitlint/types": "^19.5.0", + "tinyexec": "^0.3.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-conventional": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.6.0.tgz", + "integrity": "sha512-DJT40iMnTYtBtUfw9ApbsLZFke1zKh6llITVJ+x9mtpHD08gsNXaIRqHTmwTZL3dNX5+WoyK7pCN/5zswvkBCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.5.0", + "conventional-changelog-conventionalcommits": "^7.0.2" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-validator": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.5.0.tgz", + "integrity": "sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.5.0", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/ensure": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.5.0.tgz", + "integrity": "sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.5.0", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/execute-rule": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz", + "integrity": "sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/format": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.5.0.tgz", + "integrity": "sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/is-ignored": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.6.0.tgz", + "integrity": "sha512-Ov6iBgxJQFR9koOupDPHvcHU9keFupDgtB3lObdEZDroiG4jj1rzky60fbQozFKVYRTUdrBGICHG0YVmRuAJmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.5.0", + "semver": "^7.6.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/lint": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.6.0.tgz", + "integrity": "sha512-LRo7zDkXtcIrpco9RnfhOKeg8PAnE3oDDoalnrVU/EVaKHYBWYL1DlRR7+3AWn0JiBqD8yKOfetVxJGdEtZ0tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/is-ignored": "^19.6.0", + "@commitlint/parse": "^19.5.0", + "@commitlint/rules": "^19.6.0", + "@commitlint/types": "^19.5.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/load": { + "version": "19.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.6.1.tgz", + "integrity": "sha512-kE4mRKWWNju2QpsCWt428XBvUH55OET2N4QKQ0bF85qS/XbsRGG1MiTByDNlEVpEPceMkDr46LNH95DtRwcsfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^19.5.0", + "@commitlint/execute-rule": "^19.5.0", + "@commitlint/resolve-extends": "^19.5.0", + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0", + "cosmiconfig": "^9.0.0", + "cosmiconfig-typescript-loader": "^6.1.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/message": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.5.0.tgz", + "integrity": "sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/parse": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.5.0.tgz", + "integrity": "sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.5.0", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-parser": "^5.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/read": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.5.0.tgz", + "integrity": "sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/top-level": "^19.5.0", + "@commitlint/types": "^19.5.0", + "git-raw-commits": "^4.0.0", + "minimist": "^1.2.8", + "tinyexec": "^0.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/resolve-extends": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz", + "integrity": "sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^19.5.0", + "@commitlint/types": "^19.5.0", + "global-directory": "^4.0.1", + "import-meta-resolve": "^4.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/rules": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.6.0.tgz", + "integrity": "sha512-1f2reW7lbrI0X0ozZMesS/WZxgPa4/wi56vFuJENBmed6mWq5KsheN/nxqnl/C23ioxpPO/PL6tXpiiFy5Bhjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/ensure": "^19.5.0", + "@commitlint/message": "^19.5.0", + "@commitlint/to-lines": "^19.5.0", + "@commitlint/types": "^19.5.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/to-lines": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.5.0.tgz", + "integrity": "sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/top-level": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.5.0.tgz", + "integrity": "sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^7.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/types": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.5.0.tgz", + "integrity": "sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/conventional-commits-parser": "^5.0.0", + "chalk": "^5.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@deepgram/captions": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@deepgram/captions/-/captions-1.2.0.tgz", + "integrity": "sha512-8B1C/oTxTxyHlSFubAhNRgCbQ2SQ5wwvtlByn8sDYZvdDtdn/VE2yEPZ4BvUnrKWmsbTQY6/ooLV+9Ka2qmDSQ==", + "license": "MIT", + "dependencies": { + "dayjs": "^1.11.10" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@deepgram/sdk": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@deepgram/sdk/-/sdk-3.9.0.tgz", + "integrity": "sha512-X/7JzoYjCObyEaPb2Dgnkwk2LwRe4bw0FJJCLdkjpnFfJCFgA9IWgRD8FEUI6/hp8dW/CqqXkGPA2Q3DIsVG8A==", + "license": "MIT", + "dependencies": { + "@deepgram/captions": "^1.1.1", + "@types/node": "^18.19.39", + "cross-fetch": "^3.1.5", + "deepmerge": "^4.3.1", + "events": "^3.3.0", + "ws": "^8.17.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@deepgram/sdk/node_modules/@types/node": { + "version": "18.19.68", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz", + "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@deepgram/sdk/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/@deepgram/sdk/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "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/@emnapi/core": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", + "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", + "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/styled": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", + "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/is-prop-valid": "^1.3.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esm-bundle/chai": { + "version": "4.3.4-fix.0", + "resolved": "https://registry.npmjs.org/@esm-bundle/chai/-/chai-4.3.4-fix.0.tgz", + "integrity": "sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^4.2.12" + } + }, + "node_modules/@esm-bundle/chai/node_modules/@types/chai": { + "version": "4.3.20", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", + "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@figspec/components": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@figspec/components/-/components-1.0.3.tgz", + "integrity": "sha512-fBwHzJ4ouuOUJEi+yBZIrOy+0/fAjB3AeTcIHTT1PRxLz8P63xwC7R0EsIJXhScIcc+PljGmqbbVJCjLsnaGYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lit": "^2.1.3" + } + }, + "node_modules/@figspec/react": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@figspec/react/-/react-1.0.3.tgz", + "integrity": "sha512-r683qOko+5CbT48Ox280fMx2MNAtaFPgCNJvldOqN3YtmAzlcTT+YSxd3OahA+kjXGGrnzDbUgeTOX1cPLII+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@figspec/components": "^1.0.1", + "@lit-labs/react": "^1.0.2" + }, + "peerDependencies": { + "react": "^16.14.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@fonoster/apiserver": { + "resolved": "mods/apiserver", + "link": true + }, + "node_modules/@fonoster/authz": { + "resolved": "mods/authz", + "link": true + }, + "node_modules/@fonoster/autopilot": { + "resolved": "mods/autopilot", + "link": true + }, + "node_modules/@fonoster/common": { + "resolved": "mods/common", + "link": true + }, + "node_modules/@fonoster/ctl": { + "resolved": "mods/ctl", + "link": true + }, + "node_modules/@fonoster/identity": { + "resolved": "mods/identity", + "link": true + }, + "node_modules/@fonoster/logger": { + "resolved": "mods/logger", + "link": true + }, + "node_modules/@fonoster/sdk": { + "resolved": "mods/sdk", + "link": true + }, + "node_modules/@fonoster/sipnet": { + "resolved": "mods/sipnet", + "link": true + }, + "node_modules/@fonoster/streams": { + "resolved": "mods/streams", + "link": true + }, + "node_modules/@fonoster/types": { + "resolved": "mods/types", + "link": true + }, + "node_modules/@fonoster/voice": { + "resolved": "mods/voice", + "link": true + }, + "node_modules/@fonoster/webui": { + "resolved": "mods/webui", + "link": true + }, + "node_modules/@fontsource/poppins": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@fontsource/poppins/-/poppins-5.1.0.tgz", + "integrity": "sha512-tpLXlnNi2fwQjiipvuj4uNFHCdoLA8izRsKdoexZuEzjx0r/g1aKLf4ta6lFgF7L+/+AFdmaXFlUwwvmDzYH+g==", + "license": "OFL-1.1" + }, + "node_modules/@google-cloud/common": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-5.0.2.tgz", + "integrity": "sha512-V7bmBKYQyu0eVG2BFejuUjlBt+zrya6vtsKdY+JxMM/dNntPF41vZ9+LhOshEUH01zOHEqBSvI7Dad7ZS6aUeA==", + "license": "Apache-2.0", + "dependencies": { + "@google-cloud/projectify": "^4.0.0", + "@google-cloud/promisify": "^4.0.0", + "arrify": "^2.0.1", + "duplexify": "^4.1.1", + "extend": "^3.0.2", + "google-auth-library": "^9.0.0", + "html-entities": "^2.5.2", + "retry-request": "^7.0.0", + "teeny-request": "^9.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/projectify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz", + "integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==", + "license": "Apache-2.0", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/promisify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz", + "integrity": "sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@google-cloud/speech": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@google-cloud/speech/-/speech-6.7.0.tgz", + "integrity": "sha512-rLCVYD5vAoHkhHHkg/12lZckduhYCOZWxk/sIxBeS5nMSIlsrixPml/wbm6el7/8l8oNsKaiLzj+B5ABXmipRg==", + "license": "Apache-2.0", + "dependencies": { + "@google-cloud/common": "^5.0.0", + "@types/pumpify": "^1.4.1", + "google-gax": "^4.0.3", + "pumpify": "^2.0.0", + "stream-events": "^1.0.4", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@google-cloud/speech/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@google-cloud/text-to-speech": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@google-cloud/text-to-speech/-/text-to-speech-5.7.0.tgz", + "integrity": "sha512-dGQxADu9wfLBsYMSvDMkZ8ZayadMh+3nJ07vQlF3TYZ/HMjaZR3cYNN7uGL7pX2pskZfv+/nc1LqpQmMgDN19g==", + "license": "Apache-2.0", + "dependencies": { + "google-gax": "^4.0.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@grpc/grpc-js": { + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.11.tgz", + "integrity": "sha512-3RaoxOqkHHN2c05bwtBNVJmOf/UwMam0rZYtdl7dsRpsvDwcNpv6LkGgzltQ7xVf822LzBoKEPRvf4D7+xeIDw==", + "license": "Apache-2.0", + "dependencies": { + "@grpc/proto-loader": "^0.7.13", + "@js-sdsl/ordered-map": "^4.4.2" + }, + "engines": { + "node": ">=12.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", + "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "license": "Apache-2.0", + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.5", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@hapi/bourne": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-3.0.0.tgz", + "integrity": "sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ibm-cloud/watsonx-ai": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ibm-cloud/watsonx-ai/-/watsonx-ai-1.3.0.tgz", + "integrity": "sha512-V4PorMPhxwYiayWxycryun4Bjxn3PJrQqJGca+maQd61Q7s+/PUJAHWjwzVSVHxiher17zFHf4NwqB8J6bWj4w==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@types/node": "^18.0.0", + "extend": "3.0.2", + "ibm-cloud-sdk-core": "^5.0.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@ibm-cloud/watsonx-ai/node_modules/@types/node": { + "version": "18.19.68", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz", + "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==", + "license": "MIT", + "peer": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@ibm-cloud/watsonx-ai/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT", + "peer": true + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@influxdata/influxdb-client": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/@influxdata/influxdb-client/-/influxdb-client-1.35.0.tgz", + "integrity": "sha512-woWMi8PDpPQpvTsRaUw4Ig+nOGS/CWwAwS66Fa1Vr/EkW+NEwxI8YfPBsdBMn33jK2Y86/qMiiuX/ROHIkJLTw==", + "license": "MIT" + }, + "node_modules/@inquirer/checkbox": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.0.4.tgz", + "integrity": "sha512-fYAKCAcGNMdfjL6hZTRUwkIByQ8EIZCXKrIQZH7XjADnN/xvRUhj8UdBbpC4zoUzvChhkSC/zRKaP/tDs3dZpg==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.2", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.1.tgz", + "integrity": "sha512-vVLSbGci+IKQvDOtzpPTCOiEJCNidHcAq9JYVoWTW0svb5FiwSLotkM+JXNXejfjnzVYV9n0DTBythl9+XgTxg==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.2.tgz", + "integrity": "sha512-bHd96F3ezHg1mf/J0Rb4CV8ndCN0v28kUlrHqP7+ECm1C/A+paB7Xh2lbMk6x+kweQC+rZOxM/YeKikzxco8bQ==", + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/editor": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.1.tgz", + "integrity": "sha512-xn9aDaiP6nFa432i68JCaL302FyL6y/6EG97nAtfIPnWZ+mWPgCMLGc4XZ2QQMsZtu9q3Jd5AzBPjXh10aX9kA==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/expand": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.4.tgz", + "integrity": "sha512-GYocr+BPyxKPxQ4UZyNMqZFSGKScSUc0Vk17II3J+0bDcgGsQm0KYQNooN1Q5iBfXsy3x/VWmHGh20QnzsaHwg==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.9.tgz", + "integrity": "sha512-BXvGj0ehzrngHTPTDqUoDT3NXL8U0RxUk2zJm2A66RhCEIWdtU1v6GuUqNAgArW4PQ9CinqIWyHdQgdwOj06zQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.1.tgz", + "integrity": "sha512-nAXAHQndZcXB+7CyjIW3XuQZZHbQQ0q8LX6miY6bqAWwDzNa9JUioDBYrFmOUNIsuF08o1WT/m2gbBXvBhYVxg==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/number": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.4.tgz", + "integrity": "sha512-DX7a6IXRPU0j8kr2ovf+QaaDiIf+zEKaZVzCWdLOTk7XigqSXvoh4cul7x68xp54WTQrgSnW7P1WBJDbyY3GhA==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/password": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.4.tgz", + "integrity": "sha512-wiliQOWdjM8FnBmdIHtQV2Ca3S1+tMBUerhyjkRCv1g+4jSvEweGu9GCcvVEgKDhTBT15nrxvk5/bVrGUqSs1w==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2", + "ansi-escapes": "^4.3.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/prompts": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.2.1.tgz", + "integrity": "sha512-v2JSGri6/HXSfoGIwuKEn8sNCQK6nsB2BNpy2lSX6QH9bsECrMv93QHnj5+f+1ZWpF/VNioIV2B/PDox8EvGuQ==", + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^4.0.4", + "@inquirer/confirm": "^5.1.1", + "@inquirer/editor": "^4.2.1", + "@inquirer/expand": "^4.0.4", + "@inquirer/input": "^4.1.1", + "@inquirer/number": "^3.0.4", + "@inquirer/password": "^4.0.4", + "@inquirer/rawlist": "^4.0.4", + "@inquirer/search": "^3.0.4", + "@inquirer/select": "^4.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.4.tgz", + "integrity": "sha512-IsVN2EZdNHsmFdKWx9HaXb8T/s3FlR/U1QPt9dwbSyPtjFbMTlW9CRFvnn0bm/QIsrMRD2oMZqrQpSWPQVbXXg==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/search": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.4.tgz", + "integrity": "sha512-tSkJk2SDmC2MEdTIjknXWmCnmPr5owTs9/xjfa14ol1Oh95n6xW7SYn5fiPk4/vrJPys0ggSWiISdPze4LTa7A==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.2", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/select": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.0.4.tgz", + "integrity": "sha512-ZzYLuLoUzTIW9EJm++jBpRiTshGqS3Q1o5qOEQqgzaBlmdsjQr6pA4TUNkwu6OBYgM2mIRbCz6mUhFDfl/GF+w==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.2", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.2.tgz", + "integrity": "sha512-ZhQ4TvhwHZF+lGhQ2O/rsjo80XoZR5/5qhOY3t6FJuX5XBg5Be8YzYTvaUGJnc12AUGI2nr4QSUE4PhKSigx7g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", + "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@joshwooding/vite-plugin-react-docgen-typescript": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.4.2.tgz", + "integrity": "sha512-feQ+ntr+8hbVudnsTUapiMN9q8T90XA1d5jn9QzY09sNoj4iD9wi0PY1vsBFTda4ZjEaxRK9S81oarR2nj7TFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.27.0", + "react-docgen-typescript": "^2.2.2" + }, + "peerDependencies": { + "typescript": ">= 4.3.x", + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@joshwooding/vite-plugin-react-docgen-typescript/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/@jsdoc/salty": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.9.tgz", + "integrity": "sha512-yYxMVH7Dqw6nO0d5NIV8OQWnitU8k6vXH8NtgqAfIa/IUqRMxRv/NUJJ08VEKbAakwxlgBl5PJdrU0dMPStsnw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=v12.0.0" + } + }, + "node_modules/@langchain/core": { + "version": "0.3.39", + "resolved": "https://registry.npmjs.org/@langchain/core/-/core-0.3.39.tgz", + "integrity": "sha512-muXs4asy1A7qDtcdznxqyBfxf4N6qxofY/S0c95vbsWa0r9YAE2PttHIjcuxSy1q2jUiTkpCcgFEjNJRQRVhEw==", + "license": "MIT", + "dependencies": { + "@cfworker/json-schema": "^4.0.2", + "ansi-styles": "^5.0.0", + "camelcase": "6", + "decamelize": "1.2.0", + "js-tiktoken": "^1.0.12", + "langsmith": ">=0.2.8 <0.4.0", + "mustache": "^4.2.0", + "p-queue": "^6.6.2", + "p-retry": "4", + "uuid": "^10.0.0", + "zod": "^3.22.4", + "zod-to-json-schema": "^3.22.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@langchain/groq": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@langchain/groq/-/groq-0.1.3.tgz", + "integrity": "sha512-dMzvBVaLf/0IQoHdAOAN8W/PbOcwgbvgUMCn02CqvCC90mxZ45LI0Tipzqnoaam0hiKALR5hLc3dNj1oCYV92w==", + "license": "MIT", + "dependencies": { + "@langchain/openai": "~0.3.0", + "groq-sdk": "^0.5.0", + "zod": "^3.22.4", + "zod-to-json-schema": "^3.22.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@langchain/core": ">=0.2.21 <0.4.0" + } + }, + "node_modules/@langchain/ollama": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@langchain/ollama/-/ollama-0.1.5.tgz", + "integrity": "sha512-S2tF94uIJtXavekKg10LvTV+jIelOIrubaCnje8BopfiNOVcnzsSulUL4JH0wvdxMZq0vbE4/i9RwC2q9ivOmA==", + "license": "MIT", + "dependencies": { + "ollama": "^0.5.9", + "uuid": "^10.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@langchain/core": ">=0.2.21 <0.4.0" + } + }, + "node_modules/@langchain/openai": { + "version": "0.3.16", + "resolved": "https://registry.npmjs.org/@langchain/openai/-/openai-0.3.16.tgz", + "integrity": "sha512-Om9HRlTeI0Ou6D4pfxbWHop4WGfkCdV/7v1W/+Jr7NSf0BNoA9jk5GqGms8ZtOYSGgPvizDu3i0TrM3B4cN4NA==", + "license": "MIT", + "dependencies": { + "js-tiktoken": "^1.0.12", + "openai": "^4.77.0", + "zod": "^3.22.4", + "zod-to-json-schema": "^3.22.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@langchain/core": ">=0.2.26 <0.4.0" + } + }, + "node_modules/@langchain/textsplitters": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@langchain/textsplitters/-/textsplitters-0.1.0.tgz", + "integrity": "sha512-djI4uw9rlkAb5iMhtLED+xJebDdAG935AdP4eRTB02R7OB/act55Bj9wsskhZsvuyQRpO4O1wQOp85s6T6GWmw==", + "license": "MIT", + "dependencies": { + "js-tiktoken": "^1.0.12" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@langchain/core": ">=0.2.21 <0.4.0" + } + }, + "node_modules/@lerna/create": { + "version": "8.1.9", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-8.1.9.tgz", + "integrity": "sha512-DPnl5lPX4v49eVxEbJnAizrpMdMTBz1qykZrAbBul9rfgk531v8oAt+Pm6O/rpAleRombNM7FJb5rYGzBJatOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@npmcli/arborist": "7.5.4", + "@npmcli/package-json": "5.2.0", + "@npmcli/run-script": "8.1.0", + "@nx/devkit": ">=17.1.2 < 21", + "@octokit/plugin-enterprise-rest": "6.0.1", + "@octokit/rest": "19.0.11", + "aproba": "2.0.0", + "byte-size": "8.1.1", + "chalk": "4.1.0", + "clone-deep": "4.0.1", + "cmd-shim": "6.0.3", + "color-support": "1.1.3", + "columnify": "1.6.0", + "console-control-strings": "^1.1.0", + "conventional-changelog-core": "5.0.1", + "conventional-recommended-bump": "7.0.1", + "cosmiconfig": "9.0.0", + "dedent": "1.5.3", + "execa": "5.0.0", + "fs-extra": "^11.2.0", + "get-stream": "6.0.0", + "git-url-parse": "14.0.0", + "glob-parent": "6.0.2", + "globby": "11.1.0", + "graceful-fs": "4.2.11", + "has-unicode": "2.0.1", + "ini": "^1.3.8", + "init-package-json": "6.0.3", + "inquirer": "^8.2.4", + "is-ci": "3.0.1", + "is-stream": "2.0.0", + "js-yaml": "4.1.0", + "libnpmpublish": "9.0.9", + "load-json-file": "6.2.0", + "lodash": "^4.17.21", + "make-dir": "4.0.0", + "minimatch": "3.0.5", + "multimatch": "5.0.0", + "node-fetch": "2.6.7", + "npm-package-arg": "11.0.2", + "npm-packlist": "8.0.2", + "npm-registry-fetch": "^17.1.0", + "nx": ">=17.1.2 < 21", + "p-map": "4.0.0", + "p-map-series": "2.1.0", + "p-queue": "6.6.2", + "p-reduce": "^2.1.0", + "pacote": "^18.0.6", + "pify": "5.0.0", + "read-cmd-shim": "4.0.0", + "resolve-from": "5.0.0", + "rimraf": "^4.4.1", + "semver": "^7.3.4", + "set-blocking": "^2.0.0", + "signal-exit": "3.0.7", + "slash": "^3.0.0", + "ssri": "^10.0.6", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "strong-log-transformer": "2.1.0", + "tar": "6.2.1", + "temp-dir": "1.0.0", + "upath": "2.0.1", + "uuid": "^10.0.0", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "5.0.1", + "wide-align": "1.1.5", + "write-file-atomic": "5.0.1", + "write-pkg": "4.0.0", + "yargs": "17.7.2", + "yargs-parser": "21.1.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@lerna/create/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@lerna/create/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@lerna/create/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@lerna/create/node_modules/execa": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@lerna/create/node_modules/get-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@lerna/create/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@lerna/create/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@lerna/create/node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@lerna/create/node_modules/glob/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@lerna/create/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/@lerna/create/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@lerna/create/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@lerna/create/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@lerna/create/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/@lerna/create/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@lerna/create/node_modules/rimraf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^9.2.0" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@lerna/create/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==", + "dev": true, + "license": "ISC" + }, + "node_modules/@lerna/create/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@lerna/create/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@lerna/create/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/@lerna/create/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@lit-labs/react": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/react/-/react-1.2.1.tgz", + "integrity": "sha512-DiZdJYFU0tBbdQkfwwRSwYyI/mcWkg3sWesKRsHUd4G+NekTmmeq9fzsurvcKTNVa0comNljwtg4Hvi1ds3V+A==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@lit/reactive-element": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", + "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.0.0" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@mdn/browser-compat-data": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", + "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/@mdx-js/react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", + "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.3.0.tgz", + "integrity": "sha512-/d8NwSuC3rMwCjswmGB3oXC4sdDuhIUJ8inVQAxGrADJhf0eq/kmy+foFKvpYhHl2siOZR+MLdFttw6/Bzqtqg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/icons-material": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.3.0.tgz", + "integrity": "sha512-3uWws6DveDn5KxCS34p+sUNMxehuclQY6OmoJeJJ+Sfg9L7LGBpksY/nX5ywKAqickTZnn+sQyVcp963ep9jvw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@mui/material": "^6.3.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-6.3.0.tgz", + "integrity": "sha512-qhlTFyRMxfoVPxUtA5e8IvqxP0dWo2Ij7cvot7Orag+etUlZH+3UwD8gZGt+3irOoy7Ms3UNBflYjwEikUXtAQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/core-downloads-tracker": "^6.3.0", + "@mui/system": "^6.3.0", + "@mui/types": "^7.2.20", + "@mui/utils": "^6.3.0", + "@popperjs/core": "^2.11.8", + "@types/react-transition-group": "^4.4.12", + "clsx": "^2.1.1", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^19.0.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@mui/material-pigment-css": "^6.3.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@mui/material-pigment-css": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", + "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==", + "license": "MIT" + }, + "node_modules/@mui/private-theming": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.3.0.tgz", + "integrity": "sha512-tdS8jvqMokltNTXg6ioRCCbVdDmZUJZa/T9VtTnX2Lwww3FTgCakst9tWLZSxm1fEE9Xp0m7onZJmgeUmWQYVw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/utils": "^6.3.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.3.0.tgz", + "integrity": "sha512-iWA6eyiPkO07AlHxRUvI7dwVRSc+84zV54kLmjUms67GJeOWVuXlu8ZO+UhCnwJxHacghxnabsMEqet5PYQmHg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@emotion/cache": "^11.13.5", + "@emotion/serialize": "^1.3.3", + "@emotion/sheet": "^1.4.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-6.3.0.tgz", + "integrity": "sha512-L+8hUHMNlfReKSqcnVslFrVhoNfz/jw7Fe9NfDE85R3KarvZ4O3MU9daF/lZeqEAvnYxEilkkTfDwQ7qCgJdFg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/private-theming": "^6.3.0", + "@mui/styled-engine": "^6.3.0", + "@mui/types": "^7.2.20", + "@mui/utils": "^6.3.0", + "clsx": "^2.1.1", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.20", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.20.tgz", + "integrity": "sha512-straFHD7L8v05l/N5vcWk+y7eL9JF0C2mtph/y4BPm3gn2Eh61dDwDB65pa8DLss3WJfDXYC7Kx5yjP0EmXpgw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.3.0.tgz", + "integrity": "sha512-MkDBF08OPVwXhAjedyMykRojgvmf0y/jxkBWjystpfI/pasyTYrfdv4jic6s7j3y2+a+SJzS9qrD6X8ZYj/8AQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/types": "^7.2.20", + "@types/prop-types": "^15.7.14", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.0.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", + "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==", + "license": "MIT" + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", + "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emnapi/core": "^1.1.0", + "@emnapi/runtime": "^1.1.0", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/agent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "dev": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@npmcli/agent/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/arborist": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-7.5.4.tgz", + "integrity": "sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==", + "dev": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^3.1.1", + "@npmcli/installed-package-contents": "^2.1.0", + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/metavuln-calculator": "^7.1.1", + "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.1.0", + "@npmcli/query": "^3.1.0", + "@npmcli/redact": "^2.0.0", + "@npmcli/run-script": "^8.1.0", + "bin-links": "^4.0.4", + "cacache": "^18.0.3", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^7.0.2", + "json-parse-even-better-errors": "^3.0.2", + "json-stringify-nice": "^1.1.4", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^7.2.1", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.2", + "npm-pick-manifest": "^9.0.1", + "npm-registry-fetch": "^17.0.1", + "pacote": "^18.0.6", + "parse-conflict-json": "^3.0.0", + "proc-log": "^4.2.0", + "proggy": "^2.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "ssri": "^10.0.6", + "treeverse": "^3.0.0", + "walk-up-path": "^3.0.1" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/arborist/node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/arborist/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/arborist/node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "dev": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", + "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^4.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/map-workspaces": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz", + "integrity": "sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0", + "read-package-json-fast": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/metavuln-calculator": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz", + "integrity": "sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==", + "dev": true, + "license": "ISC", + "dependencies": { + "cacache": "^18.0.0", + "json-parse-even-better-errors": "^3.0.0", + "pacote": "^18.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/name-from-folder": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz", + "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz", + "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/query": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-3.1.0.tgz", + "integrity": "sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/redact": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", + "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", + "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@nx/devkit": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-20.3.0.tgz", + "integrity": "sha512-u9oRd2F33DLNWPbzpYGW7xuMEYUAOwO9DLP9nGYpxbZXy6Z4AdoKeqhN+KBTyg8+DyQGuKUSEXcWriDyLLgcHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ejs": "^3.1.7", + "enquirer": "~2.3.6", + "ignore": "^5.0.4", + "minimatch": "9.0.3", + "semver": "^7.5.3", + "tmp": "~0.2.1", + "tslib": "^2.3.0", + "yargs-parser": "21.1.1" + }, + "peerDependencies": { + "nx": ">= 19 <= 21" + } + }, + "node_modules/@nx/devkit/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@nx/devkit/node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@nx/nx-darwin-arm64": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-20.3.0.tgz", + "integrity": "sha512-9PqSe1Sh7qNqA4GL0cZH0t3S0EZzb2Xn14XY9au7yf0+eoxyag1oETjjULrxLeUmSoXW2hDxzNtoqKFE9zF07Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-darwin-x64": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-20.3.0.tgz", + "integrity": "sha512-gsGGhJVvi5QZVVTZie5sNMo1zOAU+A2edm6DGegObdFRLV41Ju/Yrm/gTaSp4yUtywd3UU4S/30C/nI2c55adA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-freebsd-x64": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-20.3.0.tgz", + "integrity": "sha512-DiymYZBBu0upbiskdfn9KRyoXdyvKohezJiV3j4VkeRE8KR2p04NgwRQviDFbeD1cjWrDy9wk8y+G5PabLlqAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm-gnueabihf": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-20.3.0.tgz", + "integrity": "sha512-Aksx66e8jmt/4rGJ/5z34SWXbPcYr9Ht52UonEeuCdQdoEvAOs7yBUbllYOjIcUsfZikEyZgvqfiQslsggSJdQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm64-gnu": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-20.3.0.tgz", + "integrity": "sha512-Y5wmYEwF1bl014Ps8QjagI911VbViQSFHSTVOCNSObdAzig9E5o6NOkoWe+doT1UZLrrInnlkrggQUsbtdKjOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm64-musl": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-20.3.0.tgz", + "integrity": "sha512-yGcIkmImyOMfPkQSYH2EVjPmFE0VkLcO71Bbkpr3RlJ1N/vjYxsGbdnqPiBb8Wshib/hmwpiMHf/yzQtKH0SQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-x64-gnu": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.3.0.tgz", + "integrity": "sha512-nkA2DLI+rpmiuiy7dyXP4l9s7dgHkQWDX7lG1XltiT41RzAReJF1h8qBE6XrsAYE1CtI76DRWVphnc93+iZr+A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-x64-musl": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-20.3.0.tgz", + "integrity": "sha512-sPMtTt9iTrCmFEIp9Qv27UX9PeL1aqKck2dz2TAFbXKVtF6+djOdTcNnTYw45KIP6izcUcOXXAq4G0QSQE7CLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-win32-arm64-msvc": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-20.3.0.tgz", + "integrity": "sha512-ppfNa/8OfpWA9o26Pz3vArN4ulAC+Hx70/ghPRCP7ed1Mb3Z6yR2Ry9KfBRImbqajvuAExM0TePKMGq9LCdXmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-win32-x64-msvc": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-20.3.0.tgz", + "integrity": "sha512-8FOejZ4emtLSVn3pYWs4PIc3n4//qMbwMDPVxmPE8us3ir91Qh0bzr5zRj7Q8sEdSgvneXRXqtBp2grY2KMJsw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@oclif/core": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@oclif/core/-/core-4.2.0.tgz", + "integrity": "sha512-ETM2N/GL7W37Kv1Afv1j1Gh77CynS2ubEPP+p+MnjUXEjghNe7+bKAWhPkHnBuFAVFAqdv0qMpUAjxKLbsmbJw==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.2", + "ansis": "^3.3.2", + "clean-stack": "^3.0.1", + "cli-spinners": "^2.9.2", + "debug": "^4.4.0", + "ejs": "^3.1.10", + "get-package-type": "^0.1.0", + "globby": "^11.1.0", + "indent-string": "^4.0.0", + "is-wsl": "^2.2.0", + "lilconfig": "^3.1.3", + "minimatch": "^9.0.5", + "semver": "^7.6.3", + "string-width": "^4.2.3", + "supports-color": "^8", + "widest-line": "^3.1.0", + "wordwrap": "^1.0.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@oclif/core/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@oclif/core/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==", + "license": "MIT", + "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/@oclif/plugin-help": { + "version": "6.2.20", + "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-6.2.20.tgz", + "integrity": "sha512-2l4A/erCAdBWmJwb1LJ7TvSMbBUQbGhIzkdHZb5DMgFJC+Nwfeol5YojqRMeciyGkoqmWPBGENwr0LJgZp2skw==", + "license": "MIT", + "dependencies": { + "@oclif/core": "^4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@oclif/plugin-not-found": { + "version": "3.2.32", + "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-3.2.32.tgz", + "integrity": "sha512-8uyqhwq0I2qkBra6W6Ti0opBqDsBbMywVWplhbt1TkjMr9B8ZA8F1cQYa5Zz14blJD7dSS+OAhSHb/Ikkm1g4Q==", + "license": "MIT", + "dependencies": { + "@inquirer/prompts": "^7.2.0", + "@oclif/core": "^4", + "ansis": "^3.5.2", + "fast-levenshtein": "^3.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@oclif/plugin-warn-if-update-available": { + "version": "3.1.28", + "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.1.28.tgz", + "integrity": "sha512-15UI0yrzsodQLltntbUOmR7Nyd1tmUWzbcnR7QJvWMgEMuImNjqNdSaeXUFc3UBtaK266YatJYJWL5SCb/MTWw==", + "license": "MIT", + "dependencies": { + "@oclif/core": "^4", + "ansis": "^3.4.0", + "debug": "^4.4.0", + "http-call": "^5.2.2", + "lodash": "^4.17.21", + "registry-auth-token": "^5.0.3" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@oclif/test": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@oclif/test/-/test-4.1.4.tgz", + "integrity": "sha512-0gUIkJJVDDpM2BNuo1+vBrf71DO3iVSFjUcLo+kma6co5vVOKG1COfVmxV7mB8XCNTuBWAZ4pJ4vsASxTxE5yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansis": "^3.4.0", + "debug": "^4.4.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@oclif/core": ">= 3.0.0" + } + }, + "node_modules/@octokit/auth-token": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", + "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@octokit/core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz", + "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">= 14" } }, - "node_modules/@babel/traverse/node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "node_modules/@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.18.6" + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">= 14" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@octokit/graphql": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz", + "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==", "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "universal-user-agent": "^6.0.0" + }, "engines": { - "node": ">=4" + "node": ">= 14" } }, - "node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "node_modules/@octokit/openapi-types": { + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz", + "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-enterprise-rest": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", + "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", + "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" + "@octokit/tsconfig": "^1.0.2", + "@octokit/types": "^9.2.3" }, "engines": { - "node": ">=6.9.0" + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=4" } }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "node_modules/@octokit/plugin-request-log": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", + "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz", + "integrity": "sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==", "dev": true, + "license": "MIT", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" + "@octokit/types": "^10.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=3" } }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz", + "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, "engines": { - "node": ">= 4" + "node": ">= 14" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true + "node_modules/@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "node_modules/@octokit/request/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, + "license": "MIT", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=10.10.0" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "node_modules/@octokit/request/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" }, - "node_modules/@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "node_modules/@octokit/request/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/@octokit/request/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@octokit/rest": { + "version": "19.0.11", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.11.tgz", + "integrity": "sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw==", "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/core": "^4.2.1", + "@octokit/plugin-paginate-rest": "^6.1.2", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^7.1.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">= 14" } }, - "node_modules/@isaacs/string-locale-compare": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", - "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", - "dev": true + "node_modules/@octokit/tsconfig": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", + "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==", + "dev": true, + "license": "MIT" }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", "dev": true, + "license": "MIT", "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@octokit/openapi-types": "^18.0.0" + } + }, + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "license": "Apache-2.0", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/api-metrics": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.27.0.tgz", + "integrity": "sha512-tB79288bwjkdhPNpw4UdOEy3bacVwtol6Que7cAu8KEJ9ULjRfSiwpYEwJY/oER3xZ7zNFz0uiJ7N1jSiotpVA==", + "deprecated": "Please use @opentelemetry/api >= 1.3.0", + "license": "Apache-2.0", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/context-async-hooks": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.0.tgz", + "integrity": "sha512-roCetrG/cz0r/gugQm/jFo75UxblVvHaNSRoR0kSSRSzXFAiIBqFCZuH458BHBNRtRe+0yJdIJ21L9t94bw7+g==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/core": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.0.tgz", + "integrity": "sha512-Q/3u/K73KUjTCnFUP97ZY+pBjQ1kPEgjOfXj/bJl8zW7GbXdkw6cwuyZk6ZTXkVgCBsYRYUzx4fvYK1jxdb9MA==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "1.28.0" }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@istanbuljs/load-nyc-config/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==", - "dev": true, + "node_modules/@opentelemetry/exporter-jaeger": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.30.0.tgz", + "integrity": "sha512-ovV16vnvx0h6dwsHaUnvLHrqkjmejeaUcbgtBPpR+gt65ZhdYso5dgDFkvzqvPnyclKU7muE6QBf+0xRMePJcw==", + "license": "Apache-2.0", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@opentelemetry/core": "1.30.0", + "@opentelemetry/sdk-trace-base": "1.30.0", + "@opentelemetry/semantic-conventions": "1.28.0", + "jaeger-client": "^3.15.0" }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/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==", - "dev": true, + "node_modules/@opentelemetry/instrumentation": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.27.0.tgz", + "integrity": "sha512-dUwY/VoDptdK8AYigwS3IKblG+unV5xIdV4VQKy+nX5aT3f7vd5PMYs4arCQSYLbLRe0s7GxK6S9dtjai/TsHQ==", + "license": "Apache-2.0", "dependencies": { - "p-locate": "^4.1.0" + "@opentelemetry/api-metrics": "0.27.0", + "require-in-the-middle": "^5.0.3", + "semver": "^7.3.2", + "shimmer": "^1.2.1" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" + } + }, + "node_modules/@opentelemetry/instrumentation-grpc": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.27.0.tgz", + "integrity": "sha512-aFHcAeeLfqoH8PMjmdqEwZwXDJtFSkWmGDBZeH2yrx3KzFMVBB/UJEr1n/ZC6AqfqahL/qqB1N8EnoCoOcs5ig==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-metrics": "0.27.0", + "@opentelemetry/instrumentation": "0.27.0", + "@opentelemetry/semantic-conventions": "1.0.1" }, "engines": { - "node": ">=8" + "node": ">=8.0.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/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==", - "dev": true, + "node_modules/@opentelemetry/instrumentation-grpc/node_modules/@opentelemetry/semantic-conventions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.1.tgz", + "integrity": "sha512-7XU1sfQ8uCVcXLxtAHA8r3qaLJ2oq7sKtEwzZhzuEXqYmjW+n+J4yM3kNo0HQo3Xp1eUe47UM6Wy6yuAvIyllg==", + "license": "Apache-2.0", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/propagator-b3": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-b3/-/propagator-b3-1.30.0.tgz", + "integrity": "sha512-lcobQQmd+hLdtxJJKu/i51lNXmF1PJJ7Y9B97ciHRVQuMI260vSZG7Uf4Zg0fqR8PB+fT/7rnlDwS0M7QldZQQ==", + "license": "Apache-2.0", "dependencies": { - "p-try": "^2.0.0" + "@opentelemetry/core": "1.30.0" }, "engines": { - "node": ">=6" + "node": ">=14" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@istanbuljs/load-nyc-config/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==", - "dev": true, + "node_modules/@opentelemetry/propagator-jaeger": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.30.0.tgz", + "integrity": "sha512-0hdP495V6HPRkVpowt54+Swn5NdesMIRof+rlp0mbnuIUOM986uF+eNxnPo9q5MmJegVBRTxgMHXXwvnXRnKRg==", + "license": "Apache-2.0", "dependencies": { - "p-limit": "^2.2.0" + "@opentelemetry/core": "1.30.0" }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, + "node_modules/@opentelemetry/resources": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.0.tgz", + "integrity": "sha512-5mGMjL0Uld/99t7/pcd7CuVtJbkARckLVuiOX84nO8RtLtIz0/J6EOHM2TGvPZ6F4K+XjUq13gMx14w80SVCQg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.30.0", + "@opentelemetry/semantic-conventions": "1.28.0" + }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, + "node_modules/@opentelemetry/sdk-trace-base": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.0.tgz", + "integrity": "sha512-RKQDaDIkV7PwizmHw+rE/FgfB2a6MBx+AEVVlAHXRG1YYxLiBpPX2KhmoB99R5vA4b72iJrjle68NDWnbrE9Dg==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "1.30.0", + "@opentelemetry/resources": "1.30.0", + "@opentelemetry/semantic-conventions": "1.28.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-node": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.30.0.tgz", + "integrity": "sha512-MeXkXEdBs9xq1JSGTr/3P1lHBSUBaVmo1+UpoQhUpviPMzDXy0MNsdTC7KKI6/YcG74lTX6eqeNjlC1jV4Rstw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/context-async-hooks": "1.30.0", + "@opentelemetry/core": "1.30.0", + "@opentelemetry/propagator-b3": "1.30.0", + "@opentelemetry/propagator-jaeger": "1.30.0", + "@opentelemetry/sdk-trace-base": "1.30.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz", + "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@playwright/test": { + "version": "1.49.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.49.1.tgz", + "integrity": "sha512-Ky+BVzPz8pL6PQxHqNRW1k3mIyv933LML7HktS8uik0bUXNCdPhoS/kLihiO1tMf/egaJb4IutXd7UywvXEW+g==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "playwright": "1.49.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12.22.0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "graceful-fs": "4.2.10" }, "engines": { - "node": ">=6.0.0" + "node": ">=12.22.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "dev": true, + "node_modules/@pnpm/network.ca-file/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==", + "license": "ISC" + }, + "node_modules/@pnpm/npm-conf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", + "license": "MIT", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@prisma/client": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.1.0.tgz", + "integrity": "sha512-AbQYc5+EJKm1Ydfq3KxwcGiy7wIbm4/QbjCKWWoNROtvy7d6a3gmAGkKjK0iUCzh+rHV8xDhD5Cge8ke/kiy5Q==", + "hasInstallScript": true, + "license": "Apache-2.0", "engines": { - "node": ">=6.0.0" + "node": ">=18.18" + }, + "peerDependencies": { + "prisma": "*" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + } } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true + "node_modules/@prisma/debug": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.1.0.tgz", + "integrity": "sha512-0himsvcM4DGBTtvXkd2Tggv6sl2JyUYLzEGXXleFY+7Kp6rZeSS3hiTW9mwtUlXrwYbJP6pwlVNB7jYElrjWUg==", + "devOptional": true, + "license": "Apache-2.0" }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "dev": true, + "node_modules/@prisma/engines": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.1.0.tgz", + "integrity": "sha512-GnYJbCiep3Vyr1P/415ReYrgJUjP79fBNc1wCo7NP6Eia0CzL2Ot9vK7Infczv3oK7JLrCcawOSAxFxNFsAERQ==", + "devOptional": true, + "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@prisma/debug": "6.1.0", + "@prisma/engines-version": "6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959", + "@prisma/fetch-engine": "6.1.0", + "@prisma/get-platform": "6.1.0" } }, - "node_modules/@lerna/add": { + "node_modules/@prisma/engines-version": { + "version": "6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959.tgz", + "integrity": "sha512-PdJqmYM2Fd8K0weOOtQThWylwjsDlTig+8Pcg47/jszMuLL9iLIaygC3cjWJLda69siRW4STlCTMSgOjZzvKPQ==", + "devOptional": true, + "license": "Apache-2.0" + }, + "node_modules/@prisma/fetch-engine": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-6.1.0.tgz", - "integrity": "sha512-f2cAeS1mE/p7QvSRn5TCgdUXw6QVbu8PeRxaTOxTThhTdJIWdXZfY00QjAsU6jw1PdYXK1qGUSwWOPkdR16mBg==", - "dev": true, + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.1.0.tgz", + "integrity": "sha512-asdFi7TvPlEZ8CzSZ/+Du5wZ27q6OJbRSXh+S8ISZguu+S9KtS/gP7NeXceZyb1Jv1SM1S5YfiCv+STDsG6rrg==", + "devOptional": true, + "license": "Apache-2.0", "dependencies": { - "@lerna/bootstrap": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/filter-options": "6.1.0", - "@lerna/npm-conf": "6.1.0", - "@lerna/validation-error": "6.1.0", - "dedent": "^0.7.0", - "npm-package-arg": "8.1.1", - "p-map": "^4.0.0", - "pacote": "^13.6.1", - "semver": "^7.3.4" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "@prisma/debug": "6.1.0", + "@prisma/engines-version": "6.1.0-21.11f085a2012c0f4778414c8db2651556ee0ef959", + "@prisma/get-platform": "6.1.0" + } + }, + "node_modules/@prisma/generator-helper": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@prisma/generator-helper/-/generator-helper-5.22.0.tgz", + "integrity": "sha512-LwqcBQ5/QsuAaLNQZAIVIAJDJBMjHwMwn16e06IYx/3Okj/xEEfw9IvrqB2cJCl3b2mCBlh3eVH0w9WGmi4aHg==", + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "5.22.0" } }, - "node_modules/@lerna/bootstrap": { + "node_modules/@prisma/generator-helper/node_modules/@prisma/debug": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.22.0.tgz", + "integrity": "sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ==", + "license": "Apache-2.0" + }, + "node_modules/@prisma/get-platform": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-6.1.0.tgz", - "integrity": "sha512-aDxKqgxexVj/Z0B1aPu7P1iPbPqhk1FPkl/iayCmPlkAh90pYEH0uVytGzi1hFB5iXEfG7Pa6azGQywUodx/1g==", - "dev": true, - "dependencies": { - "@lerna/command": "6.1.0", - "@lerna/filter-options": "6.1.0", - "@lerna/has-npm-version": "6.1.0", - "@lerna/npm-install": "6.1.0", - "@lerna/package-graph": "6.1.0", - "@lerna/pulse-till-done": "6.1.0", - "@lerna/rimraf-dir": "6.1.0", - "@lerna/run-lifecycle": "6.1.0", - "@lerna/run-topologically": "6.1.0", - "@lerna/symlink-binary": "6.1.0", - "@lerna/symlink-dependencies": "6.1.0", - "@lerna/validation-error": "6.1.0", - "@npmcli/arborist": "5.3.0", - "dedent": "^0.7.0", - "get-port": "^5.1.1", - "multimatch": "^5.0.0", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0", - "p-waterfall": "^2.1.1", - "semver": "^7.3.4" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.1.0.tgz", + "integrity": "sha512-ia8bNjboBoHkmKGGaWtqtlgQOhCi7+f85aOkPJKgNwWvYrT6l78KgojLekE8zMhVk0R9lWcifV0Pf8l3/15V0Q==", + "devOptional": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/debug": "6.1.0" } }, - "node_modules/@lerna/bootstrap/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" } }, - "node_modules/@lerna/bootstrap/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@puppeteer/browsers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.3.0.tgz", + "integrity": "sha512-ioXoq9gPxkss4MYhD+SFaU9p1IHFUX0ILAWFPyjGaBdjLsYAlZw6j1iLA0N/m12uVHLFDfSYNF7EQccjinIMDA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "debug": "^4.3.5", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.4.0", + "semver": "^7.6.3", + "tar-fs": "^3.0.6", + "unbzip2-stream": "^1.4.3", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/@lerna/bootstrap/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@rollup/plugin-commonjs": { + "version": "26.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.3.tgz", + "integrity": "sha512-2BJcolt43MY+y5Tz47djHkodCC3c1VKVrBDKpVqHKpQ9z9S158kCCqB8NF6/gzxLdNlYW9abB3Ibh+kOWLp8KQ==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^10.4.1", + "is-reference": "1.2.1", + "magic-string": "^0.30.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@lerna/changed": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-6.1.0.tgz", - "integrity": "sha512-p7C2tf1scmvoUC1Osck/XIKVKXAQ8m8neL8/rfgKSYsvUVjsOB1LbF5HH1VUZntE6S4OxkRxUQGkAHVf5xrGqw==", + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", + "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/collect-updates": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/listable": "6.1.0", - "@lerna/output": "6.1.0" + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@lerna/check-working-tree": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-6.1.0.tgz", - "integrity": "sha512-hSciDmRqsNPevMhAD+SYbnhjatdb7UUu9W8vTyGtUXkrq2xtRZU0vAOgqovV8meirRkbC41pZePYKqyQtF0y3w==", + "node_modules/@rollup/plugin-replace": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", + "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/collect-uncommitted": "6.1.0", - "@lerna/describe-ref": "6.1.0", - "@lerna/validation-error": "6.1.0" + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@lerna/child-process": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-6.1.0.tgz", - "integrity": "sha512-jhr3sCFeps6Y15SCrWEPvqE64i+QLOTSh+OzxlziCBf7ZEUu7sF0yA4n5bAqw8j43yCKhhjkf/ZLYxZe+pnl3Q==", + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "execa": "^5.0.0", - "strong-log-transformer": "^2.1.0" + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@lerna/clean": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-6.1.0.tgz", - "integrity": "sha512-LRK2hiNUiBhPe5tmJiefOVpkaX2Yob0rp15IFNIbuteRWUJg0oERFQo62WvnxwElfzKSOhr8OGuEq/vN4bMrRA==", + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz", + "integrity": "sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/command": "6.1.0", - "@lerna/filter-options": "6.1.0", - "@lerna/prompt": "6.1.0", - "@lerna/pulse-till-done": "6.1.0", - "@lerna/rimraf-dir": "6.1.0", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0", - "p-waterfall": "^2.1.1" + "@rollup/pluginutils": "^5.1.0", + "resolve": "^1.22.1" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } } }, - "node_modules/@lerna/cli": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-6.1.0.tgz", - "integrity": "sha512-p4G/OSPIrHiNkEl8bXrQdFOh4ORAZp2+ljvbXmAxpdf2qmopaUdr+bZYtIAxd+Z42SxRnDNz9IEyR0kOsARRQQ==", + "node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/global-options": "6.1.0", - "dedent": "^0.7.0", - "npmlog": "^6.0.2", - "yargs": "^16.2.0" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@lerna/cli/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz", + "integrity": "sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz", + "integrity": "sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz", + "integrity": "sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz", + "integrity": "sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz", + "integrity": "sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz", + "integrity": "sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz", + "integrity": "sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz", + "integrity": "sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz", + "integrity": "sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz", + "integrity": "sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz", + "integrity": "sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz", + "integrity": "sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz", + "integrity": "sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz", + "integrity": "sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz", + "integrity": "sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz", + "integrity": "sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz", + "integrity": "sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@lerna/cli/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz", + "integrity": "sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@lerna/cli/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz", + "integrity": "sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@lerna/collect-uncommitted": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-6.1.0.tgz", - "integrity": "sha512-VvWvqDZG+OiF4PwV4Ro695r3+8ty4w+11Bnq8tbsbu5gq8qZiam8Fkc/TQLuNNqP0SPi4qmMPaIzWvSze3SmDg==", - "dev": true, + "node_modules/@routr/common": { + "version": "2.13.5", + "resolved": "https://registry.npmjs.org/@routr/common/-/common-2.13.5.tgz", + "integrity": "sha512-AO6h7FFalr2NqQJxvDB+XAstcVZOF2SAo3Z33HAdt7N/dG+SuL9QOQtZ5V3jLLSMdrAQ9IslPlNmp5ZvjX/0Kg==", + "license": "MIT", "dependencies": { - "@lerna/child-process": "6.1.0", - "chalk": "^4.1.0", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "@fonoster/common": "0.6.0", + "@fonoster/logger": "0.6.0", + "@grpc/grpc-js": "~1.10.1", + "@grpc/proto-loader": "~0.7.10", + "@opentelemetry/api": "^1.0.4", + "@opentelemetry/exporter-jaeger": "^1.0.4", + "@opentelemetry/instrumentation": "^0.27.0", + "@opentelemetry/instrumentation-grpc": "^0.27.0", + "@opentelemetry/resources": "^1.0.4", + "@opentelemetry/sdk-trace-base": "^1.0.4", + "@opentelemetry/sdk-trace-node": "^1.0.4", + "@opentelemetry/semantic-conventions": "^1.0.4", + "ajv": "^6.12.6", + "fp-ts": "^2.11.8", + "grpc-health-check": "^2.0.2", + "ip-utils": "^2.4.0", + "js-yaml": "^4.1.0", + "pb-util": "^1.0.3", + "phone": "^3.1.32", + "toml": "^3.0.0", + "validator": "^13.7.0" } }, - "node_modules/@lerna/collect-uncommitted/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, + "node_modules/@routr/common/node_modules/@fonoster/common": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@fonoster/common/-/common-0.6.0.tgz", + "integrity": "sha512-khGVZQBKWJ7FRN5elKnIlVCtYZpTxBmi6bTVc06Pycea1U6AG1Yc6yLfnGeZ8uKDXOLdwQlsDUrKuC6rUWR82A==", + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@fonoster/logger": "^0.6.0", + "@grpc/grpc-js": "^1.10.6", + "@grpc/proto-loader": "^0.7.12", + "grpc-health-check": "^2.0.2", + "handlebars": "^4.7.8", + "nodemailer": "^6.9.13", + "zod-validation-error": "^3.3.0" } }, - "node_modules/@lerna/collect-uncommitted/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, + "node_modules/@routr/common/node_modules/@fonoster/logger": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@fonoster/logger/-/logger-0.6.0.tgz", + "integrity": "sha512-WaqeVFbHKPJaif9Axw7denhTQe8Yz9v+OYiMFcmRjEE5A27/26jCG/oKIEtq3k2A6uuTkgTs88t7TpqK4v/fIA==", + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "fluent-logger": "^3.4.1", + "winston": "^3.13.0" } }, - "node_modules/@lerna/collect-uncommitted/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, + "node_modules/@routr/common/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@lerna/collect-updates": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-6.1.0.tgz", - "integrity": "sha512-dgH7kgstwCXFctylQ4cxuCmhwSIE6VJZfHdh2bOaLuncs6ATMErKWN/mVuFHuUWEqPDRyy5Ky40Cu9S40nUq5w==", - "dev": true, + "node_modules/@routr/common/node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "license": "MIT", "dependencies": { - "@lerna/child-process": "6.1.0", - "@lerna/describe-ref": "6.1.0", - "minimatch": "^3.0.4", - "npmlog": "^6.0.2", - "slash": "^3.0.0" + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/collect-updates/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "bin": { + "handlebars": "bin/handlebars" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/collect-updates/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "node": ">=0.4.7" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/@lerna/collect-updates/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "node_modules/@routr/common/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==", + "license": "MIT" }, - "node_modules/@lerna/command": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-6.1.0.tgz", - "integrity": "sha512-OnMqBDaEBY0C8v9CXIWFbGGKgsiUtZrnKVvQRbupMSZDKMpVGWIUd3X98Is9j9MAmk1ynhBMWE9Fwai5ML/mcA==", - "dev": true, + "node_modules/@routr/sdk": { + "version": "2.13.5", + "resolved": "https://registry.npmjs.org/@routr/sdk/-/sdk-2.13.5.tgz", + "integrity": "sha512-bKRLSfhFZGdzSBeO7lREVuirSjIq8sIpR0lQ0/twpaf5xW/d9DaJL5UcjpNktxTJSNl95GO106HHG3N48YHl6A==", + "license": "MIT", "dependencies": { - "@lerna/child-process": "6.1.0", - "@lerna/package-graph": "6.1.0", - "@lerna/project": "6.1.0", - "@lerna/validation-error": "6.1.0", - "@lerna/write-log-file": "6.1.0", - "clone-deep": "^4.0.1", - "dedent": "^0.7.0", - "execa": "^5.0.0", - "is-ci": "^2.0.0", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/command/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, + "@fonoster/logger": "0.6.0", + "@grpc/grpc-js": "~1.10.1", + "@opentelemetry/api": "^1.0.4", + "@opentelemetry/exporter-jaeger": "^1.0.4", + "@opentelemetry/instrumentation": "^0.27.0", + "@opentelemetry/instrumentation-grpc": "^0.27.0", + "@opentelemetry/resources": "^1.0.4", + "@opentelemetry/sdk-trace-base": "^1.0.4", + "@opentelemetry/sdk-trace-node": "^1.0.4", + "@opentelemetry/semantic-conventions": "^1.0.4", + "@routr/common": "^2.13.5", + "google-protobuf": "^3.9.2", + "pb-util": "^1.0.3" + } + }, + "node_modules/@routr/sdk/node_modules/@fonoster/logger": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@fonoster/logger/-/logger-0.6.0.tgz", + "integrity": "sha512-WaqeVFbHKPJaif9Axw7denhTQe8Yz9v+OYiMFcmRjEE5A27/26jCG/oKIEtq3k2A6uuTkgTs88t7TpqK4v/fIA==", + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "fluent-logger": "^3.4.1", + "winston": "^3.13.0" } }, - "node_modules/@lerna/command/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@sigstore/bundle": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@lerna/command/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@sigstore/core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, + "license": "Apache-2.0", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@lerna/conventional-commits": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-6.1.0.tgz", - "integrity": "sha512-Tipo3cVr8mNVca4btzrCIzct59ZJWERT8/ZCZ/TQWuI4huUJZs6LRofLtB0xsGJAVZ7Vz2WRXAeH4XYgeUxutQ==", + "node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", "dev": true, - "dependencies": { - "@lerna/validation-error": "6.1.0", - "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-core": "^4.2.4", - "conventional-recommended-bump": "^6.1.0", - "fs-extra": "^9.1.0", - "get-stream": "^6.0.0", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "pify": "^5.0.0", - "semver": "^7.3.4" - }, + "license": "Apache-2.0", "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@lerna/conventional-commits/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@sigstore/sign": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@lerna/conventional-commits/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/@sigstore/tuf": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@lerna/conventional-commits/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@sigstore/verify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@lerna/conventional-commits/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "license": "MIT" }, - "node_modules/@lerna/create": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-6.1.0.tgz", - "integrity": "sha512-ZqlknXu0L29cV5mcfNgBLl+1RbKTWmNk8mj545zgXc7qQDgmrY+EVvrs8Cirey8C7bBpVkzP7Brzze0MSoB4rQ==", - "dev": true, - "dependencies": { - "@lerna/child-process": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/npm-conf": "6.1.0", - "@lerna/validation-error": "6.1.0", - "dedent": "^0.7.0", - "fs-extra": "^9.1.0", - "init-package-json": "^3.0.2", - "npm-package-arg": "8.1.1", - "p-reduce": "^2.1.0", - "pacote": "^13.6.1", - "pify": "^5.0.0", - "semver": "^7.3.4", - "slash": "^3.0.0", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^4.0.0", - "yargs-parser": "20.2.4" - }, + "node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "license": "MIT", "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/create-symlink": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-6.1.0.tgz", - "integrity": "sha512-ulMa5OUJEwEWBHSgCUNGxrcsJllq1YMYWqhufvIigmMPJ0Zv3TV1Hha5i2MsqLJAakxtW0pNuwdutkUTtUdgxQ==", - "dev": true, - "dependencies": { - "cmd-shim": "^5.0.0", - "fs-extra": "^9.1.0", - "npmlog": "^6.0.2" + "node": ">=14.16" }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/@lerna/create-symlink/node_modules/are-we-there-yet": { + "node_modules/@sinonjs/commons": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "type-detect": "4.0.8" } }, - "node_modules/@lerna/create-symlink/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/@sinonjs/fake-timers": { + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" + "@sinonjs/commons": "^3.0.1" } }, - "node_modules/@lerna/create-symlink/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@sinonjs/samsam": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.2.tgz", + "integrity": "sha512-v46t/fwnhejRSFTGqbpn9u+LQ9xJDse10gNnPgAcxgdoCDMXj/G2asWAC/8Qs+BAZDicX+MNZouXT1A7c83kVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@sinonjs/commons": "^3.0.1", + "lodash.get": "^4.4.2", + "type-detect": "^4.1.0" } }, - "node_modules/@lerna/create-symlink/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@sinonjs/samsam/node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=4" } }, - "node_modules/@lerna/create/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz", + "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==", "dev": true, + "license": "(Unlicense OR Apache-2.0)" + }, + "node_modules/@smithy/abort-controller": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.9.tgz", + "integrity": "sha512-yiW0WI30zj8ZKoSYNx90no7ugVn3khlyH/z5W8qtKBtVE6awRALbhSG+2SAHA1r6bO/6M9utxYKVZ3PCJ1rWxw==", + "license": "Apache-2.0", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": ">=10" + "node": ">=16.0.0" } }, - "node_modules/@lerna/describe-ref": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-6.1.0.tgz", - "integrity": "sha512-0RQAYnxBaMz1SrEb/rhfR+8VeZx5tvCNYKRee5oXIDZdQ2c6/EPyrKCp3WcqiuOWY50SfGOVfxJEcxpK8Y3FNA==", - "dev": true, + "node_modules/@smithy/chunked-blob-reader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-4.0.0.tgz", + "integrity": "sha512-jSqRnZvkT4egkq/7b6/QRCNXmmYVcHwnJldqJ3IhVpQE2atObVJ137xmGeuGFhjFUr8gCEVAOKwSY79OvpbDaQ==", + "license": "Apache-2.0", "dependencies": { - "@lerna/child-process": "6.1.0", - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "tslib": "^2.6.2" } }, - "node_modules/@lerna/describe-ref/node_modules/are-we-there-yet": { + "node_modules/@smithy/chunked-blob-reader-native": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.1.tgz", + "integrity": "sha512-VEYtPvh5rs/xlyqpm5NRnfYLZn+q0SRPELbvBV+C/G7IQ+ouTuo+NKKa3ShG5OaFR8NYVMXls9hPYLTvIKKDrQ==", + "license": "Apache-2.0", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@smithy/util-base64": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.13.tgz", + "integrity": "sha512-Gr/qwzyPaTL1tZcq8WQyHhTZREER5R1Wytmz4WnVGL4onA3dNk6Btll55c8Vr58pLdvWZmtG8oZxJTw3t3q7Jg==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.11", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/describe-ref/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "node_modules/@smithy/core": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.6.tgz", + "integrity": "sha512-w494xO+CPwG/5B/N2l0obHv2Fi9U4DAY+sTi1GWT3BVvGpZetJjJXAynIO9IHp4zS1PinGhXtRSZydUXbJO4ag==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/middleware-serde": "^3.0.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-stream": "^3.3.3", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/describe-ref/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, + "node_modules/@smithy/credential-provider-imds": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.8.tgz", + "integrity": "sha512-ZCY2yD0BY+K9iMXkkbnjo+08T2h8/34oHd0Jmh6BZUSZwaaGlGCyBT/3wnS7u7Xl33/EEfN4B6nQr3Gx5bYxgw==", + "license": "Apache-2.0", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "@smithy/node-config-provider": "^3.1.12", + "@smithy/property-provider": "^3.1.11", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/diff": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-6.1.0.tgz", - "integrity": "sha512-GhP+jPDbcp9QcAMSAjFn4lzM8MKpLR1yt5jll+zUD831U1sL0I5t8HUosFroe5MoRNffEL/jHuI3SbC3jjqWjQ==", - "dev": true, + "node_modules/@smithy/eventstream-codec": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.10.tgz", + "integrity": "sha512-323B8YckSbUH0nMIpXn7HZsAVKHYHFUODa8gG9cHo0ySvA1fr5iWaNT+iIL0UCqUzG6QPHA3BSsBtRQou4mMqQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-crypto/crc32": "5.2.0", + "@smithy/types": "^3.7.2", + "@smithy/util-hex-encoding": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/eventstream-serde-browser": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.14.tgz", + "integrity": "sha512-kbrt0vjOIihW3V7Cqj1SXQvAI5BR8SnyQYsandva0AOR307cXAc+IhPngxIPslxTLfxwDpNu0HzCAq6g42kCPg==", + "license": "Apache-2.0", "dependencies": { - "@lerna/child-process": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/validation-error": "6.1.0", - "npmlog": "^6.0.2" + "@smithy/eventstream-serde-universal": "^3.0.13", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/diff/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, + "node_modules/@smithy/eventstream-serde-config-resolver": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.11.tgz", + "integrity": "sha512-P2pnEp4n75O+QHjyO7cbw/vsw5l93K/8EWyjNCAAybYwUmj3M+hjSQZ9P5TVdUgEG08ueMAP5R4FkuSkElZ5tQ==", + "license": "Apache-2.0", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/diff/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, + "node_modules/@smithy/eventstream-serde-node": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.13.tgz", + "integrity": "sha512-zqy/9iwbj8Wysmvi7Lq7XFLeDgjRpTbCfwBhJa8WbrylTAHiAu6oQTwdY7iu2lxigbc9YYr9vPv5SzYny5tCXQ==", + "license": "Apache-2.0", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@smithy/eventstream-serde-universal": "^3.0.13", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/diff/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, + "node_modules/@smithy/eventstream-serde-universal": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.13.tgz", + "integrity": "sha512-L1Ib66+gg9uTnqp/18Gz4MDpJPKRE44geOjOQ2SVc0eiaO5l255ADziATZgjQjqumC7yPtp1XnjHlF1srcwjKw==", + "license": "Apache-2.0", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "@smithy/eventstream-codec": "^3.1.10", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/exec": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-6.1.0.tgz", - "integrity": "sha512-Ej6WlPHXLF6hZHsfD+J/dxeuTrnc0HIfIXR1DU//msHW5RNCdi9+I7StwreCAQH/dLEsdBjPg5chNmuj2JLQRg==", - "dev": true, + "node_modules/@smithy/fetch-http-handler": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-4.1.2.tgz", + "integrity": "sha512-R7rU7Ae3ItU4rC0c5mB2sP5mJNbCfoDc8I5XlYjIZnquyUwec7fEo78F6DA3SmgJgkU1qTMcZJuGblxZsl10ZA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^4.1.8", + "@smithy/querystring-builder": "^3.0.11", + "@smithy/types": "^3.7.2", + "@smithy/util-base64": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/hash-blob-browser": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.10.tgz", + "integrity": "sha512-elwslXOoNunmfS0fh55jHggyhccobFkexLYC1ZeZ1xP2BTSrcIBaHV2b4xUQOdctrSNOpMqOZH1r2XzWTEhyfA==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/chunked-blob-reader": "^4.0.0", + "@smithy/chunked-blob-reader-native": "^3.0.1", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/hash-node": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.11.tgz", + "integrity": "sha512-emP23rwYyZhQBvklqTtwetkQlqbNYirDiEEwXl2v0GYWMnCzxst7ZaRAnWuy28njp5kAH54lvkdG37MblZzaHA==", + "license": "Apache-2.0", "dependencies": { - "@lerna/child-process": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/filter-options": "6.1.0", - "@lerna/profiler": "6.1.0", - "@lerna/run-topologically": "6.1.0", - "@lerna/validation-error": "6.1.0", - "p-map": "^4.0.0" + "@smithy/types": "^3.7.2", + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/filter-options": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-6.1.0.tgz", - "integrity": "sha512-kPf92Z7uLsR6MUiXnyXWebaUWArLa15wLfpfTwIp5H3MNk1lTbuG7QnrxE7OxQj+ozFmBvXeV9fuwfLsYTfmOw==", - "dev": true, + "node_modules/@smithy/hash-stream-node": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.10.tgz", + "integrity": "sha512-olomK/jZQ93OMayW1zfTHwcbwBdhcZOHsyWyiZ9h9IXvc1mCD/VuvzbLb3Gy/qNJwI4MANPLctTp2BucV2oU/Q==", + "license": "Apache-2.0", "dependencies": { - "@lerna/collect-updates": "6.1.0", - "@lerna/filter-packages": "6.1.0", - "dedent": "^0.7.0", - "npmlog": "^6.0.2" + "@smithy/types": "^3.7.2", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/filter-options/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, + "node_modules/@smithy/invalid-dependency": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.11.tgz", + "integrity": "sha512-NuQmVPEJjUX6c+UELyVz8kUx8Q539EDeNwbRyu4IIF8MeV7hUtq1FB3SHVyki2u++5XLMFqngeMKk7ccspnNyQ==", + "license": "Apache-2.0", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz", + "integrity": "sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/filter-options/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, + "node_modules/@smithy/md5-js": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.11.tgz", + "integrity": "sha512-3NM0L3i2Zm4bbgG6Ymi9NBcxXhryi3uE8fIfHJZIOfZVxOkGdjdgjR9A06SFIZCfnEIWKXZdm6Yq5/aPXFFhsQ==", + "license": "Apache-2.0", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@smithy/types": "^3.7.2", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/middleware-content-length": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.13.tgz", + "integrity": "sha512-zfMhzojhFpIX3P5ug7jxTjfUcIPcGjcQYzB9t+rv0g1TX7B0QdwONW+ATouaLoD7h7LOw/ZlXfkq4xJ/g2TrIw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/filter-options/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, + "node_modules/@smithy/middleware-endpoint": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.7.tgz", + "integrity": "sha512-GTxSKf280aJBANGN97MomUQhW1VNxZ6w7HAj/pvZM5MUHbMPOGnWOp1PRYKi4czMaHNj9bdiA+ZarmT3Wkdqiw==", + "license": "Apache-2.0", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "@smithy/core": "^2.5.6", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", + "@smithy/util-middleware": "^3.0.11", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/filter-packages": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-6.1.0.tgz", - "integrity": "sha512-zW2avsZHs/ITE/37AEMhegGVHjiD0rgNk9bguNDfz6zaPa90UaW6PWDH6Tf4ThPRlbkl2Go48N3bFYHYSJKbcw==", - "dev": true, + "node_modules/@smithy/middleware-retry": { + "version": "3.0.32", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.32.tgz", + "integrity": "sha512-v8gVA9HqibuZkFuFpfkC/EcHE8no/3Mv3JvRUGly63Axt4yyas1WDVOasFSdiqm2hZVpY7/k8mRT1Wd5k7r3Yw==", + "license": "Apache-2.0", "dependencies": { - "@lerna/validation-error": "6.1.0", - "multimatch": "^5.0.0", - "npmlog": "^6.0.2" + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/service-error-classification": "^3.0.11", + "@smithy/smithy-client": "^3.5.2", + "@smithy/types": "^3.7.2", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", + "tslib": "^2.6.2", + "uuid": "^9.0.1" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/filter-packages/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, + "node_modules/@smithy/middleware-retry/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@smithy/middleware-serde": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.11.tgz", + "integrity": "sha512-KzPAeySp/fOoQA82TpnwItvX8BBURecpx6ZMu75EZDkAcnPtO6vf7q4aH5QHs/F1s3/snQaSFbbUMcFFZ086Mw==", + "license": "Apache-2.0", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/filter-packages/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, + "node_modules/@smithy/middleware-stack": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.11.tgz", + "integrity": "sha512-1HGo9a6/ikgOMrTrWL/WiN9N8GSVYpuRQO5kjstAq4CvV59bjqnh7TbdXGQ4vxLD3xlSjfBjq5t1SOELePsLnA==", + "license": "Apache-2.0", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/filter-packages/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, + "node_modules/@smithy/node-config-provider": { + "version": "3.1.12", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.12.tgz", + "integrity": "sha512-O9LVEu5J/u/FuNlZs+L7Ikn3lz7VB9hb0GtPT9MQeiBmtK8RSY3ULmsZgXhe6VAlgTw0YO+paQx4p8xdbs43vQ==", + "license": "Apache-2.0", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/get-npm-exec-opts": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-6.1.0.tgz", - "integrity": "sha512-10Pdf+W0z7RT34o0SWlf+WVzz2/WbnTIJ1tQqXvXx6soj2L/xGLhOPvhJiKNtl4WlvUiO/zQ91yb83ESP4TZaA==", - "dev": true, + "node_modules/@smithy/node-http-handler": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.3.3.tgz", + "integrity": "sha512-BrpZOaZ4RCbcJ2igiSNG16S+kgAc65l/2hmxWdmhyoGWHTLlzQzr06PXavJp9OBlPEG/sHlqdxjWmjzV66+BSQ==", + "license": "Apache-2.0", "dependencies": { - "npmlog": "^6.0.2" + "@smithy/abort-controller": "^3.1.9", + "@smithy/protocol-http": "^4.1.8", + "@smithy/querystring-builder": "^3.0.11", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/get-npm-exec-opts/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, + "node_modules/@smithy/property-provider": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.11.tgz", + "integrity": "sha512-I/+TMc4XTQ3QAjXfOcUWbSS073oOEAxgx4aZy8jHaf8JQnRkq2SZWw8+PfDtBvLUjcGMdxl+YwtzWe6i5uhL/A==", + "license": "Apache-2.0", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/get-npm-exec-opts/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, + "node_modules/@smithy/protocol-http": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.8.tgz", + "integrity": "sha512-hmgIAVyxw1LySOwkgMIUN0kjN8TG9Nc85LJeEmEE/cNEe2rkHDUWhnJf2gxcSRFLWsyqWsrZGw40ROjUogg+Iw==", + "license": "Apache-2.0", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/get-npm-exec-opts/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, + "node_modules/@smithy/querystring-builder": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.11.tgz", + "integrity": "sha512-u+5HV/9uJaeLj5XTb6+IEF/dokWWkEqJ0XiaRRogyREmKGUgZnNecLucADLdauWFKUNbQfulHFEZEdjwEBjXRg==", + "license": "Apache-2.0", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "@smithy/types": "^3.7.2", + "@smithy/util-uri-escape": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/get-packed": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-6.1.0.tgz", - "integrity": "sha512-lg0wPpV0wPekcD0mebJp619hMxsOgbZDOH5AkL/bCR217391eha0iPhQ0dU/G0Smd2vv6Cg443+J5QdI4LGRTg==", - "dev": true, + "node_modules/@smithy/querystring-parser": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.11.tgz", + "integrity": "sha512-Je3kFvCsFMnso1ilPwA7GtlbPaTixa3WwC+K21kmMZHsBEOZYQaqxcMqeFFoU7/slFjKDIpiiPydvdJm8Q/MCw==", + "license": "Apache-2.0", "dependencies": { - "fs-extra": "^9.1.0", - "ssri": "^9.0.1", - "tar": "^6.1.0" + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/get-packed/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, + "node_modules/@smithy/service-error-classification": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.11.tgz", + "integrity": "sha512-QnYDPkyewrJzCyaeI2Rmp7pDwbUETe+hU8ADkXmgNusO1bgHBH7ovXJiYmba8t0fNfJx75fE8dlM6SEmZxheog==", + "license": "Apache-2.0", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@smithy/types": "^3.7.2" }, "engines": { - "node": ">=10" + "node": ">=16.0.0" } }, - "node_modules/@lerna/github-client": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-6.1.0.tgz", - "integrity": "sha512-+/4PtDgsjt0VRRZtOCN2Piyu0asU/16gSZZy/opVb8dlT44lTrH/ZghrJLE4tSL8Nuv688kx0kSgbUG8BY54jQ==", - "dev": true, + "node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.12", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.12.tgz", + "integrity": "sha512-1xKSGI+U9KKdbG2qDvIR9dGrw3CNx+baqJfyr0igKEpjbHL5stsqAesYBzHChYHlelWtb87VnLWlhvfCz13H8Q==", + "license": "Apache-2.0", "dependencies": { - "@lerna/child-process": "6.1.0", - "@octokit/plugin-enterprise-rest": "^6.0.1", - "@octokit/rest": "^19.0.3", - "git-url-parse": "^13.1.0", - "npmlog": "^6.0.2" + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/github-client/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, + "node_modules/@smithy/signature-v4": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.4.tgz", + "integrity": "sha512-5JWeMQYg81TgU4cG+OexAWdvDTs5JDdbEZx+Qr1iPbvo91QFGzjy0IkXAKaXUHqmKUJgSHK0ZxnCkgZpzkeNTA==", + "license": "Apache-2.0", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@smithy/is-array-buffer": "^3.0.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "@smithy/util-hex-encoding": "^3.0.0", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-uri-escape": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/github-client/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, + "node_modules/@smithy/smithy-client": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.5.2.tgz", + "integrity": "sha512-h7xn+1wlpbXyLrtvo/teHR1SFGIIrQ3imzG0nz43zVLAJgvfC1Mtdwa1pFhoIOYrt/TiNjt4pD0gSYQEdZSBtg==", + "license": "Apache-2.0", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@smithy/core": "^2.5.6", + "@smithy/middleware-endpoint": "^3.2.7", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "@smithy/util-stream": "^3.3.3", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/github-client/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, + "node_modules/@smithy/types": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.7.2.tgz", + "integrity": "sha512-bNwBYYmN8Eh9RyjS1p2gW6MIhSO2rl7X9QeLM8iTdcGRP+eDiIWDt66c9IysCc22gefKszZv+ubV9qZc7hdESg==", + "license": "Apache-2.0", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/gitlab-client": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-6.1.0.tgz", - "integrity": "sha512-fUI/ppXzxJafN9ceSl+FDgsYvu3iTsO6UW0WTD63pS32CfM+PiCryLQHzuc4RkyVW8WQH3aCR/GbaKCqbu52bw==", - "dev": true, + "node_modules/@smithy/url-parser": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.11.tgz", + "integrity": "sha512-TmlqXkSk8ZPhfc+SQutjmFr5FjC0av3GZP4B/10caK1SbRwe/v+Wzu/R6xEKxoNqL+8nY18s1byiy6HqPG37Aw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/querystring-parser": "^3.0.11", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/util-base64": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-3.0.0.tgz", + "integrity": "sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==", + "license": "Apache-2.0", "dependencies": { - "node-fetch": "^2.6.1", - "npmlog": "^6.0.2" + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/gitlab-client/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, + "node_modules/@smithy/util-body-length-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz", + "integrity": "sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==", + "license": "Apache-2.0", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/util-body-length-node": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz", + "integrity": "sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/gitlab-client/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, + "node_modules/@smithy/util-buffer-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz", + "integrity": "sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==", + "license": "Apache-2.0", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@smithy/is-array-buffer": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/gitlab-client/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, + "node_modules/@smithy/util-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz", + "integrity": "sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==", + "license": "Apache-2.0", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "tslib": "^2.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/global-options": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-6.1.0.tgz", - "integrity": "sha512-1OyJ/N1XJh3ZAy8S20c6th9C4yBm/k3bRIdC+z0XxpDaHwfNt8mT9kUIDt6AIFCUvVKjSwnIsMHwhzXqBnwYSA==", - "dev": true, + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "3.0.32", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.32.tgz", + "integrity": "sha512-FAGsnm/xJ19SZeoqGyo9CosqjUlm+XJTmygDMktebvDKw3bKiIiZ40O1MA6Z52KLmekYU2GO7BEK7u6e7ZORKw==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/property-provider": "^3.1.11", + "@smithy/smithy-client": "^3.5.2", + "@smithy/types": "^3.7.2", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">= 10.0.0" } }, - "node_modules/@lerna/has-npm-version": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-6.1.0.tgz", - "integrity": "sha512-up5PVuP6BmKQ5/UgH/t2c5B1q4HhjwW3/bqbNayX6V0qNz8OijnMYvEUbxFk8fOdeN41qVnhAk0Tb5kbdtYh2A==", - "dev": true, + "node_modules/@smithy/util-defaults-mode-node": { + "version": "3.0.32", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.32.tgz", + "integrity": "sha512-2CzKhkPFCVdd15f3+0D1rldNlvJME8pVRBtVVsea2hy7lcOn0bGB0dTVUwzgfM4LW/aU4IOg3jWf25ZWaxbOiw==", + "license": "Apache-2.0", "dependencies": { - "@lerna/child-process": "6.1.0", - "semver": "^7.3.4" + "@smithy/config-resolver": "^3.0.13", + "@smithy/credential-provider-imds": "^3.2.8", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/property-provider": "^3.1.11", + "@smithy/smithy-client": "^3.5.2", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">= 10.0.0" } }, - "node_modules/@lerna/import": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-6.1.0.tgz", - "integrity": "sha512-xsBhiKLUavATR32dAFL+WFY0yuab0hsM1eztKtRKk4wy7lSyxRfA5EIUcNCsLXx2xaDOKoMncCTXgNcpeYuqcQ==", - "dev": true, + "node_modules/@smithy/util-endpoints": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.7.tgz", + "integrity": "sha512-tSfcqKcN/Oo2STEYCABVuKgJ76nyyr6skGl9t15hs+YaiU06sgMkN7QYjo0BbVw+KT26zok3IzbdSOksQ4YzVw==", + "license": "Apache-2.0", "dependencies": { - "@lerna/child-process": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/prompt": "6.1.0", - "@lerna/pulse-till-done": "6.1.0", - "@lerna/validation-error": "6.1.0", - "dedent": "^0.7.0", - "fs-extra": "^9.1.0", - "p-map-series": "^2.1.0" + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/import/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, + "node_modules/@smithy/util-hex-encoding": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz", + "integrity": "sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==", + "license": "Apache-2.0", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=10" + "node": ">=16.0.0" } }, - "node_modules/@lerna/info": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/info/-/info-6.1.0.tgz", - "integrity": "sha512-CsrWdW/Wyb4kcvHSnrsm7KYWFvjUNItu+ryeyWBZJtWYQOv45jNmWix6j2L4/w1+mMlWMjsfLmBscg82UBrF5w==", - "dev": true, + "node_modules/@smithy/util-middleware": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.11.tgz", + "integrity": "sha512-dWpyc1e1R6VoXrwLoLDd57U1z6CwNSdkM69Ie4+6uYh2GC7Vg51Qtan7ITzczuVpqezdDTKJGJB95fFvvjU/ow==", + "license": "Apache-2.0", "dependencies": { - "@lerna/command": "6.1.0", - "@lerna/output": "6.1.0", - "envinfo": "^7.7.4" + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/init": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-6.1.0.tgz", - "integrity": "sha512-z8oUeVjn+FQYAtepAw6G47cGodLyBAyNoEjO3IsJjQLWE1yH3r83L2sjyD/EckgR3o2VTEzrKo4ArhxLp2mNmg==", - "dev": true, + "node_modules/@smithy/util-retry": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.11.tgz", + "integrity": "sha512-hJUC6W7A3DQgaee3Hp9ZFcOxVDZzmBIRBPlUAk8/fSOEl7pE/aX7Dci0JycNOnm9Mfr0KV2XjIlUOcGWXQUdVQ==", + "license": "Apache-2.0", "dependencies": { - "@lerna/child-process": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/project": "6.1.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0", - "write-json-file": "^4.3.0" + "@smithy/service-error-classification": "^3.0.11", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/init/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, + "node_modules/@smithy/util-stream": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.3.3.tgz", + "integrity": "sha512-bOm0YMMxRjbI3X6QkWwADPFkh2AH2xBMQIB1IQgCsCRqXXpSJatgjUR3oxHthpYwFkw3WPkOt8VgMpJxC0rFqg==", + "license": "Apache-2.0", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/node-http-handler": "^3.3.3", + "@smithy/types": "^3.7.2", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-hex-encoding": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=10" + "node": ">=16.0.0" } }, - "node_modules/@lerna/link": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-6.1.0.tgz", - "integrity": "sha512-7OD2lYNQHl6Kl1KYmplt8KoWjVHdiaqpYqwD38AwcB09YN58nGmo4aJgC12Fdx8DSNjkumgM0ROg/JOjMCTIzQ==", - "dev": true, + "node_modules/@smithy/util-uri-escape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz", + "integrity": "sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==", + "license": "Apache-2.0", "dependencies": { - "@lerna/command": "6.1.0", - "@lerna/package-graph": "6.1.0", - "@lerna/symlink-dependencies": "6.1.0", - "@lerna/validation-error": "6.1.0", - "p-map": "^4.0.0", - "slash": "^3.0.0" + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/list": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-6.1.0.tgz", - "integrity": "sha512-7/g2hjizkvVnBGpVm+qC7lUFGhZ/0GIMUbGQwnE6yXDGm8yP9aEcNVkU4JGrDWW+uIklf9oodnMHaLXd/FJe6Q==", - "dev": true, + "node_modules/@smithy/util-utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-3.0.0.tgz", + "integrity": "sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==", + "license": "Apache-2.0", "dependencies": { - "@lerna/command": "6.1.0", - "@lerna/filter-options": "6.1.0", - "@lerna/listable": "6.1.0", - "@lerna/output": "6.1.0" + "@smithy/util-buffer-from": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/listable": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-6.1.0.tgz", - "integrity": "sha512-3KZ9lQ9AtNfGNH/mYJYaMKCiF2EQvLLBGYkWHeIzIs6foegcZNXe0Cyv3LNXuo5WslMNr5RT4wIgy3BOoAxdtg==", - "dev": true, + "node_modules/@smithy/util-waiter": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.2.0.tgz", + "integrity": "sha512-PpjSboaDUE6yl+1qlg3Si57++e84oXdWGbuFUSAciXsVfEZJJJupR2Nb0QuXHiunt2vGR+1PTizOMvnUPaG2Qg==", + "license": "Apache-2.0", "dependencies": { - "@lerna/query-graph": "6.1.0", - "chalk": "^4.1.0", - "columnify": "^1.6.0" + "@smithy/abort-controller": "^3.1.9", + "@smithy/types": "^3.7.2", + "tslib": "^2.6.2" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@lerna/log-packed": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-6.1.0.tgz", - "integrity": "sha512-Sq2HZJAcPuoNeEHeIutcPYQCyWBxLyVGvEhgsP3xTe6XkBGQCG8piCp9wX+sc2zT+idPdpI6qLqdh85yYIMMhA==", + "node_modules/@stablelib/base64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/base64/-/base64-1.0.1.tgz", + "integrity": "sha512-1bnPQqSxSuc3Ii6MhBysoWCg58j97aUjuCSZrGSmDxNqtytIi0k8utUenAwTZN4V5mXXYGsVUI9zeBqy+jBOSQ==", + "license": "MIT" + }, + "node_modules/@stablelib/hex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/hex/-/hex-1.0.1.tgz", + "integrity": "sha512-PQOEChVBjhYGgAD+ehO2ow1gSj1slre3jW4oMD4kV8VrhYhzmtsQDWDZej3BQO8qkVezdczDvISxVSF24PuYNA==", + "license": "MIT" + }, + "node_modules/@stablelib/utf8": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@stablelib/utf8/-/utf8-1.0.2.tgz", + "integrity": "sha512-sDL1aB2U8FIpj7SjQJMxbOFIFkKvDKQGPHSrYejHZhtLNSK3qHe6ZIfa0woWkOiaJsdYslFzrc0VWXJZHmSIQQ==", + "license": "MIT" + }, + "node_modules/@storybook/addon-actions": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.4.7.tgz", + "integrity": "sha512-mjtD5JxcPuW74T6h7nqMxWTvDneFtokg88p6kQ5OnC1M259iAXb//yiSZgu/quunMHPCXSiqn4FNOSgASTSbsA==", "dev": true, + "license": "MIT", "dependencies": { - "byte-size": "^7.0.0", - "columnify": "^1.6.0", - "has-unicode": "^2.0.1", - "npmlog": "^6.0.2" + "@storybook/global": "^5.0.0", + "@types/uuid": "^9.0.1", + "dequal": "^2.0.2", + "polished": "^4.2.2", + "uuid": "^9.0.0" }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/log-packed/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@storybook/addon-actions/node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/addon-actions/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@storybook/addon-backgrounds": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.4.7.tgz", + "integrity": "sha512-I4/aErqtFiazcoWyKafOAm3bLpxTj6eQuH/woSbk1Yx+EzN+Dbrgx1Updy8//bsNtKkcrXETITreqHC+a57DHQ==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3", + "ts-dedent": "^2.0.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/log-packed/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@storybook/addon-controls": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.4.7.tgz", + "integrity": "sha512-377uo5IsJgXLnQLJixa47+11V+7Wn9KcDEw+96aGCBCfLbWNH8S08tJHHnSu+jXg9zoqCAC23MetntVp6LetHA==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@storybook/global": "^5.0.0", + "dequal": "^2.0.2", + "ts-dedent": "^2.0.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/log-packed/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@storybook/addon-designs": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@storybook/addon-designs/-/addon-designs-8.0.4.tgz", + "integrity": "sha512-BrEWks1BRnZis2e8OoE1LhFS+x2d094Tzpbb3jQBve2IfDv/X006RSuy1WyplNxskdYdBESCH45MlRn4lhP5ew==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "@figspec/react": "^1.0.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "peerDependencies": { + "@storybook/blocks": "^8.0.0 || ^8.1.0-0 || ^8.2.0-0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0", + "@storybook/components": "^8.0.0 || ^8.1.0-0 || ^8.2.0-0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0", + "@storybook/theming": "^8.0.0 || ^8.1.0-0 || ^8.2.0-0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@storybook/blocks": { + "optional": true + }, + "@storybook/components": { + "optional": true + }, + "@storybook/theming": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } }, - "node_modules/@lerna/npm-conf": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-6.1.0.tgz", - "integrity": "sha512-+RD3mmJe9XSQj7Diibs0+UafAHPcrFCd29ODpDI+tzYl4MmYZblfrlL6mbSCiVYCZQneQ8Uku3P0r+DlbYBaFw==", + "node_modules/@storybook/addon-docs": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.4.7.tgz", + "integrity": "sha512-NwWaiTDT5puCBSUOVuf6ME7Zsbwz7Y79WF5tMZBx/sLQ60vpmJVQsap6NSjvK1Ravhc21EsIXqemAcBjAWu80w==", "dev": true, + "license": "MIT", "dependencies": { - "config-chain": "^1.1.12", - "pify": "^5.0.0" + "@mdx-js/react": "^3.0.0", + "@storybook/blocks": "8.4.7", + "@storybook/csf-plugin": "8.4.7", + "@storybook/react-dom-shim": "8.4.7", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "ts-dedent": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/npm-dist-tag": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-6.1.0.tgz", - "integrity": "sha512-1zo+Yww/lvWJWZnEXpke9dZSb5poDzhUM/pQNqAQYSlbZ96o18SuCR6TEi5isMPiw63Aq1MMzbUqttQfJ11EOA==", - "dev": true, - "dependencies": { - "@lerna/otplease": "6.1.0", - "npm-package-arg": "8.1.1", - "npm-registry-fetch": "^13.3.0", - "npmlog": "^6.0.2" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/npm-dist-tag/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@storybook/addon-essentials": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.4.7.tgz", + "integrity": "sha512-+BtZHCBrYtQKILtejKxh0CDRGIgTl9PumfBOKRaihYb4FX1IjSAxoV/oo/IfEjlkF5f87vouShWsRa8EUauFDw==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@storybook/addon-actions": "8.4.7", + "@storybook/addon-backgrounds": "8.4.7", + "@storybook/addon-controls": "8.4.7", + "@storybook/addon-docs": "8.4.7", + "@storybook/addon-highlight": "8.4.7", + "@storybook/addon-measure": "8.4.7", + "@storybook/addon-outline": "8.4.7", + "@storybook/addon-toolbars": "8.4.7", + "@storybook/addon-viewport": "8.4.7", + "ts-dedent": "^2.0.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/npm-dist-tag/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@storybook/addon-highlight": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.4.7.tgz", + "integrity": "sha512-whQIDBd3PfVwcUCrRXvCUHWClXe9mQ7XkTPCdPo4B/tZ6Z9c6zD8JUHT76ddyHivixFLowMnA8PxMU6kCMAiNw==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@storybook/global": "^5.0.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/npm-dist-tag/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@storybook/addon-interactions": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.4.7.tgz", + "integrity": "sha512-fnufT3ym8ht3HHUIRVXAH47iOJW/QOb0VSM+j269gDuvyDcY03D1civCu1v+eZLGaXPKJ8vtjr0L8zKQ/4P0JQ==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "@storybook/global": "^5.0.0", + "@storybook/instrumenter": "8.4.7", + "@storybook/test": "8.4.7", + "polished": "^4.2.2", + "ts-dedent": "^2.2.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/npm-install": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-6.1.0.tgz", - "integrity": "sha512-1SHmOHZA1YJuUctLQBRjA2+yMp+UNYdOBsFb3xUVT7MjWnd1Zl0toT3jxGu96RNErD9JKkk/cGo/Aq+DU3s9pg==", + "node_modules/@storybook/addon-measure": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.4.7.tgz", + "integrity": "sha512-QfvqYWDSI5F68mKvafEmZic3SMiK7zZM8VA0kTXx55hF/+vx61Mm0HccApUT96xCXIgmwQwDvn9gS4TkX81Dmw==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/child-process": "6.1.0", - "@lerna/get-npm-exec-opts": "6.1.0", - "fs-extra": "^9.1.0", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "signal-exit": "^3.0.3", - "write-pkg": "^4.0.0" + "@storybook/global": "^5.0.0", + "tiny-invariant": "^1.3.1" }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/npm-install/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@storybook/addon-onboarding": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-onboarding/-/addon-onboarding-8.4.7.tgz", + "integrity": "sha512-FdC2NV60VNYeMxf6DVe0qV9ucSBAzMh1//C0Qqwq8CcjthMbmKlVZ7DqbVsbIHKnFaSCaUC88eR5olAfMaauCQ==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "react-confetti": "^6.1.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/npm-install/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/@storybook/addon-outline": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.4.7.tgz", + "integrity": "sha512-6LYRqUZxSodmAIl8icr585Oi8pmzbZ90aloZJIpve+dBAzo7ydYrSQxxoQEVltXbKf3VeVcrs64ouAYqjisMYA==", "dev": true, + "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@storybook/global": "^5.0.0", + "ts-dedent": "^2.0.0" }, - "engines": { - "node": ">=10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/npm-install/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@storybook/addon-themes": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-themes/-/addon-themes-8.4.7.tgz", + "integrity": "sha512-MZa3eWTz0b3BQvF71WqLqvEYzDtbMhQx1IIluWBMMGzJ4sWBzLX85LoNMUlHsNd4EhEmAZ1xQQFIJpDWTBx0nQ==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "ts-dedent": "^2.0.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/npm-install/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@storybook/addon-toolbars": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.4.7.tgz", + "integrity": "sha512-OSfdv5UZs+NdGB+nZmbafGUWimiweJ/56gShlw8Neo/4jOJl1R3rnRqqY7MYx8E4GwoX+i3GF5C3iWFNQqlDcw==", "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/npm-publish": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-6.1.0.tgz", - "integrity": "sha512-N0LdR1ImZQw1r4cYaKtVbBhBPtj4Zu9NbvygzizEP5HuTfxZmE1Ans3w93Kks9VTXZXob8twNbXnzBwzTyEpEA==", + "node_modules/@storybook/addon-viewport": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.4.7.tgz", + "integrity": "sha512-hvczh/jjuXXcOogih09a663sRDDSATXwbE866al1DXgbDFraYD/LxX/QDb38W9hdjU9+Qhx8VFIcNWoMQns5HQ==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/otplease": "6.1.0", - "@lerna/run-lifecycle": "6.1.0", - "fs-extra": "^9.1.0", - "libnpmpublish": "^6.0.4", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "pify": "^5.0.0", - "read-package-json": "^5.0.1" + "memoizerific": "^1.11.3" }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/npm-publish/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@storybook/blocks": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.4.7.tgz", + "integrity": "sha512-+QH7+JwXXXIyP3fRCxz/7E2VZepAanXJM7G8nbR3wWsqWgrRp4Wra6MvybxAYCxU7aNfJX5c+RW84SNikFpcIA==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@storybook/csf": "^0.1.11", + "@storybook/icons": "^1.2.12", + "ts-dedent": "^2.0.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.4.7" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } }, - "node_modules/@lerna/npm-publish/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/@storybook/builder-vite": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.4.7.tgz", + "integrity": "sha512-LovyXG5VM0w7CovI/k56ZZyWCveQFVDl0m7WwetpmMh2mmFJ+uPQ35BBsgTvTfc8RHi+9Q3F58qP1MQSByXi9g==", "dev": true, + "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@storybook/csf-plugin": "8.4.7", + "browser-assert": "^1.2.1", + "ts-dedent": "^2.0.0" }, - "engines": { - "node": ">=10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7", + "vite": "^4.0.0 || ^5.0.0 || ^6.0.0" } }, - "node_modules/@lerna/npm-publish/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@storybook/components": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.4.7.tgz", + "integrity": "sha512-uyJIcoyeMWKAvjrG9tJBUCKxr2WZk+PomgrgrUwejkIfXMO76i6jw9BwLa0NZjYdlthDv30r9FfbYZyeNPmF0g==", "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "peerDependencies": { + "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" } }, - "node_modules/@lerna/npm-publish/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@storybook/core": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.4.7.tgz", + "integrity": "sha512-7Z8Z0A+1YnhrrSXoKKwFFI4gnsLbWzr8fnDCU6+6HlDukFYh8GHRcZ9zKfqmy6U3hw2h8H5DrHsxWfyaYUUOoA==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "@storybook/csf": "^0.1.11", + "better-opn": "^3.0.2", + "browser-assert": "^1.2.1", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0", + "esbuild-register": "^3.5.0", + "jsdoc-type-pratt-parser": "^4.0.0", + "process": "^0.11.10", + "recast": "^0.23.5", + "semver": "^7.6.2", + "util": "^0.12.5", + "ws": "^8.2.3" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "prettier": "^2 || ^3" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } } }, - "node_modules/@lerna/npm-run-script": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-6.1.0.tgz", - "integrity": "sha512-7p13mvdxdY5+VqWvvtMsMDeyCRs0PrrTmSHRO+FKuLQuGhBvUo05vevcMEOQNDvEvl/tXPrOVbeGCiGubYTCLg==", + "node_modules/@storybook/core/node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, - "dependencies": { - "@lerna/child-process": "6.1.0", - "@lerna/get-npm-exec-opts": "6.1.0", - "npmlog": "^6.0.2" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">= 0.6.0" } }, - "node_modules/@lerna/npm-run-script/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@storybook/core/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "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/@lerna/npm-run-script/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@storybook/csf": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.13.tgz", + "integrity": "sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "type-fest": "^2.19.0" } }, - "node_modules/@lerna/npm-run-script/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@storybook/csf-plugin": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.4.7.tgz", + "integrity": "sha512-Fgogplu4HImgC+AYDcdGm1rmL6OR1rVdNX1Be9C/NEXwOCpbbBwi0BxTf/2ZxHRk9fCeaPEcOdP5S8QHfltc1g==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "unplugin": "^1.3.1" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/otplease": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-6.1.0.tgz", - "integrity": "sha512-gqSE6IbaD4IeNJePkaDLaFLoGp0Ceu35sn7z0AHAOoHiQGGorOmvM+h1Md3xZZRSXQmY9LyJVhG5eRa38SoG4g==", + "node_modules/@storybook/csf/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, - "dependencies": { - "@lerna/prompt": "6.1.0" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@lerna/output": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/output/-/output-6.1.0.tgz", - "integrity": "sha512-mgCIzLKIuroytXuxjTB689ERtpfgyNXW0rMv9WHOa6ufQc+QJPjh3L4jVsOA0l+/OxZyi97PUXotduNj+0cbnA==", + "node_modules/@storybook/global": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", + "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", "dev": true, - "dependencies": { - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" - } + "license": "MIT" }, - "node_modules/@lerna/output/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@storybook/icons": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.3.0.tgz", + "integrity": "sha512-Nz/UzeYQdUZUhacrPyfkiiysSjydyjgg/p0P9HxB4p/WaJUUjMAcaoaLgy3EXx61zZJ3iD36WPuDkZs5QYrA0A==", "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" } }, - "node_modules/@lerna/output/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@storybook/instrumenter": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.4.7.tgz", + "integrity": "sha512-k6NSD3jaRCCHAFtqXZ7tw8jAzD/yTEWXGya+REgZqq5RCkmJ+9S4Ytp/6OhQMPtPFX23gAuJJzTQVLcCr+gjRg==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@storybook/global": "^5.0.0", + "@vitest/utils": "^2.1.1" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/output/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@storybook/manager-api": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.4.7.tgz", + "integrity": "sha512-ELqemTviCxAsZ5tqUz39sDmQkvhVAvAgiplYy9Uf15kO0SP2+HKsCMzlrm2ue2FfkUNyqbDayCPPCB0Cdn/mpQ==", "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "peerDependencies": { + "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" } }, - "node_modules/@lerna/pack-directory": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-6.1.0.tgz", - "integrity": "sha512-Xsixqm2nkGXs9hvq08ClbGpRlCYnlBV4TwSrLttIDL712RlyXoPe2maJzTUqo9OXBbOumFSahUEInCMT2OS05g==", + "node_modules/@storybook/preview-api": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.4.7.tgz", + "integrity": "sha512-0QVQwHw+OyZGHAJEXo6Knx+6/4er7n2rTDE5RYJ9F2E2Lg42E19pfdLlq2Jhoods2Xrclo3wj6GWR//Ahi39Eg==", "dev": true, - "dependencies": { - "@lerna/get-packed": "6.1.0", - "@lerna/package": "6.1.0", - "@lerna/run-lifecycle": "6.1.0", - "@lerna/temp-write": "6.1.0", - "npm-packlist": "^5.1.1", - "npmlog": "^6.0.2", - "tar": "^6.1.0" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "peerDependencies": { + "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" } }, - "node_modules/@lerna/pack-directory/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@storybook/react": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.4.7.tgz", + "integrity": "sha512-nQ0/7i2DkaCb7dy0NaT95llRVNYWQiPIVuhNfjr1mVhEP7XD090p0g7eqUmsx8vfdHh2BzWEo6CoBFRd3+EXxw==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@storybook/components": "8.4.7", + "@storybook/global": "^5.0.0", + "@storybook/manager-api": "8.4.7", + "@storybook/preview-api": "8.4.7", + "@storybook/react-dom-shim": "8.4.7", + "@storybook/theming": "8.4.7" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "@storybook/test": "8.4.7", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.4.7", + "typescript": ">= 4.2.x" + }, + "peerDependenciesMeta": { + "@storybook/test": { + "optional": true + }, + "typescript": { + "optional": true + } } }, - "node_modules/@lerna/pack-directory/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@storybook/react-dom-shim": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.4.7.tgz", + "integrity": "sha512-6bkG2jvKTmWrmVzCgwpTxwIugd7Lu+2btsLAqhQSzDyIj2/uhMNp8xIMr/NBDtLgq3nomt9gefNa9xxLwk/OMg==", "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.4.7" } }, - "node_modules/@lerna/pack-directory/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@storybook/react-vite": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-8.4.7.tgz", + "integrity": "sha512-iiY9iLdMXhDnilCEVxU6vQsN72pW3miaf0WSenOZRyZv3HdbpgOxI0qapOS0KCyRUnX9vTlmrSPTMchY4cAeOg==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "@joshwooding/vite-plugin-react-docgen-typescript": "0.4.2", + "@rollup/pluginutils": "^5.0.2", + "@storybook/builder-vite": "8.4.7", + "@storybook/react": "8.4.7", + "find-up": "^5.0.0", + "magic-string": "^0.30.0", + "react-docgen": "^7.0.0", + "resolve": "^1.22.8", + "tsconfig-paths": "^4.2.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.4.7", + "vite": "^4.0.0 || ^5.0.0 || ^6.0.0" } }, - "node_modules/@lerna/package": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/package/-/package-6.1.0.tgz", - "integrity": "sha512-PyNFtdH2IcLasp/nyMDshmeXotriOSlhbeFIxhdl1XuGj5v1so3utMSOrJMO5kzZJQg5zyx8qQoxL+WH/hkrVQ==", + "node_modules/@storybook/react-vite/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { - "load-json-file": "^6.2.0", - "npm-package-arg": "8.1.1", - "write-pkg": "^4.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@lerna/package-graph": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-6.1.0.tgz", - "integrity": "sha512-yGyxd/eHTDjkpnBbDhTV0hwKF+i01qZc+6/ko65wOsh8xtgqpQeE6mtdgbvsLKcuMcIQ7PDy1ntyIv9phg14gQ==", + "node_modules/@storybook/react-vite/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/prerelease-id-from-version": "6.1.0", - "@lerna/validation-error": "6.1.0", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "semver": "^7.3.4" + "p-locate": "^5.0.0" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@lerna/package-graph/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@storybook/react-vite/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@lerna/package-graph/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@storybook/react-vite/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "p-limit": "^3.0.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@lerna/package-graph/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@storybook/react-vite/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==", "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/@lerna/prerelease-id-from-version": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-6.1.0.tgz", - "integrity": "sha512-ngC4I6evvZztB6aOaSDEnhUgRTlqX3TyBXwWwLGTOXCPaCQBTPaLNokhmRdJ+ZVdZ4iHFbzEDSL07ubZrYUcmQ==", + "node_modules/@storybook/react-vite/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "dependencies": { - "semver": "^7.3.4" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@lerna/profiler": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-6.1.0.tgz", - "integrity": "sha512-WFDQNpuqPqMJLg8llvrBHF8Ib5Asgp23lMeNUe89T62NUX6gkjVBTYdjsduxM0tZH6Pa0GAGaQcha97P6fxfdQ==", + "node_modules/@storybook/test": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.4.7.tgz", + "integrity": "sha512-AhvJsu5zl3uG40itSQVuSy5WByp3UVhS6xAnme4FWRwgSxhvZjATJ3AZkkHWOYjnnk+P2/sbz/XuPli1FVCWoQ==", "dev": true, + "license": "MIT", "dependencies": { - "fs-extra": "^9.1.0", - "npmlog": "^6.0.2", - "upath": "^2.0.1" + "@storybook/csf": "^0.1.11", + "@storybook/global": "^5.0.0", + "@storybook/instrumenter": "8.4.7", + "@testing-library/dom": "10.4.0", + "@testing-library/jest-dom": "6.5.0", + "@testing-library/user-event": "14.5.2", + "@vitest/expect": "2.0.5", + "@vitest/spy": "2.0.5" }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.4.7" } }, - "node_modules/@lerna/profiler/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@storybook/theming": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.4.7.tgz", + "integrity": "sha512-99rgLEjf7iwfSEmdqlHkSG3AyLcK0sfExcr0jnc6rLiAkBhzuIsvcHjjUwkR210SOCgXqBPW0ZA6uhnuyppHLw==", "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "peerDependencies": { + "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" } }, - "node_modules/@lerna/profiler/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "defer-to-connect": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=14.16" } }, - "node_modules/@lerna/profiler/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@testing-library/dom": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/@lerna/profiler/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@lerna/project": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/project/-/project-6.1.0.tgz", - "integrity": "sha512-EOkfjjrTM16c3GUxGqcfYD2stV35p9mBEmkF41NPmyjfbzjol/irDF1r6Q7BsQSRsdClMJRCeZ168xdSxC2X0A==", + "node_modules/@testing-library/dom/node_modules/chalk/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==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/package": "6.1.0", - "@lerna/validation-error": "6.1.0", - "cosmiconfig": "^7.0.0", - "dedent": "^0.7.0", - "dot-prop": "^6.0.1", - "glob-parent": "^5.1.1", - "globby": "^11.0.2", - "js-yaml": "^4.1.0", - "load-json-file": "^6.2.0", - "npmlog": "^6.0.2", - "p-map": "^4.0.0", - "resolve-from": "^5.0.0", - "write-json-file": "^4.3.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@lerna/project/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@testing-library/dom/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@lerna/project/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==", - "dev": true + "node_modules/@testing-library/dom/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" }, - "node_modules/@lerna/project/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "has-flag": "^4.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/@lerna/project/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==", + "node_modules/@testing-library/jest-dom": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.5.0.tgz", + "integrity": "sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==", "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.21", + "redent": "^3.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" } }, - "node_modules/@lerna/project/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@testing-library/jest-dom/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==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "color-convert": "^2.0.1" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@lerna/project/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@lerna/prompt": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-6.1.0.tgz", - "integrity": "sha512-981J/C53TZ2l2mFVlWJN7zynSzf5GEHKvKQa12Td9iknhASZOuwTAWb6eq46246Ant6W5tWwb0NSPu3I5qtcrA==", + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, + "license": "MIT", "dependencies": { - "inquirer": "^8.2.4", - "npmlog": "^6.0.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/@lerna/prompt/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "license": "MIT" }, - "node_modules/@lerna/prompt/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@testing-library/jest-dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "has-flag": "^4.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/@lerna/prompt/node_modules/inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "node_modules/@testing-library/user-event": { + "version": "14.5.2", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", + "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==", "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "license": "MIT", + "peer": true + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "license": "MIT", "engines": { - "node": ">=12.0.0" + "node": ">= 10" } }, - "node_modules/@lerna/prompt/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "license": "MIT" }, - "node_modules/@lerna/publish": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-6.1.0.tgz", - "integrity": "sha512-XtvuydtU0IptbAapLRgoN1AZj/WJR+e3UKnx9BQ1Dwc+Fpg2oqPxR/vi+6hxAsr95pdQ5CnWBdgS+dg2wEUJ7Q==", - "dev": true, - "dependencies": { - "@lerna/check-working-tree": "6.1.0", - "@lerna/child-process": "6.1.0", - "@lerna/collect-updates": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/describe-ref": "6.1.0", - "@lerna/log-packed": "6.1.0", - "@lerna/npm-conf": "6.1.0", - "@lerna/npm-dist-tag": "6.1.0", - "@lerna/npm-publish": "6.1.0", - "@lerna/otplease": "6.1.0", - "@lerna/output": "6.1.0", - "@lerna/pack-directory": "6.1.0", - "@lerna/prerelease-id-from-version": "6.1.0", - "@lerna/prompt": "6.1.0", - "@lerna/pulse-till-done": "6.1.0", - "@lerna/run-lifecycle": "6.1.0", - "@lerna/run-topologically": "6.1.0", - "@lerna/validation-error": "6.1.0", - "@lerna/version": "6.1.0", - "fs-extra": "^9.1.0", - "libnpmaccess": "^6.0.3", - "npm-package-arg": "8.1.1", - "npm-registry-fetch": "^13.3.0", - "npmlog": "^6.0.2", - "p-map": "^4.0.0", - "p-pipe": "^3.1.0", - "pacote": "^13.6.1", - "semver": "^7.3.4" - }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "license": "MIT", "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@lerna/publish/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@tufjs/models": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.4" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@lerna/publish/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", "dev": true, + "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" + "tslib": "^2.4.0" } }, - "node_modules/@lerna/publish/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@types/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/node": "*" } }, - "node_modules/@lerna/publish/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@types/ari-client": { + "version": "2.2.13", + "resolved": "https://registry.npmjs.org/@types/ari-client/-/ari-client-2.2.13.tgz", + "integrity": "sha512-WK8Ca8gFFhNyCoC7N6Sjp38Lx+UESC7yyvHyHu+S85LmYFpk2cbsdSWaiHvxJLLlge/Ku0IMYAXaWG1N2szq3w==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/node": "*" } }, - "node_modules/@lerna/pulse-till-done": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-6.1.0.tgz", - "integrity": "sha512-a2RVT82E4R9nVXtehzp2TQL6iXp0QfEM3bu8tBAR/SfI1A9ggZWQhuuUqtRyhhVCajdQDOo7rS0UG7R5JzK58w==", + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__code-frame": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/babel__code-frame/-/babel__code-frame-7.0.6.tgz", + "integrity": "sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, + "license": "MIT", "dependencies": { - "npmlog": "^6.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/@lerna/pulse-till-done/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@babel/types": "^7.0.0" } }, - "node_modules/@lerna/pulse-till-done/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/@lerna/pulse-till-done/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@babel/types": "^7.20.7" } }, - "node_modules/@lerna/query-graph": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-6.1.0.tgz", - "integrity": "sha512-YkyCc+6aR7GlCOcZXEKPcl5o5L2v+0YUNs59JrfAS0mctFosZ/2tP7pkdu2SI4qXIi5D0PMNsh/0fRni56znsQ==", + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/package-graph": "6.1.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "@types/connect": "*", + "@types/node": "*" } }, - "node_modules/@lerna/resolve-symlink": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-6.1.0.tgz", - "integrity": "sha512-8ILO+h5fsE0q8MSLfdL+MT1GEsNhAB1fDyMkSsYgLRCsssN/cViZbffpclZyT/EfAhpyKfBCHZ0CmT1ZGofU1A==", + "node_modules/@types/caseless": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", + "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", + "license": "MIT" + }, + "node_modules/@types/chai": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.0.1.tgz", + "integrity": "sha512-5T8ajsg3M/FOncpLYW7sdOcD6yf4+722sze/tc4KQV0P8Z2rAr3SAuHCIkYmYpt8VbcQlnz8SxlOlPQYefe4cA==", "dev": true, + "license": "MIT", "dependencies": { - "fs-extra": "^9.1.0", - "npmlog": "^6.0.2", - "read-cmd-shim": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "@types/deep-eql": "*" } }, - "node_modules/@lerna/resolve-symlink/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@types/chai-as-promised": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-8.0.1.tgz", + "integrity": "sha512-dAlDhLjJlABwAVYObo9TPWYTRg9NaQM5CXeaeJYcYAkvzUf0JRLIiog88ao2Wqy/20WUnhbbUZcgvngEbJ3YXQ==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/chai": "*" } }, - "node_modules/@lerna/resolve-symlink/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/@types/co-body": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@types/co-body/-/co-body-6.1.3.tgz", + "integrity": "sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==", "dev": true, + "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" + "@types/node": "*", + "@types/qs": "*" } }, - "node_modules/@lerna/resolve-symlink/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@types/command-line-args": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.3.tgz", + "integrity": "sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/node": "*" } }, - "node_modules/@lerna/resolve-symlink/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@types/content-disposition": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.8.tgz", + "integrity": "sha512-QVSSvno3dE0MgO76pJhmv4Qyi/j0Yk9pBp0Y7TJ2Tlj+KCgJWY6qX7nnxCOLkZ3VYRSIk1WTxCvwUSdx6CCLdg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/conventional-commits-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.1.tgz", + "integrity": "sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/node": "*" } }, - "node_modules/@lerna/rimraf-dir": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-6.1.0.tgz", - "integrity": "sha512-J9YeGHkCCeAIzsnKURYeGECBexiIii6HA+Bbd+rAgoKPsNCOj6ql4+qJE8Jbd7fQEFNDPQeBCYvM7JcdMc0WSA==", + "node_modules/@types/convert-source-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/convert-source-map/-/convert-source-map-2.0.3.tgz", + "integrity": "sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/cookies": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.9.0.tgz", + "integrity": "sha512-40Zk8qR147RABiQ7NQnBzWzDcjKzNrntB5BAmeGCb2p/MIyOE+4BVvc17wumsUqUw00bJYqoXFHYygQnEFh4/Q==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/child-process": "6.1.0", - "npmlog": "^6.0.2", - "path-exists": "^4.0.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "@types/connect": "*", + "@types/express": "*", + "@types/keygrip": "*", + "@types/node": "*" } }, - "node_modules/@lerna/rimraf-dir/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@types/debounce": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.4.tgz", + "integrity": "sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==", "dev": true, + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "peer": true, "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/ms": "*" } }, - "node_modules/@lerna/rimraf-dir/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/doctrine": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.9.tgz", + "integrity": "sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==", "dev": true, + "license": "MIT" + }, + "node_modules/@types/duplexify": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.4.tgz", + "integrity": "sha512-2eahVPsd+dy3CL6FugAzJcxoraWhUghZGEQJns1kTKfCXWKJ5iG/VkaB05wRVrDKHfOFKqb0X0kXh91eE99RZg==", + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/node": "*" } }, - "node_modules/@lerna/rimraf-dir/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", + "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", + "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/body-parser": "*", + "@types/express-serve-static-core": "^5.0.0", + "@types/qs": "*", + "@types/serve-static": "*" } }, - "node_modules/@lerna/run": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-6.1.0.tgz", - "integrity": "sha512-vlEEKPcTloiob6EK7gxrjEdB6fQQ/LNfWhSJCGxJlvNVbrMpoWIu0Kpp20b0nE+lzX7rRJ4seWr7Wdo/Fjub4Q==", + "node_modules/@types/express-serve-static-core": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz", + "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/command": "6.1.0", - "@lerna/filter-options": "6.1.0", - "@lerna/npm-run-script": "6.1.0", - "@lerna/output": "6.1.0", - "@lerna/profiler": "6.1.0", - "@lerna/run-topologically": "6.1.0", - "@lerna/timer": "6.1.0", - "@lerna/validation-error": "6.1.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" } }, - "node_modules/@lerna/run-lifecycle": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-6.1.0.tgz", - "integrity": "sha512-GbTdKxL+hWHEPgyBEKtqY9Nf+jFlt6YLtP5VjEVc5SdLkm+FeRquar9/YcZVUbzr3c+NJwWNgVjHuePfowdpUA==", + "node_modules/@types/figlet": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@types/figlet/-/figlet-1.7.0.tgz", + "integrity": "sha512-KwrT7p/8Eo3Op/HBSIwGXOsTZKYiM9NpWRBJ5sVjWP/SmlS+oxxRvJht/FNAtliJvja44N3ul1yATgohnVBV0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/google-protobuf": { + "version": "3.15.12", + "resolved": "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.15.12.tgz", + "integrity": "sha512-40um9QqwHjRS92qnOaDpL7RmDK15NuZYo9HihiJRbYkMQZlWnuH8AdvbMy8/o6lgLmKbDUKa+OALCltHdbOTpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-assert": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.6.tgz", + "integrity": "sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/npm-conf": "6.1.0", - "@npmcli/run-script": "^4.1.7", - "npmlog": "^6.0.2", - "p-queue": "^6.6.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "@types/istanbul-lib-coverage": "*" } }, - "node_modules/@lerna/run-lifecycle/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/istanbul-lib-report": "*" } }, - "node_modules/@lerna/run-lifecycle/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@types/jsonwebtoken": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.7.tgz", + "integrity": "sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/node": "*" } }, - "node_modules/@lerna/run-lifecycle/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@types/keygrip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.6.tgz", + "integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/koa": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.15.0.tgz", + "integrity": "sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/accepts": "*", + "@types/content-disposition": "*", + "@types/cookies": "*", + "@types/http-assert": "*", + "@types/http-errors": "*", + "@types/keygrip": "*", + "@types/koa-compose": "*", + "@types/node": "*" } }, - "node_modules/@lerna/run-topologically": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-6.1.0.tgz", - "integrity": "sha512-kpTaSBKdKjtf61be8Z1e7TIaMt/aksfxswQtpFxEuKDsPsdHfR8htSkADO4d/3SZFtmcAHIHNCQj9CaNj4O4Xw==", + "node_modules/@types/koa-compose": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.8.tgz", + "integrity": "sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/query-graph": "6.1.0", - "p-queue": "^6.6.2" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "@types/koa": "*" } }, - "node_modules/@lerna/run/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", "dev": true, + "license": "MIT" + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mocha": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/mustache": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/mustache/-/mustache-4.2.5.tgz", + "integrity": "sha512-PLwiVvTBg59tGFL/8VpcGvqOu3L4OuveNvPi0EYbWchRdEVP++yRUXJPFl+CApKEq13017/4Nf7aQ5lTtHUNsA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "license": "MIT", + "dependencies": { + "@types/node": "*" } }, - "node_modules/@lerna/symlink-binary": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-6.1.0.tgz", - "integrity": "sha512-DaiRNZk/dvomNxgEaTW145PyL7vIGP7rvnfXV2FO+rjX8UUSNUOjmVmHlYfs64gV9Eqx/dLfQClIbKcwYMD83A==", - "dev": true, + "node_modules/@types/node": { + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", + "license": "MIT", "dependencies": { - "@lerna/create-symlink": "6.1.0", - "@lerna/package": "6.1.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "undici-types": "~6.19.2" } }, - "node_modules/@lerna/symlink-binary/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, + "node_modules/@types/node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==", + "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" + "@types/node": "*", + "form-data": "^4.0.0" } }, - "node_modules/@lerna/symlink-dependencies": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-6.1.0.tgz", - "integrity": "sha512-hrTvtY1Ek+fLA4JjXsKsvwPjuJD0rwB/+K4WY57t00owj//BpCsJ37w3kkkS7f/PcW/5uRjCuHcY67LOEwsRxw==", + "node_modules/@types/node/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/@types/nodemailer": { + "version": "6.4.17", + "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.17.tgz", + "integrity": "sha512-I9CCaIp6DTldEg7vyUTZi8+9Vo0hi1/T8gv3C89yk1rSAAzoKQ8H8ki/jBYJSFoH/BisgLP8tkZMlQ91CIquww==", "dev": true, + "license": "MIT", "dependencies": { - "@lerna/create-symlink": "6.1.0", - "@lerna/resolve-symlink": "6.1.0", - "@lerna/symlink-binary": "6.1.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "@types/node": "*" } }, - "node_modules/@lerna/symlink-dependencies/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true, + "license": "MIT" + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/parse5": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "license": "MIT" + }, + "node_modules/@types/pumpify": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@types/pumpify/-/pumpify-1.4.4.tgz", + "integrity": "sha512-+cWbQUecD04MQYkjNBhPmcUIP368aloYmqm+ImdMKA8rMpxRNAhZAD6gIj+sAVTF1DliqrT/qUp6aGNi/9U3tw==", + "license": "MIT", "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" + "@types/duplexify": "*", + "@types/node": "*" } }, - "node_modules/@lerna/temp-write": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-6.1.0.tgz", - "integrity": "sha512-ZcQl88H9HbQ/TeWUOVt+vDYwptm7kwprGvj9KkZXr9S5Bn6SiKRQOeydCCfCrQT+9Q3dm7QZXV6rWzLsACcAlQ==", + "node_modules/@types/qs": { + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.15", - "is-stream": "^2.0.0", - "make-dir": "^3.0.0", - "temp-dir": "^1.0.0", - "uuid": "^8.3.2" + "@types/prop-types": "*", + "csstype": "^3.0.2" } }, - "node_modules/@lerna/temp-write/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/@types/react-dom": { + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", "dev": true, - "bin": { - "uuid": "dist/bin/uuid" + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" } }, - "node_modules/@lerna/timer": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-6.1.0.tgz", - "integrity": "sha512-du+NQ9q7uO4d2nVU4AD2DSPuAZqUapA/bZKuVpFVxvY9Qhzb8dQKLsFISe4A9TjyoNAk8ZeWK0aBc/6N+Qer9A==", - "dev": true, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "node_modules/@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*" } }, - "node_modules/@lerna/validation-error": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-6.1.0.tgz", - "integrity": "sha512-q0c3XCi5OpyTr8AcfbisS6e3svZaJF/riCvBDqRMaQUT4A8QOPzB4fVF3/+J2u54nidBuTlIk0JZu9aOdWTUkQ==", - "dev": true, + "node_modules/@types/request": { + "version": "2.48.12", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", + "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", + "license": "MIT", + "dependencies": { + "@types/caseless": "*", + "@types/node": "*", + "@types/tough-cookie": "*", + "form-data": "^2.5.0" + } + }, + "node_modules/@types/request/node_modules/form-data": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.2.tgz", + "integrity": "sha512-GgwY0PS7DbXqajuGf4OYlsrIu3zgxD6Vvql43IBhm6MahqA5SK/7mwhtNj2AdH2z35YR34ujJ7BN+3fFC3jP5Q==", + "license": "MIT", "dependencies": { - "npmlog": "^6.0.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12", + "safe-buffer": "^5.2.1" }, "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">= 0.12" } }, - "node_modules/@lerna/validation-error/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/mime": "^1", + "@types/node": "*" } }, - "node_modules/@lerna/validation-error/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" } }, - "node_modules/@lerna/validation-error/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@types/sinon": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz", + "integrity": "sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/sinonjs__fake-timers": "*" } }, - "node_modules/@lerna/version": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-6.1.0.tgz", - "integrity": "sha512-RUxVFdzHt0739lRNMrAbo6HWcFrcyG7atM1pn+Eo61fUoA5R/9N4bCk4m9xUGkJ/mOcROjuwAGe+wT1uOs58Bg==", - "dev": true, - "dependencies": { - "@lerna/check-working-tree": "6.1.0", - "@lerna/child-process": "6.1.0", - "@lerna/collect-updates": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/conventional-commits": "6.1.0", - "@lerna/github-client": "6.1.0", - "@lerna/gitlab-client": "6.1.0", - "@lerna/output": "6.1.0", - "@lerna/prerelease-id-from-version": "6.1.0", - "@lerna/prompt": "6.1.0", - "@lerna/run-lifecycle": "6.1.0", - "@lerna/run-topologically": "6.1.0", - "@lerna/temp-write": "6.1.0", - "@lerna/validation-error": "6.1.0", - "@nrwl/devkit": ">=14.8.6 < 16", - "chalk": "^4.1.0", - "dedent": "^0.7.0", - "load-json-file": "^6.2.0", - "minimatch": "^3.0.4", - "npmlog": "^6.0.2", - "p-map": "^4.0.0", - "p-pipe": "^3.1.0", - "p-reduce": "^2.1.0", - "p-waterfall": "^2.1.1", - "semver": "^7.3.4", - "slash": "^3.0.0", - "write-json-file": "^4.3.0" - }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "node_modules/@types/sinon-chai": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-4.0.0.tgz", + "integrity": "sha512-Uar+qk3TmeFsUWCwtqRNqNUE7vf34+MCJiQJR5M2rd4nCbhtE8RgTiHwN/mVwbfCjhmO6DiOel/MgzHkRMJJFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "*", + "@types/sinon": "*" } }, - "node_modules/@lerna/version/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", + "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "license": "MIT" + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "dev": true, + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", + "license": "MIT" + }, + "node_modules/@types/validator": { + "version": "13.12.2", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.2.tgz", + "integrity": "sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/webrtc": { + "version": "0.0.44", + "resolved": "https://registry.npmjs.org/@types/webrtc/-/webrtc-0.0.44.tgz", + "integrity": "sha512-4BJZdzrApNFeuXgucyqs24k69f7oti3wUcGEbFbaV08QBh7yEe3tnRRuYXlyXJNXiumpZujiZqUZZ2/gMSeO0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/node": "*" } }, - "node_modules/@lerna/version/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/node": "*" } }, - "node_modules/@lerna/version/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@vitejs/plugin-react": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, - "node_modules/@lerna/write-log-file": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-6.1.0.tgz", - "integrity": "sha512-09omu2w4NCt8mJH/X9ZMuToQQ3xu/KpC7EU4yDl2Qy8nxKf8HiG8Oe+YYNprngmkdsq60F5eUZvoiFDZ5JeGIg==", + "node_modules/@vitest/expect": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.0.5.tgz", + "integrity": "sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==", "dev": true, + "license": "MIT", "dependencies": { - "npmlog": "^6.0.2", - "write-file-atomic": "^4.0.1" + "@vitest/spy": "2.0.5", + "@vitest/utils": "2.0.5", + "chai": "^5.1.1", + "tinyrainbow": "^1.2.0" }, - "engines": { - "node": "^14.15.0 || >=16.0.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@lerna/write-log-file/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@vitest/expect/node_modules/@vitest/pretty-format": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.0.5.tgz", + "integrity": "sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "tinyrainbow": "^1.2.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@lerna/write-log-file/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@vitest/expect/node_modules/@vitest/utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.0.5.tgz", + "integrity": "sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "@vitest/pretty-format": "2.0.5", + "estree-walker": "^3.0.3", + "loupe": "^3.1.1", + "tinyrainbow": "^1.2.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@lerna/write-log-file/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@vitest/expect/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/estree": "^1.0.0" } }, - "node_modules/@lerna/write-log-file/node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "node_modules/@vitest/pretty-format": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz", + "integrity": "sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==", "dev": true, + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "tinyrainbow": "^1.2.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "node_modules/@vitest/spy": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.0.5.tgz", + "integrity": "sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==", "dev": true, + "license": "MIT", "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" + "tinyspy": "^3.0.0" }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@vitest/utils": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz", + "integrity": "sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==", "dev": true, + "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@vitest/pretty-format": "2.1.8", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" }, - "engines": { - "node": ">= 8" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@web/browser-logs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.4.1.tgz", + "integrity": "sha512-ypmMG+72ERm+LvP+loj9A64MTXvWMXHUOu773cPO4L1SV/VWg6xA9Pv7vkvkXQX+ItJtCJt+KQ+U6ui2HhSFUw==", "dev": true, + "license": "MIT", + "dependencies": { + "errorstacks": "^2.4.1" + }, "engines": { - "node": ">= 8" + "node": ">=18.0.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@web/config-loader": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.3.2.tgz", + "integrity": "sha512-Vrjv/FexBGmAdnCYpJKLHX1dfT1UaUdvHmX1JRaWos9OvDf/tFznYJ5SpJwww3Rl87/ewvLSYG7kfsMqEAsizQ==", "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=18.0.0" } }, - "node_modules/@npmcli/arborist": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-5.3.0.tgz", - "integrity": "sha512-+rZ9zgL1lnbl8Xbb1NQdMjveOMwj4lIYfcDtyJHHi5x4X8jtR6m8SXooJMZy5vmFVZ8w7A2Bnd/oX9eTuU8w5A==", + "node_modules/@web/dev-server": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.4.6.tgz", + "integrity": "sha512-jj/1bcElAy5EZet8m2CcUdzxT+CRvUjIXGh8Lt7vxtthkN9PzY9wlhWx/9WOs5iwlnG1oj0VGo6f/zvbPO0s9w==", "dev": true, + "license": "MIT", "dependencies": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/map-workspaces": "^2.0.3", - "@npmcli/metavuln-calculator": "^3.0.1", - "@npmcli/move-file": "^2.0.0", - "@npmcli/name-from-folder": "^1.0.1", - "@npmcli/node-gyp": "^2.0.0", - "@npmcli/package-json": "^2.0.0", - "@npmcli/run-script": "^4.1.3", - "bin-links": "^3.0.0", - "cacache": "^16.0.6", - "common-ancestor-path": "^1.0.1", - "json-parse-even-better-errors": "^2.3.1", - "json-stringify-nice": "^1.1.4", - "mkdirp": "^1.0.4", - "mkdirp-infer-owner": "^2.0.0", - "nopt": "^5.0.0", - "npm-install-checks": "^5.0.0", - "npm-package-arg": "^9.0.0", - "npm-pick-manifest": "^7.0.0", - "npm-registry-fetch": "^13.0.0", - "npmlog": "^6.0.2", - "pacote": "^13.6.1", - "parse-conflict-json": "^2.0.1", - "proc-log": "^2.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.1", - "read-package-json-fast": "^2.0.2", - "readdir-scoped-modules": "^1.1.0", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "ssri": "^9.0.0", - "treeverse": "^2.0.0", - "walk-up-path": "^1.0.0" + "@babel/code-frame": "^7.12.11", + "@types/command-line-args": "^5.0.0", + "@web/config-loader": "^0.3.0", + "@web/dev-server-core": "^0.7.2", + "@web/dev-server-rollup": "^0.6.1", + "camelcase": "^6.2.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^7.0.1", + "debounce": "^1.2.0", + "deepmerge": "^4.2.2", + "internal-ip": "^6.2.0", + "nanocolors": "^0.2.1", + "open": "^8.0.2", + "portfinder": "^1.0.32" }, "bin": { - "arborist": "bin/index.js" + "wds": "dist/bin.js", + "web-dev-server": "dist/bin.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18.0.0" } }, - "node_modules/@npmcli/arborist/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/@web/dev-server-core": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.7.5.tgz", + "integrity": "sha512-Da65zsiN6iZPMRuj4Oa6YPwvsmZmo5gtPWhW2lx3GTUf5CAEapjVpZVlUXnKPL7M7zRuk72jSsIl8lo+XpTCtw==", "dev": true, + "license": "MIT", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^2.1.0", + "chokidar": "^4.0.1", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^5.0.0", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^8.0.4", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.5.10" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18.0.0" } }, - "node_modules/@npmcli/arborist/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/@web/dev-server-core/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@npmcli/arborist/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "node_modules/@web/dev-server-esbuild": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@web/dev-server-esbuild/-/dev-server-esbuild-1.0.3.tgz", + "integrity": "sha512-oImN4/cpyfQC8+JcCx61M7WIo09zE2aDMFuwh+brqxuNXIBRQ+hnRGQK7fEIZSQeWWT5dFrWmH4oYZfqzCAlfQ==", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^7.5.1" + "@mdn/browser-compat-data": "^4.0.0", + "@web/dev-server-core": "^0.7.4", + "esbuild": "^0.24.0", + "parse5": "^6.0.1", + "ua-parser-js": "^1.0.33" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" + "node": ">=18.0.0" } }, - "node_modules/@npmcli/arborist/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", + "node_modules/@web/dev-server-rollup": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.6.4.tgz", + "integrity": "sha512-sJZfTGCCrdku5xYnQQG51odGI092hKY9YFM0X3Z0tRY3iXKXcYRaLZrErw5KfCxr6g0JRuhe4BBhqXTA5Q2I3Q==", "dev": true, + "license": "MIT", "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" + "@rollup/plugin-node-resolve": "^15.0.1", + "@web/dev-server-core": "^0.7.2", + "nanocolors": "^0.2.1", + "parse5": "^6.0.1", + "rollup": "^4.4.0", + "whatwg-url": "^14.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18.0.0" } }, - "node_modules/@npmcli/arborist/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/@web/parse5-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-2.1.0.tgz", + "integrity": "sha512-GzfK5disEJ6wEjoPwx8AVNwUe9gYIiwc+x//QYxYDAFKUp4Xb1OJAGLc2l2gVrSQmtPGLKrTRcW90Hv4pEq1qA==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "@types/parse5": "^6.0.1", + "parse5": "^6.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18.0.0" } }, - "node_modules/@npmcli/arborist/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "node_modules/@web/test-runner": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.18.3.tgz", + "integrity": "sha512-QkVK8Qguw3Zhyu8SYR7F4VdcjyXBeJNr8W8L++s4zO/Ok7DR/Wu7+rLswn3H7OH3xYoCHRmwteehcFejefz6ew==", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "@web/browser-logs": "^0.4.0", + "@web/config-loader": "^0.3.0", + "@web/dev-server": "^0.4.0", + "@web/test-runner-chrome": "^0.16.0", + "@web/test-runner-commands": "^0.9.0", + "@web/test-runner-core": "^0.13.0", + "@web/test-runner-mocha": "^0.9.0", + "camelcase": "^6.2.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^7.0.1", + "convert-source-map": "^2.0.0", + "diff": "^5.0.0", + "globby": "^11.0.1", + "nanocolors": "^0.2.1", + "portfinder": "^1.0.32", + "source-map": "^0.7.3" }, "bin": { - "semver": "bin/semver.js" + "web-test-runner": "dist/bin.js", + "wtr": "dist/bin.js" }, "engines": { - "node": ">=10" + "node": ">=18.0.0" } }, - "node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "node_modules/@web/test-runner-chrome": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-chrome/-/test-runner-chrome-0.16.0.tgz", + "integrity": "sha512-Edc6Y49aVB6k18S5IOj9OCX3rEf8F3jptIu0p95+imqxmcutFEh1GNmlAk2bQGnXS0U6uVY7Xbf61fiaXUQqhg==", "dev": true, + "license": "MIT", "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" + "@web/test-runner-core": "^0.13.0", + "@web/test-runner-coverage-v8": "^0.8.0", + "async-mutex": "0.4.0", + "chrome-launcher": "^0.15.0", + "puppeteer-core": "^22.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18.0.0" } }, - "node_modules/@npmcli/git": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.2.tgz", - "integrity": "sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w==", + "node_modules/@web/test-runner-commands": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.9.0.tgz", + "integrity": "sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==", "dev": true, + "license": "MIT", "dependencies": { - "@npmcli/promise-spawn": "^3.0.0", - "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^7.0.0", - "proc-log": "^2.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^2.0.2" + "@web/test-runner-core": "^0.13.0", + "mkdirp": "^1.0.4" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18.0.0" } }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "node_modules/@web/test-runner-core": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.4.tgz", + "integrity": "sha512-84E1025aUSjvZU1j17eCTwV7m5Zg3cZHErV3+CaJM9JPCesZwLraIa0ONIQ9w4KLgcDgJFw9UnJ0LbFf42h6tg==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.11", + "@types/babel__code-frame": "^7.0.2", + "@types/co-body": "^6.1.0", + "@types/convert-source-map": "^2.0.0", + "@types/debounce": "^1.2.0", + "@types/istanbul-lib-coverage": "^2.0.3", + "@types/istanbul-reports": "^3.0.0", + "@web/browser-logs": "^0.4.0", + "@web/dev-server-core": "^0.7.3", + "chokidar": "^4.0.1", + "cli-cursor": "^3.1.0", + "co-body": "^6.1.0", + "convert-source-map": "^2.0.0", + "debounce": "^1.2.0", + "dependency-graph": "^0.11.0", + "globby": "^11.0.1", + "internal-ip": "^6.2.0", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.0.2", + "log-update": "^4.0.0", + "nanocolors": "^0.2.1", + "nanoid": "^3.1.25", + "open": "^8.0.2", + "picomatch": "^2.2.2", + "source-map": "^0.7.3" + }, "engines": { - "node": ">=12" + "node": ">=18.0.0" } }, - "node_modules/@npmcli/installed-package-contents": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", - "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "node_modules/@web/test-runner-core/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "dependencies": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "installed-package-contents": "index.js" - }, + "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@npmcli/map-workspaces": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz", - "integrity": "sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==", + "node_modules/@web/test-runner-core/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, - "dependencies": { - "@npmcli/name-from-folder": "^1.0.1", - "glob": "^8.0.1", - "minimatch": "^5.0.1", - "read-package-json-fast": "^2.0.3" - }, + "license": "BSD-3-Clause", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 8" } }, - "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@web/test-runner-coverage-v8": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.8.0.tgz", + "integrity": "sha512-PskiucYpjUtgNfR2zF2AWqWwjXL7H3WW/SnCAYmzUrtob7X9o/+BjdyZ4wKbOxWWSbJO4lEdGIDLu+8X2Xw+lA==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "@web/test-runner-core": "^0.13.0", + "istanbul-lib-coverage": "^3.0.0", + "lru-cache": "^8.0.4", + "picomatch": "^2.2.2", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@npmcli/map-workspaces/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "node_modules/@web/test-runner-coverage-v8/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "node_modules/@web/test-runner-mocha": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.9.0.tgz", + "integrity": "sha512-ZL9F6FXd0DBQvo/h/+mSfzFTSRVxzV9st/AHhpgABtUtV/AIpVE9to6+xdkpu6827kwjezdpuadPfg+PlrBWqQ==", "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "@web/test-runner-core": "^0.13.0" }, "engines": { - "node": ">=10" + "node": ">=18.0.0" } }, - "node_modules/@npmcli/metavuln-calculator": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz", - "integrity": "sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA==", + "node_modules/@web/test-runner-playwright": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-playwright/-/test-runner-playwright-0.11.0.tgz", + "integrity": "sha512-s+f43DSAcssKYVOD9SuzueUcctJdHzq1by45gAnSCKa9FQcaTbuYe8CzmxA21g+NcL5+ayo4z+MA9PO4H+PssQ==", "dev": true, + "license": "MIT", "dependencies": { - "cacache": "^16.0.0", - "json-parse-even-better-errors": "^2.3.1", - "pacote": "^13.0.3", - "semver": "^7.3.5" + "@web/test-runner-core": "^0.13.0", + "@web/test-runner-coverage-v8": "^0.8.0", + "playwright": "^1.22.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18.0.0" } }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", + "node_modules/@web/test-runner/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, + "license": "BSD-3-Clause", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 8" } }, - "node_modules/@npmcli/name-from-folder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", - "integrity": "sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==", - "dev": true - }, - "node_modules/@npmcli/node-gyp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz", - "integrity": "sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==", + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "license": "BSD-2-Clause" }, - "node_modules/@npmcli/package-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-2.0.0.tgz", - "integrity": "sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA==", + "node_modules/@yarnpkg/parsers": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.2.tgz", + "integrity": "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "json-parse-even-better-errors": "^2.3.1" + "js-yaml": "^3.10.0", + "tslib": "^2.4.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18.12.0" } }, - "node_modules/@npmcli/promise-spawn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz", - "integrity": "sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==", + "node_modules/@yarnpkg/parsers/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { - "infer-owner": "^1.0.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "sprintf-js": "~1.0.2" } }, - "node_modules/@npmcli/run-script": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.1.tgz", - "integrity": "sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg==", + "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { - "@npmcli/node-gyp": "^2.0.0", - "@npmcli/promise-spawn": "^3.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^2.0.3", - "which": "^2.0.2" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@nrwl/cli": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-15.2.4.tgz", - "integrity": "sha512-Urhkzj/hzhTlJqOHFZyibYGjvzHvSQhkjN3keHiYCNEOaAGp9DPF+oC5cYrPcqWbu3ZkldDWTk7aVBbeqwDWZQ==", + "node_modules/@yarnpkg/parsers/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@zeit/schemas": { + "version": "2.36.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.36.0.tgz", + "integrity": "sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==", "dev": true, + "license": "MIT" + }, + "node_modules/@zkochan/js-yaml": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz", + "integrity": "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==", + "dev": true, + "license": "MIT", "dependencies": { - "nx": "15.2.4" + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@nrwl/devkit": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.2.4.tgz", - "integrity": "sha512-5JZWB4ydnu+NKNIfj958nML8AWwhareQ+Q1hLXoOIS/7brqfALNP3y/Ef1ljrLIo1f3xc484TPclqwSH7aRdvQ==", + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, + "license": "ISC" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", "dependencies": { - "@phenomnomnominal/tsquery": "4.1.1", - "ejs": "^3.1.7", - "ignore": "^5.0.4", - "semver": "7.3.4", - "tslib": "^2.3.0" + "event-target-shim": "^5.0.0" }, - "peerDependencies": { - "nx": ">= 14 <= 16" + "engines": { + "node": ">=6.5" } }, - "node_modules/@nrwl/devkit/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", "bin": { - "semver": "bin/semver.js" + "acorn": "bin/acorn" }, "engines": { - "node": ">=10" + "node": ">=0.4.0" } }, - "node_modules/@nrwl/tao": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-15.2.4.tgz", - "integrity": "sha512-ebGJCkg84yfptuNhGMnIrgHvnknJkeyxWLqRQ7AlMXTzxXOfMS+whjVImM9XjfVYVpBVFWc5QBU5gaKQtzLHmA==", + "node_modules/add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", "dev": true, + "license": "MIT" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", "dependencies": { - "nx": "15.2.4" + "debug": "4" }, - "bin": { - "tao": "index.js" + "engines": { + "node": ">= 6.0.0" } }, - "node_modules/@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", - "dev": true, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "license": "MIT", "dependencies": { - "@octokit/types": "^8.0.0" + "humanize-ms": "^1.2.1" }, "engines": { - "node": ">= 14" + "node": ">= 8.0.0" } }, - "node_modules/@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, "engines": { - "node": ">= 14" + "node": ">=8" } }, - "node_modules/@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", + "node_modules/aggregate-error/node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-color": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", + "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==", "engines": { - "node": ">= 14" + "node": "*" } }, - "node_modules/@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escape-sequences": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", + "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", - "universal-user-agent": "^6.0.0" + "array-back": "^3.0.1" }, "engines": { - "node": ">= 14" + "node": ">=8.0.0" } }, - "node_modules/@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", - "dev": true - }, - "node_modules/@octokit/plugin-enterprise-rest": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", - "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", - "dev": true - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz", - "integrity": "sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw==", - "dev": true, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", "dependencies": { - "@octokit/types": "^8.0.0" + "type-fest": "^0.21.3" }, "engines": { - "node": ">= 14" + "node": ">=8" }, - "peerDependencies": { - "@octokit/core": ">=4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true, - "peerDependencies": { - "@octokit/core": ">=3" + "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==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz", - "integrity": "sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw==", - "dev": true, - "dependencies": { - "@octokit/types": "^8.0.0", - "deprecation": "^2.3.1" - }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", "engines": { - "node": ">= 14" + "node": ">=10" }, - "peerDependencies": { - "@octokit/core": ">=3" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", - "dev": true, - "dependencies": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - }, + "node_modules/ansis": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-3.5.2.tgz", + "integrity": "sha512-5uGcUZRbORJeEppVdWfZOSybTMz+Ou+84HepgK081Yk5+pPMMzWf/XGxiAT6bfBqCghRB4MwBtYn0CHqINRVag==", + "license": "ISC", "engines": { - "node": ">= 14" + "node": ">=16" } }, - "node_modules/@octokit/request-error": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz", - "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==", + "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==", "dev": true, + "license": "ISC", "dependencies": { - "@octokit/types": "^8.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">= 14" + "node": ">= 8" } }, - "node_modules/@octokit/rest": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.5.tgz", - "integrity": "sha512-+4qdrUFq2lk7Va+Qff3ofREQWGBeoTKNqlJO+FGjFP35ZahP+nBenhZiGdu8USSgmq4Ky3IJ/i4u0xbLqHaeow==", + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "dependencies": { - "@octokit/core": "^4.1.0", - "@octokit/plugin-paginate-rest": "^5.0.0", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^6.7.0" - }, + "license": "MIT", "engines": { - "node": ">= 14" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@octokit/types": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz", - "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==", + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true, - "dependencies": { - "@octokit/openapi-types": "^14.0.0" - } + "license": "ISC" }, - "node_modules/@parcel/watcher": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", - "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", "dev": true, - "hasInstallScript": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", "dependencies": { - "node-addon-api": "^3.2.1", - "node-gyp-build": "^4.3.0" + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" }, "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">=10" } }, - "node_modules/@phenomnomnominal/tsquery": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz", - "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==", + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", "dev": true, + "license": "MIT" + }, + "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==", + "license": "Python-2.0" + }, + "node_modules/ari-client": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ari-client/-/ari-client-2.2.0.tgz", + "integrity": "sha512-DPz+vC/dZyvy5HqBrEzYpNH6X2hDb+AIyRith6f8IVLHyveRWaHPO0S7rF1Q91qry/U8G+504KUZfeaBPwzIVQ==", + "license": "Apache-2.0", "dependencies": { - "esquery": "^1.0.1" + "backoff-func": "^0.1.2", + "bluebird": "^3.5.2", + "lodash": "^4.17.10", + "request": "^2.34.0", + "swagger-client": "2.0.26", + "uuid": "^3.0.0", + "ws": "^6.0.0" }, - "peerDependencies": { - "typescript": "^3 || ^4" + "engines": { + "node": ">=8" } }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" + "node_modules/ari-client/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "license": "MIT", + "bin": { + "uuid": "bin/uuid" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dev": true, + "node_modules/ari-client/node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "license": "MIT", "dependencies": { - "@sinonjs/commons": "^1.7.0" + "async-limiter": "~1.0.0" } }, - "node_modules/@sinonjs/samsam": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", - "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" + "dequal": "^2.0.3" } }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", - "dev": true - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=6" } }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", - "dev": true - }, - "node_modules/@types/markdown-it": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", - "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", "dev": true, - "dependencies": { - "@types/linkify-it": "*", - "@types/mdurl": "*" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true - }, - "node_modules/@types/mocha": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", - "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", - "dev": true + "node_modules/array-flatten": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", + "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==", + "license": "MIT" }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true, + "license": "MIT" }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", - "dev": true, - "dependencies": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "license": "MIT", "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8" } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", - "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", - "dev": true, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "license": "MIT", "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" + "node": ">=0.8" } }, - "node_modules/@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" - }, + "license": "MIT", "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=12" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", - "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" + "tslib": "^2.0.1" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=4" } }, - "node_modules/@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, + "license": "MIT", "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=8" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "license": "MIT" + }, + "node_modules/async-mutex": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", + "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "tslib": "^2.4.0" + } + }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "license": "MIT", + "dependencies": { + "retry": "0.13.1" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" + "possible-typed-array-names": "^1.0.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "license": "MIT" }, - "node_modules/@yarnpkg/parsers": { - "version": "3.0.0-rc.32", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.32.tgz", - "integrity": "sha512-Sz2g88b3iAu2jpMnhtps2bRX2GAAOvanOxGcVi+o7ybGjLetxK23o2cHskXKypvXxtZTsJegel5pUWSPpYphww==", + "node_modules/ax": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/ax/-/ax-0.1.8.tgz", + "integrity": "sha512-s1c0qoZbk9QzrpycVDBdlXkD+ZWY9SjnP7Y0ImUG+CRkPSmOHRb8K1zMT95zyULId4mzGjkWBYlqXFagllkzxg==" + }, + "node_modules/axios": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", "dev": true, + "license": "Apache-2.0" + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", "dependencies": { - "js-yaml": "^3.10.0", - "tslib": "^2.4.0" + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" }, "engines": { - "node": ">=14.15.0" + "node": ">=10", + "npm": ">=6" } }, - "node_modules/@yarnpkg/parsers/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - }, - "node_modules/@zkochan/js-yaml": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", - "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", - "dev": true, + "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=10" } }, - "node_modules/@zkochan/js-yaml/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==", - "dev": true + "node_modules/babel-plugin-macros/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "node_modules/backoff-func": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/backoff-func/-/backoff-func-0.1.2.tgz", + "integrity": "sha512-tO4xSM6onGv8JTHueffdfQOoS5AChcs4sTYUD4Ju19tiby7LmaI70TKR/0nIwVTTcCRVrPcq1ZEuTeWMRm7QUQ==", + "license": "MIT" }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/bare-events": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", + "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } + "license": "Apache-2.0", + "optional": true }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/bare-fs": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz", + "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==", "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-path": "^2.0.0", + "bare-stream": "^2.0.0" } }, - "node_modules/add-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", - "dev": true + "node_modules/bare-os": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz", + "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==", + "dev": true, + "license": "Apache-2.0", + "optional": true }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/bare-path": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz", + "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==", "dev": true, + "license": "Apache-2.0", + "optional": true, "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" + "bare-os": "^2.1.0" } }, - "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "node_modules/bare-stream": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.1.tgz", + "integrity": "sha512-eVZbtKM+4uehzrsj49KtCy3Pbg7kO1pJ3SKZ1SFrIH/0pnj9scuGGgUlNDf/7qS8WKtGdiJY5Kyhs/ivYPTB/g==", "dev": true, + "license": "Apache-2.0", + "optional": true, "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" + "streamx": "^2.21.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10.0.0" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "license": "BSD-3-Clause", "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" + "tweetnacl": "^0.14.3" } }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "node_modules/bcrypt-pbkdf/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "license": "Unlicense" + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true, - "engines": { - "node": ">=6" + "license": "Apache-2.0" + }, + "node_modules/bent": { + "version": "7.3.12", + "resolved": "https://registry.npmjs.org/bent/-/bent-7.3.12.tgz", + "integrity": "sha512-T3yrKnVGB63zRuoco/7Ybl7BwwGZR0lceoVG5XmQyMIH9s19SV5m+a8qam4if0zQuAmOQTyPTPmsQBdAorGK3w==", + "license": "Apache-2.0", + "dependencies": { + "bytesish": "^0.4.1", + "caseless": "~0.12.0", + "is-stream": "^2.0.0" } }, - "node_modules/ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", + "node_modules/better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^3.0.1" + "open": "^8.0.4" }, "engines": { - "node": ">=8.0.0" + "node": ">=12.0.0" } }, - "node_modules/ansi-escape-sequences/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, + "node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", "engines": { - "node": ">=6" + "node": "*" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/bin-links": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz", + "integrity": "sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==", "dev": true, + "license": "ISC", "dependencies": { - "type-fest": "^0.21.3" + "cmd-shim": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "read-cmd-shim": "^4.0.0", + "write-file-atomic": "^5.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "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==", - "dev": true, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.0.2.tgz", + "integrity": "sha512-SNMk0OONlQ01uk8EPeiBvTW7W4ovpL5b1O3t1sjpPgfxOQ6BqQJ6XjxinDPR79Z6HdcD5zBBwr5ssiTlgdNztQ==", + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "3.1.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.5.2", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "^3.0.0", + "type-is": "~1.6.18" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18" } }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, + "node_modules/body-parser/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "license": "MIT", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">= 8" + "node": ">= 0.8" } }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz", + "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==", + "license": "MIT", "dependencies": { - "default-require-extensions": "^3.0.0" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/aproba": { + "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dev": true, + "node_modules/body-parser/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "side-channel": "^1.0.6" }, "engines": { - "node": ">=10" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, + "node_modules/body-parser/node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "license": "MIT", "dependencies": { - "sprintf-js": "~1.0.2" + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "node_modules/array-back": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", - "dev": true, + "node_modules/body-parser/node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, "engines": { - "node": ">=12.17" + "node": ">=0.10.0" } }, - "node_modules/array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true, + "node_modules/body-parser/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/array-ify": { + "node_modules/boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", + "license": "MIT" }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "node_modules/boxen": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.0.tgz", + "integrity": "sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.0", + "chalk": "^5.0.1", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "node_modules/boxen/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "node_modules/boxen/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "node_modules/boxen/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", - "dependencies": { - "follow-redirects": "^1.14.4" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "node_modules/boxen/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, - "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/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true + "license": "MIT" }, - "node_modules/bin-links": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-3.0.3.tgz", - "integrity": "sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==", + "node_modules/boxen/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { - "cmd-shim": "^5.0.0", - "mkdirp-infer-owner": "^2.0.0", - "npm-normalize-package-bin": "^2.0.0", - "read-cmd-shim": "^3.0.0", - "rimraf": "^3.0.0", - "write-file-atomic": "^4.0.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bin-links/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "node_modules/boxen/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/bin-links/node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "node_modules/boxen/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/boxen/node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^5.0.1" + }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, + "node_modules/browser-assert": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz", + "integrity": "sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==", + "dev": true + }, "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", + "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", "dev": true, "funding": [ { @@ -4941,13 +12119,18 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -4956,6 +12139,18 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/btoa": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.1.1.tgz", + "integrity": "sha512-Zr8ZdgW3SQJSMZVouLvZ6jn1FLv5AqWnMbHKIs22M3uMbYdrmJ7dscocEJVIPO8REDQNsFiXdrlZNwbJrnLYPg==", + "license": "Apache2", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -4975,111 +12170,117 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "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==", + "license": "BSD-3-Clause" + }, "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==", - "dev": true - }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", "dev": true, + "license": "MIT" + }, + "node_modules/bufrw": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.4.0.tgz", + "integrity": "sha512-sWm8iPbqvL9+5SiYxXH73UOkyEbGQg7kyHQmReF89WJHQJw2eV4P/yZ0E+b71cczJ4pPobVhXxgQcmfSTgGHxQ==", "dependencies": { - "semver": "^7.0.0" + "ansi-color": "^0.2.1", + "error": "^7.0.0", + "hexer": "^1.5.0", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.10.x" } }, "node_modules/byte-size": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz", - "integrity": "sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-8.1.1.tgz", + "integrity": "sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=12.17" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, + "node_modules/bytesish": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/bytesish/-/bytesish-0.4.4.tgz", + "integrity": "sha512-i4uu6M4zuMUiyfZN4RU2+i9+peJh//pXhd9x1oSe1LBkZ3LEbCoygu8W0bXTukU1Jme2txKuotpCZRaC3FLxcQ==", + "license": "(Apache-2.0 AND MIT)" + }, "node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", + "ssri": "^10.0.0", "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "unique-filename": "^3.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": ">=12" - } + "license": "ISC" }, - "node_modules/cacache/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "node_modules/cache-content-type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "mime-types": "^2.1.18", + "ylru": "^1.2.0" }, "engines": { - "node": ">=10" + "node": ">= 6.0.0" } }, "node_modules/cache-point": { @@ -5087,6 +12288,7 @@ "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", "dev": true, + "license": "MIT", "dependencies": { "array-back": "^4.0.1", "fs-then-native": "^2.0.0", @@ -5101,41 +12303,115 @@ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, + "license": "MIT", "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/camelcase-keys": { @@ -5143,6 +12419,7 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", @@ -5155,10 +12432,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys/node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/caniuse-lite": { - "version": "1.0.30001427", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001427.tgz", - "integrity": "sha512-lfXQ73oB9c8DP5Suxaszm+Ta2sr/4tf8+381GkIm1MLj/YdLf+rEDyDSRCzeltuyTVGm+/s18gdZ0q+Wmp8VsQ==", + "version": "1.0.30001690", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", + "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", "dev": true, "funding": [ { @@ -5168,14 +12465,37 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "license": "Apache-2.0" }, "node_modules/catharsis": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", "dev": true, + "license": "MIT", "dependencies": { "lodash": "^4.17.15" }, @@ -5184,40 +12504,86 @@ } }, "node_modules/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, + "license": "MIT", "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-8.0.1.tgz", + "integrity": "sha512-OIEJtOL8xxJSH8JJWbIoRjybbzR52iFuDHuF8eb+nTPD6tgXLjRqsgnUGqQfFODxYvq5QdirT0pN9dZ0+Gz6rA==", "dev": true, + "license": "MIT", "dependencies": { - "check-error": "^1.0.2" + "check-error": "^2.0.0" }, "peerDependencies": { - "chai": ">= 2.1.2 < 5" + "chai": ">= 2.1.2 < 6" + } + }, + "node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/chalk-template/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/chalk": { + "node_modules/chalk-template/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5229,46 +12595,123 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chalk-template/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "license": "MIT" }, "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">= 16" + } + }, + "node_modules/cheerio": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=18.17" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cheerio/node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "license": "MIT", + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "license": "MIT", "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" + "readdirp": "^4.0.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 14.16.0" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/chownr": { @@ -5276,23 +12719,97 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, + "node_modules/chrome-launcher": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", + "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/node": "*", + "escape-string-regexp": "^4.0.0", + "is-wsl": "^2.2.0", + "lighthouse-logger": "^1.0.0" + }, + "bin": { + "print-chrome-path": "bin/print-chrome-path.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/chromium-bidi": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.6.3.tgz", + "integrity": "sha512-qXlsCmpCZJAnoTYI83Iu6EdYQpMYdVkCfq08KDh2pmlVqK5t5IA9mGs4/LwCwp4fqisSOMXZxP3HIh8w8aRn0A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mitt": "3.0.1", + "urlpattern-polyfill": "10.0.0", + "zod": "3.23.8" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/chromium-bidi/node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } }, "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz", + "integrity": "sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-cursor": { @@ -5300,6 +12817,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -5308,10 +12826,10 @@ } }, "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true, + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -5319,1796 +12837,1678 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "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==", - "dev": true, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, + "node_modules/cli-table3/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==", + "license": "MIT", + "optional": true, "engines": { - "node": ">=0.8" + "node": ">=0.1.90" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "license": "ISC", "engines": { - "node": ">=6" + "node": ">= 12" } }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/clipboardy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-3.0.0.tgz", + "integrity": "sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==", "dev": true, + "license": "MIT", "dependencies": { - "isobject": "^3.0.1" + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" }, "engines": { - "node": ">=0.10.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cmd-shim": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz", - "integrity": "sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==", - "dev": true, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", "dependencies": { - "mkdirp-infer-owner": "^2.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=12" } }, - "node_modules/collect-all": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", - "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", - "dev": true, + "node_modules/cliui/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==", + "license": "MIT", "dependencies": { - "stream-connect": "^1.0.2", - "stream-via": "^1.0.4" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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==", - "dev": true, + "node_modules/cliui/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==", + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=7.0.0" - } - }, - "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==", - "dev": true - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "engines": { - "node": ">=0.1.90" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/columnify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", - "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", - "dev": true, - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=0.8" } }, - "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==", + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { - "delayed-stream": "~1.0.0" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">=6" } }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" + "isobject": "^3.0.1" }, "engines": { - "node": ">=4.0.0" + "node": ">=0.10.0" } }, - "node_modules/command-line-args/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/command-line-args/node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "node_modules/cmd-shim": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz", + "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==", "dev": true, + "license": "ISC", "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/command-line-tool": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", - "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, - "dependencies": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "command-line-args": "^5.0.0", - "command-line-usage": "^4.1.0", - "typical": "^2.6.1" - }, + "license": "MIT", "engines": { - "node": ">=4.0.0" + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/command-line-tool/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "node_modules/co-body": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.2.0.tgz", + "integrity": "sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==", "dev": true, + "license": "MIT", "dependencies": { - "typical": "^2.6.1" + "@hapi/bourne": "^3.0.0", + "inflation": "^2.0.0", + "qs": "^6.5.2", + "raw-body": "^2.3.3", + "type-is": "^1.6.16" }, "engines": { - "node": ">=4" + "node": ">=8.0.0" } }, - "node_modules/command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "node_modules/collect-all": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", + "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" + "stream-connect": "^1.0.2", + "stream-via": "^1.0.4" }, "engines": { - "node": ">=4.0.0" + "node": ">=0.10.0" } }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "peer": true, "dependencies": { - "typical": "^2.6.1" + "color-convert": "^2.0.1", + "color-string": "^1.9.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/common-ancestor-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", - "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", - "dev": true - }, - "node_modules/common-sequence": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", - "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">=12.5.0" } }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/compare-func/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==", - "dev": true, + "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==", + "license": "MIT", "dependencies": { - "is-obj": "^2.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "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==", + "license": "MIT" }, - "node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "dev": true, - "engines": [ - "node >= 6.0" - ], + "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==", + "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" } }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" + "license": "ISC", + "bin": { + "color-support": "bin.js" } }, - "node_modules/config-master": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", - "integrity": "sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo=", - "dev": true, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "license": "MIT", "dependencies": { - "walk-back": "^2.0.1" + "color": "^3.1.3", + "text-hex": "1.0.x" } }, - "node_modules/config-master/node_modules/walk-back": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", - "integrity": "sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node_modules/colorspace/node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "node_modules/conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", - "dev": true, + "node_modules/colorspace/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==", + "license": "MIT", "dependencies": { - "compare-func": "^2.0.0", - "q": "^1.5.1" - }, - "engines": { - "node": ">=10" + "color-name": "1.1.3" } }, - "node_modules/conventional-changelog-core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "node_modules/colorspace/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==", + "license": "MIT" + }, + "node_modules/columnify": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", + "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", "dev": true, + "license": "MIT", "dependencies": { - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" + "strip-ansi": "^6.0.1", + "wcwidth": "^1.0.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/conventional-changelog-preset-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", - "dev": true, - "engines": { - "node": ">=10" + "node": ">=8.0.0" } }, - "node_modules/conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", - "dev": true, + "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==", + "license": "MIT", "dependencies": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-changelog-writer": "cli.js" + "delayed-stream": "~1.0.0" }, "engines": { - "node": ">=10" + "node": ">= 0.8" } }, - "node_modules/conventional-changelog-writer/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "license": "MIT" }, - "node_modules/conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", "dev": true, + "license": "MIT", "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=4.0.0" } }, - "node_modules/conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "node_modules/command-line-tool": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", + "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", "dev": true, + "license": "MIT", "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "conventional-commits-parser": "cli.js" + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "command-line-args": "^5.0.0", + "command-line-usage": "^4.1.0", + "typical": "^2.6.1" }, "engines": { - "node": ">=10" + "node": ">=4.0.0" } }, - "node_modules/conventional-recommended-bump": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", + "node_modules/command-line-tool/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", "dev": true, + "license": "MIT", "dependencies": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.3.4", - "conventional-commits-filter": "^2.0.7", - "conventional-commits-parser": "^3.2.0", - "git-raw-commits": "^2.0.8", - "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" - }, - "bin": { - "conventional-recommended-bump": "cli.js" + "typical": "^2.6.1" }, "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "node_modules/command-line-tool/node_modules/command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", "dev": true, + "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.1" + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "table-layout": "^0.4.2", + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "node_modules/command-line-tool/node_modules/reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "node_modules/command-line-tool/node_modules/table-layout": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", + "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "array-back": "^2.0.0", + "deep-extend": "~0.6.0", + "lodash.padend": "^4.6.1", + "typical": "^2.6.1", + "wordwrapjs": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=4.0.0" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "node_modules/command-line-tool/node_modules/typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true, + "license": "MIT" }, - "node_modules/cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "node_modules/command-line-tool/node_modules/wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", "dev": true, + "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.1" - }, - "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" + "reduce-flatten": "^1.0.1", + "typical": "^2.6.1" }, "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" + "node": ">=4.0.0" } }, - "node_modules/cross-spawn": { + "node_modules/command-line-usage": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz", + "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==", "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^4.1.0", + "typical": "^7.1.1" }, "engines": { - "node": ">= 8" + "node": ">=12.20.0" } }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "node_modules/command-line-usage/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12.17" } }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "node_modules/command-line-usage/node_modules/typical": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz", + "integrity": "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==", "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">=12.17" } }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=14" } }, - "node_modules/debuglog": { + "node_modules/common-ancestor-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", + "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", + "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", "dev": true, - "engines": { - "node": "*" - } + "license": "ISC" }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "node_modules/common-sequence": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", + "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" } }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, + "license": "MIT", "dependencies": { - "type-detect": "^4.0.0" + "mime-db": ">= 1.43.0 < 2" }, "engines": { - "node": ">=0.12" + "node": ">= 0.6" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, "engines": { - "node": ">=4.0.0" + "node": ">= 0.8.0" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/default-require-extensions": { + "node_modules/compression/node_modules/bytes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, - "dependencies": { - "strip-bom": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "ms": "2.0.0" } }, - "node_modules/define-lazy-prop": { + "node_modules/compression/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, - "engines": { - "node": ">=0.4.0" + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "engines": [ + "node >= 6.0" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" }, - "node_modules/detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "node_modules/config-master": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", + "integrity": "sha512-n7LBL1zBzYdTpF1mx5DNcZnZn05CWIdsdvtPL4MosvqbBUK3Rq6VWEtGUuF3Y0s9/CIhMejezqlSkP6TnCJ/9g==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "dependencies": { + "walk-back": "^2.0.1" } }, - "node_modules/detect-libc": { + "node_modules/config-master/node_modules/walk-back": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", + "integrity": "sha512-Nb6GvBR8UWX1D+Le+xUq0+Q1kFmRBIWVrfLnQAOmcpEzA9oAxwJ9gIr36t9TWYfzvWRvuMtjHiVsJYEkXWaTAQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true, - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } + "license": "ISC" }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, + "license": "MIT", "dependencies": { - "path-type": "^4.0.0" + "safe-buffer": "5.2.1" }, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/dmd": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.1.0.tgz", - "integrity": "sha512-0zQIJ873gay1scCTFZvHPWM9mVJBnaylB2NQDI8O9u8O32m00Jb6uxDKexZm8hjTRM7RiWe0FJ32pExHoXdwoQ==", - "dev": true, - "dependencies": { - "array-back": "^6.2.2", - "cache-point": "^2.0.0", - "common-sequence": "^2.0.2", - "file-set": "^4.0.2", - "handlebars": "^4.7.7", - "marked": "^4.0.12", - "object-get": "^2.1.1", - "reduce-flatten": "^3.0.1", - "reduce-unique": "^2.0.1", - "reduce-without": "^1.0.1", - "test-value": "^3.0.0", - "walk-back": "^5.1.0" - }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 0.6" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/conventional-changelog-angular": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", "dev": true, + "license": "ISC", "dependencies": { - "esutils": "^2.0.2" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=16" } }, - "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "node_modules/conventional-changelog-conventionalcommits": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", + "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", "dev": true, + "license": "ISC", "dependencies": { - "is-obj": "^2.0.0" + "compare-func": "^2.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=16" } }, - "node_modules/dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "node_modules/conventional-changelog-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz", + "integrity": "sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==", "dev": true, + "license": "MIT", + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^6.0.0", + "conventional-commits-parser": "^4.0.0", + "dateformat": "^3.0.3", + "get-pkg-repo": "^4.2.1", + "git-raw-commits": "^3.0.0", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^5.0.0", + "normalize-package-data": "^3.0.3", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": ">=14" } }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "node_modules/conventional-changelog-core/node_modules/conventional-commits-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", + "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", "dev": true, + "license": "MIT", "dependencies": { - "jake": "^10.8.5" + "is-text-path": "^1.0.1", + "JSONStream": "^1.3.5", + "meow": "^8.1.2", + "split2": "^3.2.2" }, "bin": { - "ejs": "bin/cli.js" + "conventional-commits-parser": "cli.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=14" } }, - "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "node_modules/conventional-changelog-core/node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/conventional-changelog-core/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==", "dev": true, - "optional": true, + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" + "node": ">=8" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "node_modules/conventional-changelog-core/node_modules/git-raw-commits": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz", + "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-colors": "^4.1.1" + "dargs": "^7.0.0", + "meow": "^8.1.2", + "split2": "^3.2.2" + }, + "bin": { + "git-raw-commits": "cli.js" }, "engines": { - "node": ">=8.6" - } - }, - "node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node": ">=14" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "node_modules/conventional-changelog-core/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "node_modules/conventional-changelog-core/node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "dev": true, - "bin": { - "envinfo": "dist/cli.js" + "license": "MIT", + "dependencies": { + "text-extensions": "^1.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/conventional-changelog-core/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==", "dev": true, + "license": "MIT", "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "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==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, + "p-locate": "^4.1.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "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==", + "node_modules/conventional-changelog-core/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==", "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "node_modules/conventional-changelog-core/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=10" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-config-google": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz", - "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==", + "node_modules/conventional-changelog-core/node_modules/meow/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "ISC" + }, + "node_modules/conventional-changelog-core/node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, - "peerDependencies": { - "eslint": ">=5.16.0" + "engines": { + "node": ">=8" } }, - "node_modules/eslint-config-prettier": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.4.0.tgz", - "integrity": "sha512-CFotdUcMY18nGRo5KGsnNxpznzhkopOcOo0InID+sgQssPrzjvsyKZPvOgymTFeHrFuC3Tzdf2YndhXtULK9Iw==", + "node_modules/conventional-changelog-core/node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, - "peerDependencies": { - "eslint": ">=7.0.0" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-no-loops": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-loops/-/eslint-plugin-no-loops-0.3.0.tgz", - "integrity": "sha1-6B/stOqvSUqSbZyrqafNhNH+3n0=", + "node_modules/conventional-changelog-core/node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "peerDependencies": { - "eslint": ">=2.0.0" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" } }, - "node_modules/eslint-plugin-notice": { - "version": "0.9.10", - "resolved": "https://registry.npmjs.org/eslint-plugin-notice/-/eslint-plugin-notice-0.9.10.tgz", - "integrity": "sha512-rF79EuqdJKu9hhTmwUkNeSvLmmq03m/NXq/NHwUENHbdJ0wtoyOjxZBhW4QCug8v5xYE6cGe3AWkGqSIe9KUbQ==", + "node_modules/conventional-changelog-core/node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "find-root": "^1.1.0", - "lodash": "^4.17.15", - "metric-lcs": "^0.1.2" - }, - "peerDependencies": { - "eslint": ">=3.0.0" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/eslint-plugin-prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", - "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", + "node_modules/conventional-changelog-core/node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "eslint": ">=5.0.0", - "prettier": ">=1.13.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } + "node": ">=8" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/conventional-changelog-core/node_modules/meow/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/conventional-changelog-core/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, "engines": { "node": ">=10" } }, - "node_modules/eslint/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/conventional-changelog-core/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==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "p-try": "^2.0.0" }, "engines": { "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/conventional-changelog-core/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==", "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "node_modules/conventional-changelog-core/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==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 4" + "node": ">=8" } }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "node_modules/conventional-changelog-core/node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, + "license": "ISC", "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "readable-stream": "^3.0.0" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/conventional-changelog-core/node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=0.10" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/conventional-changelog-core/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "node_modules/conventional-changelog-core/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==", "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, + "license": "ISC", "engines": { - "node": ">=0.10" + "node": ">=10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/conventional-changelog-preset-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz", + "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=14" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/conventional-changelog-writer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz", + "integrity": "sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==", "dev": true, + "license": "MIT", "dependencies": { - "estraverse": "^5.2.0" + "conventional-commits-filter": "^3.0.0", + "dateformat": "^3.0.3", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "meow": "^8.1.2", + "semver": "^7.0.0", + "split": "^1.0.1" + }, + "bin": { + "conventional-changelog-writer": "cli.js" }, "engines": { - "node": ">=4.0" + "node": ">=14" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/conventional-changelog-writer/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==", "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">=4.0" + "node": ">=8" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/conventional-changelog-writer/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, "engines": { - "node": ">=4.0" + "node": ">=10" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/conventional-changelog-writer/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==", "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "node_modules/conventional-changelog-writer/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==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "node_modules/conventional-changelog-writer/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, + "license": "MIT", "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "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==", - "dev": true - }, - "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "node_modules/conventional-changelog-writer/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { - "node": ">=8.6.0" + "node": ">=10" } }, - "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==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "node_modules/conventional-changelog-writer/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==", "dev": true, + "license": "MIT", "dependencies": { - "reusify": "^1.0.4" + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "node_modules/conventional-changelog-writer/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==", "dev": true, + "license": "MIT", "dependencies": { - "escape-string-regexp": "^1.0.5" + "p-limit": "^2.2.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/conventional-changelog-writer/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==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/conventional-changelog-writer/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, + "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=8" } }, - "node_modules/file-set": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", - "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", + "node_modules/conventional-changelog-writer/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^5.0.0", - "glob": "^7.1.6" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, "engines": { - "node": ">=10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/file-set/node_modules/array-back": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", - "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "node_modules/conventional-changelog-writer/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - } + "license": "ISC" }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "balanced-match": "^1.0.0" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "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==", + "node_modules/conventional-changelog-writer/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "node_modules/conventional-changelog-writer/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-replace": { + "node_modules/conventional-changelog-writer/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==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-filter": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", + "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^3.0.1" + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.1" }, "engines": { - "node": ">=4.0.0" + "node": ">=14" } }, - "node_modules/find-replace/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "node_modules/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.mjs" + }, "engines": { - "node": ">=6" + "node": ">=16" } }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/conventional-recommended-bump": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz", + "integrity": "sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==", "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^3.0.0", + "conventional-commits-filter": "^3.0.0", + "conventional-commits-parser": "^4.0.0", + "git-raw-commits": "^3.0.0", + "git-semver-tags": "^5.0.0", + "meow": "^8.1.2" }, - "engines": { - "node": ">=10" + "bin": { + "conventional-recommended-bump": "cli.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=14" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "node_modules/conventional-recommended-bump/node_modules/conventional-commits-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", + "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.3.5", + "meow": "^8.1.2", + "split2": "^3.2.2" + }, "bin": { - "flat": "cli.js" + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-recommended-bump/node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "node_modules/conventional-recommended-bump/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==", "dev": true, + "license": "MIT", "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=8" } }, - "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "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" + "node_modules/conventional-recommended-bump/node_modules/git-raw-commits": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz", + "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^7.0.0", + "meow": "^8.1.2", + "split2": "^3.2.2" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=14" } }, - "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "node_modules/conventional-recommended-bump/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" + "lru-cache": "^6.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=10" } }, - "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==", + "node_modules/conventional-recommended-bump/node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "dev": true, + "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "text-extensions": "^1.0.0" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "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/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "node_modules/conventional-recommended-bump/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==", "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/fs-then-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", - "integrity": "sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=", + "node_modules/conventional-recommended-bump/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==", "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": ">=4.0.0" + "node": ">=10" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/conventional-recommended-bump/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "node_modules/conventional-recommended-bump/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { "node": ">=10" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/conventional-recommended-bump/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==", "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { - "node": ">=6.9.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/conventional-recommended-bump/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==", "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=8" } }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "node_modules/conventional-recommended-bump/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==", "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/conventional-recommended-bump/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "node_modules/conventional-recommended-bump/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, + "license": "MIT", "dependencies": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, - "bin": { - "get-pkg-repo": "src/cli.js" + "engines": { + "node": ">=8" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conventional-recommended-bump/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/get-pkg-repo/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" }, - "node_modules/get-pkg-repo/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/get-pkg-repo/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "node_modules/get-pkg-repo/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "node_modules/conventional-recommended-bump/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/conventional-recommended-bump/node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, + "license": "ISC", "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "readable-stream": "^3.0.0" } }, - "node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "node_modules/conventional-recommended-bump/node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10" } }, - "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==", + "node_modules/conventional-recommended-bump/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -7116,2395 +14516,2731 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "node_modules/conventional-recommended-bump/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==", "dev": true, - "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" - }, + "license": "ISC", "engines": { "node": ">=10" } }, - "node_modules/git-remote-origin-url": { + "node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, - "dependencies": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/git-remote-origin-url/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.6" } }, - "node_modules/git-semver-tags": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", - "dev": true, - "dependencies": { - "meow": "^8.0.0", - "semver": "^6.0.0" - }, - "bin": { - "git-semver-tags": "cli.js" - }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", "engines": { - "node": ">=10" - } - }, - "node_modules/git-semver-tags/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node": ">=6.6.0" } }, - "node_modules/git-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", - "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", - "dev": true, - "dependencies": { - "is-ssh": "^1.4.0", - "parse-url": "^8.1.0" - } + "node_modules/cookiejar": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-1.3.1.tgz", + "integrity": "sha512-9sKamftjpu1NPJuJoXH2EmZkVPHvhjewTg39hRhoOLOxTM9sNudaFlMu5VZ4DLKTDQu63luVQu7L24AScFr2nw==", + "license": "MIT" }, - "node_modules/git-url-parse": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz", - "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==", + "node_modules/cookies": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", + "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", "dev": true, + "license": "MIT", "dependencies": { - "git-up": "^7.0.0" + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" } }, - "node_modules/gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", - "dev": true, - "dependencies": { - "ini": "^1.3.2" - } + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "license": "MIT" }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" }, "engines": { - "node": "*" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" + "url": "https://github.com/sponsors/d-fischer" }, - "engines": { - "node": ">= 6" + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "node_modules/cosmiconfig-typescript-loader": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.1.0.tgz", + "integrity": "sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==", "dev": true, + "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" + "jiti": "^2.4.1" }, "engines": { - "node": ">=8" + "node": ">=v18" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=9", + "typescript": ">=5" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", "dev": true, + "license": "MIT", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "cross-spawn": "^7.0.1" }, - "engines": { - "node": ">=10" + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" } }, - "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==", - "dev": true - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" + "node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" } }, - "node_modules/grpc_tools_node_protoc_ts": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/grpc_tools_node_protoc_ts/-/grpc_tools_node_protoc_ts-5.2.2.tgz", - "integrity": "sha512-j8waJdU9uzNSyYJfEAGFFJdxP2C3k7RNkgI1dXxLB/iaT+D54p/RX1Wo+cHH2wPhBSE8hnv+BUv7HuEVT/XLPw==", - "dev": true, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { - "google-protobuf": "3.15.8", - "handlebars": "4.7.7" + "whatwg-url": "^5.0.0" }, - "bin": { - "protoc-gen-ts": "bin/protoc-gen-ts" + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/grpc_tools_node_protoc_ts/node_modules/google-protobuf": { - "version": "3.15.8", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.15.8.tgz", - "integrity": "sha512-2jtfdqTaSxk0cuBJBtTTWsot4WtR9RVr2rXg7x7OoqiuOKopPrwXpM1G4dXIkLcUNRh3RKzz76C8IOkksZSeOw==", - "dev": true + "node_modules/cross-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, - "node_modules/grpc-tools": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/grpc-tools/-/grpc-tools-1.11.3.tgz", - "integrity": "sha512-cRSK2uhDKHtZ9hLRM35HxaMAMxyh/L7C96Ojt58DhQBdwTOQlV1VIJHSK6X/pDeSQKhaQqWMFfebt8tIcvRfjQ==", - "dev": true, - "hasInstallScript": true, + "node_modules/cross-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/cross-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.5" - }, - "bin": { - "grpc_tools_node_protoc": "bin/protoc.js", - "grpc_tools_node_protoc_plugin": "bin/protoc_plugin.js" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=0.4.7" + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" }, - "optionalDependencies": { - "uglify-js": "^3.1.4" + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", "engines": { - "node": ">=6" + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } + "license": "MIT" }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "node_modules/dargs": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", + "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, "engines": { - "node": ">=8" + "node": ">=0.10" } }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", "dev": true, - "bin": { - "he": "bin/he" + "license": "MIT", + "engines": { + "node": ">= 14" } }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": "*" } }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "ms": "^2.1.3" }, "engines": { - "node": ">= 6" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, + "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==", + "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, + "license": "MIT", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, "engines": { - "node": ">=10.17.0" + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, - "dependencies": { - "ms": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/husky": { + "node_modules/decompress-response": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz", - "integrity": "sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==", - "dev": true, - "bin": { - "husky": "lib/bin.js" + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/typicode" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true } - ] + } }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 4" + "node": ">=6" } }, - "node_modules/ignore-by-default": { + "node_modules/deep-equal": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "dev": true, + "license": "MIT" }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4.0.0" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "execa": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "node_modules/defaults/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.8.19" + "node": ">=0.8" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, + "license": "MIT", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/init-package-json": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-3.0.2.tgz", - "integrity": "sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A==", + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, - "dependencies": { - "npm-package-arg": "^9.0.1", - "promzard": "^0.3.0", - "read": "^1.0.7", - "read-package-json": "^5.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/init-package-json/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^7.5.1" + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 14" } }, - "node_modules/init-package-json/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=0.4.0" } }, - "node_modules/init-package-json/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - }, + "license": "MIT" + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 0.8" } }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true, + "license": "ISC" }, - "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==", + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/detect-indent": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-7.0.1.tgz", + "integrity": "sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==", + "license": "MIT", + "engines": { + "node": ">=12.20" } }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", "engines": { "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-4.0.1.tgz", + "integrity": "sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "node_modules/devtools-protocol": { + "version": "0.0.1312386", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1312386.tgz", + "integrity": "sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "BSD-3-Clause" }, - "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==", + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" + "node": ">=0.3.1" } }, - "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==", + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "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==", + "node_modules/dmd": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.2.3.tgz", + "integrity": "sha512-SIEkjrG7cZ9GWZQYk/mH+mWtcRPly/3ibVuXO/tP/MFoWz6KiRK77tSMq6YQBPl7RljPtXPQ/JhxbNuCdi1bNw==", "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "cache-point": "^2.0.0", + "common-sequence": "^2.0.2", + "file-set": "^4.0.2", + "handlebars": "^4.7.8", + "marked": "^4.3.0", + "object-get": "^2.1.1", + "reduce-flatten": "^3.0.1", + "reduce-unique": "^2.0.1", + "reduce-without": "^1.0.1", + "test-value": "^3.0.0", + "walk-back": "^5.1.0" + }, "engines": { - "node": ">=0.12.0" + "node": ">=12" } }, - "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==", + "node_modules/dmd/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12.17" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "node_modules/dmd/node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, "engines": { - "node": ">=0.10.0" + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, - "node_modules/is-ssh": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", - "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true, + "license": "MIT" + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", "dependencies": { - "protocols": "^2.0.1" + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" } }, - "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==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", - "dev": true, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", "dependencies": { - "text-extensions": "^1.0.0" + "domelementtype": "^2.3.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" + "node_modules/domutils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.1.tgz", + "integrity": "sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "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==", "dev": true, + "license": "MIT", "dependencies": { - "is-docker": "^2.0.0" + "is-obj": "^2.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "node_modules/dotenv-expand": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.5" + }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" } }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", "dependencies": { - "append-transform": "^2.0.0" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true, + "license": "MIT" + }, + "node_modules/duplexify": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", + "license": "MIT", "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.2" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, - "node_modules/istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", - "dev": true, + "node_modules/ecc-jsbn/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "license": "MIT" + }, + "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==", + "license": "Apache-2.0", "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-processinfo/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "node_modules/electron-to-chromium": { + "version": "1.5.76", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz", + "integrity": "sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==", "dev": true, + "license": "ISC" + }, + "node_modules/elevenlabs": { + "version": "1.50.2", + "resolved": "https://registry.npmjs.org/elevenlabs/-/elevenlabs-1.50.2.tgz", + "integrity": "sha512-Zq5fFACjctRB1Ix1k5dLnx+GLPy3Z3fKrilmXGDAdEA7WOT6GL4SA6aH7/v13Tw5CSKu/z/XzBz/7T3JeyK8LA==", + "license": "MIT", "dependencies": { - "aggregate-error": "^3.0.0" - }, + "command-exists": "^1.2.9", + "execa": "^5.1.1", + "form-data": "^4.0.0", + "form-data-encoder": "^4.0.2", + "formdata-node": "^6.0.3", + "node-fetch": "2.7.0", + "qs": "6.11.2", + "readable-stream": "^4.5.2", + "url-join": "4.0.1" + } + }, + "node_modules/elevenlabs/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/elevenlabs/node_modules/form-data-encoder": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.0.2.tgz", + "integrity": "sha512-KQVhvhK8ZkWzxKxOr56CPulAhH3dobtuQ4+hNQ+HekH/Wp5gSOafqRAeTphQUJAIk0GBvHZgJ2ZGRWd5kphMuw==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 18" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, + "node_modules/elevenlabs/node_modules/formdata-node": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-6.0.3.tgz", + "integrity": "sha512-8e1++BCiTzUno9v5IZ2J6bv4RU+3UKDmqWUQD0MIMVCd9AdhWkO1gw57oo1mNEX1dMq2EGI+FbWz4B92pscSQg==", + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/elevenlabs/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=8" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, + "node_modules/elevenlabs/node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/elevenlabs/node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "license": "BSD-3-Clause", "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "side-channel": "^1.0.4" }, "engines": { - "node": ">=10" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "dev": true, + "node_modules/elevenlabs/node_modules/readable-stream": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.6.0.tgz", + "integrity": "sha512-cbAdYt0VcnpN2Bekq7PU+k363ZRsPwJoEEJOEtSJQlJXzwaxt3FIo/uL+KeDSGIjJqtkwyge4KQgD2S2kd+CQw==", + "license": "MIT", "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "dev": true, + "node_modules/elevenlabs/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/elevenlabs/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/elevenlabs/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" - }, + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 0.8" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", + "optional": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "iconv-lite": "^0.6.2" } }, - "node_modules/js2xmlparser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", - "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", - "dev": true, + "node_modules/encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "license": "MIT", "dependencies": { - "xmlcreate": "^2.0.4" + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" } }, - "node_modules/jsdoc": { - "version": "3.6.10", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.10.tgz", - "integrity": "sha512-IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==", - "dev": true, + "node_modules/encoding-sniffer/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { - "@babel/parser": "^7.9.4", - "@types/markdown-it": "^12.2.3", - "bluebird": "^3.7.2", - "catharsis": "^0.9.0", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.2", - "klaw": "^4.0.1", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.4.1", - "marked": "^4.0.10", - "mkdirp": "^1.0.4", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.1.0", - "taffydb": "2.6.2", - "underscore": "~1.13.2" - }, - "bin": { - "jsdoc": "jsdoc.js" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=8.15.0" + "node": ">=0.10.0" } }, - "node_modules/jsdoc-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-7.1.1.tgz", - "integrity": "sha512-0pkuPCzVXiqsDAsVrNFXCkHzlyNepBIDVtwwehry4RJAnZmXtlAz7rh8F9FRz53u3NeynGbex+bpYWwi8lE66A==", - "dev": true, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "optional": true, "dependencies": { - "array-back": "^6.2.2", - "cache-point": "^2.0.0", - "collect-all": "^1.0.4", - "file-set": "^4.0.2", - "fs-then-native": "^2.0.0", - "jsdoc": "^3.6.10", - "object-to-spawn-args": "^2.0.1", - "temp-path": "^1.0.0", - "walk-back": "^5.1.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=12.17" + "node": ">=0.10.0" } }, - "node_modules/jsdoc-parse": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.1.0.tgz", - "integrity": "sha512-n/hDGQJa69IBun1yZAjqzV4gVR41+flZ3bIlm9fKvNe2Xjsd1/+zCo2+R9ls8LxtePgIWbpA1jU7xkB2lRdLLg==", - "dev": true, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", "dependencies": { - "array-back": "^6.2.2", - "lodash.omit": "^4.5.0", - "lodash.pick": "^4.4.0", - "reduce-extract": "^1.0.0", - "sort-array": "^4.1.4", - "test-value": "^3.0.0" - }, - "engines": { - "node": ">=12" + "once": "^1.4.0" } }, - "node_modules/jsdoc-to-markdown": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-7.1.1.tgz", - "integrity": "sha512-CI86d63xAVNO+ENumWwmJ034lYe5iGU5GwjtTA11EuphP9tpnoi4hrKgR/J8uME0D+o4KUpVfwX1fjZhc8dEtg==", + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^6.2.2", - "command-line-tool": "^0.8.0", - "config-master": "^3.1.0", - "dmd": "^6.1.0", - "jsdoc-api": "^7.1.1", - "jsdoc-parse": "^6.1.0", - "walk-back": "^5.1.0" - }, - "bin": { - "jsdoc2md": "bin/cli.js" + "ansi-colors": "^4.1.1" }, "engines": { - "node": ">=12.17" + "node": ">=8.6" } }, - "node_modules/jsdoc/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/envinfo": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", "dev": true, + "license": "MIT", "bin": { - "jsesc": "bin/jsesc" + "envinfo": "dist/cli.js" }, "engines": { "node": ">=4" } }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true, + "license": "MIT" }, - "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==", - "dev": true + "node_modules/error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", + "dependencies": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } }, - "node_modules/json-stringify-nice": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", - "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", + "node_modules/errorstacks": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/errorstacks/-/errorstacks-2.4.1.tgz", + "integrity": "sha512-jE4i0SMYevwu/xxAuzhly/KTwtj0xDhbzB6m1xPImxTkw8wcCbgarOQPfCVMi5JKVyW7in29pNJCCJrry3Ynnw==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, - "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==", - "dev": true + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/es-module-lexer": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", "dev": true, - "bin": { - "json5": "lib/cli.js" + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" }, "engines": { - "node": ">=6" + "node": ">= 0.4" } }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/esbuild": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, - "dependencies": { - "universalify": "^2.0.0" + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" }, "optionalDependencies": { - "graceful-fs": "^4.1.6" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" + } + }, + "node_modules/esbuild-register": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz", + "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "peerDependencies": { + "esbuild": ">=0.12 <1" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" }, "bin": { - "JSONStream": "bin.js" + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "node": "*" + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/just-diff": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz", - "integrity": "sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ==", - "dev": true + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "node_modules/just-diff-apply": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz", - "integrity": "sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g==", - "dev": true + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, - "node_modules/just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/klaw": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", - "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==", - "dev": true, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", "engines": { - "node": ">=14.14.0" + "node": ">= 0.6" } }, - "node_modules/lerna": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-6.1.0.tgz", - "integrity": "sha512-3qAjIj8dgBwHtCAiLbq4VU/C1V9D1tvTLm2owZubdGAN72aB5TxuCu2mcw+yeEorOcXuR9YWx7EXIkAf+G0N2w==", - "dev": true, - "dependencies": { - "@lerna/add": "6.1.0", - "@lerna/bootstrap": "6.1.0", - "@lerna/changed": "6.1.0", - "@lerna/clean": "6.1.0", - "@lerna/cli": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/create": "6.1.0", - "@lerna/diff": "6.1.0", - "@lerna/exec": "6.1.0", - "@lerna/import": "6.1.0", - "@lerna/info": "6.1.0", - "@lerna/init": "6.1.0", - "@lerna/link": "6.1.0", - "@lerna/list": "6.1.0", - "@lerna/publish": "6.1.0", - "@lerna/run": "6.1.0", - "@lerna/version": "6.1.0", - "@nrwl/devkit": ">=14.8.6 < 16", - "import-local": "^3.0.2", - "inquirer": "^8.2.4", - "npmlog": "^6.0.2", - "nx": ">=14.8.6 < 16", - "typescript": "^3 || ^4" - }, - "bin": { - "lerna": "cli.js" - }, + "node_modules/event-lite": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.3.tgz", + "integrity": "sha512-8qz9nOz5VeD2z96elrEKD2U433+L3DWdUdDkOINLGOJvx1GsMBbMn0aCeu28y8/e85A6mCigBiFlYMnTBEGlSw==", + "license": "MIT" + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", "engines": { - "node": "^14.15.0 || >=16.0.0" + "node": ">=6" } }, - "node_modules/lerna-audit": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/lerna-audit/-/lerna-audit-1.3.3.tgz", - "integrity": "sha512-EAtY/dhPXHR76zQiJuiHDyFvtxfcH6HmMuATS3Aez6FbCny91YLIhPmDAC6aBwkGiD4lAllKlDXAya6w58Ktug==", - "dev": true, - "dependencies": { - "yargs": "^15.4.1" - }, - "bin": { - "lerna-audit": "main.js" + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" } }, - "node_modules/lerna-audit/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/lerna-audit/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==", + "node_modules/execa/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==", + "license": "ISC" + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", "dev": true, + "license": "Apache-2.0" + }, + "node_modules/expr-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expr-eval/-/expr-eval-2.0.2.tgz", + "integrity": "sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==", + "license": "MIT" + }, + "node_modules/express": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.0.1.tgz", + "integrity": "sha512-ORF7g6qGnD+YtUG9yx4DFoqCShNMmUKiXuT5oWMHiOvt/4WFbHC6yCwQMTSBMno7AqntNCAzzcnnjowRkTL9eQ==", + "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "accepts": "^2.0.0", + "body-parser": "^2.0.1", + "content-disposition": "^1.0.0", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "^1.2.1", + "debug": "4.3.6", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "^2.0.0", + "fresh": "2.0.0", + "http-errors": "2.0.0", + "merge-descriptors": "^2.0.0", + "methods": "~1.1.2", + "mime-types": "^3.0.0", + "on-finished": "2.4.1", + "once": "1.4.0", + "parseurl": "~1.3.3", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "router": "^2.0.0", + "safe-buffer": "5.2.1", + "send": "^1.1.0", + "serve-static": "^2.1.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "^2.0.0", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/express/node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/lerna-audit/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==", - "dev": true, + "node_modules/express/node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "safe-buffer": "5.2.1" }, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/lerna-audit/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==", - "dev": true, + "node_modules/express/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "ms": "2.1.2" }, "engines": { - "node": ">=6" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/lerna-audit/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==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/lerna-audit/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==", - "dev": true, + "node_modules/express/node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">=8" + "node": ">= 0.8" } }, - "node_modules/lerna-audit/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==", - "dev": true + "node_modules/express/node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } }, - "node_modules/lerna-audit/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==", - "dev": true, - "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" - }, + "node_modules/express/node_modules/mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/lerna-audit/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==", - "dev": true, + "node_modules/express/node_modules/mime-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.0.tgz", + "integrity": "sha512-XqoSHeCGjVClAmoGFG3lVFqQFRIrTVw2OH3axRqAcfaw+gHWIfnASS92AV+Rl/mk0MupgZTRHQOjxY6YVnzK5w==", + "license": "MIT", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "mime-db": "^1.53.0" }, "engines": { - "node": ">=6" + "node": ">= 0.6" } }, - "node_modules/lerna/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, + "node_modules/express/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==", + "license": "MIT" + }, + "node_modules/express/node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 0.6" } }, - "node_modules/lerna/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, + "node_modules/express/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "side-channel": "^1.0.6" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lerna/node_modules/inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", - "dev": true, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/type-is": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.0.tgz", + "integrity": "sha512-gd0sGezQYCbWSbkZr75mln4YBidWUN60+devscpLF5mtRDUpiaTvKpBNrdaCvel1NdR2k6vclXybU5fBd2i+nw==", + "license": "MIT", "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" }, "engines": { - "node": ">=12.0.0" + "node": ">= 0.6" } }, - "node_modules/lerna/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=4" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" } }, - "node_modules/libnpmaccess": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-6.0.4.tgz", - "integrity": "sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag==", + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^2.0.0", - "minipass": "^3.1.1", - "npm-package-arg": "^9.0.1", - "npm-registry-fetch": "^13.0.0" + "pump": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/libnpmaccess/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "license": "MIT", "dependencies": { - "lru-cache": "^7.5.1" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8.6.0" } }, - "node_modules/libnpmaccess/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" + "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==", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", + "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", + "license": "MIT", + "dependencies": { + "fastest-levenshtein": "^1.0.7" } }, - "node_modules/libnpmaccess/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/fast-xml-parser": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "license": "MIT", "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" + "strnum": "^1.0.5" }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 4.9.1" } }, - "node_modules/libnpmpublish": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-6.0.5.tgz", - "integrity": "sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg==", - "dev": true, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "license": "ISC", "dependencies": { - "normalize-package-data": "^4.0.0", - "npm-package-arg": "^9.0.1", - "npm-registry-fetch": "^13.0.0", - "semver": "^7.3.7", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "reusify": "^1.0.4" } }, - "node_modules/libnpmpublish/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^7.5.1" + "pend": "~1.2.0" + } + }, + "node_modules/fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/libnpmpublish/node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, + "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==", + "license": "MIT" + }, + "node_modules/figlet": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.8.0.tgz", + "integrity": "sha512-chzvGjd+Sp7KUvPHZv6EXV5Ir3Q7kYNpCr4aHrRW79qFtTefmQZNny+W1pW9kf5zeE6dikku2W50W/wAH2xWgw==", + "license": "MIT", + "bin": { + "figlet": "bin/index.js" + }, "engines": { - "node": ">=12" + "node": ">= 0.4.0" } }, - "node_modules/libnpmpublish/node_modules/normalize-package-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", - "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, + "license": "MIT", "dependencies": { - "hosted-git-info": "^5.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/libnpmpublish/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=0.8.0" } }, - "node_modules/libnpmpublish/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "node_modules/file-set": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", + "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "array-back": "^5.0.0", + "glob": "^7.1.6" }, "engines": { "node": ">=10" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "node_modules/file-set/node_modules/array-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", "dev": true, - "dependencies": { - "uc.micro": "^1.0.1" + "license": "MIT", + "engines": { + "node": ">=10" } }, - "node_modules/load-json-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", - "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", + "node_modules/file-set/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.15", - "parse-json": "^5.0.0", - "strip-bom": "^4.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/load-json-file/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "node_modules/file-set/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, "engines": { - "node": ">=8" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/file-set/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { - "p-locate": "^5.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", - "dev": true - }, - "node_modules/lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "dev": true - }, - "node_modules/lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, + "node_modules/file-type": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", + "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", + "license": "MIT", + "peer": true, "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/file-type?sponsor=1" } }, - "node_modules/loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", - "dev": true, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "license": "Apache-2.0", "dependencies": { - "get-func-name": "^2.0.0" + "minimatch": "^5.0.1" } }, - "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==", - "dev": true, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "brace-expansion": "^2.0.1" }, "engines": { "node": ">=10" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.0.0.tgz", + "integrity": "sha512-MX6Zo2adDViYh+GcxxB1dpO43eypOGUOL12rLCOTMQv/DfIbpSJUy4oQIIZhVZkH9e+bZWKMon0XHFEju16tkQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.8" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, - "node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, + "node_modules/finalhandler/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 0.8" } }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^3.0.1" + }, "engines": { - "node": ">=12" + "node": ">=4.0.0" } }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" + }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, + "node_modules/find-yarn-workspace-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", + "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", + "license": "Apache-2.0", "dependencies": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" + "micromatch": "^4.0.2" } }, - "node_modules/markdown-it-anchor": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz", - "integrity": "sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==", - "dev": true, - "peerDependencies": { - "@types/markdown-it": "*", - "markdown-it": "*" + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" } }, - "node_modules/markdown-it/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==", - "dev": true - }, - "node_modules/marked": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", - "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", - "dev": true, - "bin": { - "marked": "bin/marked.js" + "node_modules/fluent-logger": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/fluent-logger/-/fluent-logger-3.4.1.tgz", + "integrity": "sha512-lERIhXAvhtCYeQq8K7sBDg/HY9GkiVRq5xY3oN+hcSINVKwqwBzG6LQOJK73EnV50qO59U7XEmRnn2hBzLWaHw==", + "license": "Apache-2.0", + "dependencies": { + "msgpack-lite": "*" }, "engines": { - "node": ">= 12" + "node": ">=6" } }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", - "dev": true + "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==", + "license": "MIT" }, - "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/meow/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==", - "dev": true, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/meow/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "node_modules/form-data-encoder": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", + "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", + "license": "MIT" }, - "node_modules/meow/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==", - "dev": true, + "node_modules/formdata-node": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", + "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", + "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "node-domexception": "1.0.0", + "web-streams-polyfill": "4.0.0-beta.3" }, "engines": { - "node": ">=8" + "node": ">= 12.20" } }, - "node_modules/meow/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==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.6" } }, - "node_modules/meow/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==", + "node_modules/fp-ts": { + "version": "2.16.9", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.9.tgz", + "integrity": "sha512-+I2+FnVB+tVaxcYyQkHUq7ZdKScaBlX53A41mxQtpIccsfyv8PzdzP7fzp2AY832T4aoK6UZ5WRX/ebGd8uZuQ==", + "license": "MIT" + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", "dev": true, + "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "js-yaml": "^3.13.1" } }, - "node_modules/meow/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "node_modules/front-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" + "sprintf-js": "~1.0.2" } }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "node_modules/front-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "node_modules/front-matter/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "BSD-3-Clause" }, - "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } + "license": "MIT" }, - "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": ">=14.14" } }, - "node_modules/meow/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, - "bin": { - "semver": "bin/semver" + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "node_modules/fs-then-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", + "integrity": "sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4.0.0" } }, - "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==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true, + "license": "ISC" + }, + "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, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 8" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/metric-lcs": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/metric-lcs/-/metric-lcs-0.1.2.tgz", - "integrity": "sha512-+TZ5dUDPKPJaU/rscTzxyN8ZkX7eAVLAiQU/e+YINleXPv03SCmJShaMT1If1liTH8OcmWXZs0CmzCBRBLcMpA==", - "dev": true + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "deprecated": "This package is no longer supported.", "dev": true, + "license": "ISC", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" }, "engines": { - "node": ">=8.6" + "node": ">=10" } }, - "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==", + "node_modules/gauge/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==", "dev": true, - "engines": { - "node": ">= 0.6" - } + "license": "ISC" }, - "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==", - "dev": true, + "node_modules/gaxios": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", + "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", + "license": "Apache-2.0", "dependencies": { - "mime-db": "1.52.0" + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9", + "uuid": "^9.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">=14" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, + "node_modules/gaxios/node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 14" } }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, + "node_modules/gaxios/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, "engines": { - "node": ">=4" + "node": ">= 14" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, + "node_modules/gaxios/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "whatwg-url": "^5.0.0" }, "engines": { - "node": "*" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "node_modules/gaxios/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, + "node_modules/gaxios/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/gaxios/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/gaxios/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", - "dev": true, + "node_modules/gcp-metadata": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.0.tgz", + "integrity": "sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==", + "license": "Apache-2.0", "dependencies": { - "yallist": "^4.0.0" + "gaxios": "^6.0.0", + "json-bigint": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=14" } }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, + "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==", + "license": "ISC", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, + "node_modules/get-intrinsic": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", + "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "call-bind-apply-helpers": "^1.0.1", + "dunder-proto": "^1.0.0", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.0.0" }, "engines": { - "node": ">= 8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" } }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "node_modules/get-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "node_modules/get-pkg-repo/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==", "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "node_modules/get-pkg-repo/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==", "dev": true, + "license": "ISC", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/get-pkg-repo/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" }, "engines": { "node": ">=10" } }, - "node_modules/mkdirp-infer-owner": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", - "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", + "node_modules/get-pkg-repo/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==", "dev": true, + "license": "ISC", "dependencies": { - "chownr": "^2.0.0", - "infer-owner": "^1.0.4", - "mkdirp": "^1.0.3" + "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, - "node_modules/mkdirp2": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz", - "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==", - "dev": true - }, - "node_modules/mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", - "dev": true, - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.3", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "4.2.1", - "ms": "2.1.3", - "nanoid": "3.3.1", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "node_modules/get-pkg-repo/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">= 12.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/mocha/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==", - "dev": true - }, - "node_modules/mocha/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==", + "node_modules/get-pkg-repo/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "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" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=10" } }, - "node_modules/mocha/node_modules/minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "node_modules/get-pkg-repo/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==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "ISC", "engines": { "node": ">=10" } }, - "node_modules/mocha/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==", - "dev": true - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "dev": true - }, - "node_modules/multimatch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", - "dev": true, - "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, + "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==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -9512,1403 +17248,1703 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/multimatch/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "node_modules/get-tsconfig": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz", + "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "node_modules/get-uri": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", + "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">= 14" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "node_modules/git-hooks-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-3.1.0.tgz", + "integrity": "sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==", + "license": "MIT", + "funding": { + "url": "https://github.com/fisker/git-hooks-list?sponsor=1" + } }, - "node_modules/nise": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz", - "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==", + "node_modules/git-raw-commits": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", + "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", "dev": true, + "license": "MIT", "dependencies": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^6.0.0", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.mjs" + }, + "engines": { + "node": ">=16" } }, - "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", "dev": true, + "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">=4" } }, - "node_modules/node-gyp": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.0.tgz", - "integrity": "sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q==", + "node_modules/git-remote-origin-url/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/git-semver-tags": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.1.tgz", + "integrity": "sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==", "dev": true, + "license": "MIT", "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" + "meow": "^8.1.2", + "semver": "^7.0.0" }, "bin": { - "node-gyp": "bin/node-gyp.js" + "git-semver-tags": "cli.js" }, "engines": { - "node": "^12.22 || ^14.13 || >=16" + "node": ">=14" } }, - "node_modules/node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", + "node_modules/git-semver-tags/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==", "dev": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "node_modules/git-semver-tags/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "lru-cache": "^6.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" } }, - "node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "node_modules/git-semver-tags/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==", "dev": true, + "license": "MIT", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "p-locate": "^4.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/node-gyp/node_modules/nopt": { + "node_modules/git-semver-tags/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" + "yallist": "^4.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" } }, - "node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "node_modules/git-semver-tags/node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, + "license": "MIT", "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "node_modules/git-semver-tags/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "process-on-spawn": "^1.0.0" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "node_modules/nodemon": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", - "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "node_modules/git-semver-tags/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==", "dev": true, + "license": "MIT", "dependencies": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" + "p-try": "^2.0.0" }, "engines": { - "node": ">=8.10.0" + "node": ">=6" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nodemon/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/git-semver-tags/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==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/nodemon/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, + "p-limit": "^2.2.0" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/nodemon/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "node_modules/git-semver-tags/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==", "dev": true, - "bin": { - "semver": "bin/semver" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/nodemon/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/git-semver-tags/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "node_modules/git-semver-tags/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, + "license": "MIT", "dependencies": { - "abbrev": "1" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" }, - "bin": { - "nopt": "bin/nopt.js" + "engines": { + "node": ">=8" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-semver-tags/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "node_modules/git-semver-tags/node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true, + "license": "ISC" + }, + "node_modules/git-semver-tags/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" } }, - "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==", + "node_modules/git-semver-tags/node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "node_modules/npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "node_modules/git-semver-tags/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" } }, - "node_modules/npm-install-checks": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-5.0.0.tgz", - "integrity": "sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA==", + "node_modules/git-semver-tags/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, - "dependencies": { - "semver": "^7.1.1" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "node_modules/npm-package-arg": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.1.tgz", - "integrity": "sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg==", + "node_modules/git-semver-tags/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==", "dev": true, - "dependencies": { - "hosted-git-info": "^3.0.6", - "semver": "^7.0.0", - "validate-npm-package-name": "^3.0.0" - }, + "license": "ISC", "engines": { "node": ">=10" } }, - "node_modules/npm-package-arg/node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true + "node_modules/git-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", + "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-ssh": "^1.4.0", + "parse-url": "^8.1.0" + } }, - "node_modules/npm-package-arg/node_modules/hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "node_modules/git-url-parse": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-14.0.0.tgz", + "integrity": "sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" + "git-up": "^7.0.0" } }, - "node_modules/npm-package-arg/node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "node_modules/gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", "dev": true, + "license": "BSD", "dependencies": { - "builtins": "^1.0.3" + "ini": "^1.3.2" } }, - "node_modules/npm-packlist": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", - "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", + "node_modules/gitconfiglocal/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true, - "dependencies": { - "glob": "^8.0.1", - "ignore-walk": "^5.0.1", - "npm-bundled": "^2.0.0", - "npm-normalize-package-bin": "^2.0.0" + "license": "ISC" + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { - "npm-packlist": "bin/index.js" + "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm-packlist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, + "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==", + "license": "ISC", "dependencies": { - "balanced-match": "^1.0.0" + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/npm-packlist/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "ini": "4.1.1" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-packlist/node_modules/ignore-walk": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", - "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", + "node_modules/globals": { + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - }, + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-packlist/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", - "dev": true, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-packlist/node_modules/npm-bundled": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz", - "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", - "dev": true, + "node_modules/google-auth-library": { + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.0.tgz", + "integrity": "sha512-7ccSEJFDFO7exFbO6NRyC+xH8/mZ1GZGG2xxx9iHxZWcjUjJpjWxIMw3cofAKcueZ6DATiukmmprD7yavQHOyQ==", + "license": "Apache-2.0", "dependencies": { - "npm-normalize-package-bin": "^2.0.0" + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^6.1.1", + "gcp-metadata": "^6.1.0", + "gtoken": "^7.0.0", + "jws": "^4.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=14" } }, - "node_modules/npm-packlist/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", - "dev": true, + "node_modules/google-gax": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.4.1.tgz", + "integrity": "sha512-Phyp9fMfA00J3sZbJxbbB4jC55b7DBjE3F6poyL3wKMEBVKA79q6BGuHcTiM28yOzVql0NDbRL8MLLh8Iwk9Dg==", + "license": "Apache-2.0", + "dependencies": { + "@grpc/grpc-js": "^1.10.9", + "@grpc/proto-loader": "^0.7.13", + "@types/long": "^4.0.0", + "abort-controller": "^3.0.0", + "duplexify": "^4.0.0", + "google-auth-library": "^9.3.0", + "node-fetch": "^2.7.0", + "object-hash": "^3.0.0", + "proto3-json-serializer": "^2.0.2", + "protobufjs": "^7.3.2", + "retry-request": "^7.0.0", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/google-gax/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/npm-pick-manifest": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz", - "integrity": "sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw==", - "dev": true, + "node_modules/google-gax/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/google-gax/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/google-gax/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/google-gax/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { - "npm-install-checks": "^5.0.0", - "npm-normalize-package-bin": "^2.0.0", - "npm-package-arg": "^9.0.0", - "semver": "^7.3.5" - }, + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/google-protobuf": { + "version": "3.15.8", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.15.8.tgz", + "integrity": "sha512-2jtfdqTaSxk0cuBJBtTTWsot4WtR9RVr2rXg7x7OoqiuOKopPrwXpM1G4dXIkLcUNRh3RKzz76C8IOkksZSeOw==", + "license": "BSD-3-Clause" + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/npm-pick-manifest/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, + "node_modules/got": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", + "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", + "license": "MIT", "dependencies": { - "lru-cache": "^7.5.1" + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" } }, - "node_modules/npm-pick-manifest/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, + "node_modules/got/node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 14.17" } }, - "node_modules/npm-pick-manifest/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, - "node_modules/npm-pick-manifest/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, + "node_modules/groq-sdk": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/groq-sdk/-/groq-sdk-0.5.0.tgz", + "integrity": "sha512-RVmhW7qZ+XZoy5fIuSdx/LGQJONpL8MHgZEW7dFwTdgkzStub2XQx6OKv28CHogijdwH41J+Npj/z2jBPu3vmw==", + "license": "Apache-2.0", "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "@types/node": "^18.11.18", + "@types/node-fetch": "^2.6.4", + "abort-controller": "^3.0.0", + "agentkeepalive": "^4.2.1", + "form-data-encoder": "1.7.2", + "formdata-node": "^4.3.2", + "node-fetch": "^2.6.7", + "web-streams-polyfill": "^3.2.1" } }, - "node_modules/npm-registry-fetch": { - "version": "13.3.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz", - "integrity": "sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==", - "dev": true, + "node_modules/groq-sdk/node_modules/@types/node": { + "version": "18.19.68", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz", + "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==", + "license": "MIT", "dependencies": { - "make-fetch-happen": "^10.0.6", - "minipass": "^3.1.6", - "minipass-fetch": "^2.0.3", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^9.0.1", - "proc-log": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "undici-types": "~5.26.4" } }, - "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, + "node_modules/groq-sdk/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { - "lru-cache": "^7.5.1" + "whatwg-url": "^5.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, + "node_modules/groq-sdk/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/groq-sdk/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/groq-sdk/node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 8" } }, - "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, + "node_modules/groq-sdk/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/groq-sdk/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/grpc_tools_node_protoc_ts": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/grpc_tools_node_protoc_ts/-/grpc_tools_node_protoc_ts-5.3.3.tgz", + "integrity": "sha512-M/YrklvVXMtuuj9kb42PxeouZhs7Ul+R4e/31XwrankUcKL8cQQP50Q9q+KEHGyHQaPt6VtKKsxMgLaKbCxeww==", "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "google-protobuf": "3.15.8", + "handlebars": "4.7.7" }, - "engines": { - "node": ">=8" + "bin": { + "protoc-gen-ts": "bin/protoc-gen-ts" } }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dev": true, + "node_modules/grpc-health-check": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/grpc-health-check/-/grpc-health-check-2.0.2.tgz", + "integrity": "sha512-5XKOdg/gIlTsZZR+8QJjzmW2CHBnn+NfM8zevIpzg+96i9dAuoH+Guu/L/5vuUkSbVZG69wVPnLpEnW+Smon1A==", + "license": "Apache-2.0", "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" + "@grpc/proto-loader": "^0.7.13" } }, - "node_modules/nx": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/nx/-/nx-15.2.4.tgz", - "integrity": "sha512-8rTLo5WGmM6hEo5R/u03Jllkyj4vIUbBk2MRAppCvVRXWLS4xJUEOityXJ5BAvaKoLYm6sWUP1gqU7xlldnT5A==", + "node_modules/grpc-tools": { + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/grpc-tools/-/grpc-tools-1.12.4.tgz", + "integrity": "sha512-5+mLAJJma3BjnW/KQp6JBjUMgvu7Mu3dBvBPd1dcbNIb+qiR0817zDpgPjS7gRb+l/8EVNIa3cB02xI9JLToKg==", "dev": true, "hasInstallScript": true, "dependencies": { - "@nrwl/cli": "15.2.4", - "@nrwl/tao": "15.2.4", - "@parcel/watcher": "2.0.4", - "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "^3.0.0-rc.18", - "@zkochan/js-yaml": "0.0.6", - "axios": "^1.0.0", - "chalk": "4.1.0", - "chokidar": "^3.5.1", - "cli-cursor": "3.1.0", - "cli-spinners": "2.6.1", - "cliui": "^7.0.2", - "dotenv": "~10.0.0", - "enquirer": "~2.3.6", - "fast-glob": "3.2.7", - "figures": "3.2.0", - "flat": "^5.0.2", - "fs-extra": "^10.1.0", - "glob": "7.1.4", - "ignore": "^5.0.4", - "js-yaml": "4.1.0", - "jsonc-parser": "3.2.0", - "minimatch": "3.0.5", - "npm-run-path": "^4.0.1", - "open": "^8.4.0", - "semver": "7.3.4", - "string-width": "^4.2.3", - "strong-log-transformer": "^2.1.0", - "tar-stream": "~2.2.0", - "tmp": "~0.2.1", - "tsconfig-paths": "^3.9.0", - "tslib": "^2.3.0", - "v8-compile-cache": "2.3.0", - "yargs": "^17.6.2", - "yargs-parser": "21.1.1" + "@mapbox/node-pre-gyp": "^1.0.5" }, "bin": { - "nx": "bin/nx.js" + "grpc_tools_node_protoc": "bin/protoc.js", + "grpc_tools_node_protoc_plugin": "bin/protoc_plugin.js" + } + }, + "node_modules/grpc-web": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/grpc-web/-/grpc-web-1.5.0.tgz", + "integrity": "sha512-y1tS3BBIoiVSzKTDF3Hm7E8hV2n7YY7pO0Uo7depfWJqKzWE+SKr0jvHNIJsJJYILQlpYShpi/DRJJMbosgDMQ==", + "license": "Apache-2.0" + }, + "node_modules/gtoken": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", + "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", + "license": "MIT", + "dependencies": { + "gaxios": "^6.0.0", + "jws": "^4.0.0" }, - "peerDependencies": { - "@swc-node/register": "^1.4.2", - "@swc/core": "^1.2.173" + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" }, - "peerDependenciesMeta": { - "@swc-node/register": { - "optional": true - }, - "@swc/core": { - "optional": true - } + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/nx/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==", - "dev": true - }, - "node_modules/nx/node_modules/axios": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.0.tgz", - "integrity": "sha512-zT7wZyNYu3N5Bu0wuZ6QccIf93Qk1eV8LOewxgjOZFd2DenOs98cJ7+Y6703d0wkaXGY6/nZd4EweJaHz9uzQw==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "license": "ISC", + "engines": { + "node": ">=4" } }, - "node_modules/nx/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ajv": "^6.12.3", + "har-schema": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" + } + }, + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "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": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/nx/node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "node_modules/har-validator/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==", + "license": "MIT" + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/nx/node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/nx/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==", + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "es-define-property": "^1.0.0" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/nx/node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "has-symbols": "^1.0.3" }, "engines": { - "node": "*" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/nx/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==", + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true, + "license": "ISC" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "function-bind": "^1.1.2" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">= 0.4" } }, - "node_modules/nx/node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "capital-case": "^1.0.4", + "tslib": "^2.0.3" } }, - "node_modules/nx/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, + "node_modules/hexer": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", + "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", "dependencies": { - "lru-cache": "^6.0.0" + "ansi-color": "^0.2.1", + "minimist": "^1.1.0", + "process": "^0.10.0", + "xtend": "^4.0.0" }, "bin": { - "semver": "bin/semver.js" + "hexer": "cli.js" }, "engines": { - "node": ">=10" + "node": ">= 0.10.x" } }, - "node_modules/nx/node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "peer": true, "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" + "react-is": "^16.7.0" } }, - "node_modules/nx/node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT", + "peer": true + }, + "node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "license": "ISC", "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "lru-cache": "^10.0.1" }, "engines": { - "node": ">=12" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/nx/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true, - "engines": { - "node": ">=12" + "license": "MIT" + }, + "node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" } }, - "node_modules/nx/node_modules/yargs/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/http-assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", "dev": true, + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" }, "engines": { - "node": ">=12" + "node": ">= 0.8" } }, - "node_modules/nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, + "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==", + "license": "BSD-2-Clause" + }, + "node_modules/http-call": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/http-call/-/http-call-5.3.0.tgz", + "integrity": "sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w==", + "license": "ISC", "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" + "content-type": "^1.0.4", + "debug": "^4.1.1", + "is-retry-allowed": "^1.1.0", + "is-stream": "^2.0.0", + "parse-json": "^4.0.0", + "tunnel-agent": "^0.6.0" }, "engines": { - "node": ">=8.9" + "node": ">=8.0.0" } }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, + "node_modules/http-call/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" } }, - "node_modules/nyc/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==", + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" }, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/nyc/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==", + "node_modules/http-errors/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, + "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">=8" + "node": ">= 14" } }, - "node_modules/nyc/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==", + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.8", + "npm": ">=1.3.7" } }, - "node_modules/nyc/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==", - "dev": true, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" }, "engines": { - "node": ">=8" + "node": ">=10.19.0" } }, - "node_modules/nyc/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", "dependencies": { - "aggregate-error": "^3.0.0" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/nyc/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=10.17.0" } }, - "node_modules/nyc/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==", - "dev": true, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" + "ms": "^2.0.0" } }, - "node_modules/nyc/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==", - "dev": true - }, - "node_modules/nyc/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==", + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", "dev": true, - "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" + "license": "MIT", + "bin": { + "husky": "bin.js" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" } }, - "node_modules/nyc/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==", - "dev": true, + "node_modules/ibm-cloud-sdk-core": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ibm-cloud-sdk-core/-/ibm-cloud-sdk-core-5.1.0.tgz", + "integrity": "sha512-KJCbPz3tiXB1NGAD7cL4JtwpWV8yd/C7jsaHsxvedMo2ZblNG8emMyvSpGhiKAQVZmi3c0ujz6eJdy22NHuUWQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@types/debug": "^4.1.12", + "@types/node": "~10.14.19", + "@types/tough-cookie": "^4.0.0", + "axios": "1.7.4", + "camelcase": "^6.3.0", + "debug": "^4.3.4", + "dotenv": "^16.4.5", + "extend": "3.0.2", + "file-type": "16.5.4", + "form-data": "4.0.0", + "isstream": "0.1.2", + "jsonwebtoken": "^9.0.2", + "mime-types": "2.1.35", + "retry-axios": "^2.6.0", + "tough-cookie": "^4.1.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/ibm-cloud-sdk-core/node_modules/@types/node": { + "version": "10.14.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.22.tgz", + "integrity": "sha512-9taxKC944BqoTVjE+UT3pQH0nHZlTvITwfsOZqyc+R3sfJuxaTtxWjfn1K2UlxyPcKHf0rnaXcVFrS9F9vf0bw==", + "license": "MIT", + "peer": true + }, + "node_modules/ibm-cloud-sdk-core/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==", + "license": "MIT", + "peer": true, "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=6" + "node": ">= 6" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/object-get": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", - "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", - "dev": true + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" }, - "node_modules/object-to-spawn-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz", - "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==", - "dev": true, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">= 4" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", "dev": true, - "dependencies": { - "wrappy": "1" - } + "license": "ISC" }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/ignore-walk": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", + "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", "dev": true, + "license": "ISC", "dependencies": { - "mimic-fn": "^2.1.0" + "minimatch": "^9.0.0" }, "engines": { - "node": ">=6" - }, + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/immer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", + "license": "MIT", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/immer" } }, - "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "license": "MIT", "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">=4" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, + "license": "MIT", "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=0.8.19" } }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflation": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz", + "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, + "license": "ISC", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/init-package-json": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-6.0.3.tgz", + "integrity": "sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==", "dev": true, + "license": "ISC", "dependencies": { - "aggregate-error": "^3.0.0" + "@npmcli/package-json": "^5.0.0", + "npm-package-arg": "^11.0.0", + "promzard": "^1.0.0", + "read": "^3.0.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/p-map-series": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", - "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", + "node_modules/inquirer": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, "engines": { - "node": ">=8" + "node": ">=12.0.0" } }, - "node_modules/p-pipe": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", - "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", + "node_modules/inquirer/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==", "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "node_modules/inquirer/node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, + "license": "ISC", "engines": { - "node": ">=8" + "node": ">= 10" } }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "node_modules/inquirer/node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true, + "license": "ISC" + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", "dependencies": { - "p-finally": "^1.0.0" + "has-flag": "^4.0.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==", - "dev": true, - "engines": { - "node": ">=6" - } + "node_modules/int64-buffer": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz", + "integrity": "sha512-v7cSY1J8ydZ0GyjUHqF+1bshJ6cnEVLo9EnjB8p+4HDRPZc9N5jjmvUV7NvEsqQOKyH0pmIBFWXVQbiS0+OBbA==", + "license": "MIT" }, - "node_modules/p-waterfall": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", - "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", + "node_modules/internal-ip": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz", + "integrity": "sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg==", "dev": true, + "license": "MIT", "dependencies": { - "p-reduce": "^2.0.0" + "default-gateway": "^6.0.0", + "ipaddr.js": "^1.9.1", + "is-ip": "^3.1.0", + "p-event": "^4.2.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/internal-ip?sponsor=1" } }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", "dev": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" }, "engines": { - "node": ">=8" + "node": ">= 12" } }, - "node_modules/pacote": { - "version": "13.6.2", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.2.tgz", - "integrity": "sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==", + "node_modules/ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ip-utils": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ip-utils/-/ip-utils-2.4.0.tgz", + "integrity": "sha512-WplHS3eFOjWenJNfuzmFpUv9p9A+VU7G0UIKD4bxUK9cduFkZA7TPxfsmLrpPX6KcCtrO11zpOhjSyy6hhrpzQ==", + "license": "MIT", "dependencies": { - "@npmcli/git": "^3.0.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/promise-spawn": "^3.0.0", - "@npmcli/run-script": "^4.1.0", - "cacache": "^16.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.6", - "mkdirp": "^1.0.4", - "npm-package-arg": "^9.0.0", - "npm-packlist": "^5.1.0", - "npm-pick-manifest": "^7.0.0", - "npm-registry-fetch": "^13.0.1", - "proc-log": "^2.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^5.0.0", - "read-package-json-fast": "^2.0.3", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, + "tslib": "^1.8.0" + } + }, + "node_modules/ip-utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 0.10" } }, - "node_modules/pacote/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^7.5.1" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pacote/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "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==", "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/pacote/node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, + "license": "MIT", "dependencies": { - "callsites": "^3.0.0" + "ci-info": "^3.2.0" }, - "engines": { - "node": ">=6" + "bin": { + "is-ci": "bin.js" } }, - "node_modules/parse-conflict-json": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz", - "integrity": "sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==", - "dev": true, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", "dependencies": { - "json-parse-even-better-errors": "^2.3.1", - "just-diff": "^5.0.1", - "just-diff-apply": "^5.2.0" + "hasown": "^2.0.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" }, "engines": { "node": ">=8" @@ -10917,1511 +18953,2067 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-path": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", - "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", - "dev": true, - "dependencies": { - "protocols": "^2.0.0" + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/parse-url": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", - "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", - "dev": true, - "dependencies": { - "parse-path": "^7.0.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==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "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==", + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, + "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==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, "engines": { "node": ">=0.10.0" } }, - "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==", + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "node_modules/is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", "dev": true, + "license": "MIT", "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, + "ip-regex": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true, - "engines": { - "node": "*" - } + "license": "MIT" }, - "node_modules/picocolors": { + "node_modules/is-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } + "license": "MIT" }, - "node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true, + "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==", + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.12.0" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "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==", "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/pkg-dir/node_modules/find-up": { + "node_modules/is-plain-obj": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir/node_modules/locate-path": { + "node_modules/is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/pkg-dir/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==", + "node_modules/is-port-reachable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-port-reachable/-/is-port-reachable-4.0.0.tgz", + "integrity": "sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==", "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-dir/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==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" }, - "node_modules/prelude-ls": { + "node_modules/is-reference": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", "dev": true, - "engines": { - "node": ">= 0.8.0" + "license": "MIT", + "dependencies": { + "@types/estree": "*" } }, - "node_modules/prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, + "node_modules/is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "license": "MIT", "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "node_modules/is-ssh": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", + "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", "dev": true, + "license": "MIT", "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" + "protocols": "^2.0.1" } }, - "node_modules/proc-log": { + "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", - "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==", - "dev": true, + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "node_modules/is-text-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", "dev": true, + "license": "MIT", "dependencies": { - "fromentries": "^1.2.0" + "text-extensions": "^2.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-all-reject-late": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", - "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/promise-call-limit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.1.tgz", - "integrity": "sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q==", - "dev": true, + "node": ">= 0.4" + }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, + "license": "MIT", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/promzard": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "integrity": "sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==", - "dev": true, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", "dependencies": { - "read": "1" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true - }, - "node_modules/protocols": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", - "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", - "dev": true - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "node_modules/isbinaryfile": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.4.tgz", + "integrity": "sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" } }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" + "node": ">=0.10.0" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "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/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "license": "MIT" }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "safe-buffer": "^5.1.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { - "mute-stream": "~0.0.4" + "semver": "^7.5.3" }, "engines": { - "node": ">=0.8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-cmd-shim": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz", - "integrity": "sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/read-package-json": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.2.tgz", - "integrity": "sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==", + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "glob": "^8.0.1", - "json-parse-even-better-errors": "^2.3.1", - "normalize-package-data": "^4.0.0", - "npm-normalize-package-bin": "^2.0.0" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/read-package-json-fast": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", - "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", - "dev": true, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jaeger-client": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", + "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0", + "opentracing": "^0.14.4", + "thriftrw": "^3.5.0", + "uuid": "^8.3.2", + "xorshift": "^1.1.1" }, "engines": { "node": ">=10" } }, - "node_modules/read-package-json/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, + "node_modules/jaeger-client/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "license": "Apache-2.0", "dependencies": { - "balanced-match": "^1.0.0" + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/read-package-json/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, + "node_modules/jake/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==", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/read-package-json/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, + "node_modules/jake/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { - "lru-cache": "^7.5.1" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/read-package-json/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=12" + "node": "*" } }, - "node_modules/read-package-json/node_modules/minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", - "dev": true, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/read-package-json/node_modules/normalize-package-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", - "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "license": "MIT", "dependencies": { - "hosted-git-info": "^5.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/read-package-json/node_modules/npm-normalize-package-bin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "node_modules/jest-diff/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==", "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tiktoken": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.16.tgz", + "integrity": "sha512-nUVdO5k/M9llWpiaZlBBDdtmr6qWXwSD6fgaDu2zM8UP+OXxx9V37lFkI6w0/1IuaDx7WffZ37oYd9KvcWKElg==", + "license": "MIT", "dependencies": { - "locate-path": "^2.0.0" + "base64-js": "^1.5.1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" }, - "engines": { - "node": ">=4" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "node_modules/js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" + "xmlcreate": "^2.0.4" } }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "node_modules/jsdoc": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.4.tgz", + "integrity": "sha512-zeFezwyXeG4syyYHbvh1A967IAqq/67yXtXvuL5wnqCkFZe8I0vKfm+EO+YEvLguo6w9CDUbrAXVtJSHh2E8rw==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "p-limit": "^1.1.0" + "@babel/parser": "^7.20.15", + "@jsdoc/salty": "^0.2.1", + "@types/markdown-it": "^14.1.1", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^3.0.0", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^8.6.7", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "underscore": "~1.13.2" + }, + "bin": { + "jsdoc": "jsdoc.js" }, "engines": { - "node": ">=4" + "node": ">=12.0.0" } }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "node_modules/jsdoc-api": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-8.1.1.tgz", + "integrity": "sha512-yas9E4h8NHp1CTEZiU/DPNAvLoUcip+Hl8Xi1RBYzHqSrgsF+mImAZNtwymrXvgbrgl4bNGBU9syulM0JzFeHQ==", "dev": true, + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "cache-point": "^2.0.0", + "collect-all": "^1.0.4", + "file-set": "^4.0.2", + "fs-then-native": "^2.0.0", + "jsdoc": "^4.0.3", + "object-to-spawn-args": "^2.0.1", + "temp-path": "^1.0.0", + "walk-back": "^5.1.0" + }, "engines": { - "node": ">=4" + "node": ">=12.17" } }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "node_modules/jsdoc-api/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=12.17" } }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/read-pkg/node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "node_modules/jsdoc-parse": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.2.4.tgz", + "integrity": "sha512-MQA+lCe3ioZd0uGbyB3nDCDZcKgKC7m/Ivt0LgKZdUoOlMJxUWJQ3WI6GeyHp9ouznKaCjlp7CU9sw5k46yZTw==", "dev": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "array-back": "^6.2.2", + "find-replace": "^5.0.1", + "lodash.omit": "^4.5.0", + "sort-array": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/jsdoc-parse/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "license": "MIT", + "engines": { + "node": ">=12.17" } }, - "node_modules/read-pkg/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "node_modules/jsdoc-parse/node_modules/find-replace": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz", + "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==", "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=14" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "node_modules/jsdoc-to-markdown": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-8.0.3.tgz", + "integrity": "sha512-JGYYd5xygnQt1DIxH+HUI+X/ynL8qWihzIF0n15NSCNtM6MplzawURRcaLI2WkiS2hIjRIgsphCOfM7FkaWiNg==", "dev": true, + "license": "MIT", "dependencies": { - "pify": "^3.0.0" + "array-back": "^6.2.2", + "command-line-tool": "^0.8.0", + "config-master": "^3.1.0", + "dmd": "^6.2.3", + "jsdoc-api": "^8.1.1", + "jsdoc-parse": "^6.2.1", + "walk-back": "^5.1.0" + }, + "bin": { + "jsdoc2md": "bin/cli.js" }, "engines": { - "node": ">=4" + "node": ">=12.17" } }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "node_modules/jsdoc-to-markdown/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=12.17" } }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "node_modules/jsdoc-type-pratt-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.1.0.tgz", + "integrity": "sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==", "dev": true, - "bin": { - "semver": "bin/semver" + "license": "MIT", + "engines": { + "node": ">=12.0.0" } }, - "node_modules/read-pkg/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/jsdoc/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "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==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": ">= 6" + "node": ">=6" } }, - "node_modules/readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" + "bignumber.js": "^9.0.0" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/reduce-extract": { + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", - "integrity": "sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU=", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, - "dependencies": { - "test-value": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" + "license": "MIT" + }, + "node_modules/json-stringify-nice": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", + "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", + "dev": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/reduce-extract/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "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==", + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "dependencies": { - "typical": "^2.6.0" + "license": "MIT", + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": ">=0.12.0" + "node": ">=6" } }, - "node_modules/reduce-extract/node_modules/test-value": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", - "integrity": "sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=", + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^1.0.2", - "typical": "^2.4.2" + "universalify": "^2.0.0" }, - "engines": { - "node": ">=0.10.0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/reduce-flatten": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", - "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, - "engines": { - "node": ">=8" - } + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" }, - "node_modules/reduce-unique": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", - "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", - "dev": true, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/reduce-without": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", - "integrity": "sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw=", + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, + "license": "(MIT OR Apache-2.0)", "dependencies": { - "test-value": "^2.0.0" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" }, "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/reduce-without/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "dev": true, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", "dependencies": { - "typical": "^2.6.0" + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" }, "engines": { - "node": ">=0.12.0" + "node": ">=12", + "npm": ">=6" } }, - "node_modules/reduce-without/node_modules/test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", - "dev": true, + "node_modules/jsonwebtoken/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==", + "license": "MIT", "dependencies": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - }, - "engines": { - "node": ">=0.10.0" + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node_modules/jsonwebtoken/node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "license": "MIT", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "license": "MIT", "dependencies": { - "es6-error": "^4.0.1" + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" }, "engines": { - "node": ">=4" + "node": ">=0.6.0" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "node_modules/just-diff": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz", + "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "node_modules/just-diff-apply": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", + "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "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==", - "dev": true - }, - "node_modules/requizzle": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", - "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "node_modules/just-extend": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", + "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } + "license": "MIT" }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, + "node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "license": "MIT", "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, + "node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "license": "MIT", "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" } }, - "node_modules/resolve-from": { + "node_modules/jwt-decode": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", "dev": true, + "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "tsscmp": "1.0.6" }, "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "engines": { - "node": ">= 4" + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { - "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "graceful-fs": "^4.1.9" } }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "node_modules/koa": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.3.tgz", + "integrity": "sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==", "dev": true, - "engines": { - "node": ">=0.12.0" - } + "license": "MIT", + "dependencies": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.9.0", + "debug": "^4.3.2", + "delegates": "^1.0.0", + "depd": "^2.0.0", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^2.0.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" + }, + "engines": { + "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" + } + }, + "node_modules/koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "dev": true, + "license": "MIT" }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/koa-convert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", + "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "license": "MIT", "dependencies": { - "queue-microtask": "^1.2.2" + "co": "^4.6.0", + "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 10" } }, - "node_modules/rxjs": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", - "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "node_modules/koa-etag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz", + "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==", "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^2.1.0" + "etag": "^1.8.1" } }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "node_modules/koa-send": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", + "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "http-errors": "^1.7.3", + "resolve-path": "^1.4.0" + }, + "engines": { + "node": ">= 8" + } }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/koa-static": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", + "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "debug": "^3.1.0", + "koa-send": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">= 7.6.0" } }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "node_modules/koa-static/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { - "randombytes": "^2.1.0" + "ms": "^2.1.1" } }, - "node_modules/set-blocking": { + "node_modules/kuler": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "license": "MIT" + }, + "node_modules/langsmith": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/langsmith/-/langsmith-0.2.14.tgz", + "integrity": "sha512-ClAuAgSf3m9miMYotLEaZKQyKdaWlfjhebCuYco8bc6g72dU2VwTg31Bv4YINBq7EH2i1cMwbOiJxbOXPqjGig==", + "license": "MIT", + "dependencies": { + "@types/uuid": "^10.0.0", + "commander": "^10.0.1", + "p-queue": "^6.6.2", + "p-retry": "4", + "semver": "^7.6.3", + "uuid": "^10.0.0" + }, + "peerDependencies": { + "openai": "*" + }, + "peerDependenciesMeta": { + "openai": { + "optional": true + } + } }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "node_modules/lerna": { + "version": "8.1.9", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-8.1.9.tgz", + "integrity": "sha512-ZRFlRUBB2obm+GkbTR7EbgTMuAdni6iwtTQTMy7LIrQ4UInG44LyfRepljtgUxh4HA0ltzsvWfPkd5J1DKGCeQ==", "dev": true, + "license": "MIT", "dependencies": { - "kind-of": "^6.0.2" + "@lerna/create": "8.1.9", + "@npmcli/arborist": "7.5.4", + "@npmcli/package-json": "5.2.0", + "@npmcli/run-script": "8.1.0", + "@nx/devkit": ">=17.1.2 < 21", + "@octokit/plugin-enterprise-rest": "6.0.1", + "@octokit/rest": "19.0.11", + "aproba": "2.0.0", + "byte-size": "8.1.1", + "chalk": "4.1.0", + "clone-deep": "4.0.1", + "cmd-shim": "6.0.3", + "color-support": "1.1.3", + "columnify": "1.6.0", + "console-control-strings": "^1.1.0", + "conventional-changelog-angular": "7.0.0", + "conventional-changelog-core": "5.0.1", + "conventional-recommended-bump": "7.0.1", + "cosmiconfig": "9.0.0", + "dedent": "1.5.3", + "envinfo": "7.13.0", + "execa": "5.0.0", + "fs-extra": "^11.2.0", + "get-port": "5.1.1", + "get-stream": "6.0.0", + "git-url-parse": "14.0.0", + "glob-parent": "6.0.2", + "globby": "11.1.0", + "graceful-fs": "4.2.11", + "has-unicode": "2.0.1", + "import-local": "3.1.0", + "ini": "^1.3.8", + "init-package-json": "6.0.3", + "inquirer": "^8.2.4", + "is-ci": "3.0.1", + "is-stream": "2.0.0", + "jest-diff": ">=29.4.3 < 30", + "js-yaml": "4.1.0", + "libnpmaccess": "8.0.6", + "libnpmpublish": "9.0.9", + "load-json-file": "6.2.0", + "lodash": "^4.17.21", + "make-dir": "4.0.0", + "minimatch": "3.0.5", + "multimatch": "5.0.0", + "node-fetch": "2.6.7", + "npm-package-arg": "11.0.2", + "npm-packlist": "8.0.2", + "npm-registry-fetch": "^17.1.0", + "nx": ">=17.1.2 < 21", + "p-map": "4.0.0", + "p-map-series": "2.1.0", + "p-pipe": "3.1.0", + "p-queue": "6.6.2", + "p-reduce": "2.1.0", + "p-waterfall": "2.1.1", + "pacote": "^18.0.6", + "pify": "5.0.0", + "read-cmd-shim": "4.0.0", + "resolve-from": "5.0.0", + "rimraf": "^4.4.1", + "semver": "^7.3.8", + "set-blocking": "^2.0.0", + "signal-exit": "3.0.7", + "slash": "3.0.0", + "ssri": "^10.0.6", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "strong-log-transformer": "2.1.0", + "tar": "6.2.1", + "temp-dir": "1.0.0", + "typescript": ">=3 < 6", + "upath": "2.0.1", + "uuid": "^10.0.0", + "validate-npm-package-license": "3.0.4", + "validate-npm-package-name": "5.0.1", + "wide-align": "1.1.5", + "write-file-atomic": "5.0.1", + "write-pkg": "4.0.0", + "yargs": "17.7.2", + "yargs-parser": "21.1.1" + }, + "bin": { + "lerna": "dist/cli.js" }, "engines": { - "node": ">=8" + "node": ">=18.0.0" } }, - "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==", + "node_modules/lerna/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==", "dev": true, + "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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==", + "node_modules/lerna/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "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==", - "dev": true + "node_modules/lerna/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "node_modules/lerna/node_modules/execa": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", "dev": true, + "license": "MIT", "dependencies": { - "semver": "~7.0.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">=8.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "node_modules/lerna/node_modules/get-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sinon": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", - "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", + "node_modules/lerna/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", "dev": true, + "license": "ISC", "dependencies": { - "@sinonjs/commons": "^1.8.1", - "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/samsam": "^5.3.1", - "diff": "^4.0.2", - "nise": "^4.0.4", - "supports-color": "^7.1.0" + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/sinon-chai": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz", - "integrity": "sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==", + "node_modules/lerna/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "peerDependencies": { - "chai": "^4.0.0", - "sinon": ">=4.0.0" + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, - "node_modules/sinon/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/lerna/node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/lerna/node_modules/glob/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=0.3.1" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/lerna/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/lerna/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/slice-ansi": { + "node_modules/lerna/node_modules/make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "semver": "^7.5.3" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "node_modules/lerna/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" + "node": "*" } }, - "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "node_modules/lerna/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/lerna/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "license": "MIT", "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "node_modules/lerna/node_modules/rimraf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", "dev": true, + "license": "ISC", "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "glob": "^9.2.0" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" }, "engines": { - "node": ">= 10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/sort-array": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz", - "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==", + "node_modules/lerna/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==", + "dev": true, + "license": "ISC" + }, + "node_modules/lerna/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^5.0.0", - "typical": "^6.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/sort-array/node_modules/array-back": { + "node_modules/lerna/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lerna/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/lerna/node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", - "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/sort-array/node_modules/typical": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", - "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", + "node_modules/libnpmaccess": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-8.0.6.tgz", + "integrity": "sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==", "dev": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1" + }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/sort-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", - "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", + "node_modules/libnpmpublish": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-9.0.9.tgz", + "integrity": "sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==", "dev": true, + "license": "ISC", "dependencies": { - "is-plain-obj": "^2.0.0" + "ci-info": "^4.0.0", + "normalize-package-data": "^6.0.1", + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.2.0", + "semver": "^7.3.7", + "sigstore": "^2.2.0", + "ssri": "^10.0.6" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/sort-keys/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "node_modules/libnpmpublish/node_modules/ci-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz", + "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", "engines": { "node": ">=8" } }, - "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==", + "node_modules/lighthouse-logger": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", + "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "Apache-2.0", + "dependencies": { + "debug": "^2.6.9", + "marky": "^1.2.2" } }, - "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==", + "node_modules/lighthouse-logger/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "ms": "2.0.0" } }, - "node_modules/spawn-wrap": { + "node_modules/lighthouse-logger/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" + "license": "MIT" + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, + "license": "MIT", "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "uc.micro": "^2.0.0" } }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/lit": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", + "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "@lit/reactive-element": "^1.6.0", + "lit-element": "^3.3.0", + "lit-html": "^2.8.0" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", - "dev": true - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "node_modules/lit-element": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", + "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" + "@lit-labs/ssr-dom-shim": "^1.1.0", + "@lit/reactive-element": "^1.3.0", + "lit-html": "^2.8.0" } }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "node_modules/lit-html": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", + "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "readable-stream": "^3.0.0" + "@types/trusted-types": "^2.0.2" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "node_modules/load-json-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", + "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.1.1" + "graceful-fs": "^4.1.15", + "parse-json": "^5.0.0", + "strip-bom": "^4.0.0", + "type-fest": "^0.6.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/stream-connect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", - "integrity": "sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc=", + "node_modules/load-json-file/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "dependencies": { - "array-back": "^1.0.2" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/stream-connect/node_modules/array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, + "license": "MIT", "dependencies": { - "typical": "^2.6.0" + "p-locate": "^6.0.0" }, "engines": { - "node": ">=0.12.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stream-via": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", - "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/log-symbols/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==", "dev": true, + "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/string_decoder/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==", + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "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==", + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "has-flag": "^4.0.0" }, "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==", + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "node_modules/logform": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", + "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.6.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" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "license": "Apache-2.0" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", "dev": true, + "license": "MIT" + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", "dev": true, + "license": "ISC", "engines": { - "node": ">=6" + "node": ">=16.14" } }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, + "license": "MIT", "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, "engines": { "node": ">=8" }, @@ -12429,11578 +21021,9070 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strong-log-transformer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", - "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "dependencies": { - "duplexer": "^0.1.1", - "minimist": "^1.2.0", - "through": "^2.3.4" - }, + "license": "ISC", "bin": { - "sl-log-transformer": "bin/sl-log-transformer.js" - }, - "engines": { - "node": ">=4" + "semver": "bin/semver.js" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/make-fetch-happen": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", "dev": true, + "license": "ISC", "dependencies": { - "has-flag": "^4.0.0" + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "node_modules/map-or-similar": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", + "integrity": "sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, + "license": "MIT", "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, - "engines": { - "node": ">=10.0.0" + "bin": { + "markdown-it": "bin/markdown-it.mjs" } }, - "node_modules/table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", + "node_modules/markdown-it-anchor": { + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", "dev": true, - "dependencies": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" - }, - "engines": { - "node": ">=4.0.0" + "license": "Unlicense", + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" } }, - "node_modules/table-layout/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "dev": true, - "dependencies": { - "typical": "^2.6.1" + "license": "MIT", + "bin": { + "marked": "bin/marked.js" }, "engines": { - "node": ">=4" + "node": ">= 12" } }, - "node_modules/table/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "node_modules/marky": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", + "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "license": "Apache-2.0" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" }, - "node_modules/taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", - "dev": true + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/tar": { - "version": "6.1.12", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz", - "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==", + "node_modules/memoizerific": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", + "integrity": "sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==", "dev": true, + "license": "MIT", "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "map-or-similar": "^1.5.0" } }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" + "license": "MIT", + "engines": { + "node": ">=16.10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", - "dev": true, + "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==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 8" } }, - "node_modules/temp-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", - "integrity": "sha1-JLFUOXOrRCiW2a02fdnL2/r+kYs=", - "dev": true + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, - "node_modules/test-value": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", - "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", - "dev": true, - "dependencies": { - "array-back": "^2.0.0", - "typical": "^2.6.1" - }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { - "node": ">=4.0.0" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/test-value/node_modules/array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, + "node_modules/microsoft-cognitiveservices-speech-sdk": { + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/microsoft-cognitiveservices-speech-sdk/-/microsoft-cognitiveservices-speech-sdk-1.42.0.tgz", + "integrity": "sha512-ERrS1rwPPCN1foOwlJv3XmKO4NtBchjW+zYPQBgv4ffRfh87DcxuISXICPDjvlAU61w/r+y6p1W0pnX3gwVZ7A==", + "license": "MIT", "dependencies": { - "typical": "^2.6.1" + "@types/webrtc": "^0.0.37", + "agent-base": "^6.0.1", + "bent": "^7.3.12", + "https-proxy-agent": "^4.0.0", + "uuid": "^9.0.0", + "ws": "^7.5.6" + } + }, + "node_modules/microsoft-cognitiveservices-speech-sdk/node_modules/@types/webrtc": { + "version": "0.0.37", + "resolved": "https://registry.npmjs.org/@types/webrtc/-/webrtc-0.0.37.tgz", + "integrity": "sha512-JGAJC/ZZDhcrrmepU4sPLQLIOIAgs5oIK+Ieq90K8fdaNMhfdfqmYatJdgif1NDQtvrSlTOGJDUYHIDunuufOg==", + "license": "MIT" + }, + "node_modules/microsoft-cognitiveservices-speech-sdk/node_modules/https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "license": "MIT", + "dependencies": { + "agent-base": "5", + "debug": "4" }, "engines": { - "node": ">=4" + "node": ">= 6.0.0" } }, - "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true, + "node_modules/microsoft-cognitiveservices-speech-sdk/node_modules/https-proxy-agent/node_modules/agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", + "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">= 6.0.0" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "node_modules/microsoft-cognitiveservices-speech-sdk/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, + "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==", + "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.2" + "mime-db": "1.52.0" }, "engines": { - "node": ">=0.6.0" + "node": ">= 0.6" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, - "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==", - "dev": true, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", "dependencies": { - "is-number": "^7.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/touch/node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, + "license": "MIT", "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" }, "engines": { - "node": "*" + "node": ">= 6" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/treeverse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-2.0.0.tgz", - "integrity": "sha512-N5gJCkLu1aXccpOTtqV6ddSEi6ZmGkh3hjmbu1IjcavJK4qyOVQmi0myQKM7z5jVGmD68SJoliaVrMmVObhj6A==", + "node_modules/minimist-options/node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=0.10.0" } }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "node_modules/minimist-options/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "node_modules/ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", "dev": true, + "license": "ISC", "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "minipass": "^7.0.3" }, "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/minipass-fetch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, "engines": { - "node": ">=0.3.1" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" } }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, + "license": "ISC", "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { - "minimist": "^1.2.0" + "yallist": "^4.0.0" }, - "bin": { - "json5": "lib/cli.js" + "engines": { + "node": ">=8" } }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { - "tslib": "^1.8.1" + "yallist": "^4.0.0" }, "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "node": ">=8" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, + "license": "ISC", "dependencies": { - "prelude-ls": "^1.2.1" + "minipass": "^3.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 8" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "yallist": "^4.0.0" }, "engines": { - "node": ">=4.2.0" + "node": ">=8" } }, - "node_modules/typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "dev": true - }, - "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" }, - "node_modules/uglify-js": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.1.tgz", - "integrity": "sha512-FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ==", + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "optional": true, + "license": "MIT", "bin": { - "uglifyjs": "bin/uglifyjs" + "mkdirp": "bin/cmd.js" }, "engines": { - "node": ">=0.8.0" + "node": ">=10" } }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "node_modules/underscore": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", - "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==", - "dev": true + "node_modules/mkdirp2": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz", + "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==", + "dev": true, + "license": "MIT" }, - "node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "node_modules/mocha": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.0.2.tgz", + "integrity": "sha512-IpLqigxxL825rKCce2hlJL6qiUNgxbjhpS79SA6NN+Quzrf6wzLezwk4LcfIJp/OUD5BVWTM/nCYc3oQ5uqmfw==", "dev": true, + "license": "MIT", "dependencies": { - "unique-slug": "^3.0.0" + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^10.4.5", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "node_modules/mocha/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==", "dev": true, + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4" + "color-convert": "^2.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "node_modules/mocha/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "license": "MIT", + "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": ">= 10.0.0" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/upath": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", - "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "node_modules/mocha/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==", "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, - "bin": { - "browserslist-lint": "cli.js" + "engines": { + "node": ">=10" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { - "punycode": "^2.1.0" + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "node_modules/mocha/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, - "bin": { - "uuid": "bin/uuid" + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { - "builtins": "^5.0.0" + "p-limit": "^3.0.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/walk-back": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz", - "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==", + "node_modules/mocha/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==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12.17" + "node": ">=8" } }, - "node_modules/walk-up-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", - "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==", - "dev": true - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "node_modules/mocha/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "dependencies": { - "defaults": "^1.0.3" + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "node_modules/mocha/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/mocha/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==", "dev": true, + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" + "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/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "node_modules/mocha/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==", "dev": true, + "license": "ISC", "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "node_modules/wordwrapjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "node_modules/mocha/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "dependencies": { - "reduce-flatten": "^1.0.1", - "typical": "^2.6.1" - }, + "license": "MIT", "engines": { - "node": ">=4.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/wordwrapjs/node_modules/reduce-flatten": { + "node_modules/modify-values": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", - "dev": true + "node_modules/module-details-from-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", + "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==", + "license": "MIT" + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", + "engines": { + "node": "*" + } }, - "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==", + "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==", + "license": "MIT" + }, + "node_modules/msgpack-lite": { + "version": "0.1.26", + "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz", + "integrity": "sha512-SZ2IxeqZ1oRFGo0xFGbvBJWMp3yLIY9rlIJyxy8CGrwZn1f0ZK4r6jV/AM1r0FZMDUkWkglOk/eeKIL9g77Nxw==", + "license": "MIT", + "dependencies": { + "event-lite": "^0.1.1", + "ieee754": "^1.1.8", + "int64-buffer": "^0.1.9", + "isarray": "^1.0.0" + }, + "bin": { + "msgpack": "bin/msgpack" + } + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "node_modules/multimatch/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/write-json-file": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz", - "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==", + "node_modules/multimatch/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { - "detect-indent": "^6.0.0", - "graceful-fs": "^4.1.15", - "is-plain-obj": "^2.0.0", - "make-dir": "^3.0.0", - "sort-keys": "^4.0.0", - "write-file-atomic": "^3.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8.3" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, - "node_modules/write-json-file/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "license": "MIT", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "license": "ISC", "engines": { - "node": ">=8" + "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/write-pkg": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", - "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==", + "node_modules/nanocolors": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", + "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==", "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nats": { + "version": "2.28.2", + "resolved": "https://registry.npmjs.org/nats/-/nats-2.28.2.tgz", + "integrity": "sha512-02cvR8EPach+0BfVaQjPgsbPFn6uMjEQAuvXS2ppg8jiWEm2KYdfmeFmtshiU9b2+kFh3LSEKMEaIfRgk3K8tw==", + "license": "Apache-2.0", "dependencies": { - "sort-keys": "^2.0.0", - "type-fest": "^0.4.1", - "write-json-file": "^3.2.0" + "nkeys.js": "1.1.0" }, "engines": { - "node": ">=8" + "node": ">= 14.0.0" } }, - "node_modules/write-pkg/node_modules/detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">= 0.6" } }, - "node_modules/write-pkg/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/nise": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/nise/-/nise-6.1.1.tgz", + "integrity": "sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "@sinonjs/commons": "^3.0.1", + "@sinonjs/fake-timers": "^13.0.1", + "@sinonjs/text-encoding": "^0.7.3", + "just-extend": "^6.2.0", + "path-to-regexp": "^8.1.0" + } + }, + "node_modules/nkeys.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nkeys.js/-/nkeys.js-1.1.0.tgz", + "integrity": "sha512-tB/a0shZL5UZWSwsoeyqfTszONTt4k2YS0tuQioMOD180+MbombYVgzDUYHlx+gejYK6rgf08n/2Df99WY0Sxg==", + "license": "Apache-2.0", + "dependencies": { + "tweetnacl": "1.0.3" }, "engines": { - "node": ">=6" + "node": ">=10.0.0" } }, - "node_modules/write-pkg/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10.5.0" } }, - "node_modules/write-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "node_modules/node-ensure": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz", + "integrity": "sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==", + "license": "MIT" + }, + "node_modules/node-gyp": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.3.1.tgz", + "integrity": "sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==", "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^4.0.0" + }, "bin": { - "semver": "bin/semver" + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/write-pkg/node_modules/sort-keys": { + "node_modules/node-gyp/node_modules/abbrev": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, + "license": "ISC", "engines": { - "node": ">=4" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/write-pkg/node_modules/type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, + "license": "ISC", "engines": { - "node": ">=6" + "node": ">=16" } }, - "node_modules/write-pkg/node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "node_modules/node-gyp/node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, + "license": "ISC", "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/write-pkg/node_modules/write-json-file": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", - "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, + "license": "ISC", "dependencies": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.15", - "make-dir": "^2.1.0", - "pify": "^4.0.1", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.4.2" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">=6" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/xmlcreate": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", - "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", - "dev": true + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "license": "MIT" }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "node_modules/node-machine-id": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", + "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true, + "license": "MIT" + }, + "node_modules/nodemailer": { + "version": "6.9.16", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.16.tgz", + "integrity": "sha512-psAuZdTIRN08HKVd/E8ObdV6NO7NTBY3KsC30F7M4H1OnmLCUNaS56FpYxyb26zWLSyYF9Ozch9KYHhHegsiOQ==", + "license": "MIT-0", "engines": { - "node": ">=0.4" + "node": ">=6.0.0" } }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "node_modules/nodemon": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.9.tgz", + "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, "engines": { "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "node_modules/nodemon/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "engines": { - "node": ">= 6" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/nodemon/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "license": "MIT", "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" + "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": ">=10" + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=4" } }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "node_modules/nodemon/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10" + "node": "*" } }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/nodemon/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "node_modules/nodemon/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "engines": { - "node": ">=10" + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8.10.0" } }, - "node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, "engines": { "node": ">=6" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.0" + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "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==", "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", - "dev": true - }, - "@babel/core": { - "version": "7.17.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", - "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", - "dev": true, - "requires": { - "@babel/types": "^7.20.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" + "node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "node_modules/npm-bundled": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", + "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, + "license": "ISC", "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", "dev": true, - "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, - "requires": { - "@babel/types": "^7.18.6" + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "node_modules/npm-package-arg": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz", + "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==", "dev": true, - "requires": { - "@babel/types": "^7.18.6" + "license": "ISC", + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "node_modules/npm-packlist": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", + "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "license": "ISC", + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "node_modules/npm-pick-manifest": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", + "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", "dev": true, - "requires": { - "@babel/types": "^7.20.2" + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "node_modules/npm-registry-fetch": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", + "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", "dev": true, - "requires": { - "@babel/types": "^7.18.6" + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } }, - "@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "deprecated": "This package is no longer supported.", "dev": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" } }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nx": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/nx/-/nx-20.3.0.tgz", + "integrity": "sha512-Nzi4k7tV22zwO2iBLk+pHxorLEWPJpPrVCACtz0SQ63j/LiAgfhoqruJO+VU+V+E9qdyPsvmqIL/Iaf/GRQlqA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.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==", - "dev": true, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "@napi-rs/wasm-runtime": "0.2.4", + "@yarnpkg/lockfile": "^1.1.0", + "@yarnpkg/parsers": "3.0.2", + "@zkochan/js-yaml": "0.0.7", + "axios": "^1.7.4", + "chalk": "^4.1.0", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^8.0.1", + "dotenv": "~16.4.5", + "dotenv-expand": "~11.0.6", + "enquirer": "~2.3.6", + "figures": "3.2.0", + "flat": "^5.0.2", + "front-matter": "^4.0.2", + "ignore": "^5.0.4", + "jest-diff": "^29.4.1", + "jsonc-parser": "3.2.0", + "lines-and-columns": "2.0.3", + "minimatch": "9.0.3", + "node-machine-id": "1.1.12", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "ora": "5.3.0", + "resolve.exports": "2.0.3", + "semver": "^7.5.3", + "string-width": "^4.2.3", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^4.1.2", + "tslib": "^2.3.0", + "yaml": "^2.6.0", + "yargs": "^17.6.2", + "yargs-parser": "21.1.1" + }, + "bin": { + "nx": "bin/nx.js", + "nx-cloud": "bin/nx-cloud.js" + }, + "optionalDependencies": { + "@nx/nx-darwin-arm64": "20.3.0", + "@nx/nx-darwin-x64": "20.3.0", + "@nx/nx-freebsd-x64": "20.3.0", + "@nx/nx-linux-arm-gnueabihf": "20.3.0", + "@nx/nx-linux-arm64-gnu": "20.3.0", + "@nx/nx-linux-arm64-musl": "20.3.0", + "@nx/nx-linux-x64-gnu": "20.3.0", + "@nx/nx-linux-x64-musl": "20.3.0", + "@nx/nx-win32-arm64-msvc": "20.3.0", + "@nx/nx-win32-x64-msvc": "20.3.0" + }, + "peerDependencies": { + "@swc-node/register": "^1.8.0", + "@swc/core": "^1.3.85" + }, + "peerDependenciesMeta": { + "@swc-node/register": { + "optional": true }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "@swc/core": { + "optional": true } } }, - "@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", - "dev": true - }, - "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "node_modules/nx/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==", "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - }, + "license": "MIT", "dependencies": { - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "@babel/traverse": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.10.tgz", - "integrity": "sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==", + "node_modules/nx/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, + "license": "MIT", "dependencies": { - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "node_modules/nx/node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "node_modules/nx/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, + "license": "ISC", "dependencies": { - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - } + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "node_modules/nx/node_modules/ora": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", + "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", - "dev": true - }, - "@isaacs/string-locale-compare": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", - "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/nx/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, + "license": "MIT", "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "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==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "node_modules/nx/node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "license": "MIT", + "engines": { + "node": ">=14.14" } }, - "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "node_modules/object-get": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", + "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } + "license": "MIT" }, - "@lerna/add": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-6.1.0.tgz", - "integrity": "sha512-f2cAeS1mE/p7QvSRn5TCgdUXw6QVbu8PeRxaTOxTThhTdJIWdXZfY00QjAsU6jw1PdYXK1qGUSwWOPkdR16mBg==", - "dev": true, - "requires": { - "@lerna/bootstrap": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/filter-options": "6.1.0", - "@lerna/npm-conf": "6.1.0", - "@lerna/validation-error": "6.1.0", - "dedent": "^0.7.0", - "npm-package-arg": "8.1.1", - "p-map": "^4.0.0", - "pacote": "^13.6.1", - "semver": "^7.3.4" + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" } }, - "@lerna/bootstrap": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-6.1.0.tgz", - "integrity": "sha512-aDxKqgxexVj/Z0B1aPu7P1iPbPqhk1FPkl/iayCmPlkAh90pYEH0uVytGzi1hFB5iXEfG7Pa6azGQywUodx/1g==", - "dev": true, - "requires": { - "@lerna/command": "6.1.0", - "@lerna/filter-options": "6.1.0", - "@lerna/has-npm-version": "6.1.0", - "@lerna/npm-install": "6.1.0", - "@lerna/package-graph": "6.1.0", - "@lerna/pulse-till-done": "6.1.0", - "@lerna/rimraf-dir": "6.1.0", - "@lerna/run-lifecycle": "6.1.0", - "@lerna/run-topologically": "6.1.0", - "@lerna/symlink-binary": "6.1.0", - "@lerna/symlink-dependencies": "6.1.0", - "@lerna/validation-error": "6.1.0", - "@npmcli/arborist": "5.3.0", - "dedent": "^0.7.0", - "get-port": "^5.1.1", - "multimatch": "^5.0.0", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0", - "p-waterfall": "^2.1.1", - "semver": "^7.3.4" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@lerna/changed": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-6.1.0.tgz", - "integrity": "sha512-p7C2tf1scmvoUC1Osck/XIKVKXAQ8m8neL8/rfgKSYsvUVjsOB1LbF5HH1VUZntE6S4OxkRxUQGkAHVf5xrGqw==", - "dev": true, - "requires": { - "@lerna/collect-updates": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/listable": "6.1.0", - "@lerna/output": "6.1.0" + "node_modules/object-path": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", + "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", + "license": "MIT", + "engines": { + "node": ">= 10.12.0" } }, - "@lerna/check-working-tree": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-6.1.0.tgz", - "integrity": "sha512-hSciDmRqsNPevMhAD+SYbnhjatdb7UUu9W8vTyGtUXkrq2xtRZU0vAOgqovV8meirRkbC41pZePYKqyQtF0y3w==", + "node_modules/object-to-spawn-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz", + "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==", "dev": true, - "requires": { - "@lerna/collect-uncommitted": "6.1.0", - "@lerna/describe-ref": "6.1.0", - "@lerna/validation-error": "6.1.0" + "license": "MIT", + "engines": { + "node": ">=8.0.0" } }, - "@lerna/child-process": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-6.1.0.tgz", - "integrity": "sha512-jhr3sCFeps6Y15SCrWEPvqE64i+QLOTSh+OzxlziCBf7ZEUu7sF0yA4n5bAqw8j43yCKhhjkf/ZLYxZe+pnl3Q==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "execa": "^5.0.0", - "strong-log-transformer": "^2.1.0" + "node_modules/oclif": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/oclif/-/oclif-4.17.4.tgz", + "integrity": "sha512-CELZOdxSfpM2Kl3dGP0N4fL4+RReGP18vo6oNklWoSP4ka+pJTBzO3W0o15KHAyrzpes5cui+xur3UPZIGr0LQ==", + "license": "MIT", + "dependencies": { + "@aws-sdk/client-cloudfront": "^3.699.0", + "@aws-sdk/client-s3": "^3.712.0", + "@inquirer/confirm": "^3.1.22", + "@inquirer/input": "^2.2.4", + "@inquirer/select": "^2.5.0", + "@oclif/core": "^4.2.0", + "@oclif/plugin-help": "^6.2.20", + "@oclif/plugin-not-found": "^3.2.31", + "@oclif/plugin-warn-if-update-available": "^3.1.28", + "async-retry": "^1.3.3", + "chalk": "^4", + "change-case": "^4", + "debug": "^4.4.0", + "ejs": "^3.1.10", + "find-yarn-workspace-root": "^2.0.0", + "fs-extra": "^8.1", + "github-slugger": "^2", + "got": "^13", + "lodash": "^4.17.21", + "normalize-package-data": "^6", + "semver": "^7.6.3", + "sort-package-json": "^2.10.1", + "tiny-jsonc": "^1.0.1", + "validate-npm-package-name": "^5.0.1" + }, + "bin": { + "oclif": "bin/run.js" + }, + "engines": { + "node": ">=18.0.0" } }, - "@lerna/clean": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-6.1.0.tgz", - "integrity": "sha512-LRK2hiNUiBhPe5tmJiefOVpkaX2Yob0rp15IFNIbuteRWUJg0oERFQo62WvnxwElfzKSOhr8OGuEq/vN4bMrRA==", - "dev": true, - "requires": { - "@lerna/command": "6.1.0", - "@lerna/filter-options": "6.1.0", - "@lerna/prompt": "6.1.0", - "@lerna/pulse-till-done": "6.1.0", - "@lerna/rimraf-dir": "6.1.0", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0", - "p-waterfall": "^2.1.1" + "node_modules/oclif/node_modules/@inquirer/confirm": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.2.0.tgz", + "integrity": "sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, + "engines": { + "node": ">=18" } }, - "@lerna/cli": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-6.1.0.tgz", - "integrity": "sha512-p4G/OSPIrHiNkEl8bXrQdFOh4ORAZp2+ljvbXmAxpdf2qmopaUdr+bZYtIAxd+Z42SxRnDNz9IEyR0kOsARRQQ==", - "dev": true, - "requires": { - "@lerna/global-options": "6.1.0", - "dedent": "^0.7.0", - "npmlog": "^6.0.2", - "yargs": "^16.2.0" + "node_modules/oclif/node_modules/@inquirer/core": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.2.1.tgz", + "integrity": "sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==", + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.6", + "@inquirer/type": "^2.0.0", + "@types/mute-stream": "^0.0.4", + "@types/node": "^22.5.5", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" }, + "engines": { + "node": ">=18" + } + }, + "node_modules/oclif/node_modules/@inquirer/core/node_modules/@inquirer/type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-2.0.0.tgz", + "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", + "license": "MIT", "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" } }, - "@lerna/collect-uncommitted": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-6.1.0.tgz", - "integrity": "sha512-VvWvqDZG+OiF4PwV4Ro695r3+8ty4w+11Bnq8tbsbu5gq8qZiam8Fkc/TQLuNNqP0SPi4qmMPaIzWvSze3SmDg==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "chalk": "^4.1.0", - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/oclif/node_modules/@inquirer/input": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.3.0.tgz", + "integrity": "sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, + "engines": { + "node": ">=18" } }, - "@lerna/collect-updates": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-6.1.0.tgz", - "integrity": "sha512-dgH7kgstwCXFctylQ4cxuCmhwSIE6VJZfHdh2bOaLuncs6ATMErKWN/mVuFHuUWEqPDRyy5Ky40Cu9S40nUq5w==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "@lerna/describe-ref": "6.1.0", - "minimatch": "^3.0.4", - "npmlog": "^6.0.2", - "slash": "^3.0.0" + "node_modules/oclif/node_modules/@inquirer/select": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.5.0.tgz", + "integrity": "sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" }, + "engines": { + "node": ">=18" + } + }, + "node_modules/oclif/node_modules/@inquirer/type": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", + "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "license": "MIT", "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" } }, - "@lerna/command": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-6.1.0.tgz", - "integrity": "sha512-OnMqBDaEBY0C8v9CXIWFbGGKgsiUtZrnKVvQRbupMSZDKMpVGWIUd3X98Is9j9MAmk1ynhBMWE9Fwai5ML/mcA==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "@lerna/package-graph": "6.1.0", - "@lerna/project": "6.1.0", - "@lerna/validation-error": "6.1.0", - "@lerna/write-log-file": "6.1.0", - "clone-deep": "^4.0.1", - "dedent": "^0.7.0", - "execa": "^5.0.0", - "is-ci": "^2.0.0", - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/oclif/node_modules/@types/node": { + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" } }, - "@lerna/conventional-commits": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-6.1.0.tgz", - "integrity": "sha512-Tipo3cVr8mNVca4btzrCIzct59ZJWERT8/ZCZ/TQWuI4huUJZs6LRofLtB0xsGJAVZ7Vz2WRXAeH4XYgeUxutQ==", - "dev": true, - "requires": { - "@lerna/validation-error": "6.1.0", - "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-core": "^4.2.4", - "conventional-recommended-bump": "^6.1.0", - "fs-extra": "^9.1.0", - "get-stream": "^6.0.0", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "pify": "^5.0.0", - "semver": "^7.3.4" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/oclif/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "@lerna/create": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-6.1.0.tgz", - "integrity": "sha512-ZqlknXu0L29cV5mcfNgBLl+1RbKTWmNk8mj545zgXc7qQDgmrY+EVvrs8Cirey8C7bBpVkzP7Brzze0MSoB4rQ==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/npm-conf": "6.1.0", - "@lerna/validation-error": "6.1.0", - "dedent": "^0.7.0", - "fs-extra": "^9.1.0", - "init-package-json": "^3.0.2", - "npm-package-arg": "8.1.1", - "p-reduce": "^2.1.0", - "pacote": "^13.6.1", - "pify": "^5.0.0", - "semver": "^7.3.4", - "slash": "^3.0.0", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^4.0.0", - "yargs-parser": "20.2.4" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } + "node_modules/oclif/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@lerna/create-symlink": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-6.1.0.tgz", - "integrity": "sha512-ulMa5OUJEwEWBHSgCUNGxrcsJllq1YMYWqhufvIigmMPJ0Zv3TV1Hha5i2MsqLJAakxtW0pNuwdutkUTtUdgxQ==", - "dev": true, - "requires": { - "cmd-shim": "^5.0.0", - "fs-extra": "^9.1.0", - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/oclif/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "@lerna/describe-ref": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-6.1.0.tgz", - "integrity": "sha512-0RQAYnxBaMz1SrEb/rhfR+8VeZx5tvCNYKRee5oXIDZdQ2c6/EPyrKCp3WcqiuOWY50SfGOVfxJEcxpK8Y3FNA==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/oclif/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "@lerna/diff": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-6.1.0.tgz", - "integrity": "sha512-GhP+jPDbcp9QcAMSAjFn4lzM8MKpLR1yt5jll+zUD831U1sL0I5t8HUosFroe5MoRNffEL/jHuI3SbC3jjqWjQ==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/validation-error": "6.1.0", - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/oclif/node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "@lerna/exec": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-6.1.0.tgz", - "integrity": "sha512-Ej6WlPHXLF6hZHsfD+J/dxeuTrnc0HIfIXR1DU//msHW5RNCdi9+I7StwreCAQH/dLEsdBjPg5chNmuj2JLQRg==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/filter-options": "6.1.0", - "@lerna/profiler": "6.1.0", - "@lerna/run-topologically": "6.1.0", - "@lerna/validation-error": "6.1.0", - "p-map": "^4.0.0" + "node_modules/oclif/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "@lerna/filter-options": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-6.1.0.tgz", - "integrity": "sha512-kPf92Z7uLsR6MUiXnyXWebaUWArLa15wLfpfTwIp5H3MNk1lTbuG7QnrxE7OxQj+ozFmBvXeV9fuwfLsYTfmOw==", - "dev": true, - "requires": { - "@lerna/collect-updates": "6.1.0", - "@lerna/filter-packages": "6.1.0", - "dedent": "^0.7.0", - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/oclif/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" } }, - "@lerna/filter-packages": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-6.1.0.tgz", - "integrity": "sha512-zW2avsZHs/ITE/37AEMhegGVHjiD0rgNk9bguNDfz6zaPa90UaW6PWDH6Tf4ThPRlbkl2Go48N3bFYHYSJKbcw==", - "dev": true, - "requires": { - "@lerna/validation-error": "6.1.0", - "multimatch": "^5.0.0", - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/ollama": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/ollama/-/ollama-0.5.11.tgz", + "integrity": "sha512-lDAKcpmBU3VAOGF05NcQipHNKTdpKfAHpZ7bjCsElkUkmX7SNZImi6lwIxz/l1zQtLq0S3wuLneRuiXxX2KIew==", + "license": "MIT", + "dependencies": { + "whatwg-fetch": "^3.6.20" } }, - "@lerna/get-npm-exec-opts": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-6.1.0.tgz", - "integrity": "sha512-10Pdf+W0z7RT34o0SWlf+WVzz2/WbnTIJ1tQqXvXx6soj2L/xGLhOPvhJiKNtl4WlvUiO/zQ91yb83ESP4TZaA==", - "dev": true, - "requires": { - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "@lerna/get-packed": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-6.1.0.tgz", - "integrity": "sha512-lg0wPpV0wPekcD0mebJp619hMxsOgbZDOH5AkL/bCR217391eha0iPhQ0dU/G0Smd2vv6Cg443+J5QdI4LGRTg==", - "dev": true, - "requires": { - "fs-extra": "^9.1.0", - "ssri": "^9.0.1", - "tar": "^6.1.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "@lerna/github-client": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-6.1.0.tgz", - "integrity": "sha512-+/4PtDgsjt0VRRZtOCN2Piyu0asU/16gSZZy/opVb8dlT44lTrH/ZghrJLE4tSL8Nuv688kx0kSgbUG8BY54jQ==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "@octokit/plugin-enterprise-rest": "^6.0.1", - "@octokit/rest": "^19.0.3", - "git-url-parse": "^13.1.0", - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "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==", + "license": "ISC", + "dependencies": { + "wrappy": "1" } }, - "@lerna/gitlab-client": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-6.1.0.tgz", - "integrity": "sha512-fUI/ppXzxJafN9ceSl+FDgsYvu3iTsO6UW0WTD63pS32CfM+PiCryLQHzuc4RkyVW8WQH3aCR/GbaKCqbu52bw==", - "dev": true, - "requires": { - "node-fetch": "^2.6.1", - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "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==", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" } }, - "@lerna/global-options": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-6.1.0.tgz", - "integrity": "sha512-1OyJ/N1XJh3ZAy8S20c6th9C4yBm/k3bRIdC+z0XxpDaHwfNt8mT9kUIDt6AIFCUvVKjSwnIsMHwhzXqBnwYSA==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", "dev": true }, - "@lerna/has-npm-version": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-6.1.0.tgz", - "integrity": "sha512-up5PVuP6BmKQ5/UgH/t2c5B1q4HhjwW3/bqbNayX6V0qNz8OijnMYvEUbxFk8fOdeN41qVnhAk0Tb5kbdtYh2A==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "semver": "^7.3.4" - } + "node_modules/onnxruntime-common": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.20.1.tgz", + "integrity": "sha512-YiU0s0IzYYC+gWvqD1HzLc46Du1sXpSiwzKb63PACIJr6LfL27VsXSXQvt68EzD3V0D5Bc0vyJTjmMxp0ylQiw==", + "license": "MIT" }, - "@lerna/import": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-6.1.0.tgz", - "integrity": "sha512-xsBhiKLUavATR32dAFL+WFY0yuab0hsM1eztKtRKk4wy7lSyxRfA5EIUcNCsLXx2xaDOKoMncCTXgNcpeYuqcQ==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/prompt": "6.1.0", - "@lerna/pulse-till-done": "6.1.0", - "@lerna/validation-error": "6.1.0", - "dedent": "^0.7.0", - "fs-extra": "^9.1.0", - "p-map-series": "^2.1.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } + "node_modules/onnxruntime-node": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.20.1.tgz", + "integrity": "sha512-di/I4HDXRw+FLgq+TyHmQEDd3cEp9iFFZm0r4uJ1Wd7b/WE1VXtKWo8yemex347c6GNF/3Pv86ZfPhIWxORr0w==", + "hasInstallScript": true, + "license": "MIT", + "os": [ + "win32", + "darwin", + "linux" + ], + "dependencies": { + "onnxruntime-common": "1.20.1", + "tar": "^7.0.1" } }, - "@lerna/info": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/info/-/info-6.1.0.tgz", - "integrity": "sha512-CsrWdW/Wyb4kcvHSnrsm7KYWFvjUNItu+ryeyWBZJtWYQOv45jNmWix6j2L4/w1+mMlWMjsfLmBscg82UBrF5w==", - "dev": true, - "requires": { - "@lerna/command": "6.1.0", - "@lerna/output": "6.1.0", - "envinfo": "^7.7.4" + "node_modules/onnxruntime-node/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" } }, - "@lerna/init": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-6.1.0.tgz", - "integrity": "sha512-z8oUeVjn+FQYAtepAw6G47cGodLyBAyNoEjO3IsJjQLWE1yH3r83L2sjyD/EckgR3o2VTEzrKo4ArhxLp2mNmg==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/project": "6.1.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0", - "write-json-file": "^4.3.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } + "node_modules/onnxruntime-node/node_modules/minizlib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" } }, - "@lerna/link": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-6.1.0.tgz", - "integrity": "sha512-7OD2lYNQHl6Kl1KYmplt8KoWjVHdiaqpYqwD38AwcB09YN58nGmo4aJgC12Fdx8DSNjkumgM0ROg/JOjMCTIzQ==", - "dev": true, - "requires": { - "@lerna/command": "6.1.0", - "@lerna/package-graph": "6.1.0", - "@lerna/symlink-dependencies": "6.1.0", - "@lerna/validation-error": "6.1.0", - "p-map": "^4.0.0", - "slash": "^3.0.0" + "node_modules/onnxruntime-node/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "@lerna/list": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-6.1.0.tgz", - "integrity": "sha512-7/g2hjizkvVnBGpVm+qC7lUFGhZ/0GIMUbGQwnE6yXDGm8yP9aEcNVkU4JGrDWW+uIklf9oodnMHaLXd/FJe6Q==", - "dev": true, - "requires": { - "@lerna/command": "6.1.0", - "@lerna/filter-options": "6.1.0", - "@lerna/listable": "6.1.0", - "@lerna/output": "6.1.0" + "node_modules/onnxruntime-node/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "@lerna/listable": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-6.1.0.tgz", - "integrity": "sha512-3KZ9lQ9AtNfGNH/mYJYaMKCiF2EQvLLBGYkWHeIzIs6foegcZNXe0Cyv3LNXuo5WslMNr5RT4wIgy3BOoAxdtg==", - "dev": true, - "requires": { - "@lerna/query-graph": "6.1.0", - "chalk": "^4.1.0", - "columnify": "^1.6.0" + "node_modules/onnxruntime-node/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" } }, - "@lerna/log-packed": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-6.1.0.tgz", - "integrity": "sha512-Sq2HZJAcPuoNeEHeIutcPYQCyWBxLyVGvEhgsP3xTe6XkBGQCG8piCp9wX+sc2zT+idPdpI6qLqdh85yYIMMhA==", - "dev": true, - "requires": { - "byte-size": "^7.0.0", - "columnify": "^1.6.0", - "has-unicode": "^2.0.1", - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/onnxruntime-node/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" } }, - "@lerna/npm-conf": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-6.1.0.tgz", - "integrity": "sha512-+RD3mmJe9XSQj7Diibs0+UafAHPcrFCd29ODpDI+tzYl4MmYZblfrlL6mbSCiVYCZQneQ8Uku3P0r+DlbYBaFw==", + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, - "requires": { - "config-chain": "^1.1.12", - "pify": "^5.0.0" + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@lerna/npm-dist-tag": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-6.1.0.tgz", - "integrity": "sha512-1zo+Yww/lvWJWZnEXpke9dZSb5poDzhUM/pQNqAQYSlbZ96o18SuCR6TEi5isMPiw63Aq1MMzbUqttQfJ11EOA==", - "dev": true, - "requires": { - "@lerna/otplease": "6.1.0", - "npm-package-arg": "8.1.1", - "npm-registry-fetch": "^13.3.0", - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } + "node_modules/openai": { + "version": "4.77.0", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.77.0.tgz", + "integrity": "sha512-WWacavtns/7pCUkOWvQIjyOfcdr9X+9n9Vvb0zFeKVDAqwCMDHB+iSr24SVaBAhplvSG6JrRXFpcNM9gWhOGIw==", + "license": "Apache-2.0", + "dependencies": { + "@types/node": "^18.11.18", + "@types/node-fetch": "^2.6.4", + "abort-controller": "^3.0.0", + "agentkeepalive": "^4.2.1", + "form-data-encoder": "1.7.2", + "formdata-node": "^4.3.2", + "node-fetch": "^2.6.7" + }, + "bin": { + "openai": "bin/cli" + }, + "peerDependencies": { + "zod": "^3.23.8" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true } } }, - "@lerna/npm-install": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-6.1.0.tgz", - "integrity": "sha512-1SHmOHZA1YJuUctLQBRjA2+yMp+UNYdOBsFb3xUVT7MjWnd1Zl0toT3jxGu96RNErD9JKkk/cGo/Aq+DU3s9pg==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "@lerna/get-npm-exec-opts": "6.1.0", - "fs-extra": "^9.1.0", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "signal-exit": "^3.0.3", - "write-pkg": "^4.0.0" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/openai/node_modules/@types/node": { + "version": "18.19.68", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.68.tgz", + "integrity": "sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" } }, - "@lerna/npm-publish": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-6.1.0.tgz", - "integrity": "sha512-N0LdR1ImZQw1r4cYaKtVbBhBPtj4Zu9NbvygzizEP5HuTfxZmE1Ans3w93Kks9VTXZXob8twNbXnzBwzTyEpEA==", - "dev": true, - "requires": { - "@lerna/otplease": "6.1.0", - "@lerna/run-lifecycle": "6.1.0", - "fs-extra": "^9.1.0", - "libnpmpublish": "^6.0.4", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "pify": "^5.0.0", - "read-package-json": "^5.0.1" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } + "node_modules/openai/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true } } }, - "@lerna/npm-run-script": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-6.1.0.tgz", - "integrity": "sha512-7p13mvdxdY5+VqWvvtMsMDeyCRs0PrrTmSHRO+FKuLQuGhBvUo05vevcMEOQNDvEvl/tXPrOVbeGCiGubYTCLg==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "@lerna/get-npm-exec-opts": "6.1.0", - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } - } + "node_modules/openai/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, - "@lerna/otplease": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-6.1.0.tgz", - "integrity": "sha512-gqSE6IbaD4IeNJePkaDLaFLoGp0Ceu35sn7z0AHAOoHiQGGorOmvM+h1Md3xZZRSXQmY9LyJVhG5eRa38SoG4g==", - "dev": true, - "requires": { - "@lerna/prompt": "6.1.0" - } + "node_modules/openai/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" }, - "@lerna/output": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/output/-/output-6.1.0.tgz", - "integrity": "sha512-mgCIzLKIuroytXuxjTB689ERtpfgyNXW0rMv9WHOa6ufQc+QJPjh3L4jVsOA0l+/OxZyi97PUXotduNj+0cbnA==", - "dev": true, - "requires": { - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } - } + "node_modules/openai/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, - "@lerna/pack-directory": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-6.1.0.tgz", - "integrity": "sha512-Xsixqm2nkGXs9hvq08ClbGpRlCYnlBV4TwSrLttIDL712RlyXoPe2maJzTUqo9OXBbOumFSahUEInCMT2OS05g==", - "dev": true, - "requires": { - "@lerna/get-packed": "6.1.0", - "@lerna/package": "6.1.0", - "@lerna/run-lifecycle": "6.1.0", - "@lerna/temp-write": "6.1.0", - "npm-packlist": "^5.1.1", - "npmlog": "^6.0.2", - "tar": "^6.1.0" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/openai/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "@lerna/package": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/package/-/package-6.1.0.tgz", - "integrity": "sha512-PyNFtdH2IcLasp/nyMDshmeXotriOSlhbeFIxhdl1XuGj5v1so3utMSOrJMO5kzZJQg5zyx8qQoxL+WH/hkrVQ==", - "dev": true, - "requires": { - "load-json-file": "^6.2.0", - "npm-package-arg": "8.1.1", - "write-pkg": "^4.0.0" - } + "node_modules/openapi-types": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", + "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", + "license": "MIT" }, - "@lerna/package-graph": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-6.1.0.tgz", - "integrity": "sha512-yGyxd/eHTDjkpnBbDhTV0hwKF+i01qZc+6/ko65wOsh8xtgqpQeE6mtdgbvsLKcuMcIQ7PDy1ntyIv9phg14gQ==", - "dev": true, - "requires": { - "@lerna/prerelease-id-from-version": "6.1.0", - "@lerna/validation-error": "6.1.0", - "npm-package-arg": "8.1.1", - "npmlog": "^6.0.2", - "semver": "^7.3.4" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/opentracing": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", + "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" } }, - "@lerna/prerelease-id-from-version": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-6.1.0.tgz", - "integrity": "sha512-ngC4I6evvZztB6aOaSDEnhUgRTlqX3TyBXwWwLGTOXCPaCQBTPaLNokhmRdJ+ZVdZ4iHFbzEDSL07ubZrYUcmQ==", + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, - "requires": { - "semver": "^7.3.4" + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@lerna/profiler": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-6.1.0.tgz", - "integrity": "sha512-WFDQNpuqPqMJLg8llvrBHF8Ib5Asgp23lMeNUe89T62NUX6gkjVBTYdjsduxM0tZH6Pa0GAGaQcha97P6fxfdQ==", - "dev": true, - "requires": { - "fs-extra": "^9.1.0", - "npmlog": "^6.0.2", - "upath": "^2.0.1" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/ora/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "@lerna/project": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/project/-/project-6.1.0.tgz", - "integrity": "sha512-EOkfjjrTM16c3GUxGqcfYD2stV35p9mBEmkF41NPmyjfbzjol/irDF1r6Q7BsQSRsdClMJRCeZ168xdSxC2X0A==", + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { - "@lerna/package": "6.1.0", - "@lerna/validation-error": "6.1.0", - "cosmiconfig": "^7.0.0", - "dedent": "^0.7.0", - "dot-prop": "^6.0.1", - "glob-parent": "^5.1.1", - "globby": "^11.0.2", - "js-yaml": "^4.1.0", - "load-json-file": "^6.2.0", - "npmlog": "^6.0.2", - "p-map": "^4.0.0", - "resolve-from": "^5.0.0", - "write-json-file": "^4.3.0" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@lerna/prompt": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-6.1.0.tgz", - "integrity": "sha512-981J/C53TZ2l2mFVlWJN7zynSzf5GEHKvKQa12Td9iknhASZOuwTAWb6eq46246Ant6W5tWwb0NSPu3I5qtcrA==", + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "inquirer": "^8.2.4", - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "@lerna/publish": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-6.1.0.tgz", - "integrity": "sha512-XtvuydtU0IptbAapLRgoN1AZj/WJR+e3UKnx9BQ1Dwc+Fpg2oqPxR/vi+6hxAsr95pdQ5CnWBdgS+dg2wEUJ7Q==", - "dev": true, - "requires": { - "@lerna/check-working-tree": "6.1.0", - "@lerna/child-process": "6.1.0", - "@lerna/collect-updates": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/describe-ref": "6.1.0", - "@lerna/log-packed": "6.1.0", - "@lerna/npm-conf": "6.1.0", - "@lerna/npm-dist-tag": "6.1.0", - "@lerna/npm-publish": "6.1.0", - "@lerna/otplease": "6.1.0", - "@lerna/output": "6.1.0", - "@lerna/pack-directory": "6.1.0", - "@lerna/prerelease-id-from-version": "6.1.0", - "@lerna/prompt": "6.1.0", - "@lerna/pulse-till-done": "6.1.0", - "@lerna/run-lifecycle": "6.1.0", - "@lerna/run-topologically": "6.1.0", - "@lerna/validation-error": "6.1.0", - "@lerna/version": "6.1.0", - "fs-extra": "^9.1.0", - "libnpmaccess": "^6.0.3", - "npm-package-arg": "8.1.1", - "npm-registry-fetch": "^13.3.0", - "npmlog": "^6.0.2", - "p-map": "^4.0.0", - "p-pipe": "^3.1.0", - "pacote": "^13.6.1", - "semver": "^7.3.4" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "@lerna/pulse-till-done": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-6.1.0.tgz", - "integrity": "sha512-a2RVT82E4R9nVXtehzp2TQL6iXp0QfEM3bu8tBAR/SfI1A9ggZWQhuuUqtRyhhVCajdQDOo7rS0UG7R5JzK58w==", - "dev": true, - "requires": { - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "license": "MIT", + "engines": { + "node": ">=12.20" } }, - "@lerna/query-graph": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-6.1.0.tgz", - "integrity": "sha512-YkyCc+6aR7GlCOcZXEKPcl5o5L2v+0YUNs59JrfAS0mctFosZ/2tP7pkdu2SI4qXIi5D0PMNsh/0fRni56znsQ==", + "node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", "dev": true, - "requires": { - "@lerna/package-graph": "6.1.0" - } - }, - "@lerna/resolve-symlink": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-6.1.0.tgz", - "integrity": "sha512-8ILO+h5fsE0q8MSLfdL+MT1GEsNhAB1fDyMkSsYgLRCsssN/cViZbffpclZyT/EfAhpyKfBCHZ0CmT1ZGofU1A==", - "dev": true, - "requires": { - "fs-extra": "^9.1.0", - "npmlog": "^6.0.2", - "read-cmd-shim": "^3.0.0" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } - } - }, - "@lerna/rimraf-dir": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-6.1.0.tgz", - "integrity": "sha512-J9YeGHkCCeAIzsnKURYeGECBexiIii6HA+Bbd+rAgoKPsNCOj6ql4+qJE8Jbd7fQEFNDPQeBCYvM7JcdMc0WSA==", - "dev": true, - "requires": { - "@lerna/child-process": "6.1.0", - "npmlog": "^6.0.2", - "path-exists": "^4.0.0", - "rimraf": "^3.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "license": "MIT", + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@lerna/run": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-6.1.0.tgz", - "integrity": "sha512-vlEEKPcTloiob6EK7gxrjEdB6fQQ/LNfWhSJCGxJlvNVbrMpoWIu0Kpp20b0nE+lzX7rRJ4seWr7Wdo/Fjub4Q==", - "dev": true, - "requires": { - "@lerna/command": "6.1.0", - "@lerna/filter-options": "6.1.0", - "@lerna/npm-run-script": "6.1.0", - "@lerna/output": "6.1.0", - "@lerna/profiler": "6.1.0", - "@lerna/run-topologically": "6.1.0", - "@lerna/timer": "6.1.0", - "@lerna/validation-error": "6.1.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", + "engines": { + "node": ">=4" } }, - "@lerna/run-lifecycle": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-6.1.0.tgz", - "integrity": "sha512-GbTdKxL+hWHEPgyBEKtqY9Nf+jFlt6YLtP5VjEVc5SdLkm+FeRquar9/YcZVUbzr3c+NJwWNgVjHuePfowdpUA==", - "dev": true, - "requires": { - "@lerna/npm-conf": "6.1.0", - "@npmcli/run-script": "^4.1.7", - "npmlog": "^6.0.2", - "p-queue": "^6.6.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@lerna/run-topologically": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-6.1.0.tgz", - "integrity": "sha512-kpTaSBKdKjtf61be8Z1e7TIaMt/aksfxswQtpFxEuKDsPsdHfR8htSkADO4d/3SZFtmcAHIHNCQj9CaNj4O4Xw==", + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, - "requires": { - "@lerna/query-graph": "6.1.0", - "p-queue": "^6.6.2" + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@lerna/symlink-binary": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-6.1.0.tgz", - "integrity": "sha512-DaiRNZk/dvomNxgEaTW145PyL7vIGP7rvnfXV2FO+rjX8UUSNUOjmVmHlYfs64gV9Eqx/dLfQClIbKcwYMD83A==", - "dev": true, - "requires": { - "@lerna/create-symlink": "6.1.0", - "@lerna/package": "6.1.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@lerna/symlink-dependencies": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-6.1.0.tgz", - "integrity": "sha512-hrTvtY1Ek+fLA4JjXsKsvwPjuJD0rwB/+K4WY57t00owj//BpCsJ37w3kkkS7f/PcW/5uRjCuHcY67LOEwsRxw==", - "dev": true, - "requires": { - "@lerna/create-symlink": "6.1.0", - "@lerna/resolve-symlink": "6.1.0", - "@lerna/symlink-binary": "6.1.0", - "fs-extra": "^9.1.0", - "p-map": "^4.0.0", - "p-map-series": "^2.1.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } + "node_modules/p-map-series": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", + "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@lerna/temp-write": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-6.1.0.tgz", - "integrity": "sha512-ZcQl88H9HbQ/TeWUOVt+vDYwptm7kwprGvj9KkZXr9S5Bn6SiKRQOeydCCfCrQT+9Q3dm7QZXV6rWzLsACcAlQ==", + "node_modules/p-pipe": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", + "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "is-stream": "^2.0.0", - "make-dir": "^3.0.0", - "temp-dir": "^1.0.0", - "uuid": "^8.3.2" + "license": "MIT", + "engines": { + "node": ">=8" }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@lerna/timer": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-6.1.0.tgz", - "integrity": "sha512-du+NQ9q7uO4d2nVU4AD2DSPuAZqUapA/bZKuVpFVxvY9Qhzb8dQKLsFISe4A9TjyoNAk8ZeWK0aBc/6N+Qer9A==", - "dev": true - }, - "@lerna/validation-error": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-6.1.0.tgz", - "integrity": "sha512-q0c3XCi5OpyTr8AcfbisS6e3svZaJF/riCvBDqRMaQUT4A8QOPzB4fVF3/+J2u54nidBuTlIk0JZu9aOdWTUkQ==", - "dev": true, - "requires": { - "npmlog": "^6.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@lerna/version": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-6.1.0.tgz", - "integrity": "sha512-RUxVFdzHt0739lRNMrAbo6HWcFrcyG7atM1pn+Eo61fUoA5R/9N4bCk4m9xUGkJ/mOcROjuwAGe+wT1uOs58Bg==", - "dev": true, - "requires": { - "@lerna/check-working-tree": "6.1.0", - "@lerna/child-process": "6.1.0", - "@lerna/collect-updates": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/conventional-commits": "6.1.0", - "@lerna/github-client": "6.1.0", - "@lerna/gitlab-client": "6.1.0", - "@lerna/output": "6.1.0", - "@lerna/prerelease-id-from-version": "6.1.0", - "@lerna/prompt": "6.1.0", - "@lerna/run-lifecycle": "6.1.0", - "@lerna/run-topologically": "6.1.0", - "@lerna/temp-write": "6.1.0", - "@lerna/validation-error": "6.1.0", - "@nrwl/devkit": ">=14.8.6 < 16", - "chalk": "^4.1.0", - "dedent": "^0.7.0", - "load-json-file": "^6.2.0", - "minimatch": "^3.0.4", - "npmlog": "^6.0.2", - "p-map": "^4.0.0", - "p-pipe": "^3.1.0", - "p-reduce": "^2.1.0", - "p-waterfall": "^2.1.1", - "semver": "^7.3.4", - "slash": "^3.0.0", - "write-json-file": "^4.3.0" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } + "node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@lerna/write-log-file": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-6.1.0.tgz", - "integrity": "sha512-09omu2w4NCt8mJH/X9ZMuToQQ3xu/KpC7EU4yDl2Qy8nxKf8HiG8Oe+YYNprngmkdsq60F5eUZvoiFDZ5JeGIg==", - "dev": true, - "requires": { - "npmlog": "^6.0.2", - "write-file-atomic": "^4.0.1" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - } + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" } }, - "@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", - "dev": true, - "requires": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" } }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "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==", "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/p-waterfall": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", + "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "license": "MIT", + "dependencies": { + "p-reduce": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@npmcli/arborist": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-5.3.0.tgz", - "integrity": "sha512-+rZ9zgL1lnbl8Xbb1NQdMjveOMwj4lIYfcDtyJHHi5x4X8jtR6m8SXooJMZy5vmFVZ8w7A2Bnd/oX9eTuU8w5A==", + "node_modules/pac-proxy-agent": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.1.0.tgz", + "integrity": "sha512-Z5FnLVVZSnX7WjBg0mhDtydeRZ1xMcATZThjySQUHqr+0ksP8kqaw23fNKkaaN/Z8gwLUs/W7xdl0I75eP2Xyw==", "dev": true, - "requires": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/map-workspaces": "^2.0.3", - "@npmcli/metavuln-calculator": "^3.0.1", - "@npmcli/move-file": "^2.0.0", - "@npmcli/name-from-folder": "^1.0.1", - "@npmcli/node-gyp": "^2.0.0", - "@npmcli/package-json": "^2.0.0", - "@npmcli/run-script": "^4.1.3", - "bin-links": "^3.0.0", - "cacache": "^16.0.6", - "common-ancestor-path": "^1.0.1", - "json-parse-even-better-errors": "^2.3.1", - "json-stringify-nice": "^1.1.4", - "mkdirp": "^1.0.4", - "mkdirp-infer-owner": "^2.0.0", - "nopt": "^5.0.0", - "npm-install-checks": "^5.0.0", - "npm-package-arg": "^9.0.0", - "npm-pick-manifest": "^7.0.0", - "npm-registry-fetch": "^13.0.0", - "npmlog": "^6.0.2", - "pacote": "^13.6.1", - "parse-conflict-json": "^2.0.1", - "proc-log": "^2.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.1", - "read-package-json-fast": "^2.0.2", - "readdir-scoped-modules": "^1.1.0", - "rimraf": "^3.0.2", - "semver": "^7.3.7", - "ssri": "^9.0.0", - "treeverse": "^2.0.0", - "walk-up-path": "^1.0.0" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - } - } - }, - "npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "requires": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" } }, - "@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "node_modules/pac-proxy-agent/node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "dev": true, - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" + "license": "MIT", + "engines": { + "node": ">= 14" } }, - "@npmcli/git": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.2.tgz", - "integrity": "sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w==", + "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, - "requires": { - "@npmcli/promise-spawn": "^3.0.0", - "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^7.0.0", - "proc-log": "^2.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^2.0.2" - }, + "license": "MIT", "dependencies": { - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - } + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" } }, - "@npmcli/installed-package-contents": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", - "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", "dev": true, - "requires": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" } }, - "@npmcli/map-workspaces": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz", - "integrity": "sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==", - "dev": true, - "requires": { - "@npmcli/name-from-folder": "^1.0.1", - "glob": "^8.0.1", - "minimatch": "^5.0.1", - "read-package-json-fast": "^2.0.3" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" }, - "@npmcli/metavuln-calculator": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz", - "integrity": "sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA==", - "dev": true, - "requires": { - "cacache": "^16.0.0", - "json-parse-even-better-errors": "^2.3.1", - "pacote": "^13.0.3", - "semver": "^7.3.5" + "node_modules/pacote": { + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", + "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^8.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^2.2.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "@npmcli/name-from-folder": { + "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", - "integrity": "sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==", - "dev": true - }, - "@npmcli/node-gyp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz", - "integrity": "sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==", - "dev": true + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, - "@npmcli/package-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-2.0.0.tgz", - "integrity": "sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA==", + "node_modules/parse-conflict-json": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz", + "integrity": "sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==", "dev": true, - "requires": { - "json-parse-even-better-errors": "^2.3.1" + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "@npmcli/promise-spawn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz", - "integrity": "sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==", - "dev": true, - "requires": { - "infer-owner": "^1.0.4" + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@npmcli/run-script": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.1.tgz", - "integrity": "sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg==", - "dev": true, - "requires": { - "@npmcli/node-gyp": "^2.0.0", - "@npmcli/promise-spawn": "^3.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^2.0.3", - "which": "^2.0.2" - } + "node_modules/parse-json/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/parse-json/node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" }, - "@nrwl/cli": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-15.2.4.tgz", - "integrity": "sha512-Urhkzj/hzhTlJqOHFZyibYGjvzHvSQhkjN3keHiYCNEOaAGp9DPF+oC5cYrPcqWbu3ZkldDWTk7aVBbeqwDWZQ==", + "node_modules/parse-path": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", + "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", "dev": true, - "requires": { - "nx": "15.2.4" + "license": "MIT", + "dependencies": { + "protocols": "^2.0.0" } }, - "@nrwl/devkit": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.2.4.tgz", - "integrity": "sha512-5JZWB4ydnu+NKNIfj958nML8AWwhareQ+Q1hLXoOIS/7brqfALNP3y/Ef1ljrLIo1f3xc484TPclqwSH7aRdvQ==", + "node_modules/parse-url": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", + "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", "dev": true, - "requires": { - "@phenomnomnominal/tsquery": "4.1.1", - "ejs": "^3.1.7", - "ignore": "^5.0.4", - "semver": "7.3.4", - "tslib": "^2.3.0" - }, - "dependencies": { - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "license": "MIT", + "dependencies": { + "parse-path": "^7.0.0" } }, - "@nrwl/tao": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-15.2.4.tgz", - "integrity": "sha512-ebGJCkg84yfptuNhGMnIrgHvnknJkeyxWLqRQ7AlMXTzxXOfMS+whjVImM9XjfVYVpBVFWc5QBU5gaKQtzLHmA==", + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true, - "requires": { - "nx": "15.2.4" - } + "license": "MIT" }, - "@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", - "dev": true, - "requires": { - "@octokit/types": "^8.0.0" + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", - "dev": true, - "requires": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "license": "MIT", + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", - "dev": true, - "requires": { - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", - "dev": true, - "requires": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", - "universal-user-agent": "^6.0.0" + "node_modules/parse5-parser-stream/node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "license": "MIT", + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", - "dev": true - }, - "@octokit/plugin-enterprise-rest": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", - "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", - "dev": true - }, - "@octokit/plugin-paginate-rest": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz", - "integrity": "sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw==", - "dev": true, - "requires": { - "@octokit/types": "^8.0.0" + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true, - "requires": {} - }, - "@octokit/plugin-rest-endpoint-methods": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz", - "integrity": "sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw==", - "dev": true, - "requires": { - "@octokit/types": "^8.0.0", - "deprecation": "^2.3.1" + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", - "dev": true, - "requires": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "@octokit/request-error": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz", - "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==", + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, - "requires": { - "@octokit/types": "^8.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "@octokit/rest": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.5.tgz", - "integrity": "sha512-+4qdrUFq2lk7Va+Qff3ofREQWGBeoTKNqlJO+FGjFP35ZahP+nBenhZiGdu8USSgmq4Ky3IJ/i4u0xbLqHaeow==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "requires": { - "@octokit/core": "^4.1.0", - "@octokit/plugin-paginate-rest": "^5.0.0", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^6.7.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "@octokit/types": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz", - "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==", + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", "dev": true, - "requires": { - "@octokit/openapi-types": "^14.0.0" - } + "license": "(WTFPL OR MIT)" }, - "@parcel/watcher": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", - "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", - "dev": true, - "requires": { - "node-addon-api": "^3.2.1", - "node-gyp-build": "^4.3.0" + "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==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@phenomnomnominal/tsquery": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz", - "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==", - "dev": true, - "requires": { - "esquery": "^1.0.1" - } + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, - "@sinonjs/samsam": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", - "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" + "node_modules/path-to-regexp": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "license": "MIT", + "engines": { + "node": ">=16" } }, - "@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", - "dev": true + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "@tootallnate/once": { + "node_modules/pathval": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", - "dev": true - }, - "@types/markdown-it": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", - "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, - "requires": { - "@types/linkify-it": "*", - "@types/mdurl": "*" + "license": "MIT", + "engines": { + "node": ">= 14.16" } }, - "@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true + "node_modules/pb-util": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pb-util/-/pb-util-1.0.3.tgz", + "integrity": "sha512-8+weUH2YEYnPf5sTpZ3q7Drq41tSEL8vDSU96/CzSvu2qrbspbjbbuKLjHocAQpmyMbICTcvovVl3cETwxwIkQ==", + "license": "ISC" }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", - "dev": true + "node_modules/pdf-parse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pdf-parse/-/pdf-parse-1.1.1.tgz", + "integrity": "sha512-v6ZJ/efsBpGrGGknjtq9J/oC8tZWq0KWL5vQrk2GlzLEQPUDB1ex+13Rmidl1neNN358Jn9EHZw5y07FFtaC7A==", + "license": "MIT", + "dependencies": { + "debug": "^3.1.0", + "node-ensure": "^0.0.0" + }, + "engines": { + "node": ">=6.8.1" + } }, - "@types/mocha": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", - "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", - "dev": true + "node_modules/pdf-parse/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } }, - "@types/node": { - "version": "15.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz", - "integrity": "sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==", - "dev": true + "node_modules/peek-readable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, + "node_modules/phone": { + "version": "3.1.56", + "resolved": "https://registry.npmjs.org/phone/-/phone-3.1.56.tgz", + "integrity": "sha512-KF2asNQQqLnsutv/DQLRhiOCLkmu+0kspCc1L+EgPT688JEhkyw6hbr9U4ROvMSI6/xBw5TtdCeLSWJkaUWjyw==", + "license": "MIT", + "engines": { + "node": ">=12" + } }, - "@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "node_modules/pick-port": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pick-port/-/pick-port-2.1.0.tgz", + "integrity": "sha512-nqdK+0cmJLGMHKZCNh6PfA/ZeIhHYKSlLLwyfH/IFQVv9SqwNUdbm+08olnd+PbmLqrHk8Twhq6yO9viqOGkkw==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">=18" } }, - "@typescript-eslint/experimental-utils": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", - "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", - "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "node_modules/pkg-dir/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==", "dev": true, - "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "node_modules/pkg-dir/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==", "dev": true, - "requires": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true - }, - "@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "@yarnpkg/parsers": { - "version": "3.0.0-rc.32", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.32.tgz", - "integrity": "sha512-Sz2g88b3iAu2jpMnhtps2bRX2GAAOvanOxGcVi+o7ybGjLetxK23o2cHskXKypvXxtZTsJegel5pUWSPpYphww==", + "node_modules/pkg-dir/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==", "dev": true, - "requires": { - "js-yaml": "^3.10.0", - "tslib": "^2.4.0" - }, + "license": "MIT", "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - } + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@zkochan/js-yaml": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", - "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", + "node_modules/pkg-dir/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==", "dev": true, - "requires": { - "argparse": "^2.0.1" - }, + "license": "MIT", "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - } + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/pkg-dir/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==", "dev": true, - "requires": {} - }, - "add-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", - "dev": true + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" + "node_modules/playwright": { + "version": "1.49.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.49.1.tgz", + "integrity": "sha512-VYL8zLoNTBxVOrJBbDuRgDWa3i+mfQgDTrL8Ah9QXZ7ax4Dsj0MSq5bYgytRnDVVe+njoKnfsYkH3HzqVj5UZA==", + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.49.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" } }, - "agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" + "node_modules/playwright-core": { + "version": "1.49.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.49.1.tgz", + "integrity": "sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg==", + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" } }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/polished": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz", + "integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==", "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.17.8" + }, + "engines": { + "node": ">=10" } }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", "dev": true, - "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" + "license": "MIT", + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "engines": { + "node": ">= 0.12.0" } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", + "node_modules/portfinder/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, - "requires": { - "array-back": "^3.0.1" - }, + "license": "MIT", "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - } + "lodash": "^4.17.14" } }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, + "license": "MIT", "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } + "ms": "^2.1.1" } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/portfinder/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "requires": { - "color-convert": "^2.0.1" + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/prettier": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, - "requires": { - "sprintf-js": "~1.0.2" + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "array-back": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", - "dev": true - }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true - }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", - "requires": { - "follow-redirects": "^1.14.4" + "node_modules/prisma": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.1.0.tgz", + "integrity": "sha512-aFI3Yi+ApUxkwCJJwyQSwpyzUX7YX3ihzuHNHOyv4GJg3X5tQsmRaJEnZ+ZyfHpMtnyahhmXVfbTZ+lS8ZtfKw==", + "devOptional": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@prisma/engines": "6.1.0" + }, + "bin": { + "prisma": "build/index.js" + }, + "engines": { + "node": ">=18.18" + }, + "optionalDependencies": { + "fsevents": "2.3.3" } }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "node_modules/prisma-field-encryption": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/prisma-field-encryption/-/prisma-field-encryption-1.6.0.tgz", + "integrity": "sha512-JEKHyq5z0Wn6x74UtQN6n7ppXEGRq7ViyRophzELRAhCVnZv4JGrBOlrX4aWKiU+ZPL2BO9E1HxzcSjAN7pWKQ==", + "license": "MIT", + "dependencies": { + "@47ng/cloak": "^1.2.0", + "@prisma/generator-helper": "^5.9.1", + "debug": "^4.3.4", + "immer": "^10.0.3", + "object-path": "^0.11.8", + "zod": "^3.22.4" + }, + "bin": { + "prisma-field-encryption": "dist/generator/main.js" + }, + "peerDependencies": { + "@prisma/client": ">= 4.7" + } }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "node_modules/prisma/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true + "node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "bin-links": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-3.0.3.tgz", - "integrity": "sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==", - "dev": true, - "requires": { - "cmd-shim": "^5.0.0", - "mkdirp-infer-owner": "^2.0.0", - "npm-normalize-package-bin": "^2.0.0", - "read-cmd-shim": "^3.0.0", - "rimraf": "^3.0.0", - "write-file-atomic": "^4.0.0" - }, - "dependencies": { - "npm-normalize-package-bin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", - "dev": true - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - } + "node_modules/process": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", + "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==", + "engines": { + "node": ">= 0.6.0" } }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "node_modules/proggy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/proggy/-/proggy-2.0.0.tgz", + "integrity": "sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==", "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/promise-all-reject-late": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", + "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "braces": { + "node_modules/promise-call-limit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-3.0.2.tgz", + "integrity": "sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==", "dev": true, - "requires": { - "fill-range": "^7.0.1" + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true, + "license": "ISC" }, - "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" } }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/promise-retry/node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "license": "MIT", + "engines": { + "node": ">= 4" } }, - "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==", - "dev": true - }, - "builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "node_modules/promzard": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/promzard/-/promzard-1.0.2.tgz", + "integrity": "sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==", "dev": true, - "requires": { - "semver": "^7.0.0" + "license": "ISC", + "dependencies": { + "read": "^3.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "byte-size": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz", - "integrity": "sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A==", - "dev": true + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "license": "ISC" + }, + "node_modules/proto3-json-serializer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", + "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", + "license": "Apache-2.0", + "dependencies": { + "protobufjs": "^7.2.5" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/protocols": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", + "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - }, - "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" } }, - "cache-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", - "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", "dev": true, - "requires": { - "array-back": "^4.0.1", - "fs-then-native": "^2.0.0", - "mkdirp2": "^1.0.4" + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", - "dev": true - } + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" } }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, - "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" + "license": "ISC", + "engines": { + "node": ">=12" } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "caniuse-lite": { - "version": "1.0.30001427", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001427.tgz", - "integrity": "sha512-lfXQ73oB9c8DP5Suxaszm+Ta2sr/4tf8+381GkIm1MLj/YdLf+rEDyDSRCzeltuyTVGm+/s18gdZ0q+Wmp8VsQ==", - "dev": true + "node_modules/pumpify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz", + "integrity": "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==", + "license": "MIT", + "dependencies": { + "duplexify": "^4.1.1", + "inherits": "^2.0.3", + "pump": "^3.0.0" + } }, - "catharsis": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", - "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", - "dev": true, - "requires": { - "lodash": "^4.17.15" + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "node_modules/puppeteer-core": { + "version": "22.15.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.15.0.tgz", + "integrity": "sha512-cHArnywCiAAVXa3t4GGL2vttNxh7GqXtIYGym99egkNJ3oG//wL9LkvO4WE8W1TJe95t1F1ocu9X4xWaGsOKOA==", "dev": true, - "requires": { - "check-error": "^1.0.2" + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.3.0", + "chromium-bidi": "0.6.3", + "debug": "^4.3.6", + "devtools-protocol": "0.0.1312386", + "ws": "^8.18.0" + }, + "engines": { + "node": ">=18" } }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "license": "MIT", + "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 + } } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "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" + "node_modules/qs": { + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "clean-stack": { + "node_modules/querystringify": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT", + "peer": true }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true, + "license": "MIT" }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, + "license": "MIT", "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "cmd-shim": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz", - "integrity": "sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==", + "node_modules/raw-body/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, - "requires": { - "mkdirp-infer-owner": "^2.0.0" + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" } }, - "collect-all": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", - "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", + "node_modules/raw-body/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, - "requires": { - "stream-connect": "^1.0.2", - "stream-via": "^1.0.4" + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "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==", + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, - "requires": { - "color-name": "~1.1.4" + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" } }, - "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==", - "dev": true - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" - }, - "columnify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", - "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true, - "requires": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - } + "license": "ISC" }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, - "requires": { - "delayed-stream": "~1.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "requires": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - }, - "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true - } + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "command-line-tool": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", - "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", + "node_modules/react-confetti": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/react-confetti/-/react-confetti-6.2.2.tgz", + "integrity": "sha512-K+kTyOPgX+ZujMZ+Rmb7pZdHBvg+DzinG/w4Eh52WOB8/pfO38efnnrtEZNJmjTvLxc16RBYO+tPM68Fg8viBA==", "dev": true, - "requires": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "command-line-args": "^5.0.0", - "command-line-usage": "^4.1.0", - "typical": "^2.6.1" - }, + "license": "MIT", "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } + "tween-functions": "^1.2.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": "^16.3.0 || ^17.0.1 || ^18.0.0 || ^19.0.0" } }, - "command-line-usage": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "node_modules/react-docgen": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-7.1.0.tgz", + "integrity": "sha512-APPU8HB2uZnpl6Vt/+0AFoVYgSRtfiP6FLrZgPPTDmqSb2R4qZRbgd0A3VzIFxDt5e+Fozjx79WjLWnF69DK8g==", "dev": true, - "requires": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" - }, + "license": "MIT", "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } + "@babel/core": "^7.18.9", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9", + "@types/babel__core": "^7.18.0", + "@types/babel__traverse": "^7.18.0", + "@types/doctrine": "^0.0.9", + "@types/resolve": "^1.20.2", + "doctrine": "^3.0.0", + "resolve": "^1.22.1", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=16.14.0" } }, - "common-ancestor-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", - "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", - "dev": true - }, - "common-sequence": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", - "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true + "node_modules/react-docgen-typescript": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz", + "integrity": "sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": ">= 4.3.x" + } }, - "compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "node_modules/react-docgen/node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", "dev": true, - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", "dependencies": { - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - } + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" } }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, - "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" } }, - "config-master": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", - "integrity": "sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo=", + "node_modules/read": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/read/-/read-3.0.1.tgz", + "integrity": "sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==", "dev": true, - "requires": { - "walk-back": "^2.0.1" - }, + "license": "ISC", "dependencies": { - "walk-back": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", - "integrity": "sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ=", - "dev": true - } + "mute-stream": "^1.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "conventional-changelog-angular": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", - "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "node_modules/read-cmd-shim": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", + "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==", "dev": true, - "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "conventional-changelog-core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", - "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", "dev": true, - "requires": { - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^5.0.0", - "conventional-commits-parser": "^3.2.0", - "dateformat": "^3.0.0", - "get-pkg-repo": "^4.0.0", - "git-raw-commits": "^2.0.8", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^4.1.1", - "lodash": "^4.17.15", - "normalize-package-data": "^3.0.0", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^4.0.0" + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "conventional-changelog-preset-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", - "dev": true - }, - "conventional-changelog-writer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", - "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, - "requires": { - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", "dev": true, - "requires": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "conventional-commits-parser": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", - "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, - "requires": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.0.4", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "conventional-recommended-bump": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz", - "integrity": "sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==", + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, - "requires": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.3.4", - "conventional-commits-filter": "^2.0.7", - "conventional-commits-parser": "^3.2.0", - "git-raw-commits": "^2.0.8", - "git-semver-tags": "^4.1.1", - "meow": "^8.0.0", - "q": "^1.5.1" + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, - "requires": { - "safe-buffer": "~5.1.1" + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" } }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "dev": true, - "requires": { - "cross-spawn": "^7.0.1" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "node_modules/read-pkg/node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, - "requires": { - "ms": "2.1.2" + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, + "license": "BSD-2-Clause", "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true - } + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "node_modules/read-pkg/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, - "requires": { - "type-detect": "^4.0.0" + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" } }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "default-require-extensions": { + "node_modules/read-pkg/node_modules/path-type": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", - "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, - "requires": { - "strip-bom": "^4.0.0" + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, - "requires": { - "clone": "^1.0.2" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true + "node_modules/read-pkg/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "delegates": { + "node_modules/read/node_modules/mute-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true - }, - "deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", - "dev": true + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } }, - "detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "dev": true + "node_modules/readable-web-to-node-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "license": "MIT", + "peer": true, + "dependencies": { + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } }, - "dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", "dev": true, - "requires": { - "asap": "^2.0.0", - "wrappy": "1" + "license": "MIT", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/recast": { + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz", + "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==", "dev": true, - "requires": { - "path-type": "^4.0.0" + "license": "MIT", + "dependencies": { + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" } }, - "dmd": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.1.0.tgz", - "integrity": "sha512-0zQIJ873gay1scCTFZvHPWM9mVJBnaylB2NQDI8O9u8O32m00Jb6uxDKexZm8hjTRM7RiWe0FJ32pExHoXdwoQ==", + "node_modules/recast/node_modules/ast-types": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", "dev": true, - "requires": { - "array-back": "^6.2.2", - "cache-point": "^2.0.0", - "common-sequence": "^2.0.2", - "file-set": "^4.0.2", - "handlebars": "^4.7.7", - "marked": "^4.0.12", - "object-get": "^2.1.1", - "reduce-flatten": "^3.0.1", - "reduce-unique": "^2.0.1", - "reduce-without": "^1.0.1", - "test-value": "^3.0.0", - "walk-back": "^5.1.0" + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" } }, - "doctrine": { + "node_modules/redent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, - "requires": { - "esutils": "^2.0.2" + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "node_modules/reduce-flatten": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", + "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", "dev": true, - "requires": { - "is-obj": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", - "dev": true - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "node_modules/reduce-unique": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", + "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", "dev": true, - "requires": { - "jake": "^10.8.5" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, - "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==", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "node_modules/reduce-without": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", + "integrity": "sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==", "dev": true, - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - }, + "license": "MIT", "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" + "test-value": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "node_modules/reduce-without/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", "dev": true, - "requires": { - "ansi-colors": "^4.1.1" + "license": "MIT", + "dependencies": { + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" } }, - "entities": { + "node_modules/reduce-without/node_modules/test-value": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", + "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==", "dev": true, - "requires": { - "is-arrayish": "^0.2.1" + "license": "MIT", + "dependencies": { + "array-back": "^1.0.3", + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true + "node_modules/reduce-without/node_modules/typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true, + "license": "MIT" }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" }, - "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==", - "dev": true + "node_modules/registry-auth-token": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.3.tgz", + "integrity": "sha512-1bpc9IyC+e+CNFRaWyn77tk4xGG4PPUyfakSmA6F6cvUDjrm58dfyJ3II+9yb10EDkHoy1LaPSmHaWLOH3m6HA==", + "license": "MIT", + "dependencies": { + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" + } }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - } + "license": "MIT", + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "eslint-config-google": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz", - "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==", - "dev": true, - "requires": {} + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } }, - "eslint-config-prettier": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.4.0.tgz", - "integrity": "sha512-CFotdUcMY18nGRo5KGsnNxpznzhkopOcOo0InID+sgQssPrzjvsyKZPvOgymTFeHrFuC3Tzdf2YndhXtULK9Iw==", - "dev": true, - "requires": {} + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } }, - "eslint-plugin-no-loops": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-loops/-/eslint-plugin-no-loops-0.3.0.tgz", - "integrity": "sha1-6B/stOqvSUqSbZyrqafNhNH+3n0=", - "dev": true, - "requires": {} + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } }, - "eslint-plugin-notice": { - "version": "0.9.10", - "resolved": "https://registry.npmjs.org/eslint-plugin-notice/-/eslint-plugin-notice-0.9.10.tgz", - "integrity": "sha512-rF79EuqdJKu9hhTmwUkNeSvLmmq03m/NXq/NHwUENHbdJ0wtoyOjxZBhW4QCug8v5xYE6cGe3AWkGqSIe9KUbQ==", - "dev": true, - "requires": { - "find-root": "^1.1.0", - "lodash": "^4.17.15", - "metric-lcs": "^0.1.2" + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" } }, - "eslint-plugin-prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", - "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "license": "MIT", + "bin": { + "uuid": "bin/uuid" } }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, + "node_modules/require-in-the-middle": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz", + "integrity": "sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg==", + "license": "MIT", "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "debug": "^4.1.1", + "module-details-from-path": "^1.0.3", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=6" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT", + "peer": true }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "node_modules/requizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz", + "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==", "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, + "license": "MIT", "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } + "lodash": "^4.17.21" } }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "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==", - "dev": true + "node_modules/resolve-path": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", + "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "http-errors": "~1.6.2", + "path-is-absolute": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true + "node_modules/resolve-path/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "node_modules/resolve-path/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "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==", - "dev": true + "node_modules/resolve-path/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "node_modules/resolve-path/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true, + "license": "ISC" }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, - "requires": { - "reusify": "^1.0.4" + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - }, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - } + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, - "requires": { - "flat-cache": "^3.0.4" + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" } }, - "file-set": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", - "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", + "node_modules/restore-cursor/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==", "dev": true, - "requires": { - "array-back": "^5.0.0", - "glob": "^7.1.6" + "license": "ISC" + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/retry-axios": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/retry-axios/-/retry-axios-2.6.0.tgz", + "integrity": "sha512-pOLi+Gdll3JekwuFjXO3fTq+L9lzMQGcSq7M5gIjExcl3Gu1hd4XXuf5o3+LuSBsaULQH7DiNbsqPd1chVpQGQ==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=10.7.0" }, + "peerDependencies": { + "axios": "*" + } + }, + "node_modules/retry-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz", + "integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==", + "license": "MIT", "dependencies": { - "array-back": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", - "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", - "dev": true - } + "@types/request": "^2.48.8", + "extend": "^3.0.2", + "teeny-request": "^9.0.0" + }, + "engines": { + "node": ">=14" } }, - "filelist": { + "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "requires": { - "minimatch": "^5.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "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==", + "node_modules/rimraf": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", "dev": true, - "requires": { - "to-regex-range": "^5.0.1" + "license": "ISC", + "dependencies": { + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "node_modules/rimraf/node_modules/glob": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "node_modules/rimraf/node_modules/jackspeak": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", "dev": true, - "requires": { - "array-back": "^3.0.1" - }, + "license": "BlueOak-1.0.0", "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true - } + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/rimraf/node_modules/lru-cache": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "license": "ISC", + "engines": { + "node": "20 || >=22" } }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "node_modules/rimraf/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "foreground-child": { + "node_modules/rimraf/node_modules/path-scurry": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "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==", + "node_modules/rollup": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.29.1.tgz", + "integrity": "sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==", "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.29.1", + "@rollup/rollup-android-arm64": "4.29.1", + "@rollup/rollup-darwin-arm64": "4.29.1", + "@rollup/rollup-darwin-x64": "4.29.1", + "@rollup/rollup-freebsd-arm64": "4.29.1", + "@rollup/rollup-freebsd-x64": "4.29.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.29.1", + "@rollup/rollup-linux-arm-musleabihf": "4.29.1", + "@rollup/rollup-linux-arm64-gnu": "4.29.1", + "@rollup/rollup-linux-arm64-musl": "4.29.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.29.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.29.1", + "@rollup/rollup-linux-riscv64-gnu": "4.29.1", + "@rollup/rollup-linux-s390x-gnu": "4.29.1", + "@rollup/rollup-linux-x64-gnu": "4.29.1", + "@rollup/rollup-linux-x64-musl": "4.29.1", + "@rollup/rollup-win32-arm64-msvc": "4.29.1", + "@rollup/rollup-win32-ia32-msvc": "4.29.1", + "@rollup/rollup-win32-x64-msvc": "4.29.1", + "fsevents": "~2.3.2" } }, - "fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true + "node_modules/router": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.0.0.tgz", + "integrity": "sha512-dIM5zVoG8xhC6rnSN8uoAgFARwTE7BQs8YwHEvK0VCmfxQXMaOuA1uiR1IPwsW7JyK5iTt7Od/TC9StasS2NPQ==", + "license": "MIT", + "dependencies": { + "array-flatten": "3.0.0", + "is-promise": "4.0.0", + "methods": "~1.1.2", + "parseurl": "~1.3.3", + "path-to-regexp": "^8.0.0", + "setprototypeof": "1.2.0", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10" + } }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, - "requires": { - "minipass": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=0.12.0" } }, - "fs-then-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", - "integrity": "sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "optional": true + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "node_modules/s-ago": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/s-ago/-/s-ago-2.2.0.tgz", + "integrity": "sha512-t6Q/aFCCJSBf5UUkR/WH0mDHX8EGm2IBQ7nQLobVLsdxOlkryYMbOlwu2D4Cf7jPUp0v1LhfPgvIZNoi9k8lUA==", + "license": "MIT" }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true + "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" + } + ], + "license": "MIT" }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" } }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "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==", - "dev": true + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true + "node_modules/scmp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/scmp/-/scmp-2.1.0.tgz", + "integrity": "sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==", + "license": "BSD-3-Clause" }, - "get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", - "dev": true, - "requires": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.1.0.tgz", + "integrity": "sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==", + "license": "MIT", "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } + "debug": "^4.3.5", + "destroy": "^1.2.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "http-errors": "^2.0.0", + "mime-types": "^2.1.35", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" } }, - "get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true + "node_modules/send/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } }, - "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==", - "dev": true + "node_modules/send/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } }, - "git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", - "dev": true, - "requires": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", - "dev": true, - "requires": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "license": "MIT", "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - } + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" } }, - "git-semver-tags": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", - "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, - "requires": { - "meow": "^8.0.0", - "semver": "^6.0.0" - }, + "license": "BSD-3-Clause", "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "randombytes": "^2.1.0" } }, - "git-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", - "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", + "node_modules/serve": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.4.tgz", + "integrity": "sha512-qy1S34PJ/fcY8gjVGszDB3EXiPSk5FKhUa7tQe0UPRddxRidc2V6cNHPNewbE1D7MAkgLuWEt3Vw56vYy73tzQ==", "dev": true, - "requires": { - "is-ssh": "^1.4.0", - "parse-url": "^8.1.0" + "license": "MIT", + "dependencies": { + "@zeit/schemas": "2.36.0", + "ajv": "8.12.0", + "arg": "5.0.2", + "boxen": "7.0.0", + "chalk": "5.0.1", + "chalk-template": "0.4.0", + "clipboardy": "3.0.0", + "compression": "1.7.4", + "is-port-reachable": "4.0.0", + "serve-handler": "6.1.6", + "update-check": "1.5.4" + }, + "bin": { + "serve": "build/main.js" + }, + "engines": { + "node": ">= 14" } }, - "git-url-parse": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz", - "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==", + "node_modules/serve-handler": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", + "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", "dev": true, - "requires": { - "git-up": "^7.0.0" + "license": "MIT", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "3.3.0", + "range-parser": "1.2.0" } }, - "gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", + "node_modules/serve-handler/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "requires": { - "ini": "^1.3.2" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "node_modules/serve-handler/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/serve-handler/node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", "dev": true, - "requires": { - "is-glob": "^4.0.1" + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "node_modules/serve-handler/node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", "dev": true, - "requires": { - "type-fest": "^0.20.2" + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/serve-handler/node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "license": "MIT", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" } }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "grpc_tools_node_protoc_ts": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/grpc_tools_node_protoc_ts/-/grpc_tools_node_protoc_ts-5.2.2.tgz", - "integrity": "sha512-j8waJdU9uzNSyYJfEAGFFJdxP2C3k7RNkgI1dXxLB/iaT+D54p/RX1Wo+cHH2wPhBSE8hnv+BUv7HuEVT/XLPw==", + "node_modules/serve-handler/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "requires": { - "google-protobuf": "3.15.8", - "handlebars": "4.7.7" - }, + "license": "ISC", "dependencies": { - "google-protobuf": { - "version": "3.15.8", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.15.8.tgz", - "integrity": "sha512-2jtfdqTaSxk0cuBJBtTTWsot4WtR9RVr2rXg7x7OoqiuOKopPrwXpM1G4dXIkLcUNRh3RKzz76C8IOkksZSeOw==", - "dev": true - } + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "grpc-tools": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/grpc-tools/-/grpc-tools-1.11.3.tgz", - "integrity": "sha512-cRSK2uhDKHtZ9hLRM35HxaMAMxyh/L7C96Ojt58DhQBdwTOQlV1VIJHSK6X/pDeSQKhaQqWMFfebt8tIcvRfjQ==", + "node_modules/serve-handler/node_modules/path-to-regexp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", "dev": true, - "requires": { - "@mapbox/node-pre-gyp": "^1.0.5" - } + "license": "MIT" }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "node_modules/serve-handler/node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "hard-rejection": { + "node_modules/serve-static": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.1.0.tgz", + "integrity": "sha512-A3We5UfEjG8Z7VkDv6uItWw6HY2bBSBJT1KtVESn6EOoOr2jAxNhxWCLY3jDE2WcuHXByWju74ck3ZgLwL8xmA==", + "license": "MIT", "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.0.0" + }, + "engines": { + "node": ">= 18" } }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "node_modules/serve/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "https-proxy-agent": { + "node_modules/serve/node_modules/chalk": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", + "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true + "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==", + "dev": true, + "license": "ISC" }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, - "requires": { - "ms": "^2.0.0" + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "husky": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz", - "integrity": "sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==", - "dev": true + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" } }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" } }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" + "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==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true + "node_modules/shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", + "license": "BSD-2-Clause" }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" + "node_modules/shred": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/shred/-/shred-0.8.10.tgz", + "integrity": "sha512-DQHh3pS3uroW6Okv66lHm6FTh0RPR+cBVveRS8XpH18MW4wr6fMQTfHUawBqKP4laIvSE1ENtkWvaSPmYXaqMA==", + "dependencies": { + "ax": "0.1.8", + "cookiejar": "1.3.1", + "iconv-lite": ">= 0.1.2", + "sprintf": "0.1.1" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "init-package-json": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-3.0.2.tgz", - "integrity": "sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A==", - "dev": true, - "requires": { - "npm-package-arg": "^9.0.1", - "promzard": "^0.3.0", - "read": "^1.0.7", - "read-package-json": "^5.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^4.0.0" + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", "dependencies": { - "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - }, - "npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "requires": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - } - } + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", - "dev": true + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "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==", + "node_modules/sigstore": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", + "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", "dev": true, - "requires": { - "binary-extensions": "^2.0.0" + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "is-ci": { + "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==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/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==", + "license": "MIT" + }, + "node_modules/simple-update-notifier": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, - "requires": { - "ci-info": "^2.0.0" + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" } }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "node_modules/sinon": { + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-19.0.2.tgz", + "integrity": "sha512-euuToqM+PjO4UgXeLETsfQiuoyPXlqFezr6YZDFwHR3t4qaX0fZUe1MfPMznTL5f8BWrVS89KduLdMUsxFCO6g==", "dev": true, - "requires": { - "has": "^1.0.3" + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.1", + "@sinonjs/fake-timers": "^13.0.2", + "@sinonjs/samsam": "^8.0.1", + "diff": "^7.0.0", + "nise": "^6.1.1", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" } }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "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==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/sinon-chai": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-4.0.0.tgz", + "integrity": "sha512-cWqO7O2I4XfJDWyWElAQ9D/dtdh5Mo0RHndsfiiYyjWnlPzBJdIvjCVURO4EjyYaC3BjV+ISNXCfTXPXTEIEWA==", "dev": true, - "requires": { - "is-extglob": "^2.1.1" + "license": "(BSD-2-Clause OR WTFPL)", + "peerDependencies": { + "chai": "^5.0.0", + "sinon": ">=4.0.0" } }, - "is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "is-number": { + "node_modules/sinon/node_modules/diff": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, - "is-ssh": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", - "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", + "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", + "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", "dev": true, - "requires": { - "protocols": "^2.0.1" + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" } }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "node_modules/sinon/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "text-extensions": "^1.0.0" + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "node_modules/slice-ansi/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, - "requires": { - "is-docker": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "node_modules/smob": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", + "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", + "dev": true, + "license": "MIT" }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } }, - "istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "dev": true, - "requires": { - "append-transform": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">= 14" } }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "node_modules/sort-array": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-5.0.0.tgz", + "integrity": "sha512-Sg9MzajSGprcSrMIxsXyNT0e0JB47RJRfJspC+7co4Z5BdNsNl8FmWI+lXEpyKq+vkMG6pHgAhqyCO+bkDTfFQ==", "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, + "license": "MIT", "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "array-back": "^6.2.2", + "typical": "^7.1.1" + }, + "engines": { + "node": ">=12.17" + }, + "peerDependencies": { + "@75lb/nature": "^0.1.1" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true } } }, - "istanbul-lib-processinfo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", - "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "node_modules/sort-array/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.0", - "istanbul-lib-coverage": "^3.0.0-alpha.1", - "make-dir": "^3.0.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^3.3.3" - }, - "dependencies": { - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - } + "license": "MIT", + "engines": { + "node": ">=12.17" } }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "node_modules/sort-array/node_modules/typical": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz", + "integrity": "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==", "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "license": "MIT", + "engines": { + "node": ">=12.17" } }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "node_modules/sort-keys/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "dev": true, - "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" + "node_modules/sort-object-keys": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz", + "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", + "license": "MIT" + }, + "node_modules/sort-package-json": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/sort-package-json/-/sort-package-json-2.12.0.tgz", + "integrity": "sha512-/HrPQAeeLaa+vbAH/znjuhwUluuiM/zL5XX9kop8UpDgjtyWKt43hGDk2vd/TBdDpzIyzIHVUgmYofzYrAQjew==", + "license": "MIT", + "dependencies": { + "detect-indent": "^7.0.1", + "detect-newline": "^4.0.0", + "get-stdin": "^9.0.0", + "git-hooks-list": "^3.0.0", + "is-plain-obj": "^4.1.0", + "semver": "^7.6.0", + "sort-object-keys": "^1.1.3", + "tinyglobby": "^0.2.9" + }, + "bin": { + "sort-package-json": "cli.js" } }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "js2xmlparser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", - "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "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==", "dev": true, - "requires": { - "xmlcreate": "^2.0.4" + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "jsdoc": { - "version": "3.6.10", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.10.tgz", - "integrity": "sha512-IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==", - "dev": true, - "requires": { - "@babel/parser": "^7.9.4", - "@types/markdown-it": "^12.2.3", - "bluebird": "^3.7.2", - "catharsis": "^0.9.0", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.2", - "klaw": "^4.0.1", - "markdown-it": "^12.3.2", - "markdown-it-anchor": "^8.4.1", - "marked": "^4.0.10", - "mkdirp": "^1.0.4", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.1.0", - "taffydb": "2.6.2", - "underscore": "~1.13.2" - }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "license": "Apache-2.0", "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "jsdoc-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-7.1.1.tgz", - "integrity": "sha512-0pkuPCzVXiqsDAsVrNFXCkHzlyNepBIDVtwwehry4RJAnZmXtlAz7rh8F9FRz53u3NeynGbex+bpYWwi8lE66A==", - "dev": true, - "requires": { - "array-back": "^6.2.2", - "cache-point": "^2.0.0", - "collect-all": "^1.0.4", - "file-set": "^4.0.2", - "fs-then-native": "^2.0.0", - "jsdoc": "^3.6.10", - "object-to-spawn-args": "^2.0.1", - "temp-path": "^1.0.0", - "walk-back": "^5.1.0" + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "jsdoc-parse": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.1.0.tgz", - "integrity": "sha512-n/hDGQJa69IBun1yZAjqzV4gVR41+flZ3bIlm9fKvNe2Xjsd1/+zCo2+R9ls8LxtePgIWbpA1jU7xkB2lRdLLg==", + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "license": "CC0-1.0" + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, - "requires": { - "array-back": "^6.2.2", - "lodash.omit": "^4.5.0", - "lodash.pick": "^4.4.0", - "reduce-extract": "^1.0.0", - "sort-array": "^4.1.4", - "test-value": "^3.0.0" + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" } }, - "jsdoc-to-markdown": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-7.1.1.tgz", - "integrity": "sha512-CI86d63xAVNO+ENumWwmJ034lYe5iGU5GwjtTA11EuphP9tpnoi4hrKgR/J8uME0D+o4KUpVfwX1fjZhc8dEtg==", + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "dev": true, - "requires": { - "array-back": "^6.2.2", - "command-line-tool": "^0.8.0", - "config-master": "^3.1.0", - "dmd": "^6.1.0", - "jsdoc-api": "^7.1.1", - "jsdoc-parse": "^6.1.0", - "walk-back": "^5.1.0" + "license": "ISC", + "engines": { + "node": ">= 10.x" } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "node_modules/sprintf": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/sprintf/-/sprintf-0.1.1.tgz", + "integrity": "sha512-4tw3/d54Ob/sMSkU2j+XhSCUhnXW0iWw3ztub6KvMeGC4SCMagADLuLinz8emveQgwmz197rAvVZQFA2vCCJCw==", + "deprecated": "The sprintf package is deprecated in favor of sprintf-js.", + "engines": { + "node": ">=0.2.4" + } }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } }, - "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==", - "dev": true + "node_modules/sshpk/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "license": "MIT" }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "node_modules/sshpk/node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "license": "Unlicense" }, - "json-stringify-nice": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", - "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", - "dev": true + "node_modules/ssri": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "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==", - "dev": true + "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==", + "license": "MIT", + "engines": { + "node": "*" + } }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true + "node_modules/storybook": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.4.7.tgz", + "integrity": "sha512-RP/nMJxiWyFc8EVMH5gp20ID032Wvk+Yr3lmKidoegto5Iy+2dVQnUoElZb2zpbVXNHWakGuAkfI0dY1Hfp/vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/core": "8.4.7" + }, + "bin": { + "getstorybook": "bin/index.cjs", + "sb": "bin/index.cjs", + "storybook": "bin/index.cjs" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "prettier": "^2 || ^3" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } + } }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/stream-connect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", + "integrity": "sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" + "license": "MIT", + "dependencies": { + "array-back": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true + "node_modules/stream-connect/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" + } }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "node_modules/stream-connect/node_modules/typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "license": "MIT" + }, + "node_modules/stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "license": "MIT", + "dependencies": { + "stubs": "^3.0.0" } }, - "just-diff": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz", - "integrity": "sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ==", - "dev": true + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "license": "MIT" }, - "just-diff-apply": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz", - "integrity": "sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g==", - "dev": true + "node_modules/stream-via": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", + "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true + "node_modules/streamx": { + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.1.tgz", + "integrity": "sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } }, - "klaw": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", - "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==", - "dev": true + "node_modules/string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==" }, - "lerna": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-6.1.0.tgz", - "integrity": "sha512-3qAjIj8dgBwHtCAiLbq4VU/C1V9D1tvTLm2owZubdGAN72aB5TxuCu2mcw+yeEorOcXuR9YWx7EXIkAf+G0N2w==", - "dev": true, - "requires": { - "@lerna/add": "6.1.0", - "@lerna/bootstrap": "6.1.0", - "@lerna/changed": "6.1.0", - "@lerna/clean": "6.1.0", - "@lerna/cli": "6.1.0", - "@lerna/command": "6.1.0", - "@lerna/create": "6.1.0", - "@lerna/diff": "6.1.0", - "@lerna/exec": "6.1.0", - "@lerna/import": "6.1.0", - "@lerna/info": "6.1.0", - "@lerna/init": "6.1.0", - "@lerna/link": "6.1.0", - "@lerna/list": "6.1.0", - "@lerna/publish": "6.1.0", - "@lerna/run": "6.1.0", - "@lerna/version": "6.1.0", - "@nrwl/devkit": ">=14.8.6 < 16", - "import-local": "^3.0.2", - "inquirer": "^8.2.4", - "npmlog": "^6.0.2", - "nx": ">=14.8.6 < 16", - "typescript": "^3 || ^4" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.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==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "lerna-audit": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/lerna-audit/-/lerna-audit-1.3.3.tgz", - "integrity": "sha512-EAtY/dhPXHR76zQiJuiHDyFvtxfcH6HmMuATS3Aez6FbCny91YLIhPmDAC6aBwkGiD4lAllKlDXAya6w58Ktug==", - "dev": true, - "requires": { - "yargs": "^15.4.1" - }, - "dependencies": { - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "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==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "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==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "node_modules/string-width-cjs": { + "name": "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==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "libnpmaccess": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-6.0.4.tgz", - "integrity": "sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag==", - "dev": true, - "requires": { - "aproba": "^2.0.0", - "minipass": "^3.1.1", - "npm-package-arg": "^9.0.1", - "npm-registry-fetch": "^13.0.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - }, - "npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "requires": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - } - } + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "libnpmpublish": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-6.0.5.tgz", - "integrity": "sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg==", + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "requires": { - "normalize-package-data": "^4.0.0", - "npm-package-arg": "^9.0.1", - "npm-registry-fetch": "^13.0.0", - "semver": "^7.3.7", - "ssri": "^9.0.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - } - } - }, - "normalize-package-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", - "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", - "dev": true, - "requires": { - "hosted-git-info": "^5.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - } - }, - "npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "requires": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "license": "MIT", + "engines": { + "node": ">=8" } }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "load-json-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", - "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "parse-json": "^5.0.0", - "strip-bom": "^4.0.0", - "type-fest": "^0.6.0" - }, + "license": "MIT", "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" } }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "requires": { - "p-locate": "^5.0.0" + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "license": "MIT" }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true + "node_modules/strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + }, + "bin": { + "sl-log-transformer": "bin/sl-log-transformer.js" + }, + "engines": { + "node": ">=4" + } }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true + "node_modules/strtok3": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", + "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } }, - "lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true + "node_modules/stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==", + "license": "MIT" }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" }, - "lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", - "dev": true + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } }, - "lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "dev": true + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "dev": true + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/swagger-client": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-2.0.26.tgz", + "integrity": "sha512-sClCI4QlqdRaiwofgwKIc4wsja4yxJph3ZkRF+gi/84ygAjx1q+c2ZHTfp3Ac0qe6JFGj3KIDEP/+GZzWnrY8A==", + "deprecated": "No longer maintained, please upgrade to swagger-client@3.", + "license": "apache 2.0", + "dependencies": { + "btoa": "1.1.1", + "shred": "0.8.10" + }, + "engines": { + "node": ">= 0.6.6" + } + }, + "node_modules/table-layout": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz", + "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==", "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "license": "MIT", + "dependencies": { + "array-back": "^6.2.2", + "wordwrapjs": "^5.1.0" + }, + "engines": { + "node": ">=12.17" } }, - "loupe": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", - "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "node_modules/table-layout/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, - "requires": { - "get-func-name": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=12.17" } }, - "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==", + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/tar-fs": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz", + "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==", "dev": true, - "requires": { - "semver": "^6.0.0" - }, + "license": "MIT", "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" } }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "node_modules/tar-fs/node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, + "license": "MIT", "dependencies": { - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - } + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true - }, - "markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, - "requires": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, + "license": "MIT", "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - } + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" } }, - "markdown-it-anchor": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz", - "integrity": "sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==", + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, - "requires": {} - }, - "marked": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", - "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", - "dev": true - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", - "dev": true + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } }, - "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, + "license": "ISC", "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "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==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - } + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "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==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "metric-lcs": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/metric-lcs/-/metric-lcs-0.1.2.tgz", - "integrity": "sha512-+TZ5dUDPKPJaU/rscTzxyN8ZkX7eAVLAiQU/e+YINleXPv03SCmJShaMT1If1liTH8OcmWXZs0CmzCBRBLcMpA==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "license": "ISC", + "engines": { + "node": ">=8" } }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true + "node_modules/teeny-request": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz", + "integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==", + "license": "Apache-2.0", + "dependencies": { + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.9", + "stream-events": "^1.0.5", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=14" + } }, - "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==", - "dev": true, - "requires": { - "mime-db": "1.52.0" + "node_modules/teeny-request/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "node_modules/teeny-request/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true + "node_modules/teeny-request/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" + "node_modules/teeny-request/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" } }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "node_modules/teeny-request/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" + "node_modules/teeny-request/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", + "node_modules/temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", "dev": true, - "requires": { - "yallist": "^4.0.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "node_modules/temp-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", + "integrity": "sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==", "dev": true, - "requires": { - "minipass": "^3.0.0" - } + "license": "MIT" }, - "minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "node_modules/terminal-link": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-3.0.0.tgz", + "integrity": "sha512-flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^5.0.0", + "supports-hyperlinks": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "requires": { - "minipass": "^3.0.0" + "node_modules/terminal-link/node_modules/ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "license": "MIT", + "dependencies": { + "type-fest": "^1.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "requires": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" + "node_modules/terminal-link/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "node_modules/terser": { + "version": "5.37.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", + "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", "dev": true, - "requires": { - "minipass": "^3.0.0" + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, - "requires": { - "minipass": "^3.0.0" - } + "license": "MIT" }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "node_modules/test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "license": "MIT", + "dependencies": { + "array-back": "^2.0.0", + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "mkdirp-infer-owner": { + "node_modules/test-value/node_modules/array-back": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", - "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", "dev": true, - "requires": { - "chownr": "^2.0.0", - "infer-owner": "^1.0.4", - "mkdirp": "^1.0.3" + "license": "MIT", + "dependencies": { + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" } }, - "mkdirp2": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.5.tgz", - "integrity": "sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==", - "dev": true + "node_modules/test-value/node_modules/typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", + "dev": true, + "license": "MIT" }, - "mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", - "dev": true, - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.3", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "4.2.1", - "ms": "2.1.3", - "nanoid": "3.3.1", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" } }, - "modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "multimatch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "node_modules/text-extensions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", "dev": true, - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" + "license": "MIT", + "engines": { + "node": ">=8" }, - "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true + "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==", + "license": "MIT" }, - "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", - "dev": true + "node_modules/thriftrw": { + "version": "3.11.4", + "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.11.4.tgz", + "integrity": "sha512-UcuBd3eanB3T10nXWRRMwfwoaC6VMk7qe3/5YIWP2Jtw+EbHqJ0p1/K3x8ixiR5dozKSSfcg1W+0e33G1Di3XA==", + "dependencies": { + "bufrw": "^1.2.1", + "error": "7.0.2", + "long": "^2.4.0" + }, + "bin": { + "thrift2json": "thrift2json.js" + }, + "engines": { + "node": ">= 0.10.x" + } }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "node_modules/thriftrw/node_modules/long": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", + "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.6" + } }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } }, - "nise": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz", - "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==", + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^6.0.0", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "requires": { - "whatwg-url": "^5.0.0" + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "node-gyp": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.0.tgz", - "integrity": "sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q==", + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", "dev": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", - "dev": true, - "requires": { - "abbrev": "^1.0.0" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } - } + "license": "MIT" }, - "node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", - "dev": true + "node_modules/tiny-jsonc": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tiny-jsonc/-/tiny-jsonc-1.0.1.tgz", + "integrity": "sha512-ik6BCxzva9DoiEfDX/li0L2cWKPPENYvixUprFdl3YPi4bZZUhDnNI9YUkacrv+uIG90dnxR5mNqaoD6UhD6Bw==" }, - "node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "node_modules/tinyexec": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz", + "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz", + "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==", + "license": "MIT", + "dependencies": { + "fdir": "^6.4.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", "dev": true, - "requires": { - "process-on-spawn": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=14.0.0" } }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "nodemon": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", - "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", "dev": true, - "requires": { - "chokidar": "^3.5.2", - "debug": "^3.2.7", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" }, + "engines": { + "node": ">=0.6.0" + } + }, + "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==", + "license": "MIT", "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "requires": { - "abbrev": "1" + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" } }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "node_modules/token-types": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", + "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" } }, - "normalize-path": { + "node_modules/toml": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", + "license": "MIT" }, - "npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "node_modules/touch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", "dev": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" } }, - "npm-install-checks": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-5.0.0.tgz", - "integrity": "sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA==", - "dev": true, - "requires": { - "semver": "^7.1.1" + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" } }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "npm-package-arg": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.1.tgz", - "integrity": "sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg==", - "dev": true, - "requires": { - "hosted-git-info": "^3.0.6", - "semver": "^7.0.0", - "validate-npm-package-name": "^3.0.0" - }, - "dependencies": { - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true - }, - "hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "dev": true, - "requires": { - "builtins": "^1.0.3" - } - } + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 4.0.0" } }, - "npm-packlist": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", - "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", + "node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", "dev": true, - "requires": { - "glob": "^8.0.1", - "ignore-walk": "^5.0.1", - "npm-bundled": "^2.0.0", - "npm-normalize-package-bin": "^2.0.0" - }, + "license": "MIT", "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "ignore-walk": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", - "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", - "dev": true, - "requires": { - "minimatch": "^5.0.1" - } - }, - "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "npm-bundled": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz", - "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", - "dev": true, - "requires": { - "npm-normalize-package-bin": "^2.0.0" - } - }, - "npm-normalize-package-bin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", - "dev": true - } + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" } }, - "npm-pick-manifest": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz", - "integrity": "sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw==", + "node_modules/treeverse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz", + "integrity": "sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==", "dev": true, - "requires": { - "npm-install-checks": "^5.0.0", - "npm-normalize-package-bin": "^2.0.0", - "npm-package-arg": "^9.0.0", - "semver": "^7.3.5" - }, - "dependencies": { - "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - }, - "npm-normalize-package-bin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", - "dev": true - }, - "npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "requires": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - } - } + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "npm-registry-fetch": { - "version": "13.3.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz", - "integrity": "sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==", + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, - "requires": { - "make-fetch-happen": "^10.0.6", - "minipass": "^3.1.6", - "minipass-fetch": "^2.0.3", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^9.0.1", - "proc-log": "^2.0.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - }, - "npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "requires": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - } - } + "license": "MIT", + "engines": { + "node": ">=8" } }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" } }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", "dev": true, - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=6.10" } }, - "nx": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/nx/-/nx-15.2.4.tgz", - "integrity": "sha512-8rTLo5WGmM6hEo5R/u03Jllkyj4vIUbBk2MRAppCvVRXWLS4xJUEOityXJ5BAvaKoLYm6sWUP1gqU7xlldnT5A==", + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, - "requires": { - "@nrwl/cli": "15.2.4", - "@nrwl/tao": "15.2.4", - "@parcel/watcher": "2.0.4", - "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "^3.0.0-rc.18", - "@zkochan/js-yaml": "0.0.6", - "axios": "^1.0.0", - "chalk": "4.1.0", - "chokidar": "^3.5.1", - "cli-cursor": "3.1.0", - "cli-spinners": "2.6.1", - "cliui": "^7.0.2", - "dotenv": "~10.0.0", - "enquirer": "~2.3.6", - "fast-glob": "3.2.7", - "figures": "3.2.0", - "flat": "^5.0.2", - "fs-extra": "^10.1.0", - "glob": "7.1.4", - "ignore": "^5.0.4", - "js-yaml": "4.1.0", - "jsonc-parser": "3.2.0", - "minimatch": "3.0.5", - "npm-run-path": "^4.0.1", - "open": "^8.4.0", - "semver": "7.3.4", - "string-width": "^4.2.3", - "strong-log-transformer": "^2.1.0", - "tar-stream": "~2.2.0", - "tmp": "~0.2.1", - "tsconfig-paths": "^3.9.0", - "tslib": "^2.3.0", - "v8-compile-cache": "2.3.0", - "yargs": "^17.6.2", - "yargs-parser": "21.1.1" - }, + "license": "MIT", "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "axios": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.0.tgz", - "integrity": "sha512-zT7wZyNYu3N5Bu0wuZ6QccIf93Qk1eV8LOewxgjOZFd2DenOs98cJ7+Y6703d0wkaXGY6/nZd4EweJaHz9uzQw==", - "dev": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "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==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "dependencies": { - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - } - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "dependencies": { - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "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==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "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==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "license": "MIT", + "engines": { + "node": ">=4" } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-get": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", - "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", - "dev": true - }, - "object-to-spawn-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz", - "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==", - "dev": true + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", "dev": true, - "requires": { - "wrappy": "1" + "license": "MIT", + "engines": { + "node": ">=0.6.x" } }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/tsx": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.2.tgz", + "integrity": "sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==", "dev": true, - "requires": { - "mimic-fn": "^2.1.0" + "license": "MIT", + "dependencies": { + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" } }, - "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "node_modules/tsx/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], "dev": true, - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" } }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", + "cpu": [ + "arm" + ], "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", + "cpu": [ + "arm64" + ], "dev": true, - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "yocto-queue": "^0.1.0" + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" } }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", + "cpu": [ + "arm64" + ], "dev": true, - "requires": { - "p-limit": "^3.0.2" + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" } }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "aggregate-error": "^3.0.0" + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" } }, - "p-map-series": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", - "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", - "dev": true - }, - "p-pipe": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", - "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", - "dev": true - }, - "p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", + "cpu": [ + "arm64" + ], "dev": true, - "requires": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" } }, - "p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", - "dev": true - }, - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "p-finally": "^1.0.0" + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" } }, - "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==", - "dev": true - }, - "p-waterfall": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", - "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", + "cpu": [ + "arm" + ], "dev": true, - "requires": { - "p-reduce": "^2.0.0" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", + "cpu": [ + "arm64" + ], "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, - "pacote": { - "version": "13.6.2", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.2.tgz", - "integrity": "sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==", - "dev": true, - "requires": { - "@npmcli/git": "^3.0.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/promise-spawn": "^3.0.0", - "@npmcli/run-script": "^4.1.0", - "cacache": "^16.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.6", - "mkdirp": "^1.0.4", - "npm-package-arg": "^9.0.0", - "npm-packlist": "^5.1.0", - "npm-pick-manifest": "^7.0.0", - "npm-registry-fetch": "^13.0.1", - "proc-log": "^2.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^5.0.0", - "read-package-json-fast": "^2.0.3", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11" - }, - "dependencies": { - "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - }, - "npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", - "dev": true, - "requires": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - } - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", + "cpu": [ + "ia32" + ], "dev": true, - "requires": { - "callsites": "^3.0.0" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "parse-conflict-json": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz", - "integrity": "sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==", + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", + "cpu": [ + "loong64" + ], "dev": true, - "requires": { - "json-parse-even-better-errors": "^2.3.1", - "just-diff": "^5.0.1", - "just-diff-apply": "^5.2.0" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", + "cpu": [ + "mips64el" + ], "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "parse-path": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", - "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", + "cpu": [ + "ppc64" + ], "dev": true, - "requires": { - "protocols": "^2.0.0" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "parse-url": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", - "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", + "cpu": [ + "riscv64" + ], "dev": true, - "requires": { - "parse-path": "^7.0.0" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "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==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", + "cpu": [ + "s390x" + ], "dev": true, - "requires": { - "isarray": "0.0.1" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "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==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", - "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", - "dev": true + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "fast-diff": "^1.1.2" + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, - "proc-log": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", - "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "node_modules/tsx/node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], "dev": true, - "requires": { - "fromentries": "^1.2.0" + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise-all-reject-late": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", - "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", - "dev": true - }, - "promise-call-limit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.1.tgz", - "integrity": "sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "promzard": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "integrity": "sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==", + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "read": "1" + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" } }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } }, - "protocols": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", - "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", - "dev": true + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } }, - "pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true + "node_modules/tsx/node_modules/esbuild": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" + } + }, + "node_modules/tsx/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "node_modules/tuf-js": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "2.0.1", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "dev": true + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true + "node_modules/tween-functions": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz", + "integrity": "sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==", + "dev": true, + "license": "BSD" }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, + "node_modules/twilio": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/twilio/-/twilio-5.4.0.tgz", + "integrity": "sha512-kEmxzdOLTzXzUEXIkBVwT1Itxlbp+rtGrQogNfPtSE3EjoEsxrxB/9tdMIEbrsioL8CzTk/+fiKNJekAyHxjuQ==", + "license": "MIT", + "dependencies": { + "axios": "^1.7.4", + "dayjs": "^1.11.9", + "https-proxy-agent": "^5.0.0", + "jsonwebtoken": "^9.0.2", + "qs": "^6.9.4", + "scmp": "^2.1.0", + "xmlbuilder": "^13.0.2" + }, + "engines": { + "node": ">=14.0" + } }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, - "requires": { - "safe-buffer": "^5.1.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", - "dev": true, - "requires": { - "mute-stream": "~0.0.4" + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "read-cmd-shim": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz", - "integrity": "sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==", - "dev": true + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } }, - "read-package-json": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.2.tgz", - "integrity": "sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==", - "dev": true, - "requires": { - "glob": "^8.0.1", - "json-parse-even-better-errors": "^2.3.1", - "normalize-package-data": "^4.0.0", - "npm-normalize-package-bin": "^2.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - }, - "minimatch": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", - "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "normalize-package-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", - "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", - "dev": true, - "requires": { - "hosted-git-info": "^5.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - } - }, - "npm-normalize-package-bin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", - "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", - "dev": true - } + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/typescript": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" } }, - "read-package-json-fast": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", - "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true, - "requires": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "node_modules/ua-parser-js": { + "version": "1.0.40", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.40.tgz", + "integrity": "sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==", "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + { + "type": "paypal", + "url": "https://paypal.me/faisalman" }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" } + ], + "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" } }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "license": "MIT" + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - } + "engines": { + "node": ">=0.8.0" } }, - "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==", + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" } }, - "readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true, - "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" + "license": "MIT" + }, + "node_modules/underscore": { + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.0.tgz", + "integrity": "sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==", + "license": "MIT", + "engines": { + "node": ">=18.17" } }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, - "requires": { - "picomatch": "^2.2.1" + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "redent": { + "node_modules/unique-filename": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "reduce-extract": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", - "integrity": "sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU=", + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dev": true, - "requires": { - "test-value": "^1.0.1" - }, + "license": "ISC", "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - }, - "test-value": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", - "integrity": "sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=", - "dev": true, - "requires": { - "array-back": "^1.0.2", - "typical": "^2.4.2" - } - } + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "reduce-flatten": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", - "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", - "dev": true + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "dev": true, + "license": "ISC" }, - "reduce-unique": { + "node_modules/universalify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", - "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", - "dev": true - }, - "reduce-without": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", - "integrity": "sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw=", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, - "requires": { - "test-value": "^2.0.0" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - }, - "test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", - "dev": true, - "requires": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - } - } + "license": "MIT", + "engines": { + "node": ">= 10.0.0" } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "release-zalgo": { + "node_modules/unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", - "dev": true, - "requires": { - "es6-error": "^4.0.1" + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "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==", - "dev": true - }, - "requizzle": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", - "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "node_modules/unplugin": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.16.0.tgz", + "integrity": "sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==", "dev": true, - "requires": { - "lodash": "^4.17.14" + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" } }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "node_modules/upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" } }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "node_modules/update-check": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz", + "integrity": "sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==", "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "license": "MIT", + "dependencies": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" } }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/update-check/node_modules/registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, - "requires": { - "glob": "^7.1.3" + "license": "MIT", + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" } }, - "rxjs": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", - "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", - "dev": true, - "requires": { - "tslib": "^2.1.0" + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "license": "MIT" + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "license": "MIT" }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, - "requires": { - "randombytes": "^2.1.0" + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "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==", + "license": "MIT" }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" } }, - "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==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" + "node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" } }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "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==", - "dev": true - }, - "simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, - "requires": { - "semver": "~7.0.0" - }, + "license": "ISC", "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" } }, - "sinon": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", - "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.8.1", - "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/samsam": "^5.3.1", - "diff": "^4.0.2", - "nise": "^4.0.4", - "supports-color": "^7.1.0" - }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "license": "Apache-2.0", "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - } + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "sinon-chai": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz", - "integrity": "sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==", - "dev": true, - "requires": {} - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true - }, - "socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dev": true, - "requires": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" + "node_modules/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "license": "MIT", + "engines": { + "node": ">= 0.10" } }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "sort-array": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.5.tgz", - "integrity": "sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==", - "dev": true, - "requires": { - "array-back": "^5.0.0", - "typical": "^6.0.1" - }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", "dependencies": { - "array-back": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", - "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", - "dev": true - }, - "typical": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", - "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", - "dev": true - } + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } }, - "sort-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", - "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", + "node_modules/vite": { + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", + "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", "dev": true, - "requires": { - "is-plain-obj": "^2.0.0" - }, + "license": "MIT", "dependencies": { - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true } } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "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==", + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" } }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", - "dev": true - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], "dev": true, - "requires": { - "through": "2" + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "readable-stream": "^3.0.0" + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], "dev": true, - "requires": { - "minipass": "^3.1.1" + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "stream-connect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", - "integrity": "sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc=", + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "array-back": "^1.0.2" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "dev": true, - "requires": { - "typical": "^2.6.0" - } - } + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" } }, - "stream-via": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", - "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", - "dev": true - }, - "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==", + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "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==", - "dev": true - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "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==", + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], "dev": true, - "requires": { - "ansi-regex": "^5.0.1" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], "dev": true, - "requires": { - "min-indent": "^1.0.0" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "strong-log-transformer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", - "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], "dev": true, - "requires": { - "duplexer": "^0.1.1", - "minimist": "^1.2.0", - "through": "^2.3.4" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], "dev": true, - "requires": { - "has-flag": "^4.0.0" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], "dev": true, - "requires": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", - "dev": true - }, - "tar": { - "version": "6.1.12", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz", - "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==", + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" } }, - "temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", - "dev": true - }, - "temp-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", - "integrity": "sha1-JLFUOXOrRCiW2a02fdnL2/r+kYs=", - "dev": true - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" } }, - "test-value": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", - "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "array-back": "^2.0.0", - "typical": "^2.6.1" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "dev": true, - "requires": { - "typical": "^2.6.1" - } - } + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" } }, - "text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], "dev": true, - "requires": { - "readable-stream": "3" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "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==", + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], "dev": true, - "requires": { - "is-number": "^7.0.0" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, - "requires": { - "nopt": "~1.0.10" + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/wait-port": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/wait-port/-/wait-port-1.1.0.tgz", + "integrity": "sha512-3e04qkoN3LxTMLakdqeWth8nih8usyg+sf1Bgdf9wwUkp05iuK1eSY/QpLvscT/+F/gA89+LpUmmgBtesbqI2Q==", + "license": "MIT", "dependencies": { - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "1" - } - } + "chalk": "^4.1.2", + "commander": "^9.3.0", + "debug": "^4.3.4" + }, + "bin": { + "wait-port": "bin/wait-port.js" + }, + "engines": { + "node": ">=10" } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true + "node_modules/wait-port/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "treeverse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-2.0.0.tgz", - "integrity": "sha512-N5gJCkLu1aXccpOTtqV6ddSEi6ZmGkh3hjmbu1IjcavJK4qyOVQmi0myQKM7z5jVGmD68SJoliaVrMmVObhj6A==", - "dev": true + "node_modules/wait-port/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true + "node_modules/wait-port/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } }, - "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "requires": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - } + "node_modules/wait-port/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "node_modules/walk-back": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.1.tgz", + "integrity": "sha512-e/FRLDVdZQWFrAzU6Hdvpm7D7m2ina833gIKLptQykRK49mmCYHLHq7UqjPDbxbKLZkTkW1rFqbengdE3sLfdw==", "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/walk-up-path": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", + "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==", + "dev": true, + "license": "ISC" + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "license": "MIT", "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - } + "defaults": "^1.0.3" } }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "node_modules/web-streams-polyfill": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", + "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "license": "MIT", + "engines": { + "node": ">= 14" + } }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" } }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", "dev": true, - "requires": { - "prelude-ls": "^1.2.1" + "license": "MIT" + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" } }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT" }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "license": "MIT", + "engines": { + "node": ">=18" + } }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "node_modules/whatwg-url": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.1.0.tgz", + "integrity": "sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==", "dev": true, - "requires": { - "is-typedarray": "^1.0.0" + "license": "MIT", + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" } }, - "typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", - "dev": true - }, - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", - "dev": true - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } }, - "uglify-js": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.1.tgz", - "integrity": "sha512-FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ==", + "node_modules/which-typed-array": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "dev": true, - "optional": true - }, - "undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "underscore": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", - "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==", - "dev": true + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, - "requires": { - "unique-slug": "^3.0.0" + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true + "node_modules/winston": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", + "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", + "license": "MIT", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.7.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.9.0" + }, + "engines": { + "node": ">= 12.0.0" + } }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true + "node_modules/winston-transport": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", + "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", + "license": "MIT", + "dependencies": { + "logform": "^2.7.0", + "readable-stream": "^3.6.2", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } }, - "upath": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", - "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", - "dev": true + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "license": "MIT" }, - "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "node_modules/wordwrapjs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", + "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=12.17" } }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/workerpool": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "license": "Apache-2.0" }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "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==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "node_modules/wrap-ansi-cjs": { + "name": "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==", + "license": "MIT", + "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" } }, - "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==", - "dev": true, - "requires": { - "builtins": "^5.0.0" + "node_modules/wrap-ansi-cjs/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "walk-back": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.0.tgz", - "integrity": "sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==", - "dev": true + "node_modules/wrap-ansi/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "walk-up-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", - "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==", - "dev": true + "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==", + "license": "ISC" }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, - "requires": { - "defaults": "^1.0.3" + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "node_modules/write-json-file": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", + "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "license": "MIT", + "dependencies": { + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.15", + "make-dir": "^2.1.0", + "pify": "^4.0.1", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.4.2" + }, + "engines": { + "node": ">=6" } }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/write-json-file/node_modules/detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", "dev": true, - "requires": { - "isexe": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "node_modules/write-json-file/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "wordwrapjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", - "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "node_modules/write-json-file/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "requires": { - "reduce-flatten": "^1.0.1", - "typical": "^2.6.1" - }, - "dependencies": { - "reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", - "dev": true - } + "license": "MIT", + "engines": { + "node": ">=6" } }, - "workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", - "dev": true - }, - "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==", + "node_modules/write-json-file/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "node_modules/write-json-file/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==", "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } + "license": "ISC" }, - "write-json-file": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-4.3.0.tgz", - "integrity": "sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ==", + "node_modules/write-json-file/node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, - "requires": { - "detect-indent": "^6.0.0", - "graceful-fs": "^4.1.15", - "is-plain-obj": "^2.0.0", - "make-dir": "^3.0.0", - "sort-keys": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, + "license": "ISC", "dependencies": { - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - } + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, - "write-pkg": { + "node_modules/write-pkg": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "sort-keys": "^2.0.0", "type-fest": "^0.4.1", "write-json-file": "^3.2.0" }, - "dependencies": { - "detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", - "dev": true - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", - "dev": true - }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } + "engines": { + "node": ">=8" + } + }, + "node_modules/write-pkg/node_modules/type-fest": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", + "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=6" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - "write-json-file": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", - "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", - "dev": true, - "requires": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.15", - "make-dir": "^2.1.0", - "pify": "^4.0.1", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.4.2" - } + "utf-8-validate": { + "optional": true } } }, - "xmlcreate": { + "node_modules/xmlbuilder": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", + "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/xmlcreate": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", - "dev": true + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/xorshift": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", + "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==", + "license": "MIT" + }, + "node_modules/xstate": { + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/xstate/-/xstate-5.19.1.tgz", + "integrity": "sha512-vFt3q9EBnO/qTTf9AG/5GosGwdDEftw5VOd3ytfSwUQRvkj6oJkxeBQaCqJUANjHrkK341jMkEZP0zeqrx2tww==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/xstate" + } }, - "xtend": { + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "license": "MIT", + "engines": { + "node": ">=0.4" + } }, - "y18n": { + "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true + "license": "ISC", + "engines": { + "node": ">=10" + } }, - "yallist": { + "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true + "node_modules/yaml": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" } }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } }, - "yargs-unparser": { + "node_modules/yargs-unparser": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", "flat": "^5.0.2", "is-plain-obj": "^2.1.0" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - } + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" } }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true + "node_modules/ylru": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", + "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", + "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.1.tgz", + "integrity": "sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==", + "license": "ISC", + "peerDependencies": { + "zod": "^3.24.1" + } + }, + "node_modules/zod-validation-error": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.4.0.tgz", + "integrity": "sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.18.0" + } } } } diff --git a/package.json b/package.json index 5104ddcd8..05937d252 100644 --- a/package.json +++ b/package.json @@ -1,69 +1,116 @@ { "name": "root", + "version": "independent", "private": true, + "author": "Pedro Sanders ", "license": "MIT", + "description": "Then open-source alternative to Twilio", + "main": "dist/index", + "types": "dist/index", + "workspaces": [ + "mods/*" + ], "scripts": { - "make": "npm i rimraf && npm run clean && npm i && npm run bootstrap && npm run build", - "bootstrap": "lerna bootstrap --no-ci --hoist", - "test": "cross-env NODE_ENV=dev nyc --reporter=lcov mocha -r ts-node/register mods/**/*.unit.test.ts --exit", - "integration": "cross-env NODE_ENV=dev nyc --reporter=lcov mocha --timeout 220000 -r ts-node/register mods/**/*.int.test.ts --exit", + "start:webui": "NODE_ENV=dev cd mods/webui && npm start", + "start:storybook": "NODE_ENV=dev cd mods/webui && npm run storybook", + "start:apiserver": "cross-env NODE_ENV=dev LOGS_LEVEL=verbose nodemon --watch mods/apiserver mods/apiserver/src/index.ts", + "start:authz": "cross-env NODE_ENV=dev LOGS_LEVEL=verbose nodemon --watch mods/authz mods/authz/src/server/server.ts", + "start:voice": "cross-env NODE_ENV=dev LOGS_LEVEL=verbose nodemon --watch mods/voice mods/voice/src/demo.ts", + "start:autopilot": "cross-env NODE_ENV=dev ASSISTANT=$(pwd)/config/assistant.json LOGS_LEVEL=verbose nodemon --watch mods/autopilot mods/autopilot/src/server.ts", + "start:services": "cross-env docker compose -f compose.yaml -f compose.dev.yaml up routr nats envoy influxdb postgres adminer mailhog rtpengine asterisk simplephone -d --remove-orphans", + "start:sdk-test": "npx serve -s mods/sdk/public -l 9000", + "start:audiosocket": "cross-env NODE_ENV=dev LOGS_LEVEL=verbose nodemon --watch mods/streams mods/streams/src/example.ts", + "stop:services": "cross-env docker compose -f compose.yaml -f compose.dev.yaml down", "build": "lerna run build", - "clean": "rimraf .nyc_output **/*/tsconfig.tsbuildinfo dist coverage **/*/dist **/*/node_modules \"node_modules/!(rimraf|.bin)\"", - "lint": "eslint mods --ext .ts --fix", - "format": "prettier --write mods", - "check-types": "tsc --noEmit", - "start": "cross-env NODE_ENV=dev nodemon .scripts/services", - "start:dispatcher": "cross-env NODE_ENV=dev nodemon .scripts/dispatcher", - "gen:protos": "./.scripts/gen_code_proto.sh", - "gen:docs": "node ./.scripts/gen_docs.js", - "audit": "lerna-audit", + "prebuild": "npm run generate:prisma-clients", + "postbuild": "npm run copy:hbstemplates && npm run copy:prisma-clients", + "format": "prettier --write mods/**/src", + "clean": "rimraf mods/**/dist mods/**/node_modules mods/**/package-lock.json node_modules package-lock.json", + "prepare": "husky", + "copy:hbstemplates": "node .scripts/copy-hbs.js", + "db:migrate": "npx prisma migrate dev --schema mods/apiserver/schema.prisma --name changeme --preview-feature && npx prisma migrate dev --schema mods/identity/schema.prisma --name changeme --preview-feature", + "db:seed": "tsx mods/apiserver/src/core/seed.ts", + "generate:docs": "node .scripts/gen-docs.js", + "generate:readme": "lerna run generate:readme && git add mods/**/README.md", + "generate:keypair": ".scripts/gen-keypair.sh", + "generate:protos": ".scripts/gen-code-proto.sh", + "postgenerate:protos": "lerna run build", + "generate:prisma-clients": "npx prisma generate --schema mods/apiserver/schema.prisma && npx prisma generate --schema mods/identity/schema.prisma", + "copy:prisma-clients": "sh ./.scripts/copy-prisma-clients.sh", + "check:updates": "lerna exec -- npx npm-check-updates", + "test": "cross-env LOGS_LEVEL=none NODE_ENV=dev mocha --timeout 30000 mods/**/*.test.ts", + "pretest": ".scripts/check-preconditions.sh && npm run generate:keypair", + "integration": "cross-env LOGS_LEVEL=none NODE_ENV=dev mocha --slow 50000 --timeout 10000 mods/**/node.integration.ts", + "preintegration:web": "npx playwright install && npx playwright install-deps", + "integration:web": "web-test-runner --node-resolve --playwright --browsers chromium webkit firefox", + "release": "lerna publish --yes --no-git-reset --dist-tag next $(./.scripts/next-release.sh) --message \"chore(release): publish %s [skip ci]\"", + "release:prerelease": "lerna publish --dist-tag next", + "release:frompackages": "lerna publish from-package", "bump:version": "rimraf mods/**/.lerna-changed-buster-* && lerna exec -- touch .lerna-changed-buster-$RANDOM", - "publish": "lerna publish", - "publish:prerelease": "lerna publish prerelease --dist-tag next", - "publish:frompackages": "lerna publish from-package" + "postinstall": "npm run generate:prisma-clients" + }, + "prisma": { + "seed": "tsx mods/apiserver/src/core/seed.ts" + }, + "devDependencies": { + "@commitlint/cli": "^19.2.2", + "@commitlint/config-conventional": "^19.2.2", + "@types/chai": "^5.0.1", + "@types/chai-as-promised": "^8.0.1", + "@types/mocha": "^10.0.6", + "@types/node": "^20.12.7", + "@types/sinon": "^17.0.3", + "@types/sinon-chai": "^4.0.0", + "@types/webrtc": "^0.0.44", + "chai-as-promised": "^8.0.1", + "cross-env": "^7.0.3", + "globals": "^15.13.0", + "grpc_tools_node_protoc_ts": "^5.3.3", + "grpc-tools": "^1.12.4", + "husky": "^9.0.11", + "jsdoc-to-markdown": "^8.0.1", + "lerna": "^8.1.7", + "mocha": "^11.0.2", + "nodemon": "^3.1.9", + "prettier": "^3.4.2", + "prisma": "^6.1.0", + "rimraf": "^6.0.1", + "sinon": "^19.0.2", + "sinon-chai": "^4.0.0", + "tsx": "^4.19.2" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/fonoster/fonoster.git" + }, + "bugs": { + "url": "https://github.com/fonoster/fonoster/issues" }, "nodemonConfig": { "watch": [ - "./mods" + "mods/**" ], "ext": "ts", - "exec": "ts-node", + "exec": "tsx", "ignore": "**/*.d.ts" }, - "devDependencies": { - "@types/mocha": "^8.2.0", - "@types/node": "^15.14.9", - "@typescript-eslint/eslint-plugin": "^4.19.0", - "@typescript-eslint/parser": "^4.19.0", - "chai": "^4.2.0", - "chai-as-promised": "^7.1.1", - "cross-env": "^7.0.3", - "dotenv": "^8.2.0", - "eslint": "^7.23.0", - "eslint-config-google": "^0.14.0", - "eslint-config-prettier": "^8.1.0", - "eslint-plugin-no-loops": "^0.3.0", - "eslint-plugin-notice": "^0.9.10", - "eslint-plugin-prettier": "^3.3.1", - "grpc_tools_node_protoc_ts": "5.2.2", - "grpc-tools": "1.11.3", - "husky": "^6.0.0", - "jsdoc-to-markdown": "^7.0.1", - "jsonfile": "^6.1.0", - "lerna": "^6.1.0", - "lerna-audit": "^1.3.3", - "mocha": "^9.2.1", - "nodemon": "^2.0.7", - "nyc": "^15.1.0", - "prettier": "^2.3.0", - "rimraf": "^3.0.2", - "sinon": "^9.0.1", - "sinon-chai": "^3.5.0", - "ts-node": "^9.1.1", - "typescript": "^4.5.4" + "directories": { + "src": "src", + "test": "test" + }, + "files": [ + "dist" + ], + "engines": { + "node": ">=20.11.1" }, "dependencies": { - "axios": "^0.24.0", - "colors": "^1.4.0" + "@prisma/client": "^6.1.0" + }, + "optionalDependencies": { + "@rollup/rollup-linux-arm64-gnu": "^4.29.1", + "@rollup/rollup-linux-arm64-musl": "^4.29.1", + "@rollup/rollup-linux-x64-gnu": "^4.29.1", + "@rollup/rollup-linux-x64-musl": "^4.29.1" } } diff --git a/signatures/version1/cla.json b/signatures/version1/cla.json deleted file mode 100644 index 8caaf65a1..000000000 --- a/signatures/version1/cla.json +++ /dev/null @@ -1,228 +0,0 @@ -{ - "signedContributors": [ - { - "name": "psanders", - "id": 539774, - "comment_id": 830836319, - "created_at": "2021-05-02T16:38:27Z", - "repoId": 120149974, - "pullRequestNo": 74 - }, - { - "name": "Wardner", - "id": 51765669, - "comment_id": 844216399, - "created_at": "2021-05-19T15:29:30Z", - "repoId": 120149974, - "pullRequestNo": 77 - }, - { - "name": "speedymonster", - "id": 31810381, - "comment_id": 900387787, - "created_at": "2021-08-17T15:15:33Z", - "repoId": 120149974, - "pullRequestNo": 140 - }, - { - "name": "brunowego", - "id": 441774, - "comment_id": 965041534, - "created_at": "2021-11-10T11:29:29Z", - "repoId": 120149974, - "pullRequestNo": 215 - }, - { - "name": "BrayanMnz", - "id": 61812255, - "comment_id": 983206927, - "created_at": "2021-12-01T01:52:42Z", - "repoId": 120149974, - "pullRequestNo": 249 - }, - { - "name": "gad2103", - "id": 1045265, - "comment_id": 1019594575, - "created_at": "2022-01-23T23:48:11Z", - "repoId": 120149974, - "pullRequestNo": 264 - }, - { - "name": "antoniusostermann", - "id": 2332002, - "comment_id": 1041407902, - "created_at": "2022-02-16T11:50:08Z", - "repoId": 120149974, - "pullRequestNo": 285 - }, - { - "name": "efraa", - "id": 40646537, - "comment_id": 1041576064, - "created_at": "2022-02-16T14:54:44Z", - "repoId": 120149974, - "pullRequestNo": 286 - }, - { - "name": "harish-chander", - "id": 13236956, - "comment_id": 1048484413, - "created_at": "2022-02-23T06:31:58Z", - "repoId": 120149974, - "pullRequestNo": 297 - }, - { - "name": "0xflotus", - "id": 26602940, - "comment_id": 1061866947, - "created_at": "2022-03-08T14:57:25Z", - "repoId": 120149974, - "pullRequestNo": 305 - }, - { - "name": "jellydn", - "id": 870029, - "comment_id": 1119203414, - "created_at": "2022-05-06T02:22:23Z", - "repoId": 120149974, - "pullRequestNo": 336 - }, - { - "name": "RiadVargas", - "id": 4274014, - "comment_id": 1120307370, - "created_at": "2022-05-07T22:22:01Z", - "repoId": 120149974, - "pullRequestNo": 337 - }, - { - "name": "andrp92", - "id": 28060986, - "comment_id": 1126177376, - "created_at": "2022-05-13T15:26:37Z", - "repoId": 120149974, - "pullRequestNo": 338 - }, - { - "name": "nrjchnd", - "id": 17134818, - "comment_id": 1126937419, - "created_at": "2022-05-15T13:06:37Z", - "repoId": 120149974, - "pullRequestNo": 339 - }, - { - "name": "scshiv29-dev", - "id": 68141773, - "comment_id": 1127987053, - "created_at": "2022-05-16T18:17:14Z", - "repoId": 120149974, - "pullRequestNo": 340 - }, - { - "name": "alexsands", - "id": 4269772, - "comment_id": 1136554328, - "created_at": "2022-05-25T00:17:53Z", - "repoId": 120149974, - "pullRequestNo": 342 - }, - { - "name": "judgegodwins", - "id": 38760034, - "comment_id": 1141870444, - "created_at": "2022-05-31T09:04:26Z", - "repoId": 120149974, - "pullRequestNo": 345 - }, - { - "name": "infinitydon", - "id": 6318992, - "comment_id": 1146479401, - "created_at": "2022-06-04T00:39:10Z", - "repoId": 120149974, - "pullRequestNo": 358 - }, - { - "name": "telenautical", - "id": 106842020, - "comment_id": 1146515605, - "created_at": "2022-06-04T03:29:53Z", - "repoId": 120149974, - "pullRequestNo": 360 - }, - { - "name": "showf68", - "id": 45857918, - "comment_id": 1147149471, - "created_at": "2022-06-06T07:44:02Z", - "repoId": 120149974, - "pullRequestNo": 365 - }, - { - "name": "vcidst", - "id": 683016, - "comment_id": 1147519469, - "created_at": "2022-06-06T14:35:24Z", - "repoId": 120149974, - "pullRequestNo": 366 - }, - { - "name": "hectorvent", - "id": 2405682, - "comment_id": 1147788887, - "created_at": "2022-06-06T19:02:38Z", - "repoId": 120149974, - "pullRequestNo": 369 - }, - { - "name": "GaryBarnes13", - "id": 44267718, - "comment_id": 1152948745, - "created_at": "2022-06-11T15:15:24Z", - "repoId": 120149974, - "pullRequestNo": 373 - }, - { - "name": "ghana7989", - "id": 65382745, - "comment_id": 1156143536, - "created_at": "2022-06-15T08:14:34Z", - "repoId": 120149974, - "pullRequestNo": 374 - }, - { - "name": "dedekrnwan", - "id": 25242055, - "comment_id": 1156551481, - "created_at": "2022-06-15T14:32:07Z", - "repoId": 120149974, - "pullRequestNo": 375 - }, - { - "name": "alifiratari", - "id": 10004438, - "comment_id": 1190431271, - "created_at": "2022-07-20T15:29:14Z", - "repoId": 120149974, - "pullRequestNo": 383 - }, - { - "name": "ppborah", - "id": 96339995, - "comment_id": 1249700379, - "created_at": "2022-09-16T18:53:16Z", - "repoId": 120149974, - "pullRequestNo": 426 - }, - { - "name": "xquanluu", - "id": 110280845, - "comment_id": 1313994152, - "created_at": "2022-11-14T16:06:58Z", - "repoId": 120149974, - "pullRequestNo": 435 - } - ] -} \ No newline at end of file diff --git a/site/index.html b/site/index.html new file mode 100644 index 000000000..44c1c6f29 --- /dev/null +++ b/site/index.html @@ -0,0 +1,973 @@ + + + + + + + + + + + + Fonoster + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+

about us 👋️

+

+ Build voice applications for your business, today. +

+ +
+ +
+
    +
  • +
    + feature-icon +
    +
    +

    Applications

    +

    + Voice Applications are first-class citizens with supports + for verbs like Play, Say, Gather, etc. +

    + +
    +
  • + +
  • +
    + feature-icon +
    +
    +

    Authentication

    +

    + Keep your business safe with project-level authentication + based in OAuth2 and JWT tokens. +

    + +
    +
  • + +
  • +
    + feature-icon +
    +
    +

    Storage

    +

    + Store, organize, and serve your sounds on S3 buckets and + user them later for analysis. +

    + +
    +
  • +
+
+
+ +
+
+
+
+
+
+

Install from NPM or CDN

+

+ Use the SDKs in the Browser or NodeJS application +

+ +
+
+
+ +
+
+
+

CLI

+

+ User the command-line tool to rapidly create and deploy + your applications. +

+ +
+
+
+ +
+
+
+

Speech APIs

+

+ Unlock Text-to-Speech and Automatic Speech Recognition + potential in your apps. +

+ +
+
+
+
+
+
+
+
+ + + +
+
+
+
+

capabilities 🛠️

+

+ The SDKs and tooling to help build your apps, faster. +

+

+ Create smart voice applications that meets your business needs + without the clutter of unneeded features or historically + burdensome customixations. +

+
+
+
+ + +
+
+
+
const VoiceServer = require("@fonoster/voice").default;
+
+new VoiceServer().listen(async (req, voice) => {
+  const { ingressNumber, appRef } = req;
+
+  console.log(`Ingress Number: ${ingressNumber}`);
+  console.log(`App Reference: ${appRef}`);
+
+  await voice.answer();
+  await voice.say("Hello and goodbye!");
+  await voice.hangup();
+});
+
+// Your app will live at tcp://127.0.0.1:50061 
+// and you can easily publish it to the Internet with:
+// ngrok tcp 50061
+  
+  
+                    
+
+
+
const { Client, Calls } = require("@fonoster/sdk");
+
+const client = Client({ 
+  accessKeyId: "WO00000000000000000000000000000000" 
+});
+
+client.loginWithApiKey("your-api-key", "your-api-secret")
+  .then(async () => {
+    const response = await new Calls(client).createCall({
+      from: "+18287854037",
+      to: "+17853178070",
+      appRef: "3e61ecb7-a1b6-4a93-84c3-4f1979165bca"
+    });
+    console.log(response); // successful response
+  }).catch(console.error);
+                      
+                        
+                                          
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+
+ community-sec-img +
+ +
+ + + +
+
+
+
+
+

community 🥳

+

+ Join our amazing community of contributors. +

+

+ Supported by a growing community of advocates, contributors, and + heroes. +

+ + +
+
+
+
+ + + + +
+ +
+
+
+
+

pricing 💸

+

Simple, straight-forward pricing.

+
+ +
+
+
+
+
+

Free

+
+ plan-price-one +
+

+ Rate-limited plan for quickly and easily learning and + standing up a prototype app. +

+
    +
  • 1 Workspace
  • +
  • 1 Domain
  • +
  • 30 mins/mo
  • +
  • 1GB Storage
  • +
  • 1-week log retention
  • +
  • Community support
  • +
+ +
+ Sign up +
+
+
+ +
+
+

Pro

+
+ plan-price-one +
+

+ Perfect for small and medium businesses with + applications going into production. +

+
    +
  • 10GB Storage
  • +
  • Unlimited Workspaces
  • +
  • Unlimited Domains
  • +
  • 520 mins/mo free then pay-as-you-go
  • +
  • 30-day log retention
  • +
  • Email support
  • +
+ +
+ Sign up +
+
+
+ +
+
+

advanced

+
+ plan-price-one +
+

+ The highest level of security, regulatory compliance, + performance, and scalability. +

+
    +
  • Technical support with SLAs
  • +
  • Volume commitment pricing
  • +
  • Technical onboarding
  • +
  • Single Sign-On (Coming Soon)
  • +
  • Customer Success Manager
  • +
+ + +
+
+
+
+
+
+
+
+ + + + +
+
+
+
+

testimonials 🥰

+

What our people are saying about us.

+
+
+
+ +
+
+
+
+
+

“The one and only cloud-first SIP server!”

+
+
+ quote +
+
+

+ I came across Routr, + which seems to be the one and only cloud-first Kubernetes-ready SIP server + on the planet! +

+

Jessie Wadman, Camanio AB

+
+
+
+
+
+
+

“Awesome community!”

+
+
+ quote +
+
+

+ I really love this community and I will like to be a contributor. + I am currently working on some use cases with Fonoster. +

+

AlijiEmmanuel-dev, GitHub Discussions

+
+
+
+
+ +
+
+

“Rock on!”

+
+
+ quote +
+
+

+ Heya pedro! just came across this project in the last hour + but love everything about it on first pass +

+

beckerchase, GitHub Discussions

+
+
+
+
+
+
+
+
+ +
+ + + +
+
+ cta-img-tab +
+ +
+ cta-img-tab +
+
+
+

+ Ready to engage your clients better and faster? +

+

Try us out and start building for free.

+ +
+
+
+ + + +
+
+
+

FAQs 🤔

+

Questions? We’ve got answers.

+
+ +
    +
  • +
    Is the self-hosted version free?
    +
    + Yes, you can self-host it and use your + Community Edition + for free. +
    +
  • + +
  • +
    How long will the free plan remain free?
    +
    We're exploring ways to keep the free plan forever. The open-source version will always be available for self-hosting.
    +
  • + +
  • +
    + Do you offer special programs for government and public sector + customers? +
    +
    + Yes we do. Please + get in touch + with us to learn more. +
    +
  • + +
  • +
    + Do you offer special programs for non-profit organizations, open + source projects, or educational institutions? +
    +
    + Yes, we offer special rates to organizations that do good things + worldwide. If you’d like to apply for a concession, please + contact us, and we’ll be glad to get to know your work. +
    +
  • + +
  • +
    How do I report issues and get support?
    +
    + Users in the free plan can raise issues in the + issue tracker + or ask questions among + GitHub + discussions. You can also check our + support page + for additional support options. +
    +
  • +
+
+
+ + + + + + + + + + + + + + + + diff --git a/site/site-assets/css/bootstrap.min.css b/site/site-assets/css/bootstrap.min.css new file mode 100644 index 000000000..47fb9bb1e --- /dev/null +++ b/site/site-assets/css/bootstrap.min.css @@ -0,0 +1,5 @@ +@charset "UTF-8";/*! + * Bootstrap v5.3.0 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#adb5bd;--bs-body-color-rgb:173,181,189;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(173, 181, 189, 0.75);--bs-secondary-color-rgb:173,181,189;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(173, 181, 189, 0.5);--bs-tertiary-color-rgb:173,181,189;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-body-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-body-color);--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:var(--bs-body-color);--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:var(--bs-body-color);--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#bacbe6;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#cbccce;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#bcd0c7;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#badce3;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#e6dbb9;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#dfc2c4;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#dfe0e1;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#373b3e;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-moz-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23adb5bd' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-tertiary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label::after,.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label{color:#6c757d}.form-floating>:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.disabled,.nav-tabs .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:0.25rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, 0.55);--bs-navbar-hover-color:rgba(255, 255, 255, 0.75);--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), 0.03);--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color:#86b7fe;--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:0.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0;mask-position:-200% 0}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(13,110,253,var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(108,117,125,var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(25,135,84,var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(13,202,240,var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(255,193,7,var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(220,53,69,var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(248,249,250,var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(33,37,41,var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,.5));text-underline-offset:.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:.125em!important}.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2{text-underline-offset:.25em!important}.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3{text-underline-offset:.375em!important}.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} \ No newline at end of file diff --git a/site/site-assets/css/media.css b/site/site-assets/css/media.css new file mode 100644 index 000000000..695916929 --- /dev/null +++ b/site/site-assets/css/media.css @@ -0,0 +1,643 @@ +@media (min-width: 1024px) { + .header-wrap .menu-btn { + display: none; + } + + .header-wrap .sticky-btn { + display: none; + } + + .cta-sec-wrap .img-wrap { + display: none; + } +} + +@media (max-width: 1440px) { + .testimonials-slider::before { + display: none; + } + + .testimonials-slider::after { + display: none; + } + + .install-slider::before, + .install-slider::after { + display: none; + } + + .header-wrap .nav-links .links > li:not(:last-child) { + margin-right: 16px; + } + + .header-wrap .logo a svg { + width: 120px; + height: 30px; + } + + .header-wrap header, + .header-wrap { + height: 76px; + } + + .header-wrap .content .left { + width: 12%; + } + + .header-wrap .content .right { + width: 85%; + } + + .header-wrap .nav-links .links a { + font-size: 13px; + } +} + +@media (max-width: 1024px) { + .header-wrap .container { + padding: 12px 40px; + } + + .header-wrap .content .left { + width: 100%; + display: flex; + justify-content: center; + align-items: center; + } + + .header-wrap .content .right { + position: fixed; + width: 100%; + height: calc(100vh - 63px); + display: block; + opacity: 0; + visibility: hidden; + -webkit-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + transition: all 0.3s ease-in-out; + top: 63px; + right: 0; + padding: 20px 15px; + background-color: #fff; + } + + .header-wrap .content .right.open { + opacity: 1; + visibility: visible; + } + + .header-wrap .content .nav-links { + width: 100%; + height: calc(100% - 63px); + justify-content: flex-start; + align-items: center; + } + + .header-wrap .nav-links .links { + flex-direction: column; + align-items: flex-start; + } + + .header-wrap .btn-wrap { + position: absolute; + bottom: 110px; + left: 0; + width: 100%; + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 30px; + } + + .header-wrap .nav-links .links a { + font-size: 15px; + } + + .header-wrap .nav-links .links a .icon { + opacity: 1; + visibility: visible; + } + + .header-wrap .nav-links .links > li:not(:last-child) { + margin-right: 0; + margin-bottom: 40px; + } + + .header-wrap .nav-links .links a:focus { + text-decoration: none; + } + + /* .header-wrap .btn-wrap a:hover, + .header-wrap .btn-wrap a:active, + .header-wrap .btn-wrap a { + background-color: #fff; + } */ + + .header-wrap .nav-links .links a:active { + text-decoration: none; + } + + .header-wrap .nav-links .links a:focus { + color: #053204; + } + + .header-wrap .btn-wrap a::before { + width: calc(100% + 12px); + height: calc(100% + 12px); + } + + .header-wrap header, + .header-wrap { + height: 64px; + } + + .header-wrap .logo a svg { + width: 110px; + height: 21px; + } + + .header-wrap .container { + transition: all 0.3s ease-in-out; + } + + body.pause .header-wrap .container { + box-shadow: none; + } + + .header-wrap .nav-links .links a .icon svg path { + fill: #39e19e; + } + + .header-wrap .nav-links .links a .icon { + margin-right: 16px; + } + + .header-wrap .nav-links .links a:hover .icon svg path, + .header-wrap .nav-links .links a:focus .icon svg path { + fill: #053204; + } + + .header-wrap .btn-wrap a.btn-link { + text-decoration: none !important; + } + + .about-us-wrap .content { + padding: 82px 0 159px; + } + + .feature-list li:not(:last-child) { + margin-bottom: 24px; + } + + .about-us-wrap .content { + align-items: flex-start; + } + + .community-sec-wrap .content { + flex-direction: column-reverse; + } + + .community-sec-wrap .left, + .community-sec-wrap .right { + width: 100%; + } + + .community-sec-wrap .left .img-box .inner { + display: none; + } + + .community-sec-wrap .left { + background: url("../images/community-bg.png") no-repeat center center; + background-size: cover; + padding-top: 210px; + } + + .community-sec-wrap .left .tweet-img { + position: relative !important; + text-align: center; + right: 0 !important; + } + + .community-sec-wrap .right .title-section { + padding: 40px 20px 48px; + text-align: center; + max-width: 460px; + } + + .capabilities-sec-wrap .content { + padding: 160px 0 80px; + } + + .capabilities-sec-wrap .content .left .accent { + margin-bottom: 24px; + } + + .capabilities-sec-wrap .content .left, + .capabilities-sec-wrap .content .right { + width: 100%; + } + + .capabilities-sec-wrap .content .left { + text-align: center; + } + + .pricing-sec-wrap .content { + padding: 64px 0 32px; + } + + .cta-sec-wrap { + background: #e6fff5; + } + + .cta-sec-wrap .content { + padding: 37px 0 40px; + text-align: center; + margin: 0 auto; + } + + .faq-sec-wrap .listing { + max-width: 780px; + } + + .faq-sec-wrap .content { + max-width: 460px; + margin: 0 auto; + } + + .faq-sec-wrap .content .title { + margin-bottom: 24px; + } + + .faq-sec-wrap .content .accent { + margin-bottom: 16px; + } + + .install-slider .swiper-slide { + width: 460px; + } + + .testimonials-sec-wrap .title-section { + padding: 32px 0 0px; + } + + .footer-wrap { + padding: 64px 0; + } + + .footer-wrap .content .box .right { + width: 50%; + } + + .footer-wrap { + padding: 0 0 24px; + } + + .footer-wrap .footer-title { + margin-bottom: 16px; + } + + .social-icons > li:not(:last-child) { + margin-right: 15px; + } + + .inner-social-icons { + justify-content: center; + } + + .pricing-sec-wrap .pricing-slider .plan-price svg { + width: 160px; + height: 110px; + } + + .pricing-slider .swiper-slide { + max-width: 290px; + } +} + +@media (max-width: 767px) { + h1, + .h1 { + font-size: 32px; + line-height: 1.25; + } + + h2, + .h2 { + font-size: 24px; + line-height: 1.33; + } + + h3, + .h3 { + font-size: 16px; + line-height: 1.5; + } + + p.accent { + font-size: 14px; + line-height: 1.29; + } + + .large { + font-size: 17px; + line-height: 1.4; + } + + /* .body-bold { + font-size: 15px; + line-height: 1.33; + } + + .small { + font-size: 13px; + line-height: 1.38; + } */ + + .header-wrap .container { + padding: 10px 20px; + } + + .header-wrap header, + .header-wrap { + height: 64px; + } + + .header-wrap .sticky-btn { + display: none; + } + + .focus-outline::before { + width: 100%; + height: 100%; + } + + .header-wrap .btn-wrap { + opacity: 1; + visibility: visible; + } + + .header-wrap .nav-links .links a { + font-family: "Poppins", sans-serif; + font-weight: 700; + text-transform: capitalize; + font-size: 24px; + line-height: 1.33; + letter-spacing: -0.75px; + } + + .banner-wrap .content { + padding: 0; + } + + .banner-wrap { + background: #e6fff5; + } + + .banner-wrap .content .box { + padding: 32px 20px; + } + + .banner-wrap .content .upper { + margin-bottom: 16px; + } + + .banner-wrap .content .title { + margin-bottom: 16px; + } + + .banner-wrap .content .desc, + .banner-wrap .content .box { + max-width: none; + } + + .about-us-wrap { + background: url("../images/about-us-banner-mob.png") no-repeat center center; + background-size: cover; + } + + .about-us-wrap .content { + padding: 64px 0 48px; + } + + .about-us-wrap .content .left, + .about-us-wrap .content .right { + width: 100%; + max-width: none; + } + + .about-us-wrap .content .left { + margin-bottom: 64px; + } + + .about-us-wrap .content .left .title { + font-size: 24px; + line-height: 1.33; + margin-bottom: 16px; + } + + .about-us-wrap .content .left .accent, + .feature-list li:not(:last-child) { + margin-bottom: 16px; + } + + .feature-list li .feature-icon { + margin-right: 12px; + } + + .feature-list li .inner .desc { + font-size: 13px; + line-height: 1.38; + } + + .capabilities-sec-wrap .content { + padding: 124px 0 43px; + } + + .faq-sec-wrap .content .title, + .capabilities-sec-wrap .content .left .title, + .capabilities-sec-wrap .content .left .accent { + margin-bottom: 16px; + } + + .faq-sec-wrap .listing li, + .faq-sec-wrap .listing li .btn-link { + flex-wrap: wrap; + margin: 0; + font-size: 13px; + line-height: 1.38; + } + + .faq-sec-wrap .listing li .left { + padding: 0; + padding-bottom: 12px; + } + + .faq-sec-wrap .listing li .left, + .faq-sec-wrap .listing li .right { + width: 100%; + } + + .faq-sec-wrap .listing li .right { + padding: 0 10px; + } + + .install-slider .swiper-slide .card { + padding: 16px; + } + + .install-slider .swiper-slide .card .title { + font-size: 16px; + line-height: 1.5; + } + + .install-slider .swiper-slide .card .desc { + font-size: 13px; + line-height: 1.38; + } + + .install-slider .swiper-slide { + width: 292px; + } + + .testimonials-sec-wrap .title-section { + padding: 54px 0 0; + } + + .testimonials-slider .swiper-slide .card .title { + margin-bottom: 16px; + } + + .testimonials-slider .swiper-slide { + width: 292px; + } + + .testimonials-slider .swiper-slide .card { + padding: 16px; + } + + .cta-sec-wrap .img-wrap { + display: none; + } + + .cta-sec-wrap .img-wrap-mobile { + display: block; + } + + .testimonials-slider .swiper-slide .card .content .text { + font-size: 13px; + line-height: 1.38; + } + + .testimonials-slider .swiper-slide .card .content .accent { + font-size: 14px; + line-height: 1.28; + } + + .testimonials-sec-wrap .img-wrap { + display: none; + } + + .pricing-sec-wrap .content { + padding: 40px 0 16px; + } + + .pricing-sec-wrap .pricing-slider .listing > li { + font-size: 13px; + line-height: 1.38; + } + + .pricing-sec-wrap .pricing-slider .listing > li:not(:last-child) { + margin-bottom: 8px; + } + + .pricing-sec-wrap .pricing-slider p.desc { + font-size: 13px; + line-height: 1.38; + } + + .pricing-sec-wrap .pricing-slider .plan-price svg { + width: 148px; + height: 94px; + } + + .pricing-sec-wrap .pricing-slider { + flex-wrap: nowrap; + } + + .pricing-sec-wrap .pricing-slider > li { + width: 300px; + max-width: none; + } + + .pricing-sec-wrap .title-section { + margin-bottom: 32px; + } + + .testimonials-sec-wrap .title-section .accent, + .testimonials-sec-wrap .title-section .title { + margin-bottom: 16px; + } + + .footer-wrap { + padding: 0px 0 18px; + } + + .footer-wrap .footer-title { + margin-bottom: 16px; + } + + .footer-wrap .content .box .left, + .footer-wrap .content .box .right { + width: 100%; + } + + .footer-wrap .content .box .right { + flex-direction: column; + } + + .footer-wrap .content .box .right .col:not(:last-child) { + margin-bottom: 24px; + } + + .copyright { + text-align: left !important; + } + + .copyright .inner { + padding-top: 16px; + } + + .copyright .desc { + margin-top: 8px; + } + + .footer-wrap .content .box { + padding-bottom: 44px; + } + + .footer-wrap .listing > li { + width: 50%; + margin: 15px 0; + } + + .footer-wrap .listing { + padding-bottom: 30px; + } + + .footer-wrap .footer-links > li:not(:last-child) { + margin-bottom: 4px; + } + + .faq-sec-wrap { + padding: 40px 0 16px; + } + + .community-sec-wrap .left .img-box .tweet-img .twitter-tweet iframe { + max-height: 260px; + } + + .pricing-slider .swiper-slide { + max-width: 230px; + } +} diff --git a/site/site-assets/css/prism.css b/site/site-assets/css/prism.css new file mode 100644 index 000000000..6fe349447 --- /dev/null +++ b/site/site-assets/css/prism.css @@ -0,0 +1,156 @@ +/** + * okaidia theme for JavaScript, CSS and HTML + * Loosely based on Monokai textmate theme by http://www.monokai.nl/ + * @author ocodia + */ + +code[class*="language-"], +pre[class*="language-"] { + color: #f8f8f2; + background: none; + font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; + font-size: 14px; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 0; + margin: 0; + overflow: auto; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #75715e; +} + +.token.punctuation { + color: #f8f8f2; +} + +.token.namespace { + opacity: 0.7; +} + +.token.property, +.token.tag, +.token.constant, +.token.symbol, +.token.deleted { + color: #d6d6d6; +} + +.token.boolean, +.token.number { + color: #ae81ff; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #6ccb93; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable { + color: #f8f8f2; +} + +.token.atrule, +.token.attr-value, +.token.function, +.token.class-name { + color: #d6d6d6; +} + +.token.keyword { + color: #569cd6; +} + +.token.regex, +.token.important { + color: #fd971f; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +pre[class*="language-"].line-numbers { + position: relative; + padding-left: 3.8em; + counter-reset: linenumber; +} + +pre[class*="language-"].line-numbers > code { + position: relative; + white-space: inherit; +} + +.line-numbers .line-numbers-rows { + position: absolute; + pointer-events: none; + top: 0; + font-size: 100%; + left: -3.8em; + width: 3em; /* works for line-numbers below 1000 lines */ + letter-spacing: -1px; + border-right: 1px solid #999; + + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.line-numbers-rows > span { + display: block; + counter-increment: linenumber; +} + +.line-numbers-rows > span:before { + content: counter(linenumber); + color: #999; + display: block; + padding-right: 0.8em; + text-align: right; +} diff --git a/site/site-assets/css/style.css b/site/site-assets/css/style.css new file mode 100644 index 000000000..b80859a9e --- /dev/null +++ b/site/site-assets/css/style.css @@ -0,0 +1,1694 @@ +@charset "UTF-8"; +/* CSS Document */ +/*============================================================== + Common Styles Initials +==============================================================*/ + +html { + -webkit-text-size-adjust: none; /* Prevent font scaling in landscape */ + width: 100%; + height: 100%; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +input[type="submit"] { + -webkit-appearance: none; + -webkit-border-radius: 0; + border-radius: 0; +} + +*, +*:after, +*:before { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +body { + margin: 0; + padding: 0; + font-family: "Poppins", sans-serif; + -webkit-font-smoothing: antialiased; + font-weight: 400; + width: 100%; + min-height: 100%; + color: #666; + background: #fff; + scrollbar-color: #39e19e #f0fdff; + scrollbar-width: thin; +} +body.pause { + overflow: hidden; +} + +::-webkit-scrollbar { + width: 7px; + height: 7px; +} +::-webkit-scrollbar-track { + background: #f0fdff; +} +::-webkit-scrollbar-thumb { + background: #39e19e; +} +::-webkit-scrollbar-thumb:window-inactive { + background: #39e19e; +} + +a { + outline: none; + text-decoration: none; + color: #053204; +} + +a:hover, +a:focus { + outline: none; + text-decoration: none; +} + +input, +textarea, +select { + outline: none; + resize: none; + font-family: "Poppins", sans-serif; +} + +a, +input, +button { + outline: none !important; +} + +button::-moz-focus-inner { + border: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; + font-weight: normal; +} + +img { + border: 0; + vertical-align: top; + max-width: 100%; + height: auto; +} + +ul, +ol { + margin: 0; + padding: 0; + list-style: none; +} + +p { + margin: 0 0 15px 0; + padding: 0; +} + +.slick-slide { + outline: none !important; +} + +.bg_img { + display: none; +} + +/*============================================================== + Bootstrap Hack +==============================================================*/ + +.form-control::-webkit-input-placeholder { + opacity: 1; +} +.form-control:-moz-placeholder { + opacity: 1; +} +.form-control::-moz-placeholder { + opacity: 1; +} +.form-control:-ms-input-placeholder { + opacity: 1; +} + +.nav > li > a:hover, +.nav > li > a:focus, +.nav > li.active > a, +.nav > li.active > a:focus { + background: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +/*============================================================== + Custom Style +==============================================================*/ +.container { + max-width: 1390px; + width: 100%; + padding: 0 15px; +} + +/*============================================================== + Type Style +==============================================================*/ +h1, +.h1 { + font-weight: 600; + font-size: 48px; + line-height: 1.17; + letter-spacing: -0.75px; + color: #053204; + margin: 0; +} + +h2, +.h2 { + font-weight: 600; + font-size: 32px; + line-height: 1.25; + letter-spacing: -0.75px; + color: #053204; + margin: 0; +} + +h3, +.h3 { + font-size: 24px; + line-height: 1.17; + font-weight: 600; + letter-spacing: 0.5px; + color: #053204; + margin: 0; +} + +p.accent { + font-weight: 500; + font-size: 15px; + line-height: 1.4; + letter-spacing: 0.12em; + text-transform: uppercase; + color: #053204; + font-family: "Roboto Mono", sans-serif; +} + +p { + font-size: 17px; + line-height: 1.41; + font-weight: 500; + color: #053204; +} + +.body-bold { + font-size: 17px; + line-height: 1.41; + font-weight: 600; + color: #053204; +} + +.small { + font-size: 13px; + line-height: 1.38; + font-weight: 500; + color: #053204; +} + +.large { + font-size: 20px; + line-height: 1.4; + font-weight: 500; + color: #053204; +} + +p:not(:last-child) { + margin-bottom: 0; +} + +/*============================================================== + Button Style +==============================================================*/ + +.btn { + font-size: 14px; + line-height: 1.29px; + font-weight: 600; + padding: 20px 13px; + border-radius: 48px 48px 48px 0; + transition: all 0.3s ease-in-out; + border: none; + position: relative; + display: inline-block; + text-transform: capitalize; +} + +.btn-primary { + background-color: #39e19e; + color: #053204; +} + +.btn-primary:hover { + background-color: #e6fff5; + color: #053204; +} + +.btn-primary:active { + background-color: #ccefe1 !important; + color: #053204 !important; + border-color: transparent !important; +} + +.btn-primary:focus, +.btn-primary:focus-visible { + background-color: #ccefe1; + color: #053204; + box-shadow: none; +} + +.btn-primary::before { + content: ""; + width: calc(100% + 16px); + height: calc(100% + 16px); + border: 1px solid transparent; + border-radius: 4px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + transition: all 0.3s ease-in-out; +} + +.btn-primary:focus::before, +.btn-primary:focus-visible::before { + border-color: #053204; + box-shadow: none; +} + +.btn-primary.btn-alt { + background-color: #f0fdff; +} + +.btn-primary.btn-alt:hover { + background-color: #5fcfce; +} + +.btn-primary.btn-alt:active { + background-color: #cde3e8 !important; + color: #053204 !important; + border-color: transparent !important; +} + +.btn-primary.btn-alt:focus, +.btn-primary.btn-alt:focus-visible { + background-color: #5fcfce; + box-shadow: none; +} + +.btn-primary.btn-alt:focus::before, +.btn-primary.btn-alt:focus-visible::before { + border-color: #f0fdff; + box-shadow: none; +} + +.btn-sm { + font-size: 14px; + line-height: 1.29px; + font-weight: 600; + color: #053204; +} + +.btn-link { + font-size: 14px; + line-height: 1.28px; + font-weight: 600; + color: #053204; + transition: all 0.3s ease-in-out; + position: relative; + text-decoration: none; + display: inline-block; + padding: 8px; +} + +.btn-link:hover { + color: #053204; + text-decoration: underline; +} + +.btn-link:active { + color: #053204; + text-decoration: underline; + border-color: transparent !important; +} + +.btn-link:focus { + color: #053204; + text-decoration: underline; +} + +.btn-link::before { + content: ""; + width: calc(100% + 8px); + height: calc(100% + 8px); + border: 1px solid transparent; + border-radius: 4px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + transition: all 0.3s ease-in-out; +} + +.btn-link:focus::before { + border-color: #053204; +} + +.btn-link.btn-alt { + color: #39e19e; + text-decoration: underline; +} + +.btn-link.btn-alt:hover { + color: #e6fff5; + text-decoration: underline; +} + +.btn-link.btn-alt:active { + color: #ccefe1; + text-decoration: underline; +} + +.btn-link.btn-alt:focus::before { + border-color: #e6fff5; +} + +.btn-arrow { + display: inline-flex; + align-items: center; + padding: 8px; + font-weight: 600; + font-size: 14px; + line-height: 1.29; + text-transform: capitalize; + color: #053204; + position: relative; +} + +.btn-arrow .icon { + margin-left: 16px; + transition: all 0.3s ease-in-out; +} + +.btn-arrow:is(:hover, :focus, :active) .icon { + margin-left: 24px; +} + +.btn-arrow:hover { + color: #053204; +} + +.btn-arrow:active { + color: #252525; + border-color: transparent !important; +} + +.btn-arrow:focus { + color: #252525; +} + +.btn-arrow::before { + content: ""; + width: calc(100% + 8px); + height: calc(100% + 8px); + border: 1px solid transparent; + border-radius: 4px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + transition: all 0.3s ease-in-out; +} + +.btn-arrow:focus::before { + border-color: #053204; +} + +.btn-arrow.btn-alt { + color: #e6fff5; +} + +.btn-arrow.btn-alt:hover, +.btn-arrow.btn-alt:active { + color: #e6fff5; +} + +.btn-arrow.btn-alt:focus { + color: #fff; +} + +.btn-arrow.btn-alt:focus::before { + border-color: #fff; +} + +.btn-icon { + display: inline-flex; + align-items: center; + flex-wrap: wrap; + font-size: 12px; + line-height: 1.5; + font-weight: 600; + padding: 12px 16px; + border-radius: 48px 48px 48px 0; + transition: all 0.3s ease-in-out; + text-transform: capitalize; +} + +.btn-icon .icon { + margin-right: 8px; +} + +/*============================================================== + Header Style +==============================================================*/ +.header-wrap { + position: relative; + z-index: 999; + background: #fff; + height: 88px; +} + +.header-wrap header { + position: fixed; + width: 100%; + height: 88px; + top: 0; + left: 0; + background: #fff; +} + +.header-wrap .container { + padding: 15px 40px; + background: #fff; +} + +.header-wrap .content { + display: flex; + align-items: center; + flex-wrap: wrap; + justify-content: space-between; + position: relative; +} + +.header-wrap .content .left { + width: 20%; +} + +.header-wrap .content .right { + width: 80%; + display: flex; + align-items: center; + flex-wrap: wrap; + justify-content: space-between; +} + +.header-wrap .content .nav-links { + display: flex; + justify-content: center; + width: 75%; +} + +.header-wrap .nav-links .links { + display: flex; + flex-wrap: wrap; + align-items: center; +} + +.header-wrap .nav-links .links > li:not(:last-child) { + margin-right: 48px; +} + +.header-wrap .nav-links .links a { + display: inline-flex; + align-items: center; + font-weight: 500; + font-size: 15px; + line-height: 1; + letter-spacing: 0.12em; + text-transform: uppercase; + color: #053204; + font-family: "Roboto Mono", sans-serif; +} + +.header-wrap .nav-links .links a .icon { + opacity: 0; + visibility: hidden; + transition: all 0.3s ease-in-out; + margin-right: 8px; +} + +.header-wrap .nav-links .links a:hover { + color: #053204; +} + +.header-wrap .nav-links .links a:active { + color: #053204; +} + +.header-wrap .nav-links .links a .icon svg path { + transition: all 0.3s ease-in-out; +} + +.header-wrap .nav-links .links a:active .icon svg path { + fill: #39e19e; +} + +.header-wrap .nav-links .links a:focus { + text-decoration: underline; + color: #053204; +} + +.header-wrap .nav-links .links a:is(:hover, :focus, :active) .icon { + opacity: 1; + visibility: visible; +} + +.header-wrap .logo a { + display: inline-block; +} + +.header-wrap .logo a svg, +.header-wrap .logo a path { + transition: all 0.3s ease-in-out; +} + +.header-wrap .logo a:hover .shape { + fill: #ccefe1; +} + +.header-wrap .logo a:active .shape { + fill: #e6fff5; +} + +.header-wrap .logo a:focus .shape { + fill: #ccefe1; +} + +.focus-outline { + position: relative; + padding: 8px; +} + +.focus-outline::before { + content: ""; + width: calc(100% + 8px); + height: calc(100% + 8px); + border-radius: 4px; + border: 1px solid transparent; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + transition: all 0.3s ease-in-out; +} + +.focus-outline:focus::before { + border-color: #053204; +} + +.header-wrap .header-btn .icon { + margin-right: 18px; +} + +.header-wrap .header-btn a svg { + margin-right: 4px; +} + +.header-wrap .btn-wrap a:not(:last-child) { + margin-right: 24px; +} + +.menu-btn .menu { + border: 0; + background-color: transparent; +} + +.menu-btn .line { + fill: none; + stroke: #053204; + stroke-width: 6; + transition: stroke-dasharray 600ms cubic-bezier(0.4, 0, 0.2, 1), + stroke-dashoffset 600ms cubic-bezier(0.4, 0, 0.2, 1); +} +.menu-btn .line1 { + stroke-dasharray: 60 207; + stroke-width: 6; +} +.menu-btn .line2 { + stroke-dasharray: 60 60; + stroke-width: 6; +} +.menu-btn .line3 { + stroke-dasharray: 60 207; + stroke-width: 6; +} +.menu-btn .opened .line1 { + stroke-dasharray: 90 207; + stroke-dashoffset: -134; + stroke-width: 6; +} +.menu-btn .opened .line2 { + stroke-dasharray: 1 60; + stroke-dashoffset: -30; + stroke-width: 6; +} +.menu-btn .opened .line3 { + stroke-dasharray: 90 207; + stroke-dashoffset: -134; + stroke-width: 6; +} + +.header-wrap .btn-wrap .btn-primary:hover { + background-color: #ccefe1; +} + +.header-wrap .btn-wrap .btn-primary:active { + background-color: #e6fff5; +} + +.header-wrap .btn-wrap .btn-primary:focus { + background-color: #ccefe1; +} + +.header-wrap .menu-btn { + position: absolute; + z-index: 9999; + top: 50%; + transform: translatey(-50%); +} + +.header-wrap .sticky-btn { + position: absolute; + top: 50%; + transform: translatey(-50%); + right: 0; + width: 100%; + max-width: 122px; +} + +.header-wrap .sticky-btn a { + display: inline-flex; + align-items: center; +} + +/*============================================================== + Banner Style +==============================================================*/ + +.banner-wrap { + background: url("../images/banner-bg.png") no-repeat center center, #053204; + background-size: cover; + position: relative; +} + +.banner-wrap .content { + padding: 200px 0; +} + +.banner-wrap .content .box { + max-width: 550px; + position: relative; + z-index: 2; +} + +.banner-wrap .content .title { + margin-bottom: 30px; +} + +.banner-wrap .content .upper { + margin-bottom: 32px; +} + +.banner-wrap .content .desc { + max-width: 325px; +} + +.banner-wrap .img-wrap-mobile img { + width: 100%; +} + +.banner-wrap .btn-wrap a:not(:last-child) { + margin-right: 8px; +} + +.alt-desc .lower .sub-desc { + color: #f0fdff; + margin-bottom: 16px; +} + +.alt-desc .btn-wrap a:not(:last-child) { + margin-right: 20px; +} + +.alt-mobile { + padding: 40px 20px 125px; + background-color: #053204; + text-align: center; +} + +.alt-mobile .sub-desc { + margin-bottom: 24px; + color: #f0fdff; +} + +/*============================================================== + About Us Style +==============================================================*/ +.about-us-wrap { + background: url("../images/about-us-banner.png") no-repeat center center; + background-size: cover; +} + +.about-us-wrap .content { + display: flex; + flex-wrap: wrap; + align-items: center; + margin: 0 -15px; + padding: 80px 0 80px; +} + +.about-us-wrap .content .left, +.about-us-wrap .content .right { + padding: 0 15px; + width: 50%; +} + +.about-us-wrap .content .left { + max-width: 440px; +} + +.about-us-wrap .content .left .accent { + color: #39e19e; + margin-bottom: 24px; +} + +.about-us-wrap .content .left .title { + margin-bottom: 40px; + color: #e6fff5; +} + +.about-us-wrap .content .right { + max-width: 520px; + margin: 0 auto; +} + +.feature-list li { + display: flex; + flex-wrap: wrap; + justify-content: space-between; +} + +.feature-list li .feature-icon { + width: 48px; + margin-right: 20px; + margin-top: -5px; +} + +.feature-list li .inner { + flex: 1; +} + +.feature-list li:not(:last-child) { + margin-bottom: 40px; +} + +.feature-list li .inner .title { + margin-bottom: 16px; + color: #39e19e; +} + +.feature-list li .inner .desc { + color: #ccefe1; + margin-bottom: 16px; +} + +.install-slider-wrap { + overflow: auto; + margin-bottom: -80px; +} + +.install-slider-wrap .install-slider { + overflow: hidden; + position: relative; + padding: 0 15px; + border-radius: 12px; +} + +.install-slider .swiper-slide { + width: 555px; + height: auto; +} + +.install-slider .swiper-slide .card { + padding: 32px; + height: 100%; + background: #ffffff; + border-radius: 12px; + position: relative; + box-shadow: 4px 4px 20px rgba(0, 0, 0, 0.15); +} + +.install-slider .swiper-slide .card .inner { + padding: 0 29px; + position: relative; + max-width: 430px; +} + +.install-slider .swiper-slide .card .inner::before { + content: ""; + width: 13px; + height: 13px; + position: absolute; + top: 5px; + left: 0; + border-radius: 50%; + background-color: #39e19e; +} + +.install-slider .swiper-slide .card .title { + margin-bottom: 14px; + color: #000; + font-weight: 600; +} + +.install-slider .swiper-slide .card .desc { + margin-bottom: 14px; + color: #000; +} + +.install-slider::before { + content: ""; + width: 80px; + height: 100%; + background: linear-gradient(90deg, #ccefe1 0%, rgba(204, 239, 225, 0) 100%); + position: absolute; + top: 0; + left: -10px; + z-index: 2; + border-radius: 12px 0px 0px 12px; +} + +.install-slider:after { + content: ""; + width: 80px; + height: 100%; + background: linear-gradient(90deg, #ccefe1 0%, rgba(204, 239, 225, 0) 100%); + position: absolute; + transform: rotate(-180deg); + top: 0px; + right: -10px; + z-index: 2; + border-radius: 0px 12px 12px 0px; +} + +/*============================================================== + Capabilities Style +==============================================================*/ +.capabilities-sec-wrap { + background: url("../images/capabilities-banner-bg.png") no-repeat center + center; + background-size: cover; +} + +.capabilities-sec-wrap .content { + padding: 177px 0 80px; + display: flex; + align-items: center; + flex-wrap: wrap; +} + +.capabilities-sec-wrap .content .left, +.capabilities-sec-wrap .content .right { + width: 50%; +} + +.capabilities-sec-wrap .content .left { + max-width: 440px; + margin: 0 auto; +} + +.capabilities-sec-wrap .content .left .accent { + margin-bottom: 30px; +} + +.capabilities-sec-wrap .content .left .title { + margin-bottom: 24px; +} +.code-block-wrap { + position: relative; +} +.code-block-wrap .code-block-check { + position: absolute; + left: 0; + top: 0; + opacity: 0; +} +.code-block-label span { + font-weight: 600; + font-size: 12px; + line-height: 20px; + color: #053204; + display: block; +} + +.code-block-label { + padding: 10px 15px 10px 36px; + background: #39e19e; + border-radius: 30px; + position: relative; + min-width: 136px; + overflow: hidden; + cursor: pointer; + transition: all 0.3s ease-in-out; + bottom: -30px; + z-index: 1; + left: 20px; +} + +.code-block-label::before { + content: ""; + width: 20px; + height: 20px; + border-radius: 50%; + background-color: #ffffff; + position: absolute; + top: 50%; + transform: translatey(-50%); + left: 8px; + transition: all 0.3s ease-in-out; +} + +.code-block-label::after { + content: ""; + width: 20px; + height: 20px; + border-radius: 50%; + background-color: #39e19e; + position: absolute; + top: 50%; + transform: translatey(-50%); + right: -25px; + transition: all 0.3s ease-in-out; +} + +.code-block-label .label-2 { + display: none; +} +.code-block-check:checked ~ .code-block-label { + padding: 10px 36px 10px 15px; + background: #e6fff5; +} +.code-block-check:checked ~ .code-block-label::after { + right: 8px; +} +.code-block-check:checked ~ .code-block-label::before { + left: -25px; +} + +.code-block-check:checked ~ .code-block-label .label-2 { + display: block; +} +.code-block-check:checked ~ .code-block-label .label-1 { + display: none; +} +.code-block-wrap .code-block-check:checked ~ .code-block .code-block-area { + transform: translate(calc(-100% - 15px), 0); +} +.code-block-wrap .code-block { + overflow: hidden; + width: 100%; + position: relative; + background: #252525; + border-radius: 14px; +} + +.code-block .code-block-area { + display: flex; + width: 100%; + transition: all 0.3s ease-in-out; +} + +.code-block .code-block-area .code-block-item { + padding: 50px 30px; + width: 100%; + flex-shrink: 0; + position: relative; +} +.code-block .code-block-area .code-block-item + .code-block-item { + margin-left: 15px; +} + +.code-block-wrap .toolbar-item { + position: absolute; + top: 10px; + right: 20px; +} + +.code-block-wrap .toolbar-item button { + font-size: 12px; + line-height: 18px; + padding: 4px; + border-radius: 6px; + background-color: #2c2e35; + color: #fff; + border: 1px solid #787878; + padding-left: 30px; + position: relative; +} + +.code-block-wrap .toolbar-item button::before { + content: ""; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' class='undefined'%3E%3Crect x='9' y='9' width='13' height='13' rx='2' ry='2'%3E%3C/rect%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'%3E%3C/path%3E%3C/svg%3E"); + width: 14px; + height: 14px; + background-size: cover; + background-repeat: no-repeat; + background-position: center center; + position: absolute; + top: 50%; + transform: translatey(-50%); + left: 10px; +} + +/*============================================================== + Community Style +==============================================================*/ +.community-sec-wrap { + background-color: #f0fdff; +} + +.community-sec-wrap .content { + display: flex; + flex-wrap: wrap; +} + +.community-sec-wrap .left, +.community-sec-wrap .right { + width: 50%; +} + +.community-sec-wrap .left .img-box { + position: relative; +} + +.community-sec-wrap .left .img-box .inner img { + width: 100%; +} + +.community-sec-wrap .left .img-box .tweet-img { + position: absolute; + bottom: -10px; + right: 0px; +} + +.community-sec-wrap .left .img-box .tweet-img .twitter-tweet { + max-width: 440px !important; + margin: 0 auto; +} + +.community-sec-wrap .left .img-box .tweet-img .twitter-tweet iframe { + max-height: 280px; +} + +.community-sec-wrap .right .title-section { + display: flex; + flex-direction: column; + height: 100%; + justify-content: center; + max-width: 440px; + margin: 0 auto; +} + +.community-sec-wrap .right .title-section .accent, +.community-sec-wrap .right .title-section .title { + margin-bottom: 24px; +} + +.community-sec-wrap .right .title-section .desc { + margin-bottom: 24px; +} + +.inner-social-icons { + display: flex; + flex-wrap: wrap; + align-items: center; +} + +.inner-social-icons > li:not(:last-child) { + margin-right: 24px; +} + +.inner-social-icons > li a { + color: #f0fdff; + background-color: #5fcfce; +} + +.inner-social-icons > li a.btn { + padding: 8px; +} + +.inner-social-icons > li a:hover { + background-color: #0d3231; + color: #f0fdff; +} + +.inner-social-icons > li a:active { + background-color: #0d3231 !important; + color: #5fcfce !important; +} + +.inner-social-icons > li a:focus { + color: #f0fdff; + background-color: #0d3231; +} + +.inner-social-icons > li a:focus::before { + border-color: #053204; +} + +/*============================================================== + Pricing Style +==============================================================*/ +.pricing-sec-wrap .title-section .accent, +.pricing-sec-wrap .title-section .title { + color: #f0fdff; +} + +.pricing-sec-wrap .title-section { + text-align: center; + margin-bottom: 50px; +} + +.pricing-sec-wrap .title-section .accent { + margin-bottom: 24px; +} + +.pricing-sec-wrap .content { + padding: 102px 0 60px; +} + +.pricing-sec-wrap .pricing-slider { + padding: 0 15px; + overflow: hidden; + position: relative; +} + +.pricing-slider .swiper-slide { + max-width: 325px; + margin: 0 auto; +} + +.pricing-slider .swiper-slide .card { + background-color: transparent; + border: none; +} + +.pricing-sec-wrap .pricing-list > li { + width: 33.33%; + max-width: 340px; + padding: 0 15px; + display: flex; + flex-direction: column; +} + +.pricing-sec-wrap .pricing-slider .btn-wrap { + margin-top: auto; +} + +.pricing-sec-wrap .pricing-slider p { + color: #f0fdff; +} + +.pricing-sec-wrap .pricing-slider .plan-price { + margin-top: 24px; + margin-bottom: 40px; +} + +.pricing-sec-wrap .pricing-slider .listing { + margin-top: 24px; + margin-bottom: 48px; +} + +.pricing-sec-wrap .pricing-slider .listing > li { + color: #f0fdff; + padding-left: 26px; + position: relative; + font-weight: 500; + font-size: 17px; + line-height: 1.41; +} + +.pricing-sec-wrap .pricing-slider .listing > li::before { + content: ""; + width: 10px; + height: 10px; + border-radius: 50%; + background-color: #5fcfce; + position: absolute; + top: 50%; + left: 0; + transform: translatey(-50%); +} + +.pricing-sec-wrap .pricing-slider .listing > li:not(:last-child) { + margin-bottom: 16px; +} + +/*============================================================== + CTA Style +==============================================================*/ +.cta-sec-wrap { + background: url("../images/cta-banner-bg.png") no-repeat center center; + background-size: cover; +} + +.cta-sec-wrap .content { + padding: 190px 0 128px; +} + +.cta-sec-wrap .img-wrap img, +.cta-sec-wrap .img-wrap-mobile img { + width: 100%; +} + +.cta-sec-wrap .img-wrap-mobile { + display: none; +} + +.cta-sec-wrap .content { + max-width: 440px; +} + +.cta-sec-wrap .content .title, +.cta-sec-wrap .content .desc { + margin-bottom: 24px; +} + +/*============================================================== + FAQ Style +==============================================================*/ +.faq-sec-wrap { + background-color: #053204; + padding: 80px 0; +} + +.faq-sec-wrap .content { + text-align: center; +} + +.faq-sec-wrap .content .accent { + margin-bottom: 24px; + color: #f0fdff; +} + +.faq-sec-wrap .content .title { + margin-bottom: 40px; + color: #e6fff5; +} + +.faq-sec-wrap .listing { + max-width: 1130px; + margin: 0 auto; +} + +.faq-sec-wrap .listing li { + display: flex; + font-size: 17px; + line-height: 1.41; + padding: 24px 0; + margin: 0 -15px; +} + +.faq-sec-wrap .listing li .btn-link { + font-size: 17px; + line-height: 1.41; +} + +.faq-sec-wrap .listing li .left { + width: 38%; +} + +.faq-sec-wrap .listing li .right { + width: 62%; +} + +.faq-sec-wrap .listing li .left, +.faq-sec-wrap .listing li .right { + color: #e6fff5; + padding: 0 15px; +} + +.faq-sec-wrap .listing li .left { + color: #ffffff; +} + +.faq-sec-wrap .listing li:not(:last-child) { + border-bottom: 1px solid #e6fff5; +} + +/*============================================================== + Sponsers Style +==============================================================*/ +.pattern-bg-wrap { + background: url("../images/pattern-bg.png") no-repeat center center; + background-size: cover; +} + +.pattern-bg-wrap .container { + max-width: 1160px; +} + +.sponsers-sec-wrap { + background: #ffffff; + box-shadow: 4px 4px 20px rgba(0, 0, 0, 0.15); + border-radius: 12px; + padding: 50px 0; + position: relative; + top: -70px; +} + +.sponsers-sec-wrap .content { + text-align: center; +} + +.sponsers-sec-wrap .content .accent { + text-transform: uppercase; + margin-bottom: 16px; +} + +.sponsers-sec-wrap .content .accent, +.sponsers-sec-wrap .content .title { + color: #053204; +} + +.sponsers-list { + display: flex; + align-items: flex-start; + flex-wrap: wrap; + margin: 0 -15px; +} + +.sponsers-list > li { + width: 33.33%; + max-width: 290px; + margin: 0 auto; + padding: 0 15px; +} + +.sponsers-list .logo { + padding: 13px 26px; + background-color: #f4f4f4; + border-radius: 12px; + display: inline-flex; + justify-content: center; + align-items: center; + margin-bottom: 30px; + min-height: 70px; +} + +.sponsers-sec-wrap .content { + margin-bottom: 48px; +} + +.sponsers-list .logo img { + filter: grayscale(100%); + transition: all 0.3s ease-in-out; +} + +.sponsers-list > li:hover .logo img { + filter: grayscale(0); +} + +.sponsers-list .desc { + color: #053204; + margin-bottom: 23px; +} + +.sponsers-list .btn-arrow { + color: #053204; +} + +.sponsers-list > li:is(:hover, :focus, :active) .btn-arrow .icon { + margin-left: 24px; +} + +/*============================================================== + Testimonials Style +==============================================================*/ +.testimonials-sec-wrap { + position: relative; +} + +.testimonials-sec-wrap .img-wrap { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} + +.testimonials-sec-wrap .img-wrap-mobile img { + width: 100%; +} + +.testimonials-sec-wrap .img-wrap img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.testimonials-sec-wrap .container { + position: relative; +} + +.testimonials-sec-wrap .title-section { + padding: 60px 0 0px; + text-align: center; +} + +.testimonials-sec-wrap .title-section .accent, +.testimonials-sec-wrap .title-section .title { + color: #f0fdff; +} + +.testimonials-sec-wrap .title-section .accent { + margin-bottom: 24px; +} + +.testimonials-sec-wrap .testimonials-slider { + max-width: 1440px; + margin: 0 auto; + position: relative; + padding: 0 15px; +} + +.testimonials-slider .swiper-slide { + width: 466px; + height: auto; +} + +.testimonials-sec-wrap .testimonials-slider { + overflow: hidden; + position: relative; + bottom: -60px; +} + +.testimonials-slider .swiper-slide .card { + padding: 32px; + background: #ffffff; + border: none; + box-shadow: 4px 4px 20px rgba(0, 0, 0, 0.15); + border-radius: 12px; + height: 100%; +} + +.testimonials-slider .swiper-slide .card .inner { + display: flex; +} + +.testimonials-slider .swiper-slide .card .icon { + width: 22px; + margin-right: 16px; +} + +.testimonials-slider .swiper-slide .card .content { + position: relative; + flex: 1; +} + +.testimonials-slider .swiper-slide .card .title { + margin-bottom: 32px; +} + +.testimonials-slider .swiper-slide .card .content .text { + color: #000; +} + +.testimonials-slider .swiper-slide .card .content .accent { + margin-top: 14px; + margin-bottom: 0; + position: relative; + display: block; + padding-left: 16px; + color: #000; +} + +.testimonials-slider .swiper-slide .card .content .accent::before { + content: "-"; + font-weight: 500; + font-size: 15px; + line-height: 1.4; + letter-spacing: 0.12em; + text-transform: uppercase; + color: #053204; + font-family: "Roboto Mono", sans-serif; + position: absolute; + left: 0; +} + +.testimonials-slider .swiper-wrapper { + position: relative; +} + +/*============================================================== + Footer Style +==============================================================*/ + +.footer-wrap { + background-color: #053204; + padding: 0 0 80px; + color: #f0fdff; + margin-top: -10px; +} + +.footer-wrap .footer-title { + color: #39e19e; + margin-bottom: 30px; +} + +.footer-wrap .content { + max-width: 1130px; + margin: 0 auto; +} + +.footer-wrap .listing { + display: flex; + flex-wrap: wrap; + padding-bottom: 24px; +} + +.footer-wrap .listing > li { + width: 20%; +} + +.footer-wrap .listing .btn-link { + font-weight: 500; +} + +.social-icons { + display: flex; + align-items: center; + flex-wrap: wrap; +} + +.social-icons > li:not(:last-child) { + margin-right: 24px; +} + +.footer-wrap .content .box .left .desc { + color: #f0fdff; +} + +.footer-wrap .footer-links > li:not(:last-child) { + margin-bottom: 12px; +} + +.footer-wrap .footer-links li a { + font-size: 13px; + line-height: 1.38; + color: #e6fff5; +} + +.footer-wrap .footer-links li a:hover { + color: #39e19e; +} + +.footer-wrap .footer-links li a:active { + color: #ccefe1; +} + +.footer-wrap .footer-links li a:focus { + color: #39e19e; +} + +.footer-wrap .footer-links li a::before:focus { + border-color: #39e19e; +} + +.social-icons li a { + color: #f0fdff; + position: relative; + transition: all 0.3s ease-in-out; +} + +.social-icons li a:hover { + color: #39e19e; +} + +.social-icons li a:active { + color: #ccefe1; +} + +.social-icons li a:focus { + color: #39e19e; +} + +.social-icons li a::before { + content: ""; + width: calc(100% + 16px); + height: calc(100% + 16px); + border: 1px solid transparent; + border-radius: 4px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + transition: all 0.3s ease-in-out; +} + +.social-icons li a:focus::before { + border-color: #39e19e; +} + +.copyright .inner { + padding-top: 24px; + border-top: 1px solid #f0fdff; +} + +.copyright .desc { + margin-bottom: 0; + margin-top: 10px; +} + +.copyright p { + color: #e6fff5; +} diff --git a/site/site-assets/css/swiper-bundle.min.css b/site/site-assets/css/swiper-bundle.min.css new file mode 100644 index 000000000..e32edbdec --- /dev/null +++ b/site/site-assets/css/swiper-bundle.min.css @@ -0,0 +1,13 @@ +/** + * Swiper 9.2.4 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * https://swiperjs.com + * + * Copyright 2014-2023 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: April 21, 2023 + */ + +@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper,swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide,swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,swiper-container:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,:host(.swiper-horizontal.swiper-rtl) .swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;-ms-touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification,swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden} \ No newline at end of file diff --git a/site/site-assets/images/about-us-banner-mob.png b/site/site-assets/images/about-us-banner-mob.png new file mode 100644 index 000000000..ad513c209 Binary files /dev/null and b/site/site-assets/images/about-us-banner-mob.png differ diff --git a/site/site-assets/images/about-us-banner.png b/site/site-assets/images/about-us-banner.png new file mode 100644 index 000000000..e378d1884 Binary files /dev/null and b/site/site-assets/images/about-us-banner.png differ diff --git a/site/site-assets/images/banner-bg-mobile.png b/site/site-assets/images/banner-bg-mobile.png new file mode 100644 index 000000000..f470021bc Binary files /dev/null and b/site/site-assets/images/banner-bg-mobile.png differ diff --git a/site/site-assets/images/banner-bg.png b/site/site-assets/images/banner-bg.png new file mode 100644 index 000000000..12c7667e0 Binary files /dev/null and b/site/site-assets/images/banner-bg.png differ diff --git a/site/site-assets/images/capabilities-banner-bg.png b/site/site-assets/images/capabilities-banner-bg.png new file mode 100644 index 000000000..96d76ec27 Binary files /dev/null and b/site/site-assets/images/capabilities-banner-bg.png differ diff --git a/site/site-assets/images/community-bg.png b/site/site-assets/images/community-bg.png new file mode 100644 index 000000000..1da29cde9 Binary files /dev/null and b/site/site-assets/images/community-bg.png differ diff --git a/site/site-assets/images/community-sec-img.png b/site/site-assets/images/community-sec-img.png new file mode 100644 index 000000000..48548a3c5 Binary files /dev/null and b/site/site-assets/images/community-sec-img.png differ diff --git a/site/site-assets/images/cta-banner-bg.png b/site/site-assets/images/cta-banner-bg.png new file mode 100644 index 000000000..6b8d424db Binary files /dev/null and b/site/site-assets/images/cta-banner-bg.png differ diff --git a/site/site-assets/images/cta-img-mobile.png b/site/site-assets/images/cta-img-mobile.png new file mode 100644 index 000000000..428e8de12 Binary files /dev/null and b/site/site-assets/images/cta-img-mobile.png differ diff --git a/site/site-assets/images/cta-img-tab.png b/site/site-assets/images/cta-img-tab.png new file mode 100644 index 000000000..0d66f7a68 Binary files /dev/null and b/site/site-assets/images/cta-img-tab.png differ diff --git a/site/site-assets/images/favicon.ico b/site/site-assets/images/favicon.ico new file mode 100644 index 000000000..a3131bb11 Binary files /dev/null and b/site/site-assets/images/favicon.ico differ diff --git a/site/site-assets/images/icons/btn-arrow.svg b/site/site-assets/images/icons/btn-arrow.svg new file mode 100644 index 000000000..f6fa2c62f --- /dev/null +++ b/site/site-assets/images/icons/btn-arrow.svg @@ -0,0 +1,3 @@ + + + diff --git a/site/site-assets/images/icons/discord.svg b/site/site-assets/images/icons/discord.svg new file mode 100644 index 000000000..c8e337722 --- /dev/null +++ b/site/site-assets/images/icons/discord.svg @@ -0,0 +1,3 @@ + + + diff --git a/site/site-assets/images/icons/feature-icon-one.svg b/site/site-assets/images/icons/feature-icon-one.svg new file mode 100644 index 000000000..112d8b05e --- /dev/null +++ b/site/site-assets/images/icons/feature-icon-one.svg @@ -0,0 +1,3 @@ + + + diff --git a/site/site-assets/images/icons/feature-icon-three.svg b/site/site-assets/images/icons/feature-icon-three.svg new file mode 100644 index 000000000..97b03568f --- /dev/null +++ b/site/site-assets/images/icons/feature-icon-three.svg @@ -0,0 +1,3 @@ + + + diff --git a/site/site-assets/images/icons/feature-icon-two.svg b/site/site-assets/images/icons/feature-icon-two.svg new file mode 100644 index 000000000..adefca93e --- /dev/null +++ b/site/site-assets/images/icons/feature-icon-two.svg @@ -0,0 +1,3 @@ + + + diff --git a/site/site-assets/images/icons/github-icon.png b/site/site-assets/images/icons/github-icon.png new file mode 100644 index 000000000..e6c1e6cc9 Binary files /dev/null and b/site/site-assets/images/icons/github-icon.png differ diff --git a/site/site-assets/images/icons/github-new.svg b/site/site-assets/images/icons/github-new.svg new file mode 100644 index 000000000..0f6759093 --- /dev/null +++ b/site/site-assets/images/icons/github-new.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/site/site-assets/images/icons/github-stars.svg b/site/site-assets/images/icons/github-stars.svg new file mode 100644 index 000000000..2b3f82d96 --- /dev/null +++ b/site/site-assets/images/icons/github-stars.svg @@ -0,0 +1,10 @@ + + + + + + + + + 6.4K + diff --git a/site/site-assets/images/icons/github.svg b/site/site-assets/images/icons/github.svg new file mode 100644 index 000000000..f5ec4e269 --- /dev/null +++ b/site/site-assets/images/icons/github.svg @@ -0,0 +1,3 @@ + + + diff --git a/site/site-assets/images/icons/logo.svg b/site/site-assets/images/icons/logo.svg new file mode 100644 index 000000000..7e193efcc --- /dev/null +++ b/site/site-assets/images/icons/logo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/site/site-assets/images/icons/new-tab.svg b/site/site-assets/images/icons/new-tab.svg new file mode 100644 index 000000000..52ae6a6e6 --- /dev/null +++ b/site/site-assets/images/icons/new-tab.svg @@ -0,0 +1,3 @@ + + + diff --git a/site/site-assets/images/icons/quote.png b/site/site-assets/images/icons/quote.png new file mode 100644 index 000000000..caa79e787 Binary files /dev/null and b/site/site-assets/images/icons/quote.png differ diff --git a/site/site-assets/images/icons/quote.svg b/site/site-assets/images/icons/quote.svg new file mode 100644 index 000000000..9016c5095 --- /dev/null +++ b/site/site-assets/images/icons/quote.svg @@ -0,0 +1,3 @@ + + + diff --git a/site/site-assets/images/icons/reddit.svg b/site/site-assets/images/icons/reddit.svg new file mode 100644 index 000000000..49ef79a87 --- /dev/null +++ b/site/site-assets/images/icons/reddit.svg @@ -0,0 +1,3 @@ + + + diff --git a/site/site-assets/images/icons/star-icon.svg b/site/site-assets/images/icons/star-icon.svg new file mode 100644 index 000000000..128e781a7 --- /dev/null +++ b/site/site-assets/images/icons/star-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/site/site-assets/images/icons/twitter.svg b/site/site-assets/images/icons/twitter.svg new file mode 100644 index 000000000..afd7ec8ea --- /dev/null +++ b/site/site-assets/images/icons/twitter.svg @@ -0,0 +1,3 @@ + + + diff --git a/site/site-assets/images/icons/x-twitter.svg b/site/site-assets/images/icons/x-twitter.svg new file mode 100644 index 000000000..860d47a38 --- /dev/null +++ b/site/site-assets/images/icons/x-twitter.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/site/site-assets/images/pattern-bg.png b/site/site-assets/images/pattern-bg.png new file mode 100644 index 000000000..18516dda9 Binary files /dev/null and b/site/site-assets/images/pattern-bg.png differ diff --git a/site/site-assets/images/plan-price-one.svg b/site/site-assets/images/plan-price-one.svg new file mode 100644 index 000000000..cc703a63e --- /dev/null +++ b/site/site-assets/images/plan-price-one.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/site/site-assets/images/plan-price-three.svg b/site/site-assets/images/plan-price-three.svg new file mode 100644 index 000000000..f72074584 --- /dev/null +++ b/site/site-assets/images/plan-price-three.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/site/site-assets/images/plan-price-two.svg b/site/site-assets/images/plan-price-two.svg new file mode 100644 index 000000000..a1a1f947b --- /dev/null +++ b/site/site-assets/images/plan-price-two.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/site/site-assets/images/twitter-feed.png b/site/site-assets/images/twitter-feed.png new file mode 100644 index 000000000..1d302abf4 Binary files /dev/null and b/site/site-assets/images/twitter-feed.png differ diff --git a/site/site-assets/js/bootstrap.min.js b/site/site-assets/js/bootstrap.min.js new file mode 100644 index 000000000..cc54a0051 --- /dev/null +++ b/site/site-assets/js/bootstrap.min.js @@ -0,0 +1,6 @@ +/*! + * Bootstrap v5.3.0 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){"use strict";function e(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t)for(const s in t)if("default"!==s){const i=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,i.get?i:{enumerable:!0,get:()=>t[s]})}return e.default=t,Object.freeze(e)}const s=e(t),i=new Map,n={set(t,e,s){i.has(t)||i.set(t,new Map);const n=i.get(t);n.has(e)||0===n.size?n.set(e,s):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>i.has(t)&&i.get(t).get(e)||null,remove(t,e){if(!i.has(t))return;const s=i.get(t);s.delete(e),0===s.size&&i.delete(t)}},o="transitionend",r=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,(t,e)=>`#${CSS.escape(e)}`)),t),a=t=>{t.dispatchEvent(new Event(o))},l=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),c=t=>l(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(r(t)):null,h=t=>{if(!l(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),s=t.closest("details:not([open])");if(!s)return e;if(s!==t){const e=t.closest("summary");if(e&&e.parentNode!==s)return!1;if(null===e)return!1}return e},d=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),u=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?u(t.parentNode):null},_=()=>{},g=t=>{t.offsetHeight},f=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,m=[],p=()=>"rtl"===document.documentElement.dir,b=t=>{var e;e=()=>{const e=f();if(e){const s=t.NAME,i=e.fn[s];e.fn[s]=t.jQueryInterface,e.fn[s].Constructor=t,e.fn[s].noConflict=()=>(e.fn[s]=i,t.jQueryInterface)}},"loading"===document.readyState?(m.length||document.addEventListener("DOMContentLoaded",()=>{for(const t of m)t()}),m.push(e)):e()},v=(t,e=[],s=t)=>"function"==typeof t?t(...e):s,y=(t,e,s=!0)=>{if(!s)return void v(t);const i=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:s}=window.getComputedStyle(t);const i=Number.parseFloat(e),n=Number.parseFloat(s);return i||n?(e=e.split(",")[0],s=s.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(s))):0})(e)+5;let n=!1;const r=({target:s})=>{s===e&&(n=!0,e.removeEventListener(o,r),v(t))};e.addEventListener(o,r),setTimeout(()=>{n||a(e)},i)},w=(t,e,s,i)=>{const n=t.length;let o=t.indexOf(e);return-1===o?!s&&i?t[n-1]:t[0]:(o+=s?1:-1,i&&(o=(o+n)%n),t[Math.max(0,Math.min(o,n-1))])},A=/[^.]*(?=\..*)\.|.*/,E=/\..*/,C=/::\d+$/,T={};let k=1;const S={mouseenter:"mouseover",mouseleave:"mouseout"},L=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${k++}`||t.uidEvent||k++}function I(t){const e=O(t);return t.uidEvent=e,T[e]=T[e]||{},T[e]}function D(t,e,s=null){return Object.values(t).find(t=>t.callable===e&&t.delegationSelector===s)}function N(t,e,s){const i="string"==typeof e,n=i?s:e||s;let o=j(t);return L.has(o)||(o=t),[i,n,o]}function P(t,e,s,i,n){if("string"!=typeof e||!t)return;let[o,r,a]=N(e,s,i);if(e in S){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=I(t),c=l[a]||(l[a]={}),h=D(c,r,o?s:null);if(h)return void(h.oneOff=h.oneOff&&n);const d=O(r,e.replace(A,"")),u=o?function(t,e,s){return function i(n){const o=t.querySelectorAll(e);for(let{target:r}=n;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return $(n,{delegateTarget:r}),i.oneOff&&F.off(t,n.type,e,s),s.apply(r,[n])}}(t,s,r):function(t,e){return function s(i){return $(i,{delegateTarget:t}),s.oneOff&&F.off(t,i.type,e),e.apply(t,[i])}}(t,r);u.delegationSelector=o?s:null,u.callable=r,u.oneOff=n,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function x(t,e,s,i,n){const o=D(e[s],i,n);o&&(t.removeEventListener(s,o,Boolean(n)),delete e[s][o.uidEvent])}function M(t,e,s,i){const n=e[s]||{};for(const[o,r]of Object.entries(n))o.includes(i)&&x(t,e,s,r.callable,r.delegationSelector)}function j(t){return t=t.replace(E,""),S[t]||t}const F={on(t,e,s,i){P(t,e,s,i,!1)},one(t,e,s,i){P(t,e,s,i,!0)},off(t,e,s,i){if("string"!=typeof e||!t)return;const[n,o,r]=N(e,s,i),a=r!==e,l=I(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const s of Object.keys(l))M(t,l,s,e.slice(1));for(const[s,i]of Object.entries(c)){const n=s.replace(C,"");a&&!e.includes(n)||x(t,l,r,i.callable,i.delegationSelector)}}else{if(!Object.keys(c).length)return;x(t,l,r,o,n?s:null)}},trigger(t,e,s){if("string"!=typeof e||!t)return null;const i=f();let n=null,o=!0,r=!0,a=!1;e!==j(e)&&i&&(n=i.Event(e,s),i(t).trigger(n),o=!n.isPropagationStopped(),r=!n.isImmediatePropagationStopped(),a=n.isDefaultPrevented());const l=$(new Event(e,{bubbles:o,cancelable:!0}),s);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&n&&n.preventDefault(),l}};function $(t,e={}){for(const[s,i]of Object.entries(e))try{t[s]=i}catch(e){Object.defineProperty(t,s,{configurable:!0,get:()=>i})}return t}function z(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function H(t){return t.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}const B={setDataAttribute(t,e,s){t.setAttribute(`data-bs-${H(e)}`,s)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${H(e)}`)},getDataAttributes(t){if(!t)return{};const e={},s=Object.keys(t.dataset).filter(t=>t.startsWith("bs")&&!t.startsWith("bsConfig"));for(const i of s){let s=i.replace(/^bs/,"");s=s.charAt(0).toLowerCase()+s.slice(1,s.length),e[s]=z(t.dataset[i])}return e},getDataAttribute:(t,e)=>z(t.getAttribute(`data-bs-${H(e)}`))};class q{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const s=l(e)?B.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof s?s:{},...l(e)?B.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[i,n]of Object.entries(e)){const e=t[i],o=l(e)?"element":null==(s=e)?`${s}`:Object.prototype.toString.call(s).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${o}" but expected type "${n}".`)}var s}}class W extends q{constructor(t,e){super(),(t=c(t))&&(this._element=t,this._config=this._getConfig(e),n.set(this._element,this.constructor.DATA_KEY,this))}dispose(){n.remove(this._element,this.constructor.DATA_KEY),F.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,s=!0){y(t,e,s)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return n.get(c(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.0"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const R=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let s=t.getAttribute("href");if(!s||!s.includes("#")&&!s.startsWith("."))return null;s.includes("#")&&!s.startsWith("#")&&(s=`#${s.split("#")[1]}`),e=s&&"#"!==s?s.trim():null}return r(e)},K={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const s=[];let i=t.parentNode.closest(e);for(;i;)s.push(i),i=i.parentNode.closest(e);return s},prev(t,e){let s=t.previousElementSibling;for(;s;){if(s.matches(e))return[s];s=s.previousElementSibling}return[]},next(t,e){let s=t.nextElementSibling;for(;s;){if(s.matches(e))return[s];s=s.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(t=>`${t}:not([tabindex^="-"])`).join(",");return this.find(e,t).filter(t=>!d(t)&&h(t))},getSelectorFromElement(t){const e=R(t);return e&&K.findOne(e)?e:null},getElementFromSelector(t){const e=R(t);return e?K.findOne(e):null},getMultipleElementsFromSelector(t){const e=R(t);return e?K.find(e):[]}},V=(t,e="hide")=>{const s=`click.dismiss${t.EVENT_KEY}`,i=t.NAME;F.on(document,s,`[data-bs-dismiss="${i}"]`,(function(s){if(["A","AREA"].includes(this.tagName)&&s.preventDefault(),d(this))return;const n=K.getElementFromSelector(this)||this.closest(`.${i}`);t.getOrCreateInstance(n)[e]()}))};class Q extends W{static get NAME(){return"alert"}close(){if(F.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,t)}_destroyElement(){this._element.remove(),F.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}V(Q,"close"),b(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}F.on(document,"click.bs.button.data-api",X,t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()}),b(Y);const U={endCallback:null,leftCallback:null,rightCallback:null},G={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class J extends q{constructor(t,e){super(),this._element=t,t&&J.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return U}static get DefaultType(){return G}static get NAME(){return"swipe"}dispose(){F.off(this._element,".bs.swipe")}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),v(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&v(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(F.on(this._element,"pointerdown.bs.swipe",t=>this._start(t)),F.on(this._element,"pointerup.bs.swipe",t=>this._end(t)),this._element.classList.add("pointer-event")):(F.on(this._element,"touchstart.bs.swipe",t=>this._start(t)),F.on(this._element,"touchmove.bs.swipe",t=>this._move(t)),F.on(this._element,"touchend.bs.swipe",t=>this._end(t)))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const Z="next",tt="prev",et="left",st="right",it="slid.bs.carousel",nt="carousel",ot="active",rt={ArrowLeft:st,ArrowRight:et},at={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},lt={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class ct extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=K.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===nt&&this.cycle()}static get Default(){return at}static get DefaultType(){return lt}static get NAME(){return"carousel"}next(){this._slide(Z)}nextWhenVisible(){!document.hidden&&h(this._element)&&this.next()}prev(){this._slide(tt)}pause(){this._isSliding&&a(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?F.one(this._element,it,()=>this.cycle()):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void F.one(this._element,it,()=>this.to(t));const s=this._getItemIndex(this._getActive());if(s===t)return;const i=t>s?Z:tt;this._slide(i,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&F.on(this._element,"keydown.bs.carousel",t=>this._keydown(t)),"hover"===this._config.pause&&(F.on(this._element,"mouseenter.bs.carousel",()=>this.pause()),F.on(this._element,"mouseleave.bs.carousel",()=>this._maybeEnableCycle())),this._config.touch&&J.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of K.find(".carousel-item img",this._element))F.on(t,"dragstart.bs.carousel",t=>t.preventDefault());const t={leftCallback:()=>this._slide(this._directionToOrder(et)),rightCallback:()=>this._slide(this._directionToOrder(st)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),500+this._config.interval))}};this._swipeHelper=new J(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=rt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=K.findOne(".active",this._indicatorsElement);e.classList.remove(ot),e.removeAttribute("aria-current");const s=K.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);s&&(s.classList.add(ot),s.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const s=this._getActive(),i=t===Z,n=e||w(this._getItems(),s,i,this._config.wrap);if(n===s)return;const o=this._getItemIndex(n),r=e=>F.trigger(this._element,e,{relatedTarget:n,direction:this._orderToDirection(t),from:this._getItemIndex(s),to:o});if(r("slide.bs.carousel").defaultPrevented)return;if(!s||!n)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=n;const l=i?"carousel-item-start":"carousel-item-end",c=i?"carousel-item-next":"carousel-item-prev";n.classList.add(c),g(n),s.classList.add(l),n.classList.add(l),this._queueCallback(()=>{n.classList.remove(l,c),n.classList.add(ot),s.classList.remove(ot,c,l),this._isSliding=!1,r(it)},s,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return K.findOne(".active.carousel-item",this._element)}_getItems(){return K.find(".carousel-item",this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===et?tt:Z:t===et?Z:tt}_orderToDirection(t){return p()?t===tt?et:st:t===tt?st:et}static jQueryInterface(t){return this.each((function(){const e=ct.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}F.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",(function(t){const e=K.getElementFromSelector(this);if(!e||!e.classList.contains(nt))return;t.preventDefault();const s=ct.getOrCreateInstance(e),i=this.getAttribute("data-bs-slide-to");return i?(s.to(i),void s._maybeEnableCycle()):"next"===B.getDataAttribute(this,"slide")?(s.next(),void s._maybeEnableCycle()):(s.prev(),void s._maybeEnableCycle())})),F.on(window,"load.bs.carousel.data-api",()=>{const t=K.find('[data-bs-ride="carousel"]');for(const e of t)ct.getOrCreateInstance(e)}),b(ct);const ht="show",dt="collapse",ut="collapsing",_t='[data-bs-toggle="collapse"]',gt={parent:null,toggle:!0},ft={parent:"(null|element)",toggle:"boolean"};class mt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const s=K.find(_t);for(const t of s){const e=K.getSelectorFromElement(t),s=K.find(e).filter(t=>t===this._element);null!==e&&s.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return gt}static get DefaultType(){return ft}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter(t=>t!==this._element).map(t=>mt.getOrCreateInstance(t,{toggle:!1}))),t.length&&t[0]._isTransitioning)return;if(F.trigger(this._element,"show.bs.collapse").defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(dt),this._element.classList.add(ut),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(ut),this._element.classList.add(dt,ht),this._element.style[e]="",F.trigger(this._element,"shown.bs.collapse")},this._element,!0),this._element.style[e]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(F.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,g(this._element),this._element.classList.add(ut),this._element.classList.remove(dt,ht);for(const t of this._triggerArray){const e=K.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(ut),this._element.classList.add(dt),F.trigger(this._element,"hidden.bs.collapse")},this._element,!0)}_isShown(t=this._element){return t.classList.contains(ht)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=c(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(_t);for(const e of t){const t=K.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=K.find(":scope .collapse .collapse",this._config.parent);return K.find(t,this._config.parent).filter(t=>!e.includes(t))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const s of t)s.classList.toggle("collapsed",!e),s.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const s=mt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===s[t])throw new TypeError(`No method named "${t}"`);s[t]()}}))}}F.on(document,"click.bs.collapse.data-api",_t,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of K.getMultipleElementsFromSelector(this))mt.getOrCreateInstance(t,{toggle:!1}).toggle()})),b(mt);const pt="dropdown",bt="ArrowUp",vt="ArrowDown",yt="click.bs.dropdown.data-api",wt="keydown.bs.dropdown.data-api",At="show",Et='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Ct=`${Et}.show`,Tt=".dropdown-menu",kt=p()?"top-end":"top-start",St=p()?"top-start":"top-end",Lt=p()?"bottom-end":"bottom-start",Ot=p()?"bottom-start":"bottom-end",It=p()?"left-start":"right-start",Dt=p()?"right-start":"left-start",Nt={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Pt={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class xt extends W{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=K.next(this._element,Tt)[0]||K.prev(this._element,Tt)[0]||K.findOne(Tt,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Nt}static get DefaultType(){return Pt}static get NAME(){return pt}toggle(){return this._isShown()?this.hide():this.show()}show(){if(d(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!F.trigger(this._element,"show.bs.dropdown",t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))F.on(t,"mouseover",_);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(At),this._element.classList.add(At),F.trigger(this._element,"shown.bs.dropdown",t)}}hide(){if(d(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!F.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))F.off(t,"mouseover",_);this._popper&&this._popper.destroy(),this._menu.classList.remove(At),this._element.classList.remove(At),this._element.setAttribute("aria-expanded","false"),B.removeDataAttribute(this._menu,"popper"),F.trigger(this._element,"hidden.bs.dropdown",t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!l(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${pt.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===s)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:l(this._config.reference)?t=c(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=s.createPopper(t,this._menu,e)}_isShown(){return this._menu.classList.contains(At)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return It;if(t.classList.contains("dropstart"))return Dt;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?St:kt:e?Ot:Lt}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(B.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...v(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const s=K.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(t=>h(t));s.length&&w(s,e,t===vt,!s.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=K.find(Ct);for(const s of e){const e=xt.getInstance(s);if(!e||!1===e._config.autoClose)continue;const i=t.composedPath(),n=i.includes(e._menu);if(i.includes(e._element)||"inside"===e._config.autoClose&&!n||"outside"===e._config.autoClose&&n)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),s="Escape"===t.key,i=[bt,vt].includes(t.key);if(!i&&!s)return;if(e&&!s)return;t.preventDefault();const n=this.matches(Et)?this:K.prev(this,Et)[0]||K.next(this,Et)[0]||K.findOne(Et,t.delegateTarget.parentNode),o=xt.getOrCreateInstance(n);if(i)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),n.focus())}}F.on(document,wt,Et,xt.dataApiKeydownHandler),F.on(document,wt,Tt,xt.dataApiKeydownHandler),F.on(document,yt,xt.clearMenus),F.on(document,"keyup.bs.dropdown.data-api",xt.clearMenus),F.on(document,yt,Et,(function(t){t.preventDefault(),xt.getOrCreateInstance(this).toggle()})),b(xt);const Mt="show",jt="mousedown.bs.backdrop",Ft={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},$t={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class zt extends q{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Ft}static get DefaultType(){return $t}static get NAME(){return"backdrop"}show(t){if(!this._config.isVisible)return void v(t);this._append();const e=this._getElement();this._config.isAnimated&&g(e),e.classList.add(Mt),this._emulateAnimation(()=>{v(t)})}hide(t){this._config.isVisible?(this._getElement().classList.remove(Mt),this._emulateAnimation(()=>{this.dispose(),v(t)})):v(t)}dispose(){this._isAppended&&(F.off(this._element,jt),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=c(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),F.on(t,jt,()=>{v(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(t){y(t,this._getElement(),this._config.isAnimated)}}const Ht=".bs.focustrap",Bt="backward",qt={autofocus:!0,trapElement:null},Wt={autofocus:"boolean",trapElement:"element"};class Rt extends q{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return qt}static get DefaultType(){return Wt}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),F.off(document,Ht),F.on(document,"focusin.bs.focustrap",t=>this._handleFocusin(t)),F.on(document,"keydown.tab.bs.focustrap",t=>this._handleKeydown(t)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,F.off(document,Ht))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const s=K.focusableChildren(e);0===s.length?e.focus():this._lastTabNavDirection===Bt?s[s.length-1].focus():s[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?Bt:"forward")}}const Kt=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Vt=".sticky-top",Qt="padding-right",Xt="margin-right";class Yt{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,Qt,e=>e+t),this._setElementAttributes(Kt,Qt,e=>e+t),this._setElementAttributes(Vt,Xt,e=>e-t)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,Qt),this._resetElementAttributes(Kt,Qt),this._resetElementAttributes(Vt,Xt)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,s){const i=this.getWidth();this._applyManipulationCallback(t,t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+i)return;this._saveInitialAttribute(t,e);const n=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${s(Number.parseFloat(n))}px`)})}_saveInitialAttribute(t,e){const s=t.style.getPropertyValue(e);s&&B.setDataAttribute(t,e,s)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,t=>{const s=B.getDataAttribute(t,e);null!==s?(B.removeDataAttribute(t,e),t.style.setProperty(e,s)):t.style.removeProperty(e)})}_applyManipulationCallback(t,e){if(l(t))e(t);else for(const s of K.find(t,this._element))e(s)}}const Ut=".bs.modal",Gt="hidden.bs.modal",Jt="show.bs.modal",Zt="modal-open",te="show",ee="modal-static",se={backdrop:!0,focus:!0,keyboard:!0},ie={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class ne extends W{constructor(t,e){super(t,e),this._dialog=K.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new Yt,this._addEventListeners()}static get Default(){return se}static get DefaultType(){return ie}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||F.trigger(this._element,Jt,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Zt),this._adjustDialog(),this._backdrop.show(()=>this._showElement(t)))}hide(){this._isShown&&!this._isTransitioning&&(F.trigger(this._element,"hide.bs.modal").defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(te),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated())))}dispose(){F.off(window,Ut),F.off(this._dialog,Ut),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new zt({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Rt({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=K.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),g(this._element),this._element.classList.add(te),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,F.trigger(this._element,"shown.bs.modal",{relatedTarget:t})},this._dialog,this._isAnimated())}_addEventListeners(){F.on(this._element,"keydown.dismiss.bs.modal",t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())}),F.on(window,"resize.bs.modal",()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),F.on(this._element,"mousedown.dismiss.bs.modal",t=>{F.one(this._element,"click.dismiss.bs.modal",e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(Zt),this._resetAdjustments(),this._scrollBar.reset(),F.trigger(this._element,Gt)})}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(F.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(ee)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(ee),this._queueCallback(()=>{this._element.classList.remove(ee),this._queueCallback(()=>{this._element.style.overflowY=e},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),s=e>0;if(s&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!s&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const s=ne.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===s[t])throw new TypeError(`No method named "${t}"`);s[t](e)}}))}}F.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=K.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),F.one(e,Jt,t=>{t.defaultPrevented||F.one(e,Gt,()=>{h(this)&&this.focus()})});const s=K.findOne(".modal.show");s&&ne.getInstance(s).hide(),ne.getOrCreateInstance(e).toggle(this)})),V(ne),b(ne);const oe="show",re="showing",ae="hiding",le=".offcanvas.show",ce="hidePrevented.bs.offcanvas",he="hidden.bs.offcanvas",de={backdrop:!0,keyboard:!0,scroll:!1},ue={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class _e extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return de}static get DefaultType(){return ue}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||F.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new Yt).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(re),this._queueCallback(()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(oe),this._element.classList.remove(re),F.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})},this._element,!0))}hide(){this._isShown&&(F.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(ae),this._backdrop.hide(),this._queueCallback(()=>{this._element.classList.remove(oe,ae),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new Yt).reset(),F.trigger(this._element,he)},this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new zt({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():F.trigger(this._element,ce)}:null})}_initializeFocusTrap(){return new Rt({trapElement:this._element})}_addEventListeners(){F.on(this._element,"keydown.dismiss.bs.offcanvas",t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():F.trigger(this._element,ce))})}static jQueryInterface(t){return this.each((function(){const e=_e.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}F.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=K.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),d(this))return;F.one(e,he,()=>{h(this)&&this.focus()});const s=K.findOne(le);s&&s!==e&&_e.getInstance(s).hide(),_e.getOrCreateInstance(e).toggle(this)})),F.on(window,"load.bs.offcanvas.data-api",()=>{for(const t of K.find(le))_e.getOrCreateInstance(t).show()}),F.on(window,"resize.bs.offcanvas",()=>{for(const t of K.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&_e.getOrCreateInstance(t).hide()}),V(_e),b(_e);const ge={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},fe=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),me=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,pe=(t,e)=>{const s=t.nodeName.toLowerCase();return e.includes(s)?!fe.has(s)||Boolean(me.test(t.nodeValue)):e.filter(t=>t instanceof RegExp).some(t=>t.test(s))},be={allowList:ge,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},ve={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},ye={entry:"(string|element|function|null)",selector:"(string|element)"};class we extends q{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return be}static get DefaultType(){return ve}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map(t=>this._resolvePossibleFunction(t)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,s]of Object.entries(this._config.content))this._setContent(t,s,e);const e=t.children[0],s=this._resolvePossibleFunction(this._config.extraClass);return s&&e.classList.add(...s.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,s]of Object.entries(t))super._typeCheckConfig({selector:e,entry:s},ye)}_setContent(t,e,s){const i=K.findOne(s,t);i&&((e=this._resolvePossibleFunction(e))?l(e)?this._putElementInTemplate(c(e),i):this._config.html?i.innerHTML=this._maybeSanitize(e):i.textContent=e:i.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,s){if(!t.length)return t;if(s&&"function"==typeof s)return s(t);const i=(new window.DOMParser).parseFromString(t,"text/html"),n=[].concat(...i.body.querySelectorAll("*"));for(const t of n){const s=t.nodeName.toLowerCase();if(!Object.keys(e).includes(s)){t.remove();continue}const i=[].concat(...t.attributes),n=[].concat(e["*"]||[],e[s]||[]);for(const e of i)pe(e,n)||t.removeAttribute(e.nodeName)}return i.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return v(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Ae=new Set(["sanitize","allowList","sanitizeFn"]),Ee="fade",Ce="show",Te=".modal",ke="hide.bs.modal",Se="hover",Le="focus",Oe={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},Ie={allowList:ge,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},De={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Ne extends W{constructor(t,e){if(void 0===s)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Ie}static get DefaultType(){return De}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),F.off(this._element.closest(Te),ke,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=F.trigger(this._element,this.constructor.eventName("show")),e=(u(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const s=this._getTipElement();this._element.setAttribute("aria-describedby",s.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(s),F.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(s),s.classList.add(Ce),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))F.on(t,"mouseover",_);this._queueCallback(()=>{F.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(this._isShown()&&!F.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(Ce),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))F.off(t,"mouseover",_);this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),F.trigger(this._element,this.constructor.eventName("hidden")))},this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Ee,Ce),e.classList.add(`bs-${this.constructor.NAME}-auto`);const s=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",s),this._isAnimated()&&e.classList.add(Ee),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new we({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ee)}_isShown(){return this.tip&&this.tip.classList.contains(Ce)}_createPopper(t){const e=v(this._config.placement,[this,t,this._element]),i=Oe[e.toUpperCase()];return s.createPopper(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(t=>Number.parseInt(t,10)):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return v(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...v(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)F.on(this._element,this.constructor.eventName("click"),this._config.selector,t=>{this._initializeOnDelegatedTarget(t).toggle()});else if("manual"!==e){const t=e===Se?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),s=e===Se?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");F.on(this._element,t,this._config.selector,t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?Le:Se]=!0,e._enter()}),F.on(this._element,s,this._config.selector,t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?Le:Se]=e._element.contains(t.relatedTarget),e._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},F.on(this._element.closest(Te),ke,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=B.getDataAttributes(this._element);for(const t of Object.keys(e))Ae.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:c(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,s]of Object.entries(this._config))this.constructor.Default[e]!==s&&(t[e]=s);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=Ne.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}b(Ne);const Pe={...Ne.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},xe={...Ne.DefaultType,content:"(null|string|element|function)"};class Me extends Ne{static get Default(){return Pe}static get DefaultType(){return xe}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=Me.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}b(Me);const je="click.bs.scrollspy",Fe="active",$e="[href]",ze={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},He={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Be extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ze}static get DefaultType(){return He}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=c(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map(t=>Number.parseFloat(t))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(F.off(this._config.target,je),F.on(this._config.target,je,$e,t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const s=this._rootElement||window,i=e.offsetTop-this._element.offsetTop;if(s.scrollTo)return void s.scrollTo({top:i,behavior:"smooth"});s.scrollTop=i}}))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(t=>this._observerCallback(t),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),s=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},i=(this._rootElement||document.documentElement).scrollTop,n=i>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=i;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(n&&t){if(s(o),!i)return}else n||t||s(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=K.find($e,this._config.target);for(const e of t){if(!e.hash||d(e))continue;const t=K.findOne(decodeURI(e.hash),this._element);h(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(Fe),this._activateParents(t),F.trigger(this._element,"activate.bs.scrollspy",{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))K.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(Fe);else for(const e of K.parents(t,".nav, .list-group"))for(const t of K.prev(e,".nav-link, .nav-item > .nav-link, .list-group-item"))t.classList.add(Fe)}_clearActiveClass(t){t.classList.remove(Fe);const e=K.find("[href].active",t);for(const t of e)t.classList.remove(Fe)}static jQueryInterface(t){return this.each((function(){const e=Be.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}F.on(window,"load.bs.scrollspy.data-api",()=>{for(const t of K.find('[data-bs-spy="scroll"]'))Be.getOrCreateInstance(t)}),b(Be);const qe="ArrowLeft",We="ArrowRight",Re="ArrowUp",Ke="ArrowDown",Ve="active",Qe="fade",Xe="show",Ye='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Ue=`.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role="tab"]:not(.dropdown-toggle), ${Ye}`;class Ge extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),F.on(this._element,"keydown.bs.tab",t=>this._keydown(t)))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),s=e?F.trigger(e,"hide.bs.tab",{relatedTarget:t}):null;F.trigger(t,"show.bs.tab",{relatedTarget:e}).defaultPrevented||s&&s.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Ve),this._activate(K.getElementFromSelector(t)),this._queueCallback(()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),F.trigger(t,"shown.bs.tab",{relatedTarget:e})):t.classList.add(Xe)},t,t.classList.contains(Qe)))}_deactivate(t,e){t&&(t.classList.remove(Ve),t.blur(),this._deactivate(K.getElementFromSelector(t)),this._queueCallback(()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),F.trigger(t,"hidden.bs.tab",{relatedTarget:e})):t.classList.remove(Xe)},t,t.classList.contains(Qe)))}_keydown(t){if(![qe,We,Re,Ke].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=[We,Ke].includes(t.key),s=w(this._getChildren().filter(t=>!d(t)),t.target,e,!0);s&&(s.focus({preventScroll:!0}),Ge.getOrCreateInstance(s).show())}_getChildren(){return K.find(Ue,this._parent)}_getActiveElem(){return this._getChildren().find(t=>this._elemIsActive(t))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),s=this._getOuterElement(t);t.setAttribute("aria-selected",e),s!==t&&this._setAttributeIfNotExists(s,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=K.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const s=this._getOuterElement(t);if(!s.classList.contains("dropdown"))return;const i=(t,i)=>{const n=K.findOne(t,s);n&&n.classList.toggle(i,e)};i(".dropdown-toggle",Ve),i(".dropdown-menu",Xe),s.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,s){t.hasAttribute(e)||t.setAttribute(e,s)}_elemIsActive(t){return t.classList.contains(Ve)}_getInnerElement(t){return t.matches(Ue)?t:K.findOne(Ue,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Ge.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}F.on(document,"click.bs.tab",Ye,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),d(this)||Ge.getOrCreateInstance(this).show()})),F.on(window,"load.bs.tab",()=>{for(const t of K.find('.active[data-bs-toggle="tab"], .active[data-bs-toggle="pill"], .active[data-bs-toggle="list"]'))Ge.getOrCreateInstance(t)}),b(Ge);const Je="hide",Ze="show",ts="showing",es={animation:"boolean",autohide:"boolean",delay:"number"},ss={animation:!0,autohide:!0,delay:5e3};class is extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return ss}static get DefaultType(){return es}static get NAME(){return"toast"}show(){F.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(Je),g(this._element),this._element.classList.add(Ze,ts),this._queueCallback(()=>{this._element.classList.remove(ts),F.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this.isShown()&&(F.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(ts),this._queueCallback(()=>{this._element.classList.add(Je),this._element.classList.remove(ts,Ze),F.trigger(this._element,"hidden.bs.toast")},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(Ze),super.dispose()}isShown(){return this._element.classList.contains(Ze)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const s=t.relatedTarget;this._element===s||this._element.contains(s)||this._maybeScheduleHide()}_setListeners(){F.on(this._element,"mouseover.bs.toast",t=>this._onInteraction(t,!0)),F.on(this._element,"mouseout.bs.toast",t=>this._onInteraction(t,!1)),F.on(this._element,"focusin.bs.toast",t=>this._onInteraction(t,!0)),F.on(this._element,"focusout.bs.toast",t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=is.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return V(is),b(is),{Alert:Q,Button:Y,Carousel:ct,Collapse:mt,Dropdown:xt,Modal:ne,Offcanvas:_e,Popover:Me,ScrollSpy:Be,Tab:Ge,Toast:is,Tooltip:Ne}})); \ No newline at end of file diff --git a/site/site-assets/js/jquery.min.js b/site/site-assets/js/jquery.min.js new file mode 100644 index 000000000..e7e29d5b2 --- /dev/null +++ b/site/site-assets/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.7.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.0",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},R=function(){V()},M=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&z(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function X(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&M(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function U(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function z(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",R),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Me(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return R(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return R(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0=o.clientWidth&&n>=o.clientHeight}),l=0n[e]&&!t.escapeWithReference&&(i=X(p[o],n[e]-('right'===e?p.width:p.height))),se({},o,i)}};return i.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=de({},p,s[t](e))}),e.offsets.popper=p,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=J,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!q(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',g=a?'bottom':'right',u=L(i)[l];d[g]-us[g]&&(e.offsets.popper[m]+=d[m]+u-s[g]),e.offsets.popper=c(e.offsets.popper);var b=d[m]+d[l]/2-u/2,y=t(e.instance.popper),w=parseFloat(y['margin'+f],10),E=parseFloat(y['border'+f+'Width'],10),v=b-e.offsets.popper[m]-w-E;return v=Q(X(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},se(n,m,Math.round(v)),se(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(P(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=E(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=S(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case fe.FLIP:p=[n,i];break;case fe.CLOCKWISE:p=V(n);break;case fe.COUNTERCLOCKWISE:p=V(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=S(n);var a=e.offsets.popper,l=e.offsets.reference,f=J,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)f(l.top)||'bottom'===n&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,y=-1!==['top','bottom'].indexOf(n),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),w&&(r=K(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=de({},e.offsets.popper,T(e.instance.popper,e.offsets.reference,e.placement)),e=N(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=S(t),e.offsets.popper=c(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!q(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=D(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.right= g.reach); + A += w.value.length, w = w.next + ) { + var E = w.value; + if (n.length > e.length) return; + if (!(E instanceof i)) { + var P, + L = 1; + if (y) { + if (!(P = l(b, A, e, m)) || P.index >= e.length) break; + var S = P.index, + O = P.index + P[0].length, + j = A; + for (j += w.value.length; S >= j; ) + j += (w = w.next).value.length; + if (((A = j -= w.value.length), w.value instanceof i)) + continue; + for ( + var C = w; + C !== n.tail && (j < O || "string" == typeof C.value); + C = C.next + ) + L++, (j += C.value.length); + L--, (E = e.slice(A, j)), (P.index -= A); + } else if (!(P = l(b, 0, E, m))) continue; + S = P.index; + var N = P[0], + _ = E.slice(0, S), + M = E.slice(S + N.length), + W = A + E.length; + g && W > g.reach && (g.reach = W); + var z = w.prev; + if ( + (_ && ((z = u(n, z, _)), (A += _.length)), + c(n, z, L), + (w = u(n, z, new i(f, p ? a.tokenize(N, p) : N, k, N))), + M && u(n, w, M), + L > 1) + ) { + var I = { cause: f + "," + d, reach: W }; + o(e, n, t, w.prev, A, I), + g && I.reach > g.reach && (g.reach = I.reach); + } + } + } + } + } + } + function s() { + var e = { value: null, prev: null, next: null }, + n = { value: null, prev: e, next: null }; + (e.next = n), (this.head = e), (this.tail = n), (this.length = 0); + } + function u(e, n, t) { + var r = n.next, + a = { value: t, prev: n, next: r }; + return (n.next = a), (r.prev = a), e.length++, a; + } + function c(e, n, t) { + for (var r = n.next, a = 0; a < t && r !== e.tail; a++) r = r.next; + (n.next = r), (r.prev = n), (e.length -= a); + } + if ( + ((e.Prism = a), + (i.stringify = function e(n, t) { + if ("string" == typeof n) return n; + if (Array.isArray(n)) { + var r = ""; + return ( + n.forEach(function (n) { + r += e(n, t); + }), + r + ); + } + var i = { + type: n.type, + content: e(n.content, t), + tag: "span", + classes: ["token", n.type], + attributes: {}, + language: t, + }, + l = n.alias; + l && + (Array.isArray(l) + ? Array.prototype.push.apply(i.classes, l) + : i.classes.push(l)), + a.hooks.run("wrap", i); + var o = ""; + for (var s in i.attributes) + o += + " " + + s + + '="' + + (i.attributes[s] || "").replace(/"/g, """) + + '"'; + return ( + "<" + + i.tag + + ' class="' + + i.classes.join(" ") + + '"' + + o + + ">" + + i.content + + "" + ); + }), + !e.document) + ) + return e.addEventListener + ? (a.disableWorkerMessageHandler || + e.addEventListener( + "message", + function (n) { + var t = JSON.parse(n.data), + r = t.language, + i = t.code, + l = t.immediateClose; + e.postMessage(a.highlight(i, a.languages[r], r)), + l && e.close(); + }, + !1 + ), + a) + : a; + var g = a.util.currentScript(); + function f() { + a.manual || a.highlightAll(); + } + if ( + (g && + ((a.filename = g.src), + g.hasAttribute("data-manual") && (a.manual = !0)), + !a.manual) + ) { + var h = document.readyState; + "loading" === h || ("interactive" === h && g && g.defer) + ? document.addEventListener("DOMContentLoaded", f) + : window.requestAnimationFrame + ? window.requestAnimationFrame(f) + : window.setTimeout(f, 16); + } + return a; + })(_self); +"undefined" != typeof module && module.exports && (module.exports = Prism), + "undefined" != typeof global && (global.Prism = Prism); +(Prism.languages.markup = { + comment: { pattern: //, greedy: !0 }, + prolog: { pattern: /<\?[\s\S]+?\?>/, greedy: !0 }, + doctype: { + pattern: + /"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i, + greedy: !0, + inside: { + "internal-subset": { + pattern: /(^[^\[]*\[)[\s\S]+(?=\]>$)/, + lookbehind: !0, + greedy: !0, + inside: null, + }, + string: { pattern: /"[^"]*"|'[^']*'/, greedy: !0 }, + punctuation: /^$|[[\]]/, + "doctype-tag": /^DOCTYPE/i, + name: /[^\s<>'"]+/, + }, + }, + cdata: { pattern: //i, greedy: !0 }, + tag: { + pattern: + /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/, + greedy: !0, + inside: { + tag: { + pattern: /^<\/?[^\s>\/]+/, + inside: { punctuation: /^<\/?/, namespace: /^[^\s>\/:]+:/ }, + }, + "special-attr": [], + "attr-value": { + pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/, + inside: { + punctuation: [ + { pattern: /^=/, alias: "attr-equals" }, + { pattern: /^(\s*)["']|["']$/, lookbehind: !0 }, + ], + }, + }, + punctuation: /\/?>/, + "attr-name": { + pattern: /[^\s>\/]+/, + inside: { namespace: /^[^\s>\/:]+:/ }, + }, + }, + }, + entity: [ + { pattern: /&[\da-z]{1,8};/i, alias: "named-entity" }, + /&#x?[\da-f]{1,8};/i, + ], +}), + (Prism.languages.markup.tag.inside["attr-value"].inside.entity = + Prism.languages.markup.entity), + (Prism.languages.markup.doctype.inside["internal-subset"].inside = + Prism.languages.markup), + Prism.hooks.add("wrap", function (a) { + "entity" === a.type && + (a.attributes.title = a.content.replace(/&/, "&")); + }), + Object.defineProperty(Prism.languages.markup.tag, "addInlined", { + value: function (a, e) { + var s = {}; + (s["language-" + e] = { + pattern: /(^$)/i, + lookbehind: !0, + inside: Prism.languages[e], + }), + (s.cdata = /^$/i); + var t = { + "included-cdata": { pattern: //i, inside: s }, + }; + t["language-" + e] = { pattern: /[\s\S]+/, inside: Prism.languages[e] }; + var n = {}; + (n[a] = { + pattern: RegExp( + "(<__[^>]*>)(?:))*\\]\\]>|(?!)".replace( + /__/g, + function () { + return a; + } + ), + "i" + ), + lookbehind: !0, + greedy: !0, + inside: t, + }), + Prism.languages.insertBefore("markup", "cdata", n); + }, + }), + Object.defineProperty(Prism.languages.markup.tag, "addAttribute", { + value: function (a, e) { + Prism.languages.markup.tag.inside["special-attr"].push({ + pattern: RegExp( + "(^|[\"'\\s])(?:" + + a + + ")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))", + "i" + ), + lookbehind: !0, + inside: { + "attr-name": /^[^\s=]+/, + "attr-value": { + pattern: /=[\s\S]+/, + inside: { + value: { + pattern: /(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/, + lookbehind: !0, + alias: [e, "language-" + e], + inside: Prism.languages[e], + }, + punctuation: [{ pattern: /^=/, alias: "attr-equals" }, /"|'/], + }, + }, + }, + }); + }, + }), + (Prism.languages.html = Prism.languages.markup), + (Prism.languages.mathml = Prism.languages.markup), + (Prism.languages.svg = Prism.languages.markup), + (Prism.languages.xml = Prism.languages.extend("markup", {})), + (Prism.languages.ssml = Prism.languages.xml), + (Prism.languages.atom = Prism.languages.xml), + (Prism.languages.rss = Prism.languages.xml); +!(function (s) { + var e = + /(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/; + (s.languages.css = { + comment: /\/\*[\s\S]*?\*\//, + atrule: { + pattern: RegExp( + "@[\\w-](?:[^;{\\s\"']|\\s+(?!\\s)|" + e.source + ")*?(?:;|(?=\\s*\\{))" + ), + inside: { + rule: /^@[\w-]+/, + "selector-function-argument": { + pattern: + /(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/, + lookbehind: !0, + alias: "selector", + }, + keyword: { + pattern: /(^|[^\w-])(?:and|not|only|or)(?![\w-])/, + lookbehind: !0, + }, + }, + }, + url: { + pattern: RegExp( + "\\burl\\((?:" + e.source + "|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)", + "i" + ), + greedy: !0, + inside: { + function: /^url/i, + punctuation: /^\(|\)$/, + string: { pattern: RegExp("^" + e.source + "$"), alias: "url" }, + }, + }, + selector: { + pattern: RegExp( + "(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|" + + e.source + + ")*(?=\\s*\\{)" + ), + lookbehind: !0, + }, + string: { pattern: e, greedy: !0 }, + property: { + pattern: + /(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i, + lookbehind: !0, + }, + important: /!important\b/i, + function: { pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i, lookbehind: !0 }, + punctuation: /[(){};:,]/, + }), + (s.languages.css.atrule.inside.rest = s.languages.css); + var t = s.languages.markup; + t && (t.tag.addInlined("style", "css"), t.tag.addAttribute("style", "css")); +})(Prism); +Prism.languages.clike = { + comment: [ + { pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, lookbehind: !0, greedy: !0 }, + { pattern: /(^|[^\\:])\/\/.*/, lookbehind: !0, greedy: !0 }, + ], + string: { + pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, + greedy: !0, + }, + "class-name": { + pattern: + /(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i, + lookbehind: !0, + inside: { punctuation: /[.\\]/ }, + }, + keyword: + /\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/, + boolean: /\b(?:false|true)\b/, + function: /\b\w+(?=\()/, + number: /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i, + operator: /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/, + punctuation: /[{}[\];(),.:]/, +}; +(Prism.languages.javascript = Prism.languages.extend("clike", { + "class-name": [ + Prism.languages.clike["class-name"], + { + pattern: + /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/, + lookbehind: !0, + }, + ], + keyword: [ + { pattern: /((?:^|\})\s*)catch\b/, lookbehind: !0 }, + { + pattern: + /(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/, + lookbehind: !0, + }, + ], + function: + /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/, + number: { + pattern: RegExp( + "(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])" + ), + lookbehind: !0, + }, + operator: + /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/, +})), + (Prism.languages.javascript["class-name"][0].pattern = + /(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/), + Prism.languages.insertBefore("javascript", "keyword", { + regex: { + pattern: RegExp( + "((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/(?:(?:\\[(?:[^\\]\\\\\r\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|/\\*(?:[^*]|\\*(?!/))*\\*/)*(?:$|[\r\n,.;:})\\]]|//))" + ), + lookbehind: !0, + greedy: !0, + inside: { + "regex-source": { + pattern: /^(\/)[\s\S]+(?=\/[a-z]*$)/, + lookbehind: !0, + alias: "language-regex", + inside: Prism.languages.regex, + }, + "regex-delimiter": /^\/|\/$/, + "regex-flags": /^[a-z]+$/, + }, + }, + "function-variable": { + pattern: + /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/, + alias: "function", + }, + parameter: [ + { + pattern: + /(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/, + lookbehind: !0, + inside: Prism.languages.javascript, + }, + { + pattern: + /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i, + lookbehind: !0, + inside: Prism.languages.javascript, + }, + { + pattern: + /(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/, + lookbehind: !0, + inside: Prism.languages.javascript, + }, + { + pattern: + /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/, + lookbehind: !0, + inside: Prism.languages.javascript, + }, + ], + constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/, + }), + Prism.languages.insertBefore("javascript", "string", { + hashbang: { pattern: /^#!.*/, greedy: !0, alias: "comment" }, + "template-string": { + pattern: + /`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/, + greedy: !0, + inside: { + "template-punctuation": { pattern: /^`|`$/, alias: "string" }, + interpolation: { + pattern: + /((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/, + lookbehind: !0, + inside: { + "interpolation-punctuation": { + pattern: /^\$\{|\}$/, + alias: "punctuation", + }, + rest: Prism.languages.javascript, + }, + }, + string: /[\s\S]+/, + }, + }, + "string-property": { + pattern: + /((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m, + lookbehind: !0, + greedy: !0, + alias: "property", + }, + }), + Prism.languages.insertBefore("javascript", "operator", { + "literal-property": { + pattern: + /((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m, + lookbehind: !0, + alias: "property", + }, + }), + Prism.languages.markup && + (Prism.languages.markup.tag.addInlined("script", "javascript"), + Prism.languages.markup.tag.addAttribute( + "on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)", + "javascript" + )), + (Prism.languages.js = Prism.languages.javascript); +!(function () { + if ("undefined" != typeof Prism && "undefined" != typeof document) { + var e = "line-numbers", + n = /\n(?!$)/g, + t = (Prism.plugins.lineNumbers = { + getLine: function (n, t) { + if ("PRE" === n.tagName && n.classList.contains(e)) { + var i = n.querySelector(".line-numbers-rows"); + if (i) { + var r = parseInt(n.getAttribute("data-start"), 10) || 1, + s = r + (i.children.length - 1); + t < r && (t = r), t > s && (t = s); + var l = t - r; + return i.children[l]; + } + } + }, + resize: function (e) { + r([e]); + }, + assumeViewportIndependence: !0, + }), + i = void 0; + window.addEventListener("resize", function () { + (t.assumeViewportIndependence && i === window.innerWidth) || + ((i = window.innerWidth), + r( + Array.prototype.slice.call( + document.querySelectorAll("pre.line-numbers") + ) + )); + }), + Prism.hooks.add("complete", function (t) { + if (t.code) { + var i = t.element, + s = i.parentNode; + if ( + s && + /pre/i.test(s.nodeName) && + !i.querySelector(".line-numbers-rows") && + Prism.util.isActive(i, e) + ) { + i.classList.remove(e), s.classList.add(e); + var l, + o = t.code.match(n), + a = o ? o.length + 1 : 1, + u = new Array(a + 1).join(""); + (l = document.createElement("span")).setAttribute( + "aria-hidden", + "true" + ), + (l.className = "line-numbers-rows"), + (l.innerHTML = u), + s.hasAttribute("data-start") && + (s.style.counterReset = + "linenumber " + + (parseInt(s.getAttribute("data-start"), 10) - 1)), + t.element.appendChild(l), + r([s]), + Prism.hooks.run("line-numbers", t); + } + } + }), + Prism.hooks.add("line-numbers", function (e) { + (e.plugins = e.plugins || {}), (e.plugins.lineNumbers = !0); + }); + } + function r(e) { + if ( + 0 != + (e = e.filter(function (e) { + var n, + t = ((n = e), + n + ? window.getComputedStyle + ? getComputedStyle(n) + : n.currentStyle || null + : null)["white-space"]; + return "pre-wrap" === t || "pre-line" === t; + })).length + ) { + var t = e + .map(function (e) { + var t = e.querySelector("code"), + i = e.querySelector(".line-numbers-rows"); + if (t && i) { + var r = e.querySelector(".line-numbers-sizer"), + s = t.textContent.split(n); + r || + (((r = document.createElement("span")).className = + "line-numbers-sizer"), + t.appendChild(r)), + (r.innerHTML = "0"), + (r.style.display = "block"); + var l = r.getBoundingClientRect().height; + return ( + (r.innerHTML = ""), + { + element: e, + lines: s, + lineHeights: [], + oneLinerHeight: l, + sizer: r, + } + ); + } + }) + .filter(Boolean); + t.forEach(function (e) { + var n = e.sizer, + t = e.lines, + i = e.lineHeights, + r = e.oneLinerHeight; + (i[t.length - 1] = void 0), + t.forEach(function (e, t) { + if (e && e.length > 1) { + var s = n.appendChild(document.createElement("span")); + (s.style.display = "block"), (s.textContent = e); + } else i[t] = r; + }); + }), + t.forEach(function (e) { + for ( + var n = e.sizer, t = e.lineHeights, i = 0, r = 0; + r < t.length; + r++ + ) + void 0 === t[r] && + (t[r] = n.children[i++].getBoundingClientRect().height); + }), + t.forEach(function (e) { + var n = e.sizer, + t = e.element.querySelector(".line-numbers-rows"); + (n.style.display = "none"), + (n.innerHTML = ""), + e.lineHeights.forEach(function (e, n) { + t.children[n].style.height = e + "px"; + }); + }); + } + } +})(); +!(function () { + if ("undefined" != typeof Prism && "undefined" != typeof document) { + var e = [], + t = {}, + n = function () {}; + Prism.plugins.toolbar = {}; + var a = (Prism.plugins.toolbar.registerButton = function (n, a) { + var r; + (r = + "function" == typeof a + ? a + : function (e) { + var t; + return ( + "function" == typeof a.onClick + ? (((t = document.createElement("button")).type = "button"), + t.addEventListener("click", function () { + a.onClick.call(this, e); + })) + : "string" == typeof a.url + ? ((t = document.createElement("a")).href = a.url) + : (t = document.createElement("span")), + a.className && t.classList.add(a.className), + (t.textContent = a.text), + t + ); + }), + n in t + ? console.warn( + 'There is a button with the key "' + n + '" registered already.' + ) + : e.push((t[n] = r)); + }), + r = (Prism.plugins.toolbar.hook = function (a) { + var r = a.element.parentNode; + if ( + r && + /pre/i.test(r.nodeName) && + !r.parentNode.classList.contains("code-toolbar") + ) { + var o = document.createElement("div"); + o.classList.add("code-toolbar"), + r.parentNode.insertBefore(o, r), + o.appendChild(r); + var i = document.createElement("div"); + i.classList.add("toolbar"); + var l = e, + d = (function (e) { + for (; e; ) { + var t = e.getAttribute("data-toolbar-order"); + if (null != t) + return (t = t.trim()).length ? t.split(/\s*,\s*/g) : []; + e = e.parentElement; + } + })(a.element); + d && + (l = d.map(function (e) { + return t[e] || n; + })), + l.forEach(function (e) { + var t = e(a); + if (t) { + var n = document.createElement("div"); + n.classList.add("toolbar-item"), + n.appendChild(t), + i.appendChild(n); + } + }), + o.appendChild(i); + } + }); + a("label", function (e) { + var t = e.element.parentNode; + if (t && /pre/i.test(t.nodeName) && t.hasAttribute("data-label")) { + var n, + a, + r = t.getAttribute("data-label"); + try { + a = document.querySelector("template#" + r); + } catch (e) {} + return ( + a + ? (n = a.content) + : (t.hasAttribute("data-url") + ? ((n = document.createElement("a")).href = + t.getAttribute("data-url")) + : (n = document.createElement("span")), + (n.textContent = r)), + n + ); + } + }), + Prism.hooks.add("complete", r); + } +})(); +!(function () { + function t(t) { + var e = document.createElement("textarea"); + (e.value = t.getText()), + (e.style.top = "0"), + (e.style.left = "0"), + (e.style.position = "fixed"), + document.body.appendChild(e), + e.focus(), + e.select(); + try { + var o = document.execCommand("copy"); + setTimeout(function () { + o ? t.success() : t.error(); + }, 1); + } catch (e) { + setTimeout(function () { + t.error(e); + }, 1); + } + document.body.removeChild(e); + } + "undefined" != typeof Prism && + "undefined" != typeof document && + (Prism.plugins.toolbar + ? Prism.plugins.toolbar.registerButton("copy-to-clipboard", function (e) { + var o = e.element, + n = (function (t) { + var e = { + copy: "Copy", + "copy-error": "Press Ctrl+C to copy", + "copy-success": "Copied!", + "copy-timeout": 5e3, + }; + for (var o in e) { + for ( + var n = "data-prismjs-" + o, c = t; + c && !c.hasAttribute(n); + + ) + c = c.parentElement; + c && (e[o] = c.getAttribute(n)); + } + return e; + })(o), + c = document.createElement("button"); + (c.className = "copy-to-clipboard-button"), + c.setAttribute("type", "button"); + var r = document.createElement("span"); + return ( + c.appendChild(r), + u("copy"), + (function (e, o) { + e.addEventListener("click", function () { + !(function (e) { + navigator.clipboard + ? navigator.clipboard + .writeText(e.getText()) + .then(e.success, function () { + t(e); + }) + : t(e); + })(o); + }); + })(c, { + getText: function () { + return o.textContent; + }, + success: function () { + u("copy-success"), i(); + }, + error: function () { + u("copy-error"), + setTimeout(function () { + !(function (t) { + window.getSelection().selectAllChildren(t); + })(o); + }, 1), + i(); + }, + }), + c + ); + function i() { + setTimeout(function () { + u("copy"); + }, n["copy-timeout"]); + } + function u(t) { + (r.textContent = n[t]), c.setAttribute("data-copy-state", t); + } + }) + : console.warn("Copy to Clipboard plugin loaded before Toolbar plugin.")); +})(); diff --git a/site/site-assets/js/setting.js b/site/site-assets/js/setting.js new file mode 100644 index 000000000..f6ac25de8 --- /dev/null +++ b/site/site-assets/js/setting.js @@ -0,0 +1,113 @@ +// Header Fixed +var headerwrap = jQuery(".header-wrap"); +jQuery(window).on("scroll", function () { + if (jQuery(this).scrollTop() > 0) { + headerwrap.addClass("sticky"); + } else { + headerwrap.removeClass("sticky"); + } +}); + +jQuery(document).ready(function () { + var headerwrap = jQuery(".header-wrap"); + // Background image + jQuery(".bg_img").each(function (i, elem) { + var img = $(elem); + jQuery(this).hide(); + jQuery(this) + .parent() + .css({ + background: + "url(" + img.attr("src") + ") no-repeat no-repeat center center", + }); + }); + + jQuery(".menu").on("click", function () { + jQuery(".header-wrap .right").toggleClass("open"); + jQuery("body").toggleClass("pause"); + jQuery(this).toggleClass("open"); + }); + + // Scroll Offset + var headerheight = headerwrap.height(); + jQuery(".offset-top").on("click", function (e) { + e.preventDefault(); + var target = jQuery(this).data("id"); + jQuery("html, body") + .stop() + .animate( + { + scrollTop: jQuery("#" + target).offset().top - (headerheight + 15), + }, + 1000, + "swing", + function () {} + ); + }); + + // SVG Create + + jQuery("img.svg").each(function () { + var $img = jQuery(this); + var imgID = $img.attr("id"); + var imgClass = $img.attr("class"); + var imgURL = $img.attr("src"); + jQuery.get( + imgURL, + function (data) { + var $svg = jQuery(data).find("svg"); + if (typeof imgID !== "undefined") { + $svg = $svg.attr("id", imgID); + } + if (typeof imgClass !== "undefined") { + $svg = $svg.attr("class", imgClass + " replaced-svg"); + } + $svg = $svg.removeAttr("xmlns:a"); + if ( + !$svg.attr("viewBox") && + $svg.attr("height") && + $svg.attr("width") + ) { + $svg.attr( + "viewBox", + "0 0 " + $svg.attr("height") + " " + $svg.attr("width") + ); + } + $img.replaceWith($svg); + }, + "xml" + ); + }); + + const testimonials_slider = new Swiper(".testimonials-slider", { + speed: 700, + spaceBetween: 20, + slidesPerView: "auto", + loop: false, + freeMode: true, + }); + + const install_slider = new Swiper(".install-slider", { + speed: 700, + spaceBetween: 20, + slidesPerView: "auto", + loop: false, + freeMode: true, + breakpoints: { + 991: { + spaceBetween: 20, + }, + 767: { + spaceBetween: 12, + }, + }, + }); + + const pricing_slider = new Swiper(".pricing-slider", { + speed: 700, + spaceBetween: 20, + slidesPerView: "auto", + loop: false, + freeMode: true, + }); +}); diff --git a/site/site-assets/js/swiper-bundle.min.js b/site/site-assets/js/swiper-bundle.min.js new file mode 100644 index 000000000..ffeb4b753 --- /dev/null +++ b/site/site-assets/js/swiper-bundle.min.js @@ -0,0 +1,13 @@ +/** + * Swiper 9.2.4 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * https://swiperjs.com + * + * Copyright 2014-2023 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: April 21, 2023 + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Swiper=t()}(this,(function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={}),Object.keys(a).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}function n(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function l(){return Date.now()}function o(e,t){void 0===t&&(t="x");const s=r();let a,i,n;const l=function(e){const t=r();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(i=l.transform||l.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function d(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function c(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function p(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let s=1;st.indexOf(e)<0));for(let t=0,i=s.length;tn?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}function h(e){return e.querySelector(".swiper-slide-transform")||e.shadowEl&&e.shadowEl.querySelector(".swiper-slide-transform")||e}function f(e,t){return void 0===t&&(t=""),[...e.children].filter((e=>e.matches(t)))}function g(e,t){void 0===t&&(t=[]);const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:[t]),s}function v(e){const t=r(),s=a(),i=e.getBoundingClientRect(),n=s.body,l=e.clientTop||n.clientTop||0,o=e.clientLeft||n.clientLeft||0,d=e===t?t.scrollY:e.scrollTop,c=e===t?t.scrollX:e.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}function w(e,t){return r().getComputedStyle(e,null).getPropertyValue(t)}function b(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function y(e,t){const s=[];let a=e.parentElement;for(;a;)t?a.matches(t)&&s.push(a):s.push(a),a=a.parentElement;return s}function E(e,t){t&&e.addEventListener("transitionend",(function s(a){a.target===e&&(t.call(e,a),e.removeEventListener("transitionend",s))}))}function x(e,t,s){const a=r();return s?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}let S,T,M;function C(){return S||(S=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),S}function P(e){return void 0===e&&(e={}),T||(T=function(e){let{userAgent:t}=void 0===e?{}:e;const s=C(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),m=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!h&&(l.os="android",l.android=!0),(p||m||u)&&(l.os="ios",l.ios=!0),l}(e)),T}function L(){return M||(M=function(){const e=r();let t=!1;function s(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}if(s()){const s=String(e.navigator.userAgent);if(s.includes("Version/")){const[e,a]=s.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));t=e<16||16===e&&a<2}}return{isSafari:t||s(),needPerspectiveFix:t,isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),M}var z={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};const A=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){const t=s.querySelector(`.${e.params.lazyPreloaderClass}`);t&&t.remove()}},$=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},I=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const s=e.slides.length;if(!s||!t||t<0)return;t=Math.min(t,s);const a="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),i=e.activeIndex,r=i+a-1;if(e.params.rewind)for(let a=i-t;a<=r+t;a+=1){const t=(a%s+s)%s;t!==i&&t>r&&$(e,t)}else for(let a=Math.max(r-t,0);a<=Math.min(r+t,s-1);a+=1)a!==i&&a>r&&$(e,a)};var k={updateSize:function(){const e=this;let t,s;const a=e.el;t=void 0!==e.params.width&&null!==e.params.width?e.params.width:a.clientWidth,s=void 0!==e.params.height&&null!==e.params.height?e.params.height:a.clientHeight,0===t&&e.isHorizontal()||0===s&&e.isVertical()||(t=t-parseInt(w(a,"padding-left")||0,10)-parseInt(w(a,"padding-right")||0,10),s=s-parseInt(w(a,"padding-top")||0,10)-parseInt(w(a,"padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(s)&&(s=0),Object.assign(e,{width:t,height:s,size:e.isHorizontal()?t:s}))},updateSlides:function(){const e=this;function t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}function s(e,s){return parseFloat(e.getPropertyValue(t(s))||0)}const a=e.params,{wrapperEl:i,slidesEl:r,size:n,rtlTranslate:l,wrongRTL:o}=e,d=e.virtual&&a.virtual.enabled,c=d?e.virtual.slides.length:e.slides.length,p=f(r,`.${e.params.slideClass}, swiper-slide`),m=d?e.virtual.slides.length:p.length;let h=[];const g=[],v=[];let b=a.slidesOffsetBefore;"function"==typeof b&&(b=a.slidesOffsetBefore.call(e));let y=a.slidesOffsetAfter;"function"==typeof y&&(y=a.slidesOffsetAfter.call(e));const E=e.snapGrid.length,S=e.slidesGrid.length;let T=a.spaceBetween,M=-b,C=0,P=0;if(void 0===n)return;"string"==typeof T&&T.indexOf("%")>=0&&(T=parseFloat(T.replace("%",""))/100*n),e.virtualSize=-T,p.forEach((e=>{l?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),a.centeredSlides&&a.cssMode&&(u(i,"--swiper-centered-offset-before",""),u(i,"--swiper-centered-offset-after",""));const L=a.grid&&a.grid.rows>1&&e.grid;let z;L&&e.grid.initSlides(m);const A="auto"===a.slidesPerView&&a.breakpoints&&Object.keys(a.breakpoints).filter((e=>void 0!==a.breakpoints[e].slidesPerView)).length>0;for(let i=0;i1&&h.push(e.virtualSize-n)}if(d&&a.loop){const t=v[0]+T;if(a.slidesPerGroup>1){const s=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/a.slidesPerGroup),i=t*a.slidesPerGroup;for(let e=0;e!(a.cssMode&&!a.loop)||t!==p.length-1)).forEach((e=>{e.style[s]=`${T}px`}))}if(a.centeredSlides&&a.centeredSlidesBounds){let e=0;v.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween;const t=e-n;h=h.map((e=>e<0?-b:e>t?t+y:e))}if(a.centerInsufficientSlides){let e=0;if(v.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween,e{h[s]=e-t})),g.forEach(((e,s)=>{g[s]=e+t}))}}if(Object.assign(e,{slides:p,snapGrid:h,slidesGrid:g,slidesSizesGrid:v}),a.centeredSlides&&a.cssMode&&!a.centeredSlidesBounds){u(i,"--swiper-centered-offset-before",-h[0]+"px"),u(i,"--swiper-centered-offset-after",e.size/2-v[v.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(m!==c&&e.emit("slidesLengthChange"),h.length!==E&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),g.length!==S&&e.emit("slidesGridLengthChange"),a.watchSlidesProgress&&e.updateSlidesOffset(),!(d||a.cssMode||"slide"!==a.effect&&"fade"!==a.effect)){const t=`${a.containerModifierClass}backface-hidden`,s=e.el.classList.contains(t);m<=a.maxBackfaceHiddenSlides?s||e.el.classList.add(t):s&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides[t.getSlideIndexByData(e)]:t.slides[e];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach((e=>{s.push(e)}));else for(i=0;it.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;ir?e:r}(r||0===r)&&(t.wrapperEl.style.height=`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,s=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let a=0;a{e.classList.remove(s.slideVisibleClass)})),t.visibleSlidesIndexes=[],t.visibleSlides=[];for(let e=0;e=0&&p1&&u<=t.size||p<=0&&u>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(e),a[e].classList.add(s.slideVisibleClass)),l.progress=i?-d:d,l.originalProgress=i?-c:c}},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n,progressLoop:l}=t;const o=r,d=n;if(0===a)i=0,r=!0,n=!0;else{i=(e-t.minTranslate())/a;const s=Math.abs(e-t.minTranslate())<1,l=Math.abs(e-t.maxTranslate())<1;r=s||i<=0,n=l||i>=1,s&&(i=0),l&&(i=1)}if(s.loop){const s=t.getSlideIndexByData(0),a=t.getSlideIndexByData(t.slides.length-1),i=t.slidesGrid[s],r=t.slidesGrid[a],n=t.slidesGrid[t.slidesGrid.length-1],o=Math.abs(e);l=o>=i?(o-i)/n:(o+n-r)/n,l>1&&(l-=1)}Object.assign(t,{progress:i,progressLoop:l,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!o&&t.emit("reachBeginning toEdge"),n&&!d&&t.emit("reachEnd toEdge"),(o&&!r||d&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,slidesEl:a,activeIndex:i}=e,r=e.virtual&&s.virtual.enabled,n=e=>f(a,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let l;if(t.forEach((e=>{e.classList.remove(s.slideActiveClass,s.slideNextClass,s.slidePrevClass)})),r)if(s.loop){let t=i-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),l=n(`[data-swiper-slide-index="${t}"]`)}else l=n(`[data-swiper-slide-index="${i}"]`);else l=t[i];if(l){l.classList.add(s.slideActiveClass);let e=function(e,t){const s=[];for(;e.nextElementSibling;){const a=e.nextElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(l,`.${s.slideClass}, swiper-slide`)[0];s.loop&&!e&&(e=t[0]),e&&e.classList.add(s.slideNextClass);let a=function(e,t){const s=[];for(;e.previousElementSibling;){const a=e.previousElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(l,`.${s.slideClass}, swiper-slide`)[0];s.loop&&0===!a&&(a=t[t.length-1]),a&&a.classList.add(s.slidePrevClass)}e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:a,params:i,activeIndex:r,realIndex:n,snapIndex:l}=t;let o,d=e;const c=e=>{let s=e-t.virtual.slidesBefore;return s<0&&(s=t.virtual.slides.length+s),s>=t.virtual.slides.length&&(s-=t.virtual.slides.length),s};if(void 0===d&&(d=function(e){const{slidesGrid:t,params:s}=e,a=e.rtlTranslate?e.translate:-e.translate;let i;for(let e=0;e=t[e]&&a=t[e]&&a=t[e]&&(i=e);return s.normalizeSlideIndex&&(i<0||void 0===i)&&(i=0),i}(t)),a.indexOf(s)>=0)o=a.indexOf(s);else{const e=Math.min(i.slidesPerGroupSkip,d);o=e+Math.floor((d-e)/i.slidesPerGroup)}if(o>=a.length&&(o=a.length-1),d===r)return o!==l&&(t.snapIndex=o,t.emit("snapIndexChange")),void(t.params.loop&&t.virtual&&t.params.virtual.enabled&&(t.realIndex=c(d)));let p;p=t.virtual&&i.virtual.enabled&&i.loop?c(d):t.slides[d]?parseInt(t.slides[d].getAttribute("data-swiper-slide-index")||d,10):d,Object.assign(t,{previousSnapIndex:l,snapIndex:o,previousRealIndex:n,realIndex:p,previousIndex:r,activeIndex:d}),t.initialized&&I(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),n!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,s=t.params,a=e.closest(`.${s.slideClass}, swiper-slide`);let i,r=!1;if(a)for(let e=0;eo?o:a&&en?"next":r=o.length&&(v=o.length-1);const w=-o[v];if(l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&wr.translate&&w>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(n!==(c||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(w),b=n>p?"next":n0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{h[e?"scrollLeft":"scrollTop"]=s}))):h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._immediateVirtual=!1}))}else{if(!r.support.smoothScroll)return m({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.wrapperEl.removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.wrapperEl.addEventListener("transitionend",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){e=parseInt(e,10)}const i=this;let r=e;return i.params.loop&&(i.virtual&&i.params.virtual.enabled?r+=i.virtual.slidesBefore:r=i.getSlideIndexByData(r)),i.slideTo(r,t,s,a)},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{enabled:i,params:r,animating:n}=a;if(!i)return a;let l=r.slidesPerGroup;"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndexp(e)));let h=r[m.indexOf(u)-1];if(void 0===h&&i.cssMode){let e;r.forEach(((t,s)=>{u>=t&&(e=s)})),void 0!==e&&(h=r[e>0?e-1:e])}let f=0;if(void 0!==h&&(f=n.indexOf(h),f<0&&(f=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(f=f-a.slidesPerViewDynamic("previous",!0)+1,f=Math.max(f,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return a.slideTo(f,e,t,s)},slideReset:function(e,t,s){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,slidesEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;const l=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;i=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?re.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=e.getSlideIndex(f(s,`${l}[data-swiper-slide-index="${i}"]`)[0]),n((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=e.getSlideIndex(f(s,`${l}[data-swiper-slide-index="${i}"]`)[0]),n((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var B={loopCreate:function(e){const t=this,{params:s,slidesEl:a}=t;if(!s.loop||t.virtual&&t.params.virtual.enabled)return;f(a,`.${s.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)})),t.loopFix({slideRealIndex:e,direction:s.centeredSlides?void 0:"next"})},loopFix:function(e){let{slideRealIndex:t,slideTo:s=!0,direction:a,setTranslate:i,activeSlideIndex:r,byController:n,byMousewheel:l}=void 0===e?{}:e;const o=this;if(!o.params.loop)return;o.emit("beforeLoopFix");const{slides:d,allowSlidePrev:c,allowSlideNext:p,slidesEl:u,params:m}=o;if(o.allowSlidePrev=!0,o.allowSlideNext=!0,o.virtual&&m.virtual.enabled)return s&&(m.centeredSlides||0!==o.snapIndex?m.centeredSlides&&o.snapIndexe.classList.contains(m.slideActiveClass)))[0]):w=r;const b="next"===a||!a,y="prev"===a||!a;let E=0,x=0;if(ro.slides.length-2*f){x=Math.max(r-(o.slides.length-2*f),m.slidesPerGroup);for(let e=0;e{u.prepend(o.slides[e])})),b&&v.forEach((e=>{u.append(o.slides[e])})),o.recalcSlides(),"auto"===m.slidesPerView&&o.updateSlides(),m.watchSlidesProgress&&o.updateSlidesOffset(),s)if(g.length>0&&y)if(void 0===t){const e=o.slidesGrid[w],t=o.slidesGrid[w+E]-e;l?o.setTranslate(o.translate-t):(o.slideTo(w+E,0,!1,!0),i&&(o.touches[o.isHorizontal()?"startX":"startY"]+=t))}else i&&o.slideToLoop(t,0,!1,!0);else if(v.length>0&&b)if(void 0===t){const e=o.slidesGrid[w],t=o.slidesGrid[w-x]-e;l?o.setTranslate(o.translate-t):(o.slideTo(w-x,0,!1,!0),i&&(o.touches[o.isHorizontal()?"startX":"startY"]+=t))}else o.slideToLoop(t,0,!1,!0);if(o.allowSlidePrev=c,o.allowSlideNext=p,o.controller&&o.controller.control&&!n){const e={slideRealIndex:t,slideTo:!1,direction:a,setTranslate:i,activeSlideIndex:r,byController:!0};Array.isArray(o.controller.control)?o.controller.control.forEach((t=>{!t.destroyed&&t.params.loop&&t.loopFix(e)})):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix(e)}o.emit("loopFix")},loopDestroy:function(){const e=this,{params:t,slidesEl:s}=e;if(!t.loop||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const a=[];e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;a[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),a.forEach((e=>{s.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function H(e){const t=this,s=a(),i=r(),n=t.touchEventsData;n.evCache.push(e);const{params:o,touches:d,enabled:c}=t;if(!c)return;if(!o.simulateTouch&&"mouse"===e.pointerType)return;if(t.animating&&o.preventInteractionOnTransition)return;!t.animating&&o.cssMode&&o.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let u=p.target;if("wrapper"===o.touchEventsTarget&&!t.wrapperEl.contains(u))return;if("which"in p&&3===p.which)return;if("button"in p&&p.button>0)return;if(n.isTouched&&n.isMoved)return;const m=!!o.noSwipingClass&&""!==o.noSwipingClass,h=e.composedPath?e.composedPath():e.path;m&&p.target&&p.target.shadowRoot&&h&&(u=h[0]);const f=o.noSwipingSelector?o.noSwipingSelector:`.${o.noSwipingClass}`,g=!(!p.target||!p.target.shadowRoot);if(o.noSwiping&&(g?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(f,u):u.closest(f)))return void(t.allowClick=!0);if(o.swipeHandler&&!u.closest(o.swipeHandler))return;d.currentX=p.pageX,d.currentY=p.pageY;const v=d.currentX,w=d.currentY,b=o.edgeSwipeDetection||o.iOSEdgeSwipeDetection,y=o.edgeSwipeThreshold||o.iOSEdgeSwipeThreshold;if(b&&(v<=y||v>=i.innerWidth-y)){if("prevent"!==b)return;e.preventDefault()}Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=v,d.startY=w,n.touchStartTime=l(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,o.threshold>0&&(n.allowThresholdMove=!1);let E=!0;u.matches(n.focusableElements)&&(E=!1,"SELECT"===u.nodeName&&(n.isTouched=!1)),s.activeElement&&s.activeElement.matches(n.focusableElements)&&s.activeElement!==u&&s.activeElement.blur();const x=E&&t.allowTouchMove&&o.touchStartPreventDefault;!o.touchStartForcePreventDefault&&!x||u.isContentEditable||p.preventDefault(),t.params.freeMode&&t.params.freeMode.enabled&&t.freeMode&&t.animating&&!o.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",p)}function X(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:o,enabled:d}=s;if(!d)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let c=e;if(c.originalEvent&&(c=c.originalEvent),!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",c));const p=i.evCache.findIndex((e=>e.pointerId===c.pointerId));p>=0&&(i.evCache[p]=c);const u=i.evCache.length>1?i.evCache[0]:c,m=u.pageX,h=u.pageY;if(c.preventedByNestedSwiper)return n.startX=m,void(n.startY=h);if(!s.allowTouchMove)return c.target.matches(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:m,startY:h,prevX:s.touches.currentX,prevY:s.touches.currentY,currentX:m,currentY:h}),i.touchStartTime=l()));if(r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(hn.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(mn.startX&&s.translate>=s.minTranslate())return;if(t.activeElement&&c.target===t.activeElement&&c.target.matches(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);if(i.allowTouchCallbacks&&s.emit("touchMove",c),c.targetTouches&&c.targetTouches.length>1)return;n.currentX=m,n.currentY=h;const f=n.currentX-n.startX,g=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(f**2+g**2)=25&&(e=180*Math.atan2(Math.abs(g),Math.abs(f))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",c),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling||s.zoom&&s.params.zoom&&s.params.zoom.enabled&&i.evCache.length>1)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&c.cancelable&&c.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&c.stopPropagation();let v=s.isHorizontal()?f:g,w=s.isHorizontal()?n.currentX-n.previousX:n.currentY-n.previousY;r.oneWayMovement&&(v=Math.abs(v)*(o?1:-1),w=Math.abs(w)*(o?1:-1)),n.diff=v,v*=r.touchRatio,o&&(v=-v,w=-w);const b=s.touchesDirection;s.swipeDirection=v>0?"prev":"next",s.touchesDirection=w>0?"prev":"next";const y=s.params.loop&&!r.cssMode;if(!i.isMoved){if(y&&s.loopFix({direction:s.swipeDirection}),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});s.wrapperEl.dispatchEvent(e)}i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",c)}let E;i.isMoved&&b!==s.touchesDirection&&y&&Math.abs(v)>=1&&(s.loopFix({direction:s.swipeDirection,setTranslate:!0}),E=!0),s.emit("sliderMove",c),i.isMoved=!0,i.currentTranslate=v+i.startTranslate;let x=!0,S=r.resistanceRatio;if(r.touchReleaseOnEdges&&(S=0),v>0?(y&&!E&&i.currentTranslate>(r.centeredSlides?s.minTranslate()-s.size/2:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>s.minTranslate()&&(x=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+v)**S))):v<0&&(y&&!E&&i.currentTranslate<(r.centeredSlides?s.maxTranslate()+s.size/2:s.maxTranslate())&&s.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:s.slides.length-("auto"===r.slidesPerView?s.slidesPerViewDynamic():Math.ceil(parseFloat(r.slidesPerView,10)))}),i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(v)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),s.params.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function Y(e){const t=this,s=t.touchEventsData,a=s.evCache.findIndex((t=>t.pointerId===e.pointerId));if(a>=0&&s.evCache.splice(a,1),["pointercancel","pointerout","pointerleave"].includes(e.type)){if(!("pointercancel"===e.type&&(t.browser.isSafari||t.browser.isWebView)))return}const{params:i,touches:r,rtlTranslate:o,slidesGrid:d,enabled:c}=t;if(!c)return;if(!i.simulateTouch&&"mouse"===e.pointerType)return;let p=e;if(p.originalEvent&&(p=p.originalEvent),s.allowTouchCallbacks&&t.emit("touchEnd",p),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&i.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);i.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=l(),m=u-s.touchStartTime;if(t.allowClick){const e=p.path||p.composedPath&&p.composedPath();t.updateClickedSlide(e&&e[0]||p.target),t.emit("tap click",p),m<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",p)}if(s.lastClickTime=l(),n((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===r.diff||s.currentTranslate===s.startTranslate)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=i.followFinger?o?t.translate:-t.translate:-s.currentTranslate,i.cssMode)return;if(t.params.freeMode&&i.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});let f=0,g=t.slidesSizesGrid[0];for(let e=0;e=d[e]&&h=d[e]&&(f=e,g=d[d.length-1]-d[d.length-2])}let v=null,w=null;i.rewind&&(t.isBeginning?w=t.params.virtual&&t.params.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(v=0));const b=(h-d[f])/g,y=fi.longSwipesMs){if(!i.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(b>=i.longSwipesRatio?t.slideTo(i.rewind&&t.isEnd?v:f+y):t.slideTo(f)),"prev"===t.swipeDirection&&(b>1-i.longSwipesRatio?t.slideTo(f+y):null!==w&&b<0&&Math.abs(b)>i.longSwipesRatio?t.slideTo(w):t.slideTo(f))}else{if(!i.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(p.target===t.navigation.nextEl||p.target===t.navigation.prevEl)?p.target===t.navigation.nextEl?t.slideTo(f+y):t.slideTo(f):("next"===t.swipeDirection&&t.slideTo(null!==v?v:f+y),"prev"===t.swipeDirection&&t.slideTo(null!==w?w:f))}}function N(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e,n=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const l=n&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||l?e.params.loop&&!n?e.slideToLoop(e.realIndex,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0):e.slideTo(e.slides.length-1,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&(clearTimeout(e.autoplay.resizeTimeout),e.autoplay.resizeTimeout=setTimeout((()=>{e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.resume()}),500)),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function q(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function R(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function _(e){A(this,e.target),this.update()}let V=!1;function F(){}const j=(e,t)=>{const s=a(),{params:i,el:r,wrapperEl:n,device:l}=e,o=!!i.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;r[d]("pointerdown",e.onTouchStart,{passive:!1}),s[d]("pointermove",e.onTouchMove,{passive:!1,capture:o}),s[d]("pointerup",e.onTouchEnd,{passive:!0}),s[d]("pointercancel",e.onTouchEnd,{passive:!0}),s[d]("pointerout",e.onTouchEnd,{passive:!0}),s[d]("pointerleave",e.onTouchEnd,{passive:!0}),(i.preventClicks||i.preventClicksPropagation)&&r[d]("click",e.onClick,!0),i.cssMode&&n[d]("scroll",e.onScroll),i.updateOnWindowResize?e[c](l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",N,!0):e[c]("observerUpdate",N,!0),r[d]("load",e.onLoad,{capture:!0})};const W=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var U={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopedSlides:null,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function K(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(["navigation","pagination","scrollbar"].indexOf(a)>=0&&!0===e[a]&&(e[a]={auto:!0}),a in e&&"enabled"in i?(!0===e[a]&&(e[a]={enabled:!0}),"object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),p(t,s)):p(t,s)):p(t,s)}}const Z={eventsEmitter:z,update:k,translate:O,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),D({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),D({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:G,loop:B,grabCursor:{setGrabCursor:function(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;t.isElement&&(t.__preventObserver__=!0),s.style.cursor="move",s.style.cursor=e?"grabbing":"grab",t.isElement&&requestAnimationFrame((()=>{t.__preventObserver__=!1}))},unsetGrabCursor:function(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.isElement&&(e.__preventObserver__=!0),e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="",e.isElement&&requestAnimationFrame((()=>{e.__preventObserver__=!1})))}},events:{attachEvents:function(){const e=this,t=a(),{params:s}=e;e.onTouchStart=H.bind(e),e.onTouchMove=X.bind(e),e.onTouchEnd=Y.bind(e),s.cssMode&&(e.onScroll=R.bind(e)),e.onClick=q.bind(e),e.onLoad=_.bind(e),V||(t.addEventListener("touchstart",F),V=!0),j(e,"on")},detachEvents:function(){j(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:s,params:a,el:i}=e,r=a.breakpoints;if(!r||r&&0===Object.keys(r).length)return;const n=e.getBreakpoint(r,e.params.breakpointsBase,e.el);if(!n||e.currentBreakpoint===n)return;const l=(n in r?r[n]:void 0)||e.originalParams,o=W(e,a),d=W(e,l),c=a.enabled;o&&!d?(i.classList.remove(`${a.containerModifierClass}grid`,`${a.containerModifierClass}grid-column`),e.emitContainerClasses()):!o&&d&&(i.classList.add(`${a.containerModifierClass}grid`),(l.grid.fill&&"column"===l.grid.fill||!l.grid.fill&&"column"===a.grid.fill)&&i.classList.add(`${a.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{const s=a[t]&&a[t].enabled,i=l[t]&&l[t].enabled;s&&!i&&e[t].disable(),!s&&i&&e[t].enable()}));const u=l.direction&&l.direction!==a.direction,m=a.loop&&(l.slidesPerView!==a.slidesPerView||u);u&&s&&e.changeDirection(),p(e.params,l);const h=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),c&&!h?e.disable():!c&&h&&e.enable(),e.currentBreakpoint=n,e.emit("_beforeBreakpoint",l),m&&s&&(e.loopDestroy(),e.loopCreate(t),e.updateSlides()),e.emit("breakpoint",l)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;es}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:{addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,el:i,device:r}=e,n=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...n),i.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e.classList.remove(...t),this.emitContainerClasses()}}},Q={};class J{constructor(){let e,t;for(var s=arguments.length,i=new Array(s),r=0;r1){const e=[];return n.querySelectorAll(t.el).forEach((s=>{const a=p({},t,{el:s});e.push(new J(a))})),e}const l=this;l.__swiper__=!0,l.support=C(),l.device=P({userAgent:t.userAgent}),l.browser=L(),l.eventsListeners={},l.eventsAnyListeners=[],l.modules=[...l.__modules__],t.modules&&Array.isArray(t.modules)&&l.modules.push(...t.modules);const o={};l.modules.forEach((e=>{e({params:t,swiper:l,extendParams:K(t,o),on:l.on.bind(l),once:l.once.bind(l),off:l.off.bind(l),emit:l.emit.bind(l)})}));const d=p({},U,o);return l.params=p({},d,Q,t),l.originalParams=p({},l.params),l.passedParams=p({},t),l.params&&l.params.on&&Object.keys(l.params.on).forEach((e=>{l.on(e,l.params.on[e])})),l.params&&l.params.onAny&&l.onAny(l.params.onAny),Object.assign(l,{enabled:l.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===l.params.direction,isVertical:()=>"vertical"===l.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:l.params.allowSlideNext,allowSlidePrev:l.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:l.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,evCache:[]},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.emit("_swiper"),l.params.init&&l.init(),l}getSlideIndex(e){const{slidesEl:t,params:s}=this,a=b(f(t,`.${s.slideClass}, swiper-slide`)[0]);return b(e)-a}getSlideIndexByData(e){return this.getSlideIndex(this.slides.filter((t=>1*t.getAttribute("data-swiper-slide-index")===e))[0])}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=f(e,`.${t.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.forEach((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if(s.centeredSlides){let e,t=a[l].swiperSlideSize;for(let s=l+1;sn&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1){i[l]-i[e]{t.complete&&A(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.params.freeMode&&e.params.freeMode.enabled)a(),e.params.autoHeight&&e.updateAutoHeight();else{if(("auto"===e.params.slidesPerView||e.params.slidesPerView>1)&&e.isEnd&&!e.params.centeredSlides){const t=e.virtual&&e.params.virtual.enabled?e.virtual.slides:e.slides;i=e.slideTo(t.length-1,0,!1,!0)}else i=e.slideTo(e.activeIndex,0,!1,!0);i||a()}s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${a}`),s.el.classList.add(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.forEach((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.el.classList.add(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.el.classList.remove(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;let s=e||t.params.el;if("string"==typeof s&&(s=document.querySelector(s)),!s)return!1;s.swiper=t,s.shadowEl&&(t.isElement=!0);const a=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let i=(()=>{if(s&&s.shadowRoot&&s.shadowRoot.querySelector){return s.shadowRoot.querySelector(a())}return f(s,a())[0]})();return!i&&t.params.createElements&&(i=g("div",t.params.wrapperClass),s.append(i),f(s,`.${t.params.slideClass}`).forEach((e=>{i.append(e)}))),Object.assign(t,{el:s,wrapperEl:i,slidesEl:t.isElement?s:i,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===w(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===w(s,"direction")),wrongRTL:"-webkit-box"===w(i,"display")}),!0}init(e){const t=this;if(t.initialized)return t;return!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.loop&&t.virtual&&t.params.virtual.enabled?t.slideTo(t.params.initialSlide+t.virtual.slidesBefore,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.params.loop&&t.loopCreate(),t.attachEvents(),[...t.el.querySelectorAll('[loading="lazy"]')].forEach((e=>{e.complete?A(t,e):e.addEventListener("load",(e=>{A(t,e.target)}))})),I(t),t.initialized=!0,I(t),t.emit("init"),t.emit("afterInit")),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,el:i,wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttribute("style"),r.removeAttribute("style"),n&&n.length&&n.forEach((e=>{e.classList.remove(a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass),e.removeAttribute("style"),e.removeAttribute("data-swiper-slide-index")}))),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.el.swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){p(Q,e)}static get extendedDefaults(){return Q}static get defaults(){return U}static installModule(e){J.prototype.__modules__||(J.prototype.__modules__=[]);const t=J.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>J.installModule(e))),J):(J.installModule(e),J)}}function ee(e,t,s,a){return e.params.createElements&&Object.keys(a).forEach((i=>{if(!s[i]&&!0===s.auto){let r=f(e.el,`.${a[i]}`)[0];r||(r=g("div",a[i]),r.className=a[i],e.el.append(r)),s[i]=r,t[i]=r}})),s}function te(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function se(e){const t=this,{params:s,slidesEl:a}=t;s.loop&&t.loopDestroy();const i=e=>{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,a.append(t.children[0]),t.innerHTML=""}else a.append(e)};if("object"==typeof e&&"length"in e)for(let t=0;t{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,i.prepend(t.children[0]),t.innerHTML=""}else i.prepend(e)};if("object"==typeof e&&"length"in e){for(let t=0;t=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides[t];e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?n+t.length:n}else r.append(t);for(let e=0;e{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.forEach((e=>{e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((e=>e.remove()))})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function oe(e,t){const s=h(t);return s!==t&&(s.style.backfaceVisibility="hidden",s.style["-webkit-backface-visibility"]="hidden"),s}function de(e){let{swiper:t,duration:s,transformElements:a,allSlides:i}=e;const{activeIndex:r}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a:a.filter((e=>{const s=e.classList.contains("swiper-slide-transform")?(e=>{if(!e.parentElement)return t.slides.filter((t=>t.shadowEl&&t.shadowEl===e.parentNode))[0];return e.parentElement})(e):e;return t.getSlideIndex(s)===r})),e.forEach((e=>{E(e,(()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});t.wrapperEl.dispatchEvent(e)}))}))}}function ce(e,t,s){const a="swiper-slide-shadow"+(s?`-${s}`:""),i=h(t);let r=i.querySelector(`.${a}`);return r||(r=g("div","swiper-slide-shadow"+(s?`-${s}`:"")),i.append(r)),r}Object.keys(Z).forEach((e=>{Object.keys(Z[e]).forEach((t=>{J.prototype[t]=Z[e][t]}))})),J.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,s){void 0===s&&(s={});const a=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(t.__preventObserver__)return;if(1===e.length)return void i("observerUpdate",e[0]);const s=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(s):l.setTimeout(s,0)}));a.observe(e,{attributes:void 0===s.attributes||s.attributes,childList:void 0===s.childList||s.childList,characterData:void 0===s.characterData||s.characterData}),n.push(a)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=y(t.el);for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const pe=[function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;i({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});const l=a();s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const o=l.createElement("div");function d(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];let i;return a.renderSlide?(i=a.renderSlide.call(s,e,t),"string"==typeof i&&(o.innerHTML=i,i=o.children[0])):i=s.isElement?g("swiper-slide"):g("div",s.params.slideClass),i.setAttribute("data-swiper-slide-index",t),a.renderSlide||(i.innerHTML=e),a.cache&&(s.virtual.cache[t]=i),i}function c(e){const{slidesPerView:t,slidesPerGroup:a,centeredSlides:i,loop:r}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:c,to:p,slides:u,slidesGrid:m,offset:h}=s.virtual;s.params.cssMode||s.updateActiveIndex();const g=s.activeIndex||0;let v,w,b;v=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",i?(w=Math.floor(t/2)+a+o,b=Math.floor(t/2)+a+l):(w=t+(a-1)+o,b=(r?t:a)+l);let y=g-b,E=g+w;r||(y=Math.max(y,0),E=Math.min(E,u.length-1));let x=(s.slidesGrid[y]||0)-(s.slidesGrid[0]||0);function S(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),n("virtualUpdate")}if(r&&g>=b?(y-=b,i||(x+=s.slidesGrid[0])):r&&g{e.style[v]=x-Math.abs(s.cssOverflowAdjustment())+"px"})),s.updateProgress(),void n("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:x,from:y,to:E,slides:function(){const e=[];for(let t=y;t<=E;t+=1)e.push(u[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?S():n("virtualUpdate"));const T=[],M=[],C=e=>{let t=e;return e<0?t=u.length+e:t>=u.length&&(t-=u.length),t};if(e)s.slidesEl.querySelectorAll(`.${s.params.slideClass}, swiper-slide`).forEach((e=>{e.remove()}));else for(let e=c;e<=p;e+=1)if(eE){const t=C(e);s.slidesEl.querySelectorAll(`.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`).forEach((e=>{e.remove()}))}const P=r?-u.length:0,L=r?2*u.length:u.length;for(let t=P;t=y&&t<=E){const s=C(t);void 0===p||e?M.push(s):(t>p&&M.push(s),t{s.slidesEl.append(d(u[e],e))})),r)for(let e=T.length-1;e>=0;e-=1){const t=T[e];s.slidesEl.prepend(d(u[t],t))}else T.sort(((e,t)=>t-e)),T.forEach((e=>{s.slidesEl.prepend(d(u[e],e))}));f(s.slidesEl,".swiper-slide, swiper-slide").forEach((e=>{e.style[v]=x-Math.abs(s.cssOverflowAdjustment())+"px"})),S()}r("beforeInit",(()=>{if(!s.params.virtual.enabled)return;let e;if(void 0===s.passedParams.virtual.slides){const t=[...s.slidesEl.children].filter((e=>e.matches(`.${s.params.slideClass}, swiper-slide`)));t&&t.length&&(s.virtual.slides=[...t],e=!0,t.forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t),s.virtual.cache[t]=e,e.remove()})))}e||(s.virtual.slides=s.params.virtual.slides),s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,s.params.initialSlide||c()})),r("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{c()}),100)):c())})),r("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&u(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t{const a=e[s],r=a.getAttribute("data-swiper-slide-index");r&&a.setAttribute("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}c(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.virtual.slides.splice(e[a],1),s.params.virtual.cache&&delete s.virtual.cache[e[a]],e[a]0&&0===y(t.el,`.${t.params.slideActiveClass}`).length)return;const a=t.el,i=a.clientWidth,r=a.clientHeight,n=o.innerWidth,l=o.innerHeight,d=v(a);s&&(d.left-=a.scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||m||h)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||h)&&t.slideNext(),(d||m)&&t.slidePrev()),n("keyPress",i)}}function c(){t.keyboard.enabled||(l.addEventListener("keydown",d),t.keyboard.enabled=!0)}function p(){t.keyboard.enabled&&(l.removeEventListener("keydown",d),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&c()})),i("destroy",(()=>{t.keyboard.enabled&&p()})),Object.assign(t.keyboard,{enable:c,disable:p})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const o=r();let d;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}}),t.mousewheel={enabled:!1};let c,p=l();const u=[];function m(){t.enabled&&(t.mouseEntered=!0)}function h(){t.enabled&&(t.mouseEntered=!1)}function f(e){return!(t.params.mousewheel.thresholdDelta&&e.delta=6&&l()-p<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),p=(new o.Date).getTime(),!1)))}function g(e){let s=e,a=!0;if(!t.enabled)return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let o=t.el;"container"!==t.params.mousewheel.eventsTarget&&(o=document.querySelector(t.params.mousewheel.eventsTarget));const p=o&&o.contains(s.target);if(!t.mouseEntered&&!p&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let m=0;const h=t.rtlTranslate?-1:1,g=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(g.pixelX)>Math.abs(g.pixelY)))return!0;m=-g.pixelX*h}else{if(!(Math.abs(g.pixelY)>Math.abs(g.pixelX)))return!0;m=-g.pixelY}else m=Math.abs(g.pixelX)>Math.abs(g.pixelY)?-g.pixelX*h:-g.pixelY;if(0===m)return!0;r.invert&&(m=-m);let v=t.getTranslate()+m*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:l(),delta:Math.abs(m),direction:Math.sign(m)},a=c&&e.time=t.minTranslate()&&(l=t.minTranslate()),l<=t.maxTranslate()&&(l=t.maxTranslate()),t.setTransition(0),t.setTranslate(l),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!o&&t.isBeginning||!p&&t.isEnd)&&t.updateSlidesClasses(),t.params.loop&&t.loopFix({direction:e.direction<0?"next":"prev",byMousewheel:!0}),t.params.freeMode.sticky){clearTimeout(d),d=void 0,u.length>=15&&u.shift();const s=u.length?u[u.length-1]:void 0,a=u[0];if(u.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))u.splice(0);else if(u.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=m>0?.8:.2;c=e,u.splice(0),d=n((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}d||(d=n((()=>{c=e,u.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),l===t.minTranslate()||l===t.maxTranslate())return!0}}else{const s={time:l(),delta:Math.abs(m),direction:Math.sign(m),raw:e};u.length>=2&&u.shift();const a=u.length?u[u.length-1]:void 0;if(u.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&f(s):f(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function v(e){let s=t.el;"container"!==t.params.mousewheel.eventsTarget&&(s=document.querySelector(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",h),s[e]("wheel",g)}function w(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",g),!0):!t.mousewheel.enabled&&(v("addEventListener"),t.mousewheel.enabled=!0,!0)}function b(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,g),!0):!!t.mousewheel.enabled&&(v("removeEventListener"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&b(),t.params.mousewheel.enabled&&w()})),a("destroy",(()=>{t.params.cssMode&&w(),t.mousewheel.enabled&&b()})),Object.assign(t.mousewheel,{enable:w,disable:b})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,prevEl:null};const r=e=>(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function n(e){let s;return e&&"string"==typeof e&&t.isElement&&(s=t.el.shadowRoot.querySelector(e),s)?s:(e&&("string"==typeof e&&(s=[...document.querySelectorAll(e)]),t.params.uniqueNavElements&&"string"==typeof e&&s.length>1&&1===t.el.querySelectorAll(e).length&&(s=t.el.querySelector(e))),e&&!s?e:s)}function l(e,s){const a=t.params.navigation;(e=r(e)).forEach((e=>{e&&(e.classList[s?"add":"remove"](...a.disabledClass.split(" ")),"BUTTON"===e.tagName&&(e.disabled=s),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](a.lockClass))}))}function o(){const{nextEl:e,prevEl:s}=t.navigation;if(t.params.loop)return l(s,!1),void l(e,!1);l(s,t.isBeginning&&!t.params.rewind),l(e,t.isEnd&&!t.params.rewind)}function d(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function p(){const e=t.params.navigation;if(t.params.navigation=ee(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;let s=n(e.nextEl),a=n(e.prevEl);Object.assign(t.navigation,{nextEl:s,prevEl:a}),s=r(s),a=r(a);const i=(s,a)=>{s&&s.addEventListener("click","next"===a?c:d),!t.enabled&&s&&s.classList.add(...e.lockClass.split(" "))};s.forEach((e=>i(e,"next"))),a.forEach((e=>i(e,"prev")))}function u(){let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s);const a=(e,s)=>{e.removeEventListener("click","next"===s?c:d),e.classList.remove(...t.params.navigation.disabledClass.split(" "))};e.forEach((e=>a(e,"next"))),s.forEach((e=>a(e,"prev")))}a("init",(()=>{!1===t.params.navigation.enabled?m():(p(),o())})),a("toEdge fromEdge lock unlock",(()=>{o()})),a("destroy",(()=>{u()})),a("enable disable",(()=>{let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s),[...e,...s].filter((e=>!!e)).forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.navigation.lockClass)))})),a("click",((e,s)=>{let{nextEl:a,prevEl:n}=t.navigation;a=r(a),n=r(n);const l=s.target;if(t.params.navigation.hideOnClick&&!n.includes(l)&&!a.includes(l)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===l||t.pagination.el.contains(l)))return;let e;a.length?e=a[0].classList.contains(t.params.navigation.hiddenClass):n.length&&(e=n[0].classList.contains(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),[...a,...n].filter((e=>!!e)).forEach((e=>e.classList.toggle(t.params.navigation.hiddenClass)))}}));const m=()=>{t.el.classList.add(...t.params.navigation.navigationDisabledClass.split(" ")),u()};Object.assign(t.navigation,{enable:()=>{t.el.classList.remove(...t.params.navigation.navigationDisabledClass.split(" ")),p(),o()},disable:m,update:o,init:p,destroy:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,bullets:[]};let l=0;const o=e=>(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function d(){return!t.params.pagination.el||!t.pagination.el||Array.isArray(t.pagination.el)&&0===t.pagination.el.length}function c(e,s){const{bulletActiveClass:a}=t.params.pagination;e&&(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&(e.classList.add(`${a}-${s}`),(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&e.classList.add(`${a}-${s}-${s}`))}function p(e){const s=e.target.closest(te(t.params.pagination.bulletClass));if(!s)return;e.preventDefault();const a=b(s)*t.params.slidesPerGroup;if(t.params.loop){if(t.realIndex===a)return;const e=t.getSlideIndexByData(a),s=t.getSlideIndexByData(t.realIndex);e>t.slides.length-t.loopedSlides&&t.loopFix({direction:e>s?"next":"prev",activeSlideIndex:e,slideTo:!1}),t.slideToLoop(a)}else t.slideTo(a)}function u(){const e=t.rtl,s=t.params.pagination;if(d())return;let a,r,p=t.pagination.el;p=o(p);const u=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,m=t.params.loop?Math.ceil(u/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(r=t.previousRealIndex||0,a=t.params.slidesPerGroup>1?Math.floor(t.realIndex/t.params.slidesPerGroup):t.realIndex):void 0!==t.snapIndex?(a=t.snapIndex,r=t.previousSnapIndex):(r=t.previousIndex||0,a=t.activeIndex||0),"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const i=t.pagination.bullets;let o,d,u;if(s.dynamicBullets&&(n=x(i[0],t.isHorizontal()?"width":"height",!0),p.forEach((e=>{e.style[t.isHorizontal()?"width":"height"]=n*(s.dynamicMainBullets+4)+"px"})),s.dynamicMainBullets>1&&void 0!==r&&(l+=a-(r||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),o=Math.max(a-l,0),d=o+(Math.min(i.length,s.dynamicMainBullets)-1),u=(d+o)/2),i.forEach((e=>{const t=[...["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`))].map((e=>"string"==typeof e&&e.includes(" ")?e.split(" "):e)).flat();e.classList.remove(...t)})),p.length>1)i.forEach((e=>{const t=b(e);t===a&&e.classList.add(...s.bulletActiveClass.split(" ")),s.dynamicBullets&&(t>=o&&t<=d&&e.classList.add(...`${s.bulletActiveClass}-main`.split(" ")),t===o&&c(e,"prev"),t===d&&c(e,"next"))}));else{const e=i[a];if(e&&e.classList.add(...s.bulletActiveClass.split(" ")),s.dynamicBullets){const e=i[o],t=i[d];for(let e=o;e<=d;e+=1)i[e]&&i[e].classList.add(...`${s.bulletActiveClass}-main`.split(" "));c(e,"prev"),c(t,"next")}}if(s.dynamicBullets){const a=Math.min(i.length,s.dynamicMainBullets+4),r=(n*a-n)/2-u*n,l=e?"right":"left";i.forEach((e=>{e.style[t.isHorizontal()?l:"top"]=`${r}px`}))}}p.forEach(((e,r)=>{if("fraction"===s.type&&(e.querySelectorAll(te(s.currentClass)).forEach((e=>{e.textContent=s.formatFractionCurrent(a+1)})),e.querySelectorAll(te(s.totalClass)).forEach((e=>{e.textContent=s.formatFractionTotal(m)}))),"progressbar"===s.type){let i;i=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const r=(a+1)/m;let n=1,l=1;"horizontal"===i?n=r:l=r,e.querySelectorAll(te(s.progressbarFillClass)).forEach((e=>{e.style.transform=`translate3d(0,0,0) scaleX(${n}) scaleY(${l})`,e.style.transitionDuration=`${t.params.speed}ms`}))}"custom"===s.type&&s.renderCustom?(e.innerHTML=s.renderCustom(t,a+1,m),0===r&&i("paginationRender",e)):(0===r&&i("paginationRender",e),i("paginationUpdate",e)),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](s.lockClass)}))}function m(){const e=t.params.pagination;if(d())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length;let a=t.pagination.el;a=o(a);let r="";if("bullets"===e.type){let a=t.params.loop?Math.ceil(s/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&a>s&&(a=s);for(let s=0;s`}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):` / `),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):``),t.pagination.bullets=[],a.forEach((s=>{"custom"!==e.type&&(s.innerHTML=r||""),"bullets"===e.type&&t.pagination.bullets.push(...s.querySelectorAll(te(e.bulletClass)))})),"custom"!==e.type&&i("paginationRender",a[0])}function h(){t.params.pagination=ee(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s;"string"==typeof e.el&&t.isElement&&(s=t.el.shadowRoot.querySelector(e.el)),s||"string"!=typeof e.el||(s=[...document.querySelectorAll(e.el)]),s||(s=e.el),s&&0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&Array.isArray(s)&&s.length>1&&(s=[...t.el.querySelectorAll(e.el)],s.length>1&&(s=s.filter((e=>y(e,".swiper")[0]===t.el))[0])),Array.isArray(s)&&1===s.length&&(s=s[0]),Object.assign(t.pagination,{el:s}),s=o(s),s.forEach((s=>{"bullets"===e.type&&e.clickable&&s.classList.add(e.clickableClass),s.classList.add(e.modifierClass+e.type),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.classList.add(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.classList.add(e.progressbarOppositeClass),e.clickable&&s.addEventListener("click",p),t.enabled||s.classList.add(e.lockClass)})))}function f(){const e=t.params.pagination;if(d())return;let s=t.pagination.el;s&&(s=o(s),s.forEach((s=>{s.classList.remove(e.hiddenClass),s.classList.remove(e.modifierClass+e.type),s.classList.remove(t.isHorizontal()?e.horizontalClass:e.verticalClass),e.clickable&&s.removeEventListener("click",p)}))),t.pagination.bullets&&t.pagination.bullets.forEach((t=>t.classList.remove(...e.bulletActiveClass.split(" "))))}a("changeDirection",(()=>{if(!t.pagination||!t.pagination.el)return;const e=t.params.pagination;let{el:s}=t.pagination;s=o(s),s.forEach((s=>{s.classList.remove(e.horizontalClass,e.verticalClass),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass)}))})),a("init",(()=>{!1===t.params.pagination.enabled?g():(h(),m(),u())})),a("activeIndexChange",(()=>{void 0===t.snapIndex&&u()})),a("snapIndexChange",(()=>{u()})),a("snapGridLengthChange",(()=>{m(),u()})),a("destroy",(()=>{f()})),a("enable disable",(()=>{let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.pagination.lockClass))))})),a("lock unlock",(()=>{u()})),a("click",((e,s)=>{const a=s.target;let{el:r}=t.pagination;if(Array.isArray(r)||(r=[r].filter((e=>!!e))),t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!a.classList.contains(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r[0].classList.contains(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.forEach((e=>e.classList.toggle(t.params.pagination.hiddenClass)))}}));const g=()=>{t.el.classList.add(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList.add(t.params.pagination.paginationDisabledClass)))),f()};Object.assign(t.pagination,{enable:()=>{t.el.classList.remove(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList.remove(t.params.pagination.paginationDisabledClass)))),h(),m(),u()},disable:g,render:m,update:u,init:h,destroy:f})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const l=a();let o,d,c,p,u=!1,m=null,h=null;function f(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s}=t,{dragEl:a,el:i}=e,r=t.params.scrollbar,n=t.params.loop?t.progressLoop:t.progress;let l=d,o=(c-d)*n;s?(o=-o,o>0?(l=d-o,o=0):-o+d>c&&(l=c+o)):o<0?(l=d+o,o=0):o+d>c&&(l=c-o),t.isHorizontal()?(a.style.transform=`translate3d(${o}px, 0, 0)`,a.style.width=`${l}px`):(a.style.transform=`translate3d(0px, ${o}px, 0)`,a.style.height=`${l}px`),r.hide&&(clearTimeout(m),i.style.opacity=1,m=setTimeout((()=>{i.style.opacity=0,i.style.transitionDuration="400ms"}),1e3))}function w(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{dragEl:s,el:a}=e;s.style.width="",s.style.height="",c=t.isHorizontal()?a.offsetWidth:a.offsetHeight,p=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),d="auto"===t.params.scrollbar.dragSize?c*p:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s.style.width=`${d}px`:s.style.height=`${d}px`,a.style.display=p>=1?"none":"",t.params.scrollbar.hide&&(a.style.opacity=0),t.params.watchOverflow&&t.enabled&&e.el.classList[t.isLocked?"add":"remove"](t.params.scrollbar.lockClass)}function b(e){return t.isHorizontal()?e.clientX:e.clientY}function y(e){const{scrollbar:s,rtlTranslate:a}=t,{el:i}=s;let r;r=(b(e)-v(i)[t.isHorizontal()?"left":"top"]-(null!==o?o:d/2))/(c-d),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function E(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:n,dragEl:l}=a;u=!0,o=e.target===l?b(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.style.transitionDuration="100ms",l.style.transitionDuration="100ms",y(e),clearTimeout(h),n.style.transitionDuration="0ms",s.hide&&(n.style.opacity=1),t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="none"),r("scrollbarDragStart",e)}function x(e){const{scrollbar:s,wrapperEl:a}=t,{el:i,dragEl:n}=s;u&&(e.preventDefault?e.preventDefault():e.returnValue=!1,y(e),a.style.transitionDuration="0ms",i.style.transitionDuration="0ms",n.style.transitionDuration="0ms",r("scrollbarDragMove",e))}function S(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:l}=a;u&&(u=!1,t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="",i.style.transitionDuration=""),s.hide&&(clearTimeout(h),h=n((()=>{l.style.opacity=0,l.style.transitionDuration="400ms"}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function T(e){const{scrollbar:s,params:a}=t,i=s.el;if(!i)return;const r=i,n=!!a.passiveListeners&&{passive:!1,capture:!1},o=!!a.passiveListeners&&{passive:!0,capture:!1};if(!r)return;const d="on"===e?"addEventListener":"removeEventListener";r[d]("pointerdown",E,n),l[d]("pointermove",x,n),l[d]("pointerup",S,o)}function M(){const{scrollbar:e,el:s}=t;t.params.scrollbar=ee(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i,r;"string"==typeof a.el&&t.isElement&&(i=t.el.shadowRoot.querySelector(a.el)),i||"string"!=typeof a.el?i||(i=a.el):i=l.querySelectorAll(a.el),t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.querySelectorAll(a.el).length&&(i=s.querySelector(a.el)),i.length>0&&(i=i[0]),i.classList.add(t.isHorizontal()?a.horizontalClass:a.verticalClass),i&&(r=i.querySelector(`.${t.params.scrollbar.dragClass}`),r||(r=g("div",t.params.scrollbar.dragClass),i.append(r))),Object.assign(e,{el:i,dragEl:r}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&T("on"),i&&i.classList[t.enabled?"remove":"add"](t.params.scrollbar.lockClass)}function C(){const e=t.params.scrollbar,s=t.scrollbar.el;s&&s.classList.remove(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.params.scrollbar.el&&t.scrollbar.el&&T("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null},i("init",(()=>{!1===t.params.scrollbar.enabled?P():(M(),w(),f())})),i("update resize observerUpdate lock unlock",(()=>{w()})),i("setTranslate",(()=>{f()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&(t.scrollbar.dragEl.style.transitionDuration=`${e}ms`)}(s)})),i("enable disable",(()=>{const{el:e}=t.scrollbar;e&&e.classList[t.enabled?"remove":"add"](t.params.scrollbar.lockClass)})),i("destroy",(()=>{C()}));const P=()=>{t.el.classList.add(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.el&&t.scrollbar.el.classList.add(t.params.scrollbar.scrollbarDisabledClass),C()};Object.assign(t.scrollbar,{enable:()=>{t.el.classList.remove(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.el&&t.scrollbar.el.classList.remove(t.params.scrollbar.scrollbarDisabledClass),M(),w(),f()},disable:P,updateSize:w,setTranslate:f,init:M,destroy:C})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i=(e,s)=>{const{rtl:a}=t,i=a?-1:1,r=e.getAttribute("data-swiper-parallax")||"0";let n=e.getAttribute("data-swiper-parallax-x"),l=e.getAttribute("data-swiper-parallax-y");const o=e.getAttribute("data-swiper-parallax-scale"),d=e.getAttribute("data-swiper-parallax-opacity"),c=e.getAttribute("data-swiper-parallax-rotate");if(n||l?(n=n||"0",l=l||"0"):t.isHorizontal()?(n=r,l="0"):(l=r,n="0"),n=n.indexOf("%")>=0?parseInt(n,10)*s*i+"%":n*s*i+"px",l=l.indexOf("%")>=0?parseInt(l,10)*s+"%":l*s+"px",null!=d){const t=d-(d-1)*(1-Math.abs(s));e.style.opacity=t}let p=`translate3d(${n}, ${l}, 0px)`;if(null!=o){p+=` scale(${o-(o-1)*(1-Math.abs(s))})`}if(c&&null!=c){p+=` rotate(${c*s*-1}deg)`}e.style.transform=p},r=()=>{const{el:e,slides:s,progress:a,snapGrid:r}=t;f(e,"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").forEach((e=>{i(e,a)})),s.forEach(((e,s)=>{let n=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(n+=Math.ceil(s/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),e.querySelectorAll("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale], [data-swiper-parallax-rotate]").forEach((e=>{i(e,n)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&r()})),a("setTranslate",(()=>{t.params.parallax.enabled&&r()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{el:s}=t;s.querySelectorAll("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").forEach((t=>{let s=parseInt(t.getAttribute("data-swiper-parallax-duration"),10)||e;0===e&&(s=0),t.style.transitionDuration=`${s}ms`}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l,d,c=1,p=!1;const u=[],m={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},h={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},g={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let w=1;function b(){if(u.length<2)return 1;const e=u[0].pageX,t=u[0].pageY,s=u[1].pageX,a=u[1].pageY;return Math.sqrt((s-e)**2+(a-t)**2)}function E(e){const s=t.isElement?"swiper-slide":`.${t.params.slideClass}`;return!!e.target.matches(s)||t.slides.filter((t=>t.contains(e.target))).length>0}function x(e){if("mouse"===e.pointerType&&u.splice(0,u.length),!E(e))return;const s=t.params.zoom;if(l=!1,d=!1,u.push(e),!(u.length<2)){if(l=!0,m.scaleStart=b(),!m.slideEl){m.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`),m.slideEl||(m.slideEl=t.slides[t.activeIndex]);let a=m.slideEl.querySelector(`.${s.containerClass}`);if(a&&(a=a.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=a,m.imageWrapEl=a?y(m.imageEl,`.${s.containerClass}`)[0]:void 0,!m.imageWrapEl)return void(m.imageEl=void 0);m.maxRatio=m.imageWrapEl.getAttribute("data-swiper-zoom")||s.maxRatio}if(m.imageEl){const[e,t]=function(){if(u.length<2)return{x:null,y:null};const e=m.imageEl.getBoundingClientRect();return[(u[0].pageX+(u[1].pageX-u[0].pageX)/2-e.x)/c,(u[0].pageY+(u[1].pageY-u[0].pageY)/2-e.y)/c]}();m.originX=e,m.originY=t,m.imageEl.style.transitionDuration="0ms"}p=!0}}function S(e){if(!E(e))return;const s=t.params.zoom,a=t.zoom,i=u.findIndex((t=>t.pointerId===e.pointerId));i>=0&&(u[i]=e),u.length<2||(d=!0,m.scaleMove=b(),m.imageEl&&(a.scale=m.scaleMove/m.scaleStart*c,a.scale>m.maxRatio&&(a.scale=m.maxRatio-1+(a.scale-m.maxRatio+1)**.5),a.scalet.pointerId===e.pointerId));i>=0&&u.splice(i,1),l&&d&&(l=!1,d=!1,m.imageEl&&(a.scale=Math.max(Math.min(a.scale,m.maxRatio),s.minRatio),m.imageEl.style.transitionDuration=`${t.params.speed}ms`,m.imageEl.style.transform=`translate3d(0,0,0) scale(${a.scale})`,c=a.scale,p=!1,a.scale>1&&m.slideEl?m.slideEl.classList.add(`${s.zoomedSlideClass}`):a.scale<=1&&m.slideEl&&m.slideEl.classList.remove(`${s.zoomedSlideClass}`),1===a.scale&&(m.originX=0,m.originY=0,m.slideEl=void 0)))}function M(e){if(!E(e)||!function(e){const s=`.${t.params.zoom.containerClass}`;return!!e.target.matches(s)||[...t.el.querySelectorAll(s)].filter((t=>t.contains(e.target))).length>0}(e))return;const s=t.zoom;if(!m.imageEl)return;if(!h.isTouched||!m.slideEl)return;h.isMoved||(h.width=m.imageEl.offsetWidth,h.height=m.imageEl.offsetHeight,h.startX=o(m.imageWrapEl,"x")||0,h.startY=o(m.imageWrapEl,"y")||0,m.slideWidth=m.slideEl.offsetWidth,m.slideHeight=m.slideEl.offsetHeight,m.imageWrapEl.style.transitionDuration="0ms");const a=h.width*s.scale,i=h.height*s.scale;if(a0?u[0].pageX:e.pageX,h.touchesCurrent.y=u.length>0?u[0].pageY:e.pageY;if(Math.max(Math.abs(h.touchesCurrent.x-h.touchesStart.x),Math.abs(h.touchesCurrent.y-h.touchesStart.y))>5&&(t.allowClick=!1),!h.isMoved&&!p){if(t.isHorizontal()&&(Math.floor(h.minX)===Math.floor(h.startX)&&h.touchesCurrent.xh.touchesStart.x))return void(h.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(h.minY)===Math.floor(h.startY)&&h.touchesCurrent.yh.touchesStart.y))return void(h.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),h.isMoved=!0;const r=(s.scale-c)/(m.maxRatio-t.params.zoom.minRatio),{originX:n,originY:l}=m;h.currentX=h.touchesCurrent.x-h.touchesStart.x+h.startX+r*(h.width-2*n),h.currentY=h.touchesCurrent.y-h.touchesStart.y+h.startY+r*(h.height-2*l),h.currentXh.maxX&&(h.currentX=h.maxX-1+(h.currentX-h.maxX+1)**.8),h.currentYh.maxY&&(h.currentY=h.maxY-1+(h.currentY-h.maxY+1)**.8),g.prevPositionX||(g.prevPositionX=h.touchesCurrent.x),g.prevPositionY||(g.prevPositionY=h.touchesCurrent.y),g.prevTime||(g.prevTime=Date.now()),g.x=(h.touchesCurrent.x-g.prevPositionX)/(Date.now()-g.prevTime)/2,g.y=(h.touchesCurrent.y-g.prevPositionY)/(Date.now()-g.prevTime)/2,Math.abs(h.touchesCurrent.x-g.prevPositionX)<2&&(g.x=0),Math.abs(h.touchesCurrent.y-g.prevPositionY)<2&&(g.y=0),g.prevPositionX=h.touchesCurrent.x,g.prevPositionY=h.touchesCurrent.y,g.prevTime=Date.now(),m.imageWrapEl.style.transform=`translate3d(${h.currentX}px, ${h.currentY}px,0)`}function C(){const e=t.zoom;m.slideEl&&t.activeIndex!==t.slides.indexOf(m.slideEl)&&(m.imageEl&&(m.imageEl.style.transform="translate3d(0,0,0) scale(1)"),m.imageWrapEl&&(m.imageWrapEl.style.transform="translate3d(0,0,0)"),m.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`),e.scale=1,c=1,m.slideEl=void 0,m.imageEl=void 0,m.imageWrapEl=void 0,m.originX=0,m.originY=0)}function P(e){const s=t.zoom,a=t.params.zoom;if(!m.slideEl){e&&e.target&&(m.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`)),m.slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:m.slideEl=t.slides[t.activeIndex]);let s=m.slideEl.querySelector(`.${a.containerClass}`);s&&(s=s.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=s,m.imageWrapEl=s?y(m.imageEl,`.${a.containerClass}`)[0]:void 0}if(!m.imageEl||!m.imageWrapEl)return;let i,r,l,o,d,p,u,g,w,b,E,x,S,T,M,C,P,L;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.slideEl.classList.add(`${a.zoomedSlideClass}`),void 0===h.touchesStart.x&&e?(i=e.pageX,r=e.pageY):(i=h.touchesStart.x,r=h.touchesStart.y);const z="number"==typeof e?e:null;1===c&&z&&(i=void 0,r=void 0),s.scale=z||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,c=z||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,!e||1===c&&z?(u=0,g=0):(P=m.slideEl.offsetWidth,L=m.slideEl.offsetHeight,l=v(m.slideEl).left+n.scrollX,o=v(m.slideEl).top+n.scrollY,d=l+P/2-i,p=o+L/2-r,w=m.imageEl.offsetWidth,b=m.imageEl.offsetHeight,E=w*s.scale,x=b*s.scale,S=Math.min(P/2-E/2,0),T=Math.min(L/2-x/2,0),M=-S,C=-T,u=d*s.scale,g=p*s.scale,uM&&(u=M),gC&&(g=C)),z&&1===s.scale&&(m.originX=0,m.originY=0),m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform=`translate3d(${u}px, ${g}px,0)`,m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform=`translate3d(0,0,0) scale(${s.scale})`}function L(){const e=t.zoom,s=t.params.zoom;if(!m.slideEl){t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:m.slideEl=t.slides[t.activeIndex];let e=m.slideEl.querySelector(`.${s.containerClass}`);e&&(e=e.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=e,m.imageWrapEl=e?y(m.imageEl,`.${s.containerClass}`)[0]:void 0}m.imageEl&&m.imageWrapEl&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,c=1,m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform="translate3d(0,0,0)",m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform="translate3d(0,0,0) scale(1)",m.slideEl.classList.remove(`${s.zoomedSlideClass}`),m.slideEl=void 0,m.originX=0,m.originY=0)}function z(e){const s=t.zoom;s.scale&&1!==s.scale?L():P(e)}function A(){return{passiveListener:!!t.params.passiveListeners&&{passive:!0,capture:!1},activeListenerWithCapture:!t.params.passiveListeners||{passive:!1,capture:!0}}}function $(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const{passiveListener:s,activeListenerWithCapture:a}=A();t.wrapperEl.addEventListener("pointerdown",x,s),t.wrapperEl.addEventListener("pointermove",S,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.addEventListener(e,T,s)})),t.wrapperEl.addEventListener("pointermove",M,a)}function I(){const e=t.zoom;if(!e.enabled)return;e.enabled=!1;const{passiveListener:s,activeListenerWithCapture:a}=A();t.wrapperEl.removeEventListener("pointerdown",x,s),t.wrapperEl.removeEventListener("pointermove",S,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.removeEventListener(e,T,s)})),t.wrapperEl.removeEventListener("pointermove",M,a)}Object.defineProperty(t.zoom,"scale",{get:()=>w,set(e){if(w!==e){const t=m.imageEl,s=m.slideEl;i("zoomChange",e,t,s)}w=e}}),a("init",(()=>{t.params.zoom.enabled&&$()})),a("destroy",(()=>{I()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;if(!m.imageEl)return;if(h.isTouched)return;s.android&&e.cancelable&&e.preventDefault(),h.isTouched=!0;const a=u.length>0?u[0]:e;h.touchesStart.x=a.pageX,h.touchesStart.y=a.pageY}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!m.imageEl)return;if(!h.isTouched||!h.isMoved)return h.isTouched=!1,void(h.isMoved=!1);h.isTouched=!1,h.isMoved=!1;let s=300,a=300;const i=g.x*s,r=h.currentX+i,n=g.y*a,l=h.currentY+n;0!==g.x&&(s=Math.abs((r-h.currentX)/g.x)),0!==g.y&&(a=Math.abs((l-h.currentY)/g.y));const o=Math.max(s,a);h.currentX=r,h.currentY=l;const d=h.width*e.scale,c=h.height*e.scale;h.minX=Math.min(m.slideWidth/2-d/2,0),h.maxX=-h.minX,h.minY=Math.min(m.slideHeight/2-c/2,0),h.maxY=-h.minY,h.currentX=Math.max(Math.min(h.currentX,h.maxX),h.minX),h.currentY=Math.max(Math.min(h.currentY,h.maxY),h.minY),m.imageWrapEl.style.transitionDuration=`${o}ms`,m.imageWrapEl.style.transform=`translate3d(${h.currentX}px, ${h.currentY}px,0)`}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&z(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:$,disable:I,in:P,out:L,toggle:z})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{if("undefined"!=typeof window&&("string"==typeof t.params.controller.control||t.params.controller.control instanceof HTMLElement)){const e=document.querySelector(t.params.controller.control);if(e&&e.swiper)t.controller.control=e.swiper;else if(e){const s=a=>{t.controller.control=a.detail[0],t.update(),e.removeEventListener("init",s)};e.addEventListener("init",s)}}else t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){if(e.destroyed)return;const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid)}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),!Number.isNaN(r)&&Number.isFinite(r)||(r=1),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e{s.updateAutoHeight()})),E(s.wrapperEl,(()=>{i&&s.transitionEnd()}))))}if(Array.isArray(i))for(r=0;r(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function l(e){(e=n(e)).forEach((e=>{e.setAttribute("tabIndex","0")}))}function o(e){(e=n(e)).forEach((e=>{e.setAttribute("tabIndex","-1")}))}function d(e,t){(e=n(e)).forEach((e=>{e.setAttribute("role",t)}))}function c(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-roledescription",t)}))}function p(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-label",t)}))}function u(e){(e=n(e)).forEach((e=>{e.setAttribute("aria-disabled",!0)}))}function m(e){(e=n(e)).forEach((e=>{e.setAttribute("aria-disabled",!1)}))}function h(e){if(13!==e.keyCode&&32!==e.keyCode)return;const s=t.params.a11y,a=e.target;t.pagination&&t.pagination.el&&(a===t.pagination.el||t.pagination.el.contains(e.target))&&!e.target.matches(te(t.params.pagination.bulletClass))||(t.navigation&&t.navigation.nextEl&&a===t.navigation.nextEl&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?r(s.lastSlideMessage):r(s.nextSlideMessage)),t.navigation&&t.navigation.prevEl&&a===t.navigation.prevEl&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?r(s.firstSlideMessage):r(s.prevSlideMessage)),t.pagination&&a.matches(te(t.params.pagination.bulletClass))&&a.click())}function f(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function v(){return f()&&t.params.pagination.clickable}const w=(e,t,s)=>{l(e),"BUTTON"!==e.tagName&&(d(e,"button"),e.addEventListener("keydown",h)),p(e,s),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-controls",t)}))}(e,t)},y=()=>{t.a11y.clicked=!0},E=()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{t.destroyed||(t.a11y.clicked=!1)}))}))},x=e=>{if(t.a11y.clicked)return;const s=e.target.closest(`.${t.params.slideClass}, swiper-slide`);if(!s||!t.slides.includes(s))return;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,t.slideTo(t.slides.indexOf(s),0))},S=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&c(t.slides,e.itemRoleDescriptionMessage),e.slideRole&&d(t.slides,e.slideRole);const s=t.slides.length;e.slideLabelMessage&&t.slides.forEach(((a,i)=>{const r=t.params.loop?parseInt(a.getAttribute("data-swiper-slide-index"),10):i;p(a,e.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,s))}))},T=()=>{const e=t.params.a11y;t.el.append(i);const s=t.el;e.containerRoleDescriptionMessage&&c(s,e.containerRoleDescriptionMessage),e.containerMessage&&p(s,e.containerMessage);const a=t.wrapperEl,r=e.id||a.getAttribute("id")||`swiper-wrapper-${l=16,void 0===l&&(l=16),"x".repeat(l).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var l;const o=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var d;d=r,n(a).forEach((e=>{e.setAttribute("id",d)})),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-live",t)}))}(a,o),S();let{nextEl:u,prevEl:m}=t.navigation?t.navigation:{};if(u=n(u),m=n(m),u&&u.forEach((t=>w(t,r,e.nextSlideMessage))),m&&m.forEach((t=>w(t,r,e.prevSlideMessage))),v()){(Array.isArray(t.pagination.el)?t.pagination.el:[t.pagination.el]).forEach((e=>{e.addEventListener("keydown",h)}))}t.el.addEventListener("focus",x,!0),t.el.addEventListener("pointerdown",y,!0),t.el.addEventListener("pointerup",E,!0)};a("beforeInit",(()=>{i=g("span",t.params.a11y.notificationClass),i.setAttribute("aria-live","assertive"),i.setAttribute("aria-atomic","true"),t.isElement&&i.setAttribute("slot","container-end")})),a("afterInit",(()=>{t.params.a11y.enabled&&T()})),a("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&S()})),a("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{nextEl:e,prevEl:s}=t.navigation;s&&(t.isBeginning?(u(s),o(s)):(m(s),l(s))),e&&(t.isEnd?(u(e),o(e)):(m(e),l(e)))}()})),a("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;f()&&t.pagination.bullets.forEach((s=>{t.params.pagination.clickable&&(l(s),t.params.pagination.renderBullet||(d(s,"button"),p(s,e.paginationBulletMessage.replace(/\{\{index\}\}/,b(s)+1)))),s.matches(te(t.params.pagination.bulletActiveClass))?s.setAttribute("aria-current","true"):s.removeAttribute("aria-current")}))}()})),a("destroy",(()=>{t.params.a11y.enabled&&function(){i&&i.length>0&&i.remove();let{nextEl:e,prevEl:s}=t.navigation?t.navigation:{};e=n(e),s=n(s),e&&e.forEach((e=>e.removeEventListener("keydown",h))),s&&s.forEach((e=>e.removeEventListener("keydown",h))),v()&&(Array.isArray(t.pagination.el)?t.pagination.el:[t.pagination.el]).forEach((e=>{e.removeEventListener("keydown",h)}));t.el.removeEventListener("focus",x,!0),t.el.removeEventListener("pointerdown",y,!0),t.el.removeEventListener("pointerup",E,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.slides[s];let d=l(o.getAttribute("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e?`${e}/`:""}${d}`}else n.pathname.includes(e)||(d=`${e?`${e}/`:""}${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),n.key||n.value?(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p)):t.params.history.replaceState||e.addEventListener("popstate",p)}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),d=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(e,s){if(t.virtual&&t.params.virtual.enabled){const e=t.slides.filter((e=>e.getAttribute("data-hash")===s))[0];if(!e)return 0;return parseInt(e.getAttribute("data-swiper-slide-index"),10)}return t.getSlideIndex(f(t.slidesEl,`.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]`)[0])}}});const c=()=>{i("hashChange");const e=o.location.hash.replace("#",""),s=t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`);if(e!==(s?s.getAttribute("data-hash"):"")){const s=t.params.hashNavigation.getSlideIndex(t,e);if(console.log(s),void 0===s)return;t.slideTo(s)}},p=()=>{if(!l||!t.params.hashNavigation.enabled)return;const e=t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`),s=e?e.getAttribute("data-hash")||e.getAttribute("data-history"):"";t.params.hashNavigation.replaceState&&d.history&&d.history.replaceState?(d.history.replaceState(null,null,`#${s}`||""),i("hashSet")):(o.location.hash=s||"",i("hashSet"))};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0,a=t.params.hashNavigation.getSlideIndex(t,e);t.slideTo(a||0,s,t.params.runCallbacksOnInit,!0)}t.params.hashNavigation.watchState&&d.addEventListener("hashchange",c)})()})),n("destroy",(()=>{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d.removeEventListener("hashchange",c)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&p()})),n("slideChange",(()=>{l&&t.params.cssMode&&p()}))},function(e){let t,s,{swiper:i,extendParams:r,on:n,emit:l,params:o}=e;i.autoplay={running:!1,paused:!1,timeLeft:0},r({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let d,c,p,u,m,h,f,g=o&&o.autoplay?o.autoplay.delay:3e3,v=o&&o.autoplay?o.autoplay.delay:3e3,w=(new Date).getTime;function b(e){i&&!i.destroyed&&i.wrapperEl&&e.target===i.wrapperEl&&(i.wrapperEl.removeEventListener("transitionend",b),M())}const y=()=>{if(i.destroyed||!i.autoplay.running)return;i.autoplay.paused?c=!0:c&&(v=d,c=!1);const e=i.autoplay.paused?d:w+v-(new Date).getTime();i.autoplay.timeLeft=e,l("autoplayTimeLeft",e,e/g),s=requestAnimationFrame((()=>{y()}))},E=e=>{if(i.destroyed||!i.autoplay.running)return;cancelAnimationFrame(s),y();let a=void 0===e?i.params.autoplay.delay:e;g=i.params.autoplay.delay,v=i.params.autoplay.delay;const r=(()=>{let e;if(e=i.virtual&&i.params.virtual.enabled?i.slides.filter((e=>e.classList.contains("swiper-slide-active")))[0]:i.slides[i.activeIndex],!e)return;return parseInt(e.getAttribute("data-swiper-autoplay"),10)})();!Number.isNaN(r)&&r>0&&void 0===e&&(a=r,g=r,v=r),d=a;const n=i.params.speed,o=()=>{i&&!i.destroyed&&(i.params.autoplay.reverseDirection?!i.isBeginning||i.params.loop||i.params.rewind?(i.slidePrev(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(i.slides.length-1,n,!0,!0),l("autoplay")):!i.isEnd||i.params.loop||i.params.rewind?(i.slideNext(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(0,n,!0,!0),l("autoplay")),i.params.cssMode&&(w=(new Date).getTime(),requestAnimationFrame((()=>{E()}))))};return a>0?(clearTimeout(t),t=setTimeout((()=>{o()}),a)):requestAnimationFrame((()=>{o()})),a},x=()=>{i.autoplay.running=!0,E(),l("autoplayStart")},S=()=>{i.autoplay.running=!1,clearTimeout(t),cancelAnimationFrame(s),l("autoplayStop")},T=(e,s)=>{if(i.destroyed||!i.autoplay.running)return;clearTimeout(t),e||(f=!0);const a=()=>{l("autoplayPause"),i.params.autoplay.waitForTransition?i.wrapperEl.addEventListener("transitionend",b):M()};if(i.autoplay.paused=!0,s)return h&&(d=i.params.autoplay.delay),h=!1,void a();const r=d||i.params.autoplay.delay;d=r-((new Date).getTime()-w),i.isEnd&&d<0&&!i.params.loop||(d<0&&(d=0),a())},M=()=>{i.isEnd&&d<0&&!i.params.loop||i.destroyed||!i.autoplay.running||(w=(new Date).getTime(),f?(f=!1,E(d)):E(),i.autoplay.paused=!1,l("autoplayResume"))},C=()=>{if(i.destroyed||!i.autoplay.running)return;const e=a();"hidden"===e.visibilityState&&(f=!0,T(!0)),"visible"===e.visibilityState&&M()},P=e=>{"mouse"===e.pointerType&&(f=!0,T(!0))},L=e=>{"mouse"===e.pointerType&&i.autoplay.paused&&M()};n("init",(()=>{i.params.autoplay.enabled&&(i.params.autoplay.pauseOnMouseEnter&&(i.el.addEventListener("pointerenter",P),i.el.addEventListener("pointerleave",L)),a().addEventListener("visibilitychange",C),w=(new Date).getTime(),x())})),n("destroy",(()=>{i.el.removeEventListener("pointerenter",P),i.el.removeEventListener("pointerleave",L),a().removeEventListener("visibilitychange",C),i.autoplay.running&&S()})),n("beforeTransitionStart",((e,t,s)=>{!i.destroyed&&i.autoplay.running&&(s||!i.params.autoplay.disableOnInteraction?T(!0,!0):S())})),n("sliderFirstMove",(()=>{!i.destroyed&&i.autoplay.running&&(i.params.autoplay.disableOnInteraction?S():(p=!0,u=!1,f=!1,m=setTimeout((()=>{f=!0,u=!0,T(!0)}),200)))})),n("touchEnd",(()=>{if(!i.destroyed&&i.autoplay.running&&p){if(clearTimeout(m),clearTimeout(t),i.params.autoplay.disableOnInteraction)return u=!1,void(p=!1);u&&i.params.cssMode&&M(),u=!1,p=!1}})),n("slideChange",(()=>{!i.destroyed&&i.autoplay.running&&(h=!0)})),Object.assign(i.autoplay,{start:x,stop:S,pause:T,resume:M})},function(e){let{swiper:t,extendParams:s,on:i}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let r=!1,n=!1;function l(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&a.classList.contains(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;i=e.params.loop?parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10):s,t.params.loop?t.slideToLoop(i):t.slideTo(i)}function o(){const{thumbs:e}=t.params;if(r)return!1;r=!0;const s=t.constructor;if(e.swiper instanceof s)t.thumbs.swiper=e.swiper,Object.assign(t.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(t.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper.update();else if(d(e.swiper)){const a=Object.assign({},e.swiper);Object.assign(a,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper=new s(a),n=!0}return t.thumbs.swiper.el.classList.add(t.params.thumbs.thumbsContainerClass),t.thumbs.swiper.on("tap",l),!0}function c(e){const s=t.thumbs.swiper;if(!s||s.destroyed)return;const a="auto"===s.params.slidesPerView?s.slidesPerViewDynamic():s.params.slidesPerView;let i=1;const r=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.forEach((e=>e.classList.remove(r))),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e{e.classList.add(r)}));else for(let e=0;ee.getAttribute("data-swiper-slide-index")===`${t.realIndex}`))[0];r=s.slides.indexOf(e),o=t.activeIndex>t.previousIndex?"next":"prev"}else r=t.realIndex,o=r>t.previousIndex?"next":"prev";l&&(r+="next"===o?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(r)<0&&(s.params.centeredSlides?r=r>i?r-Math.floor(a/2)+1:r+Math.floor(a/2)-1:r>i&&s.params.slidesPerGroup,s.slideTo(r,e?0:void 0))}}t.thumbs={swiper:null},i("beforeInit",(()=>{const{thumbs:e}=t.params;if(e&&e.swiper)if("string"==typeof e.swiper||e.swiper instanceof HTMLElement){const s=a(),i=()=>{const a="string"==typeof e.swiper?s.querySelector(e.swiper):e.swiper;if(a&&a.swiper)e.swiper=a.swiper,o(),c(!0);else if(a){const s=i=>{e.swiper=i.detail[0],a.removeEventListener("init",s),o(),c(!0),e.swiper.update(),t.update()};a.addEventListener("init",s)}return a},r=()=>{if(t.destroyed)return;i()||requestAnimationFrame(r)};requestAnimationFrame(r)}else o(),c(!0)})),i("slideChange update resize observerUpdate",(()=>{c()})),i("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),i("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&n&&e.destroy()})),Object.assign(t.thumbs,{init:o,update:c})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:l()})},onTouchEnd:function(e){let{currentPos:s}=e;const{params:r,wrapperEl:n,rtlTranslate:o,snapGrid:d,touchEventsData:c}=t,p=l()-c.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length1){const e=c.velocities.pop(),s=c.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)150||l()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,c.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let p=t.translate+s;o&&(p=-p);let u,m=!1;const h=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(pt.minTranslate())r.freeMode.momentumBounce?(p-t.minTranslate()>h&&(p=t.minTranslate()+h),u=t.minTranslate(),m=!0,c.allowMomentumBounce=!0):p=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t-p){e=t;break}p=Math.abs(d[e]-p){t.loopFix()})),0!==t.velocity){if(e=o?Math.abs((-p-t.translate)/t.velocity):Math.abs((p-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((o?-p:p)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s{t&&!t.destroyed&&c.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(u),E(n,(()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(p),t.setTransition(e),t.setTranslate(p),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,E(n,(()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(p),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||p>=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,{swiper:i,extendParams:r}=e;r({grid:{rows:1,fill:"column"}}),i.grid={initSlides:e=>{const{slidesPerView:r}=i.params,{rows:n,fill:l}=i.params.grid;s=t/n,a=Math.floor(e/n),t=Math.floor(e/n)===e/n?e:Math.ceil(e/n)*n,"auto"!==r&&"row"===l&&(t=Math.max(t,r*n))},updateSlide:(e,r,n,l)=>{const{slidesPerGroup:o,spaceBetween:d}=i.params,{rows:c,fill:p}=i.params.grid;let u,m,h;if("row"===p&&o>1){const s=Math.floor(e/(o*c)),a=e-c*o*s,i=0===s?o:Math.min(Math.ceil((n-s*c*o)/c),o);h=Math.floor(a/i),m=a-h*i+s*o,u=m+h*t/c,r.style.order=u}else"column"===p?(m=Math.floor(e/c),h=e-m*c,(m>a||m===a&&h===c-1)&&(h+=1,h>=c&&(h=0,m+=1))):(h=Math.floor(e/s),m=e-h*s);r.style[l("margin-top")]=0!==h?d&&`${d}px`:""},updateWrapperSize:(e,s,a)=>{const{spaceBetween:r,centeredSlides:n,roundLengths:l}=i.params,{rows:o}=i.params.grid;if(i.virtualSize=(e+r)*t,i.virtualSize=Math.ceil(i.virtualSize/o)-r,i.wrapperEl.style[a("width")]=`${i.virtualSize+r}px`,n){const e=[];for(let t=0;t{const{slides:e}=t;t.params.fadeEffect;for(let s=0;s{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`})),de({swiper:t,duration:e,transformElements:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=s?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=g("div","swiper-slide-shadow-"+(s?"left":"top")),e.append(a)),i||(i=g("div","swiper-slide-shadow-"+(s?"right":"bottom")),e.append(i)),a&&(a.style.opacity=Math.max(-t,0)),i&&(i.style.opacity=Math.max(t,0))};le({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{el:e,wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:d}=t,c=t.params.cubeEffect,p=t.isHorizontal(),u=t.virtual&&t.params.virtual.enabled;let m,h=0;c.shadow&&(p?(m=t.slidesEl.querySelector(".swiper-cube-shadow"),m||(m=g("div","swiper-cube-shadow"),t.slidesEl.append(m)),m.style.height=`${r}px`):(m=e.querySelector(".swiper-cube-shadow"),m||(m=g("div","swiper-cube-shadow"),e.append(m))));for(let e=0;e-1&&(h=90*s+90*d,l&&(h=90*-s-90*d)),t.style.transform=v,c.slideShadows&&i(t,d,p)}if(s.style.transformOrigin=`50% 50% -${o/2}px`,s.style["-webkit-transform-origin"]=`50% 50% -${o/2}px`,c.shadow)if(p)m.style.transform=`translate3d(0px, ${r/2+c.shadowOffset}px, ${-r/2}px) rotateX(90deg) rotateZ(0deg) scale(${c.shadowScale})`;else{const e=Math.abs(h)-90*Math.floor(Math.abs(h)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=c.shadowScale,a=c.shadowScale/t,i=c.shadowOffset;m.style.transform=`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-90deg)`}const f=(d.isSafari||d.isWebView)&&d.needPerspectiveFix?-o/2:0;s.style.transform=`translate3d(0px,0,${f}px) rotateX(${t.isHorizontal()?0:h}deg) rotateY(${t.isHorizontal()?-h:0}deg)`,s.style.setProperty("--swiper-cube-translate-z",`${f}px`)},setTransition:e=>{const{el:s,slides:a}=t;if(a.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),t.params.cubeEffect.shadow&&!t.isHorizontal()){const t=s.querySelector(".swiper-cube-shadow");t&&(t.style.transitionDuration=`${e}ms`)}},recreateShadows:()=>{const e=t.isHorizontal();t.slides.forEach((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(t,s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0}});const i=(e,s,a)=>{let i=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),r=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");i||(i=ce(0,e,t.isHorizontal()?"left":"top")),r||(r=ce(0,e,t.isHorizontal()?"right":"bottom")),i&&(i.style.opacity=Math.max(-s,0)),r&&(r.style.opacity=Math.max(s,0))};le({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),de({swiper:t,duration:e,transformElements:s})},recreateShadows:()=>{t.params.flipEffect;t.slides.forEach((e=>{let s=e.progress;t.params.flipEffect.limitRotation&&(s=Math.max(Math.min(e.progress,1),-1)),i(e,s)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),le({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e0?p:0),s&&(s.style.opacity=-p>0?-p:0)}}},setTransition:e=>{t.slides.map((e=>h(e))).forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))}))},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;le({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.style.transform=`translateX(calc(50% - ${e}px))`}for(let s=0;s0&&(f=r.prev,h=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),m.forEach(((e,t)=>{m[t]=f.rotate[t]*Math.abs(d*n)})),a.style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${m[0]}deg) rotateY(${m[1]}deg) rotateZ(${m[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,y=`translate3d(${g}) ${v} ${w}`;if(h&&f.shadow||!h){let e=a.querySelector(".swiper-slide-shadow");if(!e&&f.shadow&&(e=ce(0,a)),e){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e.style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const E=oe(0,a);E.style.transform=y,E.style.opacity=b,f.origin&&(E.style.transformOrigin=f.origin)}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),de({swiper:t,duration:e,transformElements:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),le({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s}=t,a=t.params.cardsEffect,{startTranslate:i,isTouched:r}=t.touchEventsData,n=t.translate;for(let l=0;l0&&c<1&&(r||t.params.cssMode)&&n-1&&(r||t.params.cssMode)&&n>i;if(b||y){const e=(1-Math.abs((Math.abs(c)-.5)/.5))**.5;g+=-28*c*e,f+=-.5*e,v+=96*e,m=-25*e*Math.abs(c)+"%"}if(u=c<0?`calc(${u}px + (${v*Math.abs(c)}%))`:c>0?`calc(${u}px + (-${v*Math.abs(c)}%))`:`${u}px`,!t.isHorizontal()){const e=m;m=u,u=e}const E=c<0?""+(1+(1-f)*c):""+(1-(1-f)*c),x=`\n translate3d(${u}, ${m}, ${h}px)\n rotateZ(${a.rotate?g:0}deg)\n scale(${E})\n `;if(a.slideShadows){let e=o.querySelector(".swiper-slide-shadow");e||(e=ce(0,o)),e&&(e.style.opacity=Math.min(Math.max((Math.abs(c)-.5)/.5,0),1))}o.style.zIndex=-Math.abs(Math.round(d))+e.length;oe(0,o).style.transform=x}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),de({swiper:t,duration:e,transformElements:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return J.use(pe),J})); diff --git a/sonar-project.properties b/sonar-project.properties deleted file mode 100644 index c35a7853d..000000000 --- a/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.organization=fonoster -sonar.projectKey=fonoster_fonos -sonar.source=. -sonar.exclusions=docs/**/*,mods/core/src/server/protos/* -sonar.language=js -sonar.javascript.lcov.reportPaths=coverage/lcov.info \ No newline at end of file diff --git a/teaser_video.mov b/teaser_video.mov deleted file mode 100644 index 7da35f115..000000000 Binary files a/teaser_video.mov and /dev/null differ diff --git a/tsconfig.json b/tsconfig.json index ddddf4c97..814b88c05 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,24 +1,26 @@ { "compilerOptions": { - "skipLibCheck": true, "composite": true, - "outDir": "./dist", + "outDir": "dist", "rootDir": ".", "declaration": true, "noImplicitAny": false, "esModuleInterop": true, - "strict": false, + "skipLibCheck": true, "module": "commonjs", - "target": "es2020", - "lib": [ "es2020" ], - "experimentalDecorators": true + "target": "es6", + "moduleResolution": "node", + "downlevelIteration": true, + "lib": [ + "es2021", + "dom", + "es6", + "scripthost" + ] }, "exclude": [ "node_modules", "dist", - "mods/websdk/" - ], - "references": [ - {"path": "mods/auth"} - ], + "**/bin/*" + ] } \ No newline at end of file diff --git a/web-test-runner.config.mjs b/web-test-runner.config.mjs new file mode 100644 index 000000000..524220848 --- /dev/null +++ b/web-test-runner.config.mjs @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2025 by Fonoster Inc (https://fonoster.com) + * http://github.com/fonoster/fonoster + * + * This file is part of Fonoster + * + * Licensed under the MIT License (the "License"); + * you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * https://opensource.org/licenses/MIT + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { esbuildPlugin } from "@web/dev-server-esbuild"; + +export default { + debug: false, + files: "mods/sdk/test/integration/web.integration.ts", + plugins: [ + esbuildPlugin({ + ts: true + }) + ], + nodeResolve: true +};